首页> 中国专利> 双脚行走机器人以及双脚行走机器人的着地时机确定方法

双脚行走机器人以及双脚行走机器人的着地时机确定方法

摘要

提供一种确定双脚行走机器人的脚的着地位置和着地时机的方法。该方法使用预先给定的着地时机来解ZMP方程式,该ZMP方程式表示包含只用第一脚站立的第一单腿接地期间和在第一单腿接地期间之后只用第二脚站立的第二单腿接地期间的重心轨迹。由此算出表示第二单腿接地期间内的ZMP位置的第二脚ZMP位置。当算出的第二脚ZMP位置脱离了与第二脚的可着地区域相对应地规定的第二脚ZMP允许区域时,修正着地时机,以使第二脚ZMP位置落入第二脚ZMP允许区域内。

著录项

  • 公开/公告号CN103003031A

    专利类型发明专利

  • 公开/公告日2013-03-27

    原文格式PDF

  • 申请/专利权人 丰田自动车株式会社;

    申请/专利号CN201080068169.0

  • 发明设计人 土井将弘;

    申请日2010-07-22

  • 分类号B25J5/00;B25J13/00;

  • 代理机构北京东方亿思知识产权代理有限责任公司;

  • 代理人柳春雷

  • 地址 日本爱知县

  • 入库时间 2024-02-19 19:02:27

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-07-02

    授权

    授权

  • 2013-04-24

    实质审查的生效 IPC(主分类):B25J5/00 申请日:20100722

    实质审查的生效

  • 2013-03-27

    公开

    公开

说明书

技术领域

本发明涉及双脚行走机器人。

背景技术

双脚行走机器人(Biped Walking Robot)在重复用单脚站立的单腿接 地期间和用双脚站立的双腿接地期间的状态下行走。在单腿接地期间,双 脚行走机器人容易摔倒。双脚行走机器人如果不恰当地决定脚着地位置和 着地时机就会摔倒。以下,在本说明书中,将“不摔倒而行走”记为“稳定地 行走”。此外,为了简便,以下将双脚行走机器人简称为“机器人”。

ZMP方程式常用来确定用于稳定行走的脚的着地位置。如在双脚行走 机器人的技术领域中所熟知,ZMP和ZMP方程式是由Miomir Vukoburatoric在1972年提出的。ZMP是指地面反作用力的压力中心。 ZMP方程式相当于机器人重心的运动方程式。在ZMP方程式中,机器人 重心的加速度被表示为ZMP的函数。

若在预定条件下解ZMP方程式,可算出能够将重心位置(和/或速 度)维持在预定范围内的ZMP位置的时间序列(ZMP轨迹)。将重心位 置(和/或速度)维持在预定范围内即表示稳定地行走。另一方面,由于 ZMP是地面反作用力的压力中心,因此实际的ZMP必定存在于脚接地区 域内(准确来说,ZMP存在于由接地脚形成的支撑多边形内)。即,实际 的ZMP由脚的着地位置和着地时机决定。以实现所算出的ZMP轨迹的方 式决定的脚的着地位置和着地时机原则上保证稳定行走。但是,外扰、计 算误差、或地面的凹凸不平可能会损害稳定行走,因此应注意到由ZMP 方程式得到的脚的着地位置和着地时机并不是严格保证稳定行走的。

在口本专利公开公报特开平05-337849号(专利文献1)和口本专利 公开公报2004-167676号公报(专利文献2)中,公开了基于ZMP方程式 确定着地位置的方法的例子。尤其在专利文献2中公开了将始端和终端的 重心速度作为边界条件解ZMP方程式的方法。

发明内容

以往,在预先规定着地时机后通过解ZMP方程式来计算着地位置。 着地时机表示行走速度,因此预先规定行走速度就相当于规定着地时机。 通常是在以恒定速度行走的这一条件下计算着地位置的。具体来说,将要 关注的区间的始端和终端处的重心位置和/或速度作为边界条件给定,并给 定着地时机(行走速度)来计算满足ZMP方程式的ZMP位置。实现稳定 行走的着地位置以使算出的ZMP位置存在于脚和地面接触的地面内的方 式被规定。着地时机、即行走速度被预先调节以不超过脚动作速度、关节 旋转速度等机构性限制。

如果能够灵活改变着地时机,行走的稳定性就会增加。例如,在由于 外扰等而重心速度(向前的速度)增大了的情况下,如果不向前偏移脚着 地位置而是提前着地时机,能够避免摔倒的可能性就会变高。或者在为了 避开预想不到的障碍物而实时改变着地位置的情况下,通过不仅改变着地 位置还改变着地时机,可增加行走稳定性。但是,据发明人所知,目前还 没有确立在决定着地位置之后在保证行走稳定性的限制下调整着地时机的 技术。本说明书提供恰当地求出双脚行走机器人的着地位置和着地时机的 技术。

本说明书公开的技术之一是提供一种确定双脚行走机器人的脚的着地 位置和着地时机的方法。该方法包括ZMP计算步骤和着地位置确定步 骤。ZMP计算步骤给定预先规定的着地时机(预定着地时机)来解ZMP 方程式,算出下一个单腿接地期间内的第二脚ZMP位置。更详细来说, 在该步骤中,给定重心轨迹的边界条件和第二脚的着地时机来解ZMP方 程式,从而算出第二脚ZMP位置。边界条件是包含双脚行走机器人只用 第一脚站立的第一单腿接地期间和在第一单腿接地期间之后只用第二脚站 立的第二单腿接地期间的重心轨迹的始端和终端的边界条件。边界条件具 体例如是始端的重心位置和速度、以及终端的重心速度。始端可选择当前 时刻。即,始端的重心位置和速度可以是通过传感器测得的当前时刻的重 心位置和速度。在此情况下,第一单腿接地期间相当于当前的单腿接地期 间。着地位置确定步骤确定第二脚的着地位置,以使算出的第二脚ZMP 位置被包含在第二脚和地面的接触区域内。“第一脚”相当于双脚行走机器 人的一只脚,“第二脚”相当于另一只脚。此外,“第一脚”典型的相当于当 前的单腿接地期间内的站立腿,“第二脚”相当于当前的单腿接地期间的摆 动腿。此外,“第二脚”相当于下一个单腿接地期间内的站立腿。

