TF命令行操作
ROS中的TF该如何使用呢?我们先通过两只小海龟的示例,了解下基于坐标系的一种机器人跟随算法。
小海龟跟随例程
这个示例需要我们先安装相应的功能包,然后就可以通过一个launch文件启动,之后我们可以控制其中的一只小海龟,另外一只小海龟会自动跟随运动。
** sudo apt install ros-humble-turtle-tf2-py ros-humble-tf2-tools** sudo pip3 install transforms3d
具体运行的效果如何?我们来试一试。
** ros2 launch turtle_tf2_py turtle_tf2_demo.launch.py** ros2 run turtlesim turtle_teleop_key
当我们控制一只海龟运动时,另外一只海龟也会跟随运动。
查看TF树
在当前运行的两只海龟中,有哪些坐标系呢,我们可以通过这个小工具来做查看。
$ ros2 run tf2_tools view_frames
默认在当前终端路径下生成了一个frames.pdf文件,打开之后,就可以看到系统中各个坐标系的关系了。
查询坐标变换信息
只看到坐标系的结构还不行,如果我们想要知道某两个坐标系之间的具体关系,可以通过tf2_echo这个工具查看:
$ ros2 run tf2_ros tf2_echo turtle2 turtle1
运行成功后,终端中就会循环打印坐标系的变换数值了,由平移和旋转两个部分组成,还有旋转矩阵。
坐标系可视化
看数值还不直观?可以试试用可视化软件来做显示:
** ros2 run rviz2 rviz2 -d **(ros2 pkg prefix --share turtle_tf2_py)/rviz/turtle_rviz.rviz
再让小海龟动起来,Rviz中的坐标轴就会开始运动,这样是不是更加直观了呢!
全部0条评论
快来发表一下你的评论吧 !