1. 最小实现:
<launch>
<!-- Bag -->
<node name="rosbag"
pkg="rosbag"
type="play"
respawn="false"
args="-s 0 -r 1 /home/yyh/TUM/XXXXX.bag">
</node>
</launch>
<launch>
和</launch>
标签对,一般一个launch文件只有一对<!-- XXXX -->
注释语句<node>
和</node>
标签对,用于声明要运行的节点,一个launch文件可以启动多个节点,可以达到10个以上.
1.1 参数说明
name = "rosbag"
说明运行节点的名称,launch文件内不重复即可,可能是为了运行多个相同节点.pkg = "rosbag"
说明运行的所在的ros包type = "play"
说明运行的节点类型,一般为生成的可执行文件的名称.args = "-s 0 -r 1 /home/yyh/TUM/XXXX.bag"
向节点传参.
上述的launch等价于 在终端运行rosbag play -s 0 -r 1 /home/yyh/TUM/XXXXX.bag
2. 添加调试语句
参考文章:ROS下使用roslaunch进行调试
在一些时候,需要利用gdb调试ros程序,
首先需要在CMakeLists.txt添加编译调试的设置语句
set(CMAKE_BUILD_TYPE "Debug")
set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g2 -ggdb")
然后使用sudo apt-get install xterm
安装xterm后,
可以在需要调试的节点(也即可执行文件)的声明标签中加入launch-prefix="xterm -e gdb -ex rum --args"
这一值来进行gdb调试.
运行roslaunch 后会新开一个xterm的窗口用于输出调试信息.
2.1 rosrun 添加调试语句
调试ROS C++程序rosrun --prefix 'gdb -ex run --args' package_name node_name
3 增加rviz显示
<node pkg="rviz"
type="rviz"
name="EdgeIMUVisualization"
output="log"
args="-d $(find edge_imu_bias)/config/edge_imu_config.rviz">
</node>
其中, edge_imu_config.rviz为保存后的rviz配置