《ROS理论与实践》学习笔记Launch文件与TF坐标变换
Posted Sakurazzy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《ROS理论与实践》学习笔记Launch文件与TF坐标变换相关的知识,希望对你有一定的参考价值。
《ROS理论与实践》学习笔记(三)Launch文件与TF坐标变换
在学习《ROS理论与实践》课程时,记录了学习过程中的编程练习,课后作业以及发现的问题,后续会对尚未解决的问题继续分析并更新,纯小白,仅供参考。
本次学习笔记关于课程中的第四讲:ROS常用组件工具 。主要学习了ROS的Launch启动文件、TF坐标变换、可视化显示与仿真工具。
课程内容
1.Launch启动文件
采用XML对节点进行配置和启动,常用标签定义如下:
-
< launch > 根元素
-
< node > 启动节点
格式:
< node pkg=“package-name” type=“executable-name” name =“node-name” >· pkg: 节点所在的功能包名称
· type: 节点的可执行文件名称
· name: 节点运行时的名称
· output、respawn、required、ns、args -
< param >/< rosparam > 设置参数
格式:
< param name=“output_frame” value=“odom”/>
< rosparam file=“params.yaml” command=“load” ns=“params”>< arg > launch文件的局部变量
格式:
< param name=“foo” value=${arg arg-name}/>
< node name=“node” pkg=“package” type=“type” args=" $(arg arg-name)"/> -
< remap > 重映射ROS计算图资源的命名
格式:
< remap from="/turtlebot/cmd_vel" to="/cmd_vel"/> -
< include> 包含其他launch文件
格式:
< include file="$(dirname)/other.launch">
2.TF坐标变换
在课程《机器人学》中我们已经学习了相关的坐标变换关系知识,包括D-H坐标系建立、齐次坐标变换矩阵、速度雅可比矩阵等。
- TF功能包安装(18.04 melodic)
$ sudo apt-get install ros-melodic-turtle-tf
- TF广播器实现
- 定义TF广播器(TransformBroadcaster)
- 创建坐标变换值
- 发布坐标变换(sendTransform)
- TF监听器实现
- 定义TF监听器(TransformListerner)
- 查找坐标变换(waitForTransform、lookupTransform)
具体代码实现来自课程配套代码包,不再贴出。
3.可视化显示与仿真工具
- 日志输出工具—— rqt_console
$ rosrun rqt_console rqt_console
- 计算图可视化工具—— rqt_graph
$ rosrun rqt_graph rqt_graph
- 数据绘图工具—— rqt_plot
$ rosrun rqt_plot rqt_plot
- 图像渲染工具—— rqt_image_view
$ rosrun rqt_iamge_view rqt_iamge_view
- 三维可视化工具Rviz
$ rosrun rviz rviz
- 三维动态物理仿真器Gazebo
为快速加载模型,需要提前下载模型文件库,放置在~/.gazebo/models目录下(若主目录找不到文件夹,可以使用Ctrl+h显示隐藏文件夹)。
模型库百度网盘下载链接:
链接: Gazebo模型库文件 提取码: ju8p
本讲作业
1.创建launch功能包,分别用launch文件完成上一讲的三道题目的启动
-
启动发布者和订阅者节点,让海龟圆周运动,并且订阅海龟的位置信息
<launch> <param name="/turtle_number" value="1"/> <node pkg="turtlesim" type="turtlesim_node" name="turtlesim_node"> <param name="turtle_name1" value="Tom"/> </node> <node pkg="ch3" type="circle_publisher" name="speedpub" /> <node pkg="ch3" type="pose_subscriber" name="posesub" output="screen" /> </launch>
启动方法:
$ roslaunch ch3 turtlesp.launch
-
生成一只新的海龟
<launch> <param name="/turtle_number" value="1"/> <node pkg="turtlesim" type="turtlesim_node" name="turtlesim_node"> <param name="turtle_name1" value="Tom"/> </node> <node pkg="ch3" type="create_client" name="create2" args="turtle2" output="screen" /> </launch>
启动方法:
$ roslaunch ch3 turbuild.launch
2.下载gazebo离线模型库并安装
根据上述百度云链接下载并安装即可。
3.创建learning_tf功能包,完成tf的编程和测试
尚未完成。
结语
本讲完成了launch启动文件的代码实现,TF坐标变换的编程、可视化显示与仿真工具的使用,并在作业中进行了综合练习。
以上是关于《ROS理论与实践》学习笔记Launch文件与TF坐标变换的主要内容,如果未能解决你的问题,请参考以下文章