一、ZMP的测量
在一些运动控制算法中,机器人行走时需要对足底ZMP位置进行实时测量。测量ZMP时需要考虑不同的情况,从支撑腿的数目分类可分为单脚支撑的测量场景和多腿支撑的测量场景(除了双足机器人,四足、六足等机器人也可以进行 ZMP 的测量);从测量方案上分类,可分为基于单个多维力/力矩传感器 (FT传感器)的测量和基于多个力传感记录单元 (force sensing register,FSR) 的测量。
首先描述ZMP测量的原理。考虑两个一上一下互相接触的刚体,其中之一与地面接触,如图1 。地面接触力通过下方物体传导至上方物体,此时可以在两个物体之间布置力传感器,测量两个物体之间传导的力和力矩的大小。利用测得的力和力矩的大小,即可计算当前时刻的ZMP位置。
图1 互相接触进行力传导的刚体模型 设在脚掌坐标系中的点Pj(j=1,2,……,N)处,力fi和力矩τi的值已测得,那么绕任意点p=[px,py,pz]的合力矩为
式1 令力矩沿x轴和y轴方向的分量为零,即可求得px,py的位置:
式2 不同的测量方案都是使用该公式来进行ZMP的计算。下面分别介绍基于两种测量方案的单腿支撑场景下的ZMP和单腿ZMP已知时的多腿支撑 ZMP 计算。 1.使用六维力传感器测量单腿 ZMP 对单腿进行ZMP测量时,使用一个六维力传感器即可测量得到ZMP。图2是六维力传感器的工作示意图。商品化的六维力传感器能做到结构紧凑坚固,能承受较大的冲击。
图2 六维力传感器 传感器被安装在机器人足底的安装结构如图3所示。施加于足底的地面作用力通过冲击吸收器和缓冲器传递到传感器上,通过该传感器作用力又传递到机器人踝关节,进而影响机器人躯干的运动。
图3 六维力传感器足部安装结构 六维力传感器测量值包括三维力f=[fx,fy,fz]T和三维力矩τ=[τx,τy,τz]。 从六维力传感器得到数据之后,根据式2计算ZMP位置。当传感器的测量中心正好位于脚掌坐标系的原点正上方时,计算ZMP位置最容易
式3 其中d为图2中六维力传感器到足底的距离。 2.使用多个 FSR 单元测量单腿 ZMP 高精度的六维力传感器体积较大,且价格昂贵。为了使足部结构重量轻巧且节省成本,可以使用多个FSR单元来测量ZMP。FSR单元的主要测量元件是压感电阻,压感电阻会随着受到的正压力而改变阻值,因此相当于一个一维力传感器,可以测量该点的地面作用力的竖直分量 。由于单个FSR单元不能测量脚掌受到的扭矩,所以需要配置多个FSR单元来间接测量总的地面作用力矩。其工作原理示意图和安装结构示意图,分别如图4和图5所示。
图4 FSR单元工作原理示意图
图5 单元安装结构 在传递地面作用力时,每一个FSR 单元都视为点接触,只传递力而不转递力矩,所以仅能测量到z方向的地面作用力的分量。但由于配置了多个FSR单元,且没个FSR单元在脚掌坐标系中的位置已知,所以可以间接计算得到整个脚掌受到的合力矩。式2中,没个测量点仅有z方向的地面作用力分量不为零,其他都为零。可求得 ZMP 为:
式4 3.双腿支撑的ZMP计算 测量得到单脚的ZMP位置之后,即可计算双脚支撑情况下的ZMP 。双足支撑情况下的ZMP计算原理如图6所示。
图6 双足支撑情况下的ZMP 同样根据式2可求得:
式5 其中
式6 分别为左右腿的支撑力和左右腿的ZMP位置。支撑力沿x轴和y轴的分量在计算ZMP时不需要用到,可以不用测出。 二、ZMP与机器人运动 借由介绍ZMP, 我们开始了解机器人运动时的受力情况。通过脚掌传递给机器人的地面作用力,最终会对机器人躯干的运动状态产生影响,而这些影响遵循了哪些物理定律?需要怎样来量化计算?根据牛顿定律可知,受到作用力后物理会产生加速度,进而导致物体速度、位置变化。反过来如果知道位置、速度、加速度等状态信息,也可以推算出物体受到的地面作用力,进而计算出各个时刻的ZMP位置。为了解上述因素背后的作用原理,本节来探讨ZMP与机器人运动的关系。阅读本节时读者需要先大致了解多刚体动力学中的机器人动量、角动量、质心等概念。 1. ZMP 与动量、角动量和质心 假设一个人形机器人在水平地面运动,有一个测量机器可以用近乎上帝视角一般的测量能力,准确地测出某机器人的运动状态(在仿真环境中可以轻松实现)。考虑在某一个瞬间时刻的情况,认为此时机器人各个部件之间没有相对运动,机器人整体视为一个刚体。此时地面作用力绕原点的力矩为
式7 其中p=[px,py,pz]为ZMP 位置,f为等效的地面作用力的竖直分量。根据牛顿运动定律,物体动量的变化率等于物体受到的合外力,则有:
式8 联立式7和式8,消去作用力f和力矩 τ, 可得:
式9 其中
式10 分别为物体的动 、角动 、质心位置和重力加速度。从式9解得ZMP为:
式11 从式11可看出,ZMP位置与机器人质心位置和动量/角动量变化率有关。当机器人静止不动时,其动量/角动量变化率为零,此时ZMP位置等于机器人质心位置。 2. 多刚体系统中的 ZMP 在多刚体系统中,机器人的动量和角动量不能直接测得,但是可以先测得机器人各个连杆部件的速度和角速度,进而计算总的动量和角动量 。现有的各种状态估计方法可以较为准确地测量实体机器人的运动状态,本书不做介绍。
图7 多质点的机器人模型 假定有一个多连杆组成的机器人,其各个部件的运动状态都已测得,如图7所示,则机器人整体绕坐标远点的角动量为