1.本技术属于机器人领域,尤其涉及机器人及其控制方法、装置和计算机可读存储介质。
背景技术:2.机器人的机械臂的自由度冗余是指机器人可以通过各种不同的机械臂姿态,使机械臂的末端到达同一个位置,即机器人的机械臂拥有多余的自由度。通过设定机器人的机械臂具有自由度冗余,可以使得机器人通过不同的位姿来完成工作任务,或者在多个冗余的自由度中寻找最优的位姿来执行任务,从而使得机器人能够更好的完成任务。
3.在确定了机器人的任务后,可以根据机器人的动量方程,对机器人的惯性矩阵进行转换来确定机器人的各个关节的角度。当工作人员设定了任务的参考路径后,机器人不能有效的根据所设定的参考路径,结合机器人自身情况进行调整,不利于提高机器人执行任务的灵活性。
技术实现要素:4.有鉴于此,本技术实施例提供了一种机器人及其控制方法、装置和计算机可读存储介质,以解决现有技术中在工作人员设定了任务的参数路径后,机器人不能有效的根据所设定的参考路径,结合机器人自身情况进行调整,不利于提高机器人执行任务的灵活性的问题。
5.本技术实施例的第一方面提供了一种机器人的控制方法,所述方法包括:
6.获取所述机器人的惯量矩阵和松弛变量,根据所述惯量矩阵和所述松弛变量确定所述机器人的动量方程;
7.获取所述机器人的参考动作对应的参考关节角度;
8.根据预先设定的所述松弛变量的第一权重系数和所述参考关节角度的第二权重系数确定所述动量方程的优化目标函数;
9.根据所述优化目标函数确定所述机器人的关节角度,根据所述机器人的关节角度驱动机器人运动。
10.结合第一方面,在第一方面的第一种可能实现方式中,根据所述惯量矩阵和所述松弛变量确定所述机器人的动量方程,包括:
11.根据所述惯量矩阵和所述松弛变量确定所述机器人的动量方程:
[0012][0013]
其中,h为预先设定的机器人的动量,ω为机器人关节的松弛变量,a为机器人的惯量矩阵,为机器人的关节角速度。
[0014]
结合第一方面的第一种可能实现方式,在第一方面的第二种可能实现方式中,根据所述惯量矩阵和所述松弛变量确定所述机器人的动量方程还包括:
[0015]
根据机器人所执行的动作,确定所述机器人的动量。
[0016]
结合第一方面,在第一方面的第三种可能实现方式中,根据预先设定的所述松弛变量的第一权重系数和所述参考关节角度的第二权重系数确定所述动量方程的优化目标函数,包括:
[0017]
根据预先设定的所述松弛变量的第一权重系数和所述参考关节角度的第二权重系数确定所述动量方程的优化目标函数
[0018][0019]
其中,θ为输出的机器人的关节角度,且θ
min
≤θ≤θ
max
,θ
min
为机器人的关节的最小角度,θ
max
为机器人的关节的最大角度,ω为机器人关节的松弛变量,θr为参考关节角度,λ1为第一权重系数,λ2为第二权重系数,且λ1和λ2均大于0,两者的和为定值。
[0020]
结合第一方面,在第一方面的第四种可能实现方式中,根据所述优化目标函数确定所述机器人的关节角度,包括:
[0021]
根据所述优化目标函数确定所述机器人的关节的角速度;
[0022]
根据所述关节的角速度确定所述机器人的关节角度。
[0023]
结合第一方面的第四种可能实现方式,在第一方面的第五种可能实现方式中,根据所述关节的角速度确定所述机器人的关节角度,包括:
[0024]
根据公式:确定所述机器人的关节角度,其中,θ(k)为当前的关节角度,θ(k-1)为上一时刻的关节角度,为当前时刻的关节角速度,t为当前时刻距离上一时刻的时长。
[0025]
结合第一方面,在第一方面的第六种可能实现方式中,预先设定的所述松弛变量的第一权重系数和所述参考关节角度的第二权重系数,包括:
[0026]
获取所述机器人的稳定性数据,根据所述机器人的稳定性数据调整所述第一权重系数和所述第二权重系数。
[0027]
本技术实施例的第二方面提供了一种机器人的控制装置,所述装置包括:
[0028]
动量方程确定单元,用于获取所述机器人的惯量矩阵和松弛变量,根据所述惯量矩阵和所述松弛变量确定所述机器人的动量方程;
[0029]
参考关节角度获取单元,用于获取所述机器人的参考动作对应的参考关节角度;
[0030]
优化目标函数确定单元,用于根据预先设定的所述松弛变量的第一权重系数和所述参考关节角度的第二权重系数确定所述动量方程的优化目标函数;
[0031]
驱动单元,用于根据所述优化目标函数确定所述机器人的关节角度,根据所述机器人的关节角度驱动机器人运动。
[0032]
本技术实施例的第三方面提供了机器人,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面任一项所述方法的步骤。
[0033]
本技术实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述方法的步骤。
[0034]
本技术实施例与现有技术相比存在的有益效果是:本技术通过机器人的惯量矩阵
和松弛变量确定机器人的动量方程,并根据机器人的参考动作对应的参考关节角度,结合松弛变量的第一权重系数和参考关节角度的第二权重系数确定优化目标函数来计算机器人的关节角度,从而能够根据参考动作和松弛变量调整机器人的关节角度,通过动量方程和优化松弛变量保证机器人稳定性和可靠性的前提下,可通过权重系数提高机器人控制的灵活性。
附图说明
[0035]
为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0036]
图1是本技术实施例提供的一种机器人示意图;
[0037]
图2是本技术实施例提供的一种机器人的控制方法的实现流程示意图;
[0038]
图3是本技术实施例提供的一种机器人的控制装置的示意图;
[0039]
图4是本技术实施例提供的机器人的示意图。
具体实施方式
[0040]
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
[0041]
为了说明本技术所述的技术方案,下面通过具体实施例来进行说明。
[0042]
冗余度机器人是指含有自由度数多于完成某一作业任务所需最少自由度数的机器人。为了完成各种操作任务,我们经常会使用冗余度机器人。比如,6自由度的机器人具有完整的空间定位能力,而更多的自由度可以改善机器人的运动学和动力学特征,包括如增加灵活性、避免障碍物、优化驱动力矩等。因此,冗余度机器人的控制变得日益重要。
[0043]
对于一般的机器人而言,通常具有多个自由度。比如如图1所示的机器人,单腿具有6个自由度,单臂具有7个自由度。机器人全身总有26个自由度。通过机器全身的26个自由度,结合动量方程求解关节角度时,需要对26个关节构成的惯量矩阵进行变换计算,计算得到的关节角度不利于提高机器人执行任务的灵活性。
[0044]
基于上述问题,本技术实施例提出了一种机器人的控制方法,如图2所示,该方法包括:
[0045]
在s201中,获取所述机器人的惯量矩阵和松弛变量,根据所述惯量矩阵和所述松弛变量确定所述机器人的动量方程。
[0046]
具体的,所述机器人的惯量矩阵可以根据机器人的自由度,以及每个自由度的向量维度来确定。比如,图1所示的机器人包括26个自由度,每个自由度可以通过六维向量表示。六维向量可以包括在设定的坐标系中,沿x、y和z轴的偏移量,以及绕x、y和z轴的旋转量。因此,图1所示的机器人的矩阵惯量可以表示为26*6维矩阵。
[0047]
机器人的松弛变量的引入,使得机器人在完成某项任务时,可以在更大的可行域
内进行求解。当松弛变量越大,则机器人的可行域范围越大。可以根据机器人的设计特性,确定机器人的松弛变量的变化范围。但是,随着机器人松弛变量的增加,机器人的活动空间增大的同时,机器人的不稳定因素也会增加,因此,松弛变量越小,机器人执行任务时的稳定性和可靠性则越高。
[0048]
根据所述惯量矩阵和所述松弛变量确定的机器人的动量方程可以表示为:
[0049][0050]
其中,h为预先设定的机器人的动量,可以为6维向量,ω为机器人关节的松弛变量,该松弛变量可以为6维向量,a为机器人的惯量矩阵,假设以图1所示的机器人为例,惯量矩阵可以为26*6维的矩阵向量,为机器人的关节角速度,即机器人的关节在单位时间内所变化的角度,可以根据两个相邻的计算时刻的关节角度大小来确定。比如,t-1时刻的关节角度为θ1,t时刻的关节角度为θ2,t时刻与t-1时刻的时间间隔为t,那t时刻的关节的角速度为(θ2-θ1)/t。
[0051]
其中,机器人的动量可以根据机器人所执行的动作来确定。比如,奔跑的机器人的动量可以根据奔跑的速度,设定不同的机器人的动量。又或者,执行弯腰动作的机器人,可以设定相应的机器人执行该动作的动量。可以预先设定机器人动作或状态与机器人的动量的对应关系,当机器人需要执行某项任务时,根据该任务中的动作规划,确定每个动作所对应的动量,根据所确定的动量来确定动量方程。通过所确定的动量方程来约束机器人执行任务,从而使得机器人能够有效的保证执行任务的可靠性和稳定性,减少机器人出现跌倒等异常问题的几率。
[0052]
其中,机器人的动量与动作或状态的对应关系,可以预先通过统计、实验等方式来确定。机器人的动作可以通过机器人的各个关节的位姿的变化来确定。根据机器人的各个关节的位姿的变化量,以及各个关节的位姿的变化速度、变化顺序等因素,确定机器人所执行的不同动作。
[0053]
在s202中,获取所述机器人的参考动作对应的参考关节角度。
[0054]
在机器人执行任务时,可以设定机器人的参考动作。比如,机器人在执行弯腰任务或动作时,可以设定该动作对应的参考动作。基于该参考动作,可以确定机器人手、足各部件运动的参考轨迹。根据参考轨迹在不同时刻的位姿,即可确定机器人的关节在不同时刻的参考关节角度。
[0055]
比如,图1所示的机器人,在执行弯腰动作时,可以按照预先设定的参考动作,确定机器人各个部件在完成该弯腰动作时的参考轨迹。根据所述机器人在完成该动作时的参考轨迹,即可确定机器人的各个关节的参考关节角度。根据弯腰过程中的各个时刻对应的参考关节角度,可用于机器人参考该角度执行相应的动作任务。
[0056]
在s203中,根据预先设定的所述松弛变量的第一权重系数和所述参考关节角度的第二权重系数确定所述动量方程的优化目标函数。
[0057]
在确定所述机器人的动量方程后,可进一步确定所述动量方程的优化目标函数,从而确定机器人在执行任务目标时,各个关节所对应的最优角度。
[0058]
所述优化目标函数可以包括针对松弛变量的优化,以及针对参考动作的优化。可以设定第一权重系数来描述松弛变量的优化幅度,设定第二权重系数描述针对参考动作的优化幅度。比如,优化目标函数可以表示为:
[0059][0060]
其中,θ为输出的机器人的关节角度,且θ
min
≤θ≤θ
max
,θ
min
为机器人的关节的最小角度,θ
max
为机器人的关节的最大角度,ω为机器人关节的松弛变量,θr为参考关节角度,λ1为第一权重系数,λ2为第二权重系数,且λ1和λ2均大于0,两者的和为定值,比如,可以设定λ1+λ2=1。
[0061]
通过该优化目标函数,使得松弛变量向较小的方向优化,并且使关节角度与关节参考角度之间的差异向较小方向优化,从而使得机器人能够尽可能的按照工作人员所设定的参考动作来执行相应的任务的同时,也可以减小机器人由于松弛变量过大而产生的机器人不稳定或可靠性下降的缺陷。
[0062]
在本技术实施例中,所述第一权重系数和第二权重系数可以与机器人的动作对应,或者,所述第一权重系数和第二权重系数也可以与机器人执行动作时的不同时刻的位姿对应。在确定该对应关系时,可以通过统计、实验等方法,确定机器人在执行不同动作时,或者机器人执行的动作在不同位姿所对应的第一权重系数和第二权重系数的数值。
[0063]
或者,还可以在机器人执行任务的过程中,获取机器人执行任务时的稳定度,根据所获取的稳定度调整所述机器人的第一权重系数和第二权重系数的数值,从而使得机器人能够更为稳定可靠的执行任务。并且,当机器人通过修订第一权重系数和第二权重系数获得更好的稳定性或可靠性后,可以记录存储调整数据和调整后的稳定性和可靠性数据。当机器人执行动作时,可以从预先存储的数据中,获得表现最优的第一权重系数和第二权重系数。
[0064]
在s204中,根据所述优化目标函数确定所述机器人的关节角度,根据所述机器人的关节角度驱动机器人运动。
[0065]
根据所确定的第一权重系数、第二权重系数,结合预先设定的参考关节角度确定优化目标函数,根据所述优化目标函数确定动量方程的解,包括动量方程中的松弛变量和关节的角速度。
[0066]
其中,优化目标函数中的机器人的关节角度,可以根据当前的关节角度与前一时刻的关节角度的角度差,根据该角度差确定单位时间内的关节角度变化量,即机器人的关节的角速度。
[0067]
或者,也可以将关节角速度,结合前一时刻的关节角度,计算得到机器人当前的关节角度。
[0068]
根据优化目标函数确定所述动量方程的松弛变量和关节的角速度后,可以根据所确定的关节的角速度,结合机器人在前一时刻的关节角度,确定机器人在当前的关节角度。
[0069]
比如,可以根据公式:确定所述机器人的关节角度,其中,θ(k)为当前的关节角度,θ(k-1)为上一时刻的关节角度,为当前时刻的关节角速度,t为当前时刻距离上一时刻的时长。
[0070]
根据所确定的机器人在当前时刻的关节角度,即可驱动关节电机对关节进行旋转,从而使得机器人按照所设定的参考动作完成任务。并且,机器人的关节角度能够满足动量方程的同时,可以有效的减小松弛变量的大小,能够提高机器人完成任务的可靠性。通过
优化目标函数中的第一权重系数和第二权重系数可以调节机器人在运动过程中的松弛变量权重和参考动作权重,使得机器人在运动过程中的灵活性更高。
[0071]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0072]
图3为本技术实施例提供的一种机器人的控制装置的示意图,如图3所示,该装置包括:
[0073]
动量方程确定单元301,用于获取所述机器人的惯量矩阵和松弛变量,根据所述惯量矩阵和所述松弛变量确定所述机器人的动量方程;
[0074]
参考关节角度获取单元302,用于获取所述机器人的参考动作对应的参考关节角度;
[0075]
优化目标函数确定单元303,用于根据预先设定的所述松弛变量的第一权重系数和所述参考关节角度的第二权重系数确定所述动量方程的优化目标函数;
[0076]
驱动单元304,用于根据所述优化目标函数确定所述机器人的关节角度,根据所述机器人的关节角度驱动机器人运动。
[0077]
图3所示的机器人的控制装置,与图2所示的机器人的控制方法对应。
[0078]
图4是本技术一实施例提供的机器人的示意图。如图4所示,该实施例的机器人4包括:处理器40、存储器41以及存储在所述存储器41中并可在所述处理器40上运行的计算机程序42,例如机器人的控制程序。所述处理器40执行所述计算机程序42时实现上述各个机器人的控制方法实施例中的步骤。或者,所述处理器40执行所述计算机程序42时实现上述各装置实施例中各模块/单元的功能。
[0079]
示例性的,所述计算机程序42可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器41中,并由所述处理器40执行,以完成本技术。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序42在所述机器人4中的执行过程。
[0080]
所述机器人可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图4仅仅是机器人4的示例,并不构成对机器人4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述机器人还可以包括输入输出设备、网络接入设备、总线等。
[0081]
所称处理器40可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0082]
所述存储器41可以是所述机器人4的内部存储单元,例如机器人4的硬盘或内存。所述存储器41也可以是所述机器人4的外部存储设备,例如所述机器人4上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器41还可以既包括所述机器人4的内部存储单元也包
括外部存储设备。所述存储器41用于存储所述计算机程序以及所述机器人所需的其他程序和数据。所述存储器41还可以用于暂时地存储已经输出或者将要输出的数据。
[0083]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0084]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0085]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0086]
在本技术所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0087]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0088]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0089]
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机程序指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机
可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
[0090]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。