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

báo cáo đồ án i đề tài nghiên cứu ros robot operating system

41 2 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Định dạng
Số trang 41
Dung lượng 10,38 MB

Cấu trúc

  • CHƯƠNG I. GIỚI THIỆU (4)
    • 1. Tổng quan về hệ điều hành dành cho robot – ROS (4)
    • 2. Thuật ngữ sử dụng trong ROS (5)
      • 2.1. ROS Communi (10)
  • CHƯƠNG II: ROBOT OPERATING SYSTEM (ROS) (12)
    • 2. Packages & xây dựng một package (13)
      • 2.1 Giới thiệu packages (13)
      • 2.2 Tạo một package và xây dựng 2 nodes (14)
    • 3. Gazebo (20)
    • 4. Rviz (22)
  • CHƯƠNG III: SLAM (23)
    • 1. Tổng quan (23)
    • 2. Tf (23)
    • 3. Triển khai Slam trong ROS (24)
      • 3.1 Kết nối với Rplidar (24)
      • 3.2 Khởi tạo gói Rplidar_ros (25)
      • 3.3 Khởi chạy Rplidar (26)
      • 3.4 Gampping (27)
  • CHƯƠNG IV: NAVIGATION (29)
    • 1. Tổng quan về Navigation (29)
      • 2.1 Tổng quan về Navigation stack (30)
  • CHƯƠNG V. TURTLEBOT3 (33)
    • 1. Download Turtlebot3 (33)
    • 2. Mô phỏng di chuyển Turtlebot3 bằng Gazebo (33)
    • 3. Tạo map cho TURTLEBOT3 sử dụng gmapping (36)

Nội dung

Trên thực tế, lập trình Robot và thiết kế có nghĩa dễ hiểu là thực hiện việc quản lý phần cứng bằng cách viết ra các trình điều khiển, quản lý bộ nhớ và các quy trình thực hiện, quản lý

GIỚI THIỆU

Tổng quan về hệ điều hành dành cho robot – ROS

Robot Operating System – ROS là hệ điều hành mã nguồn mở dành cho robot, là một framework được dùng rất rộng rãi trong lĩnh vực robotic với nhiều ưu điểm Nó tạo ra một nền tảng phần mềm có thể hoạt động trên rất nhiều robot khác nhau mà không cần sự thay đổi quá nhiều trong chương trình phần mềm

ROS được bắt đầu với ý tưởng tạo ra sự thuận tiện là có thể chia sẻ dễ dàng và có thể được sử dụng lại trên những phần cứng robot khác nhau mà không cần phải xây dựng lại từ đầu Việc xây dựng lại từ đầu cho một nền tảng robot riêng biệt sẽ tốn rất nhiều thời gian và công sức; bên cạnh đó, việc ứng dụng lại những thành quả của việc nghiên cứu trước đó để xây dựng những thuật toán cao hơn cũng gặp rất nhiều khó khăn

Từ những lợi ích của ROS mang lại, những tổ chức nghiên cứu phát triển trên thế giới về ROS góp phần mang lại nguồn thông tin dồi dào về cả phần cứng lẫn phần mềm Trên thế giới, cũng có rất nhiều công ty và tổ chức đã bắt đầu ứng dụng nền tảng này vào ứng dụng của họ để tạo ra những sản phẩm có chất lượng tốt hơn

Nhờ vào đó, hiện nay trên thế giới có rất nhiều thiết bị được hỗ trợ framework này

Hình 1.1 Một số robot được chế tạo trên nền tảng ROS ROS cung cấp, hỗ trợ các dịch vụ (services) như một hệ điều hành như phần cứng trừu tượng (hardware abtraction), kiểm soát các thiết bị cấp thấp (low-level device control), thực thi (implementation) các chức năng phổ biến, tin nhắn (message) qua lại giữa các quá trình, và quản lý gói Ngoài ra, nó cũng cung cấp nhiều công cụ và thư viện cho việc tham khảo, biên dịch, viết và chạy chương trình trên nhiều máy khác nhau

Việc chạy các chuỗi quy trình (processes) dựa trên ROS được thể hiện dưới kiến trúc graph, biểu diễn mối quan hệ của các thành phần trong hệ điều hành

ROS thực thi một số loại giao tiếp khác nhau như giao tiếp kiểu RPC dạng đồng bộ thông qua services, truyền dữ liệu bất đồng bộ thông qua topics và lưu trữ dữ liệu trên Parameter Server

ROS không phải là một framework thời gian thực, nhưng thông qua nó ta có thể viết chương trình thời gian thực

