ROS 学习应用篇(七)ROS中的坐标变换管理之tf初探


坐标变化是机器人中很重要的内容,但是要是概括下来无非就是旋转和平移矩阵。

 小海龟跟随实验

做的是两个小海龟之间的跟随,其实就相当于视觉设备和本体设备见有一定的位置差在ros平台下tf坐标变化的实验

首先安装海龟tf变换包

新开终端输入

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

我是 ubuntu20.04 所以是noetic其他版本的ubuntu对应的ros版本号去本专栏《ros一键安装(全)》中查看

用launch包启动 ,后面会陆续学到怎么封装launch文件

roslaunch turtle_tf turtle_tf_demo.launch

报错如下:

是因为在其目录中找的是python的编译器,但是ROS安装是安装的是python3.8(这里以noetic)所以他的编译器的名称是python3,而不是python所以在运行的时候就会报错。

解决方案:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1

再次输入

roslaunch turtle_tf turtle_tf_demo.launchh

这回能看到两只小海龟了

启动海龟键盘控制节点

rosrun turtlesim turtle_teleop_key

小海龟一直在跟随。

启动tf里面的一个可视化工具

rosrun tf view_frames

报错如下:

错误提示89和119行有问题,按照他提示的路径修改低89行代码如下,这也是Python版本不兼容造成的,因为是python3.8有很多包和库会不一样,需要做出修改,这种时候学会查看错误提示就很重要了。

文件只读所以输入

sudo vim (拖拽文件到终端就会自动输入文件)

回车

点击esc按键

输入:wq

(英文状态下输入)

即可保存并退出

重新输入

rosrun tf view_frames

编译成功的结果如下

 自动保存的frames.pdf在当前目录下。

上面这个图是两个节点与跟坐标系三个坐标系间的关系

那么可以通过一下代码查看两两坐标系间对应的变换

rosrun tf tf_echo turtle1 turtle2

可以看到这张图中有平移矩阵和旋转矩阵。

同理查看世界坐标系word 和海龟1间变换关系的代码如下:

rosrun tf tf_echo turtle1 world

接下里就是rivz的学习段了

rviz 启动

rosrun rviz rviz -d 'rospack find turtle_tf'/rviz/turtle_rviz/rviz

% 初步分析这行代码的意思是rviz到搜索turtlr_tf文件下的rviz/turtle_rviz.rviz

打开rviz可视化窗口后

fixed Frame改成world 原来的是map但是我们并没有地图。

添加tf

弹出窗口点击tf→ok

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值