Tối Ưu Đường Đi Cho Robot Và Di Chuyển Đa Robot Theo Đội Hình

Tài liệu nghiên cứu Tối ưu đường đi cho robot và di chuyển đa robot theo đội hình, tổng hợp lý thuyết và thực hành, cung cấp kiến thức chuyên sâu về .

2023

165
3
0

Phí lưu trữ

45 Point

Mục lục chi tiết

LỜI CAM ĐOAN

LỜI CẢM ƠN

1. CHƯƠNG 1: TỔNG QUAN

1.1. Tình hình nghiên cứu ngoài nước

1.2. Tình hình nghiên cứu trong nước

1.3. Mục tiêu đề tài

1.4. Phương pháp nghiên cứu

1.5. Nội dung nghiên cứu

2. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1. Mô hình toán hệ robot di động hai bánh vi sai

2.1.1. Động học thuận hệ robot di động hai bánh vi sai

2.1.2. Động học nghịch hệ robot di động hai bánh vi sai

2.2. Giới thiệu về hệ điều hành robot (ROS)

2.2.1. ROS filesystem level

2.2.2. ROS Computation graph level

2.2.3. ROS community level

2.3. Cài đặt ROS trên Jetson Nano

2.3.1. Cài đặt mạng và cấu hình

2.3.2. Cài đặt ROS Melodic

2.3.3. Thêm các biến môi trường và cài đặt ROS Dependencies

2.3.4. Cài đặt không gian làm việc

2.3.5. Cài đặt thư viện cần thiết và các gói chức năng của Lidar

2.4. Triển khai mô hình trong ROS

2.5. Bài toán travelling salesman problem (TSP)

2.6. Thuật toán tìm đường tối ưu

2.6.1. Thuật toán Dijkstra’s

2.6.2. Thuật toán Greedy Best First Search

2.7. Thuật toán giải bài toán TSP

2.7.1. Thuật toán Brute Force Search

2.7.2. Thuật toán tối ưu đàn kiến (ACO)

2.8. Gói Navigation stack trên ROS

3. CHƯƠNG 3: THIẾT KẾ PHẦN CỨNG

3.1. Yêu cầu thiết kế

3.2. Sơ đồ mô tả hệ thống

3.3. Thiết kế khung xe robot

3.4. Tính toán lựa chọn thiết bị

3.4.1. Máy tính nhúng Jetson Nano

3.4.2. Động cơ DC JGY-370

3.4.4. Driver điều khiển động cơ

3.4.5. Nguồn cấp cho board Jetson Nano và Driver L298N

3.4.6. Cảm biến gia tốc IMU-9250

3.4.7. Vi điều khiển Arduino Mega 2560

3.4.8. Cảm biến khoảng cách laser scan RPLidar A1-M8

3.5. Sơ đồ nguyên lý hệ thống

3.6. Mô hình robot thực tế

3.7. Điều khiển động cơ dc sử dụng bộ điều khiển PID

4. CHƯƠNG 4: THIẾT KẾ PHẦN MỀM

4.1. Tổng quan hệ thống

4.2. Vẽ bản đồ môi trường (mapping)

4.2.1. Thuật toán Gmapping

4.3. Định vị robot (localization)

4.3.1. Mô hình chuyển động (motion model)

4.3.2. Mô hình quan sát (observation model)

4.3.3. Thuật toán định vị Monte Carlo

4.3.4. Bộ lọc hạt thích nghi cho định vị (AMCL)

4.4. Bài toán TSP và các bài toán mở rộng

4.4.1. Xử lý occupancy grid map

4.4.2. Áp dụng thuật toán A* vào occupancy grid map đã xử lý

4.4.3. Áp dụng thuật toán ACO giải bài toán ITSP

4.4.4. Áp dụng thuật toán ACO giải bài toán IMTSP

4.4.5. Triển khai thuật toán A* và ACO trên ROS

4.5. Bài toán đội hình

4.5.1. Thuật toán Dynamic Window Approach (DWA)

4.5.2. Thuật toán di chuyển theo đội hình

5. CHƯƠNG 5: KẾT QUẢ MÔ PHỎNG VÀ THỰC NGHIỆM

5.1. Kết quả mô phỏng

5.1.1. Vẽ bản đồ với Gmapping

5.1.2. Bài toán ITSP

5.1.3. Bài toán đội hình

5.2. Kết quả thực nghiệm

5.2.1. Điều khiển PID vận tốc bánh xe

5.2.2. Vẽ bản đồ với Gmapping

5.2.3. Bài toán ITSP

5.2.4. Bài toán IMTSP

5.2.5. Bài toán đội hình

6. CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

6.1. Kết luận

6.2. Hướng phát triển

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng Quan Về Tối Ưu Đường Đi Cho Robot

Trong bối cảnh công nghệ hiện đại, việc tối ưu hóa đường đi cho robot trở thành một trong những thách thức lớn nhất trong lĩnh vực điều khiển và tự động hóa. Các nghiên cứu hiện nay tập trung vào việc phát triển các thuật toán tối ưu nhằm cải thiện hiệu suất di chuyển của robot. Đặc biệt, việc áp dụng các phương pháp tối ưu hóa như thuật toán ACO (Ant Colony Optimization) đã cho thấy hiệu quả rõ rệt trong việc giải quyết bài toán TSP (Traveling Salesman Problem) cho robot.

1.1. Khái Niệm Về Tối Ưu Hóa Đường Đi

Tối ưu hóa đường đi cho robot liên quan đến việc tìm kiếm lộ trình ngắn nhất và hiệu quả nhất để robot di chuyển từ điểm xuất phát đến điểm đích. Điều này không chỉ giúp tiết kiệm thời gian mà còn giảm thiểu năng lượng tiêu thụ.

1.2. Vai Trò Của Robot Trong Tối Ưu Hóa

Robot ngày càng được sử dụng rộng rãi trong nhiều lĩnh vực như logistics, sản xuất và dịch vụ. Việc tối ưu hóa đường đi cho robot giúp nâng cao hiệu suất làm việc và giảm thiểu rủi ro trong quá trình hoạt động.

II. Thách Thức Trong Di Chuyển Đa Robot Theo Đội Hình

Di chuyển đa robot theo đội hình là một thách thức lớn trong lĩnh vực robot bầy đàn. Các robot cần phải phối hợp với nhau để duy trì đội hình trong khi vẫn tối ưu hóa đường đi. Điều này đòi hỏi các thuật toán phức tạp và khả năng giao tiếp hiệu quả giữa các robot.

2.1. Vấn Đề Giao Tiếp Giữa Các Robot

Giao tiếp giữa các robot là yếu tố quan trọng để duy trì đội hình. Các robot cần phải chia sẻ thông tin về vị trí và trạng thái của nhau để điều chỉnh hành vi di chuyển.

2.2. Thách Thức Về Tính Toán Đường Đi

Việc tính toán đường đi cho nhiều robot cùng lúc là một bài toán phức tạp. Các thuật toán cần phải đảm bảo rằng tất cả các robot đều di chuyển một cách đồng bộ và hiệu quả.

III. Phương Pháp Tối Ưu Đường Đi Cho Robot

Có nhiều phương pháp được áp dụng để tối ưu hóa đường đi cho robot, bao gồm các thuật toán như Dijkstra, A*, và ACO. Mỗi phương pháp có những ưu điểm và nhược điểm riêng, phù hợp với từng loại bài toán cụ thể.

3.1. Thuật Toán Dijkstra

Thuật toán Dijkstra là một trong những thuật toán phổ biến nhất để tìm đường đi ngắn nhất. Nó hoạt động hiệu quả trong các mạng lưới có trọng số và đảm bảo tìm ra lộ trình tối ưu.

3.2. Thuật Toán A

Thuật toán A* kết hợp giữa Dijkstra và heuristic để tìm đường đi nhanh hơn. Nó thường được sử dụng trong các ứng dụng robot do khả năng tìm kiếm hiệu quả trong không gian lớn.

3.3. Thuật Toán ACO

Thuật toán ACO mô phỏng hành vi của đàn kiến trong việc tìm kiếm thức ăn. Nó đã được áp dụng thành công trong việc giải quyết bài toán TSP cho robot, giúp tối ưu hóa lộ trình di chuyển.

IV. Ứng Dụng Thực Tiễn Của Tối Ưu Đường Đi

Tối ưu hóa đường đi cho robot không chỉ là lý thuyết mà còn có nhiều ứng dụng thực tiễn. Các robot được tối ưu hóa có thể hoạt động hiệu quả hơn trong các môi trường phức tạp như nhà kho, nhà máy sản xuất và trong các nhiệm vụ cứu hộ.

4.1. Ứng Dụng Trong Logistics

Trong ngành logistics, việc tối ưu hóa đường đi cho robot giúp giảm thời gian giao hàng và tiết kiệm chi phí vận chuyển. Robot có thể tự động hóa quy trình vận chuyển hàng hóa một cách hiệu quả.

4.2. Ứng Dụng Trong Sản Xuất