ROS là một hệ điều hành mã nguồn mở nên thu hút sự quan tâm của cộng đồng, đồng nghĩa với các công cụ, thư viện sẽ được xây dựng và phát triển phong phú Hiện nay, mô hình robot đã và đang được xây dựng trên hệ điều hành này với nhiều ứng dụng có tính thực tiễn cao

Hiện nay, ROS chỉ chạy trên nền tảng Unix Các phần mềm được chạy trên ROS chủ yếu được thử nghiệm trên hệ điều hành Ubuntu và Mac OS X Bên cạnh đó, thông qua cộng đồng này, nó còn đang được xây dựng để hỗ trợ cho các nền tảng khác như Fedora, Gentoo, Arch Linux và các nền tảng Linux khác

Chương trình cốt lõi của ROS, các công cụ tiện ích và các thư viện cũng được phát hành các phiên bản mới được gọi là ROS Distribution Những

Distribution này giống như Linux Distribution và đồng thời cung cấp chuỗi các phần mềm tương thích

Khi ROS được ứng dụng cho robotic thì khối lượng công việc kỹ thuật cơ bản sẽ giảm, bên cạnh đó khối lượng công việc dành cho xây dựng hệ thống tăng một cách đáng kể Do đó, chúng ta có thể dành thời gian cho việc nghiên cứu các ứng dụng chuyên sâu, đạt hàm lượng khoa học cao hơn trong dự án.

Thuật ngữ sử dụng trong ROS

- Master hoạt động như một máy chủ có chức năng kết nối giữa các node và" đường dẫn" trong truyền thông tin tức

- Câu lệnh để thi hành Master là:

- Master giao tiếp với các slavers bằng việc sử dụng XMLRPC ( XML- Remote Procedure Call), là một tính năng truyền tải dữ liệu của Wordpress Khi thao tác với master, nó sẽ được cấu hình với địa chỉ URI và một cổng được cấu hình trong ROS_MASTER_URI Mặc định, địa chỉ URI chính là địa chỉ IP của máy, còn cổng được đặt là 11311

- Node là một phần tử nhỏ nhất trong ROS, nó thường được xem như một chương trình để thực thi một chức năng hoặc một nhiệm vụ nào đó

- Để một node có thể hoạt động, nó phải có các thông tin cơ bản như: tên, kiểu message, địa chỉ URI, cổng Node có thể đóng vai trò như publisher, subscriber, service server hoặc service client tùy thuộc vào thông tin mà nó đăng ký lên master Các nodes có thể giao tiếp với nhau bằng cách sử dụng topics và services

- Node sử dụng XMLRPC khi giao tiếp với master và sử dụng XMLRCP hoặc TCPROS của giao thức TCP/IP khi giao tiếp với các nodes khác

- Package là một phần tử cơ bản trong ROS Trong package chứa các file cấu hình, các nodes và nó có chức năng thi hành các node đó

- Package chứa nhiều files cần thiết cho việc thi hành package, các gói, thư viện, các phụ thuộc

- Cách tạo ra một gói:

- Sau khi tạo xong một gói, cần phải catkin_make lại workspace:

- Là một package chuyên biệt, dùng để phục vụ cho việc thể hiện mối quan hệ một nhóm các package khác với nhau Metapackage thường được dùng như nơi để giữ các tương thích ngược cho việc chuyển đổi sang rosbuild Stacks

Ví dụ như: Navigation chứa 10 packages bao gồm ACML, DWA, EKF và map_server

➢Package Manifests: là một bảng mô tả về một package như tên, version, mô tả, thông tin license,… Manifests được quản lý bởi một file tên là manifests.xml

➢Stacks: khi chúng ta kết hợp các package với nhau với một vài chức năng thì được gọi là Stack Trong ROS, có rất nhiều stack với công dụng khác nhau Tương tự Package, nơi chứa thông tin về stack gọi là Stack Manifests

Mục tiêu của việc dùng Stack là để đơn giản hóa cho quá trình chia sẻ chương trình ứng dụng

➢Message types: là mô tả của một thông điệp được gửi qua lại giữ các quá trình, được lưu trữ dưới dạng my_package/msg/MyMessageType.msg Message định nghĩa cấu trúc dữ liệu cho các thông điệp được gửi đi Trong ROS, có rất nhiều loại message tiêu chuẩn phục vụ cho quá trình giao tiếp giữa các node với nhau Ngoài ra, ta cũng có thể tự định nghĩa lại một kiểu message theo nhu cầu sử dụng của chúng ta

