一种机器人行走中重力补偿的方法、装置及机器人与流程

文档序号:18272775发布日期:2019-07-27 09:52阅读:391来源:国知局
一种机器人行走中重力补偿的方法、装置及机器人与流程

本发明涉及仿人机器人控制技术领域,尤其涉及一种机器人行走中重力补偿的方法、装置、机器人及计算机可读存储介质。



背景技术:

仿人机器人在行走过程中的步态控制一直是学术界研究的热点问题,它直接决定着机器人的平衡能力。

现有技术中的步态控制大都是采用跟踪步态规划位置的方式进行;但是这种控制方式忽略了仿人机器人在单脚支撑与双脚支撑切换的一瞬间所带来的冲击作用力,极易产生跟踪规划位置的偏差,严重影响仿人机器人的平衡性。



技术实现要素:

鉴于此,本发明实施例提供了一种机器人行走中重力补偿的方法、装置及机器人,可以在单脚支撑期和双脚支撑期两种不同的情形下,分别对机器人进行重力补偿,提高了步行过程的稳定性。

本发明实施例的第一方面提供了一种机器人行走中重力补偿的方法,所述方法包括:

根据步态规划信号以及机器人足底的受力大小,确定所述机器人当前是单脚支撑还是双脚支撑;

若为单脚支撑,则通过机器人各个关节的角度传感器检测获得各个关节的关节角,并根据所述关节角计算获得各个关节的重力矩;

若为双脚支撑,则计算机器人质心的投影位置,并根据机器人质心的投影位置计算各个关节的重力矩;

根据关节的重力矩与电流的对应关系,获得各个关节的前馈电流值;

将所述前馈电流值叠加到对应关节的驱动器上,完成重力补偿。

本发明实施例的第二方面提供了一种机器人行走中重力补偿的装置,所述装置包括:

判断单元,用于根据步态规划信号以及机器人足底的受力大小,确定所述机器人当前是单脚支撑还是双脚支撑;

第一计算单元,用于若为单脚支撑,则通过机器人各个关节的角度传感器检测获得各个关节的关节角,并根据所述关节角计算获得各个关节的重力矩;

第二计算单元,用于若为双脚支撑,则计算机器人质心的投影位置,并根据机器人质心的投影位置计算各个关节的重力矩;

获取单元,用于根据关节的重力矩与电流的对应关系,获得各个关节的前馈电流值;

补偿单元,用于将所述前馈电流值叠加到对应关节的驱动器上,完成重力补偿。

本发明实施例的第三方面提供了一种机器人,包括:包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现上述第一方面提及的机器人行走中重力补偿的方法。

本发明实施例的第四方面提供了一种计算机可读存储介质,包括:该计算机可读存储介质上存储有计算机程序,上述计算机程序被处理器执行时实现上述第一方面提及的机器人行走中重力补偿的方法。

本发明实施例与现有技术相比存在的有益效果是:本发明实施例通过根据步态规划信号以及机器人足底的受力大小,确定所述机器人当前是单脚支撑还是双脚支撑,若为单脚支撑,则通过机器人各个关节的角度传感器检测获得各个关节的关节角,并根据所述关节角计算获得各个关节的重力矩;若为双脚支撑,则计算机器人质心的投影位置,并根据机器人质心的投影位置计算各个关节的重力矩,从而实现可根据机器人的单双脚切换状态,分别对其进行重力补偿,有利于提高补偿的精度;另外,根据关节的重力矩与电流的对应关系,获得各个关节的前馈电流值,将所述前馈电流值叠加到对应关节的驱动器上,以对前馈电流值的控制近似实现对各关节重力矩的控制,从而完成重力补偿,有效地降低了机器人单双脚切换时出现较大轨迹跟踪偏差的可能性,提高了机器人在行走过程中的稳定性,具有较强的实用性和易用性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例一提供的机器人行走中重力补偿方法的流程示意图;

图2为本发明实施例二提供的机器人行走中重力补偿方法的流程示意图;

