CN117944783A - 机器人的步态控制方法、机器人及控制终端 - Google Patents
机器人的步态控制方法、机器人及控制终端 Download PDFInfo
- Publication number
- CN117944783A CN117944783A CN202410156666.XA CN202410156666A CN117944783A CN 117944783 A CN117944783 A CN 117944783A CN 202410156666 A CN202410156666 A CN 202410156666A CN 117944783 A CN117944783 A CN 117944783A
- Authority
- CN
- China
- Prior art keywords
- leg
- robot
- information
- gait
- phase
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000005021 gait Effects 0.000 title claims abstract description 171
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000005265 energy consumption Methods 0.000 claims description 21
- 206010034701 Peroneal nerve palsy Diseases 0.000 claims description 19
- 238000004891 communication Methods 0.000 claims description 18
- 238000012549 training Methods 0.000 claims description 12
- 238000001514 detection method Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 6
- 230000001133 acceleration Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 3
- 210000001503 joint Anatomy 0.000 description 3
- 230000002787 reinforcement Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000009193 crawling Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 241000251468 Actinopterygii Species 0.000 description 1
- 241000270295 Serpentes Species 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Manipulator (AREA)
Abstract
本申请公开一种机器人的步态控制方法、机器人及控制终端,涉及机器人技术领域,旨在解决机器人的足端轨迹规划难以适应不同的运动工况和地形的问题。其中,机器人包括机身、至少两条腿以及与每条腿对应的步态状态机和电机,机器人的步态控制方法包括:获取机器人的支撑腿的足端信息和每条腿的相位信息,及机身的速度指令信息。根据支撑腿的足端信息和每条腿的相位信息,及机身的速度指令信息,获取机器人的步态信息。根据机器人的步态信息和每条腿的相位信息,获取每条腿的腿部状态信息。根据每条腿的腿部状态信息,获取每条腿对应的电机的关节力矩。根据每条腿对应的电机的关节力矩,控制每条腿对应的电机转动,以控制每条腿运动。
Description
技术领域
本申请涉及机器人技术领域,具体涉及一种机器人的步态控制方法、机器人及控制终端。
背景技术
足式机器人的步态是指有时序地进行足端轨迹规划,使得足式机器人能够有节律地运动。足式机器人的运动分为支撑相和摆动相,按照每条腿之间的相位差,步态可以分为爬行(Crawl)步态、对侧(Pace)步态、对角小跑(Trot)步态、跳跃(Bound)步态以及疾驰(Gallop)步态等。目前,足式机器人在足端轨迹规划方面主要采取静态的规划方法,难以适应不同的运动工况和地形。
发明内容
鉴于此,本申请提供一种机器人的步态控制方法、机器人及控制终端,旨在解决足端轨迹规划难以适应不同的运动工况和地形的问题。
本申请实施例第一方面提供一种机器人的步态控制方法,机器人包括机身、至少两条腿以及与每条腿对应的步态状态机和电机,方法包括:获取机器人的支撑腿的足端信息和每条腿的相位信息,及机身的速度指令信息。其中,支撑腿的足端信息包括支撑腿的足端当前位置与足端初始位置的偏差。每条腿的相位信息包括每条腿对应的步态状态机的相位进度率。机身的速度指令信息包括机身速度偏差。根据支撑腿的足端信息和每条腿的相位信息,及机身的速度指令信息,获取机器人的步态信息。根据机器人的步态信息和每条腿的相位信息,获取每条腿的腿部状态信息。根据每条腿的腿部状态信息,获取每条腿对应的电机的关节力矩。根据每条腿对应的电机的关节力矩,控制每条腿对应的电机转动,以控制每条腿运动。
在本实施例中,机器人仅通过支撑腿的足端信息和每条腿的相位信息,及机身的速度指令信息就能够控制每条腿运动,而不需要其他冗余信息,由此简化了机器人步态控制的优化问题,从而具有较佳的泛化能力,并且易于部署,能够适应更广泛的运动工况。
本申请实施例第二方面提供一种机器人,包括:机身,与机身连接的至少两条腿,与每条腿对应的步态状态机和电机,以及与机身通信的控制系统,控制系统包括控制器和存储器,控制器运行存储于存储器中的指令,使机器人执行如下操作:获取机器人的支撑腿的足端信息和每条腿的相位信息,及机身的速度指令信息。其中,支撑腿的足端信息包括支撑腿的足端当前位置与足端初始位置的偏差。每条腿的相位信息包括每条腿对应的步态状态机的相位进度率。机身的速度指令信息包括机身速度偏差。根据支撑腿的足端信息和每条腿的相位信息,及机身的速度指令信息,获取机器人的步态信息。根据机器人的步态信息和每条腿的相位信息,获取每条腿的腿部状态信息。根据每条腿的腿部状态信息,获取每条腿对应的电机的关节力矩。根据每条腿对应的电机的关节力矩,控制每条腿对应的电机转动,以控制每条腿运动。
本申请实施例第三方面提供一种机器人的控制终端,包括:与机器人通信的终端通信模块,机器人包括机身、至少两条腿以及与每条腿对应的步态状态机和电机,以及与终端通信模块通信的终端控制模块,终端控制模块包括终端控制器和终端存储器,终端控制器运行存储于终端存储器中的指令,使控制终端执行如下操作:获取机器人的支撑腿的足端信息和每条腿的相位信息,及机身的速度指令信息。其中,支撑腿的足端信息包括支撑腿的足端当前位置与足端初始位置的偏差。每条腿的相位信息包括每条腿对应的步态状态机的相位进度率。机身的速度指令信息包括机身速度偏差。根据支撑腿的足端信息和每条腿的相位信息,及机身的速度指令信息,获取机器人的步态信息。根据机器人的步态信息和每条腿的相位信息,获取每条腿的腿部状态信息。根据每条腿的腿部状态信息,获取每条腿对应的电机的关节力矩。根据每条腿对应的电机的关节力矩,控制每条腿对应的电机转动,以控制每条腿运动。
可以理解,本申请实施例第二方面提供的机器人、第三方面提供的机器人的控制终端的具体实施方式和有益效果均与第一方面提供的机器人的步态控制方法的具体实施方式和有益效果大致相同,此处不再赘述。
附图说明
图1是本申请一种实施例提供的机器人的硬件结构示意图。
图2是本申请另一种实施例提供的机器人的硬件结构示意图。
图3是图2所示的机器人的机械结构示意图。
图4是一种示例提供的步态状态机的工作原理图。
图5是本申请一种实施例提供的机器人的步态控制方法的流程图。
图6是一种示例提供的训练步态策略的流程图。
图7是一种示例提供的地形扰动的场景示意图。
图8是本申请一种实施例提供的机器人的步态控制方法的逻辑架构图。
图9是本申请一种实施例提供的控制终端的结构示意图。
具体实施方式
需要说明的是,本申请实施例中“多个”是指两个或多于两个。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。本申请的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别类似的对象,而不是用于描述特定的顺序或先后次序。
另外需要说明的是,本申请实施例中公开的方法或流程图所示出的方法,包括用于实现方法的一个或多个步骤,在不脱离权利要求的范围的情况下,多个步骤的执行顺序可以彼此互换,其中某些步骤也可以被删除。
下面结合图1至图3具体介绍本申请实施例的机器人。
机器人可以是足式机器人,也可以是足式与轮式相结合的机器人。其中,足式机器人包括多足机器人。多足机器人是指具有两个或者两个以上足端的足式机器人,例如多足机器人具体可以是四足机器人。机器人是指一种能够半自主或全自主执行工作的机器,机器人并不限定于人形的机器装置,还可以包括例如狗形、马形、蛇形、鱼形或者猿形等构型的机器人,例如机器人具体可以是一种四足的机器马。
图1是本申请一种实施例提供的机器人的硬件结构示意图。
如图1所示,机器人100包括机身110、腿120和控制系统130。机身110与至少两条腿120连接,每条腿120配置有对应的步态状态机140和电机150。控制系统130与机身110通信,控制系统130包括控制器131和存储器132,控制器131与存储器132连接。存储器132用于存储数据/指令。控制器131用于运行存储于存储器132中的指令,使机器人100执行相应的操作以实现各种功能,例如在地形扰动的场景下保持站立姿态,或者在平整/崎岖的地形环境下奔跑/行走/站立等。
可以理解,本实施例示意的结构并不构成对机器人的具体限定。在另一些实施例中,机器人可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。
举例而言,可一并参阅图2和图3,图2是本申请另一种实施例提供的机器人的硬件结构示意图,图3是图2所示的机器人的机械结构示意图。
如图2所示,机器人300包括机械单元301、通讯单元302、传感单元303、接口单元304、存储单元305、显示单元306、输入单元307、控制模块308及电源309。机器人300的各种部件可以任何方式连接,包括有线或无线连接等。
下面结合图2和图3对机器人的各个部件进行具体介绍。
机械单元301为机器人300的硬件。如图1所示,机械单元301可包括驱动板3011、电动机3012和机械结构3013。
如图3所示,机械结构3013可包括机身3014、可伸展的腿部3015、足端3016、可转动的头部结构3017、可摇动的尾巴结构3018、载物结构3019以及鞍座结构3020等。机器人300的每条腿包括腿部3015、足端3016以及对应的步态状态机(图未示)。
需要说明的是,机械单元301的各个部件的数目可以为一个或多个,可根据具体情况设置,比如腿部3015可为4个,每个腿部3015可配置3个电动机3012,对应的电动机3012为12个。
通讯单元302可用于信号的接收和发送,还可以通过与网络和其他设备通信,比如,接收遥控器或其他机器人发送的按照特定步态以特定速度值向特定方向移动的指令信息后,传输给控制模块308处理。通讯单元202可以包括诸如WiFi单元、4G单元、5G单元、蓝牙单元、红外单元等。
传感单元303用于获取机器人300周围环境的信息数据以及监控机器人300内部各部件的参数数据,并发送给控制模块308。传感单元303包括多种传感器,如获取周围环境信息的传感器:单目相机、激光雷达(用于远程物体检测、距离确定和/或速度值确定)、毫米波雷达(用于短程物体检测、距离确定和/或速度值确定)、全球导航卫星系统(GlobalNavigation Satellite System,GNSS)等。如监控机器人300内部各部件的传感器:惯性测量单元(Inertial Measurement Unit,IMU)(用于测量速度值、加速度值和角速度值)、足底传感器(用于监测足底着力点位置、足底姿态、触地力大小和方向)、温度传感器(用于检测部件温度)等。至于机器人300还可配置的载荷传感器、触摸传感器、电动机角度传感器、扭矩传感器等其他传感器,在此不再赘述。
接口单元304可以用于接收来自外部装置的输入信息(例如,数据信息、电力等),并且将接收到的输入信息传输到机器人300内的一个或多个部件,或者可以用于向外部装置输出信息(例如,数据信息、电力等)。接口单元304可包括电源端口、数据端口(如USB端口)、存储卡端口、用于连接具有识别单元的装置的端口、音频输入/输出(I/O)端口以及视频I/O端口等。
存储单元305用于存储软件程序以及各种数据。存储单元305可主要包括程序存储区和数据存储区。其中,程序存储区可存储操作系统程序、运动控制程序、应用程序(比如文本编辑器)等。数据存储区可存储机器人20在使用中所生成的数据(比如传感单元303获取的各种传感数据,日志文件数据)等。
显示单元306用于显示由用户输入的信息或提供给用户的信息。显示单元306可包括显示面板3061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板3061。
输入单元307可用于接收输入的数字或字符信息。具体地,输入单元307可包括触控面板3071和/或其他输入设备3072。触控面板3071,也称为触摸屏,可收集用户的触摸操作(比如用户使用手掌、手指或适合的附件在触控面板3071上或在触控面板3071附近的操作),并根据预先设定的程序驱动相应的连接装置。触控面板3071可包括触摸检测装置3073和触摸控制器3074。其中,触摸检测装置3073检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器3074。触摸控制器3074从触摸检测装置3073上接收触摸信息,并将它转换成触点坐标,再送给控制模块308,并能接收控制模块308发来的指令并加以执行。除触控面板3071以外,输入单元307还可以包括其他输入设备3072,例如遥控操作手柄,此处不作限定。
进一步的,触控面板3071可覆盖显示面板3061,当触控面板3071检测到在其上或附近的触摸操作后,传送给控制模块308以确定触摸事件的类型,随后控制模块308根据触摸事件的类型在显示面板3061上提供相应的视觉输出。虽然在图2中,触控面板3071与显示面板3061是作为两个独立的部件来分别实现输入和输出功能,但是在某些实施例中,可以将触控面板3071与显示面板3061集成而实现输入和输出功能,具体此处不作限定。
控制模块308是机器人300的控制中心,利用各种接口和线路连接整个机器人的各个部件,通过运行或执行存储在存储单元305内的软件程序,以及调用存储在存储单元305内的数据,从而对机器人300进行整体控制。
电源309用于给各个部件供电,电源309可包括电池和电源控制板,电源控制板用于控制电池充电、放电以及实现功耗管理等功能。在图2所示的实施方式中,电源309连接控制模块308,在其他实施方式中,电源309还可以与传感单元303(比如摄像头、雷达、音箱等)和电动机3012电性连接。需要说明的是,各个部件可以各自连接到不同的电源309,或者由相同的电源309供电。
在一些实施例中,控制终端可以控制机器人300。具体地,控制终端与机器人300通信连接,在控制终端与机器人300进行通信时,控制终端可以向机器人300发送控制指令,机器人300可通过通讯单元302来接收控制指令,并可在接收到控制指令的情况下,将控制指令传输至控制模块308,使得控制模块308可根据控制指令来实现相应的功能。控制终端包括,但不限于手机、平板电脑、服务器、个人计算机、可穿戴智能设备以及其他电子设备。
控制指令可以根据预设条件来确定。在一种实施例中,传感单元303根据机器人300所在的当前环境可生成控制指令。控制模块308可根据控制指令来判断机身3014和/或腿的当前速度值和当前加速度值是否满足对应的预设条件。若满足预设条件,则会保持机身3014和/或腿的当前速度值和当前加速度值移动。若不满足预设条件,则会根据对应的预设条件来确定目标速度值和目标加速度值,从而可控制机身3014和/或腿以目标速度值和目标加速度值移动。传感单元303与控制模块308之间的通信方式可以为有线通信,也可以为无线通信。无线通信的方式包括,但不限于无线网络、移动通信网络(3G、4G、5G等)、蓝牙及红外等。
下面对本申请实施例涉及的步态状态机进行具体说明。
足式机器人的步态是指有时序地进行足端轨迹规划,使得足式机器人能够有节律地运动。按照足式机器人的每条腿之间的相位差,步态可以分为爬行(Crawl)步态、对侧(Pace)步态、对角小跑(Trot)步态、跳跃(Bound)步态以及疾驰(Gallop)步态等。步态状态机用于根据机器人的步态信息,获取对应的腿部状态信息。机器人的步态信息包括每条腿的步频,步频是指腿在一个控制周期下的相位进度率。腿部状态信息包括腿在一个控制周期下是处于支撑相还是摆动相,以及在腿处于摆动相的情况下对应的相位进度率。
图4是一种示例提供的步态状态机的工作原理图。
如图4所示,对于机器人的单腿而言,从一个落足点到下一个落足点,腿的相位进度率从0开始,在每一个控制周期,步态状态机根据机器人的步态信息,更新对应腿的相位进度率,从而获取对应的腿部状态信息。例如,在腿开始运动,且尚未离开当前落足点时,腿的初始相位进度率为0,假设腿的步频为1%,则步态状态机将腿的初始相位进度率与步频相加,得到腿的目标相位进度率为1%。又例如,在腿已经离开当前落足点,且尚未触地时,假设腿在第N-1周期的相位进度率为WN-1,且腿在第N周期的步频为KN,则步态状态机将腿在第N-1周期的相位进度率与第N周期的步频相加,得到腿在第N周期的目标相位进度率为WN=WN-1+KN。
步态状态机根据机器人的腿的相位进度率,将机器人的腿的运动划分为支撑相和摆动相。示例性地,对于机器人的单腿而言,从一个落足点到下一个落足点的运动时长为总周期长度,总周期长度对应的相位进度率为100%。在机器人的腿的相位进度率小于或等于状态阈值时,步态状态机确定机器人的腿处于支撑相。在机器人的腿的相位进度率大于状态阈值时,步态状态机确定机器人的腿处于摆动相。状态阈值根据总周期长度对应的相位进度率设置,例如状态阈值可设为40%或50%等。
在本实施例中,步态状态机根据当前控制周期下机器人的腿的步频和上一个控制周期下机器人的腿的相位进度率,计算出当前控制周期下机器人的腿的目标相位进度率,再根据当前控制周期下机器人的腿的目标相位进度率,确定机器人的腿在当前控制周期下是处于支撑相还是摆动相。若步态状态机确定机器人的腿在当前控制周期下是处于摆动相,则输出腿部状态信息,腿部状态信息包括机器人的腿处于摆动相,以及在当前控制周期下机器人的腿的相位进度率。
在一种实施例中,机器人包括触地检测模块,触地检测模块用于检测机器人的腿是否与地面接触。若步态状态机确定机器人的腿在当前控制周期下是处于摆动相,且触地检测模块检测到机器人的腿与地面接触,则步态状态机根据腿的相位进度率,确定机器人的腿的触地场景。其中,机器人的腿的触地场景包含正常触地、提前触地及延后触地。
示例性地,在机器人的腿的相位进度率接近或等于总周期长度对应的相位进度率时,步态状态机确定机器人的腿的触地场景为正常触地。
在机器人的腿的相位进度率大于或等于提前触地阈值,且小于或等于总周期长度对应的相位进度率时,步态状态机确定机器人的腿的触地场景为提前触地,进而将机器人的腿的相位进度率重置为0,从而控制机器人的腿触地。提前触地阈值根据状态阈值设置,例如提前触地阈值可设为状态阈值加上20%或30%等。
在机器人的腿的相位进度率小于提前触地阈值时,步态状态机确定触地检测异常,进而判定机器人的腿仍然处于摆动相。其中,触地检测异常表示机器人的腿被触地检测模块误检测为提前触地。
在本实施例中,通过判定触地检测异常,有利于避免刚进入摆动相的腿被触地检测模块误检测为提前触地。
在机器人的腿的相位进度率大于总周期长度对应的相位进度率,且触地检测模块未检测到机器人的腿与地面接触时,步态状态机确定机器人的腿的触地场景为延后触地。进一步地,在机器人的腿的相位进度率大于延后触地阈值时,步态状态机将机器人的腿的相位进度率重置为0,从而控制机器人的腿触地。延后触地阈值根据总周期长度对应的相位进度率设置,例如延后触地阈值可设为110%或120%等。
在一些实施例中,在步态状态机确定机器人的腿处于摆动相,且接收的机器人的腿的当前步频为0时,步态状态机将当前步频调整为预设步频,再根据上一个控制周期下机器人的腿的相位进度率和当前控制周期下机器人的腿的预设步频,计算当前控制周期下机器人的腿的相位进度率。其中,预设步频为正数,例如预设步频可设为1%或2%等。
在本实施例中,通过将当前步频调整为预设步频,有利于避免机器人的腿因停顿在空中而导致机器人的机身失衡。
下面具体介绍本申请实施例的机器人的步态控制方法。
可以理解,机器人的步态控制方法可以应用于机器人,也可以应用于与机器人通信的控制终端。
图5是本申请一种实施例提供的机器人的步态控制方法的流程图。
以图1所示的机器人100为例,机器人的步态控制方法包括如下步骤:
S101,获取机器人的支撑腿的足端信息和每条腿的相位信息,及机身的速度指令信息。
在本实施例中,机器人的腿包括支撑腿和摆动腿。支撑腿是指处于支撑相的机器人的腿。摆动腿是指处于摆动相的机器人的腿。
支撑腿的足端信息包括支撑腿的足端当前位置与足端初始位置的偏差。足端当前位置是指当前控制周期下支撑腿的足端位置。足端初始位置是指支撑腿在相位进度率为0时的足端位置。支撑腿的足端位置可以通过机器人的传感器或电机编码器来采集。
示例性地,支撑腿的足端当前位置与足端初始位置的偏差SE={SE0,…,SEn},其中SE包含n个维度,每个维度各自对应机器人的一条腿。SEn的计算如公式(1)所示:
其中,Fn表示机器人的第n条腿的足端当前位置。Dn表示机器人的第n条腿的足端初始位置。En表示机器人的第n条腿的足端当前位置与足端初始位置的差值向量。Nn表示机器人的第n条腿的足端当前位置与足端初始位置的差值向量的二范数。Sn表示机器人的第n条腿的状态值,Sn为0或1。当机器人的第n条腿处于支撑相时,Sn为0;而当机器人的第n条腿处于摆动相时,Sn为1。SEn表示机器人的第n条腿的足端当前位置与足端初始位置的偏差。
每条腿的相位信息包括每条腿的相位进度率。每条腿的相位进度率可以通过每条腿各自对应的步态状态机来获取。
机身的速度指令信息包括机身速度偏差。机身速度偏差为机身指令速度与机身质心速度的差值。机身指令速度为预设值,表示期望的机身质心速度。机身质心速度是指机器人的质心的速度。机身质心速度可以通过机器人的传感器来采集。
S102,根据支撑腿的足端信息和每条腿的相位信息,及机身的速度指令信息,获取机器人的步态信息。
在本实施例中,机器人的步态信息包括每条腿的步频。机器人可以通过步态策略来获取步态信息。步态信息与支撑腿的足端信息、每条腿的相位信息及机身的速度指令信息相关联。
具体地,在每个控制周期,步态策略可以根据多条支撑腿的足端信息确定目标支撑腿,从而机器人可以控制目标支撑腿运动。其中,目标支撑腿的足端与机器人的机身之间的距离为多条支撑腿的足端与机器人的机身之间的多个距离的最大值。
而机器人的每条腿的运动与每条腿各自的相位进度率相关联。因此,在每个控制周期,步态策略可以根据每条腿的相位信息调节每条腿各自的相位进度率。示例性地,每条腿的相位信息包括每条腿的初始相位进度率,而每条腿的运动是要将每条腿的相位进度率从初始相位进度率调节为目标相位进度率。
进一步地,机器人的每条腿的相位进度调节量与每条腿的步频相关联。其中,相位进度调节量为目标相位进度率与初始相位进度率的差值。因此,在每个控制周期,步态策略可以根据机身的速度指令信息和每条腿的相位进度调节量确定每条腿的步频。示例性地,机身的速度指令信息包括机身速度偏差,在机身速度偏差超出预设范围时,说明机身质心速度偏离机身指令速度,此时需要提高步频,以减小机身速度偏差,使机身质心速度趋近于机身指令速度,从而使机器人的步态与机身指令速度相适应。而在每个控制周期,每条腿的步频即每条腿的相位进度调节量。
S103,根据机器人的步态信息和每条腿的相位信息,获取每条腿的腿部状态信息。
在本实施例中,腿部状态信息包括腿在一个控制周期下是处于支撑相还是摆动相,以及在腿处于摆动相的情况下对应的相位进度率。机器人可以通过每条腿对应的步态状态机来获取每条腿的腿部状态信息。
其中,步态状态机的工作原理可参阅图4及相关描述,在此不再赘述。
S104,根据每条腿的腿部状态信息,获取每条腿对应的电机的关节力矩。
在本实施例中,机器人可以根据每条腿的腿部状态信息获取每条腿的相位进度率,进而根据每条腿的相位进度率确定每条腿的足端位置和姿态,再通过逆运动学算法,根据每条腿的足端位置和姿态计算出每条腿对应的电机的关节力矩。
S105,根据每条腿对应的电机的关节力矩,控制每条腿对应的电机转动,以控制每条腿运动。
在本实施例中,机器人仅通过支撑腿的足端信息和每条腿的相位信息,及机身的速度指令信息就能够控制每条腿运动,而不需要其他冗余信息,由此简化了机器人步态控制的优化问题,从而具有较佳的泛化能力,并且易于部署,能够适应更广泛的运动工况。
下面对本申请实施例涉及的步态策略进行具体说明。
步态策略是控制机器人按照规划的步态运动的控制模型。在本实施例中,步态策略采用强化学习方法,即控制机器人按照不同的步态运动,观察机器人的运动状态并获取奖励值,从而逐渐调整步态策略,以获取更高的奖励值。
在一些实施例中,机器人的步态控制方法还包括训练步态策略。
其中,步态策略用于根据支撑腿的足端信息和每条腿的相位信息,及机身的速度指令信息,获取机器人的步态信息。
在其中一种实施例中,如图6所示,训练步态策略可以包括如下步骤:
S201,计算机器人的能耗与支撑腿落足偏差的综合奖励值。
在本实施例中,机器人的能耗与支撑腿落足偏差的综合奖励值用于优化机器人的能耗和机器人的运动姿态。
示例性地,机器人的能耗与支撑腿落足偏差的综合奖励值的计算如公式(2)所示:
其中,i表示机器人的腿关节的数目。τi表示机器人的第i个腿关节的关节扭力。ωi表示机器人的第i个腿关节的关节角速度。表示机器人的速度向量,包含横滚角、俯仰角和偏航角三个维度的速度分量。vxy表示机器人在横滚角方向和俯仰角方向构成的平面上的机身平面速度。vyaw表示机器人在偏航角方向的速度分量。SE表示支撑腿的足端当前位置与足端初始位置的偏差。R表示机器人的能耗与支撑腿落足偏差的综合奖励值。
此外,表示机器人的能耗奖励值。/>表示支撑腿落足偏差奖励值。
S202,根据机器人的能耗与支撑腿落足偏差的综合奖励值,优化每条腿的步态。
在本实施例中,机器人的能耗与支撑腿落足偏差的综合奖励值包含机器人的能耗奖励值和支撑腿落足偏差奖励值。机器人的能耗奖励值用于使步态策略学习能耗较低的步态,从而降低机器人在运动时的能耗。支撑腿落足偏差奖励值用于使步态策略学习支撑腿落足偏差较小的步态,从而使机器人的运动姿态更加美观。机器人的能耗与支撑腿落足偏差的综合奖励值综合考虑机器人的能耗与支撑腿落足偏差,用于使步态策略学习能耗较低且支撑腿落足偏差较小的步态,使机器人的运动兼顾低能耗和美观的特点。
S203,根据机身的速度指令信息,计算质心稳定性奖励值。
在本实施例中,质心稳定性奖励值用于优化机器人运动的稳定性。
示例性地,质心稳定性奖励值的计算如公式(3)所示:
其中,VError,xy表示机器人在横滚角方向和俯仰角方向构成的平面上的机身平面速度偏差。VError,yaw表示机器人在偏航角方向的速度分量偏差。P表示质心稳定性奖励值。
S204,根据质心稳定性奖励值,优化机身的稳定性。
在本实施例中,质心稳定性奖励值考虑横滚角、俯仰角和偏航角三个维度的速度分量偏差,机器人在横滚角方向和俯仰角方向的速度分量偏差共同构成机身平面速度偏差,机身平面速度偏差和机器人在偏航角方向的速度分量偏差共同构成机身速度偏差。质心稳定性奖励值用于使步态策略学习机身速度偏差较小的步态,使机身质心速度趋近于机身指令速度,从而使机器人的步态与机身指令速度相适应,进而使机器人的运动更加稳定。
可以理解,在其他实施例中,训练步态策略可以仅执行步骤S201和S202,也可以仅执行步骤S203和S204。
示例性地,步态策略的强化学习任务可以是控制机器人在地形扰动的场景下保持站立姿态。如图7所示,地形扰动的场景包括第一扰动源和第二扰动源,第一扰动源和第二扰动源分别以不同的方向和速度拉扯机器人的单腿或多条腿。训练步态策略可以执行步骤S203和S204,即根据机身的速度指令信息,计算质心稳定性奖励值,从而逐渐调整步态策略,优化机身的稳定性,使机器人保持站立姿态。
又例如,步态策略的强化学习任务可以是控制机器人在不同工况下适应性地调整步态。工况可以包括平整或崎岖的地形。训练步态策略可以执行步骤S201和S202,即计算机器人的能耗与支撑腿落足偏差的综合奖励值,从而逐渐调整步态策略,优化每条腿的步态,使机器人以Trot或类似Trot的步态在平整/崎岖的地形环境下奔跑/行走/站立等。
图8是本申请一种实施例提供的机器人的步态控制方法的逻辑架构图。
如图8所示,步态控制方法的逻辑架构包括步态策略210、步态状态模块220、状态估计模块230、底层控制器240及电机模块250。其中,步态策略210用于接收来自状态估计模块230的机器人的支撑腿的足端信息和每条腿的相位信息,及机身的速度指令信息,并根据支撑腿的足端信息和每条腿的相位信息,及机身的速度指令信息,获取机器人的步态信息。
步态状态模块220包括机器人的每条腿对应的步态状态机221。步态状态模块220用于接收来自步态策略210的机器人的步态信息和来自状态估计模块230的每条腿的相位信息,并根据机器人的步态信息和每条腿的相位信息,获取每条腿的腿部状态信息。
状态估计模块230用于接收来自底层控制器240的机器人的状态参数,并根据机器人的状态参数,获取机器人的支撑腿的足端信息和每条腿的相位信息,及机身的速度指令信息。机器人的状态参数包括支撑腿的足端位置、每条腿的相位进度率及机身质心速度。底层控制器240可以接收来自机器人的传感器或电机编码器的各种数据,并将各种数据加工成机器人的状态参数。
底层控制器240用于接收来自步态状态模块220的每条腿的腿部状态信息,并根据每条腿的腿部状态信息,获取每条腿对应的电机的关节力矩。
电机模块250包括机器人的每条腿对应的电机。电机模块250用于接收来自底层控制器240的每条腿对应的电机的关节力矩,并根据每条腿对应的电机的关节力矩,控制每条腿对应的电机转动,以控制每条腿运动。
可以理解,上述各个模块并不构成对步态控制方法的逻辑架构的具体限定。在另一些实施例中,步态控制方法的逻辑架构可以包括比图示更多或更少的模块,或者组合某些模块,或者拆分某些模块。
下面具体介绍本申请实施例的控制终端。
图9是本申请一种实施例提供的控制终端的结构示意图。
如图9所示,控制终端400包括终端通信模块410和终端控制模块420。终端通信模块410用于与机器人通信,机器人包括机身、至少两条腿以及与每条腿对应的步态状态机和电机。终端控制模块420与终端通信模块410通信,终端控制模块420包括终端控制器421和终端存储器422。终端存储器422用于存储数据/指令。终端控制器421用于运行存储于终端存储器422中的指令,使控制终端400执行如下操作:获取机器人的支撑腿的足端信息和每条腿的相位信息,及机身的速度指令信息。根据支撑腿的足端信息和每条腿的相位信息,及机身的速度指令信息,获取机器人的步态信息。根据机器人的步态信息和每条腿的相位信息,获取每条腿的腿部状态信息。根据每条腿的腿部状态信息,获取每条腿对应的电机的关节力矩。根据每条腿对应的电机的关节力矩,控制每条腿对应的电机转动,以控制每条腿运动。
上述操作的具体实施方式与图5所示的流程大致相同,此处不再赘述。
可以理解,本申请实施例示意的结构并不构成对控制终端的具体限定。在另一些实施例中,控制终端可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
上面结合附图对本申请实施例作了详细说明,但是本申请不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本申请宗旨的前提下做出各种变化。
Claims (11)
1.一种机器人的步态控制方法,所述机器人包括机身、至少两条腿以及与每条腿对应的步态状态机和电机,其特征在于,所述方法包括:
获取所述机器人的支撑腿的足端信息和所述每条腿的相位信息,及所述机身的速度指令信息;其中,所述支撑腿的足端信息包括所述支撑腿的足端当前位置与足端初始位置的偏差;所述每条腿的相位信息包括所述每条腿对应的所述步态状态机的相位进度率;所述机身的速度指令信息包括机身速度偏差;
根据所述支撑腿的足端信息和所述每条腿的相位信息,及所述机身的速度指令信息,获取所述机器人的步态信息;
根据所述机器人的步态信息和所述每条腿的相位信息,获取所述每条腿的腿部状态信息;
根据所述每条腿的腿部状态信息,获取所述每条腿对应的所述电机的关节力矩;
根据所述每条腿对应的所述电机的所述关节力矩,控制所述每条腿对应的所述电机转动,以控制所述每条腿运动。
2.如权利要求1所述的机器人的步态控制方法,其特征在于,所述方法还包括:
训练步态策略;所述步态策略用于根据所述支撑腿的足端信息和所述每条腿的相位信息,及所述机身的速度指令信息,获取所述机器人的步态信息。
3.如权利要求2所述的机器人的步态控制方法,其特征在于,所述训练步态策略包括:
计算所述机器人的能耗与支撑腿落足偏差的综合奖励值;
根据所述机器人的能耗与支撑腿落足偏差的综合奖励值,优化所述每条腿的步态。
4.如权利要求3所述的机器人的步态控制方法,其特征在于,所述训练步态策略还包括:
根据所述机身的速度指令信息,计算质心稳定性奖励值;
根据所述质心稳定性奖励值,优化所述机身的稳定性。
5.如权利要求1所述的机器人的步态控制方法,其特征在于,所述根据所述机器人的步态信息和所述每条腿的相位信息,获取所述每条腿的腿部状态信息,包括:
将当前控制周期的所述每条腿的步频和上一控制周期的所述每条腿对应的所述步态状态机的所述相位进度率相加,得到所述当前控制周期的所述每条腿对应的所述步态状态机的目标相位进度率;其中,所述机器人的步态信息包括所述每条腿的步频;
根据所述当前控制周期的所述每条腿对应的所述步态状态机的所述目标相位进度率,获取所述当前控制周期的所述每条腿的腿部状态信息。
6.一种机器人,其特征在于,包括:
机身;
与所述机身连接的至少两条腿;
与每条腿对应的步态状态机和电机;以及
与所述机身通信的控制系统,所述控制系统包括控制器和存储器,所述控制器运行存储于所述存储器中的指令,使所述机器人执行如下操作:
获取所述机器人的支撑腿的足端信息和所述每条腿的相位信息,及所述机身的速度指令信息;其中,所述支撑腿的足端信息包括所述支撑腿的足端当前位置与足端初始位置的偏差;所述每条腿的相位信息包括所述每条腿对应的所述步态状态机的相位进度率;所述机身的速度指令信息包括机身速度偏差;
根据所述支撑腿的足端信息和所述每条腿的相位信息,及所述机身的速度指令信息,获取所述机器人的步态信息;
根据所述机器人的步态信息和所述每条腿的相位信息,获取所述每条腿的腿部状态信息;
根据所述每条腿的腿部状态信息,获取所述每条腿对应的所述电机的关节力矩;
根据所述每条腿对应的所述电机的所述关节力矩,控制所述每条腿对应的所述电机转动,以控制所述每条腿运动。
7.如权利要求6所述的机器人,其特征在于,所述机器人还执行如下操作:
训练步态策略;所述步态策略用于根据所述支撑腿的足端信息和所述每条腿的相位信息,及所述机身的速度指令信息,获取所述机器人的步态信息。
8.如权利要求7所述的机器人,其特征在于,所述训练步态策略包括:
计算所述机器人的能耗与支撑腿落足偏差的综合奖励值;
根据所述机器人的能耗与支撑腿落足偏差的综合奖励值,优化所述每条腿的步态。
9.如权利要求8所述的机器人,其特征在于,所述训练步态策略还包括:
根据所述机身的所述速度指令信息,计算质心稳定性奖励值;
根据所述质心稳定性奖励值,优化所述机身的稳定性。
10.如权利要求6所述的机器人,其特征在于,所述根据所述机器人的步态信息和所述每条腿的相位信息,获取所述每条腿的腿部状态信息,包括:
将当前控制周期的所述每条腿的步频和上一控制周期的所述每条腿对应的所述步态状态机的所述相位进度率相加,得到所述当前控制周期的所述每条腿对应的所述步态状态机的目标相位进度率;其中,所述机器人的步态信息包括所述每条腿的步频;
根据所述当前控制周期的所述每条腿对应的所述步态状态机的所述目标相位进度率,获取所述当前控制周期的所述每条腿的腿部状态信息。
11.一种机器人的控制终端,其特征在于,包括:
与所述机器人通信的终端通信模块,所述机器人包括机身、至少两条腿以及与每条腿对应的步态状态机和电机;以及
与所述终端通信模块通信的终端控制模块,所述终端控制模块包括终端控制器和终端存储器,所述终端控制器运行存储于所述终端存储器中的指令,使所述控制终端执行如下操作:
获取所述机器人的支撑腿的足端信息和所述每条腿的相位信息,及所述机身的速度指令信息;其中,所述支撑腿的足端信息包括所述支撑腿的足端当前位置与足端初始位置的偏差;所述每条腿的相位信息包括所述每条腿对应的所述步态状态机的相位进度率;所述机身的速度指令信息包括机身速度偏差;
根据所述支撑腿的足端信息和所述每条腿的相位信息,及所述机身的速度指令信息,获取所述机器人的步态信息;
根据所述机器人的步态信息和所述每条腿的相位信息,获取所述每条腿的腿部状态信息;
根据所述每条腿的腿部状态信息,获取所述每条腿对应的所述电机的关节力矩;
根据所述每条腿对应的所述电机的所述关节力矩,控制所述每条腿对应的所述电机转动,以控制所述每条腿运动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410156666.XA CN117944783A (zh) | 2024-02-01 | 2024-02-01 | 机器人的步态控制方法、机器人及控制终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410156666.XA CN117944783A (zh) | 2024-02-01 | 2024-02-01 | 机器人的步态控制方法、机器人及控制终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117944783A true CN117944783A (zh) | 2024-04-30 |
Family
ID=90800040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410156666.XA Pending CN117944783A (zh) | 2024-02-01 | 2024-02-01 | 机器人的步态控制方法、机器人及控制终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117944783A (zh) |
-
2024
- 2024-02-01 CN CN202410156666.XA patent/CN117944783A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10239208B1 (en) | Determination of robotic step path | |
US11654985B2 (en) | Mechanically-timed footsteps for a robotic device | |
US9623568B1 (en) | Yaw slip handling in a robotic device | |
US11851120B2 (en) | Control of robotic devices with non-constant body pitch | |
EP2199038B1 (en) | Robot and task execution system | |
JP2019089200A (ja) | 自然なピッチとロール | |
US9555846B1 (en) | Pelvis structure for humanoid robot | |
WO2020153297A1 (ja) | ロボット制御システム | |
US9821461B1 (en) | Determining a trajectory for a walking robot to prevent motor overheating | |
CN112859851A (zh) | 多足机器人控制系统及多足机器人 | |
CN114510041A (zh) | 一种机器人运动路径规划方法及机器人 | |
US11992945B2 (en) | System and methods for training robot policies in the real world | |
CN117073662A (zh) | 地图构建方法、装置、机器人以及存储介质 | |
CN117944783A (zh) | 机器人的步态控制方法、机器人及控制终端 | |
CN114137992A (zh) | 一种降低足式机器人抖动的方法及相关装置 | |
JP2020116711A (ja) | ロボット制御システム | |
CN115709471B (zh) | 机器人状态值调整方法及机器人 | |
CN115446844B (zh) | 机器人的控制方法、机器人及控制终端 | |
CN114137954A (zh) | 一种四足机器人质心轨迹规划方法、装置及存储介质 | |
CN115922731B (zh) | 一种机器人的控制方法以及机器人 | |
CN114633826B (zh) | 一种足式机器人腿部磕碰处理的方法及足式机器人 | |
CN116880534A (zh) | 足式机器人控制方法以及机器人 | |
CN115981346B (zh) | 机器人控制方法以及机器人 | |
CN117021106A (zh) | 机器人的步态控制方法和机器人 | |
CN116276991A (zh) | 一种机器人提起处理的方法及机器人 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |