17.ROS中的坐标系管理系统

学习视频:https://www.bilibili.com/video/BV1zt411G7Vn?p=17
一、机器人的坐标变换
在这里插入图片描述
A、B两个坐标系可以通过向量去描述,包含平移变换和旋转变换,任意两个坐标系的变换可以通过两个4*4的矩阵去描述他的平移和旋转。

参考书籍:《机器人导论》

TF功能包能干什么?

  • 五秒种之前(10秒范围内),机器人头部坐标系相对于全局坐标系的关系三什么样的?
  • 机器人夹取的物体相对于机器人中心坐标系的位置在哪里?
  • 机器人中心坐标系相对于全局坐标系的位置在哪里?

TF坐标变换如何实现?

  • 广播TF变换
  • 监听TF变换

1.安装TF功能包

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

2.启动TF脚本文件,自动运行多个节点

 roslaunch turtle_tf turtle_tf_demo.launch

在这里插入图片描述
运行这一步时,报错了,只产生一只小海龟,应该PYthon版本兼容问题,参考链接,解决如下

  • 先运行以下指令,进入usr.bin目录
cd /usr/bin/
  • 再运行以下语句,删除原默认编译器文件
sudo rm -r python
  • 再运行以下语句,复制python3编译器设置为原编译器文件
sudo  cp python3 python
  • 然后再重新运行该roslaunch 命令,问题解决
 roslaunch turtle_tf turtle_tf_demo.launch

在这里插入图片描述

3.运行小海龟键盘控制节点

 rosrun turtlesim turtle_teleop_key

在这里插入图片描述

4.运行下面指令,可以看出整个系统中tf之间的关系

rosrun tf view_frames 

发现这里又有报错
在这里插入图片描述
解决方法如下

  • 用管理员身份运行指令打开报错的文件
sudo gedit /opt/ros/noetic/lib/tf/view_frames 
  • 修改第89行报错内容:m = r.search(str(vstr)),如下图,保存退出
    -在这里插入图片描述
  • 重新运行指令,报错成功解决,在主目录下生成pdf文件
rosrun tf view_frames 

在这里插入图片描述
简化问题:turtle2坐标系向turtle1坐标系变换的底层原理,若world坐标系与turtle坐标系之间没有箭头相连,则两坐标系之间的位置关系没有建立成功
5.tf_echo工具,可以更加直接的查询两坐标系之间的位置关系

rosrun tf tf_echo turtle1 turtle2

在这里插入图片描述
Translation:坐标在XYZ方向上的平移
Rotation:坐标系的旋转

  • Quaternion:四元数
  • PRY(radian):弧度单位
  • PRY(degree):角度单位

6.RVIZ工具,三维可视化平台

  • 先安装rviz工具
sudo apt-get install ros-noetic-rviz
  • 启动rviz可视化工具
rosrun rviz rviz -d `rospack find turtle_tf`/rviz/turtle_rviz.rviz

在这里插入图片描述
添加TF,显示TF位置关系。
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值