《 无人驾驶原理与实践》一2.8ROS Action
2.8ROS Action
ROS中还有一种通信机制,叫作动作(Action),与服务类似,但它提供了更多的操作,包括客户端主动取消(Cancel)服务器的任务等,服务器在处理过程中实时反馈信息(Feedback)。类似于服务,动作也往往被定义在以action为后缀的文件中,文件格式为“Goal(目标),分割线,Result(结果),分割线,Feedback(反馈)”。实际上,从ROS内部实现来看,ROS中的动作就是通过一组话题来实现的。图211展示了Action机制的内容。
2.9ROS中的常用工具
前文使用了一些ROS自带的工具(包括rqt_graph和Rviz),本节将具体介绍ROS中常用的工具,包括Rviz、rqt、TF坐标转换系统、URDF和SDF。
2.9.1Rviz
作为ROS中的3D可视化工具,Rviz通过订阅当前的话题(如图像、点云等)将话题上的消息可视化。如果无人车/机器人包含多个摄像头,并能提供多个摄像头图像输入显示,在Rviz中,通过添加显示插件(Display Plugin)即能够可视化我们想要显示的信息。Rviz中自带的显示插件如图212所示。
通过Display栏下的Add按钮即可添加显示插件,既可以按照类型添加,也可以通过当前主题中的消息类型添加。在完成显示插件配置之后,可以通过保存Rviz的配置文件,使得下一次打开Rviz时不必再次手动添加。除了自带的显示插件以外,还可以自定义以及扩展Rviz显示插件。使用rosrun rviz rviz可启动Rviz,也可以将该节点写到launch文件中以启动。
2.9.2rqt
ROS的rqt是一个基于Qt开发框架的工具,包含了大量的绘制组件和调试工具,可通过rosrun rqt_gui rqt_gui来启动rqt的用户界面。如图213所示,rqt本身已经包含了非常多的调试工具,但仍然可以自定义和扩展rqt插件。
rqt中常用的插件包括rqt_image_view(显示图像)、rqt_multiplot(绘制二维图)、rqt_graph(显示当前ROS的Node图)、rqt_console(显示ROS终端调试打印消息)、rqt_bag(对rosbag文件进行图形化播放控制)等。还可以通过rqt工具查看Topic的内容和数据,甚至在rqt里运行Rviz。这些工具的使用方法都非常简单,在此不赘述,有兴趣的读者可以自行查看rqt工具包。rqt工具集合见图214。
- 点赞
- 收藏
- 关注作者
评论(0)