Kiến thức robot bằng tiếng Việt
Blog
Bài viết kỹ thuật về lập trình nhúng, ROS 2, SLAM, Nav2 và AMR/AGV — viết từ kinh nghiệm làm robot thật.
34 bài viết · ROS / ROS2
Tạo package C++ trong ROS2 từng bước
Từ lệnh ros2 pkg create đến node C++ đầu tiên chạy được bằng ros2 run — quy trình đầy đủ để dựng một package ament_cmake trong workspace ROS2.
Tạo package Python trong ROS2 từng bước
Package Python không cần biên dịch nhưng vẫn phải qua colcon build — entry_points trong setup.py là chỗ khai executable, thay cho CMakeLists.txt bên C++.
CMakeLists.txt trong package ROS2 — đọc hiểu từng dòng
CMakeLists.txt do ros2 pkg create sinh ra trông rối, nhưng chỉ có vài khối lệnh lặp lại theo khuôn cố định — hiểu đúng thứ tự là đọc/sửa được bất kỳ package C++ nào.
package.xml — bản khai lý lịch của một package ROS2
package.xml là file duy nhất mà mọi package ROS2 bắt buộc phải có — khai đúng các thẻ <depend> ở đây quyết định colcon build có tự tính đúng thứ tự build hay không.
Launch File trong ROS2 — khởi động nhiều node cùng lúc
Một robot thật chạy hàng chục node cùng lúc — launch file gói toàn bộ lệnh ros2 run rời rạc đó thành một file Python duy nhất, chạy bằng một lệnh ros2 launch.
Parameter trong ROS2 — cấu hình node không cần sửa code
Tốc độ tối đa, tên frame, ngưỡng cảm biến — mọi giá trị có thể cần đổi theo robot hoặc theo môi trường nên khai báo là parameter, không hardcode trong code node.
ros2 node — liệt kê và kiểm tra node đang chạy
Trước khi debug topic hay service, câu hỏi đầu tiên luôn là: node nào đang thực sự chạy? ros2 node là công cụ trả lời câu hỏi đó trong vài giây.
ros2 topic — xem, gửi và đo tốc độ dữ liệu topic
echo để xem dữ liệu, pub để giả lập publisher, hz/bw để đo tốc độ — ros2 topic là bộ công cụ dùng nhiều nhất khi debug giao tiếp giữa các node.
ros2 service — gọi thử service từ terminal
Không cần viết một client node riêng chỉ để test — ros2 service call gọi thẳng bất kỳ service nào từ terminal, xem kết quả ngay lập tức.
ros2 action — gửi goal và theo dõi tiến trình từ terminal
Test Nav2 mà không cần mở RViz2 click chuột — ros2 action send_goal gửi thẳng toạ độ đích, in feedback theo thời gian thực ngay trong terminal.
ros2 param — đọc và đổi parameter khi node đang chạy
Bài Parameter đã nói về declare_parameter trong code — ros2 param là công cụ dòng lệnh để đọc, đổi, và sao lưu những parameter đó khi node đang chạy thật.
ros2 bag — ghi lại và phát lại dữ liệu robot
Lỗi SLAM chỉ xảy ra 1 lần trong 10 lần chạy thử ngoài thực địa — ros2 bag ghi lại toàn bộ dữ liệu topic của lần chạy đó để phát lại và debug ở bàn làm việc, không cần mang robot ra hiện trường lần nữa.