Sử dụng tệp khởi động (launch) trong ROS

Cách sử dụng tệp khởi động (launch)

1. Tệp khởi động: Sử dụng tệp XML để cấu hình và khởi động nhiều nút (có thể tự động khởi động ROS Master)

2. Ngữ pháp tệp khởi động:

<launch>
  <node pkg="turtlesim" name="sim1" type="turtlesim_node"/>
  <node pkg="turtlesim" name="sim2" type="turtlesim_node"/>
</launch>

Lưu ý:

  • Thẻ <launch> là phần tử gốc của tệp khởi động.
  • Thẻ <node> được sử dụng để khởi động các nút.
<node pkg="ten_goi_y" type="ten_chuong_trinh" name="ten_nut"/>
  • pkg: Tên gói chứa nút.
  • type: Tên tập tin thực thi của nút.
  • name: Tên nút khi chạy.

Các tham số khác:

  • output, respawn, required, ns, args.

Cấu hình tham số:

  • <param><rosparam> được sử dụng để thiết lập các tham số hệ thống, lưu trữ trên máy chủ tham số.
<param name="output_frame" value="odom"/>
  • name: Tên tham số.
  • value: Giá trị tham số.

Tải nhiều tham số từ tệp:

<rosparam file="params.yaml" command="load" ns="params"/>
  • <arg>: Biến cục bộ trong tệp khởi động, chỉ sử dụng trong tệp đó.
<arg name="arg_name" default="arg_value"/>
  • name: Tên tham số.
  • default: Giá trị mặc định.

Sử dụng biến:

<param name="foo" value="$(arg arg_name)"/>
<node name="node" pkg="package" type="type" args="$(arg arg_name)"/>

Định rõ lại tên:

  • <remap> được sử dụng để định rõ lại tên tài nguyên trong đồ thị tính toán.
<remap from="/turtlebot/cmd_vel" to="cmd_vel"/>
  • from: Tên ban đầu.
  • to: Tên sau khi định rõ lại.

Nhúng tệp khởi động khác:

  • <include> được sử dụng để nhúng tệp khởi động khác, tương tự như việc bao gồm tệp header trong C.
<include file="$(dirname)/other.launch"/>
  • file: Đường dẫn đến tệp khởi động cần nhúng.

Tham khảo thêm:

3. Ví dụ về tệp khởi động

Công cụ trực quan hóa thường dùng

1. Qt Toolbox

  • rqt_console: Công cụ hiển thị nhật ký.
  • rqt_graph: Công cụ trực quan hóa đồ thị tính toán.
  • rqt_plot: Công cụ vẽ dữ liệu.
  • rqt_image_view: Công cụ hiển thị ảnh.

2. Rviz

Rviz là một công cụ trực quan hóa 3D, tương thích tốt với khung phần mềm ROS. Trong Rviz, bạn có thể mô tả các thuộc tính như kích thước, khối lượng, vị trí, chất liệu, khớp của robot, các vật thể xung quanh bằng ngôn ngữ đánh dấu mở rộng XML, và hiển thị chúng trên giao diện. Ngoài ra, Rviz còn hiển thị thông tin cảm biến, trạng thái di chuyển của robot, và sự thay đổi môi trường theo thời gian dưới dạng đồ họa. Tóm lại, Rviz giúp hiển thị tất cả thông tin có thể giám sát dưới dạng đồ họa, dựa trên các thông số mô hình robot và thông tin cảm biến được phát hành. Người dùng và nhà phát triển có thể điều khiển hành vi của robot thông qua giao diện điều khiển, sử dụng các nút, thanh trượt, và giá trị.

3. Gazebo

Gazebo là một nền tảng mô phỏng vật lý 3D mạnh mẽ, với các đặc điểm:

  • Động cơ vật lý mạnh.
  • Hiển thị đồ họa chất lượng cao.
  • Giao diện lập trình và đồ họa dễ sử dụng.
  • Mã nguồn mở và miễn phí.

Ứng dụng điển hình:

  • Kiểm thử thuật toán robot.
  • Thiết kế robot.
  • Kiểm thử hồi quy trong các tình huống thực tế.

Thẻ: ROS launch rqt Rviz Gazebo

Đăng vào ngày 25 tháng 6 lúc 20:07