一、ROS中的坐标系管理系统
关于ROS中的坐标系管理系统是用的TF坐标变换,这个内容可以关注下我的另外一个专栏http://t.csdnimg.cn/jVICq 将在2024/2/29日后慢慢...慢慢更新。本节我们先下载相关组件,使用ROS跑一个TF坐标变换的例程,因为要下载一些组件,建议您开机之前拍摄一下快照。
二、下载turtle-tf2并使用
sudo apt-get install ros-noetic-turtle-tf2
这里正常情况会提示已经安装。值得注意的是,您要注意您的ROS版本,也行您的ROS并不是noetic版本,您需要根据您的环境下载对应版本的组件。
roslaunch turtle_tf2 turtle_tf2_demo.launch
这是您会看到有一只海龟会一直追随着您中心的海龟。
再打开一个终端输入: rosrun turtlesim turtle_turtleop_key
您可以用↕↔控制海龟,您会发现后面这只海龟会一直跟随您控制的海龟,并且不是跟随,他还会抄近道。
三、TF工具介绍
1、rosrun tf view_frames 生成PDF查看所有TF树
rosrun tf view_frames
注意在使用这条命令的时候应该会报错,这里需要修改一个地方。
sudo vim /opt/ros/noetic/lib/tf/view_frames
将89行的注释掉在下面编辑以下内容,注意要注意和上面对齐
m = r.search(vstr.decode('utf-8'))
那么在运行一次代码: rosrun tf view_frames
2、rosrun tf tf_echo +坐标系 +另一个坐标系 查看两个坐标之间的变换关系
开一个终端输入: rosrun tf tf_echo turtle1 turtle2
再开一个终端输入: rosrun turtlesim turtle_turtleop_key
这时您用↕↔控制海龟运动的时候,打印的值也会发生相应改变。
这里可以详细看一下打印的信息:
Translation:是坐标平移的值
Rotation:是旋转的值。值得注意的是有三行。
第一行是: 四元素法的四个参数
第二行是: 弧度制的旋转
第三行是: 角度制的旋转
3、rosrun rviz rviz -d `rospack find turtle_tf` /rviz/turtle_rviz.rviz 三维可视化显示平台
rosrun rviz rviz -d `rospack find turtle_tf` /rviz/turtle_rviz.rviz
在输入命令后您应该回个弹窗
将弹窗中的map改为wrold同时添加Add一下TF坐标系,您就可以看到world和两个turtle坐标系了,注意两个turtle没动的时候是重合的,角度也许有偏差。
您可以使用键盘控制,来观察到两个坐标之间的变化。