《 无人驾驶原理与实践》一2.9.3TF坐标转换系统
2.9.3TF坐标转换系统
TF是一个坐标转换工具包,它可以随时间跟踪ROS下的多个参考系。借助TF,我们可以在任意时间将数据的点、向量坐标在两个参考系中完成坐标变换。一个机器人系统通常有很多三维参考系,而且会随着时间的推移发生变化,如全局参考系(World Frame)、机器人中心参考系(Base Frame)、机械手参考系(Gripper Frame)、机器人头参考系(Head Frame)等。TF也可以以时间为轴,跟踪这些参考系,并且允许用户提出如下请求:
◆ 5秒之前,机器人头参考系相对于全局参考系的关系是什么样的?
◆ 机器人夹取的物体相对于机器人中心参考系的位置在哪里?
◆ 机器人中心参考系相对于全局参考系的位置在哪里?
TF实际是通过发布者/订阅者机制在主题tf和tf_static上实现的,如图215所示。
总体来讲TF的使用方法分为以下两类:
1)监听TF变换,接收并缓存系统中发布的所有参考系变换,并从中查询所需要的参考系变换。
2)广播TF变换,向系统中广播参考系之间的坐标变换关系。系统中更可能存在多个不同部分的TF变换广播,每个广播都可以直接将参考系变换关系直接插入一个树状结构中(我们称之为tf树),可以使用rosrun tf view_frames将TF转换树数据以PDF的形式导出并可视化。图216是导出后的Husky机器人的TF数据。
此外,Rviz也提供了TF转换的3D显示插件。图217是Husky机器人的各个参考系可视化结果。
图217Rviz下机器人的各个参考系可视化结果
2.9.4URDF和SDF
URDF全称为Unified Robot Description Format(统一机器人描述格式),是一种用于描述机器人模型的XML语法,具体来说这里的机器人模型包含:
▲ 运动学模型和动力学模型
▲ 可视化表示
▲ 碰撞模型
URDF的生成通过ROS自带的宏语言xacro来完成,它被存储在/robot_description参数服务器中,通过查看Husky机器人的launch文件,在husky_empty_worldlaunch文件中引用了spawn_huskylaunch启动文件,它赋予Husky机器人3个参数(其中kinect_enabled参数的作用是启用Husky机器人的URDF中的运动学模型)。在spawn_huskylaunch启动文件中,通过如下参数启用机器人模型(URDF)。
同样,URDF也可以通过Rviz进行可视化,其显示插件为RobotModel。根据实际应用可以自定义机器人模型,在无人车研发中即为车辆模型。这些车辆模型还需要符合一些运动学和动力学要求,并具备碰撞特征等。
除了能够自定义车辆模型的描述(即URDF)以外,ROS还提供了模拟描述格式(Simulation Description Format, SDF)。该描述格式也采用了XML语法进行描述定义,包含环境的描述(光线、引力等),以及环境中的静态和动态对象、传感器、机器人等。SDF是Gazebo模拟器的标准描述语法。此外,Gazebo能够自动将URDF转换成SDF。
2.10本章参考文献
[1]ROS[EB/OL]. http://wwwrosorg/
[2]机器人操作系统[EB/OL]. https://zhwikipediaorg/wiki/%E6%A9%9F%E5%99%A8%E4%BA%BA%E4%BD%9C%E6%A5%AD%E7%B3%BB%E7%B5%B1
[3]机器人操作系统[EB/OL]. https://baikebaiducom/item/ros/4710560?fr=aladdin
[4]ROS [EB/OL]. http://wikirosorg/ROS
[5]Husky机器人[EB/OL]. https://wwwclearpathroboticscom/huskyunmannedgroundvehiclerobot/
[6]About ROS [EB/OL]. http://wwwrosorg/aboutros/
[7]远程过程调用[EB/OL]. https://enwikipediaorg/wiki/Remote_procedure_call
[8]OMGData Distribution Service for Realtime systems[EB/OL].https://download.csdn.net/download/u013708469/6938295.2007.
[9]Gazebo模拟器[EB/OL]. http://gazebosimorg/
- 点赞
- 收藏
- 关注作者
评论(0)