ZMP计算步骤还在所算出的第二脚ZMP位置脱离了与第二脚的可着 地区域相对应地规定的第二脚ZMP允许区域时,修正着地时机,以使第 二脚ZMP位置落入第二脚ZMP允许区域内。

给定重心轨迹的始端和终端的边界条件来解ZMP方程式的技术基础 如上所述例如已记载在专利文献2中,因此拿来做参考。可着地区域如果 是平坦地面,则可基于脚的可动范围来规定。当地面上存在障碍物时,可 着地区域被设定为脚的可动范围中障碍物以外的区域。

上述的方法典型地确定下一步的着地位置和着地时机。在着地时机下 基于ZMP方程式算出的第二脚ZMP位置脱离了第二脚ZMP允许区域的 情况相当于无法确定确保行走稳定性的下一个着地位置的情况。在这种情 况下,即在着地时机无法在可着地区域内确定着地位置的情况下,上述的 方法调整着地时机。例如,当在着地时机无法抑制终端的重心速度时,通 过提前着地时机来修正行走计划以便比重心向前移动更早地向前落脚,从 而能够抑制重心速度。

在上述的方法中,当在着地时机下算出的第二脚ZMP位置在所设定 的第二脚ZMP允许区域内时,直接采用着地时机。即,上述的方法判断 在着地时机能否达到稳定行走,在判断为不能达到时修正着地时机。

在该方法中,使用被变形为具有第一脚ZMP位置和第二脚ZMP位置 作为变量的ZMP方程式。第一脚ZMP位置表示第一单腿接地期间内的 ZMP位置。ZMP方程式是重心轨迹的运动方程式,原本是使用ZMP位置 的函数来表示重心加速度的。通过使用将ZMP位置作为变量的数学表达 式表示重心位置并对该数学表达式进行积分,ZMP方程式被变换成ZMP 的初始位置和终端位置(即第一脚ZMP位置和第二脚ZMP位置)的函 数。该方程式将在实施例中进行详细说明。本说明书公开的方法的ZMP 计算步骤更详细来说包括使用了上述ZMP方程式的下面的第一子步骤和 第二子步骤。

在第一子步骤中,在所述的边界条件和预先规定的初始约束条件下计 算满足ZMP方程式的第一脚ZMP位置和第二脚ZMP位置。在第二子步 骤中,当算出的第二脚ZMP位置脱离了第二脚ZMP允许区域时,修正着 地时机,以使ZMP方程式在将修正第二脚ZMP位置约束在第二脚ZMP 允许区域内的第二脚ZMP约束条件下成立。

变换后的ZMP方程式具有第一脚ZMP位置的x坐标和y坐标、第二 脚ZMP位置的x坐标和y坐标这四个未知数(变量)。另一方面,ZMP 方程式是有关x坐标的等式和有关y坐标的等式的联立方程式。从而需要 两个约束条件来求出四个变量的解。该约束条件相当于初始约束条件。初 始约束条件例如可以是指定第一脚ZMP位置的条件。第一脚相当于当前 站立腿,因此初始约束条件可以是将第一脚ZMP位置规定在当前站立腿 的脚接地面内的条件。

所述的第二脚ZMP约束条件优选将第二脚ZMP位置约束在第二脚 ZMP允许区域的外围边界。第二脚ZMP允许区域的边界相当于确保行走 稳定性的ZMP位置的界限。即,将第二脚ZMP位置约束在第二脚ZMP 允许区域的边界相当于将第二脚ZMP位置规定在可保证稳定的界限上。

第一子步骤和第二子步骤优选还包括以下处理。第一子步骤在算出的 第一脚ZMP位置脱离了被规定在第一脚的接地区域内的第一脚ZMP允许 区域时,在将第一脚ZMP位置约束在第一脚ZMP允许区域内的第一脚 ZMP约束条件下重新计算满足所述ZMP方程式的第一脚ZMP位置和第二 脚ZMP位置。第二子步骤修正着地时机,以使ZMP方程式在第二脚ZMP 约束条件和第一脚ZMP约束条件下成立。

本说明书公开的其他技术提供一种比以往更能稳定地行走的双脚行走 机器人。该双脚行走机器人包括安装有上述的着地位置/着地时机确定算法 的控制器、以及检测障碍物的传感器。控制器基于障碍物的检测结果来确 定第二脚的可着地区域。这样的双脚行走机器人能够根据障碍物的存在实 时改变着地位置和着地时机。该双脚行走机器人根据可着地区域不仅改变 着地位置还改变着地时机,因此能够提高可维持稳定行走的可能性。

本说明书所公开的技术提供高效地确定能够稳定行走的着地位置和着 地时机的技术。

附图说明

图1是双脚行走机器人的模式图;

图2是将ZMP和重心轨迹投影到行走面上的图;

图3是示出ZMP轨迹和重心轨迹的一个例子的图;

图4A是由控制器执行的处理的流程图;

图4B是由控制器执行的处理的流程图(后续);

图5示出了ZMP位置与ZMP允许区域的关系的一个例子;

图6示出了ZMP位置与ZMP允许区域的关系的另一例子;

图7示出了能够减少新的约束条件的数目的一个例子;

图8示出了能够减少新的约束条件的数目的另一例子;

图9是示出由控制器执行的处理的概要的流程图;

图10是示出站立腿的脚位置与ZMP允许区域的关系的一个例子的 图;

