机器人关节运动控制方法、装置及终端设备
技术领域
本发明属于智能机器人技术领域,尤其涉及一种机器人关节运动控制方法、装置及终端设备。
背景技术
随着智能技术的不断发展,智能机器人的研究已经逐步进入人们的日常领域,其中消费类机器人或娱教类机器人逐渐扩展到家庭、娱乐以及服务业等领域,这类机器人由于产品成本较低,关节动作往往较为简单。
目前,在消费类机器人或娱教类机器人中关节动作的控制,往往采用无衔接或简单的线性衔接控制,这两种控制方式实现较为简单,但是机器人的关节在运动时,容易引起动作过冲、动作僵硬、动作表现机械,甚至造成机器人整机晃动等问题,影响用户的体验。
发明内容
有鉴于此,本发明实施例提供了一种机器人关节运动控制方法、装置及终端设备,能够解决现有技术中机器人的关节在运动时,容易引起动作过冲、动作僵硬、动作表现机械,甚至造成机器人整机晃动等问题,影响用户的体验的问题。
本发明实施例的第一方面,提供了一种机器人关节运动控制方法,包括:
根据预设的线性控制模型,获取机器人关节运动的多个关键点的坐标值,其中所述多个关键点为所述机器人关节在每两个单一动作进行切换的节点,所述关键点的横坐标为关节运动时间参数,纵坐标为关节运动位置参数;
根据预设的时间衔接因子,确定各关键点前后的两个平滑衔接点的坐标值;
根据每两个平滑衔接点及对应的关键点的坐标值,按照预设的抛物线衔接公式计算得到每相邻两个平滑衔接点之间的关节运动轨迹;
根据每相邻两个平滑衔接点的之间的关节运动轨迹,控制所述机器人的关节运动。
本发明实施例的第二方面,提供了一种机器人关节运动控制装置,包括:
关键点获取单元,用于根据预设的线性控制模型,获取机器人关节运动的多个关键点的坐标值,其中所述多个关键点为所述机器人关节在每两个单一动作进行切换的节点,所述关键点的横坐标为关节运动时间参数,纵坐标为关节运动位置参数;
平滑衔接点确定单元,用于根据预设的时间衔接因子,确定各关键点前后的两个平滑衔接点的坐标值;
关节运动轨迹平滑计算单元,用于根据每两个平滑衔接点及对应的关键点的坐标值,按照预设的抛物线衔接公式计算得到每相邻两个平滑衔接点之间的关节运动轨迹;
关节运动控制单元,用于根据每相邻两个平滑衔接点的之间的关节运动轨迹,控制所述机器人的关节运动。
本发明实施例的第三方面,提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的机器人关节运动控制方法的步骤。
本发明实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的机器人关节运动控制方法的步骤。
本发明实施例与现有技术相比的有益效果是:本发明实施例提供的机器人关节运动控制方法、装置及终端设备,首先获取机器人关节运动的多个关键点的坐标值,根据预设的时间衔接因子,确定各关键点前后的两个平滑衔接点的坐标值,根据每两个平滑衔接点及对应的关键点的坐标值,按照预设的抛物线衔接公式计算得到每相邻两个平滑衔接点之间的关节运动轨迹,根据每相邻两个平滑衔接点的之间的关节运动轨迹,控制机器人的关节运动,本发明实施例机器人关节运动时,首先按照预设的线性控制模型控制关节运动经过平滑衔接点处,这样控制成本较低,满足消费类机器人或娱教类机器人中关节动作的控制,同时在两个平滑衔接点之间按照两个平滑衔接点的之间的关节运动轨迹,控制所述机器人的关节运动,实现对机器人关节运动发生变化的平滑衔接处理,避免机器人的关节在运动时的动作过冲、动作僵硬、动作表现机械,甚至造成机器人整机晃动等问题,提升用户的体验。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供种机器人关节运动控制方法的流程示意图;
图2为本发明实施例提供的线性控制模型机器人关节运动曲线示意图;
图3为本发明另一实施例提供的机器人关节运动控制方法的流程示意图;
图4为本发明再一实施例提供的机器人关节运动控制方法的流程示意图;
图5为本发明实施例提供的时间衔接因子为100ms对应的机器人关节运动曲线示意图;
图6为本发明实施例提供的时间衔接因子为400ms对应的机器人关节运动曲线示意图;
图7为本发明一实施例提供的机器人关节运动控制装置的结构框图;
图8为本发明一实施例提供的终端设备的示意框图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
参考图1,图1为本发明一实施例提供的机器人关节运动控制方法的流程示意图。该方法可以应用于机器人,该方法详述如下:
S101:根据预设的线性控制模型,获取机器人关节运动的多个关键点的坐标值,其中关键点为机器人关节在每两个单一动作进行切换的节点,关键点的横坐标为关节运动时间参数,纵坐标为关节运动位置参数。
在本实施例中,通过预设的线性控制模型实现对机器人的关节的简单线性控制,该模型可以是现有的线性控制模型中任意一种。单一动作中机器人的关节运动方向(线路)不发生变化。参考图2,例如一个单一动作中,机器人的关节向一个方向运动(图中a所示),在关键点(图中P所示)处机器人的关节运动的方向发生变化,开始向另一个方向运动(图中b所示)。其中关节运动时间参数单位可以是毫米mm,纵坐标为关节运动位置参数单位可以是毫秒ms。
在本发明的一个实施例中,所述根据预设的线性控制模型为:
式中,y为关节运动位置参数;x为关节运动时间参数;x1为某单一动作起始时间;y1为某单一动作起始位置;x2为某单一动作结束时间;y2为某单一动作结束位置。
S102:根据预设的时间衔接因子,确定各关键点前后的两个平滑衔接点的坐标值。
在本实施例中,每个关键点可以对应一个预设的时间衔接因子,预设的时间衔接因子可以根据各关键点与相邻关键点的距离进行确定,预设的时间衔接因子为一段时间间隔。平滑衔接点为关键点前后使得每两个单一动作进行切换时动作实现平滑过渡衔接。
具体地,可以获取距离关键点的时间参数之前一段时间间隔的一个平滑衔接点,以及距离关键点的时间参数之后一段时间间隔的另一个平滑衔接点。其中平滑衔接点为预设的线性控制模型上的点。
S103:根据每两个平滑衔接点及对应的关键点的坐标值,按照预设的抛物线衔接公式计算得到每相邻两个平滑衔接点之间的关节运动轨。
在本实施例中,可以将相邻两个平滑衔接点的之间所有的时间参数导入至预设的抛物线衔接公式中,计算得到相邻两个平滑衔接点之间每个时间参数对应的关节运动位置参数,进而得到相邻两个平滑衔接点之间的关节运动轨。
具体地,根据预设的抛物线衔接公式:
计算得到每相邻两个平滑衔接点的关节运动轨迹,其中t为两个平滑衔接点的关节运动轨迹的关节运动时间参数,yp为两个平滑衔接点的关节运动轨迹的关节运动位置参数,(xp0,yp0)和(xp2,yp2)为相邻两个平滑衔接点的坐标值,(xp1,yp1)为对应的关键点的坐标值。
S104:根据每相邻两个平滑衔接点的之间的关节运动轨迹,控制所述机器人的关节运动。
在本实施例中,参考图2,机器人关节运动时,首先按照预设的线性控制模型控制关节运动经过平滑衔接点处(图2中P1所示),然后在相邻两个平滑衔接点之间按照两个平滑衔接点(图2中P1至P2所示)的之间的关节运动轨迹(图2中虚线所示),控制所述机器人的关节运动。
从本实施例可知,首先获取机器人关节运动的多个关键点的坐标值,根据预设的时间衔接因子,确定各关键点前后的两个平滑衔接点的坐标值,根据每两个平滑衔接点及对应的关键点的坐标值,按照预设的抛物线衔接公式计算得到每相邻两个平滑衔接点之间的关节运动轨迹,根据每相邻两个平滑衔接点的之间的关节运动轨迹,控制机器人的关节运动,本发明实施例机器人关节运动时,首先按照预设的线性控制模型控制关节运动经过平滑衔接点处,这样控制成本较低,满足消费类机器人或娱教类机器人中关节动作的控制,同时在两个平滑衔接点之间按照两个平滑衔接点的之间的关节运动轨迹,控制所述机器人的关节运动,实现对机器人关节运动发生变化的平滑衔接处理,避免机器人的关节在运动时的动作过冲、动作僵硬、动作表现机械,甚至造成机器人整机晃动等问题,提升用户的体验。
参考图3,图3为本发明另一实施例提供的机器人关节运动控制方法的流程示意图。在本实施例中,参考图2,每一所述关键点的坐标值记为P1(xp1,yp1);相邻两个平滑衔接点中该关键点之前的平滑衔接点为对应关键点的第一平滑衔接点,记为P0(xp0,yp0),每一所述关键点之后的平滑衔接点为对应关键点的第二平滑衔接点的坐标为,记为P2(xp2,yp2);上述步骤S102根据预设的时间衔接因子,确定各关键点前后的两个平滑衔接点的坐标值的过程,包括:
S201:将每一关键点的关节运动时间参数减去预设的时间衔接因子,得到该对应关键点的第一平滑衔接点的关节运动时间参数,将每一关键点的关节运动时间参数加上预设的时间衔接因子,得到该对应关键点的第二平滑衔接点的关节运动时间参数。
在本实施例中,参考图2,根据预设的时间衔接因子k和对应关键点P1的关节运动时间参数xp1确定关键点前后的两个平滑衔接点,其中第一平滑衔接点P0的关节运动时间参数xp0=xp1-k,第二平滑衔接点P2的关节运动时间参数xp2=xp1+k。
S202:将第一平滑衔接点的关节运动时间参数导入至预设的线性控制模型中确定对应关键点的第一平滑衔接点关节运动位置参数,将第二平滑衔接点的关节运动时间参数导入至预设的线性控制模型中确定对应关键点的第二平滑衔接点关节运动位置参数。
在本实施例中,将第一平滑衔接点P0的关节运动时间参数xp0导入至公式(1)中,计算得到第一平滑衔接点P0关节运动位置参数yp0;将第二平滑衔接点P2的关节运动时间参数xp2导入至公式(1)中,计算得到第二平滑衔接点P2关节运动位置参数yp2。
参考图4,图4为本发明再一实施例提供的机器人关节运动控制方法的流程示意图。在本实施例中,上述步骤S102中根据预设的时间衔接因子,确定各关键点前后的两个平滑衔接点的坐标值之前,还包括:
S301:获取任一目标关键点与所述目标关键点相邻的关键点的时间间隔。
S302:若所述预设的时间衔接因子大于所述时间间隔,则将所述预设的时间衔接因子进行调整,调整后的时间衔接因子小于或等于所述时间间隔。
在本实施例中,不同的时间衔接因子对应的机器人关节运动曲线不同,参考图5为时间衔接因子为100ms对应的机器人关节运动曲线示意图,参考图6为时间衔接因子为400ms对应的机器人关节运动曲线示意图。
对应于上文实施例的机器人关节运动控制方法,图7为本发明一实施例提供的机器人关节运动控制装置的结构框图。为了便于说明,仅示出了与本发明实施例相关的部分。参照图7,所述装置包括:关键点获取单元501、平滑衔接点确定单元502、关节运动轨迹平滑计算单元503和关节运动控制单元504。
其中,关键点获取单元501,用于根据预设的线性控制模型,获取机器人关节运动的多个关键点的坐标值,其中所述关键点为所述机器人关节在每两个单一动作进行切换的节点,所述关键点的横坐标为关节运动时间参数,纵坐标为关节运动位置参数;
平滑衔接点确定单元502,用于根据预设的时间衔接因子,确定各关键点前后的两个平滑衔接点的坐标值;
关节运动轨迹平滑计算单元503,用于根据每两个平滑衔接点及对应的关键点的坐标值,按照预设的抛物线衔接公式计算得到每相邻两个平滑衔接点之间的关节运动轨迹;
关节运动控制单元504,用于根据每相邻两个平滑衔接点的之间的关节运动轨迹,控制所述机器人的关节运动。
从本实施例可知,先获取机器人关节运动的多个关键点的坐标值,根据预设的时间衔接因子,确定各关键点前后的两个平滑衔接点的坐标值,根据每两个平滑衔接点及对应的关键点的坐标值,按照预设的抛物线衔接公式计算得到每相邻两个平滑衔接点之间的关节运动轨迹,根据每相邻两个平滑衔接点的之间的关节运动轨迹,控制机器人的关节运动,本发明实施例机器人关节运动时,首先按照预设的线性控制模型控制关节运动经过平滑衔接点处,这样控制成本较低,满足消费类机器人或娱教类机器人中关节动作的控制,同时在两个平滑衔接点之间按照两个平滑衔接点的之间的关节运动轨迹,控制所述机器人的关节运动,实现对机器人关节运动发生变化的平滑衔接处理,避免机器人的关节在运动时的动作过冲、动作僵硬、动作表现机械,甚至造成机器人整机晃动等问题,提升用户的体验。
参考图7,在本发明的一个实施例中,所述根据预设的线性控制模型为:
式中,y为关节运动位置参数;x为关节运动时间参数;x1为某单一动作起始时间;y1为某单一动作起始位置;x2为某单一动作结束时间;y2为某单一动作结束位置。
参考图7,在本发明的一个实施例中,每一所述关键点之前的平滑衔接点为对应关键点的第一平滑衔接点,每一所述关键点之后的平滑衔接点为对应关键点的第二平滑衔接点;所平滑衔接点确定单元502,包括:
关节运动时间参数确定模块5021,用于将所述每一关键点的关节运动时间参数减去所述预设的时间衔接因子,得到该对应关键点的第一平滑衔接点的关节运动时间参数,将所述每一关键点的关节运动时间参数加上所述预设的时间衔接因子,得到该对应关键点的第二平滑衔接点的关节运动时间参数;
关节运动位置参数确定模块5022,用于将所述第一平滑衔接点的关节运动时间参数导入至预设的线性控制模型中确定所述对应关键点的第一平滑衔接点关节运动位置参数,将所述第二平滑衔接点的关节运动时间参数导入至预设的线性控制模型中获取所述对应关键点的第二平滑衔接点关节运动位置参数。
参考图7,在本发明的一个实施例中,关节运动轨迹平滑计算单元503,具体用于所述根据每相邻两个平滑衔接点及对应的关键点的坐标值,按照预设的抛物线衔接公式计算得到两个平滑衔接点之间的关节运动轨迹,包括:
根据预设的抛物线衔接公式:
计算得到每相邻两个平滑衔接点的关节运动轨迹,其中t为两个平滑衔接点的关节运动轨迹的关节运动时间参数,yp为两个平滑衔接点的关节运动轨迹的关节运动位置参数,(xp0,yp0)和(xp2,yp2)为相邻两个平滑衔接点的坐标值,(xp1,yp1)为对应的关键点的坐标值。
参考图7,在本发明的一个实施例中,所述装置还包括:
时间衔接因子处理单元505,用于获取任一目标关键点与所述目标关键点相邻的关键点的时间间隔,若所述预设的时间衔接因子大于所述时间间隔,则将所述预设的时间衔接因子进行调整,调整后的时间衔接因子小于或等于所述时间间隔。
参见图8,图8为本发明一实施例提供的终端设备的示意框图。如图8所示的本实施例中的终端600可以包括:一个或多个处理器601、一个或多个输入设备602、一个或多个则输出设备603及一个或多个存储器604。上述处理器601、输入设备602、则输出设备603及存储器604通过通信总线605完成相互间的通信。存储器604用于存储计算机程序,所述计算机程序包括程序指令。处理器601用于执行存储器604存储的程序指令。其中,处理器601被配置用于调用所述程序指令执行以下操作上述各装置实施例中各模块/单元的功能,例如图7所示模块501至504的功能。
应当理解,在本发明实施例中,所称处理器601可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
输入设备602可以包括触控板、指纹采传感器(用于采集用户的指纹信息和指纹的方向信息)、麦克风等,输出设备603可以包括显示器(LCD等)、扬声器等。
该存储器604可以包括只读存储器和随机存取存储器,并向处理器601提供指令和数据。存储器604的一部分还可以包括非易失性随机存取存储器。例如,存储器604还可以存储设备类型的信息。
具体实现中,本发明实施例中所描述的处理器601、输入设备602、输出设备603可执行本发明实施例提供的业务请求方法的第一实施例和第二实施例中所描述的实现方式,也可执行本发明实施例所描述的终端的实现方式,在此不再赘述。
在本发明的另一实施例中提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
所述计算机可读存储介质可以是前述任一实施例所述的终端的内部存储单元,例如终端的硬盘或内存。所述计算机可读存储介质也可以是所述终端的外部存储设备,例如所述终端上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述终端的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序及所述终端所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的终端和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的终端和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。