ROS 学习笔记(10)—— 坐标系管理系统

坐标系管理系统

步骤一:安装软件包

sudo apt-get install ros-noetic-turtle-tf

根据 ROS 版本的不同,第一句命令中的noetic需要修改为对应的 ROS 版本,如melodic

步骤二:启动 launch 脚本

roslaunch turtle_tf turtle_tf_demo.launch

若出现如下报错:
ROS 学习笔记(10)—— 坐标系管理系统原因是python版本的问题,需要先执行一下下面的命令:

sudo apt-get install python-is-python3

步骤三:启动键盘控制节点

如果 ROS 版本是noetic的话,现在就可以直接使用键盘方向键控制海龟运动了,并且第二只海龟会一直跟随移动。
ROS 学习笔记(10)—— 坐标系管理系统
如果 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'))

ROS 学习笔记(10)—— 坐标系管理系统

步骤五:运行坐标可视化工具

rosrun tf view_frames

执行完后,就可以在主目录下找到一个名为frames.pdf的文件,双击打开。
ROS 学习笔记(10)—— 坐标系管理系统就可以看到坐标树了。
ROS 学习笔记(10)—— 坐标系管理系统

步骤六:通过命令行工具获取坐标系之间的位置关系

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

然后按图示操作即可:
ROS 学习笔记(10)—— 坐标系管理系统
通过键盘控制海龟的运动,rviz上的两个坐标系也会相应的运动。
ROS 学习笔记(10)—— 坐标系管理系统也可以在下图这个位置修改各种显示方式:
ROS 学习笔记(10)—— 坐标系管理系统

上一篇:jQuery插件原来如此简单——jQuery插件的机制及实战


下一篇:一文详解 MySQL 安装与使用