Ứng dụng SLAM trong điều khiển robot tự hành (ROBOT dạng 2 bánh – Differential Drive)



Cùng với cuộc phát triển của con người, các ngành khoa học kỹ thuật không ngừng tìm kiếm ra các công nghệ mới, đặc biệt là robot đang dần thay thế các công việc của con người. Để robot hoạt động được, ta không chỉ cần có một phần cơ cấu chấp hành hoàn hảo mà còn cần cả một bộ điều khiển để đáp ứng các nhu cầu điều khiển robot. Tuy nhiên, chỉ khi có một bộ não hoàn hảo, robot mới có thể hoạt động một cách chính xác. Chính vì vậy trong quá trình điều khiển robot, chúng ta cần sử dụng các thuật toán điều khiển, các hàm điềukhiển để làm cho hệ thống ổn định, ít ảnh hưởng với nhiễu nhất có thể. Các bộ điều khiển ngày nay đã và đang đáp ứng được rất nhiều yêu cầu điều khiển phức tạp. Do đó, điều khiển thông minh trên robot ngày càng được chú trọng và ứng dụng rộng rãi trong các ngành công nghiệp, thay thế cho các hoạt động của con người trong các môi trường độc hại, nguy hiểm. Và robot tự hành là một trong các loại robot được ứng dụng rộng rãi nhất. 

Robot tự hành có rất nhiều loại, với nhiều ứng dụng khác nhau ví dụ như robot phun khử khuẩn trong dịch covid 19, robot hút bụi,... Đặc điểm của các loại robot tự hành đang sử dụng phổ biến hiện nay đều là các robot di chuyển bằng bánh xe. Và đơn giản và dễ điều khiển, dễ ứng dụng nhát đó là loại robot 2 bánh (differential drive robot).

Vì vậy, trong khuôn khổ môn học Điều khiển robot tự hành , chúng em lựa chọn đề tài “Ứng dụng SLAM trong điều khiển robot tự hành”để tiến hành nghiên cứu và điều khiển robot. Và trong bài tập lớn này, chúng em lựa chọn bài toán như sau:

Sử dụng RP-Lidar để quét map và định vị cho robot trong môi trường, sau đó dùng Path Planning để đưa ra điểm đích cho robot, robot sẽ tự động tính toán, tìm ra đường đi và đi đến vị trí đó. Phần lập bản đồ, định vị và path planning được điều khiển trên nền tảng ROS trên linux, sau đó gửi về bộ điều khiển trung tâm để điều khiển robot.


NỘI DUNG:


PHÂN CHIA CÔNG VIỆC 7

Chương 1: Tổng quan về robot 2 bánh chủ động (Differential Drive Robot) 8

1.1. Giới thiệu robot 2 bánh (DifferentialDrive Robot - DDR): 8

1.1.1. Cấu trúc robot của nhóm: 10

1.1.2. Nguyên lý di chuyển, mô hình động học thuận của robot: 10

1.2. Tổng quan cơ cấu chấp hành, mạch điện của robot Omni 12

1.2.1. Khối cơ cấu chấp hành bao gồm: 12

1.2.2. Phần điều khiển: 13

Chương 2: SLAM trong robot tự hành 17

2.1. SLAM là gì: 17

2.2. Mô tả hệ thống robot mà nhóm xây dựng: 18

2.2.1. Cấu trúc của hệ thống: 18

2.2.2. Tổng quan về ROS và khối Navigation Stack: 18

2.3. Các thuật toán sử dụng : 22

2.2.1. Thuật toán xây dựng bản đồ (mapping): 22

2.2.2. Thuật toán định vị (localization): 28

2.3.4. Thuật toán lập kế hoạch đường đi (path planning): 33

Chương 3: Kết nối phần cứng và thực nghiệm 38

3.1. Sơ đồ kết nối phần cứng: 38

3.2. Phần mềm và điều khiến: 38

Chương 4. Kết Luận 41

4.1. Kết quả đạt được: 41

4.2. Hướng phát triển: 41

PHỤ LỤC 42

1. Code cho STM32 điều khiển robot: 42

2. Code giao tiếp giữa Pi và STM32: 42

3. Các package sử dụng trong ROS: 42

4. Nền tảng cho máy tính PC: ROS Melodic trên nền Ubuntu 18.04 42

Lê Xuân Tùng, Nguyễn Văn Tùng, Nguyễn Văn Việt

Điều khiển robot tự hành Giảng viên: TS. Bùi Đình Bá

5. Nền tảng cho máy tính nhúng Raspberry Pi: ROS Kinectic trên nền

Ubuntu 16.04, sử dụng Lubuntu của Ubiquity Robot










