一、用于调试ROS程序的常用命令
- 查看运行的ros节点
$rosnode list //列出所有节点 - 查看ros节点的运行状态信息
$rosnode info [节点名称] //可以查看节点是否意外退出(异常) - 查看存在的话题
$rostopic list - 查看话题的状态信息
$rostopic info [话题名称]
//type 话题里消息的格式
//publisher 发布消息的节点的名称
//subscriber 订阅该话题的节点 - 查看话题的发布频率
$rostopic hz [话题名称] - 与指定的节点进行连接测试
rosnode ping [节点名称] //与主节点是否连通 - 停止指定节点的运行
$rosnode kill [节点名称] - 用命令发布话题
$rostopic pub [话题名称] [消息类型名称] [消息参数取值]
//话题发布消息 - 用命令以一定频率发布话题
$rostopic pub [话题名称] [消息类型名称] [消息参数取值] -r [频率] - 停止所有节点的运行
$rosnode kill -a
二、用于调试ROS程序的常用工具
- 安装rqt工具
$sudo apt-get install ros-kinetic-rqt
$sudo apt-get install ros-kinetic-rqt-common-plugins - 启动rqt
$rqt
进入上方菜单栏的Plugins,里面有很多有用的用于ROS调试的插件,下面简单列举一些十分有用的插件功能:
三、ROS程序在实物机器人上的运行调试方法
- 查看所需节点是否正常启动
$rosnode list - 查看所需话题是否正常发布或订阅
$rostopic list
$rostopic info [话题名称] //话题是谁发布和订阅的 - 查看话题中的消息是否正确
$rostopic echo [话题名称] - 查看ros节点的运行状态是否正常
$rosnode info [节点名称] //节点是否与计算机联通 - 查看话题中的消息的频率是否是期望频率
$rostopic hz [话题名称] - 录制消息存储包
$rosbag record [选项] [话题名称]
选项:
-h, --help show this help message and exit
-a, --all record all topics
-o PREFIX, --output-prefix=PREFIX
prepend PREFIX to beginning of bag name (name will
always end with date stamp)
-O NAME, --output-name=NAME
record to bag with name NAME.bag
… - 回放指定的bag文件
$rosbag play [文件名称] - 修复bag文件
$rosbag fix [输入文件] [输出文件]
//程序异常退出(断电)bag.active 无法回放,修复 - 通过命令发布消息,测试程序的订阅功能是否正常
$rostopic pub [话题名称] [消息类型名称] [消息参数取值] -r [频率] - 通过打印输出语句判断程序的运行是否正常
printf(“ ”);
ROS_INFO(“ ”);
cout<<…