图3为本发明实施例二提供的机器人行走中重力补偿方法步骤s202以第1个关节为例建立的相对坐标系和绝对坐标的示意图;

图4为本发明实施例三提供的机器人行走中重力补偿装置的结构示意图;

图5为本发明实施例四提供的机器人的结构示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

应理解,下述方法实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对各实施例的实施过程构成任何限定。

为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

实施例一

图1是本发明实施例提供的机器人行走中重力补偿方法的流程示意图,该方法可包括以下步骤:

s101:根据步态规划信号以及机器人足底的受力大小,确定所述机器人当前是单脚支撑还是双脚支撑。

需要说明的是,一个完整的步行周期是指机器人由摆动腿离地到支撑腿离地所经历的时间,通常包括一个单脚支撑期和一个双脚支撑期。在一个步行周期内单脚支撑期是指机器人由某一单脚支撑的时间,即从摆动腿离地开始至摆动腿着地结束;双脚支撑期是指机器人由双脚支撑的时间,即从摆动腿脚跟触地开始至支撑腿脚尖离地结束。可选的,机器人的步行周期为1s。

其中,所述步态规划信号是依据线性倒立摆的运动规律来预先规划机器人的行走路线,在实际行走过程中可采用跟踪上述规划的行走路线进行运动。

可选的,通过查询步态规划信号的方式来确定机器人当前是处于单脚支撑期还是双脚支撑期,从而进一步确定下一时刻的步态切换状态,即:判断下一时刻是由单脚支撑切换成双脚支撑,还是由双脚支撑切换成单脚支撑。

可选的,当机器人处于单脚支撑期时,只考虑前向平面内的运行。

可选的,通过六维力矩传感器,来获取机器人足底的受力大小。

s102a:若为单脚支撑,则通过机器人各个关节的角度传感器检测获得各个关节的关节角,并根据所述关节角计算获得各个关节的重力矩。

需要说明的是,各关节的质心位置与各关节的关节角之间存在着一定的对应关系。因此,可以通过根据各个关节的角度传感器实时检测获得各个关节的关节角,并根据两者之间的对应关系,得到每一个关节点的质心位置。

进一步的,通过检测各关节的角速度或者角加速度的方式来获取所述各关节的关节角。

需要说明的是,本发明实施例中的重力补偿均未考虑杆件与电机的自重。对于仿人型机器人来说,当质心位置确定后,各关节对应的重力矩也就唯一确定,所述重力矩是指重力与力臂的乘积,力臂的大小为质心在相对坐标系中的横坐标值。

可选的,所述根据所述关节角计算获得各个关节的重力矩,包括:

根据所述关节角,利用质心加权求和公式计算获得各个关节的重力矩。

s102b:若为双脚支撑,则计算机器人质心的投影位置,并根据机器人质心的投影位置计算各个关节的重力矩。

可以理解的是,当处于单脚支撑期时,由于摆动比较大,此时,不能仅靠质心的投影来决定机器人的稳定性;而当处于双脚支撑时,可以根据机器人质心的投影位置,利用杠杆原理确定作用于机器人每条腿上的力,从而获得各个关节需要补偿的重力矩。

s103:根据关节的重力矩与电流的对应关系,获得各个关节的前馈电流值。

s104:将所述前馈电流值叠加到对应关节的驱动器上,完成重力补偿。

需要说明的是,为了达到重力补偿的效果,本发明实施例中引入重力反馈环节构成闭环控制。

可选的,通过电流反馈机制来实现上述控制。即:通过电流与重力矩之间的对应关系,将重力矩换算为前馈电流值,将换算得到的前馈电流值叠加到关节驱动器的控制器上,完成重力补偿。

本发明实施例中,通过获取机器人处于不同着地状态时各关节的重力矩,根据预设的重力矩与前馈电流之间的对应关系,计算得到各关节对应的前馈电流值,并将该前馈电流值发送至各关节处的电机驱动器,从而驱动各个关节快速到达预设的摆动位置,有效地解决了负载突变时轨迹跟踪容易出现偏差的问题,提高了步行过程的稳定性,具有较强的易用性和实用性。

