机器人坐标系大全
1. 世界坐标系
1.1 ECEF坐标系
地心地固坐标系(Earth-Centered,Earth-Fixed,简称ECEF)简称地心坐标系,是一种以地心为原点的地固坐标系(也称地球坐标系),是一种笛卡儿坐标系。原点 O (0,0,0)为地球质心,z 轴与地轴平行指向北极点,x 轴指向本初子午线与赤道的交点,y 轴垂直于xOz平面(即东经90度与赤道的交点)构成右手坐标系。ECEF坐标系如下图所示:
1.2 东-北-天坐标系
东-北-天坐标系又称为ENU坐标系、站心坐标系、站点坐标系,英文名称是local Cartesian coordinates coordinate system,主要是用于需了解以观察者为中心的其他物体运动规律。
1.2.1 站心直角坐标系
定义:以站心(如GPS接收天线中心)为坐标系原点O,Z轴与椭球法线重合,向上为正(天向),y与椭球短半轴重合(北向),x轴与地球椭球的长半轴重合(东向)所构成的直角坐标系,称为当地东北天坐标系(ENU)。 [2]
1.2.2 站心极坐标系
定义:以站心为坐标极点O,以水平面(即xoy平面)为基准面,以东向轴(即x轴)为极轴,ρ为卫星到站点的距离,az为星视方向角(azimuth angle),el为星视仰角(elevation)。
ENU坐标系如下图所示:
1.3 地理坐标系
地理坐标系则通过经度(longitude),纬度(latitude)和高度(altitude)来表示地球的位置,也叫经纬高坐标系(LLA坐标系)。
2. ROS坐标系
2.1 ROS坐标系简介
ROS中所有坐标系都是右手坐标系,都遵循右手定则。
2.2 ROS坐标轴定义
ROS中的坐标轴定义符合REP:103标准。
2.2.1 载体坐标系坐标轴定义
载体坐标系指的是和车体相关的坐标系,其坐标轴定位为:
- x -> forward
- y -> left
- z -> up
2.2.2ENU坐标系坐标轴定义
对于小范围全局地理位置的表示,常用笛卡尔坐标系形式的ENU坐标系:
- X -> east
- Y -> north
- Z -> up
为避免在坐标值较大时使用float32类型带来的精度问题,建议选择附近的原点,例如系统的起始位置。
2.2.3 摄像机坐标系
ROS中的摄像机坐标系也被称为后缀坐标系(Suffix Frames),摄像机坐标系作为一种第二坐标系通常以“ _optical”为后缀,摄像机坐标系坐标轴定义为:
-
z -> forward
-
x -> right
-
y -> down
对于室外系统的摄像机坐标系,其经常在NED坐标系下工作,此时的摄像机坐标系以“ _ned”为后缀,定义为: -
X -> north
-
Y -> east
-
Z -> down
2.2.4 旋转表示
下面列出了首选顺序以及基本原理。
(1) 四元数
紧凑的表示
没有奇异性
(2) 旋转矩阵
没有奇异性
(3)定轴旋转
roll, pitch, yaw分别对应 X, Y, Z轴方向上的旋转,定轴旋转在顺序上没有歧义,常用于角速度
(3)欧拉角旋转
欧拉角 yaw, pitch, and roll 分别对应Z, Y, X轴方向上的旋转,动轴旋转的旋转顺序通常为先旋转yawl,再旋转pitch,最后旋转roll,即ZYX旋转。
通常不建议使用欧拉角,这是因为默认情况下具有使用不同约定的24个“有效”约定以及不同的域。
根据右手定则,方向的偏航分量会随着子坐标系的逆时针旋转而增加,对于地理位姿,指向东方时偏航为零。
这仅需特别提及,因为它不同于传统的罗盘方位角,后者在指向北时为零,并顺时针递增。硬件驱动程序应在发布标准ROS消息之前进行适当的转换。
2.2.5 协方差表示
对于线性位置:
float64[9] linear_acceleration_covariance # 3x3 row major matrix in x, y, z order
对于角度:
float64[9] angular_velocity_covariance # 3x3 row major matrix about x, y, z order with fixed axes
对于六维:
Row-major representation of the 6x6 covariance matrix
The orientation parameters use a fixed-axis representation.
In order, the parameters are:
(x, y, z, rotation about X axis, rotation about Y axis, rotation about Z axis)
float64[36] covariance
2.3 ROS坐标系定义
ROS中的坐标系定义符合REP:105标准。
2.3.1 base_link坐标系
base_link坐标系固连于移动机器人平台,其可以被安装于机器人上的任意位置作为机器人位姿的参考,base_link常备肠胃载体坐标系,其坐标轴定义满足REP:103标准,即与2.2.1 载体坐标系坐标轴定义中规定的相同。
2.3.2 odom坐标系
odom坐标系固定于世界坐标系中,odom坐标系坐标系中的机器人位姿是连续的,但可能会随时间漂移,常用于来自里程计(轮速里程计、激光里程计、视觉里程计等)的位姿表示的表示;
odom坐标系原点通常设为机器人的运动起始点,机器人的位姿通常是相对于odom来描述的。
2.3.3 map坐标系
map坐标系固定于世界坐标系中,Z轴向上,map坐标系中的机器人位姿不会随时间漂移,但可能是不连续的;
map坐标系可以在机器人所在的环境中随意指定一个点作为map坐标系原点,规定其具体的朝向;
map坐标系可以和odom坐标系重合,也可以不重合,取决于实际需要。
注意:map坐标系中的位姿虽然没有漂移,但在局部范围内可能会有离散的突变,导致其在传感器帧间的时间维度上不一定准确;
而odom坐标系中的位姿在在传感器帧间的时间维度上是准确的,在局部范围内也是连续的,但却会存在全局坐标上的漂移
2.3.3 earth坐标系
earth坐标系即为1.1 ECEF坐标系,分布在不同地方的机器人存在于各自的map坐标系下,通过计算各个map坐标系在earth坐标系下的位姿,即可把世界上各个地方的机器人统一到一个坐标系(earth坐标系)下。
对于多机器人系统的tf树通常为: