ROS:坐标管理系统

这篇具有很好参考价值的文章主要介绍了ROS:坐标管理系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、机器人中的坐标变换

机器人运动学的核心,描述任意两个坐标系之中任意两个向量之间的变换,可以用一个4×4的变换矩阵(Transformation Matrices)来描述它的平移和旋转变化。
变换矩阵中有包括旋转矩阵(Rotation Matrix)的信息和位置移动(Translation)的信息。
ROS:坐标管理系统

二、TF功能包

2.1TF功能包简介

一个机器人中,可以有很多坐标系,我们需要去描述任意两个坐标系之间的关系,涉及到大量的矩阵运算。我们可以用ROS中的TF(Transform)功能包来解决问题。
ROS:坐标管理系统
TF功能包的特点:默认能记录10秒内机器人所有坐标系之间的位置关系。
如:
5秒钟之前,机器人头部坐标系相对于全局坐标系的关系是什么样的?
机器人夹取的物体相对于机器人中心坐标系的位置在哪里?
机器人中心坐标系相对于全局坐标系的位置在哪里?

2.2TF坐标变换实现

实现机制:
广播TF变换
监听TF变换

这有别于之前topic和service的机制。
在ROS Master启动后,启动TF后,会在后台维护一个名为“TF树(TF Tree)”的数据结构。所有的坐标系都是通过树形结构保存在这个树结构当中,当有结点想查询某两个坐标系之间的关系的话,直接可以查询这个TF Tree来得到。

2.3TF案例

ROS:坐标管理系统
比如这辆带激光雷达的车,车体是以base_link为坐标系的,激光雷达是以base_laser为坐标系的,可以看到base_laser是base_link向x轴平移了0.1m,向z轴平移了0.2m,y轴没有平移。
当base_laser测到离墙面的距离为0.3m,即向量(0.3,0,0)时,就可以根据图下方的TF tree进行坐标系之间的数据变换的运算,从而算出base_link的相对与测距点的相对向量(0.4,0,0.2)。

三、小海龟跟随实验

3.1打开小程序

roslaunch turtle_tf turtle_tf_demo.launch

注:第一次运行可能会报错
报错的原因可能是Python解释器的指向问题。
打开终端依次输入:

cd /usr/bin/
sudo rm -r python
sudo cp python3 python

ROS:坐标管理系统
打开后就会有两只海龟,直接用键盘操作一只海龟前进,另一只会跟过来。
ROS:坐标管理系统

3.2查看当前的TF树

查看当前的TF tree,查看一下坐标系之间的关系。

rosrun tf view_frames

ROS:坐标管理系统
注:noetic直接运行可能会报错,无法生成pdf文件。解决方案:
先打开它指向的那个view_frames文件的修改权限:

sudo chmod a+w /opt/ros/noetic/lib/tf/view_frames

打开,88行后加上

vstr = str(vstr)

ROS:坐标管理系统
加上后重新运行。
可在用户文件夹下生成一个pdf文件:
ROS:坐标管理系统

可以看到有3个坐标系,除了两个海龟自身的坐标系,还有个world坐标系。
这颗TF树展示了当前的坐标间的位置关系,turtle1和turtle2是相对world坐标系变化的。
ROS:坐标管理系统

3.3坐标相对位置关系可视化1(tf_echo)

想看两个海龟的相对变换关系,输入:

rosrun tf tf_echo turtle1 turtle2

ROS:坐标管理系统
我们接着操控海龟1移动,相对关系就发生了变化:
ROS:坐标管理系统
这里包含了Translation和Rotation的信息。
Translation表示了相对位移的信息(是一个3×1的向量)。
Rotation表示了旋转矩阵的信息(一个3×3的矩阵,但自由度为3),它又有两种表示方式:
1.RPY表示法(pitch俯仰角、yaw偏航角、roll翻滚角)
2.四元数法(Quaternion)
都可以表示旋转矩阵的信息

Rotation和Translation合起来可以构成变换矩阵

3.4坐标相对位置关系可视化2(rviz)

rviz命令

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

ROS:坐标管理系统
打开rviz界面。
上面Fixed Frame选 world。Add选添加TF,可以看到3个坐标系了。
ROS:坐标管理系统
控制海龟运动,坐标系发生改变,然后坐标系turtle2原点会靠近turtle1原点:
ROS:坐标管理系统
ROS:坐标管理系统
下图中左边变换矩阵的运算,其实就是坐标移动的本质。两个坐标系相对于world坐标系的变换的乘积可以求得两个坐标系相对的变换关系。
ROS:坐标管理系统
参考视屏:古月居ROS入门21讲
ROS:坐标管理系统文章来源地址https://www.toymoban.com/news/detail-472655.html

