目录
1 TF坐标系统
1.1 ROS中的坐标系管理系统
1.2 示例:小海龟跟随试验
1.3 TF坐标系广播与监听的编程实现
2 Launch启动文件的使用方法
2.1 Launch文件
2.2 Launch文件语法
3 常用可视化工具的使用
3.1 Qt工具箱
3.2 Rviz
3.3 Gazebo
4 课程展望
1 TF坐标系统
1.1 ROS中的坐标系管理系统
机器人中简单的坐标变换:
这时如果激光雷达检测到位置数据是基于base_laser为原点坐标,则利用TF变换可以得到基于base_link的坐标,在本例中很显然是一个坐标平移关系。TF坐标系统提供给ROS一个坐标查询和管理平台,是基于TF树进行管理的。
1.2 示例:小海龟跟随试验
运行以下代码进行小海龟跟随试验:
$ sudo apt-get install ros-melodic-turtle-tf $ roslaunch turtle_tf turtle_tf_demo.launch $ rosrun turtlesim turtle_teleop_key $ rosrun tf view_frames
其中sudo语句为安装TF功能包,roslaunch语句用来启动launch脚本文件中的节点。最后一个语句用来查询系统中TF文件的关系,其运行结果如下:
在该示例中,两个海龟之间的相对坐标可以通过下式实现
其中world为全局坐标。
1.3 TF坐标系广播与监听的编程实现
1. 创建功能包
2. 创建TF广播器
- 定义TF广播器(TransformBroadcaster)
- 创建坐标变换值
- 发布坐标变换(sendTransform)
3. 创建TF监听器
- 定义TF监听器(TransformListener)
- 查找坐标变换(waitForTransform、lookupTransform)
4. 配置TF广播器与监听器的代码编译规则
5. 编译并运行
2 Launch启动文件的使用方法
2.1 Launch文件
Launch文件是通过XML文件多节点的配置和启动(可自动启动ROS Master),即ROS中一种同时启动多个节点的途径,为多节点的操作提供了很大便利。
2.2 Launch文件语法
1.
2.
启动节点:
- pkg:节点所在功能包名称
- type:节点的可执行文件名称
- name:节点运行时的名称
3. /
设置参数:
- name:参数名
- value:参数值
4.
launch文件内部的局部变量:
- name:变量名
- default:缺省值
5.
重映射ROS计算图资源的命名:
- from:原命名
- to:映射之后的命名
6.
嵌套,类似于C语言中头文件包含:
- file:包含其他launch文件路径
3 常用可视化工具的使用
3.1 Qt工具箱
Qt工具箱是ROS针对机器人开发提供的一系列可视化工具,其中主要包括:
- 日志输出工具:rqt_console
- 计算图可视化工具:rqt_graph
- 数据绘图工具:rqt_plot
- 图像渲染工具:rqt_image_view
3.2 Rviz
Rviz是一款三维可视化工具,可以很好兼容基于ROS软件框架的机器人平台。在Rviz中,可以使用可扩展标记语言XML对机器人、周围物体等任何实物进行尺寸、质量和位置等属性的描述,并在界面中呈现出来。同时,Rviz还可以通过图形化的方式,实时显示机器人传感器的信息、机器人的运动状态、周围环境的变化等信息,用户可以在Rviz的控制界面下,通过按钮、滑动条和数值等方式控制机器人的行为。
- 0:3D视图区
- 1:工具栏
- 2:显示项列表
- 3:视角设置区
- 4:时间显示区
3.3 Gazebo
Gazebo是一款强大的三维物理仿真平台,具备强大的物理引擎、高质量的图形渲染、方便的编程与图形接口和开源免费的特点。其典型应用场景包括:测试机器人算法、机器人设计和现实情景下的回溯测试。
- 0:3D视图区
- 1:工具栏
- 2:模型列表
- 3:模型属性项
- 4:时间显示区



