1. 最小实现:

  1. <launch>
  2. <!-- Bag -->
  3. <node name="rosbag"
  4. pkg="rosbag"
  5. type="play"
  6. respawn="false"
  7. args="-s 0 -r 1 /home/yyh/TUM/XXXXX.bag">
  8. </node>
  9. </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添加编译调试的设置语句

  1. set(CMAKE_BUILD_TYPE "Debug")
  2. 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的窗口用于输出调试信息.
2021-05-12 15-21-12 的屏幕截图.png

2.1 rosrun 添加调试语句

调试ROS C++程序
rosrun --prefix 'gdb -ex run --args' package_name node_name

3 增加rviz显示

  1. <node pkg="rviz"
  2. type="rviz"
  3. name="EdgeIMUVisualization"
  4. output="log"
  5. args="-d $(find edge_imu_bias)/config/edge_imu_config.rviz">
  6. </node>

其中, edge_imu_config.rviz为保存后的rviz配置