到了这里,关于ROS:坐标管理系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ROS 06】机器人系统仿真

    对于ROS新手而言,可能会有疑问:学习机器人操作系统,实体机器人是必须的吗?答案是否定的,机器人一般价格不菲,为了降低机器人学习、调试成本,在ROS中提供了系统的机器人仿真实现,通过仿真,可以实现大部分需求,本章主要就是围绕“仿真”展开的,比如,本章会

    2024年02月09日
    浏览(43)
  • ROS学习笔记16:机器人系统建模与仿真

    一、概述: 1.机器人系统仿真:         是通过计算机对实体机器人系统进行模拟的技术,在 ROS 中,仿真实现涉及的内容主要有三:对机器人建模(URDF)、创建仿真环境(Gazebo)以及感知环境(Rviz)等系统性实现。 (1)仿真优势:低成本、高效、高安全性。 (2)仿真缺陷:仿

    2024年02月09日
    浏览(45)
  • (无人机方向)ros学习之路ROS 机器人系统仿真_导航仿真概述

    一:导航仿真概述 导航是机器人系统中最重要的模块之一,比如现在较为流行的服务型室内机器人,就是依赖于机器人导航来实现室内自主移动的,本章主要就是介绍仿真环境下的导航实现,主要内容有: 导航相关概念 导航实现:机器人建图(SLAM)、地图服务、定位、路径规划…

    2024年02月02日
    浏览(56)
  • 嵌入式机器人系统ROS入门相关知识点介绍

    本文旨在收集整理linux系统、ROS系统、树莓派、ssh软件的相关基础知识。 重点是ROS系统相关的知识,根据该实验课程的要求,最后修改的代码,都是由ROS组织起来,运行在ROS环境下的。 1、ssh软件–mobaXterm ssh:SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接

    2024年02月06日
    浏览(44)
  • 【手把手做ROS2机器人系统开发二】熟悉ROS2基本命令

    目录 【手把手做ROS2机器人系统开发二】熟悉ROS2基本命令 一、上讲回顾 二、ROS2核心命令讲解 1、daemon-各种守护进程相关的子命令 2、node-各种节点进程相关的子命令  3、pkg-各种包进程相关的子命令  4、run运行特定软件包的可行性文件 5、topic各种话题进程相关的子命令 6、

    2024年02月14日
    浏览(42)
  • ROS2机器人任务级导航仿真系统设计与实现(预告)

    前一篇: ​​​​​ROS2工业机械臂抓取仿真系统设计与实现(预告) ROS2机器人任务级导航仿真系统设计与实现 一、背景与意义 随着机器人技术的不断发展和智能化需求的提高,机器人在各个领域中的应用越来越广泛。其中,机器人导航系统是实现机器人自主移动、完成各

    2024年01月24日
    浏览(47)
  • 2023机器人操作系统(ROS)暑期学校预热-线下时间/地点-(转发)

    原文地址: 中国机器人操作系统(ROS)暑期学校自2015年举办以来,被中国机器人业界和学界,以及ROS开源基金会誉为除了ROSCon之外规模最大、参与人数最多、最成功的ROS线下活动。过去8年,中国机器人操作系统(ROS)暑期学校共吸引了全国500多所高校(包括台湾,香港,澳

    2024年02月16日
    浏览(39)
  • [工业互联-14]:机器人操作系统ROS与ROS2是如何提升实时性的?

    目录 第1章 简介 第2章 历史 第3章 特点 (1)点对点设计 (2)不依赖编程语言 (3)精简与集成 (4)便于测试 (5)开源 (6)强大的库及社区: (7)通道: (8)工具: (9)强大的库: (10)生态系统: 第4章 ROS的系统架构 第5章 ROS与Linux 5.1 ROS能安装在Linux之上吗? 5.

    2024年02月14日
    浏览(46)
  • 机器人开发环境配置(双系统(Ubuntu)安装、ROS安装、VScode环境配置)

    目录 /安装经历分享以及给电脑为天选4的可避坑操作/ 一.双系统Ubuntu安装(20.04) 1.查看引导模式 2.下载Ubuntu的安装映像文件 3.开始制作安装盘 4.关闭BitLocker! 5.关闭独显直连(若有用到独立显卡) 6.压缩Windows分区 7.关闭Secure Boot 二.ROS安装(Noetic) 1.ros官方安装步骤 2.设置安

    2024年04月25日
    浏览(39)
  • RoboMaster EP 实用功能开发(三): 基于树莓派的ROS2机器人系统搭建

    功能: 在树莓派4b上安装ros2系统,引入robomaster sdk,搭建一个基于ROS2的机器人系统,用于ROS系统的学习、开发和实践。 硬件: RobotMaster EP、树莓派4b 系统平台: Ubuntu 20.04、ROS2(Foxy) 开发语言及主要库函数版本:p ython == 3.8,robomaster == 0.1.1.62 一、树莓派4b安装ubuntu20.04  

    2024年02月09日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包