MIT Cheetah运动学建模主要是为了获得机器人运动过程中,腿部末端运动状态和关节运动状态之间的关系。你可以在源代码的legController和Quadruped两个类中找到相关运动学的模型,在此只给出推导过程,不分析源代码。

首先我们需要对Cheetah的腿部进行运动学建模,设置各关节的坐标系,如下图所示:

上图中左边是cheetah的本体坐标系及各腿部基坐标系之间的关系,从图中可以看出,cheetah的运动方向为X方向,垂直方向为Z方向。右图表示对腿部各连杆进行关节坐标系的创建,显示的是cheetah倒立方向的示意图,因此根据上图中腿部各连杆坐标系的关系,可以得到腿部末端的坐标系的变换方程为:

左腿:

[公式]

右腿:

[公式]

用matlab化简上述公式,可以得到:

右腿:

[公式]

左腿:

[公式]

由于同侧前后腿的关节构型一样,而不同侧左右腿只有偏置方向不一样,因此,将左右腿偏置方向用符号变量sd表示(正为右腿,负为左腿),则有通式:

[公式]

从位姿矩阵中取出腿部的位置信息,则有:

[公式]

以上即为腿部末端的正运动学方程。

现对上式中的末端位置信息进行求偏导:

[公式]

[公式]

[公式]

[公式]

[公式]

[公式]

[公式]

[公式]

[公式]

则腿部末端速度可以表示为:

[公式]

因此,腿部末端的速度雅可比矩阵为:

[公式]

以上过程即为legController中关于关于雅可比和位置运动学的公式推导。

有了速度雅可比矩阵,根据腿部末端轨迹规划的笛卡尔空间的速度信息,就可以得到关节角速度信息:

[公式]

从而根据机器人的运动律,可以得到控制过程中腿部的各关节角度为:

[公式]

以上即为腿部运动学的推导过程。

由于腿部的运动一个复杂的过程,因此,将腿部运动分为站立(stance)和摇动(swing)两种运动形式,通过步态调度器GaitScheduler来控制和组合两种运动形式,从而来产生不同的机器人步态,两种运动形式发生在cheetah运动过程中不同时刻。两种运动形式通过调整规划参数,可以形成不同的腿部末端轨迹状态,从而产生不同机器人步态。腿部末端轨迹可以通过B样条曲线或者是贝塞尔曲线来规划,后续会进行步态规划的相关介绍。