1.4 ROS调试工具
虽然ROS系统很复杂,但其附带了大量工具用于ROS开发调试。这些调试工具大致分为命令行工具和可视化工具两种,掌握这些工具能够大大提高开发效率。
1.4.1 命令行工具
ROS提供了命令行工具,能在shell终端直接输入命令并使用,其类似于Linux命令。这里对经常用到的命令进行介绍,比如运行、信息显示、catkin操作和功能包操作。想了解更多ROS命令,可以参考官方wiki教程[1]。
运行相关的命令主要有roscore、rosrun和roslaunch。其中roscore是启动主节点的命令,rosrun是启动单个节点的命令,roslaunch是同时启动多个节点的命令。
信息显示相关的命令主要有rosnode、rostopic、rosservice、rosparam、rosmsg、rossrv和rosbag。rosnode是与节点相关的命令,rostopic是与话题相关的命令,rosservice是与服务相关的命令,rosparam是与参数相关的命令,rosmsg是与消息类型相关的命令,rossrv是与服务类型相关的命令,rosbag是与数据包相关的命令。
catkin操作相关的命令主要有catkin_init_workspace、catkin_create_pkg和catkin_make。catkin_init_workspace是初始化catkin工作空间的命令,catkin_create_pkg是创建功能包的命令,catkin_make是编译功能包的命令。
功能包操作相关的命令主要有rospack、rosinstall和rosdep。rospack是查询功能包信息的命令,rosinstall是安装功能包更新的命令,rosdep是功能包依赖的命令。
1.4.2 可视化工具
除了上面提到的命令行工具,这里的可视化工具是对调试工作很好的补充。下面介绍rviz和rqt两个开发过程中频繁使用的可视化工具。
rviz是ROS自带的三维可视化工具,可以让用户通过图形界面非常方便地开发、调试ROS。比如可视化显示激光雷达、深度相机、超声波等传感器的数据,机器人的三维几何模型,路径规划实时轨迹与发送导航目标点等。启动rviz的方法很简单,命令如下。
#在终端先启动roscore roscore #在另一个终端启动rviz rviz
除了上面的rviz可视化工具,ROS中还支持用户自己开发的可视化工具rqt。rqt是基于Qt开发的,因此rqt用户可以自由添加和编写插件来实现自己的功能。启动rqt主界面的方法很简单,命令如下。
#在终端先启动roscore roscore #在另一个终端启动rqt rqt
rqt包含的插件非常丰富,一些很常用的rqt插件包括rqt_graph、rqt_tf_tree、rqt_plot、rqt_reconfigure、rqt_image_view和rqt_bag。rqt_graph用于显示ROS网络中节点连接关系图,rqt_tf_tree用于显示ROS网络中tf关系树状图,rqt_plot用于为ROS中的消息数据绘制曲线图,rqt_reconfigure用于在图形界面中配置ROS参数,rqt_image_view用于显示ROS中的图像数据,rqt_bag用于显示rosbag文件中的数据结构。除了从rqt主界面启动rqt的各种插件,还可以在命令行中直接启动某个rqt插件。以rqt_graph插件为例,启动方法如下。
#在终端先启动roscore roscore #在另一个终端启动rqt_graph插件 rqt_graph