zoukankan      html  css  js  c++  java
  • 机器人学——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 轴方向。

  • 相关阅读:
    CodeForces Gym 100935G Board Game DFS
    CodeForces 493D Vasya and Chess 简单博弈
    CodeForces Gym 100935D Enormous Carpet 快速幂取模
    CodeForces Gym 100935E Pairs
    CodeForces Gym 100935C OCR (水
    CodeForces Gym 100935B Weird Cryptography
    HDU-敌兵布阵
    HDU-Minimum Inversion Number(最小逆序数)
    七月馒头
    非常可乐
  • 原文地址:https://www.cnblogs.com/thewaytotheway/p/12847249.html
Copyright © 2011-2022 走看看