实施例二

图2给出了另一种机器人行走中重力补偿方法的流程示意图,本发明实施例是对上述实施例一中的步骤s102a、s102b和s103的进一步细化和说明,详述如下:

s201:根据步态规划信号以及机器人足底的受力大小,确定所述机器人当前是单脚支撑还是双脚支撑。

其中,上述步骤s201与实施例一中的步骤s101基本相同,在此不作重复赘述。

s202a:若所述步态规划信号为单脚规划信号,且根据机器人其中一个足底的力传感器计算获得的垂直脚面的受力小于阈值,根据另一个足底的力传感器计算获得的垂直脚面的受力大于或等于所述阈值,则通过机器人各个关节的角度传感器检测获得各个关节的关节角,并根据所述关节角计算获得各个关节的重力矩。

可选的,所述利用质心加权求和公式计算各个关节的重力矩为:

其中,表示第i个关节处需要补偿的重力矩;mj表示第j个关节上的质量;表示第i个关节的质心在相对坐标系中用于产生重力矩的向量坐标;表示第j个关节的质心在相对坐标系中的向量坐标;表示第i个关节在绝对坐标系中的向量坐标;表示重力加速度向量。

可选的,为了简化情形,本发明实施例中将机器人的上肢关节简化为图3中的第13个关节,其中单机械腿自下而上依次包括2个踝关节、1个膝关节和3个髋关节,上述各关节均为单自由度关节,单机械腿自由度总和为6。另外,为了便于描述,上述示意图中每个关节的质心位置均用黑色的实心圆表示。当以相邻的两个关节之间的接触点为坐标原点,建立笛卡尔相对坐标系(记为com),并以左脚与地面的接触点为坐标原点建立笛卡尔绝对坐标系(记为joint)时,则基于上述两个坐标系及所测量的各个关节的关节角,可以确定每个关节的质心在相对坐标系和绝对坐标系中的向量坐标。

需要说明的是,对于相邻的两个关节来说,当这两个关节刚好同时向同一个方向转动相同的角度时,则在上述示意图中显示的是两个关节在同一条直线上,如图3中的关节1和关节2。

示例性的,以左脚的第1个关节为例进行说明,则按照上述质心加权求和公式计算第1个关节的重力矩时的计算表示式为:

其中,为第j个关节的质心在相对坐标系中x轴上的投影;为第j个关节的质心在相对坐标系中y轴上的投影;为第j个关节的质心在相对坐标系中z轴上的投影;表示第1个关节的质心在绝对坐标系中x轴上的投影;表示第1个关节的质心在绝对坐标系中y轴上的投影;表示第1个关节的质心在绝对坐标系中z轴上的投影。

s202b:若所述步态规划信号为双脚规划信号,且根据机器人两个足底的力传感器计算获得的垂直脚面的受力均大于或等于所述阈值,则计算机器人质心的投影位置,并根据机器人质心的投影位置计算各个关节的重力矩。

其中,所述计算机器人质心的投影位置,并根据机器人质心的投影位置计算各个关节的重力矩包括:

根据机器人的质心投影位置,获得作用于机器人每条腿上的力;

根据作用于机器人每条腿上的力,确定作用于各个关节上的力;

根据作用于各个关节上的力,利用质心加权求和公式计算获得各个关节的重力矩。

s203:根据关节的重力矩与电流的对应关系,获得各个关节的前馈电流值。

可选的,所述关节的重力矩与电流的对应关系为一正比例函数关系,即:不考虑电机自身内部存在的摩擦力等因素的影响。

可选的,所述根据关节重力矩与电流的对应关系,获得各个关节的前馈电流为:

τg=k·i;

其中,τg表示关节的重力矩;k为一比例系数;i为前馈补偿电流值。

s204:将所述前馈电流值叠加到对应关节的驱动器上,完成重力补偿。

其中,上述步骤s204与实施例一中的步骤s104基本相同,在此不作重复赘述。

本发明实施例中,通过将机器人双脚垂直脚面的受力分别与阈值进行比较,来进一步判断机器人当前是处于单脚支撑还是双脚支撑,提高了对下一时刻机器人切换状态判断的精度;并且在根据关节角,计算获取各个关节的重力矩时,由于考虑了剩余关节的重力影响,可以使本发明实施例中的补偿的结果更加精准;另外,通过根据关节重力矩与电流预设的线性对应关系,可以快速的获得各个关节的前馈电流值,将其叠加到对应关节的驱动器上,有利于减轻机器人在行走过程中由于单双脚切换产生的轨迹跟踪偏差,提高了机器人在行走过程中的稳定性,具有较强的实用性和易用性。

实施例三

图4是本实施例三提供机器人行走中重力补偿装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分。

所述机器人行走中重力补偿的装置,包括:

判断单元41,用于根据步态规划信号以及机器人足底的受力大小,确定所述机器人当前是单脚支撑还是双脚支撑;

第一计算单元421,用于若为单脚支撑,则通过机器人各个关节的角度传感器检测获得各个关节的关节角,并根据所述关节角计算获得各个关节的重力矩;

第二计算单元422,用于若为双脚支撑,则计算机器人质心的投影位置,并根据机器人质心的投影位置计算各个关节的重力矩;

获取单元43,用于根据关节的重力矩与电流的对应关系,获得各个关节的前馈电流值;

补偿单元44,用于将所述前馈电流值叠加到对应关节的驱动器上,完成重力补偿。

进一步的,所述判断单元41具体可包括;

第一判断单元,用于若所述步态规划信号为单脚规划信号,且根据机器人其中一个足底的力传感器计算获得的垂直脚面的受力小于阈值,根据另一个足底的力传感器计算获得的垂直脚面的受力大于或等于所述阈值,则确定所述机器人当前为单脚支撑;

第二判断单元,用于若所述步态规划信号为双脚规划信号,且根据机器人两个足底的力传感器计算获得的垂直脚面的受力均大于或等于所述阈值,则确定所述机器人当前为双脚支撑。

实施例四

图5是本发明实施例四提供的机器人的结构示意图。如图5所示,该实施例的机器人5包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机程序52。所述处理器50执行所述计算机程序52时实现上述机器人行走中重力补偿方法实施例一中的各个步骤,例如图1所示的步骤s101至s104。或者,实现上述机器人行走中重力补偿方法实施例二中的步骤,例如图2所示的步骤s201至s204。所述处理器40执行所述计算机程序42时实现上述各装置实施例中各模块/单元的功能,例如图4所示模块41至44的功能。

示例性的,所述计算机程序52可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由所述处理器50执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序52在所述机器人5中的执行过程。例如,所述计算机程序52可以被分割成判断单元、第一计算单元、第二计算单元、获取单元和补偿单元,各单元的具体功能如下:

判断单元,用于根据步态规划信号以及机器人足底的受力大小,确定所述机器人当前是单脚支撑还是双脚支撑;

第一计算单元,用于若为单脚支撑,则通过机器人各个关节的角度传感器检测获得各个关节的关节角,并根据所述关节角计算获得各个关节的重力矩;

第二计算单元,用于若为双脚支撑,则计算机器人质心的投影位置,并根据机器人质心的投影位置计算各个关节的重力矩;

获取单元,用于根据关节的重力矩与电流的对应关系,获得各个关节的前馈电流值;

补偿单元,用于将所述前馈电流值叠加到对应关节的驱动器上,完成重力补偿。

所述机器人5可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是机器人5的示例,并不构成对机器人5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述机器人还可以包括输入输出设备、网络接入设备、总线等。

所述处理器50可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器51可以是所述机器人5的内部存储单元,例如机器人5的硬盘或内存。所述存储器51也可以是所述机器人5的外部存储设备,例如所述机器人5上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器51还可以既包括所述机器人5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机程序以及所述机器人所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实施例的模块、单元和/或方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1