ROS学习笔记(八)

本文是关于第17讲的学习内容总结

本讲的主要讲解内容是了解和学习在ros中坐标变换工具的使用方法

TF功能包

作用:用来管理所有的坐标系,可以直接查询5s内各个坐标系之间的关系

实现机制:广播和监听

实例1:

老师所举的例子就比较简单,两个坐标系之间的关系是平移关系,当然还有更复杂的旋转关系等等。这些关系均可以在tf坐标系中得到。

实例2:小海龟跟随实验

代码:

我的版本是ubuntu20.08,老师的是18.04所以在下载TF功能包的时候代码不一样,中间的notetic根据自己的ros版本来进行对应的修改。

sudo apt-get install ros-noetic-tf

下载完安装包后,就运行ros的launch文件

roslaunch turtle_tf turtle_tf_demo.launch 

输入代码后我遇到了 ImportError:No module named xx...的问题,解决方法:

sudo apt install python-is-python3

安装完成之后在输入roslaunch..代码就可以看到两只小海龟了。

可以看到界面一开启下面的海龟2就会自动跟随中间的海龟1,启动 键盘控制器来控制海龟1的位置时,能发现海龟2会始终在位置上跟随海龟1。而且在跟随的过程中海龟2会“抄近道”(并不是沿着海龟1的轨迹进行跟随的)

调出可视化工具view_frames来查看两个海龟的坐标和主坐标之间的关系

rosrun tf view_frames 

在这一部读取frames文件出问题之后不要慌,解决办法:

在终端中输入 sudo gedit +后面的路径为你出问题的路径(在输入rosrun tf view_frames后报错的路径),我的路径如下

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

在弹出的文件中的找到第88行,在88行下面输入

 vstr=str(vstr)

保存关闭后,重新运行iew_frames,就可以生成frames文件了。

在读取并保存5s内所有坐标系之间的关于,会生存一个frames文件(具体的路径取决于你在那个路径开启的终端)

 调出命令行工具tf_echo

可以直接在tf tree中查询任意两个坐标系的位置关系

rosrun tf tf_echo turtle1 turtle2

tf_echo后面跟的就是想要查询坐标系的关系。

可以显示两坐标系之间的位置关系

translation后面显示的是(x,y,z)的关系

rotation后面分别显示的是四元数关系(Quaternion),弧度关系(radian),角度关系(degree)来描述两坐标系之间的位置关系。

可视化工具 rviz工具

rviz: 三维可视化平台

rosrun rviz rviz -d `rospack find turtle_tf`/rviz/turtle_rviz.rviz

可以很直观的看出主坐标系和两只海龟坐标系之间的位置关系,部分信息可以在左侧的Displays中调出来。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值