具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本发明实施例所提供的方法实施例可以在智能机器人或者类似的运算装置中执行。以运行在智能机器人上为例,图1是本发明实施例的一种智能机器人的步态控制方法的智能机器人的硬件结构框图。如图1所示,智能机器人可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器(Microprocessor Unit,简称是MPU)或可编程逻辑器件(Programmable logic device,简称是PLD)等的处理装置和用于存储数据的存储器104,可选地,上述智能机器人还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述智能机器人的结构造成限定。例如,智能机器人还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的智能机器人的步态控制方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至智能机器人。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由网络接收或者发送数据。上述的网络具体实例可包括智能机器人的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述智能机器人的步态控制方法,图2是根据本发明实施例的智能机器人的步态控制方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,获取用户指令,其中,用户指令用于控制至少以下之一:智能机器人的所要到达的目标位置、速度、轨迹点和动作序列;
步骤S204,获取状态信息,其中,状态信息包括:智能机器人的状态信息和外部环境的状态信息;
步骤S206,将用户指令和状态信息输入智能机器人的全身动力学模型,得到智能机器人的控制指令;
步骤S208,根据控制指令对智能机器人进行控制。
通过上述技术方案,由于可以在获取用户指令和获取状态信息的情况下,将所述用户指令和所述状态信息输入所述智能机器人的全身动力学模型,得到所述智能机器人的控制指令,进而根据所述控制指令对所述智能机器人进行控制,从而使得智能机器人适应各种运动场景。因此,解决了现有技术中需要根据具体运动场景提前定义智能机器人的运动序列,不能动态调整智能机器人的运动序列使得智能机器人适应各种运动场景的问题,因而能够提高计算速度,提高机器人的反应速度,进而提高交互效率。
需要说明的是,本发明实施例的智能机器人可以是双足智能机器人,三足智能机器人,还可以是四足智能机器人、六足智能机器人,本发明实施例对此不进行限定。
在执行步骤S208之后,也就是根据所述控制指令对所述智能机器人进行控制之后,所述方法还包括:获取对所述智能机器人控制之后的控制结果信息;将所述控制结果信息更新到所述状态信息的集合中。
需要说明的是,在根据所述控制指令对所述智能机器人进行控制之后,需要获取对所述智能机器人控制之后的控制结果信息,并将所述控制结果信息更新到所述状态信息的集合中,以更新所述状态信息。在更新所述状态信息之后,循环执行步骤S202至步骤S208的方法,直到完成当前所述用户指令结束循环。
在步骤S204中,所述智能机器人的状态信息包括以下至少之一:所述智能机器人的关节电机的第一位置、第一速度和第一力矩,以及所述智能机器人的位置姿势信息;所述外部环境的状态信息包括以下至少之一:所述外部环境的图像信息,以及所述智能机器人根据所述外部环境生成的运动路径信息。
需要说明的是,所述状态信息包括:所述智能机器人的状态信息和外部环境的状态信息。所述智能机器人的状态信息包括但不限于:所述智能机器人的关节电机的第一位置、第一速度和第一力矩,以及所述智能机器人的位置姿势信息,其中,所述智能机器人的关节电机的第一位置、第一速度和第一力矩是由所述智能机器人的状态观测器测量得到的,所述智能机器人的位置姿势信息是惯性测量单元测量得到的。所述外部环境的状态信息包括:所述外部环境的图像信息,以及所述智能机器人根据所述外部环境生成的运动路径信息,其中,所述外部环境的图像信息是由所述智能机器人的感知模块获取的,感知模块可以是相机,红外摄像模组等用于拍摄的设备,所述智能机器人根据所述外部环境生成的运动路径信息,在实际操作中是所述智能机器人的路径规划模块生成的。
在步骤S206中,将所述用户指令和所述状态信息输入所述智能机器人的全身动力学模型,得到所述智能机器人的控制指令,包括:通过所述智能机器人的全身动力学模型,以所述用户指令的成功完成度为最优化目标,以所述智能机器人的落脚点位置、脚底受力、落脚序列和时长为变量,以全身动力学模型和足端位置、脚底受力为运动约束方程,建模求解最优化问题,以得到最合适的参数作为模型和方程中的参数;根据最优化目标和所述运动约束方程,得到所述智能机器人的控制指令。
需要说明的是,将所述用户指令和所述状态信息输入所述智能机器人的全身动力学模型,构建最优化问题,以所述用户指令的成功完成度的最高值为优化目标以所述用户指令的成功完成度为最优化目标,以所述状态信息为参数,以所述智能机器人的落脚点位置、脚底受力、落脚序列和时长为变量,以所述状态信息为参数,以全身动力学模型和足端位置、脚底受力为运动约束方程,建模求解最优化参数。可以所述智能机器人的全身动力学模型根据上述构建的最优化问题,通过QP求解方法对所述智能机器人的落脚点位置、脚底受力、落脚序列和时长进行求解,得到所述智能机器人的落脚点位置、脚底受力、落脚序列和时长的解。所述智能机器人的全身动力学模型再通过所述智能机器人的落脚点位置、脚底受力、落脚序列和时长的解计算所述智能机器人的第三位置、第三速度和第三力矩,进而得到所述智能机器人的控制指令。其中,所述智能机器人的控制指令包括所述关节电机的第三位置、第三速度和第三力矩。需要说明的是,所述第三位置、第三速度和第三力矩是所述智能机器人的全身动力学模型计算出来的,所述智能机器人的关节电机的第一位置、第一速度和第一力矩是由所述智能机器人的状态观测器测量得到的。
上述得到所述智能机器人的控制指令的方法都是在所述全身动力学模型中计算的,其中,由于计算量太大,上述计算方法很难以简单的约束条件求解,然后代入最优化目标来确定解,本发明计算上述问题采用的是QP求解的方法。通过上述技术手段,解决了现有技术存在需要根据具体运动情况提前定义智能机器人的运动序列,不能动态调整智能机器人的运动序列使得智能机器人适应各种运动情况的问题。
步骤S206中,所述方法还包括:所述运动约束方程,包括:
等式约束1:M(q)∙ddq + H(q, dq) + G – Jc∙Fext = τ (1)
等式约束2:Pfoot(t) = a;
a = a1, t ∈ {t| t0 <t < t1}; a = a2, t ∈ {t| t1 <t < t2} (2)
不等式约束:Fext (t) >= b;
b = b1, t ∈ {t| t0 <t < t1}; b = b2, t ∈ {t| t1 <t < t2} (3)
其中,q代表所述智能机器人的关节的角度,dq代表所述关节的角速度,ddq代表所述关节的角加速度,G为重力,Fext和Jc分别是所述智能机器人受到的外力和其对应的雅克比矩阵,M是惯性矩阵,H是向心力科氏力矩阵,M(q)是关于q的M函数,τ为所述智能机器人的关节控制力矩,Pfoot代表所述智能机器人足端位置,t0、t1、t2分别为与用户指定的动作序列所对应的时刻点,a和b是设置参数。
需要说明的是,所述运动约束方程是对智能机器人的行进路线的限制。举例说明,智能机器人从A地到达B地,有很多条路径,所述运动约束方程就可以理解是使用者对智能机器人从A地到达B地,比如只能向西走等约束条件。其中,上述运动约束包括但不限于智能机器人脚底受力的摩擦锥约束、地形对智能机器人的机身位置姿势的限制。所述运动约束方程用到了雅克比矩阵,其中通过雅克比矩阵就可以把智能机器人受到的外力从笛卡尔空间转换到关节空间,进而,通过智能机器人的关节电机控制智能机器人行走。
步骤S206中,所述方法还包括:所述最优化目标为min[(xc-xt)T∙R∙(xc-xt)+τT∙Q∙τ],其中,xc和xt分别为所述智能机器人的当前状态信息和目标状态信息,xc和xt由所述智能机器人位置、速度、轨迹点所组成,τ为所述智能机器人的关节控制力矩,R和Q分别为权重矩阵。
需要说明的是,所述智能机器人的当前状态信息和目标状态信息,是所述智能机器人在执行循环执行步骤S202至步骤S208的方法中体现的,比如,所述智能机器人在执行循环执行步骤S202至步骤S208的方法中获取的状态信息是当前状态信息,目标状态信息是所述智能机器人的控制指令中所述关节电机的第四位置、第四速度和第四力矩对应的所述智能机器人的状态信息。所述最优化目标是所述智能机器人的全身动力学模型根据所述运动约束方程求出的解的限制,比如,所述智能机器人的全身动力学模型根据所述运动约束方程求出了多个解,所述最优化目标可以是智能机器人从A地到达B地的多个路径中最短的路径,其中,本发明计算上述问题可以采用QP求解的方法。
需要说明的是,本实施例中第一、第二、第三、第四等名称仅为用于概念区分,例如第一位置和第二位置可能是同一个位置,也可能是不同位置,对应的不同速度和不同力矩也一样,不再赘述。
首先通过所述智能机器人的单刚体模型,以所述用户指令的成功完成度为最优化目标,该最优化目标以所述状态信息为参数,该最优化目标以所述状态信息为参数,以所述智能机器人的落脚点位置、脚底受力、落脚序列和时长为变量,以单刚体运动学模型和足端位置、脚底受力为约束方程,建模求解最优化参数,得到所述智能机器人的落脚点位置、脚底受力、落脚序列和时长的解;通过所述智能机器人的落脚点位置、脚底受力、落脚序列和时长的解和所述智能机器人的全身动力学模型计算所述智能机器人的关节电机的第二位置、第二速度和第二力矩,以得到所述智能机器人的控制指令。
需要说明的是,上述记载的方法是完全通过所述全身动力学模型得到所述智能机器人的控制指令,是本发明所采用的第一种方法,本发明还提供了第二种方法:通过单刚体模型和全身动力学模型得到所述智能机器人的控制指令的方法:
首先通过所述智能机器人的单刚体模型,以所述用户指令的成功完成度为最优化目标,以所述状态信息为参数,根据上述参数和目标,所述单刚体模型对所述智能机器人的落脚点位置、脚底受力、落脚序列和时长进行求解,得到所述智能机器人的落脚点位置、脚底受力、落脚序列和时长的解。然后将所述智能机器人的落脚点位置、脚底受力、落脚序列和时长的解输入所述智能机器人的全身动力学模型,计算所述智能机器人的关节电机的第二位置、第二速度和第二力矩,进而得到所述智能机器人的控制指令。
本实施例中,是先通过所述单刚体模型得到所述智能机器人的落脚点位置、脚底受力、落脚序列和时长的解,然后根据全身动力学模型,计算所述智能机器人的关节电机的第二位置、第二速度和第二力矩。而第一种方法中,是所述全身动力学模型先得到所述智能机器人的落脚点位置、脚底受力、落脚序列和时长的解,然后计算所述智能机器人的关节电机的第四位置、第四速度和第四力矩。需要说明的是,通过所述全身动力学模型得到所述智能机器人的控制指令的方法,由于整个过程中只涉及所述全身动力学模型,所以可以直接看成所述全身动力学模型一次就得到所述智能机器人的落脚点位置、脚底受力、落脚序列和时长的解,所述关节电机的位置、速度和力矩。
在根据所述控制指令对所述智能机器人进行控制之后,所述方法还包括:检测所述用户指令是否发生变化:当检测到所述用户指令不变,循环执行以下步骤直到完成当前所述用户指令结束循环:获取所述状态信息,将所述用户指令和所述状态信息输入所述智能机器人的全身动力学模型,得到所述智能机器人的控制指令,根据所述控制指令对所述智能机器人进行控制;当检测到所述用户指令发生变化,循环执行以下步骤直至完成当前所述用户指令结束循环:获取所述用户指令,获取所述状态信息,将所述用户指令和所述状态信息输入所述智能机器人的全身动力学模型,得到所述智能机器人的控制指令,根据所述控制指令对所述智能机器人进行控制。
需要说明的是,在根据所述控制指令对所述智能机器人进行控制之后,还需要检测所述用户指令是否发生变化。如果检测到所述用户指令不变,那么循环执行:获取所述状态信息,将所述用户指令和所述状态信息输入所述智能机器人的全身动力学模型,得到所述智能机器人的控制指令,根据所述控制指令对所述智能机器人进行控制。直到完成当前所述用户指令结束循环。如果检测到所述用户指令发生变化,循环执行:获取所述用户指令,获取所述状态信息,将所述用户指令和所述状态信息输入所述智能机器人的全身动力学模型,得到所述智能机器人的控制指令,根据所述控制指令对所述智能机器人进行控制。直至完成当前所述用户指令结束循环。
为了更好的理解上述技术方案,本发明还提供了一种可选实施例,用于解释说明上述技术方案。
图3是根据本发明实施例的一种智能机器人的步态控制方法的流程示意图(一);如图3所示:
S302:获取用户指令,其中,所述用户指令用于控制至少以下之一:所述智能机器人的所要到达的目标位置、速度、轨迹点和动作序列,其中,动作序列包括但不限于指定时间到达指定地点完成指定动作;
S304:通过状态观测器获取状态信息,其中,所述状态信息包括:所述智能机器人的状态信息和外部环境的状态信息,所述智能机器人的关节电机的第一位置、第一速度和第一力矩,以及所述智能机器人的位置姿势信息,所述外部环境的状态信息包括:所述外部环境的图像信息,以及所述智能机器人根据所述外部环境生成的运动路径信息,其中通过路径规划模块生成的运动路径信息,通过感知模块获取所述外部环境的图像信息;
S306:通过所述全身动力学模型得到所述智能机器人的落脚点位置、脚底受力、落脚序列和时长的解,所述关节电机的第四位置、第四速度和第四力矩;
S308:通过所述关节电机的第四位置、第四速度和第四力矩对所述智能机器人的关节进行控制。
图4是根据本发明实施例的一种智能机器人的步态控制方法的流程示意图(二);如图4所示:
S402:获取用户指令,其中,所述用户指令用于控制至少以下之一:所述智能机器人的所要到达的目标位置、速度、轨迹点和动作序列,其中,动作序列包括但不限于指定时间到达指定地点完成指定动作;
S404:通过状态观测器获取状态信息,其中,所述状态信息包括:所述智能机器人的状态信息和外部环境的状态信息,所述智能机器人的关节电机的第一位置、第一速度和第一力矩,以及所述智能机器人的位置姿势信息,所述外部环境的状态信息包括:所述外部环境的图像信息,以及所述智能机器人根据所述外部环境生成的运动路径信息,其中通过路径规划模块生成的运动路径信息,通过感知模块获取所述外部环境的图像信息;
S406:通过所述单刚体模型得到所述智能机器人的落脚点位置、脚底受力、落脚序列和时长的解;
S408:通过所述全身动力学模型得到所述关节电机的第四位置、第四速度和第四力矩;
S410:通过所述关节电机的第四位置、第四速度和第四力矩对所述智能机器人的关节进行控制。
通过上述技术方案,由于可以在获取用户指令和获取状态信息的情况下,将所述用户指令和所述状态信息输入所述智能机器人的全身动力学模型,得到所述智能机器人的控制指令,进而根据所述控制指令对所述智能机器人进行控制,从而使得智能机器人适应各种运动场景。因此,解决了现有技术中需要根据具体运动场景提前定义智能机器人的运动序列,不能动态调整智能机器人的运动序列使得智能机器人适应各种运动场景的问题,因而能够提高计算速度,提高机器人的反应速度,进而提高交互效率。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random AccessMemory,简称为RAM)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在本实施例中还提供了一种智能机器人的步态控制装置,该智能机器人的步态控制装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5为根据本发明实施例的一种智能机器人的步态控制装置的结构框图,如图5所示:
第一获取模块50,用于获取用户指令,其中,用户指令用于控制至少以下之一:智能机器人的所要到达的目标位置、速度、轨迹点和动作序列;
第二获取模块52,用于获取状态信息,其中,状态信息包括:智能机器人的状态信息和外部环境的状态信息;
接收模块54,用于将用户指令和状态信息输入智能机器人的全身动力学模型,得到智能机器人的控制指令;
控制模块56,用于根据控制指令对智能机器人进行控制。
通过上述技术方案,由于可以在获取用户指令和获取状态信息的情况下,将所述用户指令和所述状态信息输入所述智能机器人的全身动力学模型,得到所述智能机器人的控制指令,进而根据所述控制指令对所述智能机器人进行控制,从而使得智能机器人适应各种运动场景。因此,解决了现有技术中需要根据具体运动场景提前定义智能机器人的运动序列,不能动态调整智能机器人的运动序列使得智能机器人适应各种运动场景的问题,因而能够提高计算速度,提高机器人的反应速度,进而提高交互效率。
需要说明的是,本发明实施例的智能机器人可以是双足智能机器人,三足智能机器人,还可以是四足智能机器人、六足智能机器人,本发明实施例对此不进行限定。
可选的,控制模块56还用于获取对所述智能机器人控制之后的控制结果信息;将所述控制结果信息更新到所述状态信息的集合中。
需要说明的是,在根据所述控制指令对所述智能机器人进行控制之后,需要获取对所述智能机器人控制之后的控制结果信息,并将所述控制结果信息更新到所述状态信息的集合中,以更新所述状态信息。在更新所述状态信息之后,循环执行步骤S202至步骤S208的方法,直到完成当前所述用户指令结束循环。
可选的,第二获取模块52还用于所述智能机器人的关节电机的第一位置、第一速度和第一力矩,以及所述智能机器人的位置姿势信息;所述外部环境的状态信息包括以下至少之一:所述外部环境的图像信息,以及所述智能机器人根据所述外部环境生成的运动路径信息。
需要说明的是,所述状态信息包括:所述智能机器人的状态信息和外部环境的状态信息。所述智能机器人的状态信息包括但不限于:所述智能机器人的关节电机的第一位置、第一速度和第一力矩,以及所述智能机器人的位置姿势信息,其中,所述智能机器人的关节电机的第一位置、第一速度和第一力矩是由所述智能机器人的状态观测器测量得到的,所述智能机器人的位置姿势信息是惯性测量单元测量得到的。所述外部环境的状态信息包括:所述外部环境的图像信息,以及所述智能机器人根据所述外部环境生成的运动路径信息,其中,所述外部环境的图像信息是由所述智能机器人的感知模块获取的,感知模块可以是相机,红外摄像模组等用于拍摄的设备,所述智能机器人根据所述外部环境生成的运动路径信息,在实际操作中是所述智能机器人的路径规划模块生成的。
可选的,接收模块54还用于通过所述智能机器人的全身动力学模型,以所述用户指令的成功完成度为最优化目标,以所述智能机器人的落脚点位置、脚底受力、落脚序列和时长为变量,以全身动力学模型和足端位置、脚底受力为运动约束方程,建模求解最优化问题,以得到最合适的参数作为模型和方程中的参数;根据最优化目标和所述运动约束方程,得到所述智能机器人的控制指令。
需要说明的是,将所述用户指令和所述状态信息输入所述智能机器人的全身动力学模型,构建最优化问题,以所述用户指令的成功完成度为最优化目标,以所述状态信息为参数,所述智能机器人的全身动力学模型根据上述构建的最优化问题,对所述智能机器人的落脚点位置、脚底受力、落脚序列和时长进行求解,得到所述智能机器人的落脚点位置、脚底受力、落脚序列和时长的解。所述智能机器人的全身动力学模型再通过所述智能机器人的落脚点位置、脚底受力、落脚序列和时长的解计算所述智能机器人的第三位置、第三速度和第三力矩,进而得到所述智能机器人的控制指令。其中,所述智能机器人的控制指令包括所述关节电机的第三位置、第三速度和第三力矩。需要说明的是,所述第三位置、第三速度和第三力矩是所述智能机器人的全身动力学模型计算出来的,所述智能机器人的关节电机的第一位置、第一速度和第一力矩是由所述智能机器人的状态观测器测量得到的。需要说明的是,上述得到所述智能机器人的控制指令的方法都是在所述全身动力学模型中计算的,其中,由于计算量太大,上述计算方法很难以简单的约束条件求解,然后代入最优化目标来确定解,本发明计算上述问题采用的是QP求解的方法。通过上述技术手段,解决了现有技术存在需要根据具体运动情况提前定义智能机器人的运动序列,不能动态调整智能机器人的运动序列使得智能机器人适应各种运动情况的问题。
可选的,接收模块54中所述运动约束方程,包括:
等式约束1:M(q)∙ddq + H(q, dq) + G – Jc∙Fext = τ (1)
等式约束2:Pfoot(t) = a;
a = a1, t ∈ {t| t0 <t < t1}; a = a2, t ∈ {t| t1 <t < t2} (2)
不等式约束:Fext (t) >= b;
b = b1, t ∈ {t| t0 <t < t1}; b = b2, t ∈ {t| t1 <t < t2} (3)
其中,q、代表所述智能机器人的关节的角度,dq代表所述关节的角速度,ddq代表所述关节的角加速度,G为重力,Fext和Jc分别是所述智能机器人受到的外力和其对应的雅克比矩阵,M是惯性矩阵,H是向心力科氏力矩阵,M(q)是关于q的M函数,τ为所述智能机器人的关节控制力矩,Pfoot代表所述智能机器人足端位置,t0、t1、t2分别为与用户指定的动作序列所对应的时刻点,a和b是设置参数。
需要说明的是,所述运动约束方程是对智能机器人的行进路线的限制。举例说明,智能机器人从A地到达B地,有很多条路径,所述运动约束方程就可以理解是使用者对智能机器人从A地到达B地,比如只能向西走等约束条件。其中,上述运动约束包括但不限于智能机器人脚底受力的摩擦锥约束、地形对智能机器人的机身位置姿势的限制。所述运动约束方程用到了雅克比矩阵,其中通过雅克比矩阵就可以把智能机器人受到的外力从笛卡尔空间转换到关节空间,进而,通过智能机器人的关节电机控制智能机器人行走。
可选的,接收模块54中所述最优化目标为min[(xc-xt)T∙R∙(xc-xt)+τT∙Q∙τ],其中,xc和xt分别为所述智能机器人的当前状态信息和目标状态信息,xc和xt由所述智能机器人位置、速度、轨迹点所组成,τ为所述智能机器人的关节控制力矩,R和Q分别为权重矩阵。
需要说明的是,所述智能机器人的当前状态信息和目标状态信息,是所述智能机器人在执行步骤S202至步骤S208的方法中体现的,比如,所述智能机器人在执行循环执行步骤S202至步骤S208的方法中获取的状态信息是当前状态信息,目标状态信息是所述智能机器人的控制指令中所述关节电机的第四位置、第四速度和第四力矩对应的所述智能机器人的状态信息。所述最优化目标是所述智能机器人的全身动力学模型根据所述运动约束方程求出的解的限制,比如,所述智能机器人的全身动力学模型根据所述运动约束方程求出了多个解,所述最优化目标可以是智能机器人从A地到达B地的多个路径中最短的路径,其中,本发明计算上述问题可以采用QP求解的方法。
可选的,接收模块54还用于通过所述智能机器人的单刚体模型,以所述用户指令的成功完成度为最优化目标,以所述状态信息为参数,对所述智能机器人的落脚点位置、脚底受力、落脚序列和时长进行求解,得到所述智能机器人的落脚点位置、脚底受力、落脚序列和时长的解;通过所述智能机器人的落脚点位置、脚底受力、落脚序列和时长的解和所述智能机器人的全身动力学模型计算所述智能机器人的关节电机的第二位置、第二速度和第二力矩,以得到所述智能机器人的控制指令。
需要说明的是,上述记载的方法是完全通过所述全身动力学模型得到所述智能机器人的控制指令,是本发明所采用的第一种方法,本发明还提供了第二种方法:通过单刚体模型和全身动力学模型得到所述智能机器人的控制指令的方法:
首先通过所述智能机器人的单刚体模型,以所述用户指令的成功完成度为最优化目标,以所述状态信息为参数,根据上述参数和目标,所述单刚体模型对所述智能机器人的落脚点位置、脚底受力、落脚序列和时长进行求解,得到所述智能机器人的落脚点位置、脚底受力、落脚序列和时长的解。然后将所述智能机器人的落脚点位置、脚底受力、落脚序列和时长的解输入所述智能机器人的全身动力学模型,计算所述智能机器人的关节电机的第二位置、第二速度和第二力矩,进而得到所述智能机器人的控制指令。
本实施例中,是先通过所述单刚体模型得到所述智能机器人的落脚点位置、脚底受力、落脚序列和时长的解,然后根据全身动力学模型,计算所述智能机器人的关节电机的第二位置、第二速度和第二力矩。而第一种方法中,是所述全身动力学模型先得到所述智能机器人的落脚点位置、脚底受力、落脚序列和时长的解,然后计算所述智能机器人的关节电机的第四位置、第四速度和第四力矩。需要说明的是,通过所述全身动力学模型得到所述智能机器人的控制指令的方法,由于整个过程中只涉及所述全身动力学模型,所以可以直接看成所述全身动力学模型一次就得到所述智能机器人的落脚点位置、脚底受力、落脚序列和时长的解,所述关节电机的位置、速度和力矩。
可选的,接收模块54还用于检测所述用户指令是否发生变化:当检测到所述用户指令不变,循环执行以下步骤直到完成当前所述用户指令结束循环:获取所述状态信息,将所述用户指令和所述状态信息输入所述智能机器人的全身动力学模型,得到所述智能机器人的控制指令,根据所述控制指令对所述智能机器人进行控制;当检测到所述用户指令发生变化,循环执行以下步骤直至完成当前所述用户指令结束循环:获取所述用户指令,获取所述状态信息,将所述用户指令和所述状态信息输入所述智能机器人的全身动力学模型,得到所述智能机器人的控制指令,根据所述控制指令对所述智能机器人进行控制。
需要说明的是,在根据所述控制指令对所述智能机器人进行控制之后,还需要检测所述用户指令是否发生变化。如果检测到所述用户指令不变,那么循环执行:获取所述状态信息,将所述用户指令和所述状态信息输入所述智能机器人的全身动力学模型,得到所述智能机器人的控制指令,根据所述控制指令对所述智能机器人进行控制。直到完成当前所述用户指令结束循环。如果检测到所述用户指令发生变化,循环执行:获取所述用户指令,获取所述状态信息,将所述用户指令和所述状态信息输入所述智能机器人的全身动力学模型,得到所述智能机器人的控制指令,根据所述控制指令对所述智能机器人进行控制。直至完成当前所述用户指令结束循环
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取用户指令,其中,所述用户指令用于控制至少以下之一:所述智能机器人的所要到达的目标位置、速度、轨迹点和动作序列;
S2,获取状态信息,其中,所述状态信息包括:所述智能机器人的状态信息和外部环境的状态信息;
S3,将所述用户指令和所述状态信息输入所述智能机器人的全身动力学模型,得到所述智能机器人的控制指令;
S4,根据所述控制指令对所述智能机器人进行控制。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器ROM、随机存取存储器RAM、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取用户指令,其中,所述用户指令用于控制至少以下之一:所述智能机器人的所要到达的目标位置、速度、轨迹点和动作序列;
S2,获取状态信息,其中,所述状态信息包括:所述智能机器人的状态信息和外部环境的状态信息;
S3,将所述用户指令和所述状态信息输入所述智能机器人的全身动力学模型,得到所述智能机器人的控制指令;
S4,根据所述控制指令对所述智能机器人进行控制。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。