图11是示出摆动腿能够着地的区域与ZMP允许区域的关系的一个例 子的图。

具体实施方式

参考附图对本发明的优选实施方式进行说明。图1是本实施例的双脚 行走机器人10的模式图。以下,将双脚行走机器人10简称为机器人10。

机器人10包括两条脚16R、16L、障碍物传感器12、以及控制器 14。每条脚具有包括骨关节、膝关节以及踝关节的多连杆多关节结构。障 碍物传感器12是激光测距传感器,用于检测机器人10前方的障碍物。控 制器14基于障碍物传感器12的传感器数据来确定脚的着地位置和着地时 机,以避开障碍物。

对图1所示的符号的含义进行说明。首先,对坐标系进行说明。X轴 相当于机器人10的行进方向。Y轴相当于机器人的横方向。Z轴相当于竖 直方向。G(xg,yg,zg)表示机器人10的重心,Lg表示重心的轨迹。 ZMP(px,py,pz)表示ZMP位置。在图1中,机器人10只用右腿16R 站立,因此ZMP(px,py,pz)位于右腿16R的脚的接地区域内。以下, 为了简化说明,假定行走面是水平的。即,ZMP位置用二维坐标(px, py)表示。

符号A2示出了摆动腿16L的可着地区域。可着地区域A2由腿的机 械结构和障碍物W规定。控制器14基于障碍物传感器12的传感器数据来 识别前方的障碍物W的位置和大小。此外,控制器14计算由腿的机械结 构规定的摆动腿的脚可到达的区域。控制器14从可到达的区域排除掉障 碍物W所占的区域来确定可着地区域A2。例如如图1所示,可着地区域 A2以避开障碍物W的方式规定。

接下来,对ZMP方程式进行说明。ZMP方程式是重心G的运动方程 式,并且是用ZMP位置的函数表示重心G的加速度的式子。现在,假定 重心的高度(即zg)是固定值h。于是,ZMP方程式能够用下述(公式 1)来表示。

[公式1]

ddxg=gh(xg-px)

ddxy=gh(yg-py)

在(公式1)中,“g”表示重力加速度。“ddxg”表示重心的x方向上的 加速度。“ddyg”表示重心的y方向上的加速度。(公式1)是在行走机器 人的技术领域中熟知的方程式。在(公式1)中,用下述(公式2)来表 示ZMP位置的坐标px,py

[公式2]

px=qx1t+qx2

py=qy1t+qy2

在(公式2)中,“qx1,qx2,qy1,qy2”是预先规定的常数。此外,“t”表 示时间。在用(公式2)表示ZMP位置(px,py)的情况下,已知(公式 1)的一般解(即重心G的轨迹)可用下述(公式3)来表示。

[公式3]

xg=cx1eαt+cx2e-αt+qx1t+qx2

yg=cy1eαt+cy2e-αt+qy1t+qy2

在(公式3)中,“cx1,cx2,cy1,cy2”是预先给定的常数。并且,

α2=g/h。由(公式3),重心G的速度(dxg,dyg)可用下述(公式 4)表示。

[公式4]

dxg=α(cx1eαt-cx2e-αt)+qx1

dyg=α(cy1eαt-cy2e-αt)+qy1

(公式3)和(公式4)表示重心G的轨迹。其中,重心G的高度h 为恒定。“稳定行走”通过以将重心G的速度抑制在预先规定的预定的閾値 以下、并且不使重心G的坐标从脚的着地位置偏离很多的方式确定着地位 置和着地时机来实现。这种着地位置和着地时机基于ZMP方程式来算 出。

控制器14确定摆动腿16L的着地位置和着地时机。控制器14使用 (公式2)~(公式4)来确定维持行走稳定性的着地位置和着地时机。 图2示出了重心的轨迹和着地位置的关系。在当前时刻t0,机器人10只用 右腿16R站立,左腿16L相当于摆动腿。现在,关注从当前时刻t0到终端 时刻t3的时间性重心轨迹。G0(xg0,yg0)表示当前时刻t0的重心位置。 符号(dxg0,dyg0)表示当前时刻t0的重心速度。当前时刻t0的重心速度由 传感器测量。符号G3(xg3,yg3)示出了终端时刻t3的重心位置。符号 (dxg3,dyg3)表示终端时刻t3的重心速度。这里,终端时刻t3预先被设定 为从当前时刻t0起的经过时间。当前时刻t0被设定在只用一条腿(在图2 中为右腿)站立的第一单腿期间内,终端时刻t3被设定在另一条腿(在图 2中为左腿)接地并只用接地的腿站立的第二单腿期间内。终端时刻t3的 重心速度(dxg3,dyg3)被预先给定为用于保证稳定行走的边界条件。这 里,用(vxd,vyd)表示终端时刻t3的重心速度(边界条件)。当前时刻t0相当于当前关注的重心轨迹的始端的时刻。

在图2中STEP1所示的矩形表示当前时刻t0的站立腿的脚的位置(接 地面)。符号B 1表示在当前时刻t0、ZMP(px1,py1)可取的区域(第一 脚ZMP允许区域)。在以下的说明中,当前时刻t0的ZMP(px1,py1)相 当于第一脚ZMP位置。第一脚ZMP允许区域B1被限制在第一脚(右 腿)的接地面STEP1的内侧。

符号A2所示的区域如前所述表示当前的摆动腿(第二脚)能够着地 的区域、即可着地区域。在图2中,可着地区域A2以避开障碍物W的方 式设定。符号B2表示在下一个单腿接地期间、即只用第二腿站立的第二 单腿接地期间内ZMP应取的位置的范围(第二脚ZMP允许区域)。第二 脚ZMP允许区域B2与可着地区域A2基本重叠。在图2中,由于估计了 裕度,因此第二脚ZMP允许区域B2小于可着地区域A2。符号STEP2所 示的矩形示出了第二脚的着地位置(预着地位置)。并且,符号ZMP (px2,py2)表示第二单腿接地期间内的ZMP位置。

