1. Trang chủ
  2. » Luận Văn - Báo Cáo

nghiên cứu, thiết kế và chế tạo robot di động dẫn đường sử dụng giải thuật cây ngẫu nhiên

100 317 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên Cứu, Thiết Kế Và Chế Tạo Robot Di Động Dẫn Đường Sử Dụng Giải Thuật Cây Ngẫu Nhiên
Tác giả Nguyễn Đình Khôi, Phạm Đồng Hải, Nguyễn Xuân Được
Người hướng dẫn TS. Trần Ngọc Tiến
Trường học Trường Đại Học Công Nghiệp Hà Nội
Chuyên ngành Công Nghệ Kĩ Thuật Cơ Điện Tử
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 100
Dung lượng 5,71 MB

Cấu trúc

  • CHƯƠNG 1: Tổng quan về mobile robot (15)
    • 1.1 Lịch sử nghiên cứu (15)
    • 1.2 Mục tiêu của đề tài (16)
    • 1.3 Phương pháp thực hiện đề tài (17)
    • 1.4 Dự kiến kết quả đạt được (18)
  • CHƯƠNG 2: Mô hình toán học mobile robot (20)
    • 2.1 Mô hình động học mobile robot (20)
      • 2.1.1 Phương trình chuyển động học thuận (22)
      • 2.1.2 Chuyển động học nghịch (25)
    • 2.2 Phương pháp khám phá (26)
    • 2.4 Robot và mô phỏng (30)
      • 2.4.1 Cài đặt cần thiết (30)
        • 2.4.1.1 Cài đặt Ubuntu (33)
        • 2.4.1.2 Cài ROS trên Ubuntu (33)
        • 2.4.1.3 Trình mô phỏng Gazebo (36)
        • 2.4.1.4 Trình mô phỏng Rviz (37)
        • 2.4.1.5 Phần mềm Meshlab (39)
        • 2.4.1.6 Rqt_mutiplot (39)
      • 2.4.2 Yêu cầu trên mô phỏng (42)
      • 2.4.3 Thao tác với ROS (43)
    • 2.5 Các yếu tố cần thiết để mô phỏng robot (45)
      • 2.5.1 Cài đặt cần thiết (45)
      • 2.5.2 Rrt_exploration (45)
      • 2.5.3 Rrt_exploration_tutorials (46)
      • 2.5.4 Navigation-kinetic-devel (47)
      • 2.5.5 Gmapping (47)
      • 2.5.6 Các thư mục chính (47)
    • 2.6 Mô phỏng trên ROS (52)
      • 2.6.1 Giao diện của Gazebo (52)
      • 2.6.2 Mô phỏng trên Gazebo (56)
        • 2.6.2.1 Tạo thế giới (56)
        • 2.6.2.2 Khởi chạy lại Gazebo với thế giới vừa tạo (60)
      • 2.6.3 Sử dụng package rrt_exploration (62)
      • 2.6.4 Mô phỏng trên Rviz (62)
      • 2.6.5 Điều hướng robot (65)
        • 2.6.5.1 Đồ thị rqt_mutilplot (65)
        • 2.6.5.2 Điều hướng và đồ thị (67)
      • 2.6.6 Khảo sát các thông số liên quan (72)
        • 2.6.6.1 Góc quét <α - deg> (72)
        • 2.6.6.2 Tốc độ tăng trưởng <eta> (74)
  • CHƯƠNG 3: Tính toán, thiết kế robot (76)
    • 3.1 Tính toán, thiết kế hệ thống cơ khí (76)
      • 3.1.1 Tính toán lựa chọn cơ cấu truyền động (76)
      • 3.1.2 Tính toán thiết kế thân robot (82)
    • 3.2 Tính toán, thiết kế hệ thống điều khiển (84)
      • 3.2.1 Mô tả hệ thống điều khiển (84)
      • 3.2.2 Thiết kế, lựa chọn hệ thống mạch điện (85)
    • 3.3 Chế tạo và thử nghiệm robot (86)
      • 3.3.1 Kết nối wifi hoặc dây (86)
      • 3.3.2 Kết nối cảm biến RPLidar A1 (86)
        • 3.3.2.1 RPLidar_ROS (86)
        • 3.3.2.2 Hector_Slam (87)
      • 3.3.3 Cài đặt và kết nối Arduino IDE (89)
      • 3.3.4 Mô hình giao tiếp giữa ROS và Arduino (90)
      • 3.3.5 Thiết lập cơ bản (90)
      • 3.3.6 Tạo launch file (92)
  • CHƯƠNG 4: Kết luận và đề xuất (95)
    • 4.1 Kết luận (95)
    • 4.2 Hạn chế của đề tài (95)
    • 4.3 Hướng phát triển của đề tài (96)
  • Tài liệu tham khảo (97)

Nội dung

Tổng quan về mobile robot

Lịch sử nghiên cứu

Thuật ngữ "robot" có nguồn gốc từ từ "Robota" trong tiếng Séc, có nghĩa là công việc tạp dịch, xuất hiện lần đầu trong vở kịch "Rossum’s Universal Robots" của Karel Čapek vào năm 1921 Trong tác phẩm này, nhân vật Rossum và con trai của ông đã phát minh ra những cỗ máy giống con người, nhằm phục vụ nhu cầu của con người.

Công nghiệp robot thông minh đóng vai trò quan trọng trong việc đánh giá sự tiến bộ công nghệ và năng lực sản xuất của một quốc gia Để tận dụng cơ hội phát triển và nâng cao vị thế cạnh tranh, nhiều nền kinh tế hàng đầu thế giới đã triển khai các chiến lược phát triển công nghiệp robot Các quốc gia như Hoa Kỳ, Đức, Nhật Bản và Hàn Quốc đã sớm đầu tư vào lĩnh vực này và đạt được nhiều thành tựu đáng kể.

Nghiên cứu và phát triển robot tại Việt Nam đang diễn ra mạnh mẽ ở nhiều trường đại học và viện nghiên cứu, đặc biệt là ở Hà Nội với các cơ sở như Trường Đại học Bách khoa Hà Nội và Học viện Kỹ thuật Quân sự Đội ngũ khoa học đang tập trung vào các vấn đề như thiết kế tối ưu, động học, điều khiển và lập trình phần mềm, nhưng chủ yếu vẫn mang tính học thuật và chưa đủ mạnh để thúc đẩy phát triển công nghệ robot Số lượng robot được chế tạo trong nước còn hạn chế, chủ yếu dựa vào công nghệ cũ từ nước ngoài, cho thấy Việt Nam chưa làm chủ được công nghệ này Hệ thống đào tạo nguồn nhân lực và nghiên cứu chuyên sâu về robot còn yếu kém, thiếu thốn về mô hình thực tế và thiết bị thí nghiệm Mặc dù kết quả thi Robocon của sinh viên Việt Nam đáng ghi nhận, nhưng điều này chỉ phản ánh một phần nhỏ về mặt ý tưởng, và vẫn còn nhiều thách thức cần vượt qua trong lĩnh vực này.

