公司动态

《ROS1学习笔记10——坐标管理系统》

📅 2026/8/10 14:31:37
《ROS1学习笔记10——坐标管理系统》
文章目录1、机器人坐标变换2、TF功能包3、TF工具3.1、安装工具包3.2、运行脚本3.3、生成TF 树的框架图3.4、打印坐标系变换关系3.5、可视化工具1、机器人坐标变换2、TF功能包1、TF功能包能干什么五秒钟之前机器人头部坐标相对于全局坐标系的关系是什么样的机器人夹取的物体相对于机器人中心坐标系的位置在哪机器人中心坐标系相对于全局坐标系的位置在哪2、TF坐标变换如何实现广播TF变换监听TF变换3、TF工具3.1、安装工具包首先输入下列命令安装工具包我这里之前安装过了蓑衣提示为是最新版本。sudo apt-get install ros-noetic-turtle-tf23.2、运行脚本在ros包中提供了一个关于TF演示的脚本我们这里输入roslaunch turtle_tf2 turtle_tf2_demo.launch就会出现两个海龟跟随的画面我最开始运行该脚本时报了下面的错误Use arrow keys to move the turtle. ‘q’ to quit.process[turtle2_tf_broadcaster-5]: started with pid [7483]/usr/bin/env: “python”: 没有那个文件或目录 /usr/bin/env: “python”: 没有那个文件或目录process[turtle_pointer-6]: started with pid [7486][turtle1_tf_broadcaster-4] process has died [pid 7478, exit code 127,cmd /opt/ros/noetic/lib/turtle_tf/turtle_tf_broadcaster.py__name:turtle1_tf_broadcaster __log:/home/yang/.ros/log/aa10d01c-b3ad-11f0-a144-77641f2868bc/turtle1_tf_broadcaster-4.log].log file:/home/yang/.ros/log/aa10d01c-b3ad-11f0-a144-77641f2868bc/turtle1_tf_broadcaster-4*.log[turtle2_tf_broadcaster-5] process has died [pid 7483, exit code 127,cmd /opt/ros/noetic/lib/turtle_tf/turtle_tf_broadcaster.py__name:turtle2_tf_broadcaster __log:/home/yang/.ros/log/aa10d01c-b3ad-11f0-a144-77641f2868bc/turtle2_tf_broadcaster-5.log].log file:/home/yang/.ros/log/aa10d01c-b3ad-11f0-a144-77641f2868bc/turtle2_tf_broadcaster-5*.log[turtle_pointer-6] process has died [pid 7486, exit code 127, cmd/opt/ros/noetic/lib/turtle_tf/turtle_tf_listener.py__name:turtle_pointer __log:/home/yang/.ros/log/aa10d01c-b3ad-11f0-a144-77641f2868bc/turtle_pointer-6.log].log file:/home/yang/.ros/log/aa10d01c-b3ad-11f0-a144-77641f2868bc/turtle_pointer-6*.log然后询问AIROS 某些 Python 脚本的第一行通常是 #!/usr/bin/env python它会寻找系统中的 python 命令。但现代 Linux 系统默认可能只安装 Python 3命令为 python3没有 python 这个命令导致脚本无法执行。解决方法sudo ln -s /usr/bin/python3 /usr/bin/python继续回到这个脚本当你鼠标放在终端上控制上下左右键可以控制一只海龟进行移动并且零一只海龟会跟随这里就是用到了TF坐标。3.3、生成TF 树的框架图打开一个新的终端输入rosrun tf view_frames监听5s钟把5s内所有坐标关系都保存下来并输出一个pdf默认保存在终端目录下打开frames.pdfworld时全局坐标系turtle1和turtle2是两个海龟的坐标系3.4、打印坐标系变换关系rosrun tf tf_echo turtle1 turtle2Translation平移turtle2 原点相对于 turtle1 原点的位置单位为米m。格式[x, y, z]分别对应 x 轴、y 轴、z 轴方向的偏移。Rotation旋转turtle2 坐标系相对于 turtle1 坐标系的姿态有三种表示方式Quaternion四元数[x, y, z, w]ROS 中默认的旋转表示方式避免万向锁问题。RPY欧拉角分别对应 Roll横滚、Pitch俯仰、Yaw偏航分为弧度radian和角度degree两种单位。3.5、可视化工具rosrun rviz rviz-d rospack find turtle_tf/rviz/turtle_rviz.rviz进入可视化页面工具后按以下操作新建一个TF坐标系此时再把鼠标放到刚运行脚本的终端上移动小海龟你会发现页面里的坐标图标也在移动黄线的左边两个坐标系代表两个海龟黄线右边的处在地图中间的是world坐标。