Đồ án: Thuật toán đỗ xe song song cho robot Ackermann - Quy hoạch & Điều khiển

Đồ án thiết kế thuật toán đỗ xe song song tự động cho robot Ackermann. Chi tiết quy hoạch đường đi B-Spline và điều khiển bám quỹ đạo dùng PP-PI.

2024

82
2
0

Phí lưu trữ

30 Point

Tóm tắt

I. Giới thiệu về Thuật toán Đỗ xe Song song Tự động cho Robot Ackermann

Thuật toán đỗ xe song song tự động là một giải pháp tiên tiến trong lĩnh vực robot tự động hóađiều khiển xe thông minh. Với sự phát triển nhanh chóng của công nghệ robot Ackermann, nhu cầu về hệ thống đỗ xe tự động ngày càng tăng trong các ứng dụng thực tế. Thuật toán này kết hợp ba thành phần chính: định vị chính xác, quy hoạch quỹ đạo tối ưuđiều khiển bám quỹ đạo. Robot Ackermann, với cơ cấu bánh xe đặc biệt, yêu cầu một phương pháp điều khiển riêng biệt so với các loại robot khác. Hệ thống này sử dụng công cụ ROS (Robot Operating System) trên nền tảng Jetson Nano để xử lý các dữ liệu từ cảm biến và thực hiện điều khiển chuyển động. Mục tiêu chính là tự động hóa quá trình đỗ xe an toàn, chính xác và hiệu quả, giảm thiểu sự can thiệp của con người.

1.1. Khái niệm Robot Ackermann và Hệ thống Đỗ xe

Robot Ackermann là loại robot có cơ cấu bánh xe Ackermann steering, thường được sử dụng để mô phỏng chuyển động của ô tô thật. Với chiều dài cơ sở 26.5 cmkích thước 50cm x 25cm, robot này có khả năng điều khiển chính xác. Hệ thống đỗ xe song parallel là quá trình di chuyển xe vào không gian hẹp giữa hai ô tô khác, yêu cầu kỹ năng và tính toán phức tạp. Thuật toán này cho phép robot thực hiện các bước đỗ xe một cách tự động mà không cần tác nhân ngoài.

1.2. Tầm quan trọng của Tự động hóa trong Ngành Công nghiệp

Tự động hóa đỗ xe giảm thiểu lỗi con người và tăng độ an toàn giao thông. Theo dự báo thị trường, hệ thống đỗ xe tự động toàn cầu sẽ tăng trưởng đáng kể từ năm 2022 đến 2032. Công nghệ này áp dụng trong các ô tô tự láirobot di động thông minh, mang lại lợi ích kinh tế và cải thiện chất lượng cuộc sống.

II. Các thành phần Cơ sở Lý thuyết của Thuật toán

Thuật toán đỗ xe song song dựa trên ba nền tảng lý thuyết chính. Thứ nhất, định vị (Localization) sử dụng Bộ lọc Kalman mở rộng (EKF) kết hợp với gói robot_localization trong ROS để xác định vị trí và hướng của robot chính xác. Thứ hai, quy hoạch quỹ đạo áp dụng đường cong B-Spline để tạo ra một đường đi mượt mà và tối ưu từ vị trí hiện tại đến vị trí đỗ xe. Thứ ba, điều khiển bám quỹ đạo sử dụng thuật toán Pure Pursuit kết hợp với bộ điều khiển Proportional-Integral (PI) để đảm bảo robot tuân theo quỹ đạo được lập kế hoạch. Sự kết hợp ba thành phần này tạo thành một hệ thống điều khiển tự động hoàn chỉnh cho robot Ackermann.

2.1. Hệ thống Định vị với Bộ lọc Kalman mở rộng

Bộ lọc Kalman mở rộng (EKF) là một thuật toán tối ưu hoá ước lượng trạng thái hệ thống động lực. Gói robot_localization trong ROS kết hợp dữ liệu từ IMU (Cảm biến quán tính), encoder bánh xeLiDAR để cung cấp vị trí robot chính xác. Hệ thống này liên tục cập nhật và hiệu chỉnh vị trí dựa trên các phép đo mới, đảm bảo độ tin cậy cao.

2.2. Quy hoạch Quỹ đạo B Spline và Thuật toán Pure Pursuit

Đường cong B-Spline cung cấp một phương pháp trơn tru để nội suy điểm quỹ đạo. Thuật toán Pure Pursuit điều khiển góc lái của xe dựa trên khoảng cách và vị trí tương đối đến điểm mục tiêu trên quỹ đạo. Kết hợp với bộ điều khiển PI, hệ thống tạo ra phản ứng điều khiển mạnh mẽ và ổn định, cho phép robot bám sát quỹ đạo được lập kế hoạch.

III. Thiết kế Luồng Thực hiện và Thuật toán Tìm Không gian Đỗ xe

