摔倒自恢复学习方法、装置、电子设备及存储介质

文档序号:31417671发布日期:2022-09-03 18:05阅读:100来源:国知局
摔倒自恢复学习方法、装置、电子设备及存储介质

1.本发明涉及机器人技术领域,尤其涉及一种摔倒自恢复学习方法、装置、电子设备及存储介质。


背景技术:

2.随着机器人技术的发展,人们对机器人各方面的需求不断提高,而四足机器人作为腿足式机器人的一类机器人,对四足机器人摔倒自恢复的研究是一项研究热点。
3.相关技术中,四足机器人摔倒自恢复方法主要依赖于深度神经网络的强化学习方法,将四足机器人的姿态信息和关节角信息输入至深度神经网络,得到深度神经网络输出的动作,将该动作直接发送至四足机器人,使得四足机器人执行该动作;重复进行上述内容,对深度神经网络进行训练。然而,基于深度神经网络的强化学习方法直接对四足机器人进行训练,存在训练时间比较长、学习效果比较差的缺陷。


技术实现要素:

4.本发明提供一种摔倒自恢复学习方法、装置、电子设备及存储介质,用以解决现有技术中训练时间比较长、学习效果比较差的缺陷,实现较短时间完成训练,且学习效果比较好。
5.本发明提供一种摔倒自恢复学习方法,所述方法包括:
6.获取机器人的第一姿态信息;所述第一姿态信息包括第一旋转角度信息和第一关节角度信息;所述第一旋转角度信息用于表示所述机器人当前姿态对应的旋转角度;所述第一关节角度信息用于表示所述机器人当前姿态每条腿的至少一个关节对应的关节角度;
7.将所述第一旋转角度信息和所述第一关节角度信息输入至摔倒恢复学习模型,得到所述摔倒恢复学习模型输出的第一动作;所述摔倒恢复学习模型是基于样本姿态信息进行训练得到的,用于确定所述机器人的第一动作;所述第一动作用于表示所述机器人每条腿的至少一个关节的力矩;
8.基于所述第一动作和所述第一动作对应的预设动作,确定所述机器人的目标动作;所述预设动作用于表示预设策略中与所述第一动作对应的动作;所述预设策略包括所述机器人由摔倒状态恢复至站立状态所执行的动作序列;所述目标动作用于表示所述机器人实际执行动作时每条腿的至少一个关节的力矩。
9.根据本发明提供的一种摔倒自恢复学习方法,所述基于所述第一动作和所述第一动作对应的预设动作,确定所述机器人的目标动作,包括:
10.对所述第一动作与所述预设动作,采用公式(1)进行计算,确定所述机器人的目标动作;
[0011][0012]
其中,表示所述机器人的目标动作,表示所述强化学习模型输出的第一
动作;表示预设动作;t表示第t步;t∈[1,k],k为正整数;表示哈达玛积。
[0013]
根据本发明提供的一种摔倒自恢复学习方法,所述方法还包括:
[0014]
获取所述机器人的第二姿态信息;所述第二姿态信息包括第二旋转角度信息和第二关节角度信息;所述第二旋转角度信息用于表示所述机器人摔倒姿态对应的旋转角度;所述第二关节角度信息用于表示所述机器人摔倒姿态每条腿的至少一个关节对应的关节角度;
[0015]
基于所述第二旋转角度,确定所述机器人每条腿的第一足端力;所述第一足端力用于表示所述机器人摔倒姿态每条腿的至少一个关节对应的力;
[0016]
基于所述第一足端力和所述第二关节角度信息,确定所述机器人的第二动作;所述第二动作用于表示调整所述机器人的重心时所述机器人每条腿的至少一个关节的力矩;
[0017]
获取所述机器人的第三姿态信息;所述第三姿态信息包括第三旋转角度信息和第三关节角度信息;所述第三旋转角度信息用于表示调整所述机器人的重心后所述机器人对应的旋转角度;所述第三关节角信息用于表示调整所述机器人的重心后所述机器人每条腿的至少一个关节对应的关节角度;
[0018]
基于所述第三旋转角度信息,确定所述机器人每条腿的第二足端力;所述第二足端力用于表示调整所述机器人的重心后每条腿的至少一个关节对应的力;
[0019]
基于所述第二足端力和所述第三关节角度信息,确定所述机器人的第三动作;所述第三动作用于表示恢复所述机器人的姿态由摔倒姿态至半倾斜姿态时所述机器人每条腿的至少一个关节的力矩;
[0020]
基于所述第三动作,确定所述预设策略中的动作序列。
[0021]
根据本发明提供的一种摔倒自恢复学习方法,所述基于所述第三动作,确定所述预设策略中的动作序列,包括:
[0022]
基于所述第三动作,获取所述机器人的第四姿态信息;所述第四姿态信息包括第四旋转角度信息和第四关节角度信息;所述第四旋转角度信息用于表示所述机器人半倾斜姿态对应的旋转角度;所述第四关节角度信息用于表示所述机器人半倾斜姿态时每条腿的至少一个关节对应的关节角度;
[0023]
基于所述第四旋转角度信息,确定所述机器人每条腿的第三足端力;所述第三足端力用于表示所述机器人半倾斜姿态时每条腿的至少一个关节对应的力;
[0024]
基于所述第三足端力和所述第四关节角度信息,确定所述机器人的第四动作;所述第四动作用于表示恢复所述机器人的姿态由半倾斜状态至站立状态时所述机器人每条腿的至少一个关节的力矩;
[0025]
基于所述第三动作、所述第四动作和所述第五动作,确定所述预设策略中的动作序列。
[0026]
根据本发明提供的一种摔倒自恢复学习方法,所述确定所述机器人的目标动作之后,所述方法还包括:
[0027]
基于所述目标动作,生成所述目标动作对应的控制指令;所述控制指令用于控制所述机器人执行所述目标动作;
[0028]
将所述控制指令发送至所述机器人;
[0029]
获取所述机器人的第五姿态信息;所述第五姿态信息包括第五旋转角度信息和第
五关节角度信息;所述第五旋转角度信息用于表示所述机器人执行所述目标动作之后对应的旋转角度;所述第五关节角度信息用于表示所述机器人执行所述目标动作之后每条腿的至少一个关节对应的关节角度;
[0030]
计算所述摔倒恢复学习模型的奖励函数;
[0031]
基于所述奖励函数,更新所述摔倒恢复学习模型的参数;
[0032]
判断所述摔倒恢复学习模型是否达到训练停止条件;所述训练停止条件为所述奖励函数收敛。
[0033]
本发明还提供一种摔倒自恢复学习装置,所述装置包括:
[0034]
第一获取模块,用于获取机器人的第一姿态信息;所述第一姿态信息包括第一旋转角度信息和第一关节角度信息;所述第一旋转角度信息用于表示所述机器人当前姿态对应的旋转角度;所述预设策略包括所述机器人由摔倒状态恢复至站立状态所执行的动作序列;所述第一关节角度信息用于表示所述机器人当前姿态每条腿的至少一个关节对应的关节角度;
[0035]
摔倒恢复学习模块,用于将所述第一旋转角度信息和所述第一关节角度信息输入至摔倒恢复学习模型,得到所述摔倒恢复学习模型输出的第一动作;所述摔倒恢复学习模型是基于样本姿态信息进行训练得到的,用于确定所述机器人的第一动作;所述第一动作用于表示所述机器人每条腿的至少一个关节的力矩;
[0036]
第一确定模块,用于基于所述第一动作和所述第一动作对应的预设动作,确定所述机器人的目标动作;所述预设动作用于表示预设策略中与所述第一动作对应的动作;所述目标动作用于表示所述机器人实际执行动作时每条腿的至少一个关节的力矩。
[0037]
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述摔倒自恢复学习方法。
[0038]
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述摔倒自恢复学习方法。
[0039]
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述摔倒自恢复学习方法。
[0040]
本发明提供的摔倒自恢复学习方法、装置、电子设备及存储介质,通过获取机器人的第一姿态信息;第一姿态信息包括第一旋转角度信息和第一关节角度信息;将第一旋转角度信息和第一关节角度信息输入至摔倒恢复学习模型,得到摔倒恢复学习模型输出的第一动作;根据第一动作和第一动作对应的预设动作,确定机器人的目标动作。本发明提供的方法,通过第一动作和第一动作对应的预设动作的结合,确定机器人的目标动作,实现了机器人摔倒自恢复至站立状态的强化学习过程,缩短了摔倒恢复学习模型的训练时间,提升了机器人摔倒自恢复的学习效率。
附图说明
[0041]
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些
附图获得其他的附图。
[0042]
图1是本发明提供的摔倒自恢复学习方法的流程示意图之一;
[0043]
图2是本发明提供的机器人的结构示意图;
[0044]
图3是本发明提供的摔倒自恢复学习方法的流程示意图之二;
[0045]
图4是本发明提供的机器人摔倒自恢复的旋转角度信息变化示意图;
[0046]
图5是本发明提供的摔倒自恢复学习装置的结构示意图;
[0047]
图6是本发明提供的电子设备的结构示意图。
具体实施方式
[0048]
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0049]
下面结合附图,通过一些实施例及其应用场景对本发明提供的摔倒自恢复学习方法进行详细地说明。
[0050]
本发明提供一种摔倒自恢复学习方法,该摔倒自恢复学习方法适用于机器人摔倒自恢复的场景中,获取机器人的第一姿态信息;所述第一姿态信息包括第一旋转角度信息和第一关节角度信息;所述第一旋转角度信息用于表示所述机器人当前姿态对应的旋转角度;所述第一关节角度信息用于表示所述机器人当前姿态每条腿的至少一个关节对应的关节角度;将所述第一旋转角度信息和所述第一关节角度信息输入至摔倒恢复学习模型,得到所述摔倒恢复学习模型输出的第一动作;所述摔倒恢复学习模型是基于样本姿态信息进行训练得到的,用于确定所述机器人的第一动作;所述第一动作用于表示所述机器人每条腿的至少一个关节的力矩;基于所述第一动作和所述第一动作对应的预设动作,确定所述机器人的目标动作;所述预设动作用于表示预设策略中与所述第一动作对应的动作;所述预设策略包括所述机器人由摔倒状态恢复至站立状态所执行的动作序列;所述目标动作用于表示所述机器人实际执行动作时每条腿的至少一个关节的力矩。本发明提供的方法,通过第一动作和第一动作对应的预设动作,确定机器人的目标动作,实现了机器人摔倒自恢复至站立状态的强化学习过程,缩短了机器人摔倒自恢复模型的训练时间,提升了机器人摔倒自恢复的学习效率。
[0051]
下面结合图1-图4描述本发明的摔倒自恢复学习方法。
[0052]
图1是本发明的提供的摔倒自恢复学习方法的流程示意图之一,如图1所示,该方法包括步骤101-步骤103,其中:
[0053]
步骤101,获取机器人的第一姿态信息;所述第一姿态信息包括第一旋转角度信息和第一关节角度信息;所述第一旋转角度信息用于表示所述机器人当前姿态对应的旋转角度;所述第一关节角度信息用于表示所述机器人当前姿态每条腿的至少一个关节对应的关节角度。
[0054]
需要说明的是,本发明提供的摔倒自恢复学习方法可适用于机器人摔倒自恢复的场景中。该方法的执行主体可以为摔倒自恢复学习装置,例如电子设备、或者该摔倒自恢复学习装置中的用于执行摔倒自恢复学习方法的控制模块。
[0055]
具体地,机器人可以为四足机器人,也可以为其他类型的机器人,对此,本技术不做任何限制。需要说明的是,在机器人的机身上装有一个惯性测量单元(inertial measurement unit,imu),机器人的每个腿的各个关节上装有电机和传感器,可以通过imu获取机器人在任何姿态下的第一旋转角度信息,其中,第一旋转角度信息用于表示机器人当前姿态对应的旋转角度,可以表示为s
imu
=(θ
x
,θy,θz),其中,θ
x
、θy和θz分别表示机器人在世界坐标系下绕x、y、z轴的旋转角度;可以通过传感器获取机器人的第一关节角度信息,其中,第一关节角度信息用于表示机器人当前姿态每条腿的至少一个关节对应的关节角度,关节可以包括髋关节、膝关节、踝关节中的至少一个。因此,可以获取到机器人的第一姿态信息,该第一姿态信息可以包括第一旋转角度信息和第一关节角度信息。
[0056]
步骤102,将所述第一旋转角度信息和所述第一关节角度信息输入至摔倒恢复学习模型,得到所述摔倒恢复学习模型输出的第一动作;所述摔倒恢复学习模型是基于样本姿态信息进行训练得到的,用于确定所述机器人的第一动作;所述第一动作用于表示所述机器人每条腿的至少一个关节的力矩。
[0057]
具体地,在摔倒恢复学习模型训练的过程中,将获取的机器人的第一旋转角度信息和第一关节角度信息输入至摔倒恢复学习模型,得到摔倒恢复学习模型输出的第一动作;其中,摔倒恢复学习模型可以是深度确定性策略梯度(deep deterministic policy gradient,ddpg),也可以是其他神经网络模型的结构;摔倒恢复学习模型的网络结构为四层神经网络,包括输入层、两个隐含层和输出层;其中,两个隐含层的节点数均可以为256个,输出层的激活函数为双曲正切函数(tanh函数),该激活函数将摔倒恢复学习模型的输出结果限定在[-1,1]范围内。
[0058]
实际中,将第一旋转角度信息和第一关节角度信息输入至摔倒恢复学习模型之前,将第一旋转角度信息和第一关节角度信息归一化处理至[-1,1]范围内,再将经过处理之后的第一旋转角度信息和第一关节角度信息输入至摔倒恢复学习模型的输入层,再依次经过中间的两个隐含层,最后由输出层输出结果,得到摔倒恢复学习模型输出的第一动作;其中,第一动作用于表示机器人每条腿的至少一个关节的力矩,摔倒恢复学习模型是基于样本姿态信息进行训练得到的,用于确定机器人的第一动作。
[0059]
步骤103,基于所述第一动作和所述第一动作对应的预设动作,确定所述机器人的目标动作;所述预设动作用于表示预设策略中与所述第一动作对应的动作;所述预设策略包括所述机器人由摔倒状态恢复至站立状态所执行的动作序列;所述目标动作用于表示所述机器人实际执行动作时每条腿的至少一个关节的力矩。
[0060]
具体地,在摔倒恢复学习模型输出第一动作之后,从预设策略中确定与第一动作对应的预设动作,再根据第一动作和预设动作,确定机器人的目标动作;其中,预设策略是根据机器人由摔倒状态恢复至站立状态所预先设定的动作序列,即机器人由摔倒状态恢复至站立状态所执行的动作集合,该动作集合中的每一个动作是机器人在摔倒恢复的过程中每一个姿态所对应的机器人执行的动作;每个动作表示机器人执行该动作时每条腿的至少一个关节的力矩,即给予机器人的至少一个关节一个力矩,机器人的关节基于该力矩做相应的动作;目标动作用于表示机器人实际执行动作时每条腿的至少一个关节的力矩。
[0061]
本发明提供的摔倒自恢复学习方法,通过获取机器人的第一姿态信息;第一姿态信息包括第一旋转角度信息和第一关节角度信息;将第一旋转角度信息和第一关节角度信
息输入至摔倒恢复学习模型,得到摔倒恢复学习模型输出的第一动作;根据第一动作和第一动作对应的预设动作,确定机器人的目标动作。本发明提供的方法,通过第一动作和第一动作对应的预设动作的结合,确定机器人的目标动作,实现了机器人摔倒自恢复至站立状态的强化学习过程,缩短了摔倒恢复学习模型的训练时间,提升了机器人摔倒自恢复的学习效率。
[0062]
可选地,所述基于所述第一动作和所述第一动作对应的预设动作,确定所述机器人的目标动作,包括:
[0063]
对所述第一动作与所述预设动作,采用公式(1)进行计算,确定所述机器人的目标动作;
[0064][0065]
其中,表示所述机器人的目标动作,表示所述强化学习模型输出的第一动作;表示预设动作;t表示第t步,t∈[1,k],k为正整数;表示哈达玛积。
[0066]
具体地,根据摔倒恢复学习模型输出的第一动作,将第一动作和与第一动作对应的预设动作进行结合,采用上述公式(1)进行计算,确定在摔倒恢复学习模型训练的过程中,机器人每一步实际要执行的目标动作;其中,摔倒恢复学习模型输出的第一动作可以作为预设策略中与第一动作对应的预设动作的控制比率,即可以作为机器人每条腿的至少一个关节的力矩的控制系数,从而使得机器人执行目标动作符合摔倒恢复站立状态的标准动作,达到的效果更好。
[0067]
实际中,在摔倒恢复学习模型训练的过程中,根据摔倒恢复学习模型输出的第一动作,确定与第一动作对应的预设动作;其中,预设动作是根据摔倒恢复学习模型的训练过程中记录的单回合的训练步数确定的,预设动作与训练的步数一一对应,从而可以确定出与第一动作对应的预设动作。例如,摔倒恢复学习模型单回合训练步数为5,则该摔倒恢复学习模型训练至第5步,则查找预测策略中第5步对应的预设动作,再根据上述公式(1)进而确定出机器人在第5步的目标动作。
[0068]
本发明提供的摔倒自恢复学习方法,通过对第一动作与预设动作进行计算,确定机器人的目标动作,使得机器人所执行的目标动作更加符合机器人摔倒自恢复的过程中的标准动作,进而实现了机器人摔倒自恢复至站立状态的强化学习过程,缩短了摔倒恢复学习模型的训练时间,提升了机器人摔倒自恢复的学习效率。
[0069]
根据上述实施例的描述,由于在摔倒恢复学习模型训练的过程中使用了机器人由摔倒状态恢复至站立状态所执行的预设动作,而该预设动作是预设策略中与第一动作对应的动作,因此,接下来对机器人的预设策略的具体实现方式进行详细描述。
[0070]
图2是本发明提供的机器人的结构示意图,如图2所示,该机器人包括第一支撑腿、第二支撑腿、第三支撑腿和第四支撑腿,每条腿包括髋关节、膝关节和踝关节。
[0071]
为了计算出机器人摔倒恢复每个腿的各个关节所需的关节力矩,采用公式(2)将第i条腿的足端三维力fi转换为该第i条腿所包括的三个关节的力矩τi,其中:
[0072][0073]
其中,i表示第i条腿,j3×3表示雅可比矩阵,fi表示第i条腿的足端三维力,θ
i1

