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

目录4.2 TF坐标变换 4.3 QT工具箱 4.4 rviz三维可视化平台 4.5 仿真环境 4.6 数据记录和回放 4.7 本章小结
4.1 启动文件
启动文件( File)是ROS中一种同时启动多个节点的途径 , 它还可以自动启动ROS 节点管理器 , 并且可以实现每个节点的各种配置 , 为多个节点的操作提供很大便利 。
4.1.1 基本元素
一个简单而完整的文件 , 采用XML的形式进行描述 , 包含一个根元素 和两个节点元素 :

XML文件必须包含一个根元素 , 文件的根元素采用标签定义 , 文件中的其他内容必须包含在这个标签中 。
启动文件的核心:是启动ROS节点 。采用标签定义 。
在实际应用的文件中往往会更加复杂 , 使用的标签也会更多 。除了上面介绍的和外 , 、
、都是常用的标签元素 。
4.1.2 参数设置
文件支持参数设置的功能 。关于参数设置的标签元素有两个:
代表、代表 。


4.1.3 重映射机制
ROS的设计目的:提高代码的复用率 。
面对别人的功能包接口和自己的系统不兼容的问题 , ROS提供了一种重映射机制 。
简单说就是取别名:不需要修改别人的功能包接口 , 只需要将接口名称重映射一下 , 取一个别名 , 我们的系统就认识了(接口的数据类型必须相同) 。
重映射功能的实现:文件中的标签 。
例如:的键盘控制节点发布的速度控制指令的话题可能是// , 但是我们自己的机器人订阅的速度控制话题是/ 。这时使用就可以轻松解决问题 , 将//重映射为/ , 我们的机器人就可以接受到速度控制指令了:
\
注意:重映射机制在ROS中的使用非常广泛 , 也非常重要 , 方法不止一种 , 可以在终端实现重映射(参考03.ROS基础 3.8.3节) 。
4.1.4 嵌套复用
在复杂系统中 , 文件很多 , 这些文件之间也会存在依赖关系 。
如果直接复用一个已有文件中的内容 , 可以使用标签包含其他文件:

是ROS框架中非常实用、灵活的功能 , 它类似于一种高级编程语言 , 可以帮助我们管理启动系统时的方方面面 。在使用ROS的过程中 , 很多情况下我们并不需要编写大量代码 , 仅需要使用已有的功能包 , 编辑一下文件就可以完成很多机器人功能 。
注意:更多高级的标签元素可以访问来学习 。
4.2 TF坐标变换
机器人本体和机器人的工作环境中往往存在大量的组件元素 , 在机器人设计和机器人应用中都会涉及不同组件的位置和姿态 , 这就需要引入坐标系以及坐标系变换的概念 。
坐标变换时机器人系统中常用的基础功能 , ROS中的坐标变换系统由TF功能包维护 。
4.2.1 TF功能包
TF是一个让用户随时间跟踪多个坐标系的功能包 , 它使用树形数据结构 , 根据时间缓冲并维护多个坐标系之间的坐标变换关系 , 可以帮助开发者在任意时间、在坐标系间完成点、向量等坐标的变换 。
TF可以在分布式系统中进行操作 , 也就是说 , 一个机器人系统中所有的坐标变换关系 , 对于所有的节点组件都是可用的 , 所有订阅TF消息的节点都会缓冲一份所有坐标系的变换关系数据 , 所有这种结构不需要中心服务器来存储任何数据 。