在当前时刻t0,机器人10只用右腿站立。控制器14确定左腿的下一 个着地位置STEP2和着地时机,以使终端时刻t3的重心速度(dxg3, dyg3)为(vxd,vyd)。以下,用符号t1表示着地时机。着地位置STEP2必 须规定成,使得第二脚ZMP位置(px2,py2)包含在时机t1时的脚的接地 区域内。此外,显然,重心轨迹总是要连续的。从而,控制器14的目的 在于如下的重心轨迹:在与可着地区域A2相对应地规定的第二脚ZMP允 许区域B2内设定第二脚ZMP位置的同时,满足预先给定的终端的重心速 度(vxd,vyd),并且重心位置、速度以及加速度从当前的重心状态保持连 续。换句话说,就是使用(公式1)~(公式4)确定用于使得重心轨迹 连续并满足预先给定的终端的重心速度(vxd,vyd)的、第一脚ZMP位置 (px1,py1)、第二脚ZMP位置(px2,py2)以及着地时机t1。这种重心轨 迹、着地位置和着地时机保证稳定的行走。由于是求出只用作为当前站立 腿的第一脚站立的第一单腿接地期间内的ZMP位置(第一脚ZMP位 置)、和踏出下一步后只用第二脚站立的第二单腿接地期间内的ZMP位 置(第二脚ZMP位置),因此重心轨迹所关注的期间包括第一单腿接地 期间和第二单腿接地期间。即,关注的重心轨迹的始端被设定在第一单腿 接地期间内,终端被设定在第二单腿接地期间。此外,应注意到意想不到 的外扰或地面的凹凸不平可能会损害行走稳定性。

图3示出了重心轨迹的x坐标(Lx)、x方向速度(Ldx)、以及ZMP 位置的x坐标(px)的曲线图。机器人10在重复只用一条腿站立的单腿接 地期间和用双腿站立的双腿接地期间的状态下行走。

在图3中,时刻t0表示当前时刻(始端时刻)。当前时刻t0在第一单 腿接地期间内。即,在当前时刻t0,第二脚(左腿)是摆动腿。时刻t1表 示第二脚(左腿)的着地时机。时刻t2表示第一脚(右腿)的离地时机。 时刻t3表示终端时刻。终端时刻t3相当于第一脚(右腿)再次着地从而双 腿站立期间开始的时机。在y轴方向上也能够绘制同样的曲线图,但省略 Y轴方向的说明。以下,仅关于x轴进行说明。此外,图3的Tbd表示双 腿接地期间的时间。Tsd表示单腿接地期间的时间。即,当单腿接地期间的 开始时刻经过了时间Tsd时相当于着地时机。

符号t0表示当前时刻(始端时刻),符号t1表示着地时机,t2表示另 一条腿的离地时机,符号t3表示下一个着地时机。ZMP位置的x坐标 (px)在只用第一脚站立的第一单腿接地期间内是固定值px1(第一脚 ZMP位置),在第二脚的着地时机t1,开始向第二脚的着地位置移动,并 在第一脚离地的时刻t2,变成第二脚ZMP位置px2。之后,维持固定值 (第二脚ZMP位置px2)直到第一脚着地的时刻t3为止。如上所述,控制 器14的目的在于求出着地时机t1、第一脚ZMP位置px1(py1)、第二脚 ZMP位置px2(py2)。重心轨迹的边界条件是始端的位置(xg0,yg0)和速 度(dxg0,dyg0)、以及终端的速度(dxg3,dyg3)=(vxd,vyd)。始端的 边界条件由传感器测量。

如果使用ZMP方程式的一般解(公式3、公式4),则终端的重心速 度dxg3能够用下述(公式5)表示。

[公式5]

dxg3=n1et3+n2e-t3+px1-px02t0(eα(t3-t0)+e-α(t3-t0))

+px2-px12(t2-t1)(eα(t3-t2)+e-α(t3-t2)-eα(t3-t1)-e-α(t3-t1))

Here,

n1=12(dxg0+α(xg0-px0)-px1-px0t0)

n2=12(-dxg0+α(xg0-px0)+px1-px0t0)

在y方向上也能够获得与(公式5)相同的式子。如果在(公式5) 以及与(公式5)对应的y方向上的数学表达式中代入dxg3=vxd,dyg3=vyd并对px1,px2,py1,py2进行整理,则得出下述(公式6)。在(公式6) 中,将着地时机t1处理为恒定值。着地时机t1虽预先给定,但有时会如后 面所述那样进行修正。

[公式6]

rx1rx20000ry1ry2px1px2py1py2=SxSy

在(公式6)中,rx1和Sx是将(公式5)的常数合并表示的常数。rx1和Sx中包含着地时机t1。通过将着地时机t1处理为常数,可将rx1和Sx用 常数表示。(公式6)是有关变量(px1,px2,py1,py2)的联立方程式。 (公式6)是ZMP方程式(公式1)的变形形式,具有表示当前时刻t0的 ZMP位置的第一脚ZMP位置(px1,py1)、和表示第二单腿接地期间的 ZMP位置的第二脚ZMP位置(px2,py2)作为变量。

若要求解(公式6)来确定变量(px1,px2,py1,py2),则约束条件不 够。因此,给定用于解(公式6)的约束条件(将该约束条件称为初始约 束条件)。初始约束条件可预先给定。例如初始约束条件由下述的(公式 7)给定。

[公式7]

px1=ρ

apx2+bpy2=c

在(公式7)中,ρ、a、b、c是预先给定的常数。(公式7)表示将 第一脚ZMP位置的x坐标设定为ρ,并将第二脚ZMP位置(px2,py2)约 束为直线apx2+bpy2=c。将(公式7)的约束条件式和(公式6)合并得 到下述(公式8)。

[公式8]

rx1rx20000ry1ry210000a0bpx1px2py1py2=SxSyρc

(公式8)相当于ZMP方程式的另一种表示,并且(公式8)是在变 量中具有第一脚ZMP位置(px1,py1)和第二脚ZMP位置(px2,py2)的 联立方程式。(公式8)若用矩阵表示,则可用下述(公式9)表示,其 解{x}通过(公式10)获得。其中,[A]是矩阵,{x}、{s}是向量。

[公式9]

[A][x]={s}

[公式10]

{x}=[A]-1{s}

通过(公式10),能够规定第一脚ZMP位置(px1,py1)、以及表示 着地时机t1的ZMP位置的第二脚ZMP位置(px2,py2)。至此为止的处理 总结起来就是在始端和终端处的重心的边界条件和初始约束条件下计算满 足ZMP方程式(公式6)的第一脚ZMP位置(px1,py1)和第二脚ZMP 位置(px2,py2)的处理。将该处理称为第一子步骤。

第一子步骤将着地时机t1作为恒定来计算第一脚ZMP位置和第二脚 ZMP位置。在初始约束条件的数学表达式的数目增加到三个以上的情况 下,能够通过改变着地时机t1,来决定满足ZMP方程式(公式6)的第一 脚ZMP位置(px1,py1)和第二脚ZMP位置(px2,py2)。此外,在两个 以上的约束条件式平行并且矩阵[A]的逆矩阵不存在的情况下,也能够通过 改变着地时机t1来决定满足ZMP方程式(公式6)的第一脚ZMP位置 (px1,py1)和第二脚ZMP位置(px2,py2)。可调查该矩阵的秩来判断是 否存在逆矩阵。在该矩阵具有满秩的情况下,存在逆矩阵。若不存在逆矩 阵,则向(公式6)给定新的约束条件。新的约束条件例如可由下述(公 式11)表示。

[公式11]

a1px1+b1py1=c1

a2px2+b2py2=c2

a3px2+b3py2=c3

这里,a1≠0,a1>b1

(公式11)表示三个约束条件的数学表达式。从(公式11)的约束 条件唯一地决定px2,py2(公式12)。

[公式12]

px2=ρ1

py2=ρ2

将(公式12)代入(公式5)中,并在(公式13)的条件下对t1, px1,py1进行整理,则得出(公式14)。

[公式13]

t2=t1+Tbd

t3=t2+Tsd=t1+Tbd+Tsd

[公式14]

k1px1+k2px1(eαt1+e-αt1)=Rx

k1py1+k2py1(eαt1+e-αt1)=Ry

在(公式14)中,使用了dxg3=vxd,dyg3=vyd。当向(公式14)的第 一式乘以a1、向第二式乘以b1后将二者相加时,可得到下述(公式 15)。

[公式15]

a1(k1px1+k2px1(eαt1+e-αt1))

+b1(k1py1+k2py1(eαt1+e-αt1))=a1Rx+b1Ry

c1k1+c1k2(eαt1+e-αt1)=a1Rx+b1Ry

由(公式15)可得到下述(公式16)。

[公式16]

e2αt1-a1Rx+b1Ry-c1k1c1k2eαt1+1=0

若使用下述β和u将(公式16)简化表示,可得到(公式17)。 (公式17)dβ和u由(公式18)给定。

[公式17]

u2-βu+1=0

[公式18]

β=a1Rx+b1Ry-c1k1c1k2

u=eαt1

(公式17)是u的二次式,因此u由下述(公式19)决定。

[公式19]

u1=β-β2-1,u2=β+β2-1

从(公式19),着地时机t1通过下述(公式20)来修正。如前所 述,原着地时机t1的值为Tsd

[公式20]

t1=1αlogu

当u1>0、u2>0时选择其中一个。基本上,选择值更大的那一个。 (公式11)至(公式20)的处理总结来说是能够如下表述。当在第一子 步骤中算出的第二脚ZMP位置(px2,py2)脱离了与第二脚的可着地区域 A2相对应地规定的第二脚ZMP允许区域B2时,控制器14通过(公式 20)修正着地时机t1,以使ZMP方程式(公式6)在将第二脚ZMP位置 (px2,py2)约束在第二脚ZMP允许区域B2内的第二脚ZMP约束条件 (公式12)和上述的初始约束条件下成立。将这些处理称为第二子步骤。

如(公式12)所示,第二脚ZMP位置(px2,py2)能够通过约束条件 被指定为(ρ1,ρ2)。该(ρ1,ρ2)能够任意给定,因此优选指定第二脚 ZMP允许区域B2的边界(图2中由符号B2示出的多边形的外围线 上)。

通过(公式20)修正了着地时机t1。此时,第一脚ZMP位置(px1, py1)通过下述处理重新计算。即,当使用通过(公式20)修正的着地时机 t1重新计算(公式6)的rx1、rx2、ry1、ry2时,得到下述(公式21)。

[公式21]

px1=Sx-rx2px2rx1

py1=Sy-ry2py2ry1

即,通过(公式21),可在(公式11)的约束条件下算出满足重心 速度的终端边界条件dxg3=vxd、dyg3=vyd的t1、px1、py1、px2、py2。如此, 即使在给定三个约束条件的情况下,通过修正着地时机t1,也能够确定落 入第一脚ZMP允许区域内的第一脚ZMP位置、以及落入第二脚ZMP允 许区域内的第二脚ZMP位置。

这些处理可如下表述。即,控制器14在第一子步骤中,当算出的第 一脚ZMP位置(px1,py1)脱离了被规定在第一脚的接地区域STEP1内的 第一脚ZMP允许区域(图2的B1)时,在将第一脚ZMP位置(px1, py1)约束在第一脚ZMP允许区域B1内的第一脚ZMP约束条件和初始约 束条件下重新技计算足ZMP方程式的第一脚ZMP位置和第二脚ZMP位 置。此时,控制器14在第二子步骤中,修正着地时机t1,以使ZMP方程 式在第二脚ZMP约束条件、第一脚ZMP约束条件和初始约束条件下成 立。

