type
status
date
slug
summary
tags
category
icon
password

坐标系

  • base_link 被称为 base_link 的坐标系被刚性地附着在移动机器人机身上。  base_link 可以以任意位置或方向附着在机身上;对于每个硬件平台,机身上都会有不同的位置提供明显的参考点。在
    🗒️
    ROS中的约定
    中指定了坐标系的方向。
  • odom
    • 称为 odom 的坐标坐标系是世界固定的坐标系。在 odom 坐标系中,移动平台的姿态可以随着时间的推移而漂移,没有任何界限。这种漂移使得 odom 坐标系作为长期全局参考毫无用处。然而,机器人在 odom 坐标系中的姿态保证是连续的,这意味着在 odom 坐标系中的移动平台的姿态总是以平滑的方式演变,没有离散的跳跃。
      在典型的设置中, odom 坐标系是基于里程计源计算的,例如车轮里程计、视觉里程计或惯性测量单元。
      odom 坐标系作为准确的短期局部参考是有用的,但漂移使其成为长期参考的不良坐标系。
  • map
    • 称为 map 的坐标系是一个世界固定坐标系,其Z轴指向上方。相对于 map 坐标系,移动平台的姿态不应该随着时间的推移而显著漂移。 map 坐标系不是连续的,这意味着 map 坐标系中的移动平台的姿态可以随时在离散的跳跃中改变。
      在典型的设置中,定位组件基于传感器观察不断地重新计算 map 坐标系中的机器人姿态,因此消除了漂移,但当新的传感器信息到达时会导致离散跳跃。
      map 坐标系作为长期全局参考是有用的,但是位置估计器中的离散跳跃使其在局部感知和局部运动中表现较差。

相对全局参考(如地球)坐标系

• 默认情况下,x轴向东对齐,y轴向北对齐,z轴在坐标坐标系的原点向上对齐。 • 如果没有其他参考,z轴的默认位置应该在WGS84椭球体的高度为零。
在存在不能满足上述要求的特定应用要求的情况下,仍应满足尽可能多的要求。
不能满足上述要求的应用的一个例子是机器人在没有外部参考设备如GPS、指南针或高度计的情况下启动。但是,如果机器人仍然有一个加速度计,它可以在z轴向上的当前位置初始化地图。
如果机器人有指南针方向作为初始姿态,那么可以初始化x东,y北。
如果机器人在初始化时有高度计估计值,它可以初始化MSL的高度。
对于非结构化环境,强烈建议使用上述约定。

结构化环境中的映射约定

在结构化环境中,将地图与环境对齐可能更有用。一个示例结构化环境,如办公楼内部,通常是直线的,并且具有有限的全局定位方法,建议将地图与建筑物对齐,特别是如果建筑物布局是预先已知的。同样,在室内环境中,建议将地图对准地面。如果您在多个楼层上操作,拥有多个坐标框架可能是有意义的,每个楼层一个坐标框架。
如果存在歧义,则退回到上述非结构化环境的约定。或者,如果对环境的先验知识有限,非结构化约定仍然可以在结构化环境中使用。
  • earth 称为 earth 的坐标坐标系是ECEF的原点
    • 该坐标系旨在允许多个机器人在不同的地图坐标系中进行交互。如果应用程序只需要一张地图,则 earth 坐标系不会出现。在同时运行多个地图的情况下,需要为每个机器人定制 map 、 odom 和 base_link 坐标。如果运行多个机器人并在它们之间桥接数据,如果重写其他机器人的坐标系ids,变换坐标系ids可以在每个机器人上保持标准。
      如果 map 坐标系值被全局参考,则从 earth 到 map 的发布者可以是静态转换发布者。否则,通常需要通过获取当前全局位置的估计值并减去地图中的当前估计姿态来计算 earth 到 map 的变换,以获得地图原点的估计姿态。
      如果 map 坐标系的绝对位置在启动时未知,它可以保持分离,直到可以自动评估全局位置估计。这将以与机器人在 map 坐标系中的定位被初始化之前可以在 odom 坐标系中操作相同的方式操作。
      以earth为中心,earth固定的切向map坐标系可视化
      以earth为中心,earth固定的切向map坐标系可视化