LINK DOWNLOAD



Cùng với cuộc phát triển của con người, các ngành khoa học kỹ thuật không ngừng tìm kiếm ra các công nghệ mới, đặc biệt là robot đang dần thay thế các công việc của con người. Để robot hoạt động được, ta không chỉ cần có một phần cơ cấu chấp hành hoàn hảo mà còn cần cả một bộ điều khiển để đáp ứng các nhu cầu điều khiển robot. Tuy nhiên, chỉ khi có một bộ não hoàn hảo, robot mới có thể hoạt động một cách chính xác. Chính vì vậy trong quá trình điều khiển robot, chúng ta cần sử dụng các thuật toán điều khiển, các hàm điềukhiển để làm cho hệ thống ổn định, ít ảnh hưởng với nhiễu nhất có thể. Các bộ điều khiển ngày nay đã và đang đáp ứng được rất nhiều yêu cầu điều khiển phức tạp. Do đó, điều khiển thông minh trên robot ngày càng được chú trọng và ứng dụng rộng rãi trong các ngành công nghiệp, thay thế cho các hoạt động của con người trong các môi trường độc hại, nguy hiểm. Và robot tự hành là một trong các loại robot được ứng dụng rộng rãi nhất. 

Robot tự hành có rất nhiều loại, với nhiều ứng dụng khác nhau ví dụ như robot phun khử khuẩn trong dịch covid 19, robot hút bụi,... Đặc điểm của các loại robot tự hành đang sử dụng phổ biến hiện nay đều là các robot di chuyển bằng bánh xe. Và đơn giản và dễ điều khiển, dễ ứng dụng nhát đó là loại robot 2 bánh (differential drive robot).

Vì vậy, trong khuôn khổ môn học Điều khiển robot tự hành , chúng em lựa chọn đề tài “Ứng dụng SLAM trong điều khiển robot tự hành”để tiến hành nghiên cứu và điều khiển robot. Và trong bài tập lớn này, chúng em lựa chọn bài toán như sau:

Sử dụng RP-Lidar để quét map và định vị cho robot trong môi trường, sau đó dùng Path Planning để đưa ra điểm đích cho robot, robot sẽ tự động tính toán, tìm ra đường đi và đi đến vị trí đó. Phần lập bản đồ, định vị và path planning được điều khiển trên nền tảng ROS trên linux, sau đó gửi về bộ điều khiển trung tâm để điều khiển robot.


NỘI DUNG:


PHÂN CHIA CÔNG VIỆC 7

Chương 1: Tổng quan về robot 2 bánh chủ động (Differential Drive Robot) 8

1.1. Giới thiệu robot 2 bánh (DifferentialDrive Robot - DDR): 8

1.1.1. Cấu trúc robot của nhóm: 10

1.1.2. Nguyên lý di chuyển, mô hình động học thuận của robot: 10

1.2. Tổng quan cơ cấu chấp hành, mạch điện của robot Omni 12

1.2.1. Khối cơ cấu chấp hành bao gồm: 12

1.2.2. Phần điều khiển: 13

Chương 2: SLAM trong robot tự hành 17

2.1. SLAM là gì: 17

2.2. Mô tả hệ thống robot mà nhóm xây dựng: 18

2.2.1. Cấu trúc của hệ thống: 18

2.2.2. Tổng quan về ROS và khối Navigation Stack: 18

2.3. Các thuật toán sử dụng : 22

2.2.1. Thuật toán xây dựng bản đồ (mapping): 22

2.2.2. Thuật toán định vị (localization): 28

2.3.4. Thuật toán lập kế hoạch đường đi (path planning): 33

Chương 3: Kết nối phần cứng và thực nghiệm 38

3.1. Sơ đồ kết nối phần cứng: 38

3.2. Phần mềm và điều khiến: 38

Chương 4. Kết Luận 41

4.1. Kết quả đạt được: 41

4.2. Hướng phát triển: 41

PHỤ LỤC 42

1. Code cho STM32 điều khiển robot: 42

2. Code giao tiếp giữa Pi và STM32: 42

3. Các package sử dụng trong ROS: 42

4. Nền tảng cho máy tính PC: ROS Melodic trên nền Ubuntu 18.04 42

Lê Xuân Tùng, Nguyễn Văn Tùng, Nguyễn Văn Việt

Điều khiển robot tự hành Giảng viên: TS. Bùi Đình Bá

5. Nền tảng cho máy tính nhúng Raspberry Pi: ROS Kinectic trên nền

Ubuntu 16.04, sử dụng Lubuntu của Ubiquity Robot










LINK DOWNLOAD

M_tả

M_tả

Không có nhận xét nào: