ROS学习04.ROS中的常用组件( 四 )


该节点首先通过服务调用产生乌龟 , 然后声明控制速度的 。在监听TF消息之前 , 需要创建一个tf::类型的监听器 , 创建成功后监听器会自动接受TF树的消息 , 并且缓存10秒 。然后在循环中就可以实时查找TF树中的坐标变化了 。这里需要调用的是tf::中的两个接口:
通过以上两个接口的调用 , 就可以获得相对于的坐标变换了 。然后根据坐标系之间的位置关系 , 计算得到需要运动的线速度和角速度 , 并发布速度控制指令使向移动 。
4.2.6 实现乌龟跟随运动
以上小乌龟跟随例程的所有代码已经完成 , 下面来编写一个文件 , 使所有节点运行起来 , 实现源码//ener.的详细内容如下:

然后运行该文件 , 就可以看到与之前例程类似的两只乌龟的界面了 , 在终端中通过键盘控制移动 , 也跟随移动 。
通过这个例程的实现 , 学习了TF广播与监听的实现方法 , 在实际应用中会产生更多的坐标系 , TF树的结构也会更加复杂 , 但是基本的使用方法依然相同 。
4.3 QT工具箱
为了方便可视化调试和显示 , ROS提供了一个Qt架构的后台图形工具套件—— , 其中包含不少实用工具 。

ROS学习04.ROS中的常用组件

文章插图
安装Qt工具箱:
sudo apt-get install ros-melodic-rqtsudo apt-get install ros-melodic-rqt-common-plugins
4.3.1 日志输出工具()
工具用来图形化显示和过滤ROS系统运行状态中的所有日志消息 , 包括info、warn、error等级别的日志 。使用如下命令启动该工具:
rqt_console
图4-6 工具界面
当系统中有不同级别的日志消息时 , 的界面就会依次显示这些日志的相关内容 , 包括日志内容、时间戳、级别等 。当日志较多时 , 也可以使用该工具进行过滤显示 。
4.3.2 计算图可视化工具()
工具可以图形化显示当前ROS系统中的计算图 。在系统运行时 , 使用如下命令启动该工具:
rqt_graph
图4-7工具界面
4.3.3 数据绘图工具()
是一个二维数值曲线绘制工具 , 可以将需要显示的数据在xy坐标系中使用曲线描绘 。使用如下命令启动该工具:
rqt_plot
然后在界面上方的Topic输入框中输入需要显示的话题消息 , 如果不确定话题名称 , 可以在终端中使用“ lsit”命令查看 。
图4-8 工具
4.3.4 参数动态配置工具()
工具可以在不重启系统的情况下 , 动态配置ROS系统中的参数 , 但是该功能的使用需要在代码中设置参数的相关属性 , 从而支持动态配置 。使用如下命令启动该工具:
rosrun rqt_reconfigure rqt_reconfigure
图4-9 工具界面
启动后的界面将显示当前系统中所有可动态配置的参数 。在界面中使用输入框、滑动条或下拉框进行设置即可实现参数的动态配置 。关于ROS参数动态配置功能的实现 , 将在后续进行具体讲解 。
4.4 rviz三维可视化平台
机器人系统中存在大量数据 , 比如图像数据中0~255的RGB值 。但是这种数据形态的值往往不利于开发者感受数据所描述的内容 , 所有常常需要将数据可视化显示 , 例如机器人模型的可视化、图像数据的可视化、地图数据的可视化等 。