由浅到深理解ROS(6)-坐标转换

转自

 

 

ROS 中对于多坐标系的处理是使用树型表示,在机器人自主导航中,ROS会构建这几个很重要的坐标系:

base_link: 一般位于tf tree的最根部,物理语义原点一般为表示机器人中心,为相对机器人的本体的坐标系。(base_footprint:行走机器人?)

odom:一般直接与base_link 相链接,语义为一个对于机器人全局位姿的粗略估计。取名来源于odometry(里程计),一般这个坐标系的数据也是来源于里程计。对于全局位姿的估计方法很多,比如在hector SLAM与导航体系中,就采用了imu数据估计全局位姿,还有很多视觉里程计的算法(visual odometry)也能提供位姿估计。原点为开始计算位姿那个时刻的机器人的位置。之

odom_combined 这个tf一般为好几种位姿估计方法的信息融合后的数据。在navigation metapackage中有 robot_pose_ekf 这个包是用扩展卡尔曼滤波算法(EKF)融合不同传感器的数据。

map: 一般与odom(或者odom_combined)相连,语义为一个经过先验(或者SLAM)地图数据矫正过的,在地图中的位姿信息。与odom同为全局坐标系。原点为地图原点(地图原点在地图相应的yaml文件中有规定)。

 

 

转自

odom:里程计坐标系,这里要区分开odom topic,这是两个概念,一个是坐标系,一个是根据编码器(或者视觉等)计算的里程计。但是两者也有关系,odom topic 转化得位姿矩阵是odom-->base_link的tf关系。这时可有会有疑问,odom和map坐标系是不是重合的?(这也是我写这个博客解决的主要问题)可以很肯定的告诉你,机器人运动开始是重合的。但是,随着时间的推移是不重合的,而出现的偏差就是里程计的累积误差。那map-->odom的tf怎么得到?就是在一些校正传感器合作校正的package比如gmapping会给出一个位置估计(localization),这可以得到map-->base_link的tf,所以估计位置和里程计位置的偏差也就是odom与map的坐标系偏差。所以,如果你的odom计算没有错误,那么map-->odom的tf就是0.

 

 

        导航与定位是机器人研究中的重要部分。

        一般机器人在陌生的环境下需要使用激光传感器(或者深度传感器转换成激光数据),先进行地图建模,然后在根据建立的地图进行导航、定位。在ROS中也有很多完善的包可以直接使用。
        在ROS中,进行导航需要使用到的三个包是:
      (1)move_base:根据参照的消息进行路径规划,使移动机器人到达指定的位置;
      (2)gmapping:根据激光数据(或者深度数据模拟的激光数据)建立地图;(SLAM是其中一种?)
      (3)amcl:根据已经有的地图进行定位。

       参考链接:http://www.ros.org/wiki/navigation/Tutorials/RobotSetup

                         http://www.ros.org/wiki/navigation/Tutorials

       整体导航包的格局如下图所示:

        其中白色框内的是ROS已经为我们准备好的必须使用的组件,灰色框内的是ROS中可选的组件,蓝色的是用户需要提供的机器人平台上的组件

 

1、sensor transforms

        其中涉及到使用tf进行传感器坐标的转换,因为我们使用的机器人的控制中心不一定是在传感器上,所以要把传感器的数据转换成在控制中心上的坐标信息。如下图所示,传感器获取的数据是在base_laser的坐标系统中的,但是我们控制的时候是以base_link为中心,所以要根据两者的位置关心进行坐标的变换。

 

        变换的过程不需要我们自己处理,只需要将base_laser和base_link两者之间的位置关系告诉tf,就可以自动转换了。具体的实现可以参见:http://blog.csdn.net/hcx25909/article/details/9255001。

 

2、sensor sources

        这里是机器人导航传感器数据输入,一般只有两种:
      (1)激光传感器数据
      (2)点云数据
      具体实现见:http://www.ros.org/wiki/navigation/Tutorials/RobotSetup/Sensors

3、odometry source

        机器人的导航需要输入里程计的数据(tf,nav_msgs/Odometry_message),具体实现见:
        http://www.ros.org/wiki/navigation/Tutorials/RobotSetup/Odom

