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配置