Trong sản xuất, robot được tối ưu hóa có thể di chuyển linh hoạt giữa các dây chuyền sản xuất, giúp tăng năng suất và giảm thiểu thời gian chết.

V. Kết Luận Về Tương Lai Của Tối Ưu Đường Đi Cho Robot

Tương lai của tối ưu hóa đường đi cho robot hứa hẹn sẽ có nhiều tiến bộ với sự phát triển của công nghệ AI và machine learning. Các thuật toán sẽ ngày càng trở nên thông minh hơn, giúp robot hoạt động hiệu quả hơn trong các môi trường phức tạp.

5.1. Xu Hướng Phát Triển Công Nghệ

Công nghệ AI sẽ tiếp tục phát triển, giúp cải thiện khả năng ra quyết định của robot trong việc tối ưu hóa đường đi.

5.2. Tích Hợp Với Các Hệ Thống Khác

Tương lai sẽ chứng kiến sự tích hợp giữa robot và các hệ thống khác như IoT, giúp tối ưu hóa quy trình làm việc và nâng cao hiệu quả.

13/07/2025
Tối ưu đường đi cho robot và di chuyển đa robot theo đội hình

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

Chương 1: Tổng quan Chương này giới thiệu tổng quan về đề tài, mục tiêu, phương pháp nghiên cứu, nội dung và một số giới hạn của đề tài. - Chương 2: Cơ sở lý thuyết Chương này trình bày về động học của hệ Differential Drive Robots, giới thiệu về hệ thống ROS và cách cài đặt ROS trên board Jetson Nano và tổng quan về bài toán TSP. - Chương 3: Thiết kế phần cứng Chương này trình bày về yêu cầu thiết kế phần cứng, sơ đồ khối hệ thống, tính toán lựa chọn linh kiện, thiết bị được sử dụng và sơ đồ nguyên lý. - Chương 4: Thiết kế phần mềm Chương này trình bày về các thuật toán tạo bản đồ như Gmapping, thuật toán tìm đường đi tối ưu A* và bài toán ITSP với thuật toán ACO, cùng với đó là thuật toán duy trì đội hình với bộ điều khiển Leader-Follower cho đội hình.

Và sau đó lập trình các thuật toán mô phỏng trên Matlab và ROS. - Chương 5: Kết quả và kết luận Chương này trình bày kết quả mô phỏng và kết quả thực nghiệm các thuật toán.5 Giới hạn Sau đây là một số giới hạn đề tài trong quá trình thực hiện: - Đề tài không xét đến khía cạnh năng lượng pin khi robot hết pin hoặc pin yếu. - Đề tài không xét đến việc tính toán tải cho robot, chỉ xét đến việc điều khiển vận tốc cho robot. - Chỉ xét vật cản có hình thẳng đứng từ chân đế đến tầm quét của lidar.

- Không xét đến trường hợp mất tín hiệu giao tiếp giữa client và máy chủ server thông qua ROS Network. - Không xét hướng tại các trạm trong bài toán TSP và tất cả bài toán mở rộng. - Thuật toán ACO được so sánh sánh với Brute Force Search ở quy mô trạm nhỏ ở bài toán ITSP, quy mô lớn hơn và bài toán mở rộng khác thì so sánh các kết quả sau nhiều lần chạy. Các thuật toán khác không được đề cập trong bài báo cáo này.

ĐỒ ÁN TỐT NGHIỆP 5 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Mô hình toán hệ robot di động hai bánh vi sai Nhiều robot di động sử dụng một cơ chế truyền động được gọi là truyền động vi sai. Nó bao gồm hai bánh xe truyền động được gắn trên một trục chung và mỗi bánh xe có thể được điều khiển độc lập về phía trước hoặc phía sau bằng việc cung cấp vận tốc cho hai bánh xe. Mặc dù chúng ta có thể thay đổi vận tốc cho từng động cơ để điều hướng robot nhưng để robot thực hiện chuyển động quay thì phải quay quanh một điểm nằm dọc theo trục bánh trái và phải gọi là trục chính của nó. Điểm mà robot quay quanh gọi là ICC – Instantaneous Center of Curvature.