坐标系之间的关系

机器人系统中坐标系连接树如图所示,每个坐标坐标系都有一个父坐标坐标系和任意数量的子坐标系
notion image
map 坐标系是 odom 的父级, odom 是 base_link 的父级。虽然直觉会 map 和 odom 都应该附在 base_link 上,但这是不允许的,因为每个坐标系只能有一个父级。

额外中间坐标系

该图显示了该图的最小表示。基本拓扑应该保持不变,但是在图中插入额外的链接可以提供额外的功能。

基于ECEF的多机器人tf图示例

notion image
这是一个tf树的例子,两个机器人使用不同的地图进行定位,并具有公共坐标系 earth 。
为了清楚起见,上图使用了不同的坐标系id。然而,为了最大限度地提高可重用性,建议在每个机器人上使用规范的坐标系id,并使用脚本来转发机器人的信息。当信息被转发时,坐标系id应该被重新映射,以消除它们来自哪个机器人和引用哪个机器人的歧义。

坐标转换

  • 从 odom 到 base_link 的转换由里程计源之一计算和广播。
  • 从 map 到 base_link 的转换由本地化组件计算。但是,本地化组件不会广播从map到base_link的转换。相反,它首先接收从 odom 到 base_link 的转换,并使用该信息广播从 map 到 odom 的转换。
  • 从 earth 到 map 的转换是静态发布的,并通过选择地图坐标系进行配置。如果没有特别配置,后备位置是使用车辆的初始位置作为地图坐标系的原点。如果地图没有地理配准以支持简单的静态变换,定位模块可以遵循与发布从 map 到 odom 坐标系的估计偏移相同的过程,以发布从 earth 到 map 坐标系的变换。

地图之间的过渡

当机器人远距离运动时,预计它将需要在地图之间转换。在室外环境中,地图坐标坐标系是邻近区域的欧几里得近似,但是由于地球的曲率,欧几里得近似在更长的距离上失效。在室内环境中,这可以在两个建筑物之间转换,其中每个建筑物都有您正在导航的先前地图,或者机器人在建筑物的新楼层上。
在地图之间移动时,本地化坐标系机构有责任适当地重新设置 odom 坐标系。将map到odom的坐标系计算为从本地化修复 map 到 base_link 中减去 odom 到 base_link 的结果的常见实现将在 map 坐标系的选择发生变化时隐式地处理这一问题。

坐标系一致性

在地图之间转换时,里程计坐标系不应受到影响。应调整odom坐标系中收集的数据的数据保留策略,以便在综合位置误差累积到足以使数据无效之前丢弃旧的数据。根据机器人里程计的质量,这些政策可能会有很大不同。与仅在转弯时具有开环反馈的滑移转向机器人相比,具有多个冗余高分辨率编码器的轮式车辆将具有低得多的漂移率,并且能够将数据保存更长的时间或距离。
还有其他环境也会影响适当的保留策略,例如机器人被外部激励因素移动,或者静态环境的假设。一个例子是电梯里的机器人,在进出电梯之间,外面的环境发生了变化。这些问题大多来自静态环境的假设,其中观测值与机器人处于相同的惯性坐标系中。在这些情况下,需要关于环境及其对象的语义信息来正确管理持久数据。不管怎样,惯性的坐标系应该永远保持连续。
如果车辆行驶足够长的距离,使得从 odom 坐标系原点到车辆的距离接近最大浮点精度,则对于保存在 odom 坐标系中的基于浮点的数据,可能会观察到性能下降。对于像点云这样的东西中使用的32位浮点数据来说尤其如此。如果遇到此顺序的距离,可能需要系统重置 odom 坐标系原点。如果需要厘米级精度,到 odom 坐标系的最大距离约为83公里。
ROS中的约定CLion ROS开发配置