对于此系统,反推运动学方程可以告诉我们:对于给定的(α, , γ, x, y, z),可以知道执行器的长度(l1, l2, l3, l4, l5, l6)是多少,还可以知道姿态(P)。前向方程用于计算姿态P,用执行器的脚长度I表示。前向运动方程是封闭的方程组,传统计算方法是不可解的。但是,可以通过使用牛顿迭代法来解此前向方程,下文将作讨论。
为了解此系统的反向运动方程,必须确定平台种类以及执行器汇聚点的位置,因为脚长就是点与点之间的距离。平台执行器所处位置用基点坐标系表示如下:

上述等式的下标表明了向量的参考坐标系。这里,点的位置实际上是齐次坐标,以(x, y, z, w) 或者 (x/w, y/w, z/w)的形式表述,为了简化讨论,这里的w我们可以令其等于1。R是变换矩阵,可以将平台点(Ppi)也就是平台系数转换成(Bpi),也就是基座系数。R是3×4的矩阵,包括3×3的旋转矩阵和3×1的平移矩阵。

在R等式中,“s”代表正弦函数;“c”代表余弦函数。上述等式中的旋转矩阵是单位矩阵,用来变换roll、pitch和yaw三个向量的方向。平移矩阵就是一个简单的向量。由于(Bbi)的值是已知的,所以一旦知道了(Bpi)的值,就可以通过计算两点的距离得到脚的长度。

上面的等式实际上很简单,但是由于引入了矩阵理论,所以有很多项。下面是最终的反向运动方程(对于脚“i”)。

此系统的前向运动学方程相对复杂一些,由于处理上的要求,前向方程也不容易解。这里,比直接解方程更好的方法是使用迭代法,初始估计值代入方程、更新,然后重复,直到估计值的误差小于某一限定值。具体的计算方法在此就不再赘述,此方法对于以下的过程都可以通用。此方法是前文提及的牛顿迭代法的推广。关于此方法有很多相关文章,本文在此着重讨论前向运动方程的应用。第一步是估计初始姿态K,或者换种说法,估计(α , , γ, x, y, z)的值。对于一个运动控制器,初始估计值通常是(α , , γ, x, y, z)的受控位置。从此估计值,反推运动学方程,可以计算出执行器的长度,称之为 (g1, g2, g3, g4, g5, g6) ,或者以向量的形式写成g.,数学表达式如下:g = I(k)。
然后,基于估计值算出的长度与来自反馈设备的实际长度I相比较,得到“估值误差”e,可以写成e = g – l。如果估值误差小于某一个限定值,那么此过程就此结束。如果估值误差不小于这个限定值,那么,就需要一个更好的估计值。这个过程一直重复,直到估计值足够完美(此时,这个估计值就被作为方程的解!)为了理解如何从数学上确定一个“更好的估计值”,首先考虑下面这个简单的微积分学例子。假设我们有一个通用函数y = f(x),f是非线性的。如果我们要计算由x的变化所导致的y的变化,下面的等式有效:

现在,如果我们考察一小段f(x)的变化区间,我们可以将这个区间近似成线性关系,有如下等式:

上面的等式在基础微积分学通常被称为斜率局部逼近,可以写成下面的形式:

如果前面的表达式再重写一次,我们可以得到以x变化量为参数的等式:

现在,让我们将同样的思想,应用到这个等式上。考虑到我们有一个非线性函数g=I(k),用于确定基于估计方位(k)和 估计脚长度(g)。从设备反馈,我们也知道脚的实际长度(I)。我们的估值误差就是e=g-l,,目标是如果估值误差不符合要求就为方位(k*)从新确定一个估计值。然后重复使用上面的方法:

上面的等式看起来很熟悉,它基本上就是我们在之前的简单微积分例子中展示的方程。我们可以简单地再一次重写这个方程,以得到方位 (k*)的新估值表达式:

矩阵dI(k)/dk就是我们所说的Jacobian矩阵。在将Jacobian矩阵应用于我们的上述等式之前必须先将其翻转,对于六阶矩阵就需要6×6求逆矩阵,这是一个复杂的数学推导。一旦姿态的新估计值计算出来,这个过程就可以再次重复,直到误差(e = g – l) 小于某个可以接受的级别。
如果反向运动方程已知,如下就是通用前向运动方程的推导步骤:
1.估计平台的初始姿态(k)。对于运动控制器,这通常就是初始受控姿态。
2.基于估计值,计算脚长度,使用反向运动方程(g=I(k))。
3.通过将此脚长度与从编码器获得的当前实际脚长度进行比较得到(e = g – l),如果误差大小小于某个限制,此算法就将当前值收敛于k,并且跳到第6步,如果误差超过此限制,继续第4步。
4.使用反向Jacobian矩阵产生新的估计值 (k*=k-inv(dI(k)/dk)*e)。
5.用第4步的结果更新估计值。
6.从第2步重新开始迭代。
这个算法并不仅仅适用于六自由度系统,只要反向运动方程已知,它就可以用于推导任何系统的前向方程(有收敛解的系统)。
总结
一个强壮的控制机器人系统的方法的关键就是运动方程,这些方程不仅仅描述了系统的几何结构,他们也使得具有足够处理能力和速度的现代运动控制器,能够完成必要的计算,以提供对系统的平滑运动控制。运动方程通常在实时领域可以直接求解,然而,对于一些复杂系统,直接求解无法实现,可以采用一些算法 ,进行求解。高性能的现代控制器提供了特定的结构,可以在控制系统内固化这些等式 ,为很多领域提供了开发机器人系统的可能性。