坐标系的位置和方向总称为坐姿
图中的P点可以表示为,运算符“·”表示将一个向量转化成一个新的向量。
相对位姿一个重要的特点就是它们可以被合成或组合,若一个坐标系可以被其它坐标系用相对位姿描述,可记为,即|C|相对于|A|的位姿可由|B|相对于|A|的位姿和|C|相对于|B|的位姿合成得到。运算符“⊕”表示相对位姿的合成。
常用代数运算规则
一个位姿可以有逆位姿。位姿的代数运算规则不遵循交换律
只有当时,才可以互换位置。可以用相对位姿将一个点从一个坐标系中的一个向量转换为另一个坐标系中的另一个向量:
2.1二维空间位姿描述
位姿的具体表示:
描述点通过坐标系旋转从坐标系|B|变换到坐标系|V|:
旋转矩阵,记作
旋转矩阵的属性:标准正交(逆矩阵和转置矩阵相同);行列式为1();
由此性质得出恒等式:
描述各坐标系原点的平移:
t=(x,y)代表坐标系的平移变换,表示坐标系旋转变换
最终P点的坐标向量可以用齐次形式表达为
称为齐次转换矩阵,且代表了相对位姿:
2.2三维空间位姿描述
2.2.1三维空间姿态描述
2.2.1.1正交旋转矩阵
分别绕x,y,z轴旋转θ角后的标准正交旋转矩阵可以表示为:
计算Rx(θ)的函数为:
计算Ry(θ和)Rz(θ)分别用函数roty和rotz
绘制相应坐标系用
绘制旋转动画用
2.2.1.2三角度表示法
旋转顺序分为两种:欧拉式和卡尔丹式。共十二种形式,统称为欧拉角
ZYZ序列的欧拉角表示为
另一种广泛使用的旋转角顺序:横滚-俯仰-偏航角
(指分别绕x轴,y轴,z轴旋转,即专业上的卡尔丹角,也称泰勒-布莱恩角或导航角。可直观描述船舶,飞机和车辆)
2.2.1.3奇异点及万向节锁
万向节锁问题发生在:
ZYZ形式:时
横滚-俯仰-偏航角:时
2.2.1.4双向量表示法
接近向量:
姿态向量:
确定旋转矩阵:
对于一个摄像头,取光轴为z轴,摄像头左侧为x轴
对于移动机器人,规定重力加速度方向为z轴,前进方向为x轴
2.2.1.5绕任意向量旋转
以先前使用过的一个旋转
可以确定如下的角度和向量
theta是旋转角度的大小,v是绕其旋转的向量
使用MATLAB的内部函数eig可以求R的特征值和特征向量:
lambda中的对角线元素是返回的特征值,v中对应的列向量为相应的特征向量
旋转轴是特征值为1所对应的那一列
使用罗德里格斯旋转方程,可以从角度和向量计算相应的旋转矩阵:
2.2.1.6单位四元数
四元数是复数的一种扩展,或叫超复数,记作:
表示为
为了描述坐标系的旋转,我们使用单位四元数
单位四元数可以被看作绕单位向量n旋转了θ角,该旋转与四元数组的关系为
四元数的乘法通过重载乘法运算符调用:
求一个四元数的共轭为
一个四元数乘以它的逆四元数为
或
得出一个四元数,它代表一个无效循环。
一个四元数可以用以下方式转化成一个正交旋转矩阵:
以下函数绘制一个四元数所指方向:
将一个三元向量传递给构造函数,将产生一个纯四元数:
其中的标量为0.使用重载的乘法运算符,一个向量可以被一个四元数旋转:
2.2.2平移与旋转组合
方法:四元数向量对和4×4齐次变换矩阵
1、对于向量-四元数的情况,有
变换:
2、
许多函数可以创建齐次转换,例如:
用如下函数绘制相应坐标系:
提取矩阵T中旋转矩阵部分,可用:
提取平移部分,可用:
本章总结
在这一章中,我们学会了如何在二维和三维世界中表示点和位姿。点由坐标系的坐标向量表示。一个刚体上的一组点可以用一个坐标系描述,而且其组成点可由相对于刚体坐标系的位移表示。任何坐标系相对于另一个坐标系的位置和方向,可用相对位姿g表示。相对位姿可以按顺序组合(合成或复合),并且我们还演示了相对位姿如何进行代数运算的操作方法。一个重要的代数运算法则是运算变量不可交换一相对位姿组合的顺序不可交换。
我们已经在二维和三维的情况下探讨过用正交旋转矩阵表示姿态,并用它的延伸一齐次变换矩阵表示姿态和平移。三维下的旋转微妙且复杂,我们也看过其他表示方法,如欧拉角、横滚-俯仰-偏航角和四元数。这些数学对象中,一些本身就被MATLAB支持,而另外一些需要通过工具箱的函数或类才被支待。
评论(0)
您还未登录,请登录后发表或查看评论