系列文章目录
前言
在机器人学中,零倾力矩点(ZMP)是一个特征点,主要用于足式运动。在下文的一些假设中,我们将看到,它非正式地代表了一个系统接触反作用力的结果点。例如,下图中的刚体处于静态平衡,当且仅当其 ZMP 位于质心的垂直位置时。
一、定义
从形式上讲,ZMP 指的是空间中相对于一个平面(通常是地平面)抵消接触力矩的点的集合。这个集合实际上是一个轴,而不是一个点,但为了方便起见,让我们按照传统的推导方法来计算地面平面上的 ZMP。这一推导从任何多刚体系统的牛顿-欧拉运动方程开始:
其中, 为机器人的总质量, 为重力矢量, 为系统的重心, 为加速度, 为固定点 的角动量变化率。在右侧, 表示净接触扭矩,即施加到机器人上的所有接触扭矩之和,坐标取自质心 (COM) 。
定义多体系统的重力惯性扭矩,它只取决于加速度:
牛顿-欧拉方程可以用螺杆代数的扭矩形式写出::ZMP 是属于非中心轴的点 ,其定义如下:
其中 表示非倾斜表面(通常指在平地上行走时的地面)的法向量。这个等式的左侧可以根据另一点上的力矩进行改写:
通过展开向量三重乘积。我们暂且假设 和 位于 的法线的同一平面上,因此 。然后,将上面的表达式注入 ZMP 的定义中,得到
这个公式在实践中用于计算力传感器或惯性测量单元的 ZMP,这些传感器或惯性测量单元通常嵌入在当前的足式机器人中。在某些情况下,ZMP 也可称为零力矩点(zero moment points),例如在足式运动中,当角动量在质量中心保持恒定,因此 。但是,请记住,如果没有这样的假设,在 ZMP 上的接触力净力矩只能在其三个坐标中的两个坐标上抵消。
二、压力中心
压力中心(COP)是定义在两个接触物体之间的一个动态点。与根据多体系统加速度定义的 ZMP 不同,COP 是根据接触面上的相互作用力定义的局部量。当机器人与环境单接触或在平地上行走时,这两种不同的方法会得出相同的结果(Sardain 和 Bessonnet,2004 年)。
让我们考虑机器人的一只脚接触平面的情况:
环境通过表面对机器人施加的接触力 可分解为两个项的总和:
- 合压力 ,
- 合摩擦力 ,与接触面相切 。
这两个力是通过接触面 的所有元素 施加的无穷小力的总和。用 表示在任意点 上施加的压力:
压力始终是一个正量,因为脚无法穿透地面。因此,始终存在一个压力中心 ,即压力力矩消失的点,因此可以将 视为 "施加在 处"。其坐标如下
由于 和 两点都属于同一法线 平面,因此我们得到
同时,摩擦力与接触面相切、 因此它们的力矩与 一致。因此,上述关系可以等价地写成
在这里,我们可以看到与用于定义 ZMP 的公式相同的公式,只不过现在是应用于(局部的)接触扭矩,而不是(全局的)重力惯性扭矩。现在,还记得牛顿-欧拉方程中的 吗?你就知道为什么只有一个接触点时 COP 和 ZMP 会重合了(Sardain et Bessonnet, 2004)。
上图表示 COM 、COP 和沿着(非中心)重力惯性轴 的 ZMP 。后者不一定包含 ,除非系统的角动量守恒()。角动量守恒是上世纪 90 年代和 00 年代大多数双足运动研究的共同假设(Kajita et Tani,1991 年)。
三、支撑区域
只要保持接触,COP 就会位于接触面 的内部。事实上,接触力矩可以写成
这样,上面的 COP 公式就变成了
因此,可以将 COP 视为地面接触点的平均值,并根据各自的压力进行加权。当它越过 的边界时,接触就会中断,并开始绕 区域的相应边缘旋转。为了避免这种结果,足式机器人必须确保其 COP 保持在该区域内,该区域被称为 "支撑区域"。条件 就是非倾斜接触条件。
3.1 与平面的多重接触
在所有接触点都与同一平面接触的特殊情况下,支撑区域 成为所有接触点的凸壳。事实上,同一平面可用于定义上述的 COP 和 ZMP,积分公式显示 也是不倾斜的必要条件。这就得出了双足运动中使用的著名标准:
非倾斜接触条件:在双足行走过程中,ZMP位于定义为地面接触点凸壳的支撑区域 内。
这一标准经常用于生成行走轨迹,例如(Kajita 等人,2003 年)和(Wieber,2006 年)。需要注意的是,这是接触稳定性的必要条件,但不是充分条件,因为它缺乏非滑动的补充条件(详见本文第二节)。
四、更进一步
尽管零倾覆力矩点已被应用于平衡足式机器人,但它通常是任何扭矩的一个特征点。在平衡过程中,我们通常会控制净接触扭矩的 ZMP,即使在有外力的情况下也能得出该值。您可以使用这个 Docker 镜像查看人形机器人控制器的 ZMP 是如何表现的,从而建立直觉。
ZMP 支持区域可扩展到多接触场景,即脚或手与不同非共面接触的场景。不过,其二维性质使其在多接触运动中受到了一些限制。因此,在后来的行走轨迹生成器中,它们被扩展到了 COM 加速度的三维锥体。