CN115781658A - 构建机器人的控制器的方法和机器人 - Google Patents
构建机器人的控制器的方法和机器人 Download PDFInfo
- Publication number
- CN115781658A CN115781658A CN202111063979.3A CN202111063979A CN115781658A CN 115781658 A CN115781658 A CN 115781658A CN 202111063979 A CN202111063979 A CN 202111063979A CN 115781658 A CN115781658 A CN 115781658A
- Authority
- CN
- China
- Prior art keywords
- robot
- controller
- data
- motion
- iteration
- 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
Images
Landscapes
- Manipulator (AREA)
Abstract
公开了一种构建机器人的控制器的方法、机器人、非暂时性计算机可读介质以及一种控制机器人的方法,所述方法包括:控制动力学特性未知的机器人在类平衡状态下运动,以获取运动过程中的运动状态数据和控制数据,所述类平衡状态下的机器人在运动过程中处于平衡点附近;根据所述运动状态数据和所述控制数据,使用数值迭代的方式计算线性平衡参数矩阵;以及基于所述线性平衡参数矩阵,构建对应于所述机器人的动力学特性的控制器。本公开可以使得机器人在动力学模型未知的情况下,也能够对机器人进行灵活控制。
Description
技术领域
本发明涉及人工智能及机器人领域,更具体地涉及一种构建机器人的控制器的方法、机器人、非暂时性计算机可读介质以及一种控制机器人的方法。
背景技术
随着人工智能及机器人技术在民用和商用领域的广泛应用,基于人工智能及机器人技术的机器人在智能交通、智能家居等领域起到日益重要的作用,也面临着更高的要求。
当前对机器人,特别是欠驱动机器人进行运动控制时,通常需要设计与机器人机械结构精确对应的动力学模型,然后基于该动力学模型在行进过程中的变化来确定机器人各个关节处的控制力,以保证机器人的运动过程中的平衡。然而,由于机器人的机械结构复杂,尤其是某些轮腿式机器人,即使在知晓机器人的机械结构的情况下也很难得出准确的动力学模型。此外,即使动力学模型已知,但在一些情况下难以准确地进行动力学模型中的参数辨识。如果动力学模型已知但参数不准确,也会造成机器人的控制器效果不理想。为此需要提出一种在未知机器人的动力学特性下,也能够对机器人进行灵活控制的方案。
发明内容
针对以上问题,本公开提供了一种构建机器人的控制器的方法、机器人、非暂时性计算机可读介质以及一种控制机器人的方法。利用本公开提供的构建机器人的控制器的方法可以使得机器人在没有精确的动力学模型下,也能够对机器人进行灵活控制。
根据本公开的一方面,提出了一种构建机器人的控制器的方法,所述方法包括:控制动力学特性未知的机器人在类平衡状态下运动,以获取运动过程中的运动状态数据和所述控制数据,所述类平衡状态下的机器人在运动过程中处于平衡点附近;根据所述运动状态数据和所述控制数据,使用数值迭代的方式计算线性平衡参数矩阵;以及基于所述线性平衡参数矩阵,构建对应于所述机器人的动力学特性的控制器。
可选地,所述机器人的类平衡运动状态是由第一控制器控制的,在所述对应于所述机器人的动力学特性的控制器的控制下的所述机器人,相对于在所述第一控制器的控制下的所述机器人,在运动过程中具有更优的控制效果。
根据本公开的一方面,提出了一种机器人,所述机器人包括:数据采集装置,被配置为:在控制动力学特性未知的机器人在类平衡状态下运动的情况下,获取所述机器人在类平衡状态下的运动状态数据,所述类平衡状态下的机器人处于平衡点附近;数据处理装置,被配置为:获取与所述运动状态数据对应的控制数据;根据所述机器人在类平衡状态下的运动状态数据和所述控制数据,使用数值迭代的方式计算线性平衡参数矩阵;以及基于所述线性平衡参数矩阵,构建对应于所述机器人的动力学特性的控制器。
根据本公开实施例的一个方面,提供了一种轮腿式机器人,所述轮腿式机器人包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述方法。
根据本公开实施例的一个方面,提供了一种非暂时性计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述方法。
可选地,本公开的实施例还对应地公开了一种利用控制器控制机器人的方法。所述机器人包括轮腿部和连接至所述轮腿部的基座部,所述轮腿部包括主动轮和至少一个关节。具体地,该方法包括:接收运动指令,所述运动指令指示所述机器人的运动轨迹;根据运动指令,利用控制器控制所述主动轮的驱动力,以使得所述机器人沿着目标轨迹平稳运动。在所述控制器的控制下的所述机器人,相对于在所述第一控制器的控制下的所述机器人,在运动过程中更靠近于平衡点。
可选地,本公开的实施例还对应地公开了一种控制机器人的方法。所述机器人由主动轮驱动,并且所述机器人的动力学特性未知,所述方法包括:接收运动指令,所述运动指令指示所述机器人的运动轨迹;根据运动指令,控制所述主动轮的驱动力,以使得所述机器人在类平衡状态下运动并获取运动过程中的运动状态数据和控制数据,所述类平衡状态下的机器人在运动过程中处于平衡点附近;基于所述运动状态数据和所述控制数据,使用数值迭代的方式构建对应于所述机器人的动力学特性的控制器;以及利用所述控制器控制所述主动轮的驱动力,以使得所述机器人平稳运动。
利用本发明提供的提供了一种构建机器人的控制器的方法、机器人、计算机可读存储介质,以及一种控制包括主动轮的机器人的方法,可以使得机器人在精确的动力学模型未知的情况下,也能够对机器人进行灵活控制。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员而言,在没有做出创造性劳动的前提下,还可以根据这些附图获得其他的附图。以下附图并未刻意按实际尺寸等比例缩放绘制,重点在于示出本发明的主旨。
图1示出了根据本公开实施例的具有单轮腿式构型的左轮腿部及右轮腿部的机器人的结构示意图。
图2示出了根据本公开实施例的构建机器人的控制器的方法的示例性流程图。
图3示出了根据公开实施例的机器人对应的简化动力学模型的示意图。
图4示出了根据本公开实施例的数值迭代方案的流程图。
图5示出了根据本公开实施例的机器人的又一结构视图。
图6A示出了机器人利用第一控制器控制机器人在类平衡状态下的运动过程中的运动状态数据和控制数据。
图6B示出了构建对应于所述机器人的动力学特性的控制器的过程中K(tf-kh)和H(tf-kh)的收敛过程,其中机器人的基座部高度为0.65米。
图6C示出了构建对应于所述机器人的动力学特性的控制器的过程中K(tf-kh)和H(tf-kh)的收敛过程,其中机器人的基座部高度为0.38米。
图6D示出了机器人利用所构建的控制器控制机器人在基座部高度为0.38米的情况下进行直线行走的运动状态数据和控制数据。
图6E示出了机器人利用所构建的控制器控制机器人在基座部高度为0.65米的情况下进行偏航的运动状态数据和控制数据。
图6F示出了机器人利用所构建的控制器控制机器人沿“S”路径运动的运动状态数据。
图6G示出了机器人利用所构建的控制器控制机器人在减速带上的运动状态数据。
图6H示出了机器人利用所构建的控制器控制机器人对抗外力的运动状态数据。
具体实施方式
下面将结合附图对本发明实施例中的技术方案进行清楚、完整地描述,显而易见地,所描述的实施例仅仅是本发明的部分实施例,而不是全部的实施例。基于本发明实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,也属于本发明保护的范围。
如本公开和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。
虽然本公开对根据本公开的实施例的系统中的某些模块做出了各种引用,然而,任何数量的不同模块可以被使用并运行在用户终端和/或服务器上。所述模块仅是说明性的,并且所述系统和方法的不同方面可以使用不同模块。
本公开中使用了流程图用来说明根据本公开的实施例的系统所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,根据需要,可以按照倒序或同时处理各种步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
本公开技术方案主要涉及人工智能技术中的机器人技术,主要涉及机器人智能控制。机器人是利用机械传动、现代微电子技术组合而成的一种能模仿人某种技能的机械电子设备,机器人是在电子、机械及信息技术的基础上发展而来的。机器人的样子不一定必须像人,只要能自主完成人类所赋予他的任务与命令,就属于机器人大家族的成员。机器人是一种自动化的机器,这种机器具备一些与人或生物相似的智能能力,如感知能力、规划能力、动作能力和协同能力,是一种具有高度灵活性的自动化机器。随着计算机技术和人工智能技术的发展,使机器人在功能和技术层次上有了很大的提高,移动机器人和机器人的视觉和触觉等技术就是典型的代表。
本公开涉及一种人工智能在机器人控制方面的应用,具体地,本公开提出了一种基于人工智能来构建机器人的控制器的方法,该方案增加了利用待优化的任意控制器来构建对应于机器人的动力学特性的控制器。在所述对应于机器人的动力学特性的控制器的控制下的所述机器人,相对于在该待优化的任意控制器的控制下的所述机器人,具有更靠近于平衡点的运动状态。
本公开涉及的机器人可以是欠驱动的机器人,例如,其可以是如图1所示轮腿式机器人。具体地,图1示出了根据本公开实施例的具有单轮腿式构型的左轮腿部及右轮腿部的机器人的结构示意图。
如图1所示,其示例性示出了一种机器人100的结构示意图。该轮腿式机器人100可以包括:基座部101、轮腿部103和轮腿部103中的主动轮104(又称为足部)。基座部101是指该机器人的主体部分,例如可以为该机器人的躯干部,该基座部例如可以为连接至该机器人的轮腿部的平面板状部件或长方体状部件。作为示例,轮腿部103的一端与基座部101连接,另一端与主动轮104连接。基座部101上装配有动力输出装置(例如,电机),可用于驱动轮腿部103的关节提供电力。应了解,根据实际需要,该机器人例如还可以包括连接至该轮腿部的基座部或设置在该基座部上的附加部件。应了解,上述仅给出一种机器人的结构示例,本公开的实施例不受该机器人的具体组成部件及其连接方式的限制。
轮腿部103中的主动轮104可以使得轮腿式机器100人既可以进行行走,也可以进行轮式运动。可选地,轮腿式机器人100还可以包括可控的附加部件(例如,尾巴),该尾巴可用于平衡轮腿式机器人,也可以辅助轮腿式机器人运动。例如,该尾巴可以辅助轮腿式机器人在运动中保持平衡。可选地,轮腿式机器人还可以包括可控的机械臂,机械臂可用于执行如搬运、拾取等操作任务。轮腿式机器人可以包括双足轮腿式机器人、四足轮腿式机器人等,本公开实施例在此不作限定。
例如,轮腿部103为并联结构腿(双足轮腿式机器人100的两条腿之间为平衡)。参照图1,所述机器人100的轮腿部102包括左轮腿部和右轮腿部,所述左轮腿部及右轮腿部中的每一个包括主动轮及连接至该主动轮的中心轴且用于实现对该主动轮的运动控制的两个并联腿部。例如,该左轮腿部例如包括左主动轮,以及并联的第一左轮腿部及第二左轮腿部;且该右轮腿部112例如包括右主动轮,以及并联的第一右轮腿部及第二右轮腿部。如图1所示,左轮腿部和右轮腿部具有镜像对称的结构。
例如,该主动轮例如可以为单轮、两轮、四轮或其他个数的主动轮构型,且每一个主动轮例如可以通过并联的两个的腿部或串联的多个腿部进行控制。应了解,本公开的实施例不受该左、右轮腿部的具体组成类型及其主动轮数量的限制。在一些实施例中,所述左轮腿部及所述右轮腿部均为单轮腿式构型。所述单轮腿式构型是指该轮腿部仅包括单个主动轮。
例如,该左轮腿部与该右轮腿部例如可以包括相同的关节个数且具有相同的关节构型,或者,根据实际需要,该左轮腿部和该右轮腿部例如可以具有不同的关节个数且具有不同的关节构型。本公开的实施例不受该左轮腿部与该右轮腿部所具有的具体关节个数及关节构型的限制。以图1所示的示例为例,左、右轮腿部中各包含5个关节,且共有2个转动自由度,可以通过调整轮腿部103的各个关节来调整轮腿部/基座部的质心高度的变化和基座部的倾斜角。
与串联结构腿相比,并联结构腿能够具有更强的刚度,可承受复杂运动中可能带来的冲击。在与地面接触时,主动轮104可为轮腿式机器人100提供滑行的运动能力。可选地,双足轮腿式机器人100还可以包括附加部件102,附加部件102和基座部101连接。附加部件102上可装置被动轮105。附加部件102包括1个转动自由度。附加部件102的运动也会对基座部101和轮腿部103的变化产生影响,例如,带动基座部,使其具有一定的转动速度。由此,可通过调整附加部件102的位置来调节机器人100的平衡与姿态。
轮腿式机器人100既具有轮式机器人的灵活性又具有腿式机器人的灵活性,因此可以在平坦的地面上快速移动并穿越崎岖不平的道路。但是,对于某些轮腿式机器人(类似于图1所示的轮腿式机器人100),该机器人与地面之间只有两个接触点。并且该轮腿式机器人100是非最小相位系统,因此在实际应用中仍难以对该轮腿式机器人100进行平衡控制。此外,由于(轮腿式)机器人的复杂机械结构,很难确定该(轮腿式)机器人的动力学特性。由于传统的平衡控制方法需要知晓机器人的动力学特性,因此,在未知动力学特性的情况下,传统的平衡控制方法难以对这样的机器人进行平衡控制。
本公开的实施例提供的构建机器人的控制器的方法,涉及在机器人的动力学特性未知的情况下,利用数据驱动(data-driven)的数值迭代(VI)方案来设计使得该机器人在运动中能够保持平衡的控制器。具体地,本公开的实施例基于最优控制和自适应动态规划(ADP)技术,提出了一种基于自适应动态规划的数值迭代方法。该数据基于自适应动态规划的数值迭代方法能够在机器人动力学特性未知的情况下计算收敛至对应于机器人的动力学特性的控制器。与该机器人的精确动力学特性对应的控制器也即对应于线性二次调节问题的最优解的控制器,其能够使得机器人在平衡状态下以最优的控制效果沿目标轨迹行进。
本公开的实施例基于人工智能技术,例如强化学习和ADP技术,利用数值迭代方案,在未知机器人的动力学特性的情况下解决了机器人的最优平衡控制问题。本公开的实施例的构建控制器的过程仅需要轮腿式机器人在非最优控制器/任意控制器的控制下行进一段时间/一段轨迹,并收集与该时间段/轨迹相对应的运动状态数据和控制数据作为训练数据。由此,本公开的实施例的训练数据的数量远远小于传统的强化学习算法所需的数据量。更进一步地,本公开的实施例的训练的控制器随着学习步长的增加而逐渐收敛到对应于线性二次调节问题的最优解的控制器,从而可以保证闭环系统的稳定性,其训练过程被大大的简化,并且不需要对训练数据进行额外的限制,从而简化了轮腿式机器人的控制器的设计过程。
为便于进一步描述本公开,在这里先简要解释后文中可能使用到的各种运算符和集合的含义。
图2示出了根据本公开实施例的构建机器人的控制器的方法200的示例性流程图。接下来将结合图2对方法200进行更具体地描述。例如,该机器人可以是图1中所示的机器人100。
参照图2,在步骤S201中,控制动力学特性未知的机器人在类平衡状态下运动,以获取运动过程中的运动状态数据和控制数据,所述类平衡状态下的机器人在运动过程中处于平衡点附近。例如,可以使用第一控制器来控制控制动力学特性未知的机器人在类平衡状态下运动,例如,在一些第一控制器的控制下,所述机器人会以一定幅度在平衡点左右摆动。例如,如果在第一控制器控制下控制动力学特性未知的机器人在类平衡状态下运动,那么可以以第一控制器的输出作为所述控制数据。而如果未设定控制器来控制机器人进行类平衡状态下的运动,而是以随机地控制机器人,那么可以通过在真机上采集控制器的输出(例如,检测主动轮的驱动力等)来获取所述控制数据。本公开不对控制数据的获取方式进行限制。
在步骤S202中,根据所述运动状态数据和所述控制数据,使用数值迭代的方式计算线性平衡参数矩阵。在步骤S203中,基于所述线性平衡参数矩阵,构建对应于所述机器人的动力学特性的控制器。例如,在对应于所述机器人的动力学特性的控制器的控制下的所述机器人,相对于在所述第一控制器的控制下的所述机器人,在运动过程中可以具有更优的控制效果。比如,在对应于所述机器人的动力学特性的控制器下的所述机器人在平衡点左右的摆动幅度可以比在第一控制器下的更小。又例如,在所述控制器的控制下的所述机器人,相对于在所述第一控制器的控制下的所述机器人,在运动过程中可以以较快的收敛于平衡点附近、或机器人的震荡更小、或控制速度更快、或超调量更小、或稳态误差更小等等。或者,在一些情况下,任意控制器和控制器具有同等的控制效果,但是控制器的控制输入更小。本公开对此不进行限制。
以行进的机器人100为例进行说明。处于平衡状态下的机器人100在线性运动维度和旋转运动维度上可以是处于稳定平衡状态的。例如,处于平衡状态下的机器人100能够在运动过程中保持与平衡点定义的状态相同/非常近似的状态,或者能够在运动过程中以最快的速度/最小的能耗恢复到与平衡点定义的状态。平衡点定义的状态可以是使得机器人100处于俯仰角为零、俯仰角对应的角速度为零、且线性速度处于目标速度的状态。例如,此时机器人100的姿态为竖直向上的状态,并且此时机器人100不具备旋转运动维度上的速度仅具备线性运动维度上的目标速度。
而处于类平衡状态下的机器人100则在运动过程中处于平衡点附近定义的状态。例如,其在线性运动维度和旋转运动维度上可能处于由稳定平衡状态过渡到不稳定平衡状态的中间状态。类平衡状态下的机器人100在运动过程可能需要主动轮提供较大的力和力矩才能保证其不跌倒。例如,此时机器人100可以左右倾斜,并且此时机器人100不仅具备线性运动维度上的速度还具备旋转运动维度上的速度。值得注意的是,本文中处于类平衡状态下的机器人100在运动中的某些时刻也可能在线性运动维度或旋转运动维度上处于接近不稳定平衡状态,只要其能够通过主动轮104的驱动力恢复到能够正常行进的状态即可。
作为一个示例,如果机器人100仅在主动轮104的控制下沿直线运动,平衡状态下的机器人100能够始终保持竖直向上的姿态以匀速直线运动,也即,不稳定平衡状态的机器人100的基座部的中轴线能够时刻垂直于水平线并且不具备旋转运动维度上的速度/加速度。而类平衡状态下的机器人100的基座部则可能具备倾斜角(俯仰角),并具备旋转运动维度上的速度/加速度。
本公开的实施例首先使得机器人以类平衡状态行进一段时间/一段轨迹,并收集与该时间段/轨迹相对应的运动状态数据和控制数据作为训练数据。由于机器人100的动力学特性未知,训练数据对应于非最优控制器(或者,在一些情况下,对应于第一控制器)。非最优控制器是仅能使得机器人100沿目标轨迹跌跌撞撞地运动的控制器。例如,作为非最优控制器的第一控制器可以是与简化动力学特性对应的控制器。例如,对于复杂轮腿式机器人对应的精确的动力学模型,可以将其简化成仅由主动轮和基座部组成的等效动力学模型等等。之后将参考图3描述如何进一步基于简化的动力学模型设计第一控制器。在此就不再赘述。又例如,第一控制器也可以是PID控制器等等。在一些情况下,第一控制器中的参数甚至可以是任意值。甚至,可以直接随机地以任意控制数据来控制机器人。本公开不对第一控制器的具体设计方案进行限制,只要其能够控制机器人在类平衡状态下运动即可。
然后,本公开的实施例利用数据驱动(data-driven)的数值迭代(VI)方案来计算线性平衡参数矩阵,进而构建控制器。所述控制器的控制效果将优于非最优控制器(或者,在一些情况下,对应于第一控制器)的控制效果。
可选地,所述控制器在一时刻提供的控制力负相关于所述线性平衡参数矩阵和所述机器人在所述时刻的运动状态数据之间的乘积。
例如,控制器可以具有u(t)=-Kx(t)的形式,其中K是对应于所述未知的动力学特性的机器人的线性平衡参数矩阵,u(t)是对应于所述控制器在时刻t控制电机输出的控制力,x(t)是对应于所述机器人在时刻t的运动状态数据。所构建的控制器能够收敛于对应于线性二次调节问题的最优解的控制器。对应于线性二次调节问题的最优解的控制器也即是与该机器人的精确动力学特性对应的控制器。且对应于线性二次调节问题的最优解的控制器能够最小化机器人在运动过程中的成本泛函,以使得机器人在平衡状态下以最优的控制效果沿目标轨迹行进。之后将在下文中进一步描述数值迭代方案和线性平衡参数矩阵的计算方案,在此就不再赘述。
由此,本公开的实施例的训练数据的数量远远小于传统的强化学习算法所需的数据量。更进一步地,本公开的实施例的训练的控制器随着学习步长的增加而逐渐收敛到对应于线性二次调节问题的最优解的控制器,从而可以保证闭环系统的稳定性,其训练过程被大大的简化,并且不需要对训练数据进行额外的限制,从而简化了机器人的控制器的设计过程。此外,本公开的实施例可以在时间真机上直接进行数据采集,训练得到的控制器直接应用于真机。本公开的实施例不需要在仿真机中进行数据采集,也省去了虚拟世界中的数据向现实世界中迁移带来的一些问题。
可选地,本公开的实施例还对应地公开了一种利用对应于机器人的动力学特性的控制器控制机器人的方法。所述机器人包括轮腿部和连接至所述轮腿部的基座部,所述轮腿部包括主动轮和至少一个关节。具体地,该方法包括:接收运动指令,所述运动指令指示所述机器人的运动轨迹;根据运动指令,利用对应于所述机器人的动力学特性的控制器控制所述主动轮的驱动力,以使得所述机器人沿着目标轨迹平稳运动。在所述对应于所述机器人的动力学特性的控制器的控制下的所述机器人,相对于在所述第一控制器的控制下的所述机器人,在运动过程中更靠近于平衡点。
可选地,本公开的实施例还对应地公开了一种控制机器人的方法。所述机器人的动力学特性未知。具体地,该方法包括:接收运动指令,所述运动指令指示所述机器人的运动轨迹;根据运动指令,控制所述主动轮的驱动力,以使得所述机器人在类平衡状态下运动并获取运动过程中的运动状态数据和控制数据,所述类平衡状态下的机器人在运动过程中处于平衡点附近;基于所述运动状态数据和所述控制数据,使用数值迭代的方式构建对应于所述机器人的动力学特性的控制器,利用控制器控制所述主动轮的驱动力,以使得所述机器人平稳运动。在所述控制器的控制下的所述机器人,相对于在任意其它控制器的控制下的所述机器人,在运动过程中具有更优的控制下过,例如,更靠近于平衡点。
由此,本公开的实施例的控制机器人的方法能够使得动力学特性未知的机器人学习运动过程中的数据,并逐步改进/生成对应于所述机器人的动力学特性的控制器,最终能够实现平稳运动。由于可以使用任意的控制输入来控制机器人运动一段时间以获得训练数据,在这样的情况下,本公开的实施例实现了从无到有生成了对应于所述机器人的动力学特性的控制器。也即本公开的实施例可以使得机器人在没有精确的动力学模型的情况下,也能够对机器人进行灵活控制。
接下来参考图3进一步描述第一控制器的示例。图3示出了根据公开实施例的机器人对应的简化动力学模型的示意图。
如图3所示,由于机器人100的机械结构较复杂,难以获取该机器人100对应的精确的动力学特性。为了使得机器人能够行驶,可以将机器人的动力学模型进行简化以得到一个非精确的动力学模型。例如可以将图1中示出的复杂的机器人100简化为图3所示的倒立摆模型。例如,当主动轮104被驱动时,轮腿部103中的各个关节的角度将随之改变,进而基座部101的质心与主动轮104的质心之间的连线与垂直线之间的夹角θ改变,θ又被称为机器人的倾斜角(俯仰角)。为简化运算,在设计第一控制器(第一控制器仅用于控制主动轮104的驱动力u)时,不考虑并联式腿的重量,而仅考虑基座部101的质量mb和主动轮104的质量mc。由此,可以构建如下式(1)所示的粗糙的动力学模型。
其中m11=mb+mc,m12=mbl,m22=mbl2,m22=mbl2,G=mbgl。具体地,x表示主动轮104的中心的位置。表示机器人100的前进速度。u表示主动轮104提供的驱动力。rw是主动轮104的半径。l是基座部101的高度。是x的二阶导数,表示机器人100的前进加速度。是夹角θ的一阶导数,表示基座部101的旋转角速度。是夹角θ的二阶导数,表示基座部101的旋转角加速度。
其中,
由此,可以根据公式(2),求解得到主动轮104的驱动力u。也即,可以基于x、A和B得到第一控制器。
作为一个示例,基于以上推导,可以由所述第一控制器,根据所述机器人的当前运动状态,确定初始控制指令,所述初始控制指令用于控制所述机器人在类平衡状态下运动,并获取所述第一控制器的控制数据;以及根据所述第一控制器的控制数据,控制所述机器人在类平衡状态下运动,以获取所述运动过程中的运动状态数据。
其中,第一控制器在时刻t提供的驱动力u(t)为时刻t对应的x的函数,将其简记为u(t)=u0(x)。上述的模型仅是一种非精确的动力学模型,其并未考虑到该机器人中其它组件对于运动可能产生的影响,其中的组件参数也可能存在误差。因此通过基于公式(2)的第一控制器控制机器人进行运动时,机器人虽然能够大致沿着目标轨迹行进,但在运动过程中将存在大量的处于平衡点附近的时刻,甚至会出现大幅处于平衡点附近的时刻。因此,利用第一控制器控制机器人运动,往往使得机器人处于类平衡状态下。由此,可以采集得到机器人在类平衡状态下的运动状态数据。
本领域技术人员应当理解,图3仅仅是根据公开实施例的机器人对应的简化动力学模型(推车倒立摆模型)的一种示例,还可以基于其它简化动力学模型例如滑轮倒立摆模型来得到第一控制器。例如,可以进一步考虑轮腿部的各个关节的质量和/或各个关节的联动来设计等效模型。或者,还可以进一步考虑到在行进过程中,基座部101的质心与主动轮104的质心之间的距离会随着运动缩短和伸长,可以将基座部101和轮腿部103的关节部分等效为可变长伸缩长方体,等等。而不同的等效模型仅会导致A和B这两个矩阵中的具体参数的差异,在本申请的实施例中的技术方案下,而不会影响后续的对应于所述机器人的动力学特性的控制器训练结果。也即,第一控制器对应的等效模型的不同仅仅会导致获取得到的运动状态数据的不同和所述第一控制器的控制数据的不同,而不会导致构建的对应于所述机器人的动力学特性的控制器的不同。
又例如,如果等效模型考虑的变量越多或者等效模型越接近机器人的实际构型,那么由第一控制器控制的机器人在运动过程中大幅处于平衡点附近的时刻越少,或者偏离平衡点的幅度越小。甚至针对一些可能的模型,由第一控制器控制的机器人可以实现在近平衡状态下运动。也即,由第一控制器控制的机器人在运动过程中可以绕平衡点运动。
作为另一个示例,基于以上推导,还可以由所述第一控制器,根据所述机器人的当前运动状态,确定初始控制指令,所述初始控制指令用于控制所述机器人在平衡状态下或在类平衡状态下运动;对所述初始控制指令指示的控制数据施加扰动,获得所述第一控制器的控制数据;和根据所述第一控制器的控制数据,控制所述机器人在类平衡状态下运动,以获取所述运动过程中的运动状态数据。例如,可以将噪声β(t)加到u0上,以对上述的控制数据施加扰动。在这种情况下,第一控制器在时刻t提供的驱动力u(t)为噪声β(t)和时刻t对应的x的函数的线性叠加,将其简记为u(t)=u0(x)+β(t)。由此,系统可以收集到足够多的类平衡运动状态下的运动数据。
在已知第一控制器的情况下,即可以获取运动过程中的运动状态数据和所述第一控制器的控制数据。例如,在预设目标轨迹的情况下,可以通过机器人上的各类传感器收集机器人运动过程中的运动状态数据,并实时地基于运动状态数据计算第一控制器对应的值作为控制数据,然后再基于该控制数据进一步控制机器人在下一个时刻的运动状态。
例如,针对图1描述的机器人100,运动状态数据可以是在机器人100在第一控制器的控制下以类平衡状态运动预定时段的过程中采样的连续时刻的数据,其包括与这些连续时刻对应的基座部101的俯仰角、基座部101的俯仰角速度、主动轮104的线性速度和目标线性速度之差。所述控制数据为这些连续时刻对应的主动轮104的驱动力和/或力矩。
接下来参考图4进一步描述获取对应于所述机器人的动力学特性的控制器的示例。图4示出了根据本公开实施例的数值迭代方案的流程图。
首先,机器人100的运动过程在数学上可被看作一个连续时间线性系统。假设对于机器人100存在对应于线性二次调节问题的最优解的控制器,其能够使得机器人的运动过程对应的成本泛函最小。例如,对应于线性二次调节问题的最优解的控制器能够最小化机器人处于平衡点附近的成本并能以最小能耗沿目标轨迹行进。作为一个示例,线性二次调节问题由公式(3)定义,其指示在的情况下,求解能够最小化连续时间线性系统的成本泛函J的控制器。
其中,J是该连续时间线性系统的成本泛函,Q是一个实对称且正半定的矩阵,是可观测的,并且r>0。如果机器人100的精确动力学特性已知,那么公式(3)中的矩阵A和B就已知。在已知公式(3)中的矩阵A和B的情况下,以下代数黎卡提(AlgebraicRiccati)等式(公式(4))即可作为由公式(3)定义的以下线性二次调节(LQR)问题的解。
其中,u*(t)为对应于线性二次调节问题的最优解的控制器,P*为满足的矩阵。根据LQR相关理论,针对公式(3)和公式(4),如果(A,B)是可稳定的且是可观测的,那么对于任何S≥0,limS→-∞P(s)=P*,其中,P(s)是下列微分黎卡提方程(公式(5))的解,而P*是公式(4)的解。
也即,在s趋向负无穷时,P(s)将收敛于P*。也即,在已知矩阵A和B且已知初始状态和终末状态下,可以通过在时间上一步步倒推出公式(5)的解,从而求解出P*(s)。然而,由于未知机器人100的精确动力学特性,因此矩阵A和B未知,上述公式(4)并不能直接被求解得到。
为此,本公开提出了一种使用数据驱动的数值迭代的方案来求解公式(5)的方案,其能够在矩阵A和B未知的情况下,求解得到收敛于P*的P(s)。而公式(5)可以通过数值迭代的方案而被求解。
例如,针对图2中的步骤S202,其可以进一步包括:步骤S2021,对对应于所述多个时间间隔中的所述运动状态数据和所述控制数据分别进行积分运算,构建迭代关系函数;和步骤S2022,根据所述迭代关系函数,对迭代目标项进行数值迭代,逼近得到对应于所述机器人的动力学特性的所述线性平衡参数矩阵。可选地,线性平衡参数矩阵K即为其中,s趋向负无穷。
接下来,以图1至图3中描述的示例来分别说明步骤S2021和步骤S2022。根据图1至图3的描述,可以获得机器人在类平衡状态下进行运动过程的运动状态数据和第一控制器的控制数据。也即,至少在该段运动过程中,基于公式(2),以下公式(6)成立。
进一步地,运动状态数据是通过传感器在一段时间中以一定的时间间隔采集的,其分别对应于一段时间内的各个离散的时刻的机器人的运动状态。因此运动状态数据和所述第一控制器的控制数据是可以对应于[t1,tl]中的多个时间间隔。所述多个时间间隔中的任意一个时间间隔ti至ti+1可以被记为[ti,ti+1],其时长可以根据机器人传感器能够达到的数据收集时间间隔来确定。
参考图4,可以对对应于所述多个时间间隔中的所述运动状态数据和所述控制数据分别进行积分运算,构建迭代关系函数。积分运算后的所述运动状态数据和所述控制数据将作为训练数据,参与步骤S2022中的对迭代目标项进行数值迭代的过程,以逼近得到对应于所述机器人的动力学特性的所述线性平衡参数矩阵。值得注意的是以下描述的仅是一种示例性的积分运算,本公开并不以此为限。
例如,对于任意的[ti,ti+1],基于公式(6),可以得到公式(7)。
根据公式(7)可知,任意两个相邻时刻ti和ti+1之间的运动状态数据在时间上的积分可能与以下各项中的至少一项相关:时刻ti的运动状态数据的二次项、时刻ti+1的运动状态数据的二次项、时刻ti的运动状态数据与时刻ti+1的运动状态数据的乘积、时刻ti的控制数据与时刻ti的运动状态数据的乘积、时刻ti+1的控制数据与时刻ti+1的运动状态数据的乘积等等。
为便于进一步描述数值迭代的过程,以公式(8)定义以下三个数据集合,第一数据集合Dxx、第二数据集合Ixx和第三数据集合Ixu。每个数据集合都对应于所述多个时间间隔中的所述运动状态数据和所述控制数据的非线性组合,例如涉及积分运算和乘积计算等等。可选地,第二数据集合Ixx和线性变化后的第三数据集合2rIxu可以被拼接成一个满秩的矩阵M。本公开并不以此为限。
在公式(8)中,t0<t1<…<ti<…<tl+1,[ti,ti+1]是数据收集时间间隔。例如,对于图1中的机器人100,第一数据集合Dxx中的任意元素
对应于时刻ti和时刻ti+1的基座部俯仰角、基座部俯仰角速度、主动轮的线性速度与目标速度之差中任意两项的乘积或任意一项的二次项之差。第二数据集合Ixx中的任意元素对应于时刻ti和时刻ti+1的基座部俯仰角、基座部俯仰角速度、主动轮的线性速度与目标速度之差中任意两项的乘积或任意一项的二次项的积分。第三数据集合Ixu中的任意元素对应于时刻ti和时刻ti+1的基座部俯仰角、基座部俯仰角速度、主动轮的线性速度与目标速度之差中任意一项与主动轮的驱动力的乘积的积分。不同机器人的构型将对应于与不同的数据集合,以上仅作为示例示出,本公开并不以此为限。
在获取训练数据之后,还需要进一步分析上述训练数据之间的关系,以构建迭代关系函数,从而求解出线性平衡参数矩阵。本领域技术人员应当理解,不同的训练数据的构建模式将对应地影响所构建的迭代关系函数的形式,以下仅是示例性的给出基于公式(8)而得到的迭代关系函数,本公开并不以此为限。
例如,结合公式(8),令M=[Ixx,2rIxu],可以将区间[t1,t2]到[tl,tl+1]的公式(7)写成紧凑形式,得到以下公式(9)。
对公式(10)的等式两侧同时求关于s的微分,并结合公式(5),可以得到公式(11)。
由此,可进一步推导出迭代关系函数。具体地,令公式(11)的等式左侧为迭代目标项y对s的微分,等式右侧为f(y),也即公式(11)可以被简写为为便于表述,进一步在公式(12)中定义了迭代关系函数中的迭代目标项y和f(y)。
具体地,在y=0时,f(y)相对于y是局部李普希茨(Lipschitz)稳定的。因此,根据自动控制理论,存在一些δ>0,使得在y(tf)=0的区间[tf-δ,tf]上具有唯一解。进一步根据公式(6)到公式(11),又知H(s)=ATP(s)+P(s)A和满足公式(11),因此,H(s)=ATP(s)+P(s)A和是公式(11)的唯一解。
也即,在以下的条件①至条件③均满足的情况下,可以得到公式(13)。其中,条件①至条件③分别为:条件①:M有满秩;条件②:P(tf)=0,H(tf)=0,K(tf)=0;条件③:H(s),K(s)是公式(11)的解。
其中,P*是公式(4)的解。也即在s趋向负无穷时,K(s)可以收敛于而根据公式(4),是u*(t)对应的线性平衡参数矩阵。进一步地,在公式(11)中,M,Dxx可以由机器人在类平衡状态下的运动过程中的运动状态数据和所述第一控制器的控制数据构造。公式(11)可以用欧拉方法逆向求解。
可选地,步骤S2022还进一步包括:当所述迭代目标项在数值迭代过程中收敛时,停止数值迭代;和根据所述收敛的迭代目标项,重建对应于所述机器人的动力学特性的所述线性平衡参数矩阵。
例如,由于运动数据和控制数据都是离散形式,因此至少根据上述公式(5)至公式(13),可以将迭代关系函数构建为离散形式,也即:y(tf-kh)=y(tf-(k-1)h)-hf(y(tf-(k-1)h))。
也即,所述迭代关系函数表示为y(tf-kh)=y(tf-(k-1)h)-
hf(y(tf-(k-1)h)),用于根据第k-1次迭代对应的迭代目标项y(tf-
(k-1)h)的迭代计算第k次迭代对应的迭代目标项y(tf-kh),其中h为迭代步长。
随着迭代次数的增加,迭代目标项y(tf-kh)将逐渐收敛。为此,参考图4,在工业操作中还可以进一步设置迭代步长h和收敛条件。例如,收敛条件可以被设置为:当第k次迭代得到的迭代目标项和第k-1次迭代得到的迭代目标项之间的差值足够小(例如小于足够小的阈值ε)时,停止迭代。
正如公式(12)所示,基于收敛的迭代目标项y(tf-kh)可以直接得到迭代参数项K(tf-kh)。因此,上述的根据所述收敛的迭代目标项,重建对应于所述机器人的动力学性质的所述线性平衡参数,还可以进一步包括:根据所述收敛的迭代目标项y(tf-kh),以及迭代目标项y(tf-kh)与迭代参数项K(tf-kh)的对应关系,得到收敛时的K(tf-kh);将所述收敛时的K(tf-kh)设置为所述线性平衡参数矩阵;所述基于所述线性平衡参数矩阵,构建控制器,其中,所述控制器为u=-K(tf-kh)x,所述控制器对应于所述机器人的动力学特性。
如上所述,本公开的实施例仅通过采集动力学特性未知的机器人在类平衡状态下的运动过程中的运动状态数据和第一控制器的控制数据,并通过对这些数据进行积分运算来构建第一数据集合Dxx、第二数据集合Ixx和第三数据集合Ixu以作为训练数据。由此,本公开实施例的训练数据的数量远远小于传统的强化学习算法所需的数据量。本公开的实施例还对应地构建了迭代关系函数,以使得目标迭代项随着学习步长的增加而逐渐收敛。并且,收敛的目标迭代项可以得到一个控制器,该控制器收敛于对应于线性二次调节问题的最优解的控制器,从而可以保证闭环系统的稳定性,其训练过程被大大的简化。整个过程不需要对训练数据进行额外的限制,从而简化了机器人的控制器的设计过程。
接下来参考图5至图6B进一步描述对图1所示的机器人进行控制的方法。图5示出了机器人100的又一结构视图。图6A示出了机器人利用第一控制器控制机器人在类平衡状态下的运动过程中的运动状态数据和控制数据。图6B示出了构建对应于所述机器人的动力学特性的控制器的过程中K(tf-kh)和H(tf-kh)的收敛过程,其中机器人的基座部高度为0.65米。图6C示出了构建对应于所述机器人的动力学特性的控制器的过程中K(tf-kh)和
H(tf-kh)的收敛过程,其中机器人的基座部高度为0.38米。图6D示出了机器人利用所构建的控制器控制机器人在基座部高度为0.38米的情况下进行直线行走的运动状态数据和控制数据。图6E示出了机器人利用所构建的控制器控制机器人在基座部高度为0.65米的情况下进行偏航的运动状态数据和控制数据。图6F示出了机器人利用所构建的控制器控制机器人沿“S”路径运动的运动状态数据。图6G示出了机器人利用所构建的控制器控制机器人在减速带上的运动状态数据。图6H示出了机器人利用所构建的控制器控制机器人对抗外力的运动状态数据。
如图5所示,机器人100除了图1中所描述的轮腿部和基座部外,还包括数据采集装置、数据处理装置和驱动电机。
其中,数据采集装置可以被配置为:在利用第一控制器控制动力学特性未知的机器人在类平衡状态下运动的情况下,获取所述机器人在类平衡状态下的运动状态数据,所述类平衡状态下的机器人处于平衡点附近。例如,数据采集器可以包括:第一传感器,用于测量基座部的俯仰角θ及其角速度第二传感器,用于测量左右主动轮的旋转角速度和其中,第一传感器可以是惯性测量单元(Inertial measurement unit,简称IMU),其可以包括三轴陀螺仪、三轴加速度计、或三轴磁力计。第二传感器可以是电机编码器,采样频率为200Hz。
数据处理装置,被配置为:获取与所述运动状态数据对应的控制数据;根据所述机器人在类平衡状态下的运动状态数据和所述控制数据,使用数值迭代的方式计算线性平衡参数矩阵;以及基于所述线性平衡参数矩阵,构建对应于所述机器人的动力学特性的控制器。
所述数据处理装置可以包括微处理器、数字信号处理器(“DSP”)、专用集成电路(“ASIC”)、现场可编程门阵列、状态机或用于处理从传感器线接收的电信号的其他处理器件。这种处理器件可以包括可编程电子设备,例如PLC,可编程中断控制器(“PIC”)、可编程逻辑器件(“PLD”)、可编程只读存储器(“PROM”)、电子可编程只读存储器等。
例如,所述数据处理装置还可以进一步地配置为对数据采集装置采集的数据进行进一步处理。例如,基于左右主动轮的旋转角速度和所述数据处理装置可以计算机器人100的线速度其中rw为主动轮半径。可选地,rw=0.1m。可选地,所述数据处理装置还可以计算机器人的偏航角速度其中wd为机器人宽度,可选地,wd=0.47m。
为便于说明,本公开仅给出利用第一控制器或第二控制器控制主动轮104的示例,本领域技术人员应当理解,本公开的方案也可以用于控制机器人的其它组件。由于主动轮仅用于控制机器人的向前和向后运动,对于弯曲的目标轨迹,还需要一个用于控制偏航角的控制器来控制机器人转向。为简化描述,将该控制器设置为其中是目标偏航角速度。然后通过和计算左右轮的扭矩。由于τψ不改变沿机器人纵向的力。因此,偏航运动不会影响机器人的平衡。此后,角度单位被转换为“度(deg)”,以便阅读。
接着,数据处理装置基于给定的目标轨迹,计算第一控制器的控制数据。正如参考图3所述,本公开并不对第一控制器的具体控制律进行限制。为便于说明,后续以一个简单的PID控制器作为第一控制器作为示例进行说明。更进一步地,数据处理装置的控制频率为1000Hz。
如上所述,运动数据和控制数据将用于计算第一数据集合Dxx、第二数据集合Ixx和第三数据集合Ixu。这些数据需要x和u的连续信号,因此在第一控制器和对应于所述机器人的动力学特性的控制器控制机器人100运动的情况下,数据处理装置进一步地还可以使用梯形积分来计算积分。梯形积分的步长为0.01s,与采样周期相同。
数据处理装置还可以进一步被配置有如下指令来执行第一控制器的控制数据的计算以及对应于所述机器人的动力学特性的控制器的构建。为便于表述,指令以伪代码的形式示出,本领域技术人员可以基于以下伪代码利用任何编程语言计算第一控制器的控制数据和构建对应于所述机器人的动力学特性的控制器。
********************************************************
1:选择初始控制器u0(x)和噪声β(t),以计算第一控制器的控制数
据:u(t)=u0(x)+β(t)。
2:对机器人100施加u(t),利用数据采集装置采集t0到tl+1的数据
x(t)
3:构造Dxx,Ixx,Ixu
4:设置y(tf)=0,k=0,迭代步长h和小阈值ε
5:重复步骤6和步骤7,直到|y(tf-kh)-y(tf-(k-1)h|<ε
6:k+1赋值给k
7:y(tf-kh)=y(tf-(k-1)h)-hf(y(tf-(k-1)h))
8:从y(tf-kh)重构K(tf-kh)
10:用u=-K(tf-kh)x作为对应于所述机器人的动力学特性的控制器。
********************************************************
参考图6A给出的示例,图6A中机器人100的基座部的高度l=0.65m。令Q=diag[2000,100,100],r=1,ti+1-ti=0.1s,h=0.001,ε=0.001,β(t)=0.3sin(πt)。图6A的左上图示出了基座部的俯仰角(单位:度)随时间的变化情况,右上图示出了基座部的俯仰角速度(单位:度/秒)随时间的变化情况,左下图示出了机器人的线性速度(单位:米/秒)随时间的变化情况,右下图示出了主动轮的驱动力(单位:牛顿)随时间的变化情况。以上四图中,横坐标为时间,单位为秒。
如图6A所示,由于传感器噪声和β(t)的影响,俯仰角θ和速度x在平衡点附近波动很大,由此,M有满秩的条件可以满足。
构建对应于所述机器人的动力学特性的控制器的过程如图6B所示。其中,图6B的左图示出了K(tf-s)中的各个参数随着s的迭代的变化,为便于图示,使用了u=K′x,K′=-K,K′中的负增益表示负反馈。图6B的右图示出了H(tf-s)中的各个参数随着s的迭代的变化。图6B的右图中,示出了6条曲线,由上至下分别为H(tf-s)中的第1行第1列的参数、第1行第2列的参数、第1行第3列的参数、第2行第1列的参数、第2行第2列的参数、第2行第3列的参数。在图6B中,显示当s>2时,K(tf-s)收敛于[-116.93,-42.96,-20.18],H(tf-s)收敛于
参考图6C,还可以在机器人100的基座部的高度l=0.38m的情况下,也类似地构建对应于所述机器人的动力学特性的控制器。其中,训练数据是基于以下参数而获取的。令Q=diag[200,100,100],r=1,ti+1-ti=0.1s,h=0.001,ε=0.001,β(t)=0.2sin(1.5πt)。
其中,图6C的左图示出了K(tf-s)中的各个参数随着s的迭代的变化,为便于图示,使用了u=K′x,K′=-K,K′中的负增益表示负反馈。图6C的右图示出了H(tf-s)中的各个参数随着s的迭代的变化。图6C的右图中,示出了6条曲线,由上至下分别为H(tf-s)中的第1行第1列的参数、第1行第2列的参数、第1行第3列的参数、第2行第1列的参数、第2行第2列的参数、第2行第3列的参数。在图6C中,显示当s>1时,K(tf-s)收敛于[-88.91,-30.22,-16.48],H(tf-s)收敛于
首先,利用K=[-88.91,-30.22,-16.48]构建控制器u=-K(tf-kh)x来控制机器人100在基座部的高度为0.38米的情况下进行直线运动。直线运动中的测试数据参见图6D所示。图6D的左上图示出了基座部的俯仰角(单位:度)随时间的变化情况,右上图示出了基座部的俯仰角速度(单位:度/秒)随时间的变化情况,左下图示出了机器人的线性速度(单位:米/秒)随时间的变化情况,右下图示出了主动轮的驱动力(单位:牛顿)随时间的变化情况。以上四图中,横坐标为时间,单位为秒。可见,在利用K=
[-88.91,-30.22,-16.48]来构建控制器时,俯仰角和俯仰角速度几乎位于平衡点0周围。此外,由于机器人在测试中,缓慢地向后和向前移动,因此实验者调整遥控器以不连续地发送参考信号来指示目标线性速度。因此,驱动力不保持为零,其他状态也在零点附近变化。
接着,利用K=[-116.93,-42.96,-20.18]构建控制器u=-K(tf-kh)x来控制机器人100在基座部的高度为0.65米的情况下进行偏航运动(也即原地旋转)。偏航运动中的测试数据参见图6D所示。图6D的左上图示出了基座部的俯仰角(单位:度)随时间的变化情况,右上图示出了基座部的线性速度(单位:度/秒)随时间的变化情况,左下图示出了机器人的偏航角速度(单位:米/秒)随时间的变化情况,右下图示出了左主动轮和右主动轮的驱动力(单位:牛顿)随时间的变化情况。以上四图中,横坐标为时间,单位为秒。旋转期间趋近于0,俯仰角在小范围内变化[-1.6°,1.3°]。可见,控制器具有出色的平衡性能。
继续利用控制器控制机器人沿着“S”路径移动,其运动状态如图6F所示。图6F的左图示出了基座部的线性速度(单位:度/秒)随时间的变化情况,右图示出了基座部的偏航角速度(单位:米/秒)随时间的变化情况。经测试,俯仰角θ在±2.5°之间略有变化,而实际线性速度几乎与目标线性速度相同。
继续利用控制器控制机器人在减速带上运动,其运动状态如图6G所示。图6G的左上图示出了基座部的俯仰角(单位:度)随时间的变化情况,右上图示出了基座部的俯仰角速度(单位:度/秒)随时间的变化情况,左下图示出了机器人的线性速度(单位:米/秒)随时间的变化情况,右下图示出了主动轮的驱动力(单位:牛顿)随时间的变化情况。以上四图中,横坐标为时间,单位为秒。减速带可以被认为是对机器人底部的干扰。如图6G所示,机器人通过减速带6次,前进3次,后退3次。特别是,在每次减速带,机器人首先加速冲向减速带。然后,当它到达减速带的顶部时,它会减速。接下来,速度在下坡时再次增加。最后,它停在地上。整个过程清晰地反映在图6G中为了克服减速带的干扰,控制器的控制里在减速带处急剧变化。
作为最后一个示例,测试机器人的鲁棒性。在利用控制器控制机器人运动的过程中,用脚踢机器人的基座部,以对机器人的顶部施加外力,其运动状态如图6H所示。图6H的左上图示出了基座部的俯仰角(单位:度)随时间的变化情况,右上图示出了基座部的俯仰角速度(单位:度/秒)随时间的变化情况,左下图示出了机器人的线性速度(单位:米/秒)随时间的变化情况,右下图示出了主动轮的驱动力(单位:牛顿)随时间的变化情况。以上四图中,横坐标为时间,单位为秒。如图6H中所示,机器人被踢了六次。这里,详细讨论机器人第一次被踢的过程,其对应于图6H中从8s到10s的时间间隔。当机器人的顶部收到向负z方向和正x方向的力的作用时,机器人向正x方向移动,由于惯性,俯仰角为负。这与图6H中俯仰角在负方向上的突然变化以及图6H中线性速度在正方向上在t=8秒左右的突然变化是一致的。在这种情况下,随着控制器控制使机器人减速(t=8.5s至9s),俯仰角朝着负方向变得更大。然后,占优势的负俯仰角(在t=9s时差不多达到了-10°的俯仰角)导致大的负控制律,因此机器人向负x方向移动(t=9.1s)。然后,与正常情况类似,控制器会在下一次被踢之前将线性速度、俯仰角和俯仰角速度调整为零(t=10s)。在这个示例中,随着机器人受到了更大的作用力,控制器输出更大的控制力,鲁棒性也很好。
本领域技术人员应当理解,控制器还可以用于控制其他运动,本公开并不以此为限。此外,经测试,控制器的鲁棒性远远高于PID控制器,也即在外部对机器人100进行干扰时,控制器控制下的机器人能很快恢复平衡。
由此,本公开的实施例基于人工智能中的强化学习和ADP技术,利用数值迭代方案,在未知机器人的动力学特性的情况下解决了机器人的最优平衡控制问题。本公开的实施例的构建控制器的过程仅需要轮腿式机器人在非最优控制器/任意控制器的控制下行进一段时间/一段轨迹,并收集与该时间段/轨迹相对应的运动状态数据和控制数据作为训练数据。由此,本公开的实施例的训练数据的数量远远小于传统的强化学习算法所需的数据量。更进一步地,本公开的实施例的训练的控制器随着学习步长的增加而逐渐收敛到最对应于线性二次调节问题的最优解的控制器,从而可以保证闭环系统的稳定性,其训练过程被大大的简化,并且不需要对训练数据进行额外的限制,从而简化了轮腿式机器人的控制器的设计过程。
根据实际需要,该机器人例如还可以包括总线、存储器、传感器组件、通信模块和输入输出装置等。本公开的实施例不受该机器人的具体组成部分的限制。
总线可以是将该机器人的各部件互连并在各部件之中传递通信信息(例如,控制消息或数据)的电路。
传感器组件可以用于对物理世界进行感知,例如包括摄像头、红外传感器超声波传感器等。此外,传感器组件还可以包括用于测量机器人当前运行及运动状态的装置,例如霍尔传感器、激光位置传感器、或应变力传感器等。
通信模块例如可以通过有线或无效与网络连接,以便于与物理世界(例如,服务器)通信。通信模块可以是无线的并且可以包括无线接口,例如IEEE802.11、蓝牙、无线局域网(“WLAN”)收发器、或用于接入蜂窝电话网络的无线电接口(例如,用于接入CDMA、GSM、UMTS或其他移动通信网络的收发器/天线)。在另一示例中,通信模块可以是有线的并且可以包括诸如以太网、USB或IEEE 1394之类的接口。
输入输出装置可以将例如从用户或任何其他外部设备输入的命令或数据传送到机器人的一个或多个其他部件,或者可以将从机器人的一个或多个其他部件接收的命令或数据输出到用户或其他外部设备。
多个机器人可以组成机器人系统以协同地完成一项任务,该多个机器人通信地连接到服务器,并且从服务器接收协同机器人指令。
根据本公开实施例的一个方面,提供了一种轮腿式机器人,所述轮腿式机器人包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述方法。
根据本公开实施例的一个方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述方法。
技术中的程序部分可以被认为是以可执行的代码和/或相关数据的形式而存在的“产品”或“制品”,通过计算机可读的介质所参与或实现的。有形的、永久的储存介质可以包括任何计算机、处理器、或类似设备或相关的模块所用到的内存或存储器。例如,各种半导体存储器、磁带驱动器、磁盘驱动器或者类似任何能够为软件提供存储功能的设备。
所有软件或其中的一部分有时可能会通过网络进行通信,如互联网或其他通信网络。此类通信可以将软件从一个计算机设备或处理器加载到另一个。因此,另一种能够传递软件元素的介质也可以被用作局部设备之间的物理连接,例如光波、电波、电磁波等,通过电缆、光缆或者空气等实现传播。用来载波的物理介质如电缆、无线连接或光缆等类似设备,也可以被认为是承载软件的介质。在这里的用法除非限制了有形的“储存”介质,其他表示计算机或机器“可读介质”的术语都表示在处理器执行任何指令的过程中参与的介质。
本公开使用了特定词语来描述本公开的实施例。如“第一/第二实施例”、“一实施例”、和/或“一些实施例”意指与本公开至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本公开的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本公开的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本公开的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本公开的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
除非另有定义,这里使用的所有术语(包括技术和科学术语)具有与本发明所属领域的普通技术人员共同理解的相同含义。还应当理解,诸如在通常字典里定义的那些术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非这里明确地这样定义。
上面是对本发明的说明,而不应被认为是对其的限制。尽管描述了本发明的若干示例性实施例,但本领域技术人员将容易地理解,在不背离本发明的新颖教学和优点的前提下可以对示例性实施例进行许多修改。因此,所有这些修改都意图包含在权利要求书所限定的本发明范围内。应当理解,上面是对本发明的说明,而不应被认为是限于所公开的特定实施例,并且对所公开的实施例以及其他实施例的修改意图包含在所附权利要求书的范围内。本发明由权利要求书及其等效物限定。
Claims (14)
1.一种构建机器人的控制器的方法,所述方法包括:
控制动力学特性未知的机器人在类平衡状态下运动,以获取运动过程中的运动状态数据和控制数据,所述类平衡状态下的机器人在运动过程中处于平衡点附近;
根据所述运动状态数据和所述控制数据,使用数值迭代的方式计算线性平衡参数矩阵;以及
基于所述线性平衡参数矩阵,构建对应于所述机器人的动力学特性的控制器。
2.如权利要求1所述的方法,其中,所述机器人的类平衡运动状态是由第一控制器控制的,在所述对应于所述机器人的动力学特性的控制器的控制下的所述机器人,相对于在所述第一控制器的控制下的所述机器人,在运动过程中具有更优的控制效果。
3.如权利要求1所述的方法,其中,所述控制器为线性控制器,所述控制器在一时刻提供的控制力负相关于所述线性平衡参数矩阵和所述机器人在所述时刻的运动状态数据之间的乘积。
4.如权利要求2所述的方法,其中,所述控制机器人在类平衡状态下运动以获取运动过程中的运动状态数据和控制数据,包括:
由所述第一控制器,根据所述机器人的当前运动状态,确定初始控制指令,所述初始控制指令用于控制所述机器人在近平衡状态下或在类平衡状态下运动;
对所述初始控制指令指示的控制数据施加扰动,获取所述第一控制器的控制数据;以及
根据所述第一控制器的控制数据,控制所述机器人在类平衡状态下运动,以获取所述运动过程中的运动状态数据。
5.如权利要求1所述的方法,其中,所述运动状态数据和所述控制数据对应于多个时间间隔。
6.如权利要求5所述的方法,其中,所述根据所述机器人在类平衡状态下的运动状态数据和所述控制数据,使用数值迭代的方式计算线性平衡参数矩阵,包括:
对对应于所述多个时间间隔中的所述运动状态数据和所述控制数据分别进行运算,构建迭代关系函数;和
根据所述迭代关系函数,对迭代目标项进行数值迭代,逼近得到对应于所述机器人的动力学特性的所述线性平衡参数矩阵。
7.如权利要求6所述的方法,其中,所述根据所述迭代关系函数,对迭代目标进行数值迭代,逼近得到对应于所述机器人的动力学特性的所述线性平衡参数矩阵,包括:
当所述迭代目标项在数值迭代过程中收敛时,停止数值迭代;和
根据所述收敛的迭代目标项,重建对应于所述机器人的动力学特性的所述线性平衡参数矩阵。
8.如权利要求6所述的方法,其中,所述迭代关系函数表示为y(tf-kh)=y(tf-(k-1)h)-hf(y(tf-(k-1)h)),用于根据第k-1次迭代对应的迭代目标项y(tf-(k-1)h)的迭代计算第k次迭代对应的迭代目标项y(tf-kh),其中h为迭代步长。
10.如权利要求8所述的方法,其中,
所述根据所述收敛的迭代目标项,重建对应于所述机器人的动力学性质的所述线性平衡参数,包括:
根据所述收敛的迭代目标项y(tf-kh),以及迭代目标项y(tf-kh)与迭代参数项K(tf-kh)的对应关系,得到迭代目标项y(tf-kh)收敛时的迭代参数项K(tf-kh);
将所述迭代参数项K(tf-kh)设置为所述线性平衡参数矩阵;
所述基于所述线性平衡参数矩阵,构建所述控制器,其中,所述控制器为u=-K(tf-kh)x,所述控制器对应于所述机器人的动力学特性。
11.一种机器人,所述机器人包括:
数据采集装置,被配置为:在控制动力学特性未知的机器人在类平衡状态下运动的情况下,获取所述机器人在类平衡状态下的运动状态数据,所述类平衡状态下的机器人处于平衡点附近;
数据处理装置,被配置为:
获取与所述运动状态数据对应的控制数据;
根据所述机器人在类平衡状态下的运动状态数据和所述控制数据,使用数值迭代的方式计算线性平衡参数矩阵;以及
基于所述线性平衡参数矩阵,构建对应于所述机器人的动力学特性的控制器。
12.如权利要求11所述的机器人,所述机器人还包括:轮腿部,包括多个关节;基座部,其连接至该轮腿部;驱动电机,被设置在所述机器人上,以基于所述控制器控制所述轮腿部中的主动轮。
13.一种非暂时性计算机可读介质,其上存储有至少一条指令,所述指令集由处理器加载并执行以实现权利要求1至10所述的方法中的至少一项。
14.一种控制机器人的方法,所述机器人由主动轮驱动,并且所述机器人的动力学特性未知,所述方法包括:
接收运动指令,所述运动指令指示所述机器人的运动轨迹;
根据运动指令,控制所述主动轮的驱动力,以使得所述机器人在类平衡状态下运动并获取运动过程中的运动状态数据和控制数据,所述类平衡状态下的机器人在运动过程中处于平衡点附近;
基于所述运动状态数据和所述控制数据,使用数值迭代的方式构建对应于所述机器人的动力学特性的控制器;以及
利用所述控制器控制所述主动轮的驱动力,以使得所述机器人平稳运动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111063979.3A CN115781658A (zh) | 2021-09-10 | 2021-09-10 | 构建机器人的控制器的方法和机器人 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111063979.3A CN115781658A (zh) | 2021-09-10 | 2021-09-10 | 构建机器人的控制器的方法和机器人 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115781658A true CN115781658A (zh) | 2023-03-14 |
Family
ID=85473605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111063979.3A Pending CN115781658A (zh) | 2021-09-10 | 2021-09-10 | 构建机器人的控制器的方法和机器人 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115781658A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116872217A (zh) * | 2023-09-04 | 2023-10-13 | 深圳市普渡科技有限公司 | 机器人控制方法、装置、机器人和存储介质 |
-
2021
- 2021-09-10 CN CN202111063979.3A patent/CN115781658A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116872217A (zh) * | 2023-09-04 | 2023-10-13 | 深圳市普渡科技有限公司 | 机器人控制方法、装置、机器人和存储介质 |
CN116872217B (zh) * | 2023-09-04 | 2023-11-17 | 深圳市普渡科技有限公司 | 机器人控制方法、装置、机器人和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Nawawi et al. | Real-time control of a two-wheeled inverted pendulum mobile robot | |
CN109352656B (zh) | 一种具有时变输出约束的多关节机械臂控制方法 | |
He et al. | Extended state observer-based robust backstepping sliding mode control for a small-size helicopter | |
Omran et al. | Optimal task space control design of a Stewart manipulator for aircraft stall recovery | |
Zhou et al. | A multi-time-scale finite time controller for the quadrotor UAVs with uncertainties | |
CN115781658A (zh) | 构建机器人的控制器的方法和机器人 | |
Liu et al. | Full backstepping control in dynamic systems with air disturbances optimal estimation of a quadrotor | |
Theeravithayangkura et al. | Dynamic rolling-walk motion by the limb mechanism robot ASTERISK | |
US20230409035A1 (en) | Method for building controller for robot, method, device for controlling motion of robot, and robot | |
Geist et al. | The wheelbot: A jumping reaction wheel unicycle | |
Velagić et al. | Design of LQR controller for 3D trajectory tracking of octocopter unmanned aerial vehicle | |
Nikita et al. | PID controller based two wheeled self balancing robot | |
Zadeh et al. | LQR motion control and analysis of a prototype spherical robot | |
Regula et al. | Backstepping based control design with state estimation and path tracking to an indoor quadrotor helicopter | |
Xu et al. | Disturbance rejection for biped robots during walking and running using control moment gyroscopes | |
Zoghzoghy et al. | Dynamics, stability, and experimental results for a baton robot with double-action inertial actuation | |
Laplante et al. | Analytical longitudinal and lateral models of a spherical rolling robot | |
WO2023165177A1 (zh) | 构建机器人的控制器的方法、机器人的运动控制方法、装置以及机器人 | |
Yan-dong et al. | Adaptive RBFNN formation control of multi-mobile robots with actuator dynamics | |
CN114063490A (zh) | 一种智能仿生足式机器人控制系统及方法 | |
WO2023165192A1 (zh) | 机器人控制方法、装置、机器人以及计算机可读存储介质 | |
Caireta | Model predictive control for a mecanum-wheeled robot in dynamical environments | |
Patel et al. | Artificial neural network-assisted controller for fast and agile UAV flight: Onboard implementation and experimental results | |
Savnani et al. | Modelling, Design and Control of a Four wheel Holonomic Drive | |
CN115309176B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40083851 Country of ref document: HK |