来源:http://www.ros.org/reps/rep-0105.html#id5
This REP specifies naming conventions and semantic meaning for coordinate frames of mobile platforms used with ROS.
这个REP指定了ROS下移动机器人平台的坐标系命名规则和语义 。
2 目的(Motivation)
Developers of drivers, models, and libraries need a share convention for coordinate frames in order to better integrate and re-use software components. Shared conventions for coordinate frames provides a specification for developers creating drivers and models for mobile bases. Similarly, developers creating libraries and applications can more easily use their software with a variety of mobile bases that are compatible with this specification. For example, this REP specifies the frames necessary for writing a new localization component. It also specifies frames that can be used to refer to the mobile base of a robot.
为了更好的集成和重用软件模块,驱动,模型以及库的开发人员需要一个坐标系的共享公约。该坐标系的共享规约让开发者为移动基座创建驱动和模型提供了一个规范。同样,开发人员用与本规范兼容的一些移动机器人基座软件能很容易的创建相应的库和应用。例如,本REP指定了写一个定位模块中必须的坐标系,它还指定跟移动机器人底座相关的坐标系。
3 说明(Specification)
3.1 坐标系框架(Coordinate Frames)
3.1.1 世界坐标(map)
The coordinate frame called map is a world fixed frame, with its Z-axis pointing upwards. The pose of a mobile platform, relative to the map frame, should not significantly drift over time. The map frame is not continuous, meaning the pose of a mobile platform in the map frame can change in discrete jumps at any time.
In a typical setup, a localization component constantly re-computes the robot pose in the map frame based on sensor observations, therefore eliminating drift, but causing discrete jumps when new sensor information arrives.
The map frame is useful as a long-term global reference, but discrete jumps make it a poor reference frame for local sensing and acting.
该map坐标系是一个世界固定坐标系,其Z轴指向上方。相对于map坐标系的移动平台的姿态,不应该随时间显著移动。map坐标是不连续的,这意味着在map坐标系中移动平台的姿态可以随时发生离散的跳变。
典型的设置中,定位模块基于传感器的监测,不断的重新计算世界坐标中机器人的位姿,从而消除偏差,但是当新的传感器信息到达时可能会跳变。
map坐标系作为长期的全局参考是很有用的,但是跳变使得对于本地传感和执行器来说,其是一个不好的参考坐标
3.1.2 里程计坐标系(odom)
The coordinate frame called odom is a world-fixed frame. The pose of a mobile platform in the odom frame can drift over time, without any bounds. This drift makes the odom frame useless as a long-term global reference. However, the pose of a robot in the odom frame is guaranteed to be continuous, meaning that the pose of a mobile platform in the odom frame always evolves in a smooth way, without discrete jumps.
In a typical setup the odom frame is computed based on an odometry source, such as wheel odometry, visual odometry or an inertia measurement unit.
The odom frame is useful as an accurate, short-term local reference, but drift makes is a poor frame for long-term reference.
odom 坐标系是一个世界固定坐标系。在odom 坐标系中移动平台的位姿可以任意移动,没有任何界限。这种移动使得odom 坐标系不能作为长期的全局参考。然而,在odom 坐标系中的机器人的姿态能够保证是连续的,这意味着在odom 坐标系中的移动平台的姿态总是平滑变化,没有跳变。
在一个典型设置中,odom 坐标系是基于测距源来计算的,如车轮里程计,视觉里程计或惯性测量单元。
odom 坐标系作为一种精确,作为短期的本地参考是很有用的,但偏移使得它不能作为长期参考
3.1.3 基座标(base_link)
The coordinate frame called base_link is rigidly attached to the mobile robot base. The base_link can be attached to the base in any arbitrary position or orienation; for every hardware platform there will be a different place on the base that provides an obvious point of reference. Note that REP 103 [1] specifies a preferred orientation for frames.
该base_link坐标刚性地连接到移动机器人基座。base_link可以安装在基座中的任意方位;对于每个硬件平台,在基座上的不同地方都会提供一个明显的参考点。需要注意的是REP103[1]规定的坐标的首选方位。
3.2 坐标之间的关系(Relationship between Frames)
We have chosen a tree representation to attach all coordinate frames in a robot system to each other. Therefore each coordinate frame has one parent coordinate frame, and any number of child coordinate frames. The frames described in this REP are attached as follows:
map --> odom --> base_link
The map frame is the parent of odom, and odom is the parent of base_link. Although intuition would say that both map and odom should be attached tobase_link, this is not allowed because each frame can only have one parent.
在机器人系统中,我们使用一棵树来来关联所有坐标系,因此每个坐标系都有一个父坐标系和任意子坐标系,如下:
map --> odom --> base_link
世界坐标系是odom坐标系的父,odom坐标系是base_link的父。虽然直观来说,map和odom应连接到base_link,这是不允许的,因为每坐标系只能有一个父类。
3.3 坐标系权限(Frame Authorities)
The transform from odom to base_link is computed and broadcast by one of the odometry sources.The transform from map to base_link is computed by a localization component. However, the localization component does not broadcast the transform from map to base_link. Instead, it first receives the transform from odom to base_link, and uses this information to broadcast the transform from mapto odom
odom到base_link的转换是由里程计源计算和发布的。然而,定位模块不发布map到base_link的转换(transform)。相反,定位模块先接收odom到base_link的 transform,并使用这个信息发布map到odom的transform。
欢迎大家批评,指正,交流!
联系方式:
emai: [email protected]