ROS常用組件
Launch文件相關
Launch文件基本結構
<launch>
<node pkg="package_name" type="executable_name" name="node_name"/>
</launch>
Node
<node pkg="package_name" type="executable_name" name="node_name"/>
- pkg: 節點所在的功能包名稱;
- type: 節點的可執行文件名稱;
- name: 節點運行的名稱,可以覆蓋節點中
init()
的節點名稱;
Node的常用屬性
output="screen"
: 將節點的標準輸出打印到terminal;respawn="true"
: 復位屬性,當節點停止時,會自動重啓,默認是false;required="true"
: 必要節點,當該節點終止的時候,launch文件中其他節點也終止;ns="namespace"
: 命名空間;args="arguments"
: 節點需要的輸入參數;
<param>
<param>
和<arg>
不同,需注意;
<param>
的基本結構
<param name="output_frame" value="odom" />
<param>
解釋
parameter是ROS系統運行中的參數,存儲在參數服務器中。launch文件中通過<param>
元素加載parameter,launch文件執行後,parameter就加載到了參數服務器上了;
每個活躍的節點都可以通過 ros::param::get()
接口獲取parameter的值,用戶也可以通過rosparam命令獲取parameter的值;
通過YAML文件加載parameter
<rosparam file="${find 2dnav_pr2}/config/costmap.yaml" command="load" ns="local_costmap" />
<arg>
argument類似launch文件中的局部變量,與ROS節點內部的實現沒有關係;
<arg name="arg_name" default="arg_value"/>
<arg>
與<param>
一起使用
<arg name="arg_name" default="arg_value" />
<param name="foo" default="$(arg arg_name)" />
<remap>
<remap from="/turtlebot/cmd_vel" to="/cmd_vel" />
<include>
<include file="$(dirname)/path/something.launch" />
TF座標轉換
tf_monitor
tf_monitor <source_frame> <target_frame>
tf_echo
tf_echo <source_frame> <target_frame>
static_transform_publisher
static_transform_publisher x y z yaw pitch roll frame_id child_frame_id period_in_ms
static_transform_publisher x y z qx qy qz qw frame_id child_frame_id period_in_ms
in launch file
<launch>
<node pkg="tf" type="static_transform_publisher" name="link_base_odom" arg="0 0 0 0 0 0 base_link odom" />
</launch>
view_frames(不常用)
rosrun tf view_frames
evince frames.pdf
rqt_tf_tree
rosrun rqt_tf_tree rqt_tf_tree
QT工具箱
使用之前
sudo apt-get install ros-kinetic-rqt
sudo apt-get install ros-kinetic-rqt-common-plugins
日誌可視化
rqt_console
當系統中有不同級別的日誌消息時,rqt_console的界面會依次顯示這些日誌的相關內容;
計算圖可視化
rqt_graph
數據繪圖工具
rqt_plot
參數動態配置工具
rosrun rqt_reconfigure rqt_reconfigure
RVIZ
使用之前
一般使用桌面版ros完全安裝的時候會將rviz一起安裝進ubuntu;
sudo apt-get install ros-kinetic-rviz
啓動
roscore
rosrun rviz rviz OR rviz
Gazebo
使用之前
sudo apt-get install ros-kinetic-gazebo-ros-pkgs ros-kinetic-gazebo-ros-control
啓動
roscore
rosrun gazebo_ros gazebo
Rosbag
rosbag 可以幫助開發者收集ROS系統運行時的消息數據;
記錄
rosbag record -a
回放
rosbag info <BAG FILE>
// 查看bag的信息
rosbag play <BAG FILE>
// 數據回放
Reference
《ROS機器人開發實踐》