4、base controller

        在导航过程中,该部分负责将之前得出来的数据转封装成具体的线速度和转向角度信息(Twist),并且发布给硬件平台。

5、map_server

       在导航过程中,地图并不是必须的,此时相当于是在一个无限大的空地上进行导航,并没有任何障碍物。但是考虑到实际情况,在我们使用导航的过程中还是要一个地图的。
       具体实现见:http://www.ros.org/wiki/slam_gmapping/Tutorials/MappingFromLoggedData
       在ROS的导航中,costmap_2d这个包主要负责根据传感器的信息建立和更新二维或三维的地图。ROS的地图(costmap)采用网格(grid)的形式,每个网格的值从0~255,分为三种状态:占用(有障碍物)、无用(空闲的)、未知。具体状态和值的对应关系如下:

 

        

        上图共分为五个部分:(下面的红色框图是机器人的轮廓,旁边的黑框是上图的映射位置)
      (1)Lethal(致命的):机器人的中心与该网格的中心重合,此时机器人必然与障碍物冲突。
      (2)Inscribed(内切):网格的外切圆与机器人的轮廓内切,此时机器人也必然与障碍物冲突。
      (3)Possibly circumscribed(外切):网格的外切圆与机器人的轮廓外切,此时机器人相当于靠在障碍物附近,所以不一定冲突。
      (4)Freespace(自由空间):没有障碍物的空间。
      (5)Unknown(未知):未知的空间。
       具体可见:http://www.ros.org/wiki/costmap_2d

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/440031.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【BZOJ - 3450】Tyvj1952 Easy(数学期望,期望的线性性)

题干: 某一天WJMZBMR在打osu~~~但是他太弱逼了,有些地方完全靠运气:( 我们来简化一下这个游戏的规则 有n次点击要做,成功了就是o,失败了就是x,分数是按comb计算的,连续a个comb就有a*a分,comb就…

吐血推荐收藏的学位论文排版教程(完整版)

目录 01.保存的高级选项设置 02.纸张设置为A4纸大小 03.设置页边距和装订线距离 04.度量衡的设置 05.创建“论文正文”样式 06.修改论文正文样式 07.设置并修改标题样式 08.给中英文摘要、附录、等大标题套用样式 09.两个Word文档之间进行并排查看 12.一键生成多级列…

由浅到深理解ROS(7)-URDF

转自 相信许多爱好者止步于昂贵的机器人价格。虽然有了Arduino,但一个载重能力很弱的机器人小车成本也得一两百块钱。搭建自己的机器人更是费时费力。 所以如果你只是普通机器人爱好者,或者还没想好要拿机器人做什么,那我们还是从模拟器开始…

Apollo进阶课程 ① | 带你纵览无人车

目录 1)无人驾驶级别的分类 2)无人驾驶技术的关键点 3)火热的无人驾驶 不缺独角兽 原文链接:Apollo进阶课程 ① | 带你纵览无人车 Apollo自动驾驶进阶课程是由百度Apollo联合北京大学共同开设的课程,邀请百度Apoll…

【BZOJ - 4318】OSU!(概率dp,数学期望,期望的线性性)

题干: osu 是一款群众喜闻乐见的休闲软件。 我们可以把osu的规则简化与改编成以下的样子: 一共有n次操作,每次操作只有成功与失败之分,成功对应1,失败对应0,n次操作对应为1个长度为n的01串。在这个串中连续的 X个…

word2vec原理详解及实战

目录 1)前言 1.1 语言模型 1.2N-gram模型 1.3词向量表示 2)预备知识 2.1 sigmoid函数 2.2 逻辑回归 2.3贝叶斯公式 2.4 Huffman编码 3)神经网络概率语言模型 4)基于Hierarchial Sodtmax模型 4.1CBOW模型 4.2 Skip-gr…

计算机网络通讯协议

网络通讯: 就是要把特定意义的数据通过物理介质传送给对方。把电信号变成有意义的数据: 以字节为单位分组,标识好每一组电信号的信息特征,按照分组的顺序来依次发送。 以太网规定:一组电信号为一个数据包&#xff0c…

