刚体位姿描述与坐标变换

目录

前言

一. 刚体位姿描述

1. 符号约定

2. 位姿描述

二、坐标变换

1. 坐标平移

2.坐标旋转

3.一般变换


前言

机器人一般由一系列连杆与运动副组合而成的的空间机构,通过驱动主动构件来实现确定的复杂运动。因此想要研究和控制机器人,第一步就应该学习机器人连杆间,以及连杆和操作对象(工件/工具)间的运动关系。首先,要明白的是刚体的位置(position)和姿态(orientation)统称为刚体的位姿(location)。描述位姿的方法有很多,本文用齐次变换方法来描述刚体位姿。(需要一些线性代数的知识储备)

一. 刚体位姿描述

1. 符号约定

因为机器人连杆构成的系统通常不是一个平面,而且涉及到刚体与刚体之间的关系,那么一个坐标系可能并不适用,为了描述清楚位姿特引入了一系列符号来解决这些问题。

①大写字母变量表述矢量或矩阵,小写字母变量表示标量;

②左标与上标代表了变量所在坐标系,_{}^{A}\textrm{p}表示坐标系\left \{ A \right \}中的位置矢量,_{B}^{A}\textrm{R}是确定坐标系\left \{ A \right \}\left \{ B \right \}相对位置关系的旋转矩阵;

③右上标用来表示矩阵的逆(-1)或转置(T),这在数学中已广泛应用;

④由于描述位置关系时三角函数使用较多,可以进行一定简化,比如角\theta _{1}的余弦可以表示为cos\theta _{1}=c\theta _{1}=c_{1}中任意一种;

⑤矢量可以用列矢量表示,那么行矢量转置可以直接表示列矢量。

2. 位姿描述

前面讲了很多,那么如何来描述一个空间中刚体的位置与姿态(位姿)呢?

常用方法就是在机器人的基座建立固定坐标系\left \{ A \right \},在运动刚体上某点建立运动坐标系\left \{ B \right \},通过描述运动坐标系固定坐标系下的位置点与姿态角描述运动刚体的位姿。

描述运动坐标系的位置:上图中运动坐标系\left \{ B \right \}的原点B_{0}相对于固定坐标系的坐标为_{}^{A}\textrm{P}_{B_{0}}=[p_{x} \ p_{y} \ p_{z}]^{T},这个原点可以建立在刚体质心或者几何中心,当然也可以建立在容易描述相对关系的一个点上。

运动坐标轴的方向(姿态):当运动坐标系旋转一个角度后如何描述呢?这时就引入了旋转矩阵_{B}^{A}\textrm{R},这是一个描述运动坐标系\left \{ B \right \}三个坐标轴在固定坐标系\left \{ A \right \}的方向余弦所组成3*3的矩阵。简单来讲,就是刚体B相对于\left \{ A \right \}坐标系的方位:

_{B}^{A}\textrm{R}=[^{A}\textrm{x}_{B} \ ^{A}\textrm{y}_{B} \ ^{A}\textrm{z}_{B}]

或可写为:

_{B}^{A}\textrm{R}=\begin{bmatrix} \textrm{r}_{11} & \textrm{r}_{12} & \textrm{r}_{13}\\ \textrm{r}_{12} & \textrm{r}_{22} &\textrm{r}_{23} \\ \textrm{r}_{13} & \textrm{r}_{32} &\textrm{r}_{33} \end{bmatrix}

式中:_{B}^{A}\textrm{R}称为旋转矩阵,上标A代表了固定坐标系\left \{ A \right \},下标B代表运动坐标系\left \{ B \right \}^{A}\textrm{x}_{B} \ ^{A}\textrm{y}_{B} \ ^{A}\textrm{z}_{B}分别为B坐标系中三个单位主矢量在A坐标系下的表达,因此单位主矢量两两垂直,满足正交条件

^{A}\textrm{x}_{B}\cdot ^{A}\textrm{x}_{B}=^{A}\textrm{y}_{B}\cdot ^{A}\textrm{y}_{B}=^{A}\textrm{z}_{B}\cdot ^{A}\textrm{z}_{B}=1

^{A}\textrm{x}_{B}\cdot ^{A}\textrm{y}_{B}=^{A}\textrm{y}_{B}\cdot ^{A}\textrm{z}_{B}=^{A}\textrm{z}_{B}\cdot ^{A}\textrm{x}_{B}=0

因此旋转矩阵_{B}^{A}\textrm{R}正交,满足:

\left\{\begin{matrix} _{B}^{A}\textrm{R}^{-1}=_{B}^{A}\textrm{R}^{T}\\ det(_{B}^{A}\textrm{R})=1\end{matrix}\right.

式中:det代表矩阵的行列式。


了解了什么是旋转矩阵,那我们就以最简单的\left \{ B \right \}坐标系绕\left \{ A \right \}三主轴旋转的例子,来说明旋转矩阵具体怎么来写。

①比如第一个例子,绕X轴旋转了一个角度\theta

此时\left \{ B \right \}的X轴与\left \{ A \right \}的X轴重合,也就是X_{B}X_{A}同向,所以第一个列向量^{A}\textrm{x}_{B}=[1 \ 0\ 0]^{T};

Y_{B}Y_{A}Z_{A}平面上,所以Y_{B}X_{A}轴上为0,在Y_{A}Z_{A}上分别为c\thetas\theta,所以第二个列向量^{A}\textrm{y}_{B}=[0 \ c\theta \ s\theta]^{T};

Z_{B}也在Y_{A}Z_{A}平面上,和上一个分析同理(反方向为负号),第三个列向量为^{A}\textrm{z}_{B}=[0 \ -s\theta \ c\theta]^{T}

因此完整的旋转矩阵为:

_{B}^{A}\textrm{R}=\begin{bmatrix} 1 & 0 & 0\\ 0 & c\theta &-s\theta \\ 0 & s\theta &c\theta \end{bmatrix}

和上述分析同理绕Y轴②:

_{B}^{A}\textrm{R}=\begin{bmatrix} c\theta & 0 & s\theta\\ 0 & 1 &0 \\ -s\theta & 0 &c\theta \end{bmatrix}

绕Z轴③:

_{B}^{A}\textrm{R}=\begin{bmatrix} c\theta& -s\theta & 0\\ s\theta & c\theta &0 \\ 0 & 0 &1 \end{bmatrix}

综上刚体位姿描述总结为:

位置描述:

_{}^{A}\textrm{P}_{B_{0}}=[p_{x} \ p_{y} \ p_{z}]^{T}

姿态描述:

_{B}^{A}\textrm{R}=[^{A}\textrm{x}_{B} \ ^{A}\textrm{y}_{B} \ ^{A}\textrm{z}_{B}] =\begin{bmatrix} \textrm{r}_{11} & \textrm{r}_{12} & \textrm{r}_{13}\\ \textrm{r}_{12} & \textrm{r}_{22} &\textrm{r}_{23} \\ \textrm{r}_{13} & \textrm{r}_{32} &\textrm{r}_{33} \end{bmatrix}

刚体位姿描述:

\left \{ _{B}^{A}R \ ^{A}P_{B_{0}} \right \}

二、坐标变换

空间的任意一点p在不同坐标系中描述不同,那么这一点从一个坐标系到另一个坐标系描述之间的映射关系,就叫做坐标变换。

1. 坐标平移

设坐标系\left \{ B \right \}\left \{ A \right \}具有相同的方位,但是\left \{ B \right \}的坐标原点与\left \{ A \right \}的不重合,已知的是^{B}\textrm{P}^{A}\textrm{P}_{B_{0}},求^{A}\textrm{P}

可以利用矢量加法的方式(要求的是绿色虚线矢量),即:

^{A}\textrm{P}=^{B}\textrm{P}+^{A}\textrm{P}_{B_{0}}

2.坐标旋转

设坐标系\left \{ B \right \}\left \{ A \right \}有共同的坐标原点,但是两者的姿态不同,如上图所示。假设已知p\left \{ B \right \}坐标系的表示为:_{}^{B}\textrm{P}=[^{B}\textrm{}p_{x} \ ^{B}p_{y} \ ^{B}p_{z}]^{T},我们可以利用这一点在\left \{ B \right \}三个轴的分量投影到\left \{ A \right \}坐标系中的三轴描述,具体为:

如果对这个矩阵进行变换,成为矩阵相乘的形式:

可以得到等式的右边其实就是用旋转矩阵_{B}^{A}\textrm{R}乘以了_{}^{B}\textrm{P},因此我们可以得到:

^{A}\textrm{P}=_{B}^{A}\textrm{R}\cdot ^{B}\textrm{P}

因此旋转矩阵_{B}^{A}\textrm{R}有两重的意义:

①坐标系\left \{ B \right \}相对于\left \{ A \right \}的姿态矩阵;

②坐标系\left \{ B \right \}\left \{ A \right \}之间的坐标旋转矩阵。

3.一般变换

最一般的情况就是坐标系\left \{ B \right \}\left \{ A \right \}不但原点不重合,而且姿态也不相同。我们用位置矢量^{A}\textrm{P}_{B_{0}}描述\left \{ B \right \}的坐标原点相对于\left \{ A \right \}系的位置,如上图所示:用旋转矩阵_{B}^{A}\textrm{R}描述\left \{ B \right \}相对于\left \{ A \right \}的姿态。那么任一点p在两坐标系中的描述^{A}\textrm{P}^{B}\textrm{P}具有以下变换关系:

^{A}\textrm{P}=_{B}^{A}\textrm{R}\cdot ^{B}\textrm{P}+^{A}\textrm{P}_{B_{0}}

上式可以看作坐标平移与旋转的复合变换。我们可以先设置一个中间坐标系\left \{ C \right \},让其与\left \{ B \right \}原点重合,与\left \{ A \right \}方位相同。所以这个一般变化就拆为两步:

p点在\left \{ B \right \}系下到\left \{ C \right \}系下的变换(旋转):

^{C}\textrm{P}=_{B}^{C}\textrm{R}\cdot ^{B}\textrm{P}=_{B}^{A}\textrm{R}\cdot ^{B}\textrm{P}

p点在\left \{ C \right \}系下到\left \{ A \right \}系下的变换(平移):

^{A}\textrm{P}=^{C}\textrm{P}+^{A}\textrm{P}_{C_{0}}=^{C}\textrm{P}+^{A}\textrm{P}_{B_{0}}

综上,坐标变化可以总结为:


声明:本文以学习燕山大学-机器人技术课程资料和熊有伦院士《机器人学 建模、控制与视觉》一书所写,主要用于共同学习~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

枫叶机关录

您的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值