在上述例子中,例示了约束条件式的数目为三个的情况(公式11)。 在约束条件式的数目为两个但该两个约束条件式为相互平行的直线的情况 下,(公式9)的矩阵[A]不具有逆矩阵。例如在约束条件由下述(公式 22)给定的情况下,(公式8)如(公式23)所示。

[公式22]

px1=ρ1

px2=ρ2

[公式23]

rx1rx20000ry1ry210000100px1px2py1py2=SxSyρ1ρ2

(公式23)的左边的矩阵不具有逆矩阵。在此情况下,向(公式5) 中代入px1=ρ1、px2=ρ2并对着地时机t1进行整理,从而得到(公式 24)。

[公式24]

eαt1+e-αt1=β

从(公式24)仍得到(公式17),最后得到(公式20)。此时,控 制器14通过解下述(公式25)能够确定py1、py2

[公式25]

ry1py1+ry2py2=Sy

最后算出第二脚ZMP位置(px2,py2)后,确定着地位置,以使第二 脚ZMP位置包含在要着地的脚和地面的接触区域内。在图2的例子中, 确定着地位置STEP2,以使第二脚ZMP位置(px2,py2)位于脚的接触区 域的中央。由此确定摆动腿的着地位置和着地时机。最后确定着地位置的 处理相当于着地位置确定步骤。

以上的处理由图4A、图4B的流程图示出。接着,沿着图4A和图4B 的流程图对着地时机和第二脚ZMP位置的确定处理进行说明。控制器14 首先设定第一脚ZMP允许区域B1和第二脚ZMP允许区域B2(S2)。图 2示出了第一脚ZMP允许区域B1的具体例。在图2的例子中,第一脚 ZMP允许区域B1为矩形。控制器14沿第一脚的接地面的周围规定四条直 线。控制器14将由直线包围的区域规定为第一脚ZMP允许区域B1。每个 直线以aix+biy=ci的形式表示。接着,控制器14设定第二脚ZMP允许区 域。第二脚ZMP允许区域由图2的符号B2示出。第二脚ZMP允许区域 B2被设定在可着地区域A2内。

接着,控制器14设定第二脚ZMP位置(px2,py2)(S4)。第二脚 ZMP位置(px2,py2)设定在第二脚ZMP允许区域B1的中心、或者预先 规定的位置。在图2中,第二脚ZMP位置(px2,py2)被决定为使得摆动 腿的着地位置位于可着地区域A2的前端。第二脚ZMP位置(px2,py2) 例如通过(公式12)来设定。

接着,控制器14设定(公式23)的矩阵[A](S6)。此时,重心高度 h、着地时机t1、单腿接地时间Tsd、双腿接地时间Tbd、终端处的重心速度 vxd、vyd被预先给定。当(公式23)的矩阵[A]存在逆矩阵时(S8:是), 用给定的着地时机t1解联立方程式,求出第一脚ZMP位置(px1,py1) (S10)。第二脚ZMP位置(px2,py2)是在步骤S4中设定的。这里,联 立方程式由ZMP方程式(公式6)和约束条件式给定。(公式23)相当 于联立方程式的一个例子。如果算出的第一脚ZMP位置(px1,py1)位于 第一脚ZMP允许区域B1内、并且所设定的第二脚ZMP位置(px2,py2) 位于第二脚ZMP允许区域B2内,则控制器14采用算出的第一脚ZMP位 置(px1,py1)和第二脚ZMP位置(px2,py2)作为应求出的ZMP位置 (S12:是)。此时,控制器14确定摆动腿的脚的着地位置STEP2,以使 该着地位置STEP2中包含第二脚ZMP位置(参考图2)。最后,控制器 14确定摆动腿的轨迹,以使摆动腿的脚朝向着地位置STEP2(S16)。控 制器14控制腿的关节,以使摆动腿的脚沿着所确定轨迹移动。

当算出的第一脚ZMP位置(px1,py1)脱离了第一脚ZMP允许区域 B1时、或者设定的第二脚ZMP位置(px2,py2)脱离了第二脚ZMP允许 区域B2时,控制器14追加约束条件(S14)。

参考图5、图6,对算出的第一脚ZMP位置(px1,py1)脱离第一脚 ZMP允许区域B1时的约束条件的例子进行说明。第一脚ZMP允许区域 B1相当于由表示脚的四个边的四条直线(aix+biy=ci、i=1~4)包围的 区域。控制器14提取表示所算出的第一脚ZMP位置(px1,py1)脱离了第 一脚ZMP允许区域B1的直线。在图5的情况下,直线a1x+b1y=c1示出 了所算出的第一脚ZMP位置(px1,py1)脱离了第一脚ZMP允许区域 B1。在图6的情况下,直线a1x+b1y=c1和a2x+b2y=c2示出了所算出的 第一脚ZMP位置(px1,py1)脱离了第一脚ZMP允许区域B 1。控制器14 采用缩提取的直线作为新的约束条件。在图5的情况下,新的第一脚ZMP 位置(px1,py1)被约束到直线a1x+b1y=c1上。在图6的情况下,新的第 一脚ZMP位置(px1,py1)被约束到直线a1x+b1y=c1与直线a2x+b2y=c2的交点。

接着,控制器14检查所追加的约束条件式的数目(S22、S 24)。当 约束条件式的数目为两个以下时(S22:是),返回到步骤S6重新求出 ZMP位置。这里,(公式23)的矩阵[A]根据新的约束条件而改变。例如 在图5的情况下,根据新的约束条件,矩阵[A]由(公式8)表示。图5和 图6的例子均相当于新的约束条件式的数目为两个以下的情况。