Hình 1.1 Mobile robot của hãng Omron

Hình 1.2 Robot công nghiệp của KUKA

Mục tiêu của đề tài

Nghiên cứu khảo sát các công trình nghiên cứu của các nhà khoa học về robot di động, bài viết này sẽ tập trung vào việc phân tích những vấn đề quan trọng liên quan đến loại robot này.

-Phân tích, tổng hợp và đề xuất giải pháp cho các vấn đề kỹ thuật liên quan đến quá trình điều khiển robot di động

Áp dụng kiến thức về cơ khí, điện, điện tử, điều khiển và tích hợp để thiết kế và chế tạo robot di động 4 bánh dạng vi sai là một nhiệm vụ thú vị và đầy thách thức Việc này không chỉ đòi hỏi sự hiểu biết sâu sắc về các nguyên lý kỹ thuật mà còn cần khả năng sáng tạo trong việc kết hợp các công nghệ hiện đại Robot di động này có thể được sử dụng trong nhiều ứng dụng khác nhau, từ nghiên cứu đến thực tiễn, góp phần nâng cao hiệu quả trong nhiều lĩnh vực.

-Nghiên cứu phương pháp khám phá tự trị cho robot di động

-Nghiên cứu phương pháp điều khiển tránh vật cho robot di động

- Thiết kế và chế tạo mô hình robot di động hoạt động ở môi trường trong nhà

-Sử dụng được các phần mềm chuyên dụng để thiết kế và mô phỏng hệ thống cơ điện tử (ros, gazebo, rviz,…)

-Lựa chọn được linh kiện, thiết bị và lắp ráp hoàn chỉnh một sản phẩm

Nghiên cứu về robot di động dẫn đường tại Việt Nam chủ yếu tập trung vào các khía cạnh như động học, động lực học, thiết kế quỹ đạo, xử lý thông tin cảm biến và cơ cấu điều khiển.

Các chương trình mô phỏng kết cấu và chuyển động 2D không chỉ giúp minh họa mà còn hỗ trợ phân tích thiết kế robot, bên cạnh việc tìm kiếm các phương pháp giải cho các bài toán động học liên quan đến robot.

Nghiên cứu thiết kế robot di động dạng vi sai là một lĩnh vực đa dạng và bao quát, nhưng nhóm nghiên cứu chỉ tập trung vào những phạm vi cụ thể trong đề tài của mình.

- Đối tượng: Nghiên cứu robot di động dẫn đường dạng vi sai sử dụng giải thuật cây

Đề tài nghiên cứu tập trung vào việc tính toán và thiết kế robot, cũng như chế tạo mô hình thực tế dựa trên tài liệu sẵn có từ nước ngoài.

- Bài toán động học và động lực học cho robot

- Phương pháp khám phá tự trị cho robot di động

- Phương pháp điều khiển tránh vật cho robot di động

Phương pháp thực hiện đề tài

- Tìm hiểu các tài liệu, đồ án và các hoạt động nghiên cứu về các dạng robot di động đã từng thực hiện trước đó

- Đưa ra phương án tối ưu cho robot di động dẫn đường dạng vi sai mà nhóm nghiên cứu sẽ triển khai

Nghiên cứu kiến thức từ tài liệu về giải thuật cây, phương pháp khám phá tự trị, và điều khiển tránh vật là cần thiết để phát triển mô hình thực tế Việc áp dụng các nguồn tài liệu này giúp tính toán và thiết kế lý thuyết, từ đó hỗ trợ trong việc xây dựng các giải pháp hiệu quả trong lĩnh vực robot và tự động hóa.

Hình 1.3 Phương pháp thiết kế hệ thống cơ điện tử

- Tham khảo, tìm hiểu các robot di động đang có tại Việt Nam để đánh giá ưu, nhược điểm của các robot trong thực tế

- Xem và nghiên cứu các hệ thống thực của các công ty về mảng robot như:

VinFast, Tosy Robotics, Schumak, Doosan, Addverb, mà các hàng này đã thực hiện và ghi hình lại

- Nghiên cứu hệ điều hành ROS cho robot di động

- Sử dụng các Package trên cộng đồng ROS trong và ngoài nước

- Thiết kế, xây dựng mô hình và mô phỏng robot bằng phần mềm gazebo, rviz

- Xử lý số liệu, tính toán và viết báo cáo.

Dự kiến kết quả đạt được

- Hiểu được cấu tạo của robot di động dạng vi sai đang có hiện nay

- Nắm được nguyên lí hoạt động của robot từ đó mô phỏng robot trên phần mềm gazebo, rviz.

Chúng tôi đã thiết kế và chế tạo thành công mô hình robot di động, mô phỏng theo các sản phẩm thực tế hiện nay Robot hoạt động hiệu quả và đáp ứng đầy đủ các yêu cầu cần thiết cho một thiết bị di động.

- Nguyên cứu và xây dựng được giải thuật cây RRT, phương pháp tránh vật tức thời.

Để thiết kế một robot di động hiệu quả, cần nắm vững các thành phần cơ bản như cơ khí, điện và điện tử Kiến thức này giúp bạn lựa chọn thiết bị phù hợp với mục đích sử dụng mong muốn.

Mô hình toán học mobile robot

Mô hình động học mobile robot

Hệ thống lái là một phần quan trọng của robot di động, giúp robot điều hướng môi trường xung quanh Một trong những giải pháp đơn giản và tiết kiệm chi phí cho hệ thống lái là hệ thống truyền động vi sai, bao gồm hai bánh xe chính gắn trên một trục chung và được điều khiển bởi các động cơ riêng biệt Tuy nhiên, hệ thống truyền động vi sai có những hạn chế nhất định trong việc thay đổi tư thế của robot.

Một chiếc ô tô minh họa cho hệ thống phi vật chất, vì nó không thể di chuyển mà không thay đổi tư thế Bài viết sẽ khám phá cách hoạt động của loại robot này và cách chúng ta có thể mô hình hóa chúng bằng các phương pháp toán học.

Hệ thống truyền động vi sai và động học robot là hai khía cạnh quan trọng trong nghiên cứu robot Động học robot tập trung vào việc phân tích chuyển động mà không xem xét các lực tác động, chủ yếu nghiên cứu các mối quan hệ hình học trong hệ thống Ngược lại, động lực học robot mô hình hóa tất cả các lực liên quan đến chuyển động của robot, giúp hiểu rõ hơn về cách thức hoạt động của chúng.