Luồng thực hiện chương trình bao gồm các bước liên tiếp từ đọc dữ liệu cảm biến đến điều khiển chuyển động. Ban đầu, robot sử dụng cảm biến LiDAR để quét môi trường và phát hiện các chướng ngại vật, không gian trống. Thuật toán tìm không gian đỗ xe phân tích dữ liệu lidar để xác định những vị trí phù hợp với kích thước xe robot. Khi tìm thấy không gian hợp lệ, thuật toán quy hoạch quỹ đạo B-Spline được kích hoạt để tạo ra một đường đi tối ưu. Tiếp theo, bộ điều khiển PP-PI nhận quỹ đạo và tính toán tín hiệu điều khiển cho động cơ bánh trước (góc lái) và động cơ bánh sau (tốc độ). Toàn bộ quá trình được lặp lại liên tục cho đến khi robot hoàn thành việc đỗ xe.

3.1. Phát hiện Không gian Trống sử dụng Dữ liệu LiDAR

LiDAR (Light Detection and Ranging) cung cấp một bản đồ chi tiết về môi trường xung quanh robot. Thuật toán xử lý dữ liệu lidar phát hiện các khoảng trống ngang dài và xác định khoảng cách từ các chướng ngại vật. Qua phân tích hình học, hệ thống tìm được không gian đỗ xe có độ rộng tối thiểu là 1.5 lần chiều rộng xe để đảm bảo an toàn.

3.2. Lập Kế hoạch Quỹ đạo Đỗ xe với B Spline

Đường cong B-Spline được sử dụng để nội suy quỹ đạo từ vị trí hiện tại đến vị trí đỗ xe cuối cùng. Phương pháp này tạo ra một đường đi mượt mà và liên tục, giảm thiểu gia tốc bất thường. Thuật toán tối ưu hóa các điểm kiểm soát để đảm bảo đường đi không va chạm vào chướng ngại vậtthỏa mãn ràng buộc động lực học của robot Ackermann.

IV. Phần cứng Triển khai Thực tế và Kết quả Thử nghiệm

Hệ thống phần cứng gồm các thành phần chính: Jetson Nano làm bộ xử lý trung tâm, LiDAR RP cho cảm biến khoảng cách, IMU948 cho cảm biến quán tính, và Arduino Uno để điều khiển động cơ. Động cơ DC JGB37 điều khiển bánh sau (tốc độ), còn servo MG996R điều khiển bánh trước (góc lái). Hệ thống phần mềm sử dụng PythonC++ lập trình trên ROS (Robot Operating System). Các mô đun hạ áp (Buck converter và XL4005) được sử dụng để ổn định điện áp cho các thiết bị khác nhau. Kết quả thử nghiệm cho thấy robot có thể phát hiện không gian đỗ xe với độ chính xác cao, lập kế hoạch quỹ đạo tối ưuđiều khiển bám quỹ đạo ổn định. Độ sai lệch vị trí trong quá trình đỗ xe được kiểm soát trong phạm vi chấp nhận được.

4.1. Cấu hình Phần cứng và Hệ thống Điều khiển

Jetson Nano B1 hoạt động ở tần số 1.43GHz với bộ nhớ 4GB LPDDR4, đủ mạnh cho xử lý ROSthuật toán phức tạp. RP Lidar A1 cung cấp quét 360 độ ở tần số 5-10Hz với độ chính xác tốt. Arduino Uno kết nối qua USB để điều khiển động cơ thông qua PWM signals. Các mạch quản lý điện đảm bảo không bị quá tải và ổn định điện áp cho mỗi thiết bị.

4.2. Kết quả Mô phỏng và Thử nghiệm Thực tế

Mô phỏng Python trên Visual Studio Code cho thấy thuật toán hoạt động chính xác với các dữ liệu mô phỏng. Thử nghiệm thực tế trên xe robot cho kết quả tích cực: robot phát hiện không gian trống với độ tin cậy 95%, bám quỹ đạo với sai lệch dưới 5cm, và hoàn thành đỗ xe trong thời gian hợp lý. Một số hạn chế bao gồm độ chính xác định vị khi có nhiễu từ môi trường và thời gian xử lý của thuật toán.

18/12/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 1. TỔNG QUAN  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.

BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 8 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 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.

1 Sơ đồ mô hình giao tiếp ROS BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 9 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT 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.  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ể. 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.  Ưu điểm nổi bật 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. BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 10 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT  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.  Ứng dụng đa dạ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à. Tương lai của ROS ROS đã và đang đóng góp to lớn cho sự phát triển của ngành robot, giúp rút ngắn khoảng cách giữa nghiên cứu và ứng dụng, thúc đẩy sự đổi mới và sáng tạo trong lĩnh vực này. Với sự phát triển không ngừng của công nghệ và cộng đồng người dùng ngày càng lớn mạnh, BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 11 CHƯƠNG 2.

CƠ SỞ LÝ THUYẾT ROS được kỳ vọng sẽ tiếp tục giữ vững vị thế là framework hàng đầu cho phát triển robot trong tương lai.2 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: Chức năng chính:  Ướ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. 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à BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 12 CHƯƠNG 2.

CƠ SỞ LÝ THUYẾT 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].1) 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.2) 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.

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: ̂𝑘 = 𝑓(𝑥𝑘−1 ) 𝑥 (2.4) 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.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 ̂𝑘.

Gain này sau đó được áp dụng sai đo lường R và ma trận hiệp phương sai lỗi dự đoán 𝑃 để cập nhật cả vectơ trạng thái và ma trận hiệp phương sai Pk. Để đảm bảo tính ổn định BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 13 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT 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.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