CHƯƠNG 1: TỔNG QUAN.1 Tình hình nghiên cứu ngoài nước.2 Tình hình nghiên cứu trong nước .3 Tính cấp thiết đề tài .2 Mục tiêu đề tài .3 Giới hạn đề tài .4 Phương pháp nghiên cứu.5 Nội dung đề tài. 4 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT .1 Tổng quan robot di động .1 Khái niệm robot di động .2 Phân loại robot di động .2 Cấu trúc robot di động vi sai.3 Động học robot di động.1 Lý thuyết động học robot di động .2 Động học robot di động vi sai .5 Tổng quan về nền tảng ROS .1 Khái niệm về ROS .2 Ưu điểm của ROS.3 Nhược điểm của ROS .4 Cấu trúc của ROS .6 Tổng quan về Navigation Stack .7 Tổng quan về SLAM .1 Khái niệm về SLAM .8 Lý thuyết thuật toán EKF .1 Heuristic và hàm Heuristic .2 Giới thiệu thuật toán A* .11 Lý thuyết cảm biến Lidar .12 Lý thuyết cảm biến IMU.13 Lý thuyết cảm biến Encoder .14 Lý thuyết bộ điều khiển PID .15 Lý thuyết giao thức UART .1 Khái niệm về giao thức UART.2 Cách thức hoạt động .16 Lý thuyết giao thức I2C .1 Khái niệm về giao thức I2C .2 Cách thức hoạt động .17 Phần mềm hỗ trợ .1 Công cụ IPOPT .2 Phần mềm mô phỏng Gazebo .3 Phần mềm Rviz .4 Phần mềm Qt Designer.5 Phần mềnm SolidWorks. 51 CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG .1 Tổng quan hệ thống .2 Lựa chọn thiết bị cho mô hình robot .1 Yêu cầu thiết kế .2 Tính toán lựa chọn động cơ .3 Driver điều khiển động cơ .4 Cảm biến Lidar .5 Máy tính nhúng Raspberry Pi4 .8 Nút nhấn, công tắc và đèn .3 Thiết kế mô hình robot .3 Chi tiết khung .4 Giá đỡ Lidar và IMU .5 Chi tiết hộp điều khiển .6 Chi tiết bộ bánh phụ của robot .7 Chi tiết phần vỏ đầu robot phía bên trái và phải .8 Chi tiết vỏ robot .4 Thi công mô hình robot .1 Chi tiết giá đỡ động cơ .2 Chi tiết giá đỡ Lidar và IMU .3 Chi tiết hộp điều khiển .4 Chi tiết phần vỏ đầu robot phía bên trái và phải .5 Chi tiết vỏ robot .6 Lắp ráp hoàn thiện robot .5 Sơ đồ nối dây hệ thống .6 Thiết kế và thi công mạch PCB.7 Thiết kế vật cản động .1 Yêu cầu thiết kế .2 Lựa chọn thiết bị và thi công .8 Chương trình điều khiển .1 Lưu đồ chương trình robot .2 Lưu đồ chương trình robot vật cản .9 Thiết kế giao diện người dùng giám sát hệ thống .2 Trang điều khiển và quan sát. 82 CHƯƠNG 4: THIẾT KẾ VÀ MÔ PHỎNG GIẢI THUẬT .1 Tổng quan chương trình điều hướng cho robot .2 Thiết kế bộ điều khiển Model Predict Control .1 Thiết kế bộ điều khiển Model Predict Control .2 Ràng buộc tránh vật cản .3 Thiết lập mô phỏng .1 Tổng quan các bước thực hiện mô phỏng .2 Thông số robot.3 Thông số cảm biến lidar .4 Thông số cảm biến IMU .5 Thiết lập môi trường Gazebo .4 Mô phỏng EKF .5 Mô phỏng robot xây dựng bản đồ .6 Mô phỏng điều hướng MPC .1 Trường hợp 1 bản đồ không có vật cản .2 Trường hợp 2 bản đồ có vật cản tĩnh.3 Trường hợp 3 bản đồ có vật cản động di chuyển cùng chiều với robot.4 Trường hợp 4 bản đồ có vật cản động di chuyển ngược chiều với robot.5 Trường hợp 5 bản đồ có vật cản động di chuyển ngang so với robot.
106 CHƯƠNG 5: THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ.1 Xây dựng bản đồ thực tế .2 Cấu hình mạng .3 Thực nghiệm EKF .4 Thực nghiệm robot xây dụng bản đồ .5 Thực nghiệm điều hướng robot.1 Trường hợp 1 bản đồ không có vật cản.2 Trường hợp 2 bản đồ có vật cản tĩnh.3 Trường hợp 3 bản đồ có vật cản động di chuyển cùng chiều với robot.4 Trường hợp 4 bản đồ có vật cản động di chuyển ngược chiều với robot .5 Trường hợp 5 bản đồ có vật cản động di chuyển ngang với robot.6 Nhận xét và đánh giá kết quả. 121 CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .2 Hướng phát triển. 122 TÀI LIỆU THAM KHẢO. 126 Trang xiv DANH MỤC BẢNG Bảng 2-1 So sánh giữa Topic, Service và Action .19 Bảng 3-1 Thông số mô hình .54 Bảng 3-2 Thông số kỹ thuật động cơ BHLM5100K-GFS .56 Bảng 3-3 Thông số kỹ thuật driver BHLD100 .57 Bảng 3-4 Thông số kỹ thuật cảm biến RPLidar A1M8 .58 Bảng 3-5 Thông số Arduino Mega .59 Bảng 3-6 Thông số khối Pin 24VDC .60 Bảng 3-7 Thông số kỹ thuật mạch giảm áp LM2596S .60 Bảng 3-8 Thông số mô hình .75 Bảng 3-9 Danh sách thiết bị vật cản động .76 Bảng 4-1 Thông số robot mô phỏng .89 Bảng 4-2 Thông số bánh xe mô phỏng .90 Bảng 4-3 Thông số cảm biến lidar mô phỏng .90 Bảng 4-4 Thông số imu mô phỏng.90 Bảng 4-5 Thông số bản đồ mô phỏng .97 Bảng 4-6 Thông số MPC mô phỏng .98 Trang xv DANH MỤC HÌNH ẢNH Hình 2-1 Mô hình Robot: a) Robot human b) Robot di động .6 Hình 2-2 MobilePalletTM Pallet Management & Material Handling Robots .7 Hình 2-3 Ascento 2 robot .7 Hình 2-4 Spot robot .8 Hình 2-5 DJI Mini 2 Air Quadcopter robot .9 Hình 2-6 Robot rắn.9 Hình 2-7 Aquanaut AUV .10 Hình 2-8 Cấu hình của robot di động vi sai bốn bánh .11 Hình 2-9 Biểu tượng của ROS .16 Hình 2-10 Giao tiếp giữa các node .18 Hình 2-11 Ví dụ về topic trong ROS .18 Hình 2-12 Ví dụ về service trong ROS .19 Hình 2-13 Ví dụ về action trong ROS.19 Hình 2-14 Cấu trúc gói Navigation Stack .20 Hình 2-15 Ứng dụng của SLAM .21 Hình 2-16 Quá trình SLAM .22 Hình 2-17 Bản đồ lưới chiếm dụng .24 Hình 2-18 Quá trình Scan Maching .24 Hình 2-19 Mô tả thông số Robot.25 Hình 2-20 Mô tả .26 Hình 2-21 Xử lý dữ liệu tạo bản đồ lưới chiếm dụng .27 Hình 2-22 Các trạng thái trong occupancy grid map .27 Hình 2-23 Các node của Hector SLAM .29 Hình 2-24 Quy trình diễn ra lọc Kalman rời rạc bao gồm 2 giai đoạn dự đoán (Predict) và cập nhật (Update).30 Hình 2-25 Mô tả hoàn chỉnh về quá trình của thuật toán EKF tổng hợp từ các công thức ở hai giai đoạn dự đoán (Predict) và cập nhật (Update).31 Trang xvi Hình 2-26 Biểu đồ phân phối mẫu .27 Pseudocode thuật toán A* .40 Hình 2-28 Nguyên lý hoạt động cảm biến Lidar .41 Hình 2-29 Gia tốc kế và con quay hồi chuyển trong ba trục chuyển động .42 Hình 2-30 Cấu tạo cảm biến encoder .43 Hình 2-31 Nguyên lý hoạt động cảm biến Encoder .43 Hình 2-32 Cấu trúc bộ điều khiển PID .44 Hình 2-33: Giao thức UART.44 Hình 2-34: Cách thức hoạt động của giao thức UART .45 Hình 2-35: Gói dữ liệu trong UART .45 Hình 2-36: Tích hợp ROS Serial cho hệ thống robot.46 Hình 2-37 Giao thức I2C.47 Hình 2-38: Khung truyền giao thức I2C .47 Hình 2-39 Giao diện phần mềm Gazebo .49 Hình 2-40 Giao diện Rviz .50 Hình 2-41 Phần mềm SolidWorks .51 Hình 3-1 Tổng quan hệ thống .53 Hình 3-2 Sơ đồ hệ thống .54 Hình 3-3 Các lực tác động lên robot .55 Hình 3-4 Động cơ BHLM5100k-GFS .57 Hình 3-5 Driver BLHD100K .57 Hình 3-6 Cảm biến RPLidar A1M8 .58 Hình 3-7 Máy tính nhúng Raspberry Pi4 Model B .59 Hình 3-8 Board Arduino Mega .59 Hình 3-9 Pin sạc 21700 Lishen 4000mAh .60 Hình 3-10 Mạch giảm áp LM2596S .60 Hình 3-11 Nút nhấn giữ nguồn 24VDC .61 Trang xvii Hình 3-12 Nút nhấn nhả reset vi xử lý .61 Hình 3-13 Nút dừng khẩn cấp LAY37-11ZS .62 Hình 3-14 Đèn báo AD16-22DS .62 Hình 3-15 Mô hình 3D robot a) có thân vỏ b) không có thân vỏ .62 Hình 3-16 Chi tiết mặt đế của robot.63 Hình 3-17 Giá đỡ động cơ a) chưa lắp động cơ, b) đã lắp động cơ .63 Hình 3-18 Giá động cơ và phần đế .64 Hình 3-19 Chi tiết khung robot được gắn với đế robot .64 Hình 3-20 Giá đỡ IMU và Lidar .65 Hình 3-21 Giá đỡ Lidar và IMU, a) Gắn IMU, b) Gắn Lidar .65 Hình 3-22 Hộp điều khiển.65 Hình 3-23 Hộp đựng vi điều khiển bao gồm (a) mặt trước, (b) mặt sau, (c) mặt trái, (d) mặt phải, (e) mặt trên và (f) mặt dưới .66 Hình 3-24 Bộ bánh xe phụ.67 Hình 3-25 Vỏ đầu robot, a) phần vỏ đầu góc trái, b) phần vỏ đầu góc phải.67 Hình 3-26 Phần vỏ bảo vệ .68 Hình 3-27 Giá cảm biến gắn Lidar .69 Hình 3-28 Giá cảm biến gắn imu .69 Hình 3-29 Hộp điều khiển, a) hộp điều khiển với bố trí các linh kiện bên trong, b) hộp điều kiển khi lắp ráp hoàn thiện.69 Hình 3-30 Chi tiết phần vỏ đầu robot, a) vỏ đầu robot phía bên trái, b) vỏ đầu robot phía bên phải.70 Hình 3-31 Chi tiết vỏ robot sau khi gia công, a) góc nhìn ngiêng, b) góc nhìn thẳng.70 Hình 3-32 Mô hỉnh robot hoàn thiện a) góc trên xuống không có vỏ b) góc trên xuống có vỏ c) góc nghiên không có vỏ b) góc nghiên có vỏ.71 Hình 3-33 Sơ đồ nối nguồn 24v .73 Hình 3-34 Sơ đồ nối nguồn 5v .73 Hình 3-35 Sơ đồ đi dây PCB .74 Trang xviii Hình 3-36 Sơ đồ nguyên lý mạch PCB .74 Hình 3-37 Mạch PCB hoàn thiện .75 Hình 3-38 Mô hình xe vật cản, a) Khung xe vật cản, b) Vỏ xe vật cản, c) Tổng quan mô hình sau khi lắp rắp hoàn chỉnh.77 Hình 3-39 Lưu đồ chương trình chính .78 Hình 3-40 Lưu đồ chương trình con thực hiện ngắt ngoài.78 Hình 3-41 Chương trình con bộ điều khiển PID .79 Hình 3-42 Chương trình con điều khiển động cơ .79 Hình 3-43 Lưu đồ chương trình chính của robot vận cản .80 Hình 3-44 Lưu đồ chương trình ngắt .81 Hình 3-45 Lưu đồ chương trình điều khiển động cơ .81 Hình 3-46 Trang giao điện Home .82 Hình 3-47 Trang giao diện điều khiển và giám sát .83 Hình 4-1 Lưu đồ tổng quan giải thuật điều hướng .84 Hình 4-2 Tổng quan các nút trên ROS .85 Hình 4-3 Tổng quan nút EKF.86 Hình 4-4 Robot di chuyển trong môi trường có vật cản .87 Hình 4-5 Quá trình thực hiện mô phỏng.88 Hình 4-6 Chuyển mô hình từ Solidworks qua Gazebo .89 Hình 4-7 Mô tả các liên kết chính của robot .89 Hình 4-8 Kích thước bản vẽ bản đồ .91 Hình 4-9 Môi trường mô phỏng Gazebo .91 Hình 4-10 Quỹ đạo kiểm chứng EKF .92 Hình 4-11 Thời điểm ban đầu mô phỏng EKF .92 Hình 4-12 Robot ở vị trí thứ hai mô phỏng EKF .93 Hình 4-13 Robot ở vị trí thứ ba mô phỏng EKF .93 Hình 4-14 Robot ở vị trí thứ tư mô phỏng EKF.94 Hình 4-15 Robot quay lại vị trí ban đầu mô phỏng EKF .94 Trang xix Hình 4-16 Vị trí theo trục xy mô phỏng EKF .95 Hình 4-17 Trạng thái ban đầu của robot trong mô phỏng .95 Hình 4-18 Khởi chạy gói Hector Slam .