Điểm ICC được mô tả như Hình 2.1 Mô tả robot di động Differential Drive hệ non-holonomic Bằng cách thay đổi vận tốc của hai bánh xe, chúng ta có thể thay đổi quỹ đạo mà robot di chuyển. Khi quay quanh điểm ICC ta phải cấp vận tốc tương đương nhau cho cả hai động cơ. Tốc độ của bánh xe là v = 2 r / T , với T là thời gian để xe hoàn thành xoay quanh một vòng đối với điểm ICC,  là là vận tốc góc của robot được định nghĩa là 2 / T ( rad / s ). Kết hợp các phương trình cho v và  , ta có được phương trình sau: v = r (2.1) Với các đại lượng có trong Hình 2.1 ta có các phương trình sau:  ( R + l / 2) = Vr (2.3) Với l là khoảng cách giữa hai trục bánh xe, Vr , Vl là vận tốc bánh phải và bánh trái được tính dựa trên xung đọc được từ encoder.

R là khoảng cách từ điểm ICC đến điểm chính giữa của trục hai bánh xe. Trong bất cứ thời điểm nào khi điều hướng, ta có thể tính được giá trị của R và  như sau: l Vl + Vr V −V R= ;= r l (2.4) 2 Vr − Vl l ĐỒ ÁN TỐT NGHIỆP 6 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Động học thuận hệ robot di động hai bánh vi sai Trong Hình 2.1, giả sử rằng robot đang ở vị trí ( x, y ) , hướng của robot là góc  tạo với trục X của hệ toạ độ, với trục X nằm dọc theo chiều dài robot. Khi có Vl và Vr được tính từ số xung encoder, kết hợp với công thức (2.4) ta có thể xác định được vị trí ICC như sau: ICC = [x − R sin  , y + R cos  ] (2.5) Tại thời điểm t + t vị trí và hướng của robot là:  x  cos(t ) − sin(t ) 0   x − ICC x   ICC x   y  =  sin(t ) cos(t ) 0   y − ICC  +  ICC  (2.6)     y  y    0 0 1      t  Phương trình (2.6) mô tả chuyển động của robot quay quanh một khoảng R với tâm là ICC cùng với vận tốc góc góc . Để biễu diễn đơn giản động học thuận của hệ Differential Drive Robots, bài báo số [6] đã đưa ra phương trình sau:  x  v cos   cos  0 v  q =  y  = v sin   = sin  0   (2.7)      0   1  Với q =  x y   , ( x, y ) là vị trí của robot,  vẫn là góc quay quanh trục Z của robot, T tương ứng với góc lệch so với trục X của robot.

Giá trị v là vận tốc trung bình của robot được tính dựa trên công thức sau: Vr + Vl v= (2.8) 2 Giá trị của vận tốc góc  được tính dựa trên công thức: Vr − Vl = (2.9) l Tại thời điểm t + t vị trí và hướng của robot là:  x   x(t )   x   y  =  y (t )  +  y  t (2.10)          0    ĐỒ ÁN TỐT NGHIỆP 7 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.2 Động học nghịch hệ robot di động hai bánh vi sai Ta có thể mô tả vị trí của robot theo một hướng cụ thể  (t ) với vận tốc v(t ) là: t x(t ) =  v(t ) cos[ (t )]dt (2.13) 0 Kết hợp với công thức (2.9) ta viết lại như sau: 1 t 2 0 x(t ) = [Vr (t ) + Vl (t )]cos[ (t )]dt (2.16) Bài toán động học nghịch là khi muốn robot tiến đến vị trí mục tiêu ( x, y,  ) và chúng ta cần cung cấp vận tốc cho từng bánh như thế nào để đạt được vị trí ấy. Tuy nhiên đối với robot Differential Drive Robots được gọi là hệ non-holonomic thì robot chỉ di chuyển theo phương X của robot mà không thể di chuyển theo phương Y. Và để robot dịch sang bên phải một đoạn thì sẽ không dễ dàng để di chuyển, điều đó tương tự như việc đỗ xe đòi hỏi một loạt các thao tác lái phức tạp. Vì vậy không hề đơn giản chỉ định một vị trí ( x, y,  ) cụ thể và tìm ra vận tốc đưa robot đến đó.

Đối với các trường hợp đặc biệt Vl = Vr = v (robot đi thẳng và hướng robot là 0 o ) thì phương trình (2.6) được viết lại như sau:  x   x + v cos( )t   y  =  y + v sin( )t  (2.17)          Nếu Vr = −Vl = v thì robot sẽ quay tại chỗ với tâm là điểm chính giữa trục nối hai bánh xe, phương trình (2.6) được viết lại như sau:     x  x   y =      y  (2.18)    2vt   +   l  ĐỒ ÁN TỐT NGHIỆP 8 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT Tóm lại, đối với hệ này, ta có ba trường hợp đặc biệt đối với vận tốc từng bánh như sau: 1. Nếu Vl = Vr thì robot sẽ chuyển động tuyến tính theo đường thẳng về phía trước hoặc sau. Nếu Vl = −Vr thì robot sẽ xoay quanh điểm chính giữa trục của hai bánh xe, lúc này robot coi như xoay quanh tại chỗ. Nếu Vl = 0 và Vr  0 thì robot sẽ quanh quanh tâm tại bánh trái với bán kính là l / 2 , tương tự với trường hợp ngược lại.2 Giới thiệu về hệ điều hành robot (ROS) Robotics là một lĩnh vực đang phát triển với tốc độ nhanh chóng trong lĩnh vực công nghệ.

