ROS知识课堂-9.ROS中的坐标表现方式

坐标轴的定义

三维坐标轴朝向定义

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

右手坐标2.png

右手坐标系定义

把右手放在原点的位置,使大姆指,食指和中指互成直角,把大姆指指向Z轴的正方向,食指指向X轴的正方向时向时,中指所指的方向就是Y轴的正方向。

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

X->朝前

Y->朝左

Z->朝上

举例:

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

三维坐标轴旋转定义

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

右手法则3.png

绕坐标轴旋转定义

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

一般来说:

Z轴旋转,称之为航向角,使用yaw表示;

X轴旋转,称之为横滚角,使用roll表示;

Y轴旋转,称之为俯仰角,使用pitch表示;

举例:

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

如图左侧所示,

右手定则.png

ROS中的旋转轴使用x,y和z轴。

正面是x轴的正方向,轴是红色(R)

左边是y轴的正方向,轴用绿色(G)表示。

最后,上方是z轴的正方向,轴用蓝色(B)表示。

为了便于记忆,您可以将x轴视为食指,将y轴视为中指,将z轴视为拇指。顺序是x、y、z,且颜色是RGB颜色顺序

机器人的旋转方向是右手定则,用右手卷住的方向是正(+)方向。例如,如果机器人在原地从12点钟方向开始向9点方向旋转(逆时针),则由于旋转角度的单位用弧度,所以我们说机器人在z轴上旋转+1.5708弧度。

这种坐标表示法在ROS编程中经常使用,必须以x:forward,y:left,z:up的形式进行编程。

    关键词:ROS知识课堂