Robot học (Robotics) · Bước 7/8 · 6 phút
ROS 2 cơ bản
Bạn biết ROS 2 là gì, các ý tưởng cốt lõi của nó và cách đi những bước đầu tiên.
ROS 2 là gì
ROS 2, Robot Operating System, không phải hệ điều hành. Đó là một framework (bộ khung phần mềm) và bộ công cụ miễn phí, mã nguồn mở, giúp các phần trong phần mềm robot nói chuyện với nhau. Nó là ngôn ngữ chung của các phòng thí nghiệm và nhiều công ty robot.
ROS 2 chạy tốt nhất trên Ubuntu Linux. Hãy dùng bản hỗ trợ dài hạn (LTS) hiện hành: Jazzy Jalisco (2024) được hỗ trợ đến 2029, và cứ hai năm lại có một bản LTS mới vào tháng Năm.
Node và topic
Node là một chương trình nhỏ làm một việc: đọc lidar, lập đường đi, chạy bánh xe. Các node chia sẻ dữ liệu bằng cách publish (phát) và subscribe (đăng ký nhận) trên các topic có tên, như /scan hay /cmd_vel.
Node lidar phát lên /scan mà không cần biết ai đang nghe. Node nào cần dữ liệu quét thì đăng ký nhận. Sự liên kết lỏng này cho phép bạn thay từng phần mà không phải viết lại mọi thứ.
Service, action và công cụ
Service là lời gọi hỏi đáp nhanh. Action là tác vụ dài có cập nhật tiến độ và có thể hủy, như đi đến một căn phòng. Bạn viết node bằng Python với rclpy hoặc C++ với rclcpp.
Công cụ gánh rất nhiều việc. RViz hiển thị những gì robot thấy. ros2 topic echo in ra tin nhắn trực tiếp. Gazebo mô phỏng robot. Nav2 lo việc điều hướng, còn MoveIt 2 lập chuyển động cho cánh tay.
Kiên nhẫn với khâu cài đặt
Cài đặt và công cụ build làm vấp phần lớn người mới. Hãy làm các hướng dẫn chính thức theo thứ tự, bắt đầu với turtlesim. Nếu không dùng Linux, một container Docker hoặc máy ảo chạy Ubuntu vẫn dùng được.
Thử ngay
Phác thảo sơ đồ node ROS 2
- 1.Chọn một robot: chiếc xe nhỏ tự đi đến một phòng và tránh người.
- 2.Nhờ chatbot đề xuất các node, topic, service và action nó cần.
- 3.Đối chiếu tên topic với tài liệu ROS 2, như /scan và /cmd_vel.
- 4.Nếu bạn có Ubuntu hoặc Docker, làm theo hướng dẫn turtlesim chính thức trên docs.ros.org.
Tôi đang học ROS 2. Hãy đề xuất sơ đồ node cho một robot nhỏ trong nhà có lidar và camera, tự đi đến các phòng có tên và dừng lại khi gặp người. Liệt kê node, topic kèm kiểu message, service và action. Đánh dấu phần nào Nav2 đã có sẵn.