ROS学习笔记(十):ROS中的坐标系管理系统

本文介绍了ROS中的坐标变换理论,并通过小海龟跟随实验详细阐述了tf功能包的安装与使用。实验中,通过键盘控制海龟运动,另一只海龟会自动跟随。在过程中,遇到并解决了view_frames工具的报错问题,修改了源代码以正确显示坐标信息。此外,还利用tf_echo和rviz工具实时展示了两海龟之间的位置关系,深入理解了ROS中的坐标变换和跟踪原理。
摘要由CSDN通过智能技术生成

一、机器人中的坐标变换理论

参考:《机器学导论》

二、小海龟跟随实验

  1. $ sudo apt-get install ros-noetic-turtle-tf 安装对应版本的tf功能包

  2. $ roslaunch turtle_tf turtle_tf_demo.launch 启动launch文件

  3. $ rosrun turtlesim turtle_teleop_key 使用键盘控制海龟运动,可以看到另一只海龟会跟随键盘所控制的这只海龟运动

  4. $ rosrun tf view_frames 运行view_frames工具

此处遭遇报错:

Listening to /tf for 5.0 seconds
Done Listening
b'dot - graphviz version 2.43.0 (0)\n'
Traceback (most recent call last):
  File "/opt/ros/noetic/lib/tf/view_frames", line 119, in <module>
    generate(dot_graph)
  File "/opt/ros/noetic/lib/tf/view_frames", line 89, in generate
    m = r.search(vstr)
TypeError: cannot use a string pattern on a bytes-like object

解决方案:

$ sudo gedit /opt/ros/noetic/lib/tf/view_frames

将第89行改成m = r.search(vstr.decode('utf-8'))

生成的坐标信息pdf文件默认保存在主目录下,其中,world坐标表示世界坐标系(原点是仿真器左下角的(0,0)点),其余两只海龟都是一个坐标系(原点是海龟本身位置)

  1. $ rosrun tf tf_echo turtle1 turtle2 使用另一个工具实时显示两海龟之间的位置关系

- Translation: [0.000, 0.000, 0.000] ##表示所控制海龟当前坐标系的x,y,z方向上的平移量
- Rotation: in Quaternion [0.000, 0.000, 0.737, 0.676] ##Rotation表示怎样的旋转可以变换到海龟当前坐标系,Quaternion即四元数表示,radian即弧度制表示,degree即角度制表示
            in RPY (radian) [0.000, -0.000, 1.657]
            in RPY (degree) [0.000, -0.000, 94.949]
  1. $ rosrun rviz rviz -d `rospack find turtle_tf` /rviz/turtle_rviz.rviz 使用另一个工具rviz查看两只海龟之间的位置关系(启动后将Fixed Frame改成world,点击左下角Add,添加TF工具后点击OK,具体操作在视频P17 16’30’’)

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值