当追加的约束条件式的数目为三个时(S24:是),针对时间(着地 时机t1),求解上述的联立方程式(S26)。换句话说,在步骤26中,将 着地时机t1作为变量来解上述联立方程式。(公式8)或(公式23)相当 于联立方程式的例子。通过解联立方程式,可重新算出着地时机t1。换句 话说,预先给定的着地时机2修正。修正后的着地时机t1保证第一脚ZMP 位置在第一脚ZMP允许区域B1内,并且第二脚ZMP位置在第二脚ZMP 允许区域B2内。修正后的着地时机t1例如由(公式20)算出。最后,控 制器14检验修正后着地时机是否在设定范围内(S30)。设定范围是预先 给定的。

当约束条件式的数目为四个以上时(S24:否),或者当变量中包含 时间(着地时机)的联立方程式不存在解时(S28:否),由于此时相当 于不存在实现稳定行走的着地位置和着地时机,因此控制器14停止行走 动作(S32)。

当在步骤S8中不存在逆矩阵时(S8:否),处理转移到步骤S24 中,控制器14确认约束条件式的数目是否为三个(S24)。步骤S24及其 以后的处理与已说明的相同。

对追加约束条件的处理的注意点进行说明。有时,新追加的约束条件 的数目能够减少。参考图7、图8来说明该例子。在图7的情况下,表示 第一脚ZMP位置(px1,py1)脱离了第一脚ZMP允许区域B1的直线为三 条(a1x+b1y=c1、a2x+b2y=c2、以及a3x+b3y=c3)。在表示第一脚 ZMP位置(px1,py1)脱离了第一脚ZMP允许区域B1的直线的数目为奇 数个的情况下,只要将中间的直线(在此情况下瓦诶a2x+b2y=c2)用作 约束条件就足以。即,在此情况下,能够将约束条件式的数目由3减为 1。

在图8的情况下,表示第一脚ZMP位置(px1,py1)脱离了第一脚 ZMP允许区域B1的直线为四条(a1x+b1y=c1、a2x+b2y=c2、a3x+b3y= c3、以及a4x+b4y=c4)。在表示第一脚ZMP位置(px1,py1)脱离了第一 脚ZMP允许区域B1的直线的数目为偶数个(四个以上)的情况下,只要 将中间的两条直线(子此情况下为a2x+b2y=c2和a3x+b3y=c3)用作约束 条件就足以。即,在此情况下,能够将约束条件式的数目由4减为2。

图1所示的双脚行走机器人10的控制器14中安装了上述说明的算 法。双脚行走机器人10基于障碍物传感器12的传感器数据来确定摆动腿 的可着地区域(图2的A2)。机器人10使用所确定的可着地区域A2来 执行上述算法。机器人10通过上述算法来确定摆动腿(第二脚)的着地 位置和着地时机。机器人10控制腿的各个关节,以便实现所确定的着地 位置和着地时机。由此,机器人10能够稳定地行走。

参考图9,对上述说明的着地时机确定处理的概要进行说明。假定在 当前时刻t0处于仅用右腿站立的第一单腿接地期间接地(图1)。站立腿 机器人10的控制器首先确定作为摆动腿的左腿的可着地区域A2 (S41)。接着,控制器设定第一脚ZMP允许区域和第二脚ZMP允许区 域(S42)。这里,第一脚相当于站立腿(右腿),第二脚相当于摆动腿 (左腿)。第一脚ZMP允许区域相当于右腿的接地面。右脚的接地面由 图2的符号STEP1所示的矩形表示。图2的符号B1相当于第一脚ZMP允 许区域。考虑用于稳定的裕量,比右脚的接地面STEP1稍小地设定了第一 脚ZMP允许区域B1。

第二脚ZMP允许区域与作为摆动腿的左腿的可着地区域相对应地被 规定。左腿的可着地区域由图2的符号A2表示。图2的符号B2相当于第 二脚ZMP允许区域。考虑用于稳定的裕量,比左脚的可着地区域A2稍小 地设定了第二脚ZMP允许区域B2。

接着,控制器给定包含第一单腿接地期间和在第一单腿接地期间之后 仅用第二脚站立的第二单腿接地期间的重心轨迹的始端和终端的边界条 件,并且给定第二脚的着地时机来解ZMP方程式,由此算出表示第二单 腿接地期间内的ZMP位置的第二脚ZMP位置。该处理相当于ZMP计算 步骤。图9的步骤S43~S46相当于ZMP计算步骤。如前面出现过的那 样,由(公式6)表示的联立方程式相当于ZMP方程式。(公式6)的联 立方程式可通过在(公式1)的ZMP方程式上加上重心轨迹的边界条件和 着地时机t1为恒定的条件而得到。

ZMP计算步骤具体可分为第一子步骤和第二子步骤。第一子步骤在重 心轨迹的边界条件和预先规定的初始约束条件下计算满足(公式6)的联 立方程式(ZMP方程式)的第一脚ZMP位置和第二脚ZMP位置 (S43)。第二子步骤在通过S43算出的第二脚ZMP位置脱离了第二脚 ZMP允许区域的情况下(S44:否),将着地时机t1作为变量再次解ZMP 方程式(S46)。即,求出满足ZMP方程式的着地时机t1。此时,向(公 式6)的ZMP方程式中新追加将第二脚ZMP位置约束在第二脚ZMP允许 区域内的第二脚ZMP约束条件(S45)。换句话说,修正着地时机,以使 ZMP方程式在第二脚ZMP约束条件和初始约束条件下成立。

当在步骤S44判断为ZMP位置在許容范围内时(S44:是)、或者在 步骤S46中求出了着地时机t1时,控制器确定第二脚的着地位置,以使算 出的第二脚ZMP位置被包含在第二脚(左脚)和地面的接触区域内 (S47)。该处理相当于着地位置确定步骤。

在步骤S43中,当算出的第一脚ZMP位置脱离了被规定在第一脚的 接地区域STEP1内的第一脚ZMP允许区域B1时,在将第一脚ZMP位置 约束在第一脚ZMP允许区域内的第一脚ZMP约束条件和初始约束条件下 重新计算满足所述ZMP方程式的第一脚ZMP位置和第二脚ZMP位置。 该处理也是第一子步骤的一部分。并且此时,在步骤S46中,修正着地时 机,以使ZMP方程式在第二脚ZMP约束条件、第一脚ZMP约束条件以 及初始约束条件下成立。该处理是第二子步骤的一部分。

接下来示出确定着地时机和第二脚ZMP位置的处理的另一例子。

(第一步骤):首先,设定表示第一单腿接地期间内的ZMP位置的 第一脚ZMP位置的可允许区域(第一脚ZMP允许区域)。图10示出了 当前时刻t0的第一脚(站立腿)的脚位置(接地面)STEP1与规定第一脚 ZMP允许区域B1的边界线的公式的关系。这里,接地面(脚掌面)的形 状假定为矩形。数学表达式aix+biy=ci表示与脚掌面的各个边平行并且位 于从脚掌面的边界向内侧预定宽度处的直线。这里,使坐标系的xy平面 与接地面相一致。由于脚掌面是矩形的,因此可确定四条直线。四条直线 所包围的区域相当于第一脚ZMP允许区域B1。

(第二步骤):接着,由当前的摆动腿(第二脚)可着地的区域、即 可着地区域A2,设定第二脚的ZMP允许区域B2,并求出各个边的直线公 式(图11)。

(第三步骤):接着,设定用户参数。这里,用户参数有:重心高度 h、初始ZMP移動时间t0、基准的单腿时间Tsd、基准的双腿时间Tbd、以 及当前关注的期间的终端处的目标重心速度vxd、vyd

(第四步骤):接着,将第二脚的ZMP位置px2、py2设定在可着地区 域A2的中心、或者预先指定的位置,来解(公式26)。这里给定的第二 脚的ZMP位置px2、py2相当于临时约束条件(初始约束条件)。

[公式26]

rx1rx20000ry1ry201000001px1px2py1py2=SxSyρ1ρ2

(公式26)相当于先前的例子中的(公式6)。解(公式26),求出 px1、px2、py1、py2

(第五步骤):接着,检查ZMP位置px1、px2、py1、py2是否脱离了 ZMP允许区域。当ZMP位置没有脱离ZMP允许区域时,处理转移到后述 的第十步骤。当ZMP位置脱离了ZMP允许区域时,追加接近脱离的ZMP 位置的直线作为新的约束条件。第一脚的ZMP位置px1、px2脱离第一脚 ZMP允许区域B1时的例子在先前的图5、图6中进行了例示。在图5的 情况下,直线a1x+b1y=c1相当于追加的约束条件。在图6的情况下,直 线a1x+b1y=c1和直线a2x+b2y=c2相当于追加的约束条件。

(第6步骤)接着,检查追加的约束条件的数目。当追加一个约束条 件时(图5的情况),向(公式26)中追加直线a1x+b1y=c1作为约束条 件,来解下面的(公式27)。在(公式27)的第三行中追加了约束条 件。

[公式27]

rx1rx20000ry1ry2a10b100001px1px2py1py2=SxSyc1ρ2

当追加两个约束条件时(图6的情况),向(公式26)追加直线a1x +b1y=c1和直线a2x+b2y=c2作为约束条件,来解下面的(公式28)。在 (公式28)的第三行和第四行追加了约束条件。当约束条件为三个时,转 移到后述的第八步骤。此外,当约束条件为四个以上时,无法解(公式 26)。在此情况下,不能继续行走,因此停止腿式机器人的行走动作。

[公式28]

rx1rx20000ry1ry2a10b100a20b2px1px2py1py2=SxSyc1c2

(第七步骤):接着检查矩阵A的秩。这里、矩阵A相当于(公式 26)、(公式27)或(公式28)的左边的矩阵。在矩阵A具有满秩的情 况下,(公式26)、(公式27)或(公式28)能够以(公式10)的形式 求解。在此情况下,在解(公式26)、(公式27)或(公式28)之后, 返回到第五步骤。在矩阵A不具有满秩的情况下,转移到下一第八步骤。

(第八步骤):接着,将第一脚的着地时机t1加到变量中(加到自由 度中),来解(公式26)、(公式27)或(公式28)。由追加的约束条 件和(公式5),可求出t1、px1、py1、px2、以及py2。在求不出解的情况 下,停止行走动作。

(第九步骤)接着,检查着地时机t1是否过早。这是因为如果着地时 机t过早,摆动腿的摆动速度就会变得过大。当着地时机t1在合适的范围 内时,返回到第五步骤。当着地时机t1脱离了合适的范围时,停止行走动 作。着地时机t1的合适的范围可预先给定。

(第十步骤)最后,基于所确定的t1、px1、py1、px2及py2的值和初始 条件,生成重心轨迹和摆动腿的脚的轨迹(第一脚的轨迹)。重心轨迹由 (公式3)给定。

以上对本发明的具体例进行了详细说明,但这些仅仅是例示,并不用 来限定权利要求书。权利要求书中记载的技术包括将以上例示的具体例的 变形、变更而得的实施例。本说明书或附图中说明的技术要素是单独或通 过各种组合发挥技术可用性的,而并非限定于申请时的权利要求中所记载 的组合。此外,本说明书或附图中说明的技术是用于同时实现多个目的 的,实现其中一个目的本身就具有技术可用性。

符号说明

10:双脚行走机器人

12:障碍物传感器

14:控制器

16R、16L:脚

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号