Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh công nghệ và tự động hóa phát triển, robot tự hành (Autonomous Mobile Robot - ARM/AGV) ngày càng đóng vai trò quan trọng trong việc thay thế sức lao động của con người tại các môi trường công nghiệp, kho vận và y tế độc hại hoặc nguy hiểm. Tại Việt Nam, việc ứng dụng các dòng xe tự hành vận chuyển trong nhà kho vẫn còn đối mặt với nhiều rào cản về khả năng tiếp cận công nghệ.
Mọi hệ thống robot tự hành hoạt động trong môi trường thực tế đều phải giải quyết ba bài toán cốt lõi:
- Xác định vị trí của robot trong hệ tọa độ tham chiếu (Localization).
- Tự động lập kế hoạch đường đi và né tránh chướng ngại vật (Path Planning and Obstacle Avoidance).
- Thu nhận và hiểu rõ môi trường xung quanh thông qua hệ thống cảm biến (Mapping and Perception).
Để giải quyết các thách thức trên, đề tài khóa luận "Thiết Kế Xe Tự Động Vẽ Bản Đồ Sử Dụng RPLIDAR" (tên tiếng Anh: Design An Automatic Mapping Vehicle Using RPLIDAR) được thực hiện bởi nhóm sinh viên Trần Quang Thiện và Trần Phi Vũ, dưới sự hướng dẫn của TS. Trương Ngọc Sơn tại Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh (khoá 2019 – 2023, ngành Kỹ thuật Điện tử và Truyền thông).
Mục tiêu và nhiệm vụ nghiên cứu của đề tài bao gồm:
- Nghiên cứu và chế tạo mô hình robot di động holonomic sử dụng 4 bánh xe đa hướng (omni-directional wheels).
- Nghiên cứu và triển khai hệ điều hành robot ROS (Robot Operating System) lên máy tính nhúng để phục vụ việc giám sát và điều khiển từ xa.
- Ứng dụng cảm biến quét laser RPLIDAR và thuật toán Hector SLAM nhằm quét và xây dựng bản đồ 2D không gian làm việc trong nhà.
- Triển khai gói điều hướng ROS Navigation Stack để thực hiện tự hành, tìm đường tối ưu và tránh vật cản.
- Thiết kế mạch điều khiển, lập trình giải thuật PID nhằm ổn định vận tốc chuyển động của robot.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Mô hình xe tự hành 4 bánh omni, hệ thống cảm biến RPLIDAR, bộ điều khiển trung tâm Raspberry Pi 4 kết hợp vi điều khiển Arduino Mega 2560, hệ điều hành ROS và các thuật toán SLAM, A*, DWA, PID.
- Phạm vi nghiên cứu: Không gian môi trường trong nhà (indoor) với địa hình mặt phẳng, phục vụ bài toán vận chuyển hàng hóa trong nhà kho. Thời gian hoàn thành: Tháng 09/2023.
Cơ sở lý thuyết và phương pháp
Khung lý thuyết và mô hình toán học
-
Động học robot 4 bánh Omni (Holonomic Mobile Robot Kinematics):
Mô hình robot 4 bánh omni có 3 bậc tự do trên mặt phẳng $Oxy$ (di chuyển tịnh tiến theo trục $x$, trục $y$ và quay quanh trục vuông góc với mặt phẳng). Các bánh xe được bố trí nghiêng các góc $\alpha_1 = 45^\circ, \alpha_2 = 135^\circ, \alpha_3 = -135^\circ, \alpha_4 = -45^\circ$ so với trục tọa độ robot.
- Động học thuận (Forward Kinematics): Vận tốc tổng hợp $V_x, V_y$ và hướng chuyển động $\theta$ được tính từ vận tốc thành phần của 4 bánh ($V_1, V_2, V_3, V_4$):
$$V_{1x} = V_1 \cos(45^\circ), \quad V_{4y} = V_4 \sin(45^\circ)$$
$$V_x = V_{1x} + V_{2x} + V_{3x} + V_{4x}, \quad V_y = V_{1y} + V_{2y} + V_{3y} + V_{4y}$$
$$\theta = \arctan\left(\frac{V_x}{V_y}\right)$$
- Động học nghịch (Inverse Kinematics): Xác định vận tốc góc của từng bánh xe $(\omega_i)$ dựa trên vận tốc đặt của robot $(V_x, V_y, \omega)$:
$$V_i = V_x \cos(\alpha_i) + V_y \sin(\alpha_i) + R\omega$$
$$\omega_i = \frac{1}{R} [V_x \sin(\alpha_i) - V_y \cos(\alpha_i) + R\omega]$$
-
Nền tảng ROS (Robot Operating System):
Hệ thống hoạt động dựa trên mô hình đồ thị tính toán (Computation Graph Level) với các thành phần: Nodes (tiến trình tính toán độc lập), ROS Master (quản lý đăng ký và liên lạc), Parameter Server (lưu trữ tham số tập trung), Topics/Messages (giao tiếp bất đồng bộ theo cơ chế publish/subscribe), và Services (giao tiếp đồng bộ dạng request/reply).
-
Thuật toán SLAM và Định vị (Hector SLAM):
Sử dụng dữ liệu đám mây điểm 2D (point cloud) từ cảm biến khoảng cách quét laser (LIDAR) với độ chính xác cao. Hector SLAM áp dụng phương pháp khớp mẫu quét (scan matching) để tính toán sự thay đổi vị trí và hướng của cảm biến giữa các thời điểm, cho phép xây dựng bản đồ môi trường tĩnh mà không phụ thuộc tuyệt đối vào hệ thống đo quãng đường (odometry).
-
Thuật toán quy hoạch quỹ đạo (Path Planning):
- Quy hoạch toàn cục (Global Planner): Sử dụng thuật toán A* (A-Star) trong không gian đồ thị dựa trên hàm Heuristic $f(x) = g(x) + h(x)$, trong đó $g(x)$ là chi phí thực tế từ điểm bắt đầu đến nút hiện tại và $h(x)$ là khoảng cách ước lượng từ nút hiện tại đến đích (tính theo khoảng cách đường chéo $h(x) = \sqrt{a^2 + b^2}$).
- Quy hoạch cục bộ (Local Planner): Sử dụng thuật toán DWA (Dynamic Window Approach). Không gian tìm kiếm vận tốc khả thi $V_a$ và cửa sổ động $V_d$ được tối ưu hóa thông qua hàm mục tiêu bao gồm 3 trọng số: hướng mục tiêu ($heading = 180 - \theta$), khoảng cách an toàn với vật cản gần nhất ($dist(v,\omega)$), và vận tốc tiến ($vel(v,\omega)$).
-
Giải thuật điều khiển vận tốc động cơ:
- Sử dụng bộ điều khiển PID liên tục và chuyển đổi sang miền thời gian rời rạc:
$$u(kT) = K_p e(kT) + K_i \sum e(k)T + K_d \frac{e(kT) - e[(k-1)T]}{T}$$
- Phương pháp chỉnh định tham số: Ziegler-Nichols loại II (xác định độ lợi giới hạn $K_u$ và chu kỳ dao động tới hạn $T_u$).
- Kết hợp bộ lọc thông thấp (Low-pass Filter) thông qua phép biến đổi song tuyến tính (Bilinear Transform) từ miền $s$ sang miền $z$ để lọc nhiễu tín hiệu phản hồi từ cảm biến/encoder.
Phương pháp nghiên cứu
- Phương pháp phân tích lực và cơ học: Thiết lập phương trình cân bằng lực động học trên từng bánh xe để tính chọn công suất và mô-men xoắn động cơ khi chuyển động đều và khi tăng tốc.
- Phương pháp thiết kế và tích hợp hệ thống: Thiết kế cơ khí khung xe, tích hợp mạch động lực và mạch điều khiển, thiết lập cấu hình mạng giao tiếp giữa ROS Serial trên máy tính nhúng và vi điều khiển.
- Phương pháp thực nghiệm: Chạy thử nghiệm quét bản đồ không gian thực tế trong nhà trên giao diện Rviz và đo kiểm đáp ứng vận tốc động cơ theo thuật toán điều khiển PID.
Thiết kế và triển khai
Phân tích lực và tính chọn thiết bị phần cứng
Robot được thiết kế hoạt động trên mặt phẳng bê tông với các thông số ban đầu:
- Tổng khối lượng ước tính: $m = 7\text{ kg}$ (khối lượng phân bổ lên mỗi bánh $m_1 = 1{,}75\text{ kg}$).
- Đường kính bánh xe omni: $d = 58\text{ mm}$ (bán kính $r = 0{,}029\text{ m}$).
- Vận tốc tối đa: $v = 0{,}5\text{ m/s}$; Gia tốc chuyển động: $a = 0{,}5\text{ m/s}^2$.
- Hệ số ma sát lăn trên sàn bê tông: $l = 0{,}015$; Hệ số ma sát tĩnh: $\mu_n = 1$.
Lực kéo cần thiết sinh ra từ mô-men động cơ được tính toán trong hai trường hợp:
- Khi chuyển động đều: $F_w = F_{msn} = l \cdot P_1 = l \cdot m_1 g$.
- Khi tăng tốc: $F_w = F_{msn} + m_1 a$, mô-men xoắn yêu cầu trên trục bánh: $M_1 = F_w \cdot r$.
| Thiết bị / Module |
Thông số kỹ thuật chi tiết |
Vai trò trong hệ thống |
| Khung xe (Base) |
Vật liệu Mica tròn, bố trí 4 bánh xe đa hướng Omni $58\text{ mm}$ |
Chịu tải và tạo chuyển động đa hướng 3 bậc tự do |
| Động cơ chấp hành |
4 Động cơ DC giảm tốc JGB-520 (178 rpm) tích hợp Hall Encoder kênh A-B |
Tạo lực kéo chuyển động độc lập cho 4 bánh |
| Mạch điều khiển động cơ |
2 Module cầu H kép L298N (điện áp vào 5–30V, dòng cực đại 2A/kênh, công suất 24W/cầu) |
Đảo chiều quay và điều chế độ rộng xung (PWM) điều khiển tốc độ động cơ |
| Vi điều khiển tầng thấp |
Arduino Mega 2560 (ATmega2560, 16 MHz, 54 chân Digital I/O với 14 chân PWM, 4 UART, 256KB Flash) |
Đọc tín hiệu xung Encoder, thực thi thuật toán PID kín, phát xung điều khiển L298N |
| Máy tính nhúng tầng cao |
Raspberry Pi 4 Model B (2GB RAM, 64-bit Quad-core, Wi-Fi, USB 3.0, Gigabit Ethernet) |
Chạy hệ điều hành Ubuntu, xử lý ROS, Hector SLAM, Navigation Stack, giao tiếp Rviz |
| Cảm biến định vị |
Cảm biến quét Laser 2D RPLIDAR kết nối qua Micro-USB |
Quét khoảng cách xung quanh, tạo dữ liệu point cloud phục vụ SLAM và phát hiện vật cản |
| Cảm biến góc |
IMU (Inertial Measurement Unit) |
Cung cấp dữ liệu vận tốc góc và hướng xoay của robot |
| Nguồn cấp |
Pin LiPo 3S 12V (2200 mAh, 40C) cho động cơ/driver và sạc dự phòng riêng cho Raspberry Pi |
Cung cấp năng lượng độc lập cho tầng công suất và tầng xử lý |
Kiến trúc phần mềm và sơ đồ kết nối dữ liệu
Hệ thống điều khiển được phân chia thành 2 tầng xử lý:
-
Tầng điều khiển trung tâm (Raspberry Pi 4 - ROS Master):
- Đọc dữ liệu thô từ cảm biến RPLIDAR qua cổng USB.
- Node
hector_mapping nhận dữ liệu LaserScan để trích xuất vị trí robot và vẽ bản đồ tĩnh.
- Node
costmap_2d thiết lập bản đồ chi phí toàn cục (global_costmap) và cục bộ (local_costmap) với các thông số cấu hình như obstacle_range, inflation_radius, static_map, rolling_window.
- Node
move_base tiếp nhận mục tiêu điều hướng, chạy giải thuật A* để vạch đường đi toàn cục và giải thuật DWA để tính toán vector vận tốc tối ưu $(V_x, V_y, \omega)$, sau đó xuất ra topic /cmd_vel.
- Nhận tín hiệu điều khiển thủ công thông qua giao diện Joystick GUI.
-
Tầng điều khiển chấp hành (Arduino Mega 2560 - ROS Serial):
- Kết nối với Raspberry Pi thông qua giao thức truyền thông tuần tự
rosserial.
- Đăng ký nhận dữ liệu vận tốc từ topic
/cmd_vel và chuyển đổi sang giá trị đặt vận tốc cho 4 động cơ thông qua ma trận động học nghịch.
- Đọc tín hiệu phản hồi từ 2 kênh A-B của Encoder để tính toán vận tốc thực tế của từng bánh.
- Thực thi bộ điều khiển PID số với chu kỳ lấy mẫu $T$ cố định, xuất tín hiệu điều khiển PWM và tín hiệu logic chiều quay đến 2 mạch cầu H L298N.
So sánh cấu hình chuyển động của Robot
Khóa luận đã tiến hành đánh giá chi tiết giữa các giải pháp bánh xe và cấu hình động học nhằm lựa chọn phương án tối ưu cho hệ thống:
| Tiêu chí |
Bánh xe tiêu chuẩn (Normal Wheel) |
Robot 3 bánh Omni |
Robot 4 bánh Omni (Lựa chọn của đề tài) |
| Khả năng linh hoạt (Maneuverability) |
Giới hạn hướng di chuyển; cần cơ cấu lái phụ để đổi hướng; bán kính quay vòng lớn |
Di chuyển đa hướng tức thời, có thể xoay tại chỗ với bán kính quay bằng 0 |
Di chuyển linh hoạt mọi hướng, xoay tròn tại chỗ, chuyển động tịnh tiến theo góc bất kỳ |
| Độ ổn định và cân bằng |
Độ ổn định cao do diện tích tiếp xúc mặt đường lớn |
Kém ổn định hơn, dễ bị nghiêng/lật khi mang tải nặng hoặc phanh gấp |
Độ ổn định cao, trọng lượng phân bố đều lên 4 điểm tiếp xúc |
| Tải trọng tối đa (Payload Capacity) |
Khả năng chịu tải rất cao |
Giới hạn tải trọng do cấu hình 3 điểm tiếp xúc |
Khả năng chịu tải vượt trội hơn so với cấu hình 3 bánh |
| Độ phức tạp điều khiển cơ khí |
Cơ khí đơn giản, chi phí sản xuất thấp |
Cơ khí đơn giản hơn 4 bánh, nhẹ hơn, tiết kiệm năng lượng |
Cần 4 động cơ độc lập, giải thuật động học và phân phối lực phức tạp hơn |
| Tính dự phòng (Redundancy) |
Không có tính dự phòng nếu hỏng cơ cấu lái |
Hỏng 1 bánh khiến robot mất hoàn toàn khả năng di chuyển chính xác |
Cung cấp khả năng dự phòng tốt hơn khi có sự cố trên từng bánh |
Nội dung chính theo từng chương
Chương 1: Overview
- Giới thiệu tổng quan về xu hướng phát triển của robot tự hành trong công nghiệp và đời sống.
- Trình bày 3 bài toán kỹ thuật trọng tâm: Xác định vị trí, Lập kế hoạch đường đi tránh vật cản, và Nhận thức môi trường thông qua cảm biến.
- Đặt mục tiêu đề tài: Chế tạo robot 4 bánh omni, tích hợp ROS, sử dụng RPLIDAR với Hector SLAM để vẽ bản đồ và điều hướng tự động trong nhà kho.
Chương 2: Theoretical Basis
- Phân tích cơ sở lý thuyết chuyển động học của robot 4 bánh omni, xây dựng phương trình động học thuận và nghịch.
- So sánh hiệu năng giữa bánh thường và bánh omni, giữa cấu hình 3 bánh và 4 bánh omni.
- Trình bày tổng quan về hệ điều hành ROS: Cấu trúc Filesystem, Computation Graph, ROS Navigation Stack, Costmap 2D.
- Trình bày cơ chế của thuật toán quét bản đồ Hector SLAM dựa trên Laser point cloud.
- Trình bày thuật toán tìm đường A* (Global planner) kèm ví dụ tính toán trên ma trận $9 \times 8$, thuật toán Dynamic Window Approach - DWA (Local planner) tối ưu hóa hàm vận tốc.
- Phân tích bộ điều khiển PID liên tục và rời rạc, phương pháp xác định tham số theo Ziegler-Nichols II và thiết kế bộ lọc thông thấp (Low-pass filter) bằng phép biến đổi song tuyến tính $s \to z$.
Chương 3: Design of Robot
- Trình bày sơ đồ khối tổng thể phần cứng và sơ đồ kết nối dây nguồn, dây tín hiệu.
- Phân tích lực cơ học trên bánh xe, tính toán công suất và mô-men xoắn để chọn động cơ DC Encoder JGB-520 (178 rpm).
- Trình bày chi tiết thông số kỹ thuật và vai trò của máy tính nhúng Raspberry Pi 4 (2GB), mạch điều khiển động cơ L298N, và bo mạch vi điều khiển Arduino Mega 2560.
Chương 4: Software Design
- Xây dựng lưu đồ giải thuật điều khiển robot trong môi trường ROS.
- Thiết lập chương trình nhận dữ liệu điều khiển từ giao diện Joystick GUI sang các giá trị setpoint vận tốc.
- Lập trình thuật toán điều khiển vận tốc kín PID trên Arduino.
- Cấu hình quá trình khởi chạy RPLIDAR trên công cụ hiển thị Rviz và thiết lập quét khớp mẫu (scan matching) để dựng bản đồ tĩnh 2D.
Chương 5: Experiments and Results
- Thử nghiệm khả năng di chuyển linh hoạt của khung gầm 4 bánh omni ở nhiều góc chuyển động khác nhau (thực nghiệm di chuyển góc $\alpha = 63^\circ$).
- Kiểm tra đáp ứng điều khiển vận tốc của thuật toán PID trên động cơ encoder.
- Triển khai lệnh
roslaunch trên Raspberry Pi, kết nối các node dữ liệu và kiểm tra quá trình xây dựng bản đồ hoàn chỉnh trên Rviz từ cảm biến RPLIDAR.
Chương 6: Conclusion and Improvement
- Tổng kết các kết quả đạt được về phần cứng, phần mềm, giải thuật định vị SLAM và điều hướng.
- Đưa ra các đề xuất cải tiến hệ thống trong tương lai.
Kết quả và đóng góp
Kết quả đạt được
- Chế tạo hoàn thiện phần cứng: Thiết kế và lắp ráp thành công mô hình robot 4 bánh omni với kết cấu khung Mica nhỏ gọn, tích hợp đầy đủ hệ thống nguồn kép (Pin LiPo 12V và sạc dự phòng), 4 động cơ JGB-520 kèm encoder, 2 mạch cầu H L298N, Arduino Mega 2560, Raspberry Pi 4 và cảm biến RPLIDAR.
- Khả năng chuyển động toàn hướng: Thực nghiệm chứng minh robot có thể di chuyển tịnh tiến theo mọi góc (minh họa góc $63^\circ$) và tự quay quanh trục mà không cần xoay thân trước khi di chuyển.
- Ứng dụng thành công ROS và Hector SLAM: Thiết lập thành công luồng dữ liệu giữa Arduino và Raspberry Pi qua
rosserial, trích xuất dữ liệu laser từ RPLIDAR để vẽ bản đồ không gian 2D khép kín và chính xác trên công cụ Rviz.
- Tích hợp hệ thống điều hướng: Triển khai các file cấu hình Costmap 2D (
global_costmap_params.yaml, local_costmap_params.yaml), kết hợp giải thuật tìm đường A* và né tránh vật cản DWA.
Đóng góp của đề tài
- Cung cấp một tài liệu kỹ thuật hoàn chỉnh từ khâu tính toán lực cơ học, lựa chọn phần cứng đến mô hình hóa toán học động học 4 bánh omni.
- Đưa ra giải pháp tích hợp hệ điều hành robot ROS trên nền tảng phần cứng nhúng giá thành thấp, tối ưu hóa cho các ứng dụng AGV trong nhà xưởng và kho hàng tại Việt Nam.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế
- Bánh xe đa hướng omni có lực bám (traction) thấp hơn so với bánh xe truyền thống, dễ xảy ra hiện tượng trượt nhẹ khi hoạt động trên bề mặt sàn quá trơn trượt hoặc khi gia tốc thay đổi đột ngột.
- Phiên bản Raspberry Pi 4 dung lượng RAM 2GB bị giới hạn tài nguyên tính toán khi chạy đồng thời nhiều tác vụ nặng (vừa xử lý đồ họa Rviz, vừa chạy SLAM và Navigation Stack).
Hướng nghiên cứu tiếp
- Nâng cấp phần cứng máy tính nhúng lên các phiên bản có dung lượng RAM cao hơn (4GB hoặc 8GB) hoặc tích hợp thêm bộ xử lý chuyên dụng để tăng tốc độ xử lý thuật toán.
- Kết hợp thêm cảm biến đo sâu (RGB-D Camera) hoặc cảm biến siêu âm để bổ sung khả năng phát hiện vật cản 3D ngoài mặt phẳng quét 2D của RPLIDAR.
- Nghiên cứu tối ưu hóa bộ điều khiển bù trượt bánh xe nhằm nâng cao độ chính xác định vị odometry cho robot omni trong các môi trường sàn công nghiệp trơn trượt.
Giá trị tham khảo
Đồ án là tài liệu tham khảo giá trị cho sinh viên, giảng viên và kỹ sư thuộc các chuyên ngành Kỹ thuật Điện tử - Viễn thông, Kỹ thuật Cơ điện tử, Kỹ thuật Điều khiển & Tự động hóa và Khoa học Robot:
- Tham khảo thuật toán và mô hình toán: Cung cấp chi tiết ma trận động học thuận - nghịch cho khung xe 4 bánh omni và các bước tính toán chỉnh định PID theo phương pháp Ziegler-Nichols II.
- Tham khảo cấu hình ROS Navigation: Hướng dẫn chi tiết cách thiết lập các file cấu hình YAML cho bản đồ chi phí 2D, tham số cho thuật toán A* và DWA.
- Tham khảo thiết kế hệ thống nhúng: Phương pháp phân tầng kiến trúc phần cứng giữa vi điều khiển thời gian thực (Arduino Mega 2560) và máy tính nhúng chạy hệ điều hành Linux (Raspberry Pi 4) thông qua thư viện
rosserial.
Câu hỏi thường gặp
1. Tại sao đề tài lại lựa chọn cấu hình 4 bánh Omni thay vì 3 bánh Omni hay bánh xe thông thường?
Bánh xe thông thường bị giới hạn về hướng di chuyển và đòi hỏi bán kính quay vòng lớn. Cấu hình 3 bánh omni tuy linh hoạt và nhẹ hơn nhưng độ ổn định kém và khả năng chịu tải thấp. Cấu hình 4 bánh omni được lựa chọn vì mang lại sự cân bằng tối ưu: cho phép di chuyển toàn hướng 3 bậc tự do (xoay tại chỗ, đi chéo, đi ngang), phân bố tải trọng đều trên 4 điểm tiếp xúc, tăng tính ổn định và cung cấp độ dự phòng tốt hơn khi vận chuyển hàng hóa trong kho.
2. Thuật toán SLAM nào được sử dụng và tại sao không phụ thuộc vào Odometry?
Đề tài sử dụng thuật toán Hector SLAM. Thuật toán này tận dụng dữ liệu quét laser 2D tốc độ cao và độ chính xác cao từ cảm biến RPLIDAR, sử dụng kỹ thuật khớp mẫu quét (scan matching) để liên tục đối sánh các đám mây điểm giữa các thời điểm lấy mẫu liên tiếp. Nhờ đó, hệ thống có thể ước lượng vị trí và dựng bản đồ môi trường tĩnh chính xác ngay cả khi tín hiệu odometry từ bánh xe bị sai số do trượt.
3. Thuật toán A* và DWA đảm nhận vai trò gì trong hệ thống điều hướng của xe?
- A* (Global Planner): Đảm nhận vai trò tìm kiếm đường đi toàn cục ngắn nhất từ vị trí xuất phát đến điểm đích dựa trên bản đồ tĩnh toàn cục (
global_costmap) và hàm ước lượng Heuristic $f(x) = g(x) + h(x)$.
- DWA (Dynamic Window Approach - Local Planner): Đảm nhận vai trò quy hoạch quỹ đạo cục bộ thời gian thực dựa trên bản đồ chi phí cục bộ (
local_costmap), tính toán các vector vận tốc dài và vận tốc góc an toàn $(v, \omega)$ để giúp xe tránh né các vật cản bất ngờ xuất hiện trên đường đi.
4. Hệ thống phân chia xử lý giữa Raspberry Pi 4 và Arduino Mega 2560 như thế nào?
Hệ thống sử dụng cấu trúc điều khiển phân tầng:
- Raspberry Pi 4 (Tầng cao): Đóng vai trò máy chủ ROS Master, chạy hệ điều hành Ubuntu để xử lý các thuật toán nặng gồm Hector SLAM, Navigation Stack (A*, DWA, Costmap) và giao tiếp với RPLIDAR.
- Arduino Mega 2560 (Tầng chấp hành): Đóng vai trò nút giao tiếp qua
rosserial, nhận lệnh vận tốc /cmd_vel, tính toán động học nghịch, đọc tín hiệu encoder 2 kênh và thực thi giải thuật PID thời gian thực để điều khiển xung PWM đến các module L298N kéo động cơ.
5. Phương pháp nào được áp dụng để xác định thông số cho bộ điều khiển PID động cơ?
Nhóm nghiên cứu áp dụng phương pháp Ziegler-Nichols loại II (Ziegler-Nichols Closed-Loop Tuning). Phương pháp này thực hiện bằng cách đưa hệ thống vào trạng thái hoạt động chỉ với khâu khuếch đại $K_p$, tăng dần giá trị $K_p$ cho đến khi hệ thống xuất hiện dao động xác lập có biên độ không đổi để xác định độ lợi tới hạn $K_u$ và chu kỳ dao động tới hạn $T_u$. Sau đó, các thông số $K_p, K_i, K_d$ được tính toán theo bảng quy chuẩn của phương pháp.
Kết luận
Đồ án tốt nghiệp "Thiết Kế Xe Tự Động Vẽ Bản Đồ Sử Dụng RPLIDAR" đã hoàn thành xuất sắc việc nghiên cứu, thiết kế và chế tạo thực nghiệm mô hình xe tự hành 4 bánh omni phục vụ vận chuyển hàng hóa trong nhà. Bằng việc kết hợp hiệu quả giữa máy tính nhúng Raspberry Pi 4, vi điều khiển Arduino Mega 2560, cảm biến quét laser RPLIDAR và nền tảng Robot Operating System (ROS), hệ thống đã giải quyết trọn vẹn các bài toán xây dựng bản đồ 2D thời gian thực qua Hector SLAM, tự động định vị và điều hướng tránh vật cản qua giải thuật A* và DWA. Đây là công trình thực nghiệm hoàn chỉnh, có giá trị học thuật và tính ứng dụng thực tiễn cao cho việc phát triển các dòng xe tự hành AGV trong các nhà kho thông minh tại Việt Nam.