坐标系管理系统
步骤一:安装软件包
sudo apt-get install ros-noetic-turtle-tf
根据 ROS 版本的不同,第一句命令中的noetic
需要修改为对应的 ROS 版本,如melodic
。
步骤二:启动 launch 脚本
roslaunch turtle_tf turtle_tf_demo.launch
若出现如下报错:
原因是python版本的问题,需要先执行一下下面的命令:
sudo apt-get install python-is-python3
步骤三:启动键盘控制节点
如果 ROS 版本是noetic
的话,现在就可以直接使用键盘方向键控制海龟运动了,并且第二只海龟会一直跟随移动。
如果 ROS 版本比较老的话,可能需要再启动键盘控制节点,控制海龟移动:
rosrun turtlesim turtle_teleop_key
步骤四:修改文件
noetic
版本需要先对view_frames
文件做一下修改(早期版本可以直接跳过这步):
sudo gedit /opt/ros/noetic/lib/tf/view_frames
然后把第89行改为:
m = r.search(vstr.decode('utf-8'))
步骤五:运行坐标可视化工具
rosrun tf view_frames
执行完后,就可以在主目录下找到一个名为frames.pdf
的文件,双击打开。
就可以看到坐标树了。
步骤六:通过命令行工具获取坐标系之间的位置关系
rosrun tf tf_echo turtle1 turtle2
通过这个命令,可以看到
- Translation: [0.000, 0.000, 0.000]
- Rotation: in Quaternion [0.000, 0.000, -0.044, 0.999]
in RPY (radian) [0.000, 0.000, -0.088]
in RPY (degree) [0.000, 0.000, -5.021]
其中,Translation
代表两个坐标系之间的平移位置关系,Rotation
代表两个坐标系之间的旋转位置关系。in Quaternion
是指这个旋转位置关系以四元数的方式给出,in RPY (radian)
是指这个旋转位置关系以围绕XYZ轴旋转的弧度给出,in RPY (degree)
是指这个旋转位置关系以围绕XYZ轴旋转的角度给出。
步骤七:运行 rviz 可视化工具
rosrun rviz rviz -d `rospack find turtle_tf` /rviz/turtle_rviz.rviz
然后按图示操作即可:
通过键盘控制海龟的运动,rviz上的两个坐标系也会相应的运动。
也可以在下图这个位置修改各种显示方式: