ROS坐标转换讲解 | Autolabor Simulation

前期内容:

坐标轴与坐标系

对于大多数用户来说坐标转换是一个“黑箱”,不了解这个部分并不影响用户愉快的使用模拟器,但理解ROS以及Autolabor Simulation的坐标转换机制能帮助用户更好的控制他们的机器人,也使他们能够更快的查找出编码中可能出现的问题。

在ROS中,坐标轴规定可以参考 ROS-REP 103 ,坐标系可以参考 ROS-REP 105,为了方便大家的理解,这里结合模拟器做简单的讲解

坐标轴的定义

三维坐标轴朝向定义

常规用来表示三维位置关系时,使用的是右手坐标系,何为右手坐标系呢?我们来看下图:


右手坐标系定义[1]
把右手放在原点的位置,使大姆指,食指和中指互成直角,把 大姆指 指向 Z轴 的正方向,食指指向X轴的正方向时向时,中指所指的方向就是 Y轴 的正方向

通常相对于我们的身体而言

  • X -> 朝前
  • Y -> 朝左
  • Z -> 朝上

举例:
坐标点 (3,4,5) 表示距原点 前3个单位 ,并向 左4个单位以及向 上5个单位 的位置。

三维坐标轴旋转定义

有了三维坐标轴的定义,那么对于旋转的定义也就比较容易了,对于一个三维空间里面的旋转,可以分解成绕着坐标轴的旋转。旋转的方向使用右手法则定义:

绕坐标轴旋转定义
用右手握住坐标轴,大拇指 的方向朝着坐标轴朝向的正方向四指环绕的方向定义沿着这个坐标轴旋转的正方向

一般来说

  • Z轴 旋转,称之为 航向角,使用yaw表示;
  • X轴 旋转,称之为 横滚角,使用roll表示;
  • Y轴 旋转,称之为 俯仰角,使用pitch表示;

举例:
我们通常用来表述小车运动的二维平面指的是 X-Y平面,也就是X轴和Y轴张成的平面,在这个平面中,用来描述 小车转弯的角就是绕Z轴的旋转,也就是经常说的航向角。Z轴朝上,所以按照右手法则可以知道小车向 左转为正,右转为负

坐标系定义

空间中的同一位置,在不同坐标系下,其坐标值也不相同。

在上图中,有两个坐标系,分别为坐标系A和坐标系B,其中 橘红色坐标轴表示X轴(朝前),蓝色坐标轴表示Y轴(朝左)。对于坐标系A中,粉色的圆点的坐标为(3, -3),对于坐标系B中,粉色的圆点的坐标为(5, 1)

ROS中常见的坐标系

在ROS中,定义了许多坐标系,这里介绍几个常见的坐标系,为了比较直观的解释这几个坐标系,我们使用一个小例子来说明。


在刚开始的时候,按照之前坐标轴的定义,将小车的朝向方向作为X轴,正左方标识为Y轴,并将小车所在的位置定义为原点,如图(1-1)。

如图(1-2),在原点插一面小旗子,并控制小车行驶一段距离,这个时候我们能得到三个位置信息

  • 使用测量工具测量小车相对旗子的位置,在X轴正方向距原点3个单位,在Y轴正方向距原点2个单位
  • 小车安装里程计,记录自己前进3个单位,并向左平移了2个单位
  • 小车使用激光雷达数据与已有地图进行匹配,并结合里程计数据,将数据融合得到小车的位置在X轴正方向3个单位,在Y轴正方向2个单位

在上面的例子中,三个坐标值都相同。但真实情况下,三个坐标值由于测量误差或者其他原因导致坐标值并不相同,然而这三个坐标都用来表示小车中心在空间中的位置,这就引出了不同坐标系

  • 对于第一种测量,称之为真实坐标系,这是一个理想的坐标系,即我们拥有一种绝对准确的测量方式获得小车相对于地图原点的坐标,但这种坐标系在真实情况下是不存在的。
  • 对于第二种测量,称之为里程计坐标系,在这个坐标系中得到的测量值通常是基于轮速里程计,视觉里程计或者惯性单元得到的。在这个坐标系中,新坐标值通常是根据前一个时刻坐标得到的,一般使用odom来表示。
    • 优点: 坐标值是连续的并且以平稳的方式演变,没有离散的跳跃。
    • 缺点: 测量产生的误差会累计。
    • 适合: 短时程相对定位
  • 对于第三种测量,称之为地图坐标系,在这个坐标系中得到坐标值通常是通过传感器的数据重新计算或测量得到的,一般使用map来表示。
    • 优点:由于每次得到的坐标点都是重新测量计算得到的,累计误差影响较小
    • 缺点: 坐标数据会有跳变。
    • 适合: 长时程绝对定位

假设对于上面描述的三种测量是以下结果

  • 真实坐标系:坐标值为(3, 2)
  • 里程计坐标系:坐标值(3, 1)
  • 地图坐标系:坐标值(3.5, 2.5)

那么坐标系表示如图(1-3)

模拟器使用的坐标系

模拟器除了沿袭上面讲述的两个坐标系(odom, map)之外,同时还引入了真实坐标系(real_map)。

由于是模拟器,所以可以精确的知道小车的真实位置,在autolabor_simulation_base模块中,会发布两种坐标系的坐标

  • 小车在odom坐标系下的坐标:发布的坐标是模拟轮速里程计产生的,我们可以在autolabor_simulation_base模块中设置轮速里程计噪音,用于模拟真实情况。但由于存在噪音,所以在odom坐标系下的小车坐标并不等于其真实位置。
  • 小车在real_map坐标系下的坐标:发布的坐标是根据上层控制速度结合小车底层限制(小车的最大速度,加速度等信息)产生的,在这个坐标系下会排除轮速里程计产生的噪声,输出小车的真实坐标。

对于map坐标系下的坐标,并不由模拟器产生,而是通过上层的定位算法得到的,这部分在后面的讲解中可以看到。

为什么引入真实坐标系

我们往往希望找到一种量化的方法去评价算法的优劣,这样对于调整算法或者某些参数有很大的帮助。在使用真实机器人去测试,需要借助外界测量工具去测量,并且需要想一些巧妙的办法让这些测量合理并且准确。但使用模拟器就能够比较方便的解决这个问题。

模拟器能对传感器数据添加噪声,从而来模拟真实情况。将有噪音的数据带入算法中,如果得到的数据很接近“真实数据”,那么我们就能认为这个算法比较好。

比如我们使用AMCL算法对小车进行定位,其中里程计和激光雷达数据都带有噪音,这个时候我们可以得到在map坐标系下的坐标,同时我们能得到小车在real_map坐标系下的坐标,我们就可以使用这两个坐标的距离来判断定位的准确性。

在后面的实验中,我们可以使用这个特性对一些算法进行评测。


  1. 在百度百科右手表坐标系条目中对坐标轴的定义略有差别

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容