Robot hoặc phương tiện di động có sáu bậc tự do (DOF) bao gồm vị trí (x, y, z) và trạng thái (roll, pitch, yaw) Trong đó, Roll là chuyển động quay sang một bên, Pitch là chuyển động quay về phía trước và phía sau, còn Yaw thể hiện hướng di chuyển của robot trong mặt phẳng xy Robot truyền động vi sai chủ yếu di chuyển trong mặt phẳng nằm ngang, do đó tư thế 2D của nó được mô tả bằng x, y và θ, với θ là hướng mà robot đang hướng tới Thông tin này đủ để mô tả tư thế của robot vi sai.

Hình 2.1 Tư thế của robot theo x, y và, trong hệ tọa độ toàn cầu

Robot truyền động vi sai cho phép điều khiển chuyển động thông qua việc điều chỉnh tốc độ của hai động cơ độc lập bên trái và bên phải, được gọi là V-left và V-right Dưới đây là hình ảnh minh họa một số loại robot truyền động vi sai phổ biến trên thị trường hiện nay.

Hình 2.3 Robot được sử dụng phổ biến trong các ví dụ mô phỏng ROS

 Chuyển động của robot vi sai

Phương trình chuyển động học thuận cho robot truyền động vi sai được sử dụng để giải quyết vấn đề sau:

Nếu robot đang đứng ở vị trí (x, y, θ) tại thời điểm t, hãy xác định tư thế