i2

i3
分别表示机器人的第i条腿的髋关节、膝关节、踝关节的关节角度,d
01
表示第一支撑腿的髋关节与第二支撑腿的髋关节之间距离的一半,a
01
表示第i条腿的髋关节与膝关节之间的距离,a
02
表示第i条腿的膝关节与踝关节之间的距离,a
03
表示第i条腿的踝关节与足端之间的距离。
[0074]
可选地,机器人的力分配预设策略的具体实现方式包括以下步骤:
[0075]
步骤1)获取所述机器人的第二姿态信息;所述第二姿态信息包括第二旋转角度信息和第二关节角度信息;所述第二旋转角度信息用于表示所述机器人摔倒姿态对应的旋转角度;所述第二关节角度信息用于表示所述机器人摔倒姿态每条腿的至少一个关节对应的关节角度。
[0076]
具体地,获取机器人的第二姿态信息;其中,第二姿态信息包括第二旋转角度信息和第二关节角度信息,第二旋转角度信息是通过机器人机身的惯性测量单元imu获取的,可以表示为s
imu
=(θ
x
,θy,θz),其中,θ
x
,θy,θz分别表示机器人在世界坐标系下绕x、y、z轴的旋转角度;第二关节角度信息是通过机器人每条腿的至少一个关节的电机获取的。
[0077]
需要说明的是,机器人的第二姿态信息是机器人在摔倒状态获取的,其中,摔倒状态可以是侧摔状态。
[0078]
步骤2)基于所述第二旋转角度,确定所述机器人每条腿的第一足端力;所述第一足端力用于表示所述机器人摔倒姿态每条腿的至少一个关节对应的力。
[0079]
具体地,根据机器人的第二旋转角度,可以采用如下公式(3)确定机器人第i条腿的第一足端力fi,其中:
[0080][0081]
其中,θ
x
表示机器人在摔倒状态绕x轴的旋转角度,m表示机器人的自身重量,g表示重力加速度。
[0082]
实际中,机器人的摔倒状态若是侧摔状态,则机器人的第一支撑腿和第三支撑腿着地,或者第二支撑腿和第四支撑腿着地;无论是那种情况,均可以通过上述公式(3)确定机器人每条腿的第一足端力。
[0083]
步骤3)基于所述第一足端力和所述第二关节角度信息,确定所述机器人的第二动作;所述第二动作用于表示调整所述机器人的重心时所述机器人每条腿的至少一个关节的力矩。
[0084]
具体地,根据第一足端力和第二关节角度信息,采用上述公式(2)计算可以得到机器人第i条腿的至少一个关节的力矩τi,从而确定出机器人的第二动作,可以表示为
其中,τ
11
、τ
12
、τ
13
和τ
14
分别表示第一支撑腿、第二支撑腿、第三支撑腿和第四支撑腿的至少一个关节的力矩,即12个关节的力矩。
[0085]
实际中,机器人的每条腿的至少一个关节分别给予对应的力矩,就可以使得机器人去执行对应第二的动作。也就是说,机器人在摔倒状态获取的第二旋转角度信息中的θ
x
,如果θ
x
>0,则机器人的第一支撑腿和第三支撑腿伸长,第二支撑腿和第四支撑腿收缩,使得机器人的重心向θ
x
减小的方向偏移;如果θ
x
<0,则机器人的第二支撑腿和第四支撑腿伸长,第一支撑腿和第三支撑腿收缩,使得机器人的重心向θ
x
增大的方向偏移。
[0086]
步骤4)获取所述机器人的第三姿态信息;所述第三姿态信息包括第三旋转角度信息和第三关节角度信息;所述第三旋转角度信息用于表示调整所述机器人的重心后所述机器人对应的旋转角度;所述第三关节角信息用于表示调整所述机器人的重心后所述机器人每条腿的至少一个关节对应的关节角度。
[0087]
具体地,在调整机器人的中心之后,获取机器人的第三姿态信息,第三姿态信息包括第三旋转角度信息和第三关节角度信息;其中,第三旋转角度信息用于表示调整机器人的重心后机器人对应的旋转角度;第三关节角信息用于表示调整机器人的重心后机器人每条腿的至少一个关节对应的关节角度。
[0088]
需要说明的是,机器人的第三姿态信息是机器人在调整机器人的中心之后获取的,此时,机器人处于第一支撑腿和第三支撑腿伸长,第二支撑腿和第四支撑腿收缩,或者第二支撑腿和第四支撑腿伸长,第一支撑腿和第三支撑腿收缩的状态。
[0089]
步骤5)基于所述第三旋转角度信息,确定所述机器人每条腿的第二足端力;所述第二足端力用于表示调整所述机器人的重心后每条腿的至少一个关节对应的力。
[0090]
具体地,根据机器人的第三旋转角度,可以采用如下公式(4)确定机器人第i条腿的第二足端力fi,其中:
[0091][0092]
其中,θ
x
表示机器人在调整重心之后绕x轴的旋转角度,m表示机器人的自身重量,g表示重力加速度。
[0093]
实际中,机器人的摔倒状态若是侧摔状态,在调整机器人的重心之后,机器人还是处于第一支撑腿和第三支撑腿着地,或者第二支撑腿和第四支撑腿着地的状态;无论是那种情况,均可以通过上述公式(4)确定机器人每条腿的第二足端力。
[0094]
步骤6)基于所述第二足端力和所述第三关节角度信息,确定所述机器人的第三动作;所述第三动作用于表示恢复所述机器人的姿态由摔倒姿态至半倾斜姿态时所述机器人每条腿的至少一个关节的力矩。
[0095]
具体地,根据第二足端力和第三关节角度信息,采用上述公式(2)计算可以得到机器人第i条腿的至少一个关节的力矩τi,从而确定出机器人的第三动作,可以表示为其中,τ
21
、τ
22
、τ
23
和τ
24
分别表示第一支撑腿、第二支撑腿、第三支撑腿和第四支撑腿的至少一个关节的力矩。
[0096]
实际中,机器人的每条腿的至少一个关节分别给予对应的力矩,机器人去执行对应的第三动作。也就是说,利用与地面接触的支撑腿恢复机器人的姿态由摔倒状态恢复至半倾斜状态。
[0097]
步骤7)基于所述第三动作,确定所述预设策略中的动作序列。
[0098]
接下来,对上述步骤7)的具体实现方式进行进一步说明。
[0099]
可选地,所述基于所述第三动作,确定所述预设策略中的动作序列的实现方式包括以下步骤:
[0100]
步骤7-1)基于所述第三动作,获取所述机器人的第四姿态信息;所述第四姿态信息包括第四旋转角度信息和第四关节角度信息;所述第四旋转角度信息用于表示所述机器人半倾斜姿态对应的旋转角度;所述第四关节角度信息用于表示所述机器人半倾斜姿态时每条腿的至少一个关节对应的关节角度。
[0101]
具体地,在机器人的姿态为半倾斜状态时,获取机器人的第四姿态信息,第四姿态信息包括第四旋转角度信息和第四关节角度信息;其中,第四旋转角度信息用于表示机器人半倾斜姿态对应的旋转角度;第四关节角度信息用于表示机器人半倾斜姿态时每条腿的至少一个关节对应的关节角度。
[0102]
需要说明的是,机器人的第四姿态信息是机器人姿态为半倾斜状态时获取的,此时,机器人的第一支撑腿、第二支撑腿、第三支撑腿和第四支撑腿均处于着地的状态。
[0103]
步骤7-2)基于所述第四旋转角度信息,确定所述机器人每条腿的第三足端力;所述第三足端力用于表示所述机器人半倾斜姿态时每条腿的至少一个关节对应的力。
[0104]
具体地,在机器人处于半倾斜状态时,可以采用如下公式(5)确定机器人第i条腿的第三足端力fi,其中:
[0105][0106]
其中,m表示机器人的自身重量,g表示重力加速度。
[0107]
实际中,机器人的姿态是半倾斜状态,机器人的每条腿都着地,即每条腿的第三足端力相等。
[0108]
步骤7-3)基于所述第三足端力和所述第四关节角度信息,确定所述机器人的第四动作;所述第四动作用于表示恢复所述机器人的姿态由半倾斜状态至站立状态时所述机器人每条腿的至少一个关节的力矩。
[0109]
具体地,根据第三足端力和第四关节角度信息,采用上述公式(2)计算可以得到机器人第i条腿的至少一个关节的力矩τi,从而确定出机器人的第四动作,可以表示为其中,τ
31
、τ
32
、τ
33
和τ
34
分别表示第一支撑腿、第二支撑腿、第三支撑腿和第四支撑腿的至少一个关节的力矩。
[0110]
实际中,机器人的每条腿的至少一个关节分别给予对应的力矩,机器人去执行对应的第四动作。也就是说,通过弹跳将机器人的姿态由半倾斜状态恢复至站立状态。
[0111]
步骤7-4)基于所述第三动作、所述第四动作和所述第五动作,确定所述预设策略中的动作序列。
[0112]
具体地,根据第三动作、第四动作和第五动作,即采集第三动作、第四动作和第五
动作,得到动作序列对该动作序列进行线性插值,即可得到预设策略中的动作序列,表示为其中,k为正整数;例如,k可以为300。
[0113]
本发明提供的摔倒自恢复学习方法,通过分别获取机器人在摔倒状态、调整重心、半倾斜状态时的姿态信息,分别确定机器人对应的执行动作,采集执行的动作,再通过线性插值的方式,得到预设策略中的动作序列,从而为机器人预先设置了在摔倒恢复的过程中可以执行的动作序列,有助于后续训练摔倒恢复学习模型时,将预设策略中的动作序列和摔倒恢复学习模型输出的动作进行结合,实现了机器人摔倒自恢复至站立状态的强化学习过程,缩短了摔倒恢复学习模型的训练时间,提升了机器人摔倒自恢复的学习效率。
[0114]
可选地,在上述步骤103之后,所述方法还包括以下步骤:
[0115]
步骤1)基于所述目标动作,生成所述目标动作对应的控制指令;所述控制指令用于控制所述机器人执行所述目标动作。
[0116]
具体地,根据机器人的目标动作,生成该目标动作对应的控制指令,使用该控制指令控制机器人执行目标动作。
[0117]
步骤2)将所述控制指令发送至所述机器人。
[0118]
具体地,将控制指令发送至机器人,机器人接收该控制指令之后,根据控制指令去执行目标动作。
[0119]
需要说明的是,与机器人之间的交互是利用rs485串口通讯技术传输数据,使得机器人获取控制指令,或者将根据机器人的惯性测量单元和电机获取的姿态信息进行传输。
[0120]
步骤3)获取所述机器人的第五姿态信息;所述第五姿态信息包括第五旋转角度信息和第五关节角度信息;所述第五旋转角度信息用于表示所述机器人执行所述目标动作之后对应的旋转角度;所述第五关节角度信息用于表示所述机器人执行所述目标动作之后每条腿的至少一个关节对应的关节角度。
[0121]
具体地,在机器人执行目标动作之后,获取机器人的第五姿态信息;第五姿态信息包括第五旋转角度信息和第五关节角度信息;其中,第五旋转角度信息用于表示机器人执行所述目标动作之后对应的旋转角度;第五关节角度信息用于表示所述机器人执行所述目标动作之后每条腿的至少一个关节对应的关节角度。
[0122]
步骤4)计算所述摔倒恢复学习模型的奖励函数。
[0123]
具体地,根据第五旋转角度信息,采用如下公式(6)计算摔倒恢复学习模型的奖励函数,其中:
[0124][0125]
其中,r表示奖励函数,θ
x
表示所述四足机器人绕x轴的旋转角度;θy表示所述四足机器人绕y轴的旋转角度。
[0126]
步骤5)基于所述奖励函数,更新所述摔倒恢复学习模型的参数。
[0127]
具体地,根据奖励函数,确定该奖励函数的值是否达到目标值;若没有达到目标
值,则更新摔倒恢复学习模型的参数;其中,目标值可以为0,表示θ
x
和θy均为0,在这种情况下,机器人摔倒恢复至站立状态;若达到目标值,则进行下一回合的训练。
[0128]
步骤6)判断所述摔倒恢复学习模型是否达到训练停止条件;所述训练停止条件为所述奖励函数收敛。
[0129]
具体地,计算奖励函数的累积值,判断摔倒恢复学习模型是否达到训练停止条件;若奖励函数的累积值不再发生变化或者变化在较小的目标范围内,则摔倒恢复学习模型训练停止;反之,重复执行上述步骤,对摔倒恢复学习模型继续进行训练,直到摔倒恢复学习模型的奖励函数收敛。
[0130]
本发明提供的摔倒自恢复学习方法,通过生成目标动作对应的控制指令,使得机器人执行目标动作,在机器人执行目标动作之后,获取机器人的第五姿态信息,根据第五姿态信息计算奖励函数的值,再根据奖励函数的值更新摔倒恢复学习模型的参数,再判断奖励函数是否收敛,以判断摔倒恢复学习模型是否达到训练停止条件,实现了机器人摔倒恢复学习模型的训练过程,缩短了摔倒恢复学习模型的训练的总回合次数,从而缩短了摔倒恢复学习模型的训练时间,提升了机器人摔倒自恢复的学习效率。
[0131]
图3是本发明提供的摔倒自恢复学习方法的流程示意图之二,如图3所示,该方法包括步骤301-步骤311,其中:
[0132]
步骤301,获取机器人的第一姿态信息;第一姿态信息包括第一旋转角度信息和第一关节角度信息,其中,机器人的第一姿态信息是实时获取的,因此,第一旋转角度信息用于表示机器人当前姿态对应的旋转角度;第一关节角度信息用于表示机器人当前姿态每条腿的至少一个关节对应的关节角度。
[0133]
步骤302,将第一旋转角度信息和第一关节角度信息输入至摔倒恢复学习模型,得到摔倒恢复学习模型输出的第一动作。
[0134]
步骤303,将第一动作和第一动作对应的预设动作进行结合,确定机器人的目标动作;其中,预设动作用于表示预设策略中与第一动作对应的动作;预设策略包括机器人由摔倒状态恢复至站立状态所执行的动作序列;目标动作用于表示机器人实际执行动作时每条腿的至少一个关节的力矩。
[0135]
需要说明的是,在摔倒恢复学习模型的训练过程中,记录训练过程的每一步,可以通过摔倒恢复学习模型输出的第一动作,确定摔倒恢复学习模型训练至第几步,从而确定预设策略中与第一动作对应的预设动作。
[0136]
步骤304,基于目标动作,生成目标动作对应的控制指令。
[0137]
步骤305,将控制指令发送至机器人,以使机器人执行目标动作。
[0138]
步骤306,获取机器人的第五姿态信息;第五姿态信息包括第五旋转角度信息和第五关节角度信息;其中,第五旋转角度信息用于表示机器人执行目标动作之后对应的旋转角度;第五关节角度信息用于表示机器人执行目标动作之后每条腿的至少一个关节对应的关节角度。
[0139]
步骤307,基于第五旋转角度,计算摔倒恢复学习模型的奖励函数。
[0140]
308,判断奖励函数是否达到目标值。若是,则转至步骤301,进行下一回合的训练;反之,转至步骤309。
[0141]
步骤309,更新摔倒恢复学习模型的参数。
[0142]
步骤310,判断摔倒恢复学习模型是否达到训练停止条件,其中,训练停止条件为奖励函数收敛,奖励函数收敛是指奖励函数的累积值不再发生变化或者变化在目标范围内。如是,则转至步骤311;反之,转至步骤301。
[0143]
步骤311,训练结束。
[0144]
图4是本发明提供的机器人摔倒自恢复的旋转角度信息变化示意图,如图4所示,横轴表示机器人在摔倒自恢复的过程中执行目标动作的步数(step),纵轴表示机器人在每一步执行目标动作之后的旋转角度信息。根据图4可以看出,机器人在摔倒自恢复的过程中共计执行目标动作300步;在第0步时,旋转角度信息为θ
x
大于0,θy等于0,此时机器人处于摔倒姿态;在第260步至300步,θ
x
和θy的值趋近于0,表明机器人已经成功恢复至站立状态。
[0145]
下面对本发明提供的摔倒自恢复学习装置进行描述,下文描述的摔倒自恢复学习装置与上文描述的摔倒自恢复学习方法可相互对应参照。
[0146]
图5是本发明提供的摔倒自恢复学习装置的结构示意图,如图4所示,该摔倒自恢复学习装置500包括:第一获取模块501、摔倒恢复学习模块502和第一确定模块503;其中:
[0147]
第一获取模块501,用于获取机器人的第一姿态信息;所述第一姿态信息包括第一旋转角度信息和第一关节角度信息;所述第一旋转角度信息用于表示所述机器人当前姿态对应的旋转角度;所述预设策略包括所述机器人由摔倒状态恢复至站立状态所执行的动作序列;所述第一关节角度信息用于表示所述机器人当前姿态每条腿的至少一个关节对应的关节角度;
[0148]
摔倒恢复学习模块502,用于将所述第一旋转角度信息和所述第一关节角度信息输入至摔倒恢复学习模型,得到所述摔倒恢复学习模型输出的第一动作;所述摔倒恢复学习模型是基于样本姿态信息进行训练得到的,用于确定所述机器人的第一动作;所述第一动作用于表示所述机器人每条腿的至少一个关节的力矩;
[0149]
第一确定模块503,用于基于所述第一动作和所述第一动作对应的预设动作,确定所述机器人的目标动作;所述预设动作用于表示预设策略中与所述第一动作对应的动作;所述目标动作用于表示所述机器人实际执行动作时每条腿的至少一个关节的力矩。
[0150]
本发明提供的摔倒自恢复学习装置,通过获取机器人的第一姿态信息;第一姿态信息包括第一旋转角度信息和第一关节角度信息;将第一旋转角度信息和第一关节角度信息输入至摔倒恢复学习模型,得到摔倒恢复学习模型输出的第一动作;根据第一动作和第一动作对应的预设动作,确定机器人的目标动作。本发明提供的方法,通过第一动作和第一动作对应的预设动作的结合,确定机器人的目标动作,实现了机器人由摔倒状态自恢复至站立状态的强化学习过程,缩短了摔倒恢复学习模型的训练时间,提升了机器人摔倒自恢复的学习效率。
[0151]
可选地,所述第一确定模块503,具体用于:
[0152]
对所述第一动作与所述预设动作,采用公式(1)进行计算,确定所述机器人的目标动作;
[0153][0154]
其中,表示所述机器人的目标动作,表示所述强化学习模型输出的第一
动作;表示预设动作;t表示第t步;t∈[1,k],k为正整数;表示哈达玛积。
[0155]
可选地,所述摔倒自恢复学习装置500还包括:
[0156]
第二获取模块,用于获取所述机器人的第二姿态信息;所述第二姿态信息包括第二旋转角度信息和第二关节角度信息;所述第二旋转角度信息用于表示所述机器人摔倒姿态对应的旋转角度;所述第二关节角度信息用于表示所述机器人摔倒姿态每条腿的至少一个关节对应的关节角度;
[0157]
第二确定模块,用于基于所述第二旋转角度,确定所述机器人每条腿的第一足端力;所述第一足端力用于表示所述机器人摔倒姿态每条腿的至少一个关节对应的力;
[0158]
第三确定模块,用于基于所述第一足端力和所述第二关节角度信息,确定所述机器人的第二动作;所述第二动作用于表示调整所述机器人的重心时所述机器人每条腿的至少一个关节的力矩;
[0159]
第三获取模块,用于获取所述机器人的第三姿态信息;所述第三姿态信息包括第三旋转角度信息和第三关节角度信息;所述第三旋转角度信息用于表示调整所述机器人的重心后所述机器人对应的旋转角度;所述第三关节角信息用于表示调整所述机器人的重心后所述机器人每条腿的至少一个关节对应的关节角度;
[0160]
第四确定模块,用于基于所述第三旋转角度信息,确定所述机器人每条腿的第二足端力;所述第二足端力用于表示调整所述机器人的重心后每条腿的至少一个关节对应的力;
[0161]
第五确定模块,用于基于所述第二足端力和所述第三关节角度信息,确定所述机器人的第三动作;所述第三动作用于表示恢复所述机器人的姿态由摔倒姿态至半倾斜姿态时所述机器人每条腿的至少一个关节的力矩;
[0162]
第六确定模块,用于基于所述第三动作,确定所述预设策略中的动作序列。
[0163]
可选地,所述第六确定模块,具体用于:
[0164]
基于所述第三动作,获取所述机器人的第四姿态信息;所述第四姿态信息包括第四旋转角度信息和第四关节角度信息;所述第四旋转角度信息用于表示所述机器人半倾斜姿态对应的旋转角度;所述第四关节角度信息用于表示所述机器人半倾斜姿态时每条腿的至少一个关节对应的关节角度;
[0165]
基于所述第四旋转角度信息,确定所述机器人每条腿的第三足端力;所述第三足端力用于表示所述机器人半倾斜姿态时每条腿的至少一个关节对应的力;
[0166]
基于所述第三足端力和所述第四关节角度信息,确定所述机器人的第四动作;所述第四动作用于表示恢复所述机器人的姿态由半倾斜状态至站立状态时所述机器人每条腿的至少一个关节的力矩;
[0167]
基于所述第三动作、所述第四动作和所述第五动作,确定所述预设策略中的动作序列。
[0168]
可选地,所述摔倒自恢复学习装置500还包括:
[0169]
生成模块,用于基于所述目标动作,生成所述目标动作对应的控制指令;所述控制指令用于控制所述机器人执行所述目标动作;
[0170]
发送模块,用于将所述控制指令发送至所述机器人;
[0171]
第四获取模块,用于获取所述机器人的第五姿态信息;所述第五姿态信息包括第五旋转角度信息和第五关节角度信息;所述第五旋转角度信息用于表示所述机器人执行所述目标动作之后对应的旋转角度;所述第五关节角度信息用于表示所述机器人执行所述目标动作之后每条腿的至少一个关节对应的关节角度;
[0172]
计算模块,用于计算所述摔倒恢复学习模型的奖励函数;
[0173]
更新模块,用于基于所述奖励函数,更新所述摔倒恢复学习模型的参数;
[0174]
判断模块,用于判断所述摔倒恢复学习模型是否达到训练停止条件;所述训练停止条件为所述奖励函数收敛。
[0175]
图6是本发明提供的一种电子设备的实体结构示意图,如图6所示,该电子设备600可以包括:处理器(processor)610、通信接口(communications interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行摔倒自恢复学习方法,该方法包括:
[0176]
获取机器人的第一姿态信息;所述第一姿态信息包括第一旋转角度信息和第一关节角度信息;所述第一旋转角度信息用于表示所述机器人当前姿态对应的旋转角度;所述第一关节角度信息用于表示所述机器人当前姿态每条腿的至少一个关节对应的关节角度;
[0177]
将所述第一旋转角度信息和所述第一关节角度信息输入至摔倒恢复学习模型,得到所述摔倒恢复学习模型输出的第一动作;所述摔倒恢复学习模型是基于样本姿态信息进行训练得到的,用于确定所述机器人的第一动作;所述第一动作用于表示所述机器人每条腿的至少一个关节的力矩;
[0178]
基于所述第一动作和所述第一动作对应的预设动作,确定所述机器人的目标动作;所述预设动作用于表示预设策略中与所述第一动作对应的动作;所述预设策略包括所述机器人由摔倒状态恢复至站立状态所执行的动作序列;所述目标动作用于表示所述机器人实际执行动作时每条腿的至少一个关节的力矩。
[0179]
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0180]
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的摔倒自恢复学习方法,该方法包括:
[0181]
获取机器人的第一姿态信息;所述第一姿态信息包括第一旋转角度信息和第一关节角度信息;所述第一旋转角度信息用于表示所述机器人当前姿态对应的旋转角度;所述第一关节角度信息用于表示所述机器人当前姿态每条腿的至少一个关节对应的关节角度;
[0182]
将所述第一旋转角度信息和所述第一关节角度信息输入至摔倒恢复学习模型,得
到所述摔倒恢复学习模型输出的第一动作;所述摔倒恢复学习模型是基于样本姿态信息进行训练得到的,用于确定所述机器人的第一动作;所述第一动作用于表示所述机器人每条腿的至少一个关节的力矩;
[0183]
基于所述第一动作和所述第一动作对应的预设动作,确定所述机器人的目标动作;所述预设动作用于表示预设策略中与所述第一动作对应的动作;所述预设策略包括所述机器人由摔倒状态恢复至站立状态所执行的动作序列;所述目标动作用于表示所述机器人实际执行动作时每条腿的至少一个关节的力矩。
[0184]
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的摔倒自恢复学习方法,该方法包括:
[0185]
获取机器人的第一姿态信息;所述第一姿态信息包括第一旋转角度信息和第一关节角度信息;所述第一旋转角度信息用于表示所述机器人当前姿态对应的旋转角度;所述第一关节角度信息用于表示所述机器人当前姿态每条腿的至少一个关节对应的关节角度;
[0186]
将所述第一旋转角度信息和所述第一关节角度信息输入至摔倒恢复学习模型,得到所述摔倒恢复学习模型输出的第一动作;所述摔倒恢复学习模型是基于样本姿态信息进行训练得到的,用于确定所述机器人的第一动作;所述第一动作用于表示所述机器人每条腿的至少一个关节的力矩;
[0187]
基于所述第一动作和所述第一动作对应的预设动作,确定所述机器人的目标动作;所述预设动作用于表示预设策略中与所述第一动作对应的动作;所述预设策略包括所述机器人由摔倒状态恢复至站立状态所执行的动作序列;所述目标动作用于表示所述机器人实际执行动作时每条腿的至少一个关节的力矩。
[0188]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0189]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0190]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1