【ROS Tutorials入门之二】常见操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wangbaodong070411209/article/details/87538786

接上一节的基本操作,这一节我们学习一些ROS的常用操作。

启动文件

ROS提供了一个同时启动节点管理器(master)和多个节点的途径,即使用启动文件(launch file),通常的命名方案是以.launch作为启动文件的后缀,启动文件是XML文件。一般把启动文件存储在取名为launch的目录中。
每个XML文件都必须要包含一个根元素。根元素由一对launch标签定义: … 元素都应该包含在这两个标签之内。
通过添加节点属性实现同时启动多个节点,具体语法如下:

 <node pkg=”package-name” type=”executable-name” name=”node-name”/>

下图是在launch文件夹下创建了一个.launch文件:
在这里插入图片描述
运行:
$ roslaunch chapter2_tutorials chapter2.launch
$ rqt_console
可以看到节点发送的消息以及来源文件等信息。
在这里插入图片描述

服务

通过服务可以直接与节点通信并获得应答。服务需要用户开发,通过关联一个.srv文件来确定服务类型。

消息

一个节点通过特定主题发布消息,从而将数据发送到另一个节点,消息就是具有一定数据类型和数据结构的总称。

动态参数

$ roslaunch [package] [.launch]
$ rosrun rqt_reconfigure rqt_reconfigure

gdb调试

$ cd devel/lib/[package]
$ roscore
运行roscore之后,就可以通过点击R键从gdb中启动节点了。也可以用L列出相关源代码。
$ gdb [node]
(gdb) r

日志信息

通过信息记录显示程序的运行状态是好的习惯,ROS自带了大量能够输出日志信息的函数和宏。下面是通过C++代码输出的一个消息信息:
ROS_INFO(“My Info message.”);
如果,需要按条件显示信息,我们需要使用ROS_[_STREAM]_COND[_NAMED]函数来调用它们。下面是一个实例:
ROS_INFO_STREAM_ONCE(“My throttle INFO stream message;”);

绘制标量图

rqt_plot通过订阅消息,接收这些消息然后按时间序列画出曲线。所以,需要知道节点消息类型。我们可以通过rosmsg show 看到消息类型,下面是画对应消息的坐标图:
$ rosrun rqt_plot rqt_plot /temp/data

3D可视化

1)图像可视化
通过image_view显示图像,具体参考http://wiki.ros.org/image_view
下面是USB摄像头通过UVC协议显示摄像头数据:
$ rosrun uvc_camera uvc_camera_node
$ rosrun image_view image_view image:=/image_raw
2)rqt_rviz
使用rqt_rviz在3D世界中实现数据可视化,首先,运行roscore,然后,执行以下命令,启动rviz.
$ rosrun rqt_rviz rqt_rviz
在这里插入图片描述
上图,我们看到rqt_rviz内置参数列表包括camera和image,类似于image_view的窗口中显示。

保存与回放数据

ROS能够存储所有节点通过主题发布的消息,它能创建一个消息记录包文件来保存信息,并包含消息的所有字段参数和时间戳。
记录特定的主题:
在这里插入图片描述
回放消息:
在这里插入图片描述
在launch文件中可以直接调用rosbag record文件,需要增加一个如下节点:

<!-- Bag record -->
<node pkg="rosbag" type="record" name="bag_record" args="/temp /accel"/>

其他

虚拟机连接主机摄像头
在VMware菜单栏点击虚拟机->可移动设备->连接(断开与主机连接),通过ls /dev/video*查看视频设备,通过cheese工具查看摄像头数据;
在这里插入图片描述

ROS in 5 Day视频:

https://v.youku.com/v_show/id_XMjY5MTMwMzA0MA==.html

在完成了上述操作之后,你就掌握了ROS调试、可视化等大量实用工具,可以通过这些工具评估或验证设计质量,作为机器人开发人员,你将在开发中逐渐深入体验这些概念和工具。
现在你知道了如何调式节点错误,借助ROS包含的强大工具,例如rqt_console.如何使用可视化可视化工具rqt_plot绘制标量数据曲线。通过rosbag工具记录和回放主题中消息。

猜你喜欢

转载自blog.csdn.net/wangbaodong070411209/article/details/87538786
今日推荐