(x ', y', θ') tại t + δt với các tham số điều khiển V-left và V-right

Kỹ thuật này có thể được robot tính toán để đi theo một quỹ đạo cụ thể

2.1.1 Phương trình chuyển động học thuận

Chúng ta có thể bắt đầu xây dựng giải pháp cho chuyển động học tiến về phía trước Hình minh họa bên dưới thể hiện một trong các bánh xe của robot.

Hình 2.4 Một bánh xe duy nhất của robot quay dọc theo trục y cục bộ

Chuyển động quanh trục y được gọi là quay, trong khi mọi chuyển động khác được xem là trượt Giả sử không có trượt xảy ra, khi bánh xe quay một vòng, quãng đường di chuyển là 2πr, với r là bán kính bánh xe Chúng ta cũng giả định rằng chuyển động diễn ra trong hai chiều, trên một bề mặt phẳng và đồng đều.

Khi robot thực hiện chuyển động quay, nó quay quanh một điểm nằm dọc theo trục bánh xe trái và phải, được gọi là ICC (tâm của độ cong tức thời) ICC thường nằm bên ngoài robot, và cấu hình bánh xe của robot truyền động vi sai liên quan trực tiếp đến vị trí của ICC.

Hình 2.5 Cấu hình bánh xe của robot truyền động vi sai

Vận tốc góc ω của robot là yếu tố then chốt để suy ra phương trình động học Mỗi bánh xe của robot quay quanh điểm ICC, di chuyển theo chu vi của một vòng tròn với bán kính bánh xe là r.

Tốc độ của bánh xe được tính bằng công thức v = 2 π r / T, trong đó T là thời gian cần thiết để hoàn thành một vòng quay Vận tốc góc ω được xác định bằng 2 π / T và có đơn vị đo là rad/s.

(độ/s) Kết hợp các phương trình cho v và ω thu được:

Phương trình của vận tốc tuyến tính: v = r.ꞷ (1)

Mô hình chi tiết của hệ thống truyền động vi sai được thể hiện trong sơ đồ sau đây:

Hệ thống truyền động di động được minh họa chi tiết trong Hình 2.6, trong đó R biểu thị khoảng cách giữa ICC và d là trung điểm của trục bánh xe, còn l là chiều dài của trục bánh xe Sau khi giải các biến ω và R, chúng ta thu được kết quả như mong đợi.

Nếu chúng ta áp dụng phương trình trước đó cho cả hai bánh xe, kết quả sẽ giống nhau nghĩa là ta có phương trình bánh xe vi sai:

Phương trình tìm khoảng cách từ ICC đến trọng tâm của robot và vận tốc góc của robot

Phương trình này rất quan trọng trong việc giải quyết các bài toán về chuyển động tịnh tiến Khi robot di chuyển với vận tốc góc ω trong khoảng thời gian δt giây, hướng di chuyển của robot sẽ thay đổi tương ứng.

Phương trình tìm sự thay đổi Ở đây, tâm của phép quay ICC được cho bởi công thức lượng giác cơ bản như sau:

Hình 2.7 Xoay robot ωδt độ xung quanh ICC

Với tọa độ ban đầu (x, y), vị trí mới (x', y') có thể được xác định thông qua ma trận xoay 2D Khi thực hiện chuyển động quay quanh điểm ICC với vận tốc góc ω trong khoảng thời gian δt giây, vị trí tại thời điểm t + δt sẽ được tính toán như sau:

Phương trình tính toán vị trí mới của robot

Các vị trí mới (x', y' và θ') có thể được xác định từ các phương trình (6) và (8) dựa trên các tham số ω, δt và R Tham số ω có thể được tính từ phương trình (5), trong khi việc đo tốc độ Vr và Vl thường gặp khó khăn Thay vào đó, vòng quay của mỗi bánh xe có thể được ghi nhận thông qua cảm biến gọi là bộ mã hóa bánh xe Dữ liệu từ bộ mã hóa này cung cấp thông tin về quãng đường di chuyển của robot, với cảm biến được gắn trên trục bánh xe và truyền tín hiệu nhị phân cho mỗi độ quay (mỗi độ tương ứng với 0,1 mm) Các tín hiệu này được gửi đến một bộ đếm, cho phép tính toán quãng đường vδt từ thời điểm t đến t.

+ δt Chúng ta có thể viết như sau: n * bước = vδt

Từ đó, chúng ta có thể tính toán v:

Phương trình tính toán vận tốc tuyến tính từ bộ mã hóa data

Nếu chúng ta thay phương trình (9) vào phương trình (3) và (4), chúng ta nhận được kết quả sau:

Phương trình tính toán bán kính R dựa trên số lượng bộ mã hóa nl và nr của bánh xe trái và phải, cùng với vận tốc Vl và Vr của hai bánh Khi robot ở vị trí (x, y, θ) và di chuyển với số đếm nl và nr trong khoảng thời gian δt, vị trí mới (x', y', θ') được xác định thông qua các phép tính tương ứng.

Phương trình tính toán vị trí của robot từ các giá trị bộ code hóa Ở đây,

Phương trình tính toán ICC và thông số khác từ các giá trị bộ mã hóa

Phương pháp khám phá

Cây ngẫu nhiên khám phá nhanh (RRT) là một thuật toán hiệu quả để tìm kiếm không gian bằng cách xây dựng ngẫu nhiên một cây lấp đầy không gian Thuật toán này phát triển từ các mẫu ngẫu nhiên, hướng đến các khu vực lớn chưa được khám phá, giúp giải quyết các vấn đề liên quan đến chướng ngại vật RRT đã được ứng dụng rộng rãi trong lập kế hoạch chuyển động cho robot tự động.

RRT phát triển một cây bắt rễ bằng cách sử dụng các mẫu ngẫu nhiên từ không gian tìm kiếm Mỗi mẫu được rút ra sẽ cố gắng kết nối với trạng thái gần nhất trong cây Nếu kết nối khả thi, trạng thái mới sẽ được bổ sung vào cây Việc lấy mẫu đồng nhất trong không gian tìm kiếm làm tăng xác suất mở rộng trạng thái hiện có, tỷ lệ thuận với kích thước vùng Voronoi của nó Các khu vực Voronoi lớn nhất thường nằm ở biên giới tìm kiếm, cho thấy cây sẽ ưu tiên mở rộng về phía những khu vực rộng lớn chưa được khám phá.

Độ dài kết nối giữa cây và trạng thái mới bị giới hạn bởi yếu tố tăng trưởng Nếu mẫu ngẫu nhiên nằm xa trạng thái gần nhất trong cây vượt quá giới hạn cho phép, một trạng thái mới sẽ được xác định ở khoảng cách lớn nhất từ cây theo đường thẳng đến mẫu ngẫu nhiên Các mẫu ngẫu nhiên này kiểm soát hướng phát triển của cây, trong khi yếu tố tăng trưởng quyết định tốc độ phát triển Điều này giúp duy trì xu hướng lấp đầy không gian của RRT.

Về RRT cũng như các thuật toán cải tiến dựa theo RRT hoặc một vài thuật toán khác

RRT (Rapidly-exploring Random Tree) là một cấu trúc bao gồm nhiều điểm ngẫu nhiên, được thiết kế nhằm giải quyết các bài toán lập kế hoạch đường đi Phương pháp này mở rộng bằng cách lặp lại các điểm ngẫu nhiên, giúp điều hướng hệ thống đến vị trí mong muốn trên bản đồ.

RRT và các thuật toán cải tiến của nó hoạt động trong không gian cấu hình, bao gồm tất cả các phép biến đổi có thể áp dụng cho Robot Không gian trạng thái được ký hiệu là Z ⊂ R n, trong đó n là số chiều của không gian tìm kiếm Vùng không gian tìm kiếm có chướng ngại vật được biểu thị bằng Zobs ⊂ Z, trong khi vùng không có chướng ngại vật được ký hiệu là Zfree = Z / Zobs.

Ztarget ⊂ Zfree là mục tiêu, trong khi Zinit ⊂ Zfree là điểm khởi đầu Người lập kế hoạch nhận Zinit và Ztarget làm đầu vào Nhiệm vụ là xác định một lộ trình không va chạm từ Zinit đến Ztarget trong không gian Zfree, với thời gian t ∈ R và chi phí đường đi tối thiểu.

Bài toán 1 yêu cầu tìm một đường đi σf : [0, s] trong không gian Zfree ⊂ Z, với điều kiện σf(0) = zinit thuộc Zfree và σf(s) nằm trong Zgoal Nếu không tìm thấy đường dẫn thỏa mãn, cần báo cáo lỗi.

Bài toán 2 (Đường đi Tối ưu): Tìm một đường đi tối ưu σ*f : [0, s] kết nối zinit và zgoal trong Zfree ⊂ Z, cho rằng độ dài của đường dẫn σ*f là nhỏ nhất,

Bài toán 3 (Sự hội tụ đến giải pháp tối ưu): Tìm một đường đi tối ưu σ*f :

[0, s] trong Zfree ⊂ Z trong thời gian ít nhất có thể t ∈ R

RRT xây dựng một cây bằng cách thực hiện việc lấy mẫu ngẫu nhiên trong không gian tìm kiếm Cây này bắt đầu từ trạng thái ban đầu z_init và mở rộng nhằm tìm kiếm đường dẫn tới mục tiêu.

Zgoal là một cây mở rộng dần dần thông qua các lần lặp lại Trong mỗi lần lặp, một trạng thái ngẫu nhiên Zrand được chọn từ không gian cấu hình Z Nếu mẫu ngẫu nhiên Zrand nằm trong khu vực không có chướng ngại vật, một nút gần nhất Znearest sẽ được tìm kiếm trong cây theo một số liệu xác định ρ Nếu Zrand có thể truy cập, quá trình tiếp tục diễn ra.

Khi cây được mở rộng theo kích thước bước đã xác định, Znearest được kết nối với Zrand Nếu không, một nút mới Znew được tạo ra thông qua chức năng lái, kết nối Znew với Znearest Quá trình kiểm tra va chạm được thực hiện để đảm bảo rằng không có va chạm giữa các nút Znew và Znearest Mặc dù đường dẫn ban đầu đã được tìm thấy, quá trình vẫn tiếp tục cho đến khi đạt khoảng thời gian hoặc số lần lặp cố định Thuật toán RRT được mô tả trong Bảng 1, và quá trình mở rộng nút được minh họa trong Hình 1.

6 (znew, Unew) ← Steer (znearest, zrand);

Sample: Hàm này tạo ra một Zrand từ không gian tìm kiếm trong vùng Zfree

Nearest: Hàm này trả về nút gần nhất từ Ƭ = (V, E) đến Zrand

Steer: Hàm (x, u, T) ← Steer (z1, z2) giải quyết cho đầu vào điều khiển u: [0, T] điều khiển hệ thống từ x (0) = z1 đến x (T) = z2 dọc theo đường dẫn x: [0, T] → X

Hàm CollisionCheck được sử dụng để kiểm tra va chạm của một nhánh cây, trả về giá trị True nếu nhánh cây nằm trong vùng không có chướng ngại vật Cụ thể, hàm này xác định xem đường z: [0, T] có nằm hoàn toàn trong vùng Zfree cho mọi t từ 0 đến T hay không.

Node Insertion: Cho cây hiện tại T = (V, E), điểm Znearest ∈ V, và điểm mới Znew, thủ tục InsertNode (Znearest , Znew , T) thêm Znew vào V và tạo một cạnh giữa Znearest và Znew

(Znearest là điểm cha của Znew), sau đó thêm cạnh vào tập E

Hình 2.8 Quá trình mở rộng cây

2.3 Phương pháp điều khiển tránh vật cản

Bài viết này tập trung vào phương pháp khám phá tự trị của thuật toán RRT, đồng thời cũng đề cập đến thuật toán tìm đường đi ngắn nhất trong việc điều hướng robot.

Thuật toán Dijkstra là phương pháp hiệu quả để tìm khoảng cách ngắn nhất từ một nút bắt đầu đến tất cả các nút khác trong đồ thị Nó xây dựng cây đường đi ngắn nhất bằng cách thêm các nút một cách tham lam, đảm bảo rằng tại mỗi bước, khoảng cách từ nút nguồn đến các nút trong cây luôn là tối thiểu.

Bước đầu tiên trong thuật toán là khởi tạo khoảng cách từ đỉnh gốc đến chính nó là 0 và khoảng cách tối thiểu ban đầu đến các đỉnh khác là +∞, tạo ra danh sách khoảng cách Tiếp theo, chọn đỉnh a có khoảng cách nhỏ nhất trong danh sách và ghi nhận, đồng thời loại bỏ đỉnh này khỏi các lần xét sau.

Bước 3: Xem xét từng đỉnh kề b của đỉnh a Nếu khoảng cách từ đỉnh gốc đến đỉnh b nhỏ hơn khoảng cách hiện tại, hãy cập nhật giá trị đã ghi nhận.

Robot và mô phỏng

Trong bài viết này, chúng ta sẽ khám phá quy trình thiết kế và mô phỏng robot di động có khả năng quét bản đồ tự động và tránh vật cản, sử dụng các phần mềm như ROS, Gazebo và Rviz Mục tiêu chính là phát triển một robot thông minh thông qua việc tìm hiểu và cài đặt các phần mềm cần thiết, cũng như hướng dẫn chi tiết về quá trình thực hiện mô phỏng.

Robot Operating System (ROS) là một phần mềm linh hoạt và chuyên dụng cho lập trình và điều khiển robot Nó bao gồm thư viện, công cụ lập trình, công cụ đồ họa, và hỗ trợ giao tiếp trực tiếp với phần cứng ROS còn tích hợp các thư viện để thu thập dữ liệu từ cảm biến và các thuật toán phổ biến trong lập trình điều khiển robot.

Các tính năng chính mà ROS cung cấp:

 Giao diện truyền thông điệp

 Trừu tượng hóa phần cứng

 Điều khiển thiết bị cấp thấp

 Mã nguồn mở và miễn phí

ROS là một hệ sinh thái tích hợp các công cụ, khả năng và hệ thống truyền thông điệp, cho phép phát triển các ứng dụng robot mạnh mẽ Nó cung cấp các công cụ gỡ lỗi và trực quan hóa dữ liệu hiệu quả, đồng thời hỗ trợ các khả năng như điều hướng, bản địa hóa, lập bản đồ và thao tác của robot Những tính năng này góp phần nâng cao hiệu suất và tính linh hoạt trong việc phát triển robot.

Có ba cấp độ tổ chức chính trong ROS:

 Biểu đồ tính toán ROS

Hình 2.9 Mô hình ROS đơn giản

ROS giúp đơn giản hóa và tiết kiệm thời gian trong việc lập trình các hành vi phức tạp của robot Nó hoạt động như một mạng lưới các node được kết nối, mỗi node đảm nhiệm một nhiệm vụ riêng, tương ứng với các thành phần của robot Các node này có thể được tùy chỉnh và lập trình theo ý tưởng của nhà phát triển mà không cần phải sử dụng cùng một ngôn ngữ lập trình Điều này cho phép bạn phát triển một node bằng C++ và một node khác bằng Python Hai ngôn ngữ này là nền tảng quan trọng mà bạn cần nắm vững trước khi làm quen với ROS.

ROS hoạt động trên nền tảng Ubuntu, vì vậy việc cài đặt ROS yêu cầu sử dụng hệ điều hành này Hiện tại, hai phiên bản phổ biến là ROS Melodic và ROS Kinetic, trong đó Melodic tương thích với Ubuntu 18, còn Kinetic chạy trên Ubuntu 16 Bạn có thể dễ dàng cài đặt ROS theo hướng dẫn trên trang chủ của ROS Trong bài viết tiếp theo, chúng tôi sẽ cung cấp hướng dẫn chi tiết về quá trình cài đặt này.

ROS bao gồm các cấu thành bởi các thành phần như hình sau:

Hình 2.10 Các thành phần của ROS

Nodes là đơn vị cơ bản giúp giao tiếp giữa các thành phần của robot, chẳng hạn như Laser scanner, Camera và Node gửi vận tốc đến thiết bị điều khiển động cơ Các nodes này có khả năng giao tiếp và tương tác với nhau thông qua Master.

Master là thành phần chính trong việc kết nối các node trong hệ thống Nó được khởi động đầu tiên bằng lệnh roscore, sau đó cho phép bạn gọi bất kỳ node nào Khi các node đã được gọi, chúng có thể kết nối và tương tác hiệu quả với nhau.

Parameter Server: Là một cấu trúc nhiều tham số có thể truy cập trong lúc chạy

ROS sử dụng các node để lưu trữ và truy xuất thông số trong thời gian thực Cấu trúc này thường không đạt hiệu suất cao, nên thích hợp cho kiểu dữ liệu tĩnh như thông số cấu hình và thời gian hệ thống.

Cấu trúc dữ liệu mà các node sử dụng để trao đổi thông tin tương tự như các kiểu dữ liệu double và int trong các ngôn ngữ lập trình Các node tương tác thông qua việc gửi và nhận ROS message.

Topics là phương pháp giao tiếp và trao đổi dữ liệu giữa hai node, cho phép chúng chia sẻ nhiều cấp bậc thông tin thông qua ROS message Hai phương thức chính trong topic bao gồm publish và subscribe, giúp quản lý và truyền tải dữ liệu hiệu quả.

Dịch vụ là quá trình trao đổi dữ liệu giữa hai nút thông qua phương thức yêu cầu và phản hồi Thường được sử dụng khi một lệnh cần thời gian xử lý lâu, dữ liệu tính toán sẽ được lưu trữ trên máy chủ để sử dụng khi cần thiết.

Tệp Bags là định dạng tệp quan trọng trong ROS, được sử dụng để lưu trữ dữ liệu message với phần mở rộng là bag Định dạng này cho phép dữ liệu được xử lý và phân tích bởi các công cụ mô phỏng trong ROS, chẳng hạn như Rviz, giúp người dùng dễ dàng làm việc và phân tích dữ liệu.

Cài đặt phiên bản ROS Kinetic Kame, một bản phân phối hỗ trợ lâu dài (LTS) và ổn định, trên Ubuntu 16.04.3 LTS ROS Kinetic chủ yếu được thiết kế cho hệ điều hành Ubuntu 16.04 LTS Người dùng có thể lựa chọn giữa hai phương pháp cài đặt Ubuntu.

 Cách 1: Cài song song bằng cách: Tạo USB Boot (Yêu cầu cần có USB 2GB) => Cài Ubuntu-16.04-desktop-amd64.iso => Cài ROS

Tham khảo ở đây: Cài đặt song song

 Cách 2: Cài trên máy ảo bằng cách:

Cài VirtualBox => Cài Ubuntu 16.04 => Cài ROS

Tải VirtualBox tại: Tải VirtualBox

Tải file iso Ubuntu bản 16.04.07: Tải trên trang chủ Ubuntu

1 Định cấu hình kho lưu trữ Ubuntu để cho phép các tệp có thể tải xuống Chúng tôi có thể cài đặt nó bằng cách sử dụng công cụ Software & Update của Ubuntu Chúng ta có thể lấy công cụ này bằng cách tìm kiếm trên menu tìm kiếm Ubuntu Unity và đánh dấu vào các hiển thị trong ảnh

Hình 2.11 Ubuntu và công cụ cập nhật

2 Thiết lập hệ thống của bạn để chấp nhận các gói ROS từ package.ros.org ROS Kinetic chỉ được hỗ trợ trên Ubuntu 16.04 Lệnh sau sẽ lưu trữ package.ros.org trong danh sách kho lưu trữ apt của Ubuntu:

$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

Các yếu tố cần thiết để mô phỏng robot

Để nâng cao trải nghiệm duyệt web trên Ubuntu, người dùng nên cài đặt trình duyệt Chrome thay vì sử dụng Firefox, do Firefox thường gặp lỗi hiển thị Để biết cách cài đặt Chrome, hãy tham khảo hướng dẫn chi tiết.

 Yêu cầu của package rrt_exploration

1 Nên cài đặt phiên bản phân phối của ROS (Indigo hoặc mới hơn

Khuyến nghị Indigo hoặc Kinetic)

2 Tạo không gian làm việc (Xem lại mục 5.3.2)

$ sudo apt-get install ros-kinetic-gmapping

$ sudo apt-get install ros-kinetic-navigation

$ sudo apt-get install python-minimal

$ sudo apt-get install python-opencv

$ sudo apt-get install python-numpy

$ sudo apt-get install python-scikits-learn

Tiến vào thư mục làm việc

$ git clone https://github.com/hasauino/rrt_exploration.git Biên dịch

Cài đặt robot hỗ trợ mô phỏng: Kobuki

$ sudo apt-get install ros-kinetic-kobuki ros-kinetic-kobuki-core

$ sudo apt-get install ros-kinetic-kobuki-gazebo

 Cài đặt rrt_exploration_tutorials

Tiến vào không gian làm việc /src

$ git clone https://github.com/hasauino/rrt_exploration_tutorials.git

Một robot di động có thể hoạt động hiệu quả với stack điều hướng, bao gồm xuất bản odom và tf, cùng với khả năng nhận lệnh vận tốc Để đảm bảo tính chính xác trong việc di chuyển, robot cần được trang bị máy quét laser hoặc các cảm biến khác có khả năng phát tín hiệu quét laser (sensor_msgs/LaserScan).

Tải và biên dịch package

$ git clone https://github.com/ros-planning/navigation/tree/kinetic-devel

Gói này cung cấp chiến lược thăm dò cho một hoặc nhiều rô bốt, nhưng để hoạt động hiệu quả, cần phải kết hợp với navigation stack Robot sẽ sử dụng nút "slam_gmapping" từ gói gmapping để thực hiện quá trình này.

Tải và biên dịch package

$ git clone https://github.com/ros-perception/slam_gmapping

Gói Rrt_exploration trong ROS cung cấp thuật toán khám phá bản đồ cho rô bốt di động, dựa trên thuật toán Cây Ngẫu nhiên Khám phá Nhanh (RRT) Gói này sử dụng các lưới để đại diện cho bản đồ, giúp tối ưu hóa quá trình di chuyển và khám phá của rô bốt.

Gói rrt_exploration_tutorial là một phần mở rộng cho gói ROS rrt_exploration, cung cấp đầy đủ các tệp mô phỏng Gazebo cần thiết cho robot Kobuki được trang bị máy quét laser, giúp người dùng dễ dàng triển khai và thử nghiệm với gói rrt_exploration.

Hệ thống điều hướng robot 2D sử dụng thông tin từ đo đường, luồng cảm biến và tư thế mục tiêu để tạo ra các lệnh vận tốc an toàn cho robot di động.

Gmapping (robot): Gói này chứa một trình bao bọc ROS cho OpenSlam's

Gmapping là một gói phần mềm cung cấp SLAM (Bản địa hóa và ánh xạ đồng thời) dựa trên laser, thông qua nút ROS có tên slam_gmapping Với slam_gmapping, người dùng có thể tạo ra bản đồ lưới chiếm dụng 2-D, tương tự như sơ đồ mặt bằng của tòa nhà, từ dữ liệu tia laser và thông tin thu thập được từ rô bốt di động.

 Các node trong rrt_exploration

Rrt_exploration có 5 thành phần chính:

 Global RRT frontier point detector node

 Local RRT frontier point detector node

 OpenCV- based frontier detector node

Quy trình được thể hiện như hình bên dưới

Hình 2.17 Sự liên kết giữa các node

Nhận một lưới chiếm dụng để xác định các điểm giới hạn, được gọi là mục tiêu thăm dò Các điểm phát hiện sẽ được công bố để nút bộ lọc có thể xử lý Việc chạy thêm các phiên bản của máy dò biên giới toàn cầu có thể cải thiện tốc độ phát hiện các điểm biên giới.

Nút này tương tự như global_rrt_frontier_detector nhưng hoạt động khác biệt, vì cây sẽ được đặt lại mỗi khi phát hiện điểm biên giới Được thiết kế để hoạt động song song với global_rrt_frontier_detector, nút này có nhiệm vụ nhanh chóng phát hiện các điểm biên trong khu vực gần của robot.

Nút frontier_opencv_detector là một bộ dò biên giới độc lập, không dựa trên RRT, mà sử dụng các công cụ OpenCV để phát hiện các điểm biên giới Nó được thiết kế để hoạt động một mình, và trong cấu hình nhiều robot, chỉ nên chạy một phiên bản duy nhất, vì việc chạy thêm các phiên bản khác không mang lại sự khác biệt nào.

Các nút bộ lọc nhận diện và xử lý các điểm biên giới từ tất cả các máy dò, sau đó chuyển giao chúng đến nút chỉ huy để điều khiển rô bốt Quá trình lọc này không chỉ loại bỏ các điểm cũ và không hợp lệ mà còn giúp loại trừ những điểm thừa, đảm bảo tính chính xác trong việc điều hướng.

Nút Assigner nhận các mục tiêu thăm dò từ nút lọc và ra lệnh cho rô bốt thông qua move_base_node Điều này giải thích tại sao ngăn xếp điều hướng được hiển thị trên rô bốt của bạn, giúp tối ưu hóa quá trình điều hướng và thực hiện các nhiệm vụ hiệu quả hơn.

Gói này sử dụng hai bản đồ chi phí để lưu trữ thông tin về chướng ngại vật, trong đó một bản đồ phục vụ lập kế hoạch toàn cầu để tạo ra các kế hoạch dài hạn cho toàn bộ môi trường, trong khi bản đồ còn lại hỗ trợ lập kế hoạch địa phương nhằm tránh chướng ngại vật Có nhiều tùy chọn cấu hình cho cả hai loại bản đồ chi phí, cũng như các tùy chọn riêng lẻ cho từng bản đồ Do đó, bài viết sẽ được chia thành ba phần để cấu hình bản đồ chi phí.

Tệp này chứa các tùy chọn cấu hình chung cho hai bản đồ chi phí trong navigation stack Để biết thêm chi tiết về các tham số trong tệp và danh sách đầy đủ các tham số được sử dụng bởi bản đồ chi phí, vui lòng tham khảo tài liệu Dưới đây là một số thông số có trong tệp [11].

# Cấu hình bản đồ chi phí trong chế độ lưới voxel map_type: costmap

# Đặt mức dung sai obstacle_range: 3.5 raytrace_range: 4.0

Các thông số thiết lập ngưỡng thông tin về chướng ngại vật trong costmap Tham số "obstacle_range" xác định giá trị cảm biến phạm vi tối đa, ở đây là 3,5 mét, nghĩa là robot chỉ cập nhật bản đồ với thông tin về chướng ngại vật trong phạm vi này Tham số "raytrace_range" xác định khoảng cách cho phép raytrace đọc cảm biến, với giá trị 4,0 mét, cho phép robot dọn sạch không gian phía trước cách xa tới 4,0 mét khi có tín hiệu từ cảm biến.

# Tham số hàm chi phí inflation_radius: 0.55

Mô phỏng trên ROS

Chúng ta có thể khởi động Gazebo bằng nhiều phương pháp khác nhau Trong chương này, chúng ta sẽ sử dụng lệnh để bắt đầu một thế giới trống rỗng, tức là không có robot và không có môi trường.

$ roslaunch gazebo_ros empty_world.launch

Lệnh trước đó khởi động máy chủ và Gazebo ở chế độ ẩn danh, tải một thế giới trống Dưới đây là hình ảnh của thế giới trống rỗng trong Gazebo.

Ta phân các bảng điều khiển theo vị trí:

Hình 2.19 Các bảng điều khiển

Scene là không gian nơi diễn ra quá trình mô phỏng robot, cho phép người dùng thêm nhiều đối tượng khác nhau Chúng ta có thể tương tác với robot trong cảnh thông qua việc sử dụng chuột và bàn phím.

Bạn có thể thấy Bảng điều khiển bên trái khi chúng tôi khởi chạy Gazebo Có ba tab chính ở bên trái:

Tab thế giới cung cấp danh sách các mô hình trong Cảnh Gazebo hiện tại, cho phép người dùng sửa đổi các thông số mô hình như tư thế và thay đổi vị trí của máy ảnh.

 Insert: Tab Chèn cho phép bạn thêm một mô hình mô phỏng mới vào

Các mô hình có sẵn trong hệ thống cục bộ và trên máy chủ từ xa Thư mục /home//.gazebo/model lưu trữ các tệp mô hình cục bộ và mô hình từ máy chủ từ xa, như thể hiện trong ảnh chụp màn hình sau.

Hình 2.20 Tab insert của gazebo

Tab Layer thường không được sử dụng trong quá trình mô phỏng, mà chủ yếu phục vụ để tổ chức các hình ảnh hóa khác nhau Người dùng có thể dễ dàng ẩn hoặc hiển thị mô hình trong mô phỏng bằng cách chuyển đổi từng lớp Trong hầu hết các trường hợp, tab này sẽ ở trạng thái trống.

Bạn có thể xem cả tệp cục bộ và tệp từ xa trong tab Insert được hiển thị trong ảnh chụp màn hình trước đó

Khi lần đầu tiên khởi động Gazebo hoặc khi bắt đầu một thế giới với các mô hình từ máy chủ từ xa, bạn có thể gặp phải màn hình đen hoặc cảnh báo trên thiết bị đầu cuối Nguyên nhân là do mô hình từ máy chủ đang được tải xuống, và Gazebo cần một khoảng thời gian để hoàn tất quá trình này, thời gian chờ có thể thay đổi tùy thuộc vào tốc độ kết nối internet của bạn Tuy nhiên, sau khi mô hình được tải xuống, nó sẽ được lưu trữ trong thư mục mô hình cục bộ, giúp tránh tình trạng chậm trễ trong các lần khởi động sau.

Thanh công cụ phía trên rất quan trọng cho việc tương tác với Cảnh Gazebo, cho phép người dùng điều khiển các mô hình trong cảnh Nó cung cấp các chức năng như chọn mô hình, chia tỷ lệ, dịch và xoay, cũng như thêm các hình dạng mới vào cảnh, giúp nâng cao trải nghiệm người dùng.

Hình 2.21 Thanh công cụ trên của gazebo Để tiện lợi, ta sẽ nêu một số chức năng

Hình 2.22 Chức năng thanh công cụ trên của gazebo

Danh sách sau đây hiển thị cho bạn mô tả chi tiết về từng tùy chọn:

Trong Chế độ Chọn, người dùng có khả năng lựa chọn các mô hình trong Cảnh, thiết lập thuộc tính cho chúng và điều hướng một cách linh hoạt bên trong Cảnh.

 Translate Mode: Trong Chế độ Dịch, chúng tôi có thể chọn một mô hình và dịch mô hình đó bằng cách nhấp vào nút Trái

 Rotate Mode: Trong Chế độ xoay, chúng ta có thể chọn mô hình và thay đổi sự định hướng

 Scale Mode : Trong Chế độ Quy mô, chúng ta có thể chọn mô hình và chia tỷ lệ

 Undo / Redo: Điều này cho phép chúng tôi hoàn tác hoặc làm lại các hành động trong Cảnh

 Simple shape: Với tùy chọn này, chúng tôi có thể chèn các hình dạng nguyên thủy vào cảnh, chẳng hạn như hình trụ, hình lập phương hoặc hình cầu

 Light: Tùy chọn Đèn cho phép chúng tôi thêm các loại nguồn sáng khác nhau vào cảnh

 Copy / Paste: Các tùy chọn Sao chép và Dán cho phép chúng tôi sao chép và dán các mô hình và các bộ phận của Cảnh

 Align: Điều này cho phép chúng tôi căn chỉnh các mô hình với nhau

 Snap: Thao tác này chụp một mô hình và di chuyển nó vào bên trong Cảnh

 Change view : Thao tác này thay đổi chế độ xem của Cảnh Nó chủ yếu sử dụng phối cảnh khung nhìn và khung nhìn trực giao

 Screenshot : Thao tác này sẽ chụp ảnh màn hình của Cảnh hiện tại

 Record log: Thao tác này sẽ lưu nhật ký của Gazebo

Thanh công cụ dưới cùng chủ yếu cung cấp cho chúng ta ý tưởng về mô phỏng

Nó hiển thị Mô phỏng

Thời gian trong mô phỏng đề cập đến sự chuyển động của thời gian, có thể được tăng tốc hoặc chậm lại tùy thuộc vào yêu cầu tính toán của mô phỏng hiện tại.

Màn hình Thời gian thực thể hiện thời gian thực trong khi trình mô phỏng hoạt động Hệ số thời gian thực (RTF) đo lường tỷ lệ giữa thời gian mô phỏng và thời gian thực Khi RTF bằng một, mô phỏng diễn ra với tốc độ tương đương với thời gian thực.

Trong Gazebo, trạng thái của thế giới có thể thay đổi qua mỗi lần lặp lại, với mỗi lần lặp tạo ra những biến đổi trong một khoảng thời gian cố định, được gọi là kích thước bước Mặc định, kích thước bước trong Gazebo được thiết lập là 1 mili giây.

Sau khi làm việc với Gazebo, bây giờ đã đến lúc chạy mô phỏng trên đó và làm việc với một số người máy

Sau khi cài đặt các gói, chúng ta có thể bắt đầu mô phỏng bằng cách sử dụng các tệp bên trong gói rùa-vọng lâu, bao gồm các tệp thế giới khác nhau Tệp thế giới Gazebo (*.world) là tệp SDF chứa các thuộc tính của mô hình trong môi trường Khi tệp world thay đổi, Gazebo sẽ tải một môi trường mới Để khởi động, hãy mở tệp launch theo đường dẫn: catkin_ws/src/rrt_exploration_tutorials/launch/single_simulated_house.launch bằng gedit và thực hiện các chỉnh sửa cần thiết.

Lưu ý rằng nếu bạn có một tệp world trống tên là emty.world, hãy lưu nó tại catkin_ws/src/rrt_exploration_tutorials/launch/include/worlds Nếu tệp này không tồn tại, bạn có thể tạo mới.

Lệnh sau sẽ bắt đầu một thế giới có một tập hợp các thành phần nhất định:

$ cd src/rrt_exploration_tutorials/launch

$ roslaunch single_simulated_house.launch

Khi chạy mô phỏng lần đầu sẽ mất một khoảng thời gian để tải dữ liệu và khi hoàn tất, ta có được robot với một thế giới trống

Hình 2.23 Mô hình trong trình mô phỏng Gazebo

Để thực hiện đề tài, trước tiên cần tạo một thế giới riêng trên Gazebo, thay vì sử dụng hình ảnh robot với thế giới mặc định có sẵn.

Trên giao diện phần mềm Gazebo Ở thanh công cụ trên nhấp chọn Edit -> Building Editor

Hình 2.24 Công cụ edit của gazebo

Một giao diện mới được mở ra:

Hình 2.25 Giao diện Building Editor

Tính toán, thiết kế robot

Ngày đăng: 11/06/2022, 17:55

HÌNH ẢNH LIÊN QUAN

Hình 1.1 Mobile robot của hãng Omron - nghiên cứu, thiết kế và chế tạo robot di động dẫn đường sử dụng giải thuật cây ngẫu nhiên
Hình 1.1 Mobile robot của hãng Omron (Trang 16)
Hình 2.7 Xoay robot ωδt độ xung quanh ICC - nghiên cứu, thiết kế và chế tạo robot di động dẫn đường sử dụng giải thuật cây ngẫu nhiên
Hình 2.7 Xoay robot ωδt độ xung quanh ICC (Trang 24)
Bảng 2.1 Thuật toán RRT - nghiên cứu, thiết kế và chế tạo robot di động dẫn đường sử dụng giải thuật cây ngẫu nhiên
Bảng 2.1 Thuật toán RRT (Trang 29)
Hình 2.13 Trình mô phỏng Rviz - nghiên cứu, thiết kế và chế tạo robot di động dẫn đường sử dụng giải thuật cây ngẫu nhiên
Hình 2.13 Trình mô phỏng Rviz (Trang 38)
Hình 2.15 Giao diện của rqt_multiplot - nghiên cứu, thiết kế và chế tạo robot di động dẫn đường sử dụng giải thuật cây ngẫu nhiên
Hình 2.15 Giao diện của rqt_multiplot (Trang 41)
Hình 2.17 Sự liên kết giữa các node - nghiên cứu, thiết kế và chế tạo robot di động dẫn đường sử dụng giải thuật cây ngẫu nhiên
Hình 2.17 Sự liên kết giữa các node (Trang 48)
Ta phân các bảng điều khiển theo vị trí: - nghiên cứu, thiết kế và chế tạo robot di động dẫn đường sử dụng giải thuật cây ngẫu nhiên
a phân các bảng điều khiển theo vị trí: (Trang 53)
Hình 2.18 Giao diện Gazebo - nghiên cứu, thiết kế và chế tạo robot di động dẫn đường sử dụng giải thuật cây ngẫu nhiên
Hình 2.18 Giao diện Gazebo (Trang 53)
của các mô hình trong môi trường. Khi tệp world thay đổi, Gazebo sẽ tải với một môi trường khác - nghiên cứu, thiết kế và chế tạo robot di động dẫn đường sử dụng giải thuật cây ngẫu nhiên
c ủa các mô hình trong môi trường. Khi tệp world thay đổi, Gazebo sẽ tải với một môi trường khác (Trang 57)
Hình 2.29 Công cụ insert Gazebo - nghiên cứu, thiết kế và chế tạo robot di động dẫn đường sử dụng giải thuật cây ngẫu nhiên
Hình 2.29 Công cụ insert Gazebo (Trang 60)
Hình 2.30 Giao diện thế giới gazebo hoàn chỉnh - nghiên cứu, thiết kế và chế tạo robot di động dẫn đường sử dụng giải thuật cây ngẫu nhiên
Hình 2.30 Giao diện thế giới gazebo hoàn chỉnh (Trang 61)
Hình 2.33 Quá trình quét của robot - nghiên cứu, thiết kế và chế tạo robot di động dẫn đường sử dụng giải thuật cây ngẫu nhiên
Hình 2.33 Quá trình quét của robot (Trang 64)
Hình 2.35 Giao diện rqt_multiplot - nghiên cứu, thiết kế và chế tạo robot di động dẫn đường sử dụng giải thuật cây ngẫu nhiên
Hình 2.35 Giao diện rqt_multiplot (Trang 65)
Hình 2.36 Cài đặt đồ thị vận tốc dài rqt - nghiên cứu, thiết kế và chế tạo robot di động dẫn đường sử dụng giải thuật cây ngẫu nhiên
Hình 2.36 Cài đặt đồ thị vận tốc dài rqt (Trang 66)
Hình 2.37 Cài đặt đồ thị vận tốc góc rqt - nghiên cứu, thiết kế và chế tạo robot di động dẫn đường sử dụng giải thuật cây ngẫu nhiên
Hình 2.37 Cài đặt đồ thị vận tốc góc rqt (Trang 67)

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w