机器人学——1.6-双向量表示法

对于关节臂式机器人,一般会在它的末端执行器上固联一个坐标系 {E}{E},如图所示。通常情况下,工具的轴线为坐标系的 zz 轴,并被称为接近向量,记为 a^=(ax,ay,az)hat{a}=(a_x, a_y, a_z)。对于某
些应用来说,定义接近向量比定义欧拉角或横滚-俯仰-偏航角更为方便。
在这里插入图片描述

然而定义出 zz 轴的方向还不足以表示完整坐标我们还需要确定 xx 轴和 yy 轴的方向。为了确定末端执行器的姿态,我们定义一个与接近向量正交的向量,它位于机器人手爪的两个手指之间,被称为姿态向量,记为 o^=(ox,oy,oz)hat{o}=(o_x, o_y, o_z)。有了接近和姿态这两个单位向量,就足以完全确定旋转矩阵了:
R=(nxoxaxnyoyaynzozaz) R=left(egin{array}{ccc}n_x&o_x&a_x\n_y&o_y&a_y\n_z&o_z&a_zend{array} ight)
因为剩下的一列可以根据正交系的概念计算,即 n^=o^×a^hat{n} =hat{o} imes hat{a}
即使两个向量 a^hat{a}o^hat{o} 不是正交的,它们仍然能定义一个平面,而且计算出来的 nn 仍垂直于这个平面。在这种情况下,我们需要用 o^=a^×n^hat{o}'=hat{a} imeshat{n} 来计算一个新的向量值,它仍然在 a^hat{a}o^hat{o} 定义的平面中,只不过与 a^hat{a}n^hat{n} 都正交。

使用工具箱函数,可以执行以下计算:

>> a = [1; 0; 0];
>> o = [0; 1; 0]; 
>> oa2r(o, a)
ans =
     0     0     1
     0     1     0
    -1     0     0

任何两个非平行的向量都足以定义一个坐标系。对于一个摄像头,通常我们取光轴为 zz 轴,摄像头的左侧为 xx 轴。对于移动机器人,通常我们规定重力加速度方向(用加速度计测量)为 zz 轴方向,前进方向(用电子罗盘测量)为 xx 轴方向。

原文地址:https://www.cnblogs.com/thewaytotheway/p/12847249.html