Có thể chúng đã nghe hoặc thấy về các ứng dụng như xe tự lái, robot hình người của Tesla hoặc Boston Dynamics và những robot đó đều sử dụng nền tảng ROS để lập trình chúng. Vậy ROS là gì? Robot Operating System - ROS là một nền tảng mã nguồn mở (open-source) cung cấp những thư viện và công cụ để xây dựng các ứng dụng liên quan tới robot. Nó cung cấp nhiều tính năng mạnh mẽ để hỗ trợ các nhà phát triển trong các nhiệm vụ như truyền thông tin, tái sử dụng mã nguồn và triển khai các thuật toán cho ứng dụng robot. Vậy thực tế ROS được sử dụng trong những trường hợp nào? Nó có thể được áp dụng cho bất kỳ ứng dụng nào liên quan đến việc giao tiếp hoặc điều khiển các cảm biến (sensor) và thiết bị truyền động (actuator).

Ngoài ra, ROS cũng được rất nhiều người sử dụng trong nghiên cứu, ví dụ như trong lĩnh vực xe tự hành nhóm chúng em đang thực hiện (autonomous driving) robot hình người (humanoid robot), thiết bị bay không người lái (drone), và nhiều lĩnh vực khác. Có nhiều lý do để chọn ROS nền tảng lập trình và một trong số đó là: • High-end capabilities: ROS đi kèm với các gói như Simultaneous Localization and Mapping (SLAM) và Adaptive Monte Carlo Localization (AMCL). • Tone of tools: Hệ sinh thái ROS có rất nhiều công cụ để gỡ lỗi, giám sát và mô phỏng. Các công cụ chẳng hạn như rqt_gui, Rviz và Gazebo sẽ được nhóm sử dụng trong quá trình thực đề tài.

• Support for high-end sensors and actuators: ROS có đa dạng các gói hỗ trợ nhiều loại cảm biến như 3D LIDAR, laser scanners, depth sensor,… • Inter-platform operability: Trong ROS có một thành phần trung gian giao tiếp giữa các gói, các chương trình với nhau gọi là nodes.

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

Tài liệu "Tối Ưu Đường Đi Cho Robot Và Di Chuyển Đa Robot Theo Đội Hình" cung cấp cái nhìn sâu sắc về các phương pháp tối ưu hóa đường đi cho robot, đặc biệt trong bối cảnh di chuyển của nhiều robot theo đội hình. Nội dung chính của tài liệu bao gồm các thuật toán và kỹ thuật giúp cải thiện hiệu suất di chuyển, giảm thiểu thời gian và năng lượng tiêu thụ, đồng thời nâng cao khả năng tương tác giữa các robot trong một đội hình. Những lợi ích này không chỉ giúp tăng cường hiệu quả hoạt động của robot mà còn mở ra nhiều cơ hội ứng dụng trong các lĩnh vực như logistics, sản xuất và dịch vụ.

Để mở rộng kiến thức của bạn về chủ đề này, bạn có thể tham khảo thêm tài liệu Đồ án tốt nghiệp công nghệ kỹ thuật cơ điện tử nghiên cứu thuật toán tối ưu hóa quỹ đạo di chuyển cho robot vận chuyển hàng hóa, nơi bạn sẽ tìm thấy các nghiên cứu chi tiết về thuật toán tối ưu hóa cho robot vận chuyển. Ngoài ra, tài liệu Khóa luận tốt nghiệp kỹ thuật máy tính nghiên cứu và xây dựng mô hình robot phục vụ quán cà phê cũng sẽ cung cấp cho bạn cái nhìn về ứng dụng thực tiễn của robot trong ngành dịch vụ. Cuối cùng, bạn có thể khám phá thêm về Khóa luận tốt nghiệp kỹ thuật máy tính xây dựng robot tự hành quét bản đồ trong nhà và tránh vật cản, tài liệu này sẽ giúp bạn hiểu rõ hơn về công nghệ điều hướng và tránh vật cản trong môi trường sống thực tế.