➢Service types: là mô tả một service, được lưu trữ dưới dạng my_package- /msg/MyServiceType.srv Service định nghĩa cấu trúc dữ liệu request và response giữa các node trong ROS Để gọi một service, ta cần phải sử dụng tên của service cùng với tên của package chứa service đó

- Message chính là nội dung thông tin, dữ liệu trao đổi giữa các nodes Có rất nhiều kiểu message khác nhau được thực hiện trên các biến cơ bản như int, boolean, string

- Message là một "bó" dữ liệu để trao đổi giữa các nodes Các topics, service, action đều sử dụng message để giao tiếp Cấu trúc của một kiểu message như sau: fieldtype1 fieldname1 fieldtype2 fieldname2 fieldtype3 fieldname3

- Topic là chủ đề để các nodes có thể giao tiếp được với nhau Bởi vì trong một hệ thống của chúng ta có rất nhiều nodes, các nodes giao tiếp được với nhau nếu chúng có cùng topic

$ rostopic bw: display bandwidth used by topic

$ rostopic delay: display delay for topic which has header

$ rostopic echo: print messages to screen

$ rostopic find: find topics by type

$ rostopic hz: display publishing rate of topic

$ rostopic info: print information about active topic

$ rostopic list: print information about active topics

$ rostopic pub: publish data to topic

$ rostopic type: print topic type

- Đây là hai thuật ngữ dùng để cho biết đâu là node truyền thông tin và đâu là node nhận thông tin Một node vừa có thể truyền thông tin và vừa có thể nhận thông tin

Sử dụng Publish để truyền thông tin tới Master và Subcriber để nhận thông tin từ Master

- Service là một giao tiếp đồng bộ 2 chiều giữa dịch vụ máy khách (service client) và dịch vụ máy chủ (service server)

- Ros wiki hướng dẫn cụ thể cách viết một service client và service server

- Service server: là một server trong dịch vụ giao tiếp tin nhắn Nó tiếp nhận các yêu cầu từ dịch vụ máy khách và hồi đáp lại yêu cầu đó Nó được thi hành trong node mà nhận được và thi hành một yêu cầu

- Service client: là một client trong dịch vụ giao tiếp tin nhắn Nó gửi yêu cầu tới

8 server và sau đó nhận hồi đáp

- Action là một phương pháp giao tiếp đồng bộ hai chiều Nó được thực hiện khi mà quá trình phản hồi diến ra lâu, khi thực hiện action thì phản hồi sẽ được yêu cầu liên tục cho đến khi kết quả được trả về

- Cấu trúc của một file action giống với service Tuy nhiên, phần phản hồi dữ liệu cho sự hồi đáp ngay lập tức được thêm vào cùng với dữ liệu đích và kết quả, cái mà được mô tả như yêu cầu và hổi đáp ở service

- Action server: phụ trách việc nhận mục tiêu từ client sau đó đáp trả lại với phản hồi và kết quả

- Action client: phụ trách việc truyền mục tiêu tới server và nhận lại kết quả và phản hồi như là đầu vào từ action server

Trên ros.wiki.org hướng dẫn đầy đủ cách tạo và sử dụng Action server cũng như action client

Roslaunch được tạo ra để :

- Thi hành nhiều nodes một lúc Ví dụ:

Ngày đăng: 14/06/2024, 16:15

HÌNH ẢNH LIÊN QUAN

Hình 1.1 Một số robot được chế tạo trên nền tảng ROS     ROS cung cấp, hỗ trợ các dịch vụ (services) như một hệ điều hành như phần  cứng trừu tượng (hardware abtraction), kiểm soát các thiết bị cấp thấp (low-level  device control), thực thi (implementatio - báo cáo đồ án i đề tài nghiên cứu ros robot operating system
Hình 1.1 Một số robot được chế tạo trên nền tảng ROS ROS cung cấp, hỗ trợ các dịch vụ (services) như một hệ điều hành như phần cứng trừu tượng (hardware abtraction), kiểm soát các thiết bị cấp thấp (low-level device control), thực thi (implementatio (Trang 4)
Hình 2.2 Quan hệ giữa các node trong ROS - báo cáo đồ án i đề tài nghiên cứu ros robot operating system
Hình 2.2 Quan hệ giữa các node trong ROS (Trang 10)
Hình 4.1.  Mô hình Navigation stack trong ROS - báo cáo đồ án i đề tài nghiên cứu ros robot operating system
Hình 4.1. Mô hình Navigation stack trong ROS (Trang 30)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w