【CodeForces - 518D】Ilya and Escalator(概率dp,数学期望)

题干: Ilya got tired of sports programming, left university and got a job in the subway. He was given the task to determine the escalator load factor. Lets assume that n people stand in the queue for the escalator. At each second one of the tw…

Apollo进阶课程 ② | 开源模块讲解(上)

目录 1)无人驾驶车介绍 2)高精地图 3)定位 4)感知 5)轨迹规划 6)控制 7)云端 原文链接:Apollo进阶课程 ② | 开源模块讲解(上) Apollo自动驾驶进阶课…

由浅到深理解ROS(9)- 几个基本概念的理解 坐标系 包

1.坐标系 最常用的就是map,odom,base_link,base_laser坐标系,这也是开始接触gmapping的一些坐标系。 map:地图坐标系,顾名思义,一般设该坐标系为固定坐标系(fixed frame)&#xff…

【POJ - 1698】Alice's Chance(网络流最大流,建图)

题干: Alice, a charming girl, have been dreaming of being a movie star for long. Her chances will come now, for several filmmaking companies invite her to play the chief role in their new films. Unfortunately, all these companies will start mak…

由浅到深理解ROS URDF教程

创建自己的URDF文件 1.1创建树形结构文件 在这部分教程中要创建的将是下面的图形所描述的机器人的urdf文件 图片中这个机器人是一个树形结构的。让我们开始非常简单的创建这个树型结构的描述文件,不用担心维度等的问题。创建一个my_robot.urdf文件,内容如…

wireshark基本使用及介绍

Wireshark使用 注:本文中使用的wireshark是3.2.2版本 捕获过滤器表达式 下面是常用的捕获过滤器,wireshark中:捕获->捕获过滤器 除此外,还可以指明传输方向,如:src(源方向), …

1.2)深度学习笔记------神经网络的编程基础

目录 1)Binary Classification 2)Logistic Regression 3)Logistic Regression Cost Function 4)Gradient Descent 5)Logistic Regression Gradient Descent(重点) 6)Gradient …

IP、TCP、UDP、HTTP头部信息

IP头部信息 ip报文段格式 版本: 占4位,表明IP协议实现的版本号,当前一般为IPv4,即0100。报头长度 : 占4位,因为头部长度不固定(Option可选部分不固定),所以需要标识…

ROS技术点滴 —— MoveIt!中的运动学插件

MoveIt!是ROS中一个重要的集成化开发平台,由一系列移动操作的功能包组成,提供运动规划、操作控制、3D感知、运动学等功能模块,是ROS社区中使用度排名前三的功能包,目前已经支持众多机器人硬件平台。 MoveIt!中的众多功能都使用插件…

1)机器学习基石笔记Lecture1:The Learning Problem

网上关于机器学习的课程有很多,其中最著名的是吴恩达老师的课程,最近又发现了NTU林轩田老师的《机器学习基石》课程,这门课也很好。课程总共分为4部分,总共分为16节课,今天来记录第一节课。 When Can Machines Learn?…

Apollo进阶课程 ③ | 开源模块讲解(中)

目录 1)ISO-26262概述 2)ISO-26262认证流程 3)ISO-26262优点与缺陷 原文链接:Apollo进阶课程 ③ | 开源模块讲解(中) Apollo自动驾驶进阶课程是由百度Apollo联合北京大学共同开设的课程,邀请…

【CodeForces - 1047C】Enlarge GCD(数学,枚举,预处理打表,思维)

题干: F先生有n个正整数,a1,a2,...,an 他认为这些整数的最大公约数太小了,所以他想通过删除一些整数来扩大它 您的任务是计算需要删除的最小整数数,以便剩余整数的最大公约数大于所有整数的公约数. Input 3 1 2 4…

TS解析文档

TS格式解析 简介: ts文件为传输流文件,视频编码主要格式h264/mpeg4,音频为acc/MP3。 ts的包是一个一个188字节的包组成,这188字节里面由一个0x47开头的包作为同步。 也就是说,如果你找到了0x47,如果与它相…