THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HOÁ THIẾT KẾ THUẬT TOÁN ĐỖ XE SONG SONG TỰ ĐỘNG CHO XE ROBOT ACK
TỔNG QUAN
Đặt vấn đề
1.1.1 Giới thiệu chung về đề tài
Bài toán đỗ xe song song tự động là một bài toán kinh điển và đầy thách thức trong lĩnh vực hệ thống thông minh trên ô tô và cũng là cuộc chạy đua của những tập đoàn ô tô lớn trên thế giới
Một số công nghệ đỗ xe song song tự động phổ biến trên thị trường hiện nay bao gồm:
Hệ thống hỗ trợ đỗ xe (Park Assist): Đây là công nghệ phổ biến nhất, được trang bị trên nhiều dòng xe hơi hiện đại Hệ thống này sử dụng các cảm biến siêu âm hoặc camera để phát hiện chỗ đậu xe trống và tự động điều khiển vô lăng để đưa xe vào vị trí Người lái chỉ cần kiểm soát chân ga, chân phanh và chuyển số theo hướng dẫn
Hệ thống đỗ xe tự động (Self-Parking): Nâng cao hơn Park Assist, hệ thống này cho phép xe tự động thực hiện toàn bộ quá trình đỗ xe mà không cần sự can thiệp của người lái Xe sẽ tự động tìm kiếm chỗ đậu xe, điều khiển vô lăng, chân ga, chân phanh và chuyển số để đưa xe vào vị trí an toàn
Đỗ xe từ xa (Remote Parking): Công nghệ này cho phép người lái điều khiển xe đỗ hoặc lấy xe ra khỏi chỗ đậu từ xa thông qua chìa khóa thông minh hoặc ứng dụng trên điện thoại Điều này đặc biệt hữu ích trong những trường hợp chỗ đậu xe chật hẹp, khó ra vào
Hình 1 1 Bối cảnh đỗ xe song song
Các công nghệ tự đỗ xe song song đang ngày càng trở nên phổ biến và tiên tiến hơn Từ việc hỗ trợ người lái đỗ xe, các hệ thống này đang dần tiến tới khả năng tự động hóa hoàn toàn, mang đến sự tiện lợi và an toàn cho người sử dụng
Hình 1 2 Dự báo thị trường Hệ Thống Đỗ Xe Tự Động Toàn Cầu từ năm 2022 đến 2032
Biểu đồ về kích thước dự báo của thị trường Hệ Thống Đỗ Xe Tự Động Toàn Cầu từ năm
2022 đến năm 2032 cho thấy một xu hướng tăng trưởng mạnh mẽ Từ mức 1.8 tỷ đô la vào năm 2022, thị trường dự kiến sẽ đạt 5.2 tỷ đô la vào năm 2032, với mức tăng trưởng hàng năm gộp (CAGR) là 11.4% Sự phân chia giữa phần cứng và phần mềm trong biểu đồ cũng cho thấy cả hai thành phần này đều đang phát triển, nhưng phần mềm có xu hướng chiếm tỷ trọng ngày càng lớn hơn
Xu hướng này phản ánh sự gia tăng nhu cầu về các giải pháp đỗ xe tự động, trong đó có các thuật toán và công nghệ tiên tiến Nghiên cứu của nhóm về “Thuật toán đỗ xe song song tự động cho xe robot ackermann với định vị, quy hoạch đường đi và điều khiển bám quỹ đạo” hoàn toàn phù hợp với xu hướng này Thuật toán đỗ xe song song tự động, kết hợp với các phương pháp định vị, lập kế hoạch đường đi và theo dõi, không chỉ đáp ứng nhu cầu hiện tại mà còn đóng góp vào sự phát triển của các hệ thống đỗ xe tự động trong tương lai
Hình 1 3 Quá trình đỗ xe tự động trên dòng xe BMW
Nghiên cứu về thuật toán đỗ xe song song tự động cho xe robot Ackermann không chỉ mang tính học thuật mà còn hứa hẹn nhiều lợi ích thiết thực
Đầu tiên, đề tài này cung cấp một nền tảng hiệu quả cho nghiên cứu và giáo dục Các nhà nghiên cứu và sinh viên có thể dễ dàng tiếp cận các khái niệm, thuật toán và kỹ thuật liên quan mà không cần đầu tư vào hệ thống đắt tiền Việc mô phỏng và thử nghiệm thuật toán trên nền tảng robot mô phỏng hoặc robot giá rẻ giúp giảm thiểu rào cản tiếp cận công nghệ, tạo điều kiện thuận lợi cho việc phổ biến kiến thức và thúc đẩy nghiên cứu trong lĩnh vực robot di động
Hơn nữa, nghiên cứu ưu tiên tính an toàn bằng cách sử dụng robot di động để kiểm tra thuật toán Thay vì thử nghiệm trực tiếp trên xe thật, việc sử dụng robot giúp giảm thiểu rủi ro va chạm và thiệt hại tiềm ẩn Điều này đặc biệt quan trọng trong giai đoạn phát triển thuật toán, khi mà các lỗi kỹ thuật có thể xảy ra
Cuối cùng, hệ thống phần mềm robot được phát triển dựa trên Hệ điều hành Robot (ROS) và kiến trúc phân tán, đảm bảo tính linh hoạt, khả năng mở rộng và khả năng tái sử dụng cao Điều này tạo điều kiện thuận lợi cho việc tích hợp và chia sẻ liền mạch giữa các dự án robot đa dạng Ví dụ, các mô-đun định vị, lập kế hoạch đường đi và điều khiển được phát triển trong đề tài này có thể dễ dàng tái sử dụng cho các ứng dụng robot khác như robot vận chuyển, robot thám hiểm, v.v
1.1.2 Khảo sát tình hình nghiên cứu trong và ngoài nước
1.1.2.1 Tình hình nghiên cứu trong nước
Anh Trần Lê Trung Chánh và các cộng sự [1] đã nghiên cứu xe tự hành lái theo nguyên lý Ackermann với mô hình xe được xây dựng để mô phỏng hệ thống định vị, tìm đường, bám đường bằng Pure Pursuit dựa trên Gazebo và Robot Operating System (ROS) Kết quả khảo sát cho thấy robot di chuyển đến mục tiêu với độ lệch khoảng cách lớn hơn hoặc bằng 1 m đa ̣t 96% và nhỏ hơn 1 m đa ̣t 79%.Tuy nhiên do chỉ thực hiện bằng mô phỏng nên chưa thể khẳng định hoàn toàn về hiệu suất và tính ổn định của hệ thống trong thực tế
Anh Trần Trung Tiến [2] đã sử dụng camera dựa trên mạng nơ-ron tính chập để nhận diện chỗ trống trong bãi đỗ xe Hệ thống đã chạy thử trên thực tế và cho kết quả độ chính xác đạt 92.5% Tuy nhiên hình ảnh chỉ được xử lý khi số lượng điểm mốc phải lớn hơn 2, vẫn còn phải chọn tọa độ thủ công và phụ thuộc nhiều vào điều kiện vạch kẻ ở bãi đỗ xe cũng như chất lượng ảnh
1.1.2.2 Tình hình nghiên cứu ngoài nước
Hệ thống đỗ xe tự động là một bài toán phức tạp, đòi hỏi sự kết hợp chặt chẽ của ba chức năng chính: nhận diện vị trí đỗ xe phù hợp, vạch ra quỹ đạo di chuyển tối ưu và điều khiển phương tiện bám theo quỹ đạo đó Trong đó, việc nhận diện vị trí đỗ xe có thể được thực hiện thông qua nhiều kỹ thuật khác nhau, được phân loại theo bốn nhóm chính: Free-space-based, Parking-marking-based, User-interface-based và Infrastructure-based Nghiên cứu này tập trung phân tích ưu nhược điểm của hai nhóm kỹ thuật đầu tiên: Free-space-based và Parking-marking-based
Kỹ thuật Free-space-based tập trung vào việc nhận dạng các vị trí đỗ xe trống bằng cách phân tích môi trường xung quanh các phương tiện lân cận và mối quan hệ vị trí giữa chúng Quá trình phân tích này thường dựa trên dữ liệu thu thập từ nhiều loại cảm biến khác nhau, bao gồm cảm biến siêu âm, cảm biến laser, camera kép, camera độ sâu và các loại camera khác
Mục tiêu
Phát triển một mô hình đỗ xe tự động sử dụng thuật toán EKF để định vị xe, thuật toán B-spline để quy hoạch đường đi và bộ điều khiển kết hợp Pure Pursuit và PI để điều khiển chuyển động của xe
Đánh giá hiệu quả của hệ thống đỗ xe tự động được phát triển thông qua mô phỏng trên Python và kiểm chứng trên mô hình thực nghiệm
Làm chủ kiến thức và khả năng ứng dụng công nghệ trên xe tự hành.
Giới hạn đề tài
Nghiên cứu chỉ tập trung vào phương pháp đỗ xe song song (parallel parking), không xét đến các phương pháp đỗ xe khác như đỗ vuông góc hay đỗ chéo
Môi trường thử nghiệm được giới hạn trong phòng thí nghiệm với mô hình được thiết kế sẵn, chưa xét đến các điều kiện địa hình phức tạp ngoài thực tế như đường gồ ghề, bề mặt trơn trượt, hay điều kiện thời tiết khắc nghiệt.
Nội dung nghiên cứu
Nghiên cứu này đề xuất một phương pháp định vị dựa trên bộ lọc Kalman mở rộng (EKF) dành riêng cho bài toán đỗ xe tự động song song Phương pháp này tập trung vào việc lập kế hoạch và theo dõi đường dẫn dựa trên dữ liệu từ cảm biến quán tính (IMU) và bộ mã hóa (Encoder)
Ngoài ra, nghiên cứu cũng khám phá việc sử dụng cảm biến lidar tầm ngắn để nâng cao khả năng nhận thức môi trường Dữ liệu Point Cloud từ lidar được sử dụng để phát hiện vị trí chỗ đậu xe trống
Nghiên cứu áp dụng thuật toán đường cong spline B (B-Splines) nhằm tối ưu hóa đường dẫn đỗ xe, đảm bảo tuân thủ các ràng buộc động học của xe và ưu tiên các thao tác điều khiển mượt mà, khả thi về động lực học
Cuối cùng, nghiên cứu lựa chọn thuật toán Pure Pursuit kết hợp với bộ điều khiển tỷ lệ-tích phân (PI) để theo dõi đường dẫn một cách đáng tin cậy với sai số tối thiểu
Sự kết hợp này được đánh giá cao về tính đơn giản và ổn định.
Cấu trúc báo cáo
Trong đồ án này được trình bày thành các phần sau:
Chương 2: Cơ sở lý thuyết
Chương 2 trình bày về các công nghệ và thuật toán nền tảng để xây dựng hệ thống đỗ xe song song tự động như: ROS, gói robot_localization, bộ lọc Kalman mở rộng (EKF) và ekf_localization_node, đường cong B-Spline, thuật toán Pure Pursuit và bộ điều khiển PI
Chương 3: Thiết kế và tính toán thuật toán
Chương 3 đi sâu vào hoạt động của hệ thống đỗ xe song song tự động Phần này trình bày chi tiết thuật toán tìm kiếm không gian đỗ xe phù hợp, cách thức thiết kế quỹ đạo đỗ xe tối ưu cho robot và phương pháp thiết kế bộ điều khiển PP_PI để điều khiển xe robot di chuyển chính xác theo quỹ đạo đã được lập trình
Chương 4: Thi công hệ thống
Chương 4 tập trung vào mô tả chi tiết hệ thống được xây dựng thực tế, bao gồm phần cứng và phần mềm Phần cứng của hệ thống được giới thiệu chi tiết từ bộ xử lý Jetson Nano B1, cảm biến khoảng cách laser RP Lidar, cảm biến quán tính IMU948, động cơ DC JGB37, vi điều khiển Arduino Uno đến động cơ Servo MG996R Sơ đồ kết nối giữa các thành phần phần cứng cũng được minh họa rõ ràng
Chương 5: Kết quả - Nhận xét – Đánh giá
Trọng tâm của chương 5 nằm ở việc trình bày, phân tích và đánh giá kết quả nghiên cứu Bằng cách phân tích trực tiếp kết quả mô phỏng với kết quả thực nghiệm thu được, chương đưa ra những nhận xét sâu sắc về tính ổn định của hệ thống, đồng thời làm nổi bật những ưu điểm và hạn chế của phương pháp được sử dụng
Chương 6: Kết luận và hướng phát triển
Chương 6 đúc kết lại toàn bộ nghiên cứu về hệ thống đỗ xe song song tự động, bao gồm những ưu điểm, nhược điểm, khó khăn gặp phải và hướng phát triển trong tương lai Trong đó, những ưu điểm của hệ thống được nêu bật, đồng thời chỉ ra các hạn chế và khó khăn cần khắc phục Cuối cùng, chương đề xuất các hướng phát triển tiếp theo để hoàn thiện và nâng cao hiệu quả của hệ thống.
CƠ SỞ LÝ THUYẾT
Giới thiệu về ROS (Robot Operating System)
Nguồn gốc và khái niệm
ROS (Robot Operating System) không phải là một hệ điều hành theo nghĩa truyền thống Thay vào đó, ROS hoạt động như một "meta-operating system" - một framework phần mềm linh hoạt và mạnh mẽ được xây dựng dựa trên nền tảng Linux, cung cấp một hệ sinh thái phong phú gồm các thư viện, công cụ và quy ước để đơn giản hóa quá trình phát triển ứng dụng robot Được tạo ra tại phòng thí nghiệm robot Willow Garage vào năm 2007, ROS ra đời từ nhu cầu cấp thiết trong việc giải quyết thách thức lớn nhất của ngành robot lúc bấy giờ: sự phân mảnh và thiếu khả năng tương tác giữa các phần mềm robot Trước khi ROS xuất hiện, việc phát triển robot thường đồng nghĩa với việc "phát minh lại bánh xe," mỗi nhóm nghiên cứu tự xây dựng phần mềm riêng biệt, dẫn đến sự trùng lặp công sức, khó khăn trong việc chia sẻ mã nguồn và tái sử dụng thành quả nghiên cứu
ROS đã thay đổi hoàn toàn cục diện bằng cách cung cấp một nền tảng chung, cho phép các nhà phát triển robot trên toàn thế giới dễ dàng chia sẻ mã nguồn, tái sử dụng các module phần mềm đã được kiểm chứng, và cộng tác hiệu quả hơn trong việc giải quyết các bài toán robot phức tạp
Kiến trúc và thành phần Chính
ROS được thiết kế theo kiến trúc phân tán, cho phép các chương trình độc lập, được gọi là nút (nodes), giao tiếp và trao đổi dữ liệu với nhau một cách hiệu quả Mô hình phân tán này mang lại sự linh hoạt và khả năng mở rộng cao, cho phép xây dựng các hệ thống robot phức tạp từ những module phần mềm đơn giản hơn
Hình 2 1 Sơ đồ mô hình giao tiếp ROS
Các thành phần chính của ROS bao gồm:
Master (máy chủ): Hoạt động như một trung tâm điều phối, quản lý tên và địa chỉ của các nút, đồng thời cung cấp dịch vụ tra cứu thông tin cho phép các nút kết nối và giao tiếp với nhau
Nodes (nút): Các tiến trình độc lập thực thi các tác vụ cụ thể trong hệ thống robot, ví dụ như thu thập dữ liệu từ cảm biến, điều khiển động cơ, xử lý hình ảnh, lập kế hoạch đường đi, v.v
Topics (chủ đề): Các kênh truyền thông một chiều cho phép các nút xuất bản (publish) và đăng ký nhận (subscribe) dữ liệu Mỗi topic được liên kết với một loại dữ liệu cụ thể, đảm bảo tính nhất quán và dễ dàng xử lý thông tin
Messages (thông điệp): Dữ liệu được trao đổi giữa các nút thông qua các topics ROS cung cấp một tập hợp các message được định nghĩa trước cho các loại dữ liệu phổ biến, đồng thời cho phép người dùng định nghĩa message tùy chỉnh cho các ứng dụng cụ thể
Services (dịch vụ): Cung cấp giao tiếp kiểu yêu cầu-phản hồi (request-response) giữa các nút Một nút có thể yêu cầu một dịch vụ từ một nút khác và nhận được kết quả trả về
Actions (hành động): Tương tự như services, nhưng cho phép theo dõi tiến trình và hủy bỏ hành động đang thực hiện Actions thường được sử dụng cho các tác vụ kéo dài, ví dụ như điều hướng robot đến một vị trí đích
Parameter Server (máy chủ tham số): Một cơ sở dữ liệu được chia sẻ, cho phép các nút lưu trữ và truy xuất các tham số cấu hình
ROS mang đến nhiều ưu điểm vượt trội cho việc phát triển robot:
Mã nguồn mở và miễn phí: ROS được phát hành theo giấy phép mã nguồn mở BSD, cho phép sử dụng, sửa đổi và phân phối lại miễn phí cho cả mục đích học tập, nghiên cứu và thương mại
Cộng đồng lớn mạnh: ROS sở hữu một cộng đồng người dùng và nhà phát triển đông đảo trên toàn thế giới, luôn sẵn sàng hỗ trợ, chia sẻ kiến thức và đóng góp cho sự phát triển của ROS
Khả năng tái sử dụng mã: ROS khuyến khích việc phát triển và sử dụng các gói phần mềm (packages) có thể tái sử dụng, giúp giảm thiểu thời gian và công sức phát triển, đồng thời nâng cao chất lượng và độ tin cậy của phần mềm
Hỗ trợ phần cứng đa dạng: ROS hỗ trợ một loạt các cảm biến, bộ truyền động và nền tảng phần cứng robot phổ biến, giúp dễ dàng tích hợp ROS vào các hệ thống robot khác nhau
Công cụ gỡ lỗi và trực quan hóa mạnh mẽ: ROS cung cấp một bộ công cụ phong phú cho phép gỡ lỗi, trực quan hóa dữ liệu và mô phỏng robot, giúp đơn giản hóa quá trình phát triển và kiểm tra hệ thống
Hình 2 2 Các lĩnh vực ứng dụng của ROS
ROS đã và đang được sử dụng rộng rãi trong nhiều lĩnh vực robot, từ nghiên cứu hàn lâm đến ứng dụng công nghiệp, bao gồm:
Robot di động: Điều hướng tự động, lập bản đồ môi trường, bản địa hóa và lập kế hoạch đường đi cho robot di động trong nhà và ngoài trời
Robot thao tác: Điều khiển cánh tay robot, lập kế hoạch chuyển động, nhận dạng và thao tác đối tượng
Robot bay không người lái (UAV): Điều khiển bay, điều hướng, lập kế hoạch nhiệm vụ, thu thập dữ liệu từ trên cao
Robot dịch vụ: Tương tác người-máy, hỗ trợ người già và người khuyết tật, tự động hóa trong nhà
Gói phần mềm robot_localization và Bộ lọc Kalman mở rộng (EKF)
Gói phần mềm robot_localization trong ROS (Robot Operating System) là một bộ công cụ mạnh mẽ để thực hiện nhiệm vụ định vị (localization) và ước lượng trạng thái (state estimation) cho các robot di động Đây là một gói phần mềm phổ biến và quan trọng trong cộng đồng ROS, hỗ trợ nhiều loại cảm biến và phương pháp ước lượng khác nhau Dưới đây là một số thông tin chi tiết về robot_localization:
Ước lượng trạng thái: robot_localization sử dụng các bộ lọc Kalman mở rộng (Extended Kalman Filter - EKF) và bộ lọc Kalman không tuyến tính (Unscented Kalman Filter - UKF) để ước lượng trạng thái của robot dựa trên các dữ liệu cảm biến đầu vào Trạng thái này bao gồm vị trí, vận tốc, và hướng của robot
Tích hợp cảm biến: Gói phần mềm này có khả năng tích hợp dữ liệu từ nhiều loại cảm biến khác nhau như IMU (Inertial Measurement Unit), GPS, bánh xe đo đường (wheel encoders), và LiDAR Nó cho phép kết hợp và lọc các dữ liệu này để cung cấp thông tin định vị chính xác và ổn định
Hình 2 3 Sơ đồ hệ thống tích hợp IMU và Wheel Encoder cho robot di động
Thành phần đầu tiên của "robot_localization" là "ekf_localization_node", một triển khai của bộ lọc Kalman mở rộng (EKF) Mục tiêu của gói này là bao gồm nhiều nút ROS để ước lượng trạng thái
Phần này tập trung giải thích chi tiết về cách triển khai EKF trong nghiên cứu này, làm rõ những điểm quan trọng Mặc dù nguyên lý chung và cấu trúc thuật toán của EKF đã được thiết lập và có thể tìm thấy ở nhiều nguồn khác nhau, trọng tâm ở đây là các khía cạnh thực tiễn liên quan đến nghiên cứu này [12,13,14] Mục tiêu là ước tính chính xác vị trí và vận tốc của robot di động khi nó di chuyển trong môi trường Nhiệm vụ ước tính này có thể được đóng khung như một bài toán hệ thống động lực phi tuyến [15]
Trong đó 𝑥 𝑘 đại diện cho trạng thái hệ thống của robot (tư thế 3D của nó) tại thời điểm k, f là hàm phi tuyến mô tả quá trình chuyển đổi trạng thái và 𝑤 𝑘−1 đại diện cho nhiễu của quá trình, được giả định tuân theo phân phối chuẩn Vectơ trạng thái x có 12 chiều, bao gồm vị trí 3D của xe, hướng 3D (được biểu thị dưới dạng góc Euler) và vận tốc tương ứng của chúng
Trong đó 𝑧 𝑘 biểu thị phép đo tại thời điểm k, H là hàm phi tuyến ánh xạ trạng thái tới không gian đo và 𝑣 𝑘 là nhiễu đo, cũng được giả định là có phân bố chuẩn
Thuật toán bắt đầu bằng bước dự đoán, như được mô tả trong phương trình (2.3) và (2.4) Bước này liên quan đến việc dự đoán ước tính trạng thái hiện tại và hiệp phương sai lỗi theo thời gian:
Trong ứng dụng cụ thể này, hàm f thể hiện mô hình động học ba chiều thông thường dựa trên cơ học Newton Ma trận hiệp phương sai sai số ước tính, ký hiệu là P, trải qua phép chiếu tiến sử dụng F, đại diện cho Jacobian của f Sau đó, ma trận dự kiến này bị nhiễu bởi
Q, tượng trưng cho hiệp phương sai nhiễu của quá trình
Sau bước dự đoán, một bước hiệu chỉnh sẽ được thực hiện, như được nêu trong các phương trình (2.5) đến (2.7):
𝑃 𝑘 = (𝐼 − 𝐾𝐻)𝑃̂(𝐼 − 𝐾𝐻) 𝑘 𝑇 + 𝐾𝑅𝐾 𝑇 (2.7) Kalman gain được xác định bằng cách sử dụng ma trận quan sát H, ma trận hiệp phương sai đo lường R và ma trận hiệp phương sai lỗi dự đoán 𝑃̂ 𝑘 Gain này sau đó được áp dụng để cập nhật cả vectơ trạng thái và ma trận hiệp phương sai P k Để đảm bảo tính ổn định bộ lọc và duy trì ma trận hiệp phương sai bán xác định dương, phương trình cập nhật hiệp phương sai dạng Joseph được sử dụng [16]
Triển khai này áp dụng một cách tiếp cận đơn giản hóa để phù hợp với nhiều loại cảm biến hơn Một đặc điểm đáng chú ý của "ekf_localization_node" là khả năng thích ứng với việc cập nhật vectơ trạng thái một phần Khả năng này rất quan trọng để tích hợp liền mạch với các nút ước lượng trạng thái trong tương lai trong khuôn khổ "robot_localization", giải quyết hạn chế thực tế là các cảm biến hiếm khi nắm bắt đồng thời tất cả các biến trạng thái Việc cập nhật có chọn lọc này được thực hiện bằng cách cấu hình chiến lược ma trận đo lường H Khi chỉ đo được m trong tổng số biến trạng thái, H có dạng ma trận m x 3với hạng m Các phần tử khác không của nó, cụ thể là các số 1 trong ngữ cảnh này, được đặt một cách chiến lược trong các cột tương ứng với các biến được đo
Giả sử có sự tương ứng trực tiếp giữa các phép đo cảm biến và các biến trạng thái ước tính,
H được đơn giản hóa thành ma trận đơn vị
Việc xác định giá trị phù hợp cho ma trận hiệp phương sai nhiễu quá trình Q [17] thường đòi hỏi điều chỉnh cẩn thận dựa trên ứng dụng cụ thể, đặt ra thách thức thực tế trong việc tinh chỉnh hiệu suất của bộ lọc
Sơ đồ cấu trúc hệ thống phần mềm cho robot di động trong đề tài được trình bày ở hình 2.4
Đường cong B-Spline
Hình 2 5 Đường cong B-Spline Đường cong B-Spline (Basis Spline) là một công cụ nền tảng trong lĩnh vực đồ họa máy tính, thiết kế hình học và mô hình hóa Nổi tiếng với tính trơn mượt và linh hoạt, đường cong B-Spline cho phép tạo ra các hình dạng phức tạp với độ chính xác cao Các đường cong này được xây dựng từ các hàm cơ sở spline và được điều khiển bởi một tập hợp các điểm được gọi là "điểm kiểm soát."
Sự phát triển của đường cong B-Spline có thể được truy nguyên từ những năm 1960, dẫn đầu bởi các nhà toán học và kỹ sư như Isaac Jacob Schoenberg và Carl de Boor Ban đầu được sử dụng trong phân tích số và xấp xỉ hàm, B-Spline nhanh chóng trở nên nổi bật như một công cụ không thể thiếu trong đồ họa máy tính và CAD/CAM (Thiết kế và Sản xuất có sự hỗ trợ của Máy tính) Đặc điểm xác định của đường cong B-Spline nằm ở việc chúng được xây dựng bằng cách sử dụng một tập hợp các hàm cơ sở spline và điểm kiểm soát Các hàm cơ sở spline này, được xây dựng từ các đa thức phân đoạn, sở hữu các thuộc tính quan trọng như tính liên tục và tính trơn mượt Công thức chung cho một đường cong B-Spline bậc (k) [18] được biểu diễn như sau:
u là một tham số của đường cong, nằm trong khoảng [0, 1]
N i p , u là hàm cơ sở B-Spline bậc p
n + 1 là số điểm điều khiển
Hàm cơ sở B-Spline N i p , u được xác định đệ quy qua các bước sau:
𝑢 𝑖+𝑝+1 − 𝑢 𝑖+1 𝑁 𝑖+1,𝑝−1 (𝑢) (2.10) Đường cong B-Spline sở hữu độ mượt mà cao do tính liên tục vốn có của các hàm cơ sở Đặc điểm này cho phép B-Spline tạo ra các đường cong không có góc nhọn, chứng tỏ lợi thế lớn trong thiết kế hình học và đồ họa máy tính Một tính chất quan trọng của B-Spline là khả năng kiểm soát cục bộ Điều này có nghĩa là mỗi điểm kiểm soát chỉ ảnh hưởng đến một phần cụ thể của đường cong Ảnh hưởng cục bộ này đơn giản hóa quá trình điều chỉnh và tinh chỉnh hình dạng của đường cong mà không làm thay đổi cấu trúc tổng thể của nó B-Spline nổi trội trong việc nội suy và xấp xỉ tập dữ liệu với độ chính xác cao Thuộc tính này làm cho chúng lý tưởng cho các ứng dụng như thiết kế bề mặt, tạo đường dẫn chuyển động và phân tích dữ liệu
Trong hệ thống điều hướng và điều khiển robot, đặc biệt là các robot xe sử dụng cơ cấu lái Ackermann, việc lập kế hoạch và theo dõi đường dẫn chính xác là vô cùng quan trọng Đường cong B-Spline, với tính năng mượt mà và khả năng điều chỉnh cục bộ, là một công cụ lý tưởng để tạo ra các đường dẫn cho việc đỗ xe tự động Trong bài toán đỗ xe song song tự động, một trong những thách thức lớn nhất là lập kế hoạch đường dẫn sao cho xe có thể di chuyển vào vị trí đỗ một cách mượt mà và hiệu quả Bằng cách sử dụng đường cong B-Spline, chúng ta có thể tạo ra các đường dẫn mượt mà, không có góc nhọn, giúp giảm thiểu các điều chỉnh đột ngột và tăng cường tính ổn định của xe trong quá trình di chuyển Sau khi lập kế hoạch đường dẫn, việc theo dõi đường dẫn chính xác là bước tiếp theo Các thuật toán theo dõi đường dẫn sử dụng đường cong B-Spline có thể tận dụng tính chất cục bộ của B-Spline để điều chỉnh hướng di chuyển của xe một cách linh hoạt, giúp cải thiện độ chính xác và độ ổn định của quá trình đỗ xe Để thực hiện thành công nhiệm vụ đỗ xe tự động, hệ thống cần phải biết chính xác vị trí của xe trong không gian Đường cong B-Spline có thể được sử dụng để xấp xỉ và nội suy các dữ liệu định vị, giúp cải thiện độ chính xác của hệ thống định vị và hỗ trợ quá trình lập kế hoạch và theo dõi đường dẫn.
Thuật toán Pure Pursuit Algorithm
Hình 2 6 Mô hình Pure Pursuit trong điều khiển robot
Thuật toán Pure Pursuit là một trong những thuật toán phổ biến và hiệu quả nhất để theo dõi đường dẫn trong các hệ thống điều khiển xe tự hành Thuật toán này hoạt động dựa trên nguyên tắc theo đuổi một điểm mục tiêu di chuyển dọc theo đường dẫn đã lập kế hoạch, sao cho xe luôn điều chỉnh hướng di chuyển của mình để hướng tới điểm này Điểm mục tiêu được chọn thường nằm ở một khoảng cách nhất định phía trước xe, gọi là khoảng cách nhìn trước (lookahead distance) Khoảng cách này có thể được điều chỉnh linh hoạt dựa trên tốc độ và các điều kiện vận hành của xe, giúp tối ưu hóa độ chính xác và độ ổn định của quá trình theo dõi đường dẫn
Trong đề tài này, thuật toán Pure Pursuit đóng vai trò quan trọng trong việc theo dõi đường dẫn đã được lập kế hoạch bởi đường cong B-Spline Sau khi đường dẫn đỗ xe được xác định, thuật toán Pure Pursuit sẽ giúp robot xe hơi điều chỉnh hướng di chuyển của mình một cách liên tục để bám sát đường dẫn này Điều này đặc biệt quan trọng trong quá trình đỗ xe song song, nơi mà không gian hạn chế và yêu cầu về độ chính xác cao đòi hỏi xe phải di chuyển một cách mượt mà và chính xác Ưu điểm của thuật toán Pure Pursuit là tính đơn giản và hiệu quả trong việc điều khiển hướng di chuyển của xe Bằng cách luôn hướng tới điểm mục tiêu phía trước, xe có thể duy trì một đường đi mượt mà và tránh được các điều chỉnh đột ngột Điều này giúp cải thiện độ ổn định và an toàn trong quá trình đỗ xe Hơn nữa, khả năng điều chỉnh khoảng cách nhìn trước của thuật toán cho phép nó thích ứng với nhiều tình huống vận hành khác nhau, từ việc di chuyển chậm rãi khi vào bãi đỗ cho đến việc điều hướng trong các môi trường phức tạp hơn
Thuật toán Pure Pursuit hoạt động bằng cách đơn giản hóa bài toán bám theo quỹ đạo thành mối quan hệ hình học giữa xe và một điểm đích trên quỹ đạo mong muốn Điểm đích này được chọn động ở một khoảng cách nhìn trước (l ad ) nhất định dọc theo quỹ đạo Sau đó, thuật toán tính toán góc lái cần thiết để hướng xe về phía điểm này Ưu điểm của Pure Pursuit nằm ở tính đơn giản và dễ dàng triển khai Bằng cách dựa trên các mối quan hệ hình học thay vì các phương trình động học phức tạp, nó cung cấp một chiến lược điều khiển ổn định và hiệu quả về mặt tính toán
Hình 2 7 Giải thích hình học của Pure Pursuit
Hình 2.7 minh họa nguyên lý đánh lái Ackerman, thể hiện mối quan hệ hình học giữa bán kính quay vòng và góc đánh lái của xe Nguyên lý này có thể được biểu diễn bằng công thức toán học như sau [19] : Áp dụng định lý sin trong tam giác GCO, ta có: sin(2𝛼)
Ta rút ra được R như sau:
Từ đó ta tính được độ cong ρ: ρ = 1
𝑙 𝑑 (2.14) Để tính góc đánh lái, ta xét tam giác COA:
Trong đó, R là bán kính quay và là độ cong.
Bộ điều khiển Pure Pursuit- Proportional Integral (PP-PI)
Tuy nhiên, việc phụ thuộc vào hình học này cũng dẫn đến một hạn chế đáng kể Hiệu suất của thuật toán trở nên phụ thuộc rất nhiều vào khoảng cách nhìn trước (l ad ) đã chọn Việc chọn l ad không phù hợp có thể dẫn đến hành vi không mong muốn, đặc biệt là khi sai số bám theo quỹ đạo lớn Xe có thể phản ứng chậm với các khúc cua gấp hoặc dao động quanh quỹ đạo mong muốn nếu l ad không được điều chỉnh chính xác
Bộ điều khiển PI, nền tảng của hệ thống điều khiển phản hồi, hoạt động bằng cách tính toán tín hiệu điều khiển dựa trên tổng trọng số của hai thành phần: sai số tỷ lệ và sai số tích phân Những sai số này phản ánh độ lệch của trạng thái hiện tại của hệ thống so với trạng thái mong muốn Mặc dù điều khiển PI có thể được áp dụng cho hệ thống lái xe tự hành, nhưng bản chất "không cần mô hình" của nó lại có những nhược điểm nhất định trong bối cảnh này
Bộ điều khiển Tỷ lệ-Tích phân (PI) là một cơ chế điều khiển phản hồi kinh điển sử dụng cả thành phần tỷ lệ (P) và tích phân (I) của sai số để tính toán tín hiệu điều khiển Trong ngữ cảnh này, sai số cần được kiểm soát là sai số vị trí ngang, đại diện cho độ lệch tức thời của xe so với quỹ đạo mong muốn
Thành phần tỷ lệ (P): Thành phần này tạo ra tín hiệu điều khiển tỷ lệ thuận với sai số hiện tại giữa giá trị mong muốn và giá trị đo được Hệ số tỷ lệ (𝐾 𝑝 ) quyết định mức độ phản ứng của bộ điều khiển với sai số 𝐾 𝑝 lớn cho phép hệ thống phản ứng nhanh hơn nhưng có thể dẫn đến dao động
Thành phần tích phân (I): Thành phần này tính toán tích phân của sai số theo thời gian Điều này giúp loại bỏ sai số tĩnh - sai số tồn tại ngay cả khi hệ thống đã đạt đến trạng thái ổn định Hệ số tích phân (𝐾 𝑖 ) quyết định mức độ ảnh hưởng của tích phân sai số đến tín hiệu điều khiển 𝐾 𝑖 lớn giúp loại bỏ sai số tĩnh nhanh chóng nhưng có thể làm hệ thống phản ứng chậm
Bộ điều khiển PI tính toán tín hiệu điều khiển u(t) dựa trên sai số e(t) theo công thức sau:
u(t): Tín hiệu điều khiển tại thời điểm t
e(t): Sai số tại thời điểm t (giá trị mong muốn - giá trị đo được)
∫ 𝑒(𝑡)𝑑𝑡: Tích phân của sai số theo thời gian Ưu điểm của việc sử dụng bộ điều khiển PI trong điều khiển góc lái gồm :
Loại bỏ sai số tĩnh: Nhờ thành phần tích phân, bộ điều khiển PI có khả năng loại bỏ hoàn toàn sai số tĩnh, giúp xe đi theo đúng quỹ đạo mong muốn
Cải thiện thời gian đáp ứng: So với bộ điều khiển chỉ có tỷ lệ (P), bộ điều khiển PI có thể đạt được thời gian đáp ứng nhanh hơn và ít dao động hơn
Dễ dàng hiệu chỉnh: Việc hiệu chỉnh bộ điều khiển PI tương đối đơn giản, chỉ cần điều chỉnh hai tham số 𝐾 𝑝 và 𝐾 𝑖
Tuy nhiên mặc dù điểm mạnh của PI nằm ở khả năng xử lý các hệ thống mà việc mô hình hóa chính xác là một thách thức, nhưng việc áp dụng nó cho xe mà không tận dụng các mô hình động học hoặc động lực học có sẵn là không hiệu quả Các mô hình xe, ngay cả khi không hoàn toàn chính xác, cũng cung cấp những hiểu biết về mối quan hệ của hệ thống giữa đầu vào lái và quỹ đạo Việc bỏ qua những mối quan hệ này bằng cách chỉ dựa vào bộ điều khiển PI để lái đòi hỏi phải điều chỉnh tham số phức tạp và có thể không khai thác triệt để khả năng động lực học của xe Để đạt được mục tiêu này, chúng tôi đề xuất sử dụng bộ điều khiển có tên PP_PI, kết hợp giữa dẫn đường hình học của Pure Pursuit và khả năng điều khiển phản hồi của bộ điều khiển PI
Phương pháp kết hợp này nhằm tận dụng khả năng tạo lệnh lái dựa trên hình dạng quỹ đạo mong muốn của Pure Pursuit, đồng thời tận dụng khả năng điều chỉnh động quỹ đạo xe dựa trên sai số bám theo thời gian thực của bộ điều khiển PI Sự kết hợp này giữa phương pháp điều khiển hình học và phản hồi mang lại hiệu suất bám theo quỹ đạo vượt trội so với việc sử dụng riêng lẻ từng phương pháp [20].
THIẾT KẾ VÀ TÍNH TOÁN
Luồng thực hiện chương trình
Hình 3 1 Luồng thực hiện chương trình
Hình 3 2 Lưu đồ giải thuật chính chương trình
Luồng chương trình được trình bày trong sơ đồ này minh họa rõ ràng các quy trình trong việc đỗ xe tự động, giúp chúng ta hiểu rõ hơn về công nghệ và dữ liệu cần thiết để hệ thống hoạt động một cách hiệu quả Các bước này không chỉ đòi hỏi sự phối hợp chính xác giữa phần cứng và phần mềm mà còn phải đảm bảo xe có thể đỗ vào vị trí một cách an toàn và hiệu quả nhất
Phát hiện (Detection): Đây là bước đầu tiên của quá trình đỗ xe tự động Ở giai đoạn này, hệ thống phải tìm kiếm và phát hiện một chỗ đỗ xe phù hợp Điều này được thực hiện thông qua dữ liệu từ các cảm biến LIDAR Cảm biến này đo khoảng cách giữa xe và các vật thể xung quanh để xác định vị trí trống Các cảm biến sẽ quét môi trường xung quanh xe, thu thập thông tin về các vật cản và các khoảng trống có thể đỗ xe Thông tin này sau đó được truyền đến bộ xử lý trung tâm của hệ thống để phân tích và xác định vị trí đỗ xe khả dụng Quá trình này đòi hỏi độ chính xác cao để đảm bảo rằng chỉ những vị trí thực sự phù hợp mới được chọn
Lập kế hoạch đường đi (Path Planning): Sau khi phát hiện được chỗ đỗ xe, bước tiếp theo là lập kế hoạch đường đi để xe có thể di chuyển vào chỗ đỗ một cách an toàn và hiệu quả Giai đoạn này bao gồm việc tính toán quỹ đạo di chuyển, tránh các chướng ngại vật và đảm bảo xe có thể vào chỗ đỗ một cách chính xác Hệ thống phải tính toán các chuyển động cần thiết của xe, bao gồm cả việc điều chỉnh góc lái và tốc độ Các thuật toán lập kế hoạch đường đi sẽ xem xét các yếu tố như kích thước xe, khoảng cách đến các vật cản và các quy tắc đỗ xe để tạo ra một lộ trình tối ưu Điều này đảm bảo rằng xe có thể đỗ vào vị trí một cách mượt mà và không gặp sự cố
Theo dõi đường đi (Path Tracking): Khi kế hoạch đường đi đã được lập, xe cần phải theo dõi và thực hiện theo kế hoạch đó để hoàn thành thao tác đỗ xe Bước này sử dụng phản hồi từ các thiết bị đo lường quán tính (IMU), cung cấp thông tin về hướng và chuyển động của xe, cùng với dữ liệu từ bộ mã hóa bánh xe để đo lường chính xác sự quay của bánh xe Từ đó, hệ thống sẽ điều chỉnh các chuyển động của xe để duy trì và theo dõi đúng quỹ đạo đã được lập kế hoạch Trong suốt quá trình này, hệ thống phải liên tục theo dõi và điều chỉnh hướng đi của xe để đảm bảo rằng xe đi đúng lộ trình Các cảm biến và thiết bị đo lường sẽ gửi thông tin phản hồi theo thời gian thực về tình trạng di chuyển của xe, giúp hệ thống điều chỉnh kịp thời nếu có sai lệch
Hoàn thành đỗ xe (Parking Done): Đây là giai đoạn cuối cùng, khi xe đã đỗ thành công vào vị trí đã định Hệ thống sẽ xác nhận rằng xe đã ở đúng vị trí đỗ và dừng lại Lúc này, các cảm biến và hệ thống điều khiển sẽ ngừng hoạt động hoặc chuyển sang chế độ chờ để tiết kiệm năng lượng Giai đoạn này đảm bảo rằng xe được đỗ một cách an toàn, không gây cản trở cho các xe khác và nằm trong giới hạn của vị trí đỗ đã chọn.
Thuật toán tìm không gian đỗ xe
Dữ liệu đám mây điểm (point cloud data), một khái niệm cơ bản trong phân tích không gian 3D, bao gồm một tập hợp các điểm, trong đó mỗi điểm được xác định bởi tọa độ duy nhất của nó trong không gian ba chiều Cấu trúc dữ liệu này cung cấp một biểu diễn toàn diện về môi trường xung quanh, cho phép các thuật toán nhận thức và diễn giải thế giới xung quanh Trong bối cảnh của hệ thống đỗ xe tự động, dữ liệu đám mây điểm đóng một vai trò quan trọng trong việc xác định không gian đỗ xe phù hợp
Các kết quả thực nghiệm và mô phỏng đã xác định các kích thước cụ thể của bãi đỗ xe cần thiết cho việc đỗ xe thành công Các phát hiện cho thấy chiều dài của bãi đỗ xe phải bằng ít nhất hai lần chiều dài của xe đang cố gắng đỗ Sự cho phép rộng rãi này đảm bảo rằng xe có đủ không gian để di chuyển và căn chỉnh trong khu vực chỉ định Ngoài ra, chiều rộng của bãi đỗ xe phải chứa được không chỉ chiều rộng của xe mà còn bao gồm cả lề an toàn ở bên phải Khoảng trống thêm này là cần thiết để ngăn ngừa va chạm và cho phép sai số nhỏ trong quỹ đạo đỗ xe Để xác định một không gian đỗ xe phù hợp, thuật toán sử dụng một phương pháp tiếp cận có hệ thống, tận dụng thông tin phong phú có trong dữ liệu đám mây điểm Thuật toán phân tích dữ liệu, tìm kiếm một khu vực đáp ứng các tiêu chí kích thước đã định Nó đánh giá xem một vùng hình chữ nhật, với chiều dài gấp đôi chiều dài của xe và chiều rộng bằng chiều rộng của xe cộng với lề an toàn, hiện có đang bị bỏ trống hay không Nếu phát hiện ra một khoảng trống như vậy, thuật toán sẽ đánh dấu việc phát hiện là thành công, cho thấy rằng một điểm đỗ xe thích hợp đã được tìm thấy
Tuy nhiên, nếu lần quét ban đầu không tìm thấy khoảng trống nào đáp ứng các tiêu chí bắt buộc, thuật toán sẽ tiếp tục tìm kiếm, phân tích dữ liệu đám mây điểm, lặp đi lặp lại kiểm tra các khu vực khác nhau cho đến khi xác định được một điểm đỗ xe phù hợp
Hình 3 3 Thuật toán tìm chỗ đỗ xe
Sơ đồ của thuật toán phát hiện không gian đỗ xe được thể hiện trực quan trong hình 3.2 Hình minh họa này cung cấp một cái nhìn tổng quan rõ ràng và xúc tích về luồng của thuật toán, thể hiện các bước chính liên quan đến việc phân tích dữ liệu đám mây điểm và xác định sự hiện diện của một điểm đỗ xe phù hợp Bằng cách tham khảo hình này, người đọc có thể hiểu sâu hơn về logic của thuật toán và đánh giá cao cách tiếp cận có hệ thống được sử dụng trong việc giải quyết các thách thức của việc đỗ xe tự động.
Thiết kễ quỹ đạo đỗ xe
Một đường đi đỗ xe song song thường được đề xuất bao gồm hai cung tròn, tạo ra một kết nối tiếp tuyến Tuy nhiên, phương pháp tiếp cận này có một số nhược điểm, bao gồm sự gián đoạn độ cong dọc theo đường đi, làm tăng sự hao mòn lốp xe và gánh nặng tính toán cao hơn cho hệ thống điều khiển Để giải quyết những vấn đề này, một đường tham chiếu dựa trên đường cong B-spline đã được đề xuất Việc sử dụng đường cong B-spline đảm bảo độ cong liên tục trong suốt quỹ đạo đỗ xe, loại bỏ sự thay đổi đột ngột của góc lái Hơn nữa, phương pháp này ngăn không cho vô lăng dao động giữa các vị trí cực đại tại các điểm uốn, dẫn đến một động tác đỗ xe mượt mà và hiệu quả hơn
Hình 3 4 So sánh góc lái của hai quỹ đạo
Hình 3.3 cho thấy rõ ràng sự khác biệt giữa quỹ đạo đường tròn tiếp tuyến và quỹ đạo B-spline trong việc tạo ra các động tác đỗ xe Quỹ đạo đường tròn tiếp tuyến dẫn đến sự thay đổi đột ngột góc lái tại điểm giữa, chuyển đổi mạnh từ giá trị tối đa sang giá trị tối thiểu Ngược lại, quỹ đạo B-spline thể hiện sự thay đổi góc lái mượt mà và ổn định, loại bỏ sự thay đổi bước nhảy góc đột ngột quan sát thấy trong phương pháp đường tròn tiếp tuyến Điều này chứng minh hiệu suất vượt trội của đường cong B-spline trong việc tạo ra các động tác đỗ xe mượt mà và hiệu quả hơn Đường cong B-spline mang lại nhiều lợi ích trong việc lập kế hoạch đường đi đỗ xe Nó giảm sự hao mòn lốp xe bằng cách tránh thay đổi góc lái đột ngột và giảm gánh nặng tính toán cho hệ thống điều khiển Đường cong B-spline cũng cung cấp tính linh hoạt cao trong việc tùy chỉnh quỹ đạo, cho phép tạo ra các quỹ đạo tối ưu trong các môi trường đỗ xe phức tạp Ngoài ra, nó tạo ra các quỹ đạo mượt mà và thẩm mỹ, nâng cao trải nghiệm của người ngồi trên xe
Hình 3.4 thể hiện một đường cong B-spline được thiết kế cho động tác đỗ xe song song Đường cong bắt đầu tại tọa độ (𝑥 1 , 𝑦 1 ) và kết thúc tại (𝑥 0 , 𝑦 0 ) Gốc của hệ tọa độ được căn chỉnh với vị trí của xe sau khi hoàn thành giai đoạn phát hiện không gian đỗ xe Do đó, 𝑥 1 và 𝑦 0 đều được đặt bằng 0
Hình 3 5 Xác định tọa độ cho đường cong B-Spline
Tọa độ 𝑥 0 được xác định bằng cách xem xét phạm vi quét của lidar ở góc 90 độ Khoảng cách này được trừ đi từ tổng của một nửa chiều rộng của xe và một khoảng cách an toàn xác định trước từ tường, thiết lập vị trí đỗ xe ngang mong muốn
Thông qua các thử nghiệm thực nghiệm và tính toán, một mối quan hệ tối ưu giữa 𝑥 0 và 𝑦 1 đã được xác định là 𝑦 1 = 4𝑥 0 Tỷ lệ cụ thể này đảm bảo tính tương thích với các giới hạn góc lái của xe trong khi giảm thiểu tổng quãng đường di chuyển trong quá trình đỗ xe
Khoảng cách giữa xe và tường ảnh hưởng đáng kể đến quỹ đạo đỗ xe Khi khoảng cách tăng lên, một quãng đường dài hơn là cần thiết để xe có thể di chuyển vào không gian đỗ xe Điều này đòi hỏi việc điều chỉnh các thông số của đường cong B-spline để tạo ra một quỹ đạo phù hợp, tính đến các ràng buộc không gian và đảm bảo an toàn trong quá trình đỗ xe
Việc sử dụng đường cong B-spline cho phép tạo ra các quỹ đạo đỗ xe tối ưu, tùy chỉnh theo các điều kiện cụ thể của môi trường đỗ xe Bằng cách điều chỉnh tỷ lệ giữa 𝑥 0 và 𝑦 1 , cũng như xem xét khoảng cách từ xe đến tường, có thể tạo ra các quỹ đạo mượt mà và hiệu quả, giảm thiểu quãng đường di chuyển và đảm bảo an toàn trong quá trình đỗ xe.
Thiết kế bộ điều khiển PP_PI
Một mô hình động lực học xe chính xác là nền tảng cơ bản để phát triển các thuật toán lập kế hoạch đường đi đỗ xe hiệu quả Mô hình được chọn không chỉ quyết định quỹ đạo của xe trong quá trình đỗ xe mà còn ảnh hưởng trực tiếp đến độ phức tạp của các chiến lược điều khiển theo dõi đường đi tiếp theo
Hình 3 6 Mô hình động học của xe
Trạng thái chuyển động của xe được biểu thị bởi tọa độ tâm của trục sau của xe liên quan đến hệ tọa độ quán tính (OXY) Tọa độ (x, y) của tâm trục sau xe trong hệ tọa độ quán tính Thông thường, phương trình trạng thái của một chiếc xe Ackermann sẽ bao gồm các biến trạng thái như:
: góc định hướng của xe so với trục X
v r : vận tốc dọc trục (v) của xe
f : góc lái của bánh xe trước
L : chiều dài cơ sở của xe
Ta có mô hình xe động học được mô tả như sau [21] :
Bộ điều khiển Pure-pursuit-PI là sự kết hợp giữa thuật toán Pure Pursuit và bộ điều khiển
PI (Proportional-Integral) nhằm mục đích điều khiển hệ thống theo dõi đường đi mong muốn một cách chính xác và hiệu quả Hình 3.7 mô tả cấu trúc khối của bộ điều khiển này với các thành phần và công thức toán học tính toán
Hình 3 7 Cấu trúc của Pure Pursuit - PI Controller
là đầu ra góc đánh lái cuối cùng
Các Thành Phần Chính Của Bộ Điều Khiển:
Location: Vị trí hiện tại của hệ thống
Desired path: Đường đi mong muốn mà hệ thống cần theo dõi
Tracking Error (e): Sai số giữa vị trí hiện tại và đường đi mong muốn
Các Khối Điều Khiển Chính:
Proportional Controller (Kp): Bộ điều khiển tỷ lệ tạo ra tín hiệu điều khiển tỷ lệ thuận với sai số hiện tại
Integral Controller (Ki): Bộ điều khiển tích phân tạo ra tín hiệu điều khiển tỷ lệ thuận với tổng hợp các sai số trong quá khứ
Pure Pursuit Algorithm: Thuật toán Pure Pursuit tạo ra tín hiệu điều khiển dựa trên hình học của việc theo dõi đường đi
Tín Hiệu Điều Khiển Tổng Hợp:
Tín hiệu điều khiển tổng hợp (δ(t)): Tổng hợp của các thành phần điều khiển tỷ lệ, tích phân và Pure Pursuit.
THI CÔNG HỆ THỐNG
Chi tiết phần cứng
Hình 4 2 Sơ đồ khối hệ thống
Khối xử lý trung tâm
Jetson Nano B1: Đây là khối xử lý trung tâm, đảm nhiệm vai trò tính toán chính và xử lý dữ liệu Jetson Nano B1 sẽ thực hiện các nhiệm vụ như nhận và phân tích dữ liệu từ các cảm biến (RP Lidar, IMU), hiển thị kết quả trên màn hình và điều khiển hệ thống
Arduino Uno: Đóng vai trò là bộ điều khiển ngoại vi, Arduino nhận lệnh từ Jetson Nano và thực hiện điều khiển động cơ cũng như các thiết bị khác Nó có thể đọc các tín hiệu từ cảm biến và truyền thông tin này đến Jetson Nano nếu cần thiết Và ra quyết định điều khiển các động cơ
RP Lidar: Sử dụng để quét và tạo bản đồ môi trường xung quanh bằng cách đo khoảng cách sử dụng tia laser
IMU948: Đo lực gia tốc, tốc độ góc và đôi khi là từ trường xung quanh để cung cấp thông tin về vị trí và chuyển động của hệ thống
Encoder: Cung cấp thông tin về tốc độ và vị trí của động cơ, quan trọng cho việc điều khiển chuyển động chính xác
Khối điều khiển động cơ
Servo Motor MG996R: Động cơ servo cho phép điều khiển chính xác góc đánh lái bánh trước của xe để bám theo quỹ đạo
JGB37 DC Motor: Động cơ chính điều khiển chính xác tốc độ bánh sau của xe
Keyboard: Thiết bị đầu vào cho phép người dùng nhập lệnh hoặc điều khiển hệ thống
Cung cấp năng lượng cho toàn bộ hệ thống, bao gồm Jetson Nano, Arduino, các cảm biến và động cơ
4.2.1 Khối xử lý trung tâm
Jetson Nano B1 là một bộ xử lý nhúng mạnh mẽ do NVIDIA phát triển, được thiết kế để thực hiện các tác vụ học máy và xử lý hình ảnh trong thời gian thực Đây là một phần của dòng sản phẩm Jetson, nổi tiếng với khả năng xử lý AI mạnh mẽ và tiêu thụ năng lượng thấp, phù hợp cho các ứng dụng nhúng và robot
Jetson Nano B1 có các ưu điểm nổi bật:
Bảng 4 1 Bảng thông số kỹ thuật Jetson Nano B1
Thông số kỹ thuật Giá trị
Bộ xử lý (CPU) Quad-core ARM Cortex-A57 MPCore
Bộ xử lý đồ họa 128-core Maxwell
Thông số kỹ thuật Giá trị
Bộ nhớ (RAM) 4 GB LPDDR4
Bộ nhớ lưu trữ microSD (có thể mở rộng)
Hệ điều hành Linux (Ubuntu-based JetPack SDK)
Kết nối mạng Gigabit Ethernet
Kết nối không dây Không tích hợp sẵn (có thể thêm module Wi-Fi/Bluetooth qua
Nguồn điện 5V 4A (qua jack barrel hoặc micro-USB)
Các tính năng khác - Hỗ trợ Deep Learning, Computer Vision, và AI frameworks
- Bộ nguồn cần thiết: 5V 4A DC barrel jack hoặc micro-USB
Trong đồ án này, Jetson Nano B1 đóng vai trò là bộ não của xe robot, đảm nhiệm các tác vụ xử lý phức tạp:
Xử lý dữ liệu từ các cảm biến (IMU, LiDAR ) để nhận diện môi trường xung quanh, phát hiện chướng ngại vật và vị trí chỗ đậu xe trống
Kết hợp dữ liệu cảm biến và EKF_localization để xác định vị trí và tư thế chính xác của xe trong môi trường
Tính toán đường đi tối ưu cho xe robot di chuyển đến chỗ đậu xe dựa trên thông tin bản đồ và vị trí mục tiêu
Gửi tín hiệu điều khiển đến các bộ truyền động của xe (động cơ, bánh lái) để điều khiển xe di chuyển theo đường đi đã lập kế hoạch
Với khả năng xử lý mạnh mẽ, tiết kiệm năng lượng và hỗ trợ phần mềm đa dạng, Jetson Nano B1 là lựa chọn lý tưởng để triển khai các thuật toán AI và điều khiển phức tạp cho đồ án xe robot tự động đỗ xe song song Nó giúp xe có thể nhận diện môi trường, định vị bản thân, lập kế hoạch đường đi và điều khiển chuyển động một cách tự động và chính xác
RP Lidar (Robopeak Lidar) là một loại cảm biến quang học dùng để đo khoảng cách bằng công nghệ laser Nó có những đặc điểm nổi bật sau:
Bảng 4 2 Bảng thông số kỹ thuật RP Lidar
Thông số kỹ thuật Giá trị Điện áp hoạt động 5V DC
Tần số quét 5.5 Hz (standard mode) - 10 Hz (express mode) Độ phân giải góc ≤ 1°
Thông số kỹ thuật Giá trị
Tốc độ dữ liệu 256000 bps Độ chính xác < 1% của khoảng cách đo
Kích thước - Đường kính: 98 mm
Trong đồ án, RP Lidar đóng vai trò quan trọng trong việc cung cấp dữ liệu cảm biến cho các thuật toán xử lý:
Phát hiện chướng ngại vật: Dữ liệu từ RP Lidar cho phép phát hiện các chướng ngại vật xung quanh xe, như tường, cột, các phương tiện khác Thông tin này được sử dụng trong thuật toán lập kế hoạch đường đi và điều khiển chuyển động để tránh va chạm
Nhận diện vị trí đỗ xe: Bằng cách phân tích dữ liệu Lidar, thuật toán có thể nhận diện các vị trí đỗ xe trống dựa trên khoảng cách đến các vật thể xung quanh Điều này giúp xe tự động tìm kiếm và lựa chọn vị trí đỗ phù hợp
Hỗ trợ điều khiển chuyển động: Trong quá trình di chuyển vào vị trí đỗ, dữ liệu từ
RP Lidar được sử dụng để tính toán quỹ đạo và điều chỉnh chuyển động của xe Nó giúp xe di chuyển chính xác và an toàn, tránh va chạm với các chướng ngại vật
Ngoài ra, RP Lidar còn có thể được sử dụng kết hợp với các cảm biến khác như camera, cảm biến siêu âm để cải thiện độ chính xác và tin cậy của hệ thống Việc kết hợp dữ liệu từ nhiều nguồn giúp khắc phục những hạn chế của từng loại cảm biến riêng lẻ
Với những ưu điểm về tốc độ quét nhanh, độ chính xác cao, tầm hoạt động rộng và khả năng cung cấp dữ liệu chi tiết về môi trường, RP Lidar là một thành phần không thể thiếu trong việc phát triển thuật toán đỗ xe tự động cho xe robot Nó cho phép xe nhận thức được môi trường, định vị bản thân, phát hiện chướng ngại vật, lập kế hoạch đường đi và điều khiển chuyển động một cách tự động và an toàn
IMU948 là một module cảm biến quán tính (Inertial Measurement Unit) được phát triển bởi công ty DFRobot Nó có các thông số sau:
Bảng 4 3 Bảng thông số kỹ thuật IMU948
Thông số kỹ thuật Giá trị Điện áp hoạt động 3.3V - 5V DC
Cảm biến 9 trục: 3 trục gia tốc, 3 trục con quay, 3 trục từ kế
Gia tốc kế - Phạm vi đo: ±2g, ±4g, ±8g, ±16g
- Tốc độ lấy mẫu: lên đến 1 kHz
Con quay hồi chuyển - Phạm vi đo: ±250°/s, ±500°/s, ±1000°/s, ±2000°/s
- Tốc độ lấy mẫu: lên đến 1 kHz
Từ kế - Phạm vi đo: ±4800 àT
- Tốc độ lấy mẫu: lên đến 100 Hz
Giao tiếp I2C, SPI Độ chính xác nhiệt độ ±0.5°C
Nhiệt độ hoạt động -40°C đến +85°C
Kích thước 21 mm x 18 mm x 3 mm
Các đặc điểm nổi bật của IMU948 bao gồm:
Kích thước nhỏ gọn: IMU948 có kích thước chỉ 25.8 x 23.0 x 3.1 mm, rất phù hợp để tích hợp vào các hệ thống robot di động
Giao tiếp I2C: IMU948 sử dụng giao thức truyền thông I2C để kết nối với vi điều khiển, giúp đơn giản hóa việc đấu nối và lập trình
Tính ổn định cao: Các cảm biến trong IMU948 có độ ổn định cao, ít bị ảnh hưởng bởi nhiễu và nhiệt độ môi trường
Dễ sử dụng: IMU948 được cung cấp kèm theo thư viện và ví dụ mã nguồn, giúp người dùng dễ dàng tích hợp vào dự án của mình
Trong đồ án, IMU948 đóng vai trò quan trọng trong việc cung cấp dữ liệu cảm biến để định vị và điều khiển chuyển động của xe robot:
Định vị (Localization): Dữ liệu từ IMU948 được sử dụng để ước lượng vị trí và hướng của xe robot trong không gian Bằng cách tích hợp dữ liệu gia tốc và tốc độ góc theo thời gian, ta có thể tính toán được quỹ đạo chuyển động của xe Kết hợp với dữ liệu từ các cảm biến khác như encoder thuật toán định vị có thể xác định chính xác vị trí và hướng của xe trong môi trường
Ước lượng tư thế (Pose Estimation): IMU948 cung cấp thông tin về góc nghiêng (roll), góc lắc (pitch) và góc xoay (yaw) của xe robot Điều này rất quan trọng để xác định tư thế của xe trong không gian 3D, đặc biệt khi xe di chuyển trên địa hình không bằng phẳng Dữ liệu tư thế giúp điều chỉnh quỹ đạo chuyển động và duy trì sự ổn định của xe
Hỗ trợ điều khiển chuyển động: Dữ liệu từ IMU948 được sử dụng trong thuật toán điều khiển chuyển động của xe Ví dụ, khi xe đang di chuyển vào vị trí đỗ, dữ liệu góc xoay từ IMU948 giúp xác định góc lái cần thiết để xe di chuyển theo quỹ đạo mong muốn Dữ liệu gia tốc cũng có thể được sử dụng để ước lượng lực tác động lên xe, từ đó điều chỉnh tốc độ và gia tốc cho phù hợp
Cải thiện độ tin cậy: Kết hợp dữ liệu từ IMU948 với các cảm biến khác như Lidar, camera giúp cải thiện độ chính xác và tin cậy của hệ thống Ví dụ, khi Lidar bị che khuất tầm nhìn do vật cản, dữ liệu từ IMU948 vẫn có thể giúp ước lượng chuyển động của xe trong một khoảng thời gian ngắn Điều này giúp duy trì sự ổn định và an toàn của hệ thống
Phát hiện lỗi: Dữ liệu bất thường từ IMU948 có thể được sử dụng để phát hiện lỗi hoặc trục trặc trong hệ thống Ví dụ, nếu dữ liệu gia tốc vượt quá ngưỡng cho phép, có thể xe đang gặp sự cố về động cơ hoặc hệ thống truyền động Việc phát hiện sớm các lỗi giúp ngăn ngừa hư hỏng và đảm bảo an toàn cho hệ thống
Sơ đồ cấu trúc hệ thống
Hệ thống này bao gồm các thành phần cho việc định vị, lập kế hoạch đường đi và theo dõi, rất quan trọng để triển khai thuật toán này
Hình 4 10 Sơ đồ cấu trúc phần mềm cho hệ thống robot di động
Máy Tính: Có thể được sử dụng để giám sát ở mức độ cao và có thể để phát triển và kiểm tra thuật toán ban đầu Nó kết nối với hệ thống phần cứng qua WiFi, cho phép điều khiển từ xa và thu thập dữ liệu
Hệ Thống Phần Cứng (Lớp Xử Lý):
Cảm Biến IMU (Inertial Measurement Unit): Cảm biến này cung cấp dữ liệu về hướng và gia tốc, giúp theo dõi chuyển động và vị trí của robot
LIDAR (Light Detection and Ranging): LIDAR được sử dụng để lập bản đồ môi trường và phát hiện chướng ngại vật, rất quan trọng cho việc lập kế hoạch đường đi và tránh va chạm
Jetson Nano B01: Một module tính toán AI mạnh mẽ xử lý dữ liệu từ IMU và LIDAR Jetson Nano xử lý các tính toán phức tạp như thuật toán định vị, lập kế hoạch đường đi và theo dõi
Màn Hình: Kết nối với Jetson Nano để hiển thị dữ liệu và trạng thái hệ thống theo thời gian thực, hữu ích cho việc gỡ lỗi và giám sát hiệu suất của robot
Encoder Bánh Xe: Kết nối với Arduino Uno, encoder bánh xe đo lường sự quay của bánh xe, cung cấp phản hồi để điều khiển chính xác chuyển động của robot
Arduino Uno: Một vi điều khiển quản lý việc điều khiển cấp thấp của động cơ dựa trên các lệnh từ Jetson Nano Arduino xử lý các nhiệm vụ điều khiển thời gian thực, đảm bảo kích hoạt đáp ứng và chính xác
Động Cơ JGB37: Một động cơ bánh răng được điều khiển bởi Arduino Uno, chịu trách nhiệm lái bánh xe của robot
Động Cơ Servo: Cũng được điều khiển bởi Arduino Uno, động cơ này có thể được sử dụng để điều khiển hướng của robot, thực hiện hình học lái Ackermann cần thiết cho việc đỗ xe song song
Luồng Dữ Liệu và Tương Tác:
Cảm Biến (IMU và LIDAR) thu thập dữ liệu về môi trường của robot và chuyển động của chính nó
Jetson Nano xử lý dữ liệu này để thực hiện các phép tính định vị, lập kế hoạch đường đi và theo dõi
Các lệnh từ Jetson Nano được gửi đến Arduino Uno, điều khiển Động Cơ JGB37 (để lái) và Động Cơ Servo (để điều khiển hướng)
Phản hồi từ Encoder Bánh Xe tới Arduino Uno đảm bảo điều khiển chuyển động chính xác
Máy Tính kết nối qua WiFi có thể giám sát và có thể điều khiển nếu cần
Hệ thống này cung cấp một khung hoàn chỉnh để triển khai thuật toán đỗ xe tự động song song, sử dụng các thành phần để định vị chính xác, lập kế hoạch đường đi hiệu quả và theo dõi và điều khiển chính xác xe robot Ackermann.
KẾT QUẢ - NHẬN XÉT – ĐÁNH GIÁ
Kết quả
Mô phỏng được thực hiện bằng Python, với quỹ đạo được hiển thị bằng Matplotlib, như minh họa trong Hình 5.1 Góc định hướng lý tưởng của xe so với trục x được xác định bằng cách tính toán độ dốc giữa hai tọa độ liên tiếp dọc theo quỹ đạo Điều này cho phép đánh giá khả năng va chạm với chướng ngại vật hoặc tường trong điều kiện lý tưởng, như minh họa từ Hình 5.2 đến Hình 5.4 Các thông số của quỹ đạo và bãi đậu xe được trình bày chi tiết trong Bảng 5.1
Kết quả cho thấy khoảng cách dọc theo trục x giữa điểm đầu và điểm cuối của quỹ đạo đỗ xe càng lớn thì quãng đường di chuyển càng dài Tuy nhiên, điều này yêu cầu bãi đậu xe lớn hơn và bán kính quay vòng rộng hơn để xe có thể cơ động
Xem xét một chiếc xe mô phỏng với chiều dài 0,6 và chiều rộng 0,2, khoảng cách |𝑥 1 − 𝑥 0 | được thay đổi từ 0,25m đến 0,35m Nếu khoảng cách lớn hơn nữa, nó sẽ không tối ưu và không phù hợp với chỗ đậu xe thực tế
Trường hợp 1 khi |𝑥 1 − 𝑥 0 | = 0.25m (Hình 5.2, 5.5): Cho quỹ đạo đỗ xe ngắn nhất, giảm thiểu không gian đậu xe cần thiết Tuy nhiên, trường hợp này cũng xuất hiện sai số lớn nhất, lên tới 0,1m, xảy ra trong giai đoạn đánh lái ban đầu khi xe tiến đến góc lái âm nhỏ nhất (-0.62 rad) trong nửa đầu của đường cong B-Spline
Trường hợp 2 khi |𝑥 1 − 𝑥 0 | = 0.3m (Hình 5.3, 5.6): Quỹ đạo dài hơn so với Hình 5.2, yêu cầu nhiều không gian đậu xe hơn Tuy nhiên, cấu hình này làm giảm sai số tối đa xuống chỉ còn 0.05m do quỹ đạo dài hơn, giảm bớt nhu cầu đánh lái góc lớn để duy trì đường đi mong muốn
Trường hợp 3 khi |𝑥 1 − 𝑥 0 | = 0.35m (Hình 5.4, 5.7): Cho quỹ đạo dài nhất và do đó, yêu cầu không gian đậu xe lớn nhất Tuy nhiên, cấu hình này cũng mang lại sai số nhỏ nhất, chỉ 0.03m
Bảng 5 1 Thông số bãi đỗ xe mô phỏng
Hình 5 1 Quá trình mô phỏng cảnh đỗ xe song song
Hình 5 2 Mô phỏng đỗ xe trong trường hợp 1
Hình 5 3 Mô phỏng đỗ xe trong trường hợp 2
Hình 5 4 Mô phỏng đỗ xe trong trường hợp 3
Hình 5 5 Đồ thị góc đánh lái trong trường hợp 1 trong bảng 5.1
Hình 5 6 Đồ thị góc đánh lái trong trường hợp 2 trong bảng 5.1
Hình 5 7 Đồ thị góc đánh lái trong trường hợp 3 trong bảng 5.1
Hình 5 8 Đồ thị sai số ngang trong trường hợp 1 trong bảng 5.1
Hình 5 9 Đồ thị sai số ngang trong trường hợp 2 trong bảng 5.1
Hình 5 10 Đồ thị sai số ngang trong trường hợp 3 trong bảng 5.1
Kết quả thực nghiệm
Bảng 5 2 Thông số xe thực tế
Bảng 5 3 Thông số chỗ đỗ xe thực tế
Hình 4.1 trình bày tổng quan về phần cứng của hệ thống được sử dụng trong thực nghiệm
Sơ đồ kiến trúc phần cứng được thể hiện trong hình 4.10 Quá trình phát hiện tập trung vào hai trạng thái: không gian đỗ xe có vật cản và không gian đỗ xe trống phù hợp để đỗ xe Quá trình này đạt được độ chính xác 98% trong điều kiện phòng thí nghiệm, như minh họa trong Hình 5.11
Các thông số thực nghiệm được trình bày trong Bảng 5.2 và Bảng 5.3 và kết quả quá trình tìm chỗ đỗ được thể hiện trong hình 5.12 và hình 5.13.Kết quả điều khiển bám quỹ đạo, sai số ngang và góc đánh lái được trình bày từ hình 5.14 đến hình 5.25 lần lượt cho ba trường hợp
Hình 5 11 Các bước đỗ xe trong mô hình bãi đỗ xe được thiết kế trong phòng thí nghiệm 5.2.1 Kết quả phát hiện không gian trống đỗ xe
Hình 5 12 Kết quả phát hiện thực tế chỗ đỗ xe có chướng ngại vật
Hình 5 13 Kết quả phát hiện thực tế chỗ đỗ xe trống 5.2.2 Kết quả điều khiển bám quỹ đạo
Hình 5 14 Theo dõi đường đỗ xe trong trường hợp 1
Hình 5 15 Lateral error trong trường hợp thí nghiệm thực tế 1
Hình 5 16 Đồ thị góc đánh lái trong trường hợp 1
Hình 5 17 Vị trí của xe sau khi đỗ thành công trong trường hợp 1
Hình 5 18 Theo dõi đường đỗ xe trong trường hợp 2
Hình 5 19 Lateral error trong trường hợp thí nghiệm thực tế 2
Hình 5 20 Đồ thị góc đánh lái trong trường hợp 2
Hình 5 21 Vị trí của xe sau khi đỗ thành công trong trường hợp 2
Hình 5 22 Theo dõi đường đỗ xe trong trường hợp 3
Hình 5 23 Lateral error trong trường hợp thí nghiệm thực tế 3
Hình 5 24 Đồ thị góc đánh lái trong trường hợp 3
Hình 5 25 Vị trí của xe sau khi đỗ thành công trong trường hợp 3
Đánh giá và nhận xét
Kết quả thực nghiệm cho thấy:
Trường hợp 1 (Hình 5.14, 5.15, 5.16): Với khoảng cách d = 0.65m, xe di chuyển gần như hoàn hảo theo quỹ đạo Sai số tối đa là 1.8 cm và phạm vi sai số là 2.6 cm Góc lái thay đổi ổn định, gần như trùng khớp với góc lái lý thuyết
Trường hợp 2 (Hình 5.18, 5.19, 5.20): Với khoảng cách d = 0.6m, sai số tối đa xấp xỉ 4cm (dấu trừ cho biết độ lệch sang phải của quỹ đạo), chủ yếu ở đoạn cuối khi xe tự căn chỉnh vào giữa chỗ đậu xe, và phạm vi sai số là 5 cm Góc lái cũng không thay đổi đột ngột nhưng có sự tăng không đều (từ giây 18 đến 20) so với góc lái lý thuyết
Trường hợp 3 (Hình 5.22, 5.23, 5.24): Với khoảng cách d giảm xuống 0.57m, sai số tối đa gần -6cm và phạm vi sai số tổng thể là 6.2cm Việc xe di chuyển gần chỗ đậu xe hơn dẫn đến quỹ đạo ngắn hơn và góc lái ổn định hơn, gần với dự đoán lý thuyết Tuy nhiên, việc đạt được quỹ đạo hoàn hảo là bất khả thi do giới hạn trong khả năng đánh lái của phần cứng đối với các quỹ đạo ngắn như vậy
Hình 5.26 so sánh làm nổi bật trực quan sự khác biệt về hiệu suất giữa hai phương pháp điều khiển:
Điều khiển Pure Pursuit thuần túy: Phương pháp này có thể biểu hiện dao động trước khi đạt được sự ổn định Hơn nữa, về cuối quỹ đạo, chiếc xe sẽ đi chệch khỏi đường đi mong muốn do phụ thuộc nhiều vào khoảng cách nhìn về phía trước
Điều khiển PP-PI: Cách tiếp cận này thể hiện độ ổn định được cải thiện, cho phép hệ thống hội tụ và theo sát quỹ đạo mong muốn với độ dao động giảm đáng kể
Vị trí đỗ xe cuối cùng của xe, như được mô tả trong Hình 5.7, 5.21 và 5.25, chứng minh rằng khoảng cách giữa xe và tường được duy trì nhất quán ở mức xấp xỉ 8cm, tuân thủ khoảng cách an toàn đã xác định trước Ngoài ra, khoảng cách an toàn với cả xe phía trước và phía sau đều được giữ nguyên, vượt quá 1/3 chiều dài của xe
Kết quả của các thực nghiệm này cung cấp những hiểu biết quan trọng về mối quan hệ giữa khoảng cách ban đầu giữa xe và không gian đỗ, độ chính xác của việc theo dõi quỹ đạo, và khả năng đáp ứng của hệ thống phần cứng Khi khoảng cách d giảm, sai số trong việc theo dõi quỹ đạo tăng lên, cho thấy những thách thức trong việc điều khiển chính xác ở khoảng cách gần Những phát hiện này có ý nghĩa trong việc tối ưu hóa thiết kế hệ thống đỗ xe tự động, đảm bảo sự cân bằng giữa không gian đỗ xe, độ chính xác và giới hạn phần cứng.