当前位置: 首页 > article >正文

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


http://www.kler.cn/a/132878.html

相关文章:

  • Python 网络爬虫入门教程
  • NVR录像机汇聚管理EasyNVR多品牌NVR管理工具视频汇聚技术在智慧安防监控中的应用与优势
  • 如何使用 XML Schema
  • 螺旋矩阵II(leetcode 59)
  • torchvision库在进行图片转换操作中报antialias参数没有显式设置会导致不同图片后端中的值不统一的警告信息
  • 本地部署Apache Answer搭建高效的知识型社区并一键发布到公网流程
  • Zabbix5.0部署及应用
  • 教你轻松解决win系统ucrtbased.dll丢失的问题,亲测有效!
  • kafka入门(一):kafka消息消费
  • 若依中脱敏
  • C#WPF文本转语音实例
  • 人工智能发展前景
  • Flutter 应用启动从闪屏页短暂黑屏再到第一个页面
  • 超全整理,Pytest自动化测试框架-多进程(pytest-xdist)运行总结...
  • Web前端—移动Web第一天(平面转换、渐变、综合案例--播客网页设计)
  • 计算机网络八股文
  • 十三、Docker的安装
  • 【刷题专栏—突破思维】LeetCode 138. 随机链表的复制
  • 趣学python编程 (二、计算机硬件和用途介绍)
  • ai语音电销机器人电销行业要怎么降低封号率?
  • Kotlin--1.基础语法
  • 在国内购买GPT服务前的一定要注意!!!
  • git基础命令
  • 【微信公众号】一、获取 access_token
  • .Net(C#)常用转换byte转uint32、byte转float等
  • 使用新版Visual Studio编译老项目部分报错处理