本帖最后由 零落 于 2021-1-21 15:08 编辑
几十年来,两足机器人的运动一直是诸多研究者关注的焦点。伴随着大量的计算机虚拟仿真和实物样机研究,研究者们构建了各种双足步态规划与控制理论,研究内容横跨最简单的双足平面机构和各大商业公司构建的复杂人形机器人。不管它们的具体结构和不同数目的自由度 (Degrees Of Freedom,DoFs) 数,这些双足机器人系统的共同特性有:(1) 在遭受强力扰动时,整个系统可能会绕支撑脚的边沿旋转进而摔倒,等同于其系统内部具有某种被动特性。(2) 行走时大致进行周期运动,在行走平稳时每一步的行走状态类似。(3) 行走时在左脚支撑、双足支撑、右脚支撑之间有规律地切换。在行走过程中,两种不同的情况依次出现:机构同时双脚支撑的静态稳定双支撑阶段和单腿支撑的静态不稳定单支撑阶段。单支撑阶段时机器人只有一只脚与地面接触,而另一只脚从身体后方转移到身体前方。因此,机器人系统的运动机构在单次步行循环中从开放式运动链改变为封闭式运动链,在对机器人进行运动规划时则需要考虑这些情况。双足机器人行走时脚掌与地面接触,脚掌与地面的接触状态是不能直接通过电机等 驱动机构来控制的,但是通过控制机器人身体运行合适的运动轨迹,可以间接控制脚掌与地面的接触状态,进而实现稳定的行走。为此需要建立一些指标来衡量脚掌与地面之间的作用力,零力矩点 (Zero-Moment Point, ZMP) 就是其中一个重要的指标。诸多学者构建了基于 ZMP 的双足步态规划与控制方法。
接下来发表的内容,将简单介绍实现双足步行需要的理论基础,带各位好奇的读者一窥双足行走的奥秘。 机器人系统的运动主要有两个方面的描述方式:动力学和运动学。动力学的描述是更普遍的,因为其描述中引入了系统各部件的动量、互相的作用力和各自的能量,一般用微分方程来描述系统的动力学。运动学的描述则更简单,因为其只描述物体位置与时间相关的变量,在物体做匀加速运动时,一般用位置、初速度、末速度、加速度、时间五个变量来描述物体的运动学方程。物体的运动又分类为平移、旋转、振荡等,或者其中 数种的组合。本节中我们将用运动学的方式,来描述机器人系统各部件的平移和旋转运动。
1、坐标系 人形机器人的控制系统中,为了精确描述各连杆部件的位置,首先需要建立一个全 局坐标系。为了符合惯例,一般建立右手系的坐标系,即x轴指向前方,y轴指向右方,z轴指向上方,坐标系原点则可以位于机器人双脚的中间位置,如图1所示。
图1 世界坐标系 手系是建立坐标系时需要注意的概念。让食指自然前伸,拇指侧伸与食指垂直,中指弯曲与食指垂直,则食指、拇指和中指构成两两垂直的个坐标系轴,拇指为轴,食指为轴,中指为轴。左手和右手分别做该动作时,建立的坐标系是不同的。机器人 控制领域,广泛使用右手系建立坐标系。不同手系的坐标系示意如图2
图2 左手系与右手系 记建立的全局坐标系为Σw, 以此坐标系可以描述机器人各连杆及其周边物体的位置。通过检测周边环境,机器人即可在全局坐标系中完成物体抓取绕开障碍物等任务。为了控制机器人各个部件的运动,不仅需要建立全局坐标系。当要控制个机械臂前伸到空间中某个具体的点时,需要找到位千机械臂末端上的具体的点作为控制对象。机器人运动学控制的普遍做法是在各个连杆部件建立局部坐标系,局部坐标系随各连杆 的运动而运送。当各个局部坐标系之间的相对关系是已知的,或者可检测计算的,则机械臂末端点在全局坐标系下的位置也是可得到的。进而可以根据机械臂末端点在全局坐标系中的实际位置和想要其到达的预期位置,来控制机械臂的运动。如图3 以机械臂 为例示意控制其运动时需要建立的各个坐标系。
图3 局部坐标系 2、齐次变换矩阵 物体在全局坐标系中的位置,可以用个位置矢 来描述。空间中的物体还会有不同的朝向,描述物体朝向时,需要先在物体上固定一个坐标系,根据该坐标系与全局坐标 系的朝向的偏差,来描述物体在全局坐标系中的朝向。物体的朝向也称为姿态描述,位置矢量p和姿态描述合称R为物体的位姿。 如图4所示,物体位千全局坐标系Oxyz 中,在物体上固定坐标系Ouvw 。三维的位置矢量是3x1的列向量。而坐标系Ouvw与坐标系 Oxyz 的朝向偏差则有多种描述方式,比如欧拉角、四元数和旋转矩阵,不同的描述方式之间可以相互转换,本节只讲 解旋转矩阵的描述方式。
图4 坐标系的朝向偏差 考虑某个点,其在某坐标系中的位姿是已知的,在另一个坐标系中的位姿是未知的。如果两个坐标系的相对位置和相对姿态是已知的,则可以通过坐标变换,可以直接得到点在另一个坐标系下的位姿。在机器人运动学中,我们主要关心坐标变换中的平移和旋转变换。进行平移变换时,只需要直接对位置矢量进行矢量相加即可,旋转变换则较为复杂。 设图4 中点在坐标系Oxyz 和坐标系 Ouvw中的位置矢量分别为
式(1)
则有关系式:
式(2)
其中R就为坐标系Ouvw与坐标系Oxyz朝向偏差的旋转矩阵。 假如有两个原点重合、朝向不同的坐标系,可以认为是个坐标系依次绕其 x,y和z坐标轴旋转一定角度得到的。假如只绕坐标系Oxyz 的OZ 轴旋转θ角,则两个坐标系的旋转矩阵如下。
式(3)
只绕 OX、OY 轴转动角的旋转矩阵分别为
式(4) 由只绕某个轴旋转的基本旋转矩阵相乘,可以得到复合的旋转变化,效果相当于原坐标系绕其坐标轴进行了多次不同的旋转如式如式(5)
式(5)
为了同时描述旋转和平移变换,还需要引入齐次变换矩阵。齐次变换矩阵既可以表述某点本身在空间中的位置和姿态,也可以表述不同坐标系之间的坐标变化。齐次变换矩阵是 4x4 的矩阵,形式如下所示。当不进行透视变换和比例变换时,把透视变换的行向量置为 0, 把比例因子置为即可。
式(6)
使用齐次变换矩阵进行坐标变换示例如下,其中Poo,为两个坐标系原点构成的位置矢Roo,为两个坐标系朝向偏的旋转矩阵。
式(7)
3、链乘法则 假设有N个坐标系,每两个相邻坐标系 Σi和Σi+1之间的齐次变换矩阵都是已知的, 为iTi+1 ,则依次进行如上的齐次变换,则有:
式(8)
其中TN为在最初始端坐标系中表示的第N个坐标系的齐次变换矩阵。在机器人运动学中,一般最初始端坐标系为全局坐标系,最末端坐标系为运动链末端点坐标系,如机器人手掌、脚掌、机械臂的手爪等。上述齐次变换矩阵依次相乘的计算方法被称为坐标变换的链乘法则。链乘法则使得具有多个关节的机器人的运动学计算简便化。
如图5的12自由度双足机器人,给机器人各连杆编号如图 (a) 所示。可以观察到该机器人鹘关节三个关节转动轴相交于一个点,踝关节两个转动轴相交于一个点,这样设计能使机器人运动学的计算变得简便。为了定义各个连杆的位姿,需要给每个连杆设定局部坐标系。机器人每条腿有6个自由度,于是每条腿设置6个局部坐标系。其中三个设置于鹘关节转动轴交点,一个设置于膝关节转轴,两个设置于踝关节转轴,且局部坐标系的各个坐标轴都和全局坐标系的坐标轴平行。
图5 机器人运动学模型
有了机器人模型之后,还需要根据模型求取各个局部坐标系之间的其次变换矩阵。如各个局部坐标系的坐标轴是互相平行的,则机器人初始状态下相邻坐标系之间的旋转矩阵为单位阵:
式(9)
在关节转动时,每个连杆上附着的局部坐标系也会跟着转动。定义描述相邻局部坐标系之间关系的关节轴矢量aj和相对位置矢量bj。关节轴矢量是描述第i个连杆相对于其母连杆转动的转动轴的单位矢量,如图6中a5=a11=[0 1 0]T。相对位置矢量是描述第i个连杆的局部坐标系原点在其母连杆局部坐标系中的位置,其值的大小和机器人的结构设计参数有关。
图6 关节轴矢量和相对位置矢量 不同于传统的DH法描述的机器人运动学模型,基于关节轴矢量和相对位置矢量的描述方法非常简便且强大。本节直接介绍基于该方法的齐次变换矩阵的计算方法,进行机器人的正运动学求解。考虑原点附着于第i个关节转动轴上,随第个i连杆运动的局部坐标系Σj,当关节i的转动角度为0时,Σj在母连杆局部坐标系Σi下的姿态矩阵为单位阵 E。当关节转动角度为qj时,Σj相对于母连杆的齐次变换矩阵可以直接求出:
式(10)
其中在关节轴矢量上加帽子符号表示由三维矢量导出其对应的斜对称矩阵,具体为:
式(11)
把斜对称矩阵放在自然对数e的指数位置,表示矩阵指数。矩阵指数可以用罗德里格斯旋转公式来简化计算【】,其表示把角速度矢量直接转化为旋转矩阵的操作,具体为:
式(12)
得到Σj相对于母连杆的齐次变换矩阵之后,假如母连杆局部坐标系Σj相对于全局坐标系中的位置Pi和姿态Ri的已知,则其齐次变换矩阵为:
式(13) 根据链乘法则,Σj相对于全局坐标系的齐次变换矩阵可以直接得到:
式(14) Σj相对于全局坐标系得位置和姿态可得:
式(15)
如果机器人在某个姿态下,有一个连杆相对千全局坐标系的位置是已知的,则通过 以上公式可以依次计算出其他机器人其他连杆在全局坐标系下的位置,这就是机器人的 正运动学计算。在双足行走过程中,一 般假定支撑脚脚掌在地面的位置是已知的,以此来进行全身的正运动学求解。 |