掌桥专利:专业的专利平台
掌桥专利
首页

机器人头部姿态三自由度控制方法及相关设备

文献发布时间:2023-06-19 19:30:30


机器人头部姿态三自由度控制方法及相关设备

技术领域

本申请涉及机器人技术领域,具体涉及一种机器人头部姿态三自由度控制方法及相关设备。

背景技术

随着机器人技术的发展,用户对机器人拟人程度的要求越来越高,其中头部动作会显著地影响机器人的拟人程度,机器人的头部动作由颈部机构驱动。目前,机器人的颈部机构大多采用三自由度串联构型颈部机构,三自由度串联构型颈部机构的横滚(roll)轴线和俯仰(pitch)轴线不相交,严重地影响机器人头部动作的拟人程度。

发明内容

鉴于此,本申请提供一种机器人头部姿态三自由度控制方法及相关设备,旨在解决如何提升机器人头部动作的拟人程度的技术问题。

本申请第一方面提供一种机器人头部姿态三自由度控制方法,机器人包括头部、机身以及连接头部和机身的颈部,颈部包括至少两个升降机构和至少一个电机,至少两个升降机构并联连接,至少一个电机通过至少一个连接件与至少两个升降机构的推杆连接,机器人头部姿态三自由度控制方法包括:响应于头部姿态控制指令,计算至少一个电机的期望旋转角度和至少两个升降机构各自的推杆期望运动距离;根据至少一个电机的期望旋转角度获取电机驱动指令;根据至少两个升降机构各自的推杆期望运动距离获取升降机构驱动指令;响应于电机驱动指令,驱动至少一个电机;以及响应于升降机构驱动指令,驱动至少两个升降机构,以控制机器人的头部从当前姿态向期望姿态运动。

采用本实施例的机器人头部姿态三自由度控制方法,首先响应于头部姿态控制指令,计算至少一个电机的期望旋转角度和至少两个升降机构各自的推杆期望运动距离,然后根据至少一个电机的期望旋转角度获取电机驱动指令,根据至少两个升降机构各自的推杆期望运动距离获取升降机构驱动指令,再根据电机驱动指令驱动至少一个电机,根据升降机构驱动指令驱动至少两个升降机构,从而控制机器人的头部从当前姿态向期望姿态运动,可在三自由度并联构型颈部机构的横滚轴线、俯仰轴线和偏航轴线相互正交或者非正交时,对机器人的颈部机构进行运动学求解,提升机器人头部动作的拟人程度。

本申请第二方面提供一种机器人,包括处理器、头部、机身以及连接头部和机身的颈部,颈部包括至少两个升降机构和至少一个电机,至少两个升降机构并联连接,至少一个电机通过至少一个连接件与至少两个升降机构的推杆连接;机器人被配置为:通过处理器响应于头部姿态控制指令,计算至少一个电机的期望旋转角度和至少两个升降机构各自的推杆期望运动距离;根据至少一个电机的期望旋转角度获取电机驱动指令;根据至少两个升降机构各自的推杆期望运动距离获取升降机构驱动指令;响应于电机驱动指令,驱动至少一个电机;以及响应于升降机构驱动指令,驱动至少两个升降机构,以控制机器人的头部从当前姿态向期望姿态运动。

本申请第三方面提供一种机器人的控制终端,包括处理器,控制终端与机器人通信连接,机器人包括头部、机身以及连接头部和机身的颈部,颈部包括至少两个升降机构和至少一个电机,至少两个升降机构并联连接,至少一个电机通过至少一个连接件与至少两个升降机构的推杆连接;控制终端被配置为:通过处理器响应于头部姿态控制指令,计算机器人颈部的至少一个电机的期望旋转角度和至少两个升降机构各自的推杆期望运动距离;根据至少一个电机的期望旋转角度获取电机驱动指令,电机驱动指令用于驱动至少一个电机;根据至少两个升降机构各自的推杆期望运动距离获取升降机构驱动指令,升降机构驱动指令用于驱动至少两个升降机构;向机器人发送电机驱动指令和升降机构驱动指令,以控制机器人的头部从当前姿态向期望姿态运动。

可以理解,本申请第二方面提供的机器人、第三方面提供的机器人的控制终端的具体实施方式和有益效果均与本申请第一方面提供的机器人头部姿态三自由度控制方法的具体实施方式和有益效果大致相同,此处不再赘述。

附图说明

图1是本申请一种实施例提供的机器人的结构框图。

图2是本申请一种实施例提供的机器人的颈部结构示意图。

图3是本申请一种实施例提供的机器人头部姿态三自由度控制方法的流程图。

图4是本申请一种实施例提供的图3所示的步骤S301的子步骤流程图。

图5是本申请一种实施例提供的图4所示的步骤S406的子步骤流程图。

图6是本申请一种实施例提供的图3所示的步骤S306的子步骤流程图。

图7是本申请一种实施例提供的控制终端的结构框图。

图8是本申请一种实施例提供的多足机器人的结构框图。

图9是本申请一种实施例提供的控制终端控制多足机器人的场景示意图。

具体实施方式

需要说明的是,本申请实施例中“至少一个”是指一个或者多个,“多个”是指两个或多于两个。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。本申请的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不是用于描述特定的顺序或先后次序。

另外需要说明的是,本申请实施例中公开的方法或流程图所示出的方法,包括用于实现方法的一个或多个步骤,在不脱离权利要求的范围的情况下,多个步骤的执行顺序可以彼此互换,其中某些步骤也可以被删除。

下面对本申请实施例的部分技术术语进行说明。

1,运动学求解

机器人的头部动作由颈部机构驱动,在机器人的颈部机构驱动头部运动之前,需要对机器人的颈部机构进行运动学求解。运动学求解包括正运动求解和逆运动求解。其中,将机器人颈部的电机的旋转角度或升降机构的推杆运动距离转换为机器人的头部姿态的过程,称为正运动求解。将机器人的头部姿态转换为机器人颈部的电机的旋转角度或升降机构的推杆运动距离的过程,称为逆运动求解。

2,串联构型颈部机构

串联构型颈部机构是指机器人颈部的至少两个升降机构的连接方式为串联连接。三自由度串联构型颈部机构的横滚(roll)轴线和俯仰(pitch)轴线不相交,严重地影响机器人头部动作的拟人程度。

3,并联构型颈部机构

并联构型颈部机构是指机器人颈部的至少两个升降机构的连接方式为并联连接。三自由度并联构型颈部机构的横滚轴线和俯仰轴线相交于一点,可有效改善机器人头部动作的拟人程度。然而,三自由度并联构型颈部机构的横滚轴线、俯仰轴线和偏航(yaw)轴线相互正交,导致运动学求解过程单一且具有局限性。

基于此,本申请提供一种机器人头部姿态三自由度控制方法及相关设备,首先响应于头部姿态控制指令,计算至少一个电机的期望旋转角度和至少两个升降机构各自的推杆期望运动距离,然后根据至少一个电机的期望旋转角度获取电机驱动指令,根据至少两个升降机构各自的推杆期望运动距离获取升降机构驱动指令,再根据电机驱动指令驱动至少一个电机,根据升降机构驱动指令驱动至少两个升降机构,从而控制机器人的头部从当前姿态向期望姿态运动,可在三自由度并联构型颈部机构的横滚轴线、俯仰轴线和偏航轴线非正交时,对机器人的颈部机构进行运动学求解,提升机器人头部动作的拟人程度。

下面对本申请实施例的机器人进行说明。

图1是本申请一种实施例提供的机器人10的结构框图。

可参阅图1,机器人10包括头部100、机身200、颈部300以及处理器400。颈部300连接头部100和机身200。颈部300包括至少两个升降机构310、至少一个电机320以及至少一个连接件330。其中,至少两个升降机构310为并联连接,至少一个电机320通过至少一个连接件330与至少两个升降机构310连接。升降机构310包括推杆311和至少一个电机312。

在本实施例中,机器人10可通过处理器400响应于头部姿态控制指令,计算至少一个电机320的期望旋转角度和至少两个升降机构310各自的推杆311期望运动距离,然后生成电机驱动指令和升降机构驱动指令,再分别驱动至少一个电机320和至少两个升降机构310。

具体而言,机器人10可通过处理器400响应于电机驱动指令,通过驱动至少一个电机320进行旋转运动,带动颈部300环绕偏航轴线方向进行旋转运动。机器人10可通过处理器400响应于升降机构驱动指令,通过驱动至少两个升降机构310内部的电机312进行旋转运动,带动推杆311运动,从而带动颈部300环绕横滚轴线方向和/或俯仰轴线方向进行旋转运动。至少一个电机320的旋转运动和至少两个升降机构310内部的推杆311运动,带动颈部300环绕偏航轴线、横滚轴线和俯仰轴线中的至少一个方向进行旋转运动,从而带动连接于颈部300的头部100运动。

可以理解,推杆311运动可包括伸长或缩短。头部100运动可包括前后摆动、左右摆动或转动。

举例而言,当用户通过语音或触控等方式向机器人10发出头部姿态控制指令时,机器人10通过处理器400响应于头部姿态控制指令,计算至少一个电机320的期望旋转角度和至少两个升降机构310各自的推杆311期望运动距离。机器人10再通过处理器400根据至少一个电机320的期望旋转角度生成电机驱动指令,并根据至少两个升降机构310各自的推杆311期望运动距离生成升降机构驱动指令。然后,机器人10通过处理器400响应于电机驱动指令,驱动至少一个电机320进行旋转运动,带动颈部300环绕偏航轴线方向进行旋转运动,从而带动头部100进行转动。机器人10再通过处理器400响应于升降机构驱动指令,驱动至少两个升降机构310内部的电机312进行旋转运动,带动至少两个升降机构310各自的推杆311伸长或缩短,从而带动颈部300环绕横滚轴线方向进行旋转运动,再带动头部100进行左右摆动;和/或,带动颈部300环绕俯仰轴线方向进行旋转运动,再带动头部100进行前后摆动。

下面以三自由度并联构型颈部机构为例对本申请实施例的机器人的颈部进行说明。

图2是本申请一种实施例提供的机器人10的颈部300的结构示意图。

可参阅图2,机器人10的颈部300为三自由度并联构型颈部机构。颈部300包括两个升降机构310、电机320、连接件330以及底座340。两个升降机构310包括左升降机构3101和右升降机构3102。其中,左升降机构3101和右升降机构3102为并联连接,电机320通过连接件330连接左升降机构3101和右升降机构3102。左升降机构3101包括左推杆3111和至少一个电机(图未示)。右升降机构3102包括右推杆3112和至少一个电机(图未示)。左推杆3111与连接件330的铰接处为左上铰点3301,左推杆3111与底座340的铰接处为左下铰点3401。右推杆3112与连接件330的铰接处为右上铰点3302,右推杆3112与底座340的铰接处为右下铰点3402。垂直于左推杆3111和右推杆3112的方向为俯仰轴线方向。横滚轴线方向与俯仰轴线方向正交,且均平行于底座340的下表面。垂直于电机320的上表面和下表面的方向为偏航轴线方向。可见,横滚轴线方向与偏航轴线方向非正交。

在本实施例中,机器人10可通过构建三个局部坐标系来计算电机320的期望旋转角度、左推杆3111期望运动距离和右推杆3112期望运动距离。三个局部坐标系包括基础坐标系、颈部坐标系和头部坐标系。其中,基础坐标系的原点位于底座340附近,基础坐标系包括X

下面以图2所示的机器人10的颈部300为例对本申请实施例的机器人头部姿态三自由度控制方法进行说明。

图3是本申请一种实施例提供的机器人头部姿态三自由度控制方法的流程图。

可参阅图3,机器人头部姿态三自由度控制方法可包括如下步骤:

S301,响应于头部姿态控制指令,计算电机320的期望旋转角度、左升降机构3101的左推杆3111期望运动距离和右升降机构3102的右推杆3112期望运动距离。

在本实施例中,头部姿态控制指令用于控制机器人10的头部100从当前姿态向期望姿态运动。头部姿态控制指令包括头部期望姿态,头部期望姿态是指机器人10的头部100在头部坐标系下的期望姿态。机器人10可先从头部姿态控制指令识别出头部期望姿态,再通过逆运动求解,根据头部期望姿态计算出电机320的期望旋转角度、左升降机构3101的左推杆3111期望运动距离和右升降机构3102的右推杆3112期望运动距离。

可以理解,电机320向期望旋转角度进行旋转运动,可带动机器人10的颈部300环绕偏航轴线方向进行旋转运动,从而带动头部100进行转动。左升降机构3101向左推杆3111期望运动距离进行运动,以及右升降机构3102向右推杆3112期望运动距离进行运动,可带动颈部300环绕横滚轴线方向进行旋转运动,从而带动头部100进行左右摆动;和/或,可带动颈部300环绕俯仰轴线方向进行旋转运动,从而带动头部100进行前后摆动。

举例而言,当电机320沿顺时针方向旋转时,颈部300环绕偏航轴线方向沿顺时针方向旋转,从而带动头部100沿顺时针方向转动。当电机320沿逆时针方向旋转时,颈部300环绕偏航轴线方向沿逆时针方向旋转,从而带动头部100沿逆时针方向转动。当左升降机构3101的左推杆3111伸长距离大于右升降机构3102的右推杆3112伸长距离时,颈部300环绕横滚轴线方向沿顺时针方向旋转,从而带动头部100向右摆动。当左升降机构3101的左推杆3111伸长距离小于右升降机构3102的右推杆3112伸长距离时,颈部300环绕横滚轴线方向沿逆时针方向旋转,从而带动头部100向左摆动。当左升降机构3101的左推杆3111和右升降机构3102的右推杆均伸长时,颈部300环绕俯仰轴线方向沿逆时针方向旋转,从而带动头部100向后摆动。当左升降机构3101的左推杆3111和右升降机构3102的右推杆均缩短时,颈部300环绕俯仰轴线方向沿顺时针方向旋转,从而带动头部100向前摆动。

S302,根据电机320的期望旋转角度获取电机驱动指令。

在本实施例中,当机器人10计算出电机320的期望旋转角度时,可生成电机驱动指令。电机驱动指令用于驱动电机320向期望旋转角度进行旋转运动。

S303,根据左升降机构3101的左推杆3111期望运动距离和右升降机构3102的右推杆3112期望运动距离获取升降机构驱动指令。

在本实施例中,当机器人10计算出左升降机构3101的左推杆3111期望运动距离和右升降机构3102的右推杆3112期望运动距离时,可生成升降机构驱动指令。升降机构驱动指令用于驱动左升降机构3101向左推杆3111期望运动距离进行运动,以及驱动右升降机构3102向右推杆3112期望运动距离进行运动。

S304,响应于电机驱动指令和升降机构驱动指令,控制机器人10的头部100从当前姿态向期望姿态运动。

在本实施例中,机器人10响应于电机驱动指令,驱动电机320向期望旋转角度进行旋转运动;响应于升降机构驱动指令,驱动左升降机构3101向左推杆3111期望运动距离进行运动,以及驱动右升降机构3102向右推杆3112期望运动距离进行运动,从而控制机器人10的头部100从当前姿态向期望姿态运动。

举例而言,假设电机驱动指令为“电机320沿顺时针方向旋转60度”,升降机构驱动指令为“左升降机构3101的左推杆3111伸长30厘米,右升降机构3102的右推杆3112伸长20厘米”。机器人10响应于电机驱动指令,驱动电机320沿顺时针方向旋转60度,带动颈部300环绕偏航轴线方向沿顺时针方向旋转60度,从而带动头部100沿顺时针方向转动60度。机器人10响应于升降机构驱动指令,驱动左升降机构3101的左推杆3111伸长30厘米,以及驱动右升降机构3102的右推杆3112伸长20厘米,带动颈部300环绕横滚轴线方向沿顺时针方向旋转对应的期望角度,从而带动头部100向右摆动对应的期望角度;同时,带动颈部300环绕俯仰轴线方向沿逆时针方向旋转对应的期望角度,从而带动头部100向后摆动对应的期望角度。

S305,检测电机320的旋转角度、左升降机构3101的左推杆3111运动距离和右升降机构3102的右推杆3112运动距离。

在本实施例中,机器人10可通过传感器实时或周期性地检测电机320的旋转角度,以及左升降机构3101的左推杆3111运动距离和右升降机构3102的右推杆3112运动距离。

S306,根据检测到的电机320的旋转角度、左升降机构3101的左推杆3111运动距离和右升降机构3102的右推杆3112运动距离,计算机器人10的头部100的当前姿态。

在本实施例中,机器人10在检测到电机320的旋转角度,以及左升降机构3101的左推杆3111运动距离和右升降机构3102的右推杆3112运动距离之后,可通过正运动求解,根据电机320的旋转角度,以及左升降机构3101的左推杆3111运动距离和右升降机构3102的右推杆3112运动距离计算出机器人10的头部100的当前姿态。

S307,确定机器人10的头部100的当前姿态是否达到期望姿态。

在本实施例中,当机器人10的头部100从当前姿态向期望姿态运动时,头部100的当前姿态是不断变化的,机器人10可周期性地计算头部100的当前姿态,检测头部100的当前姿态是否达到期望姿态。

当机器人10的头部100的当前姿态达到期望姿态时,返回执行步骤S301。即,在下一个控制周期接收头部姿态控制指令,再继续响应于头部姿态控制指令,计算电机320的期望旋转角度、左升降机构3101的左推杆3111期望运动距离和右升降机构3102的右推杆3112期望运动距离。

当机器人10的头部100的当前姿态未达到期望姿态时,返回执行步骤S305。即,等待头部100继续向期望姿态运动,然后继续检测电机320的旋转角度、左升降机构3101的左推杆3111运动距离和右升降机构3102的右推杆3112运动距离,再计算机器人10的头部100的当前姿态,直至头部100的当前姿态达到期望姿态。

可以理解,机器人10具有多个控制周期T,控制周期T可依需而设。

举例而言,控制周期T可包括至少一个第一控制周期T

图4是本申请一种实施例提供的图3所示的步骤S301的子步骤流程图。

可参阅图4,机器人10响应于头部姿态控制指令,计算电机320的期望旋转角度、左升降机构3101的左推杆3111期望运动距离和右升降机构3102的右推杆3112期望运动距离,可包括如下步骤:

S401,根据头部姿态控制指令获取机器人10的头部期望姿态。

在本实施例中,头部姿态控制指令包括头部期望姿态。头部期望姿态包括头部横滚角r

举例而言,当用户通过语音或触控等方式向机器人10发出“头部向前摆动30度、向左摆动45度、沿顺时针方向转动60度”的头部姿态控制指令时,机器人10可从头部姿态控制指令识别出机器人10的头部期望姿态,头部期望姿态包括头部横滚角r

可以理解,头部横滚角r

S402,将头部横滚角r

在本实施例中,机器人10在识别出头部期望姿态之后,可通过齐次坐标变换,将头部横滚角r

举例而言,机器人10可将头部横滚角r

其中,T

S403,通过坐标变换将头部期望姿态的齐次坐标变换矩阵转换成颈部期望姿态的第一齐次坐标变换矩阵。

在本实施例中,机器人10在转换得到头部期望姿态的齐次坐标变换矩阵之后,根据头部坐标系和颈部坐标系之间的坐标变换关系,将头部坐标系的头部期望姿态转换到颈部坐标系的颈部期望姿态。

举例而言,机器人10可通过矩阵变换,将头部期望姿态的齐次坐标变换矩阵转换成如下颈部期望姿态的第一齐次坐标变换矩阵:

T

其中,T

S404,将颈部期望姿态的第一齐次坐标变换矩阵转换成颈部横滚角r

在本实施例中,机器人10在转换得到颈部期望姿态的第一齐次坐标变换矩阵之后,可通过齐次坐标变换矩阵的逆变换,将颈部期望姿态的第一齐次坐标变换矩阵转换成颈部横滚角r

S405,将颈部横滚角r

在本实施例中,机器人10在转换得到颈部横滚角r

举例而言,机器人10可将颈部横滚角r

其中,T’

S406,根据颈部期望姿态的第二齐次坐标变换矩阵,计算左升降机构3101的左推杆3111期望运动距离和右升降机构3102的右推杆3112期望运动距离。

在本实施例中,机器人10在转换得到颈部期望姿态的第二齐次坐标变换矩阵之后,可通过矩阵平移变换,将头部期望姿态从颈部坐标系转换到基础坐标系,然后在基础坐标系中通过计算左升降机构3101的左推杆3111的左上铰点3301期望运动距离,得到左升降机构3101的左推杆3111期望运动距离,以及通过计算右升降机构3102的右推杆3112的右上铰点3302期望运动距离,得到右升降机构3102的右推杆3112期望运动距离。

可以理解,由于左推杆3111的左下铰点3401位置和右推杆3112的右下铰点3402位置均是固定不变的,因此左推杆3111的左上铰点3301期望运动距离即左推杆3111期望运动距离,右推杆3112的右上铰点3302期望运动距离即右推杆3112期望运动距离。

图5是本申请一种实施例提供的图4所示的步骤S406的子步骤流程图。

可参阅图5,机器人10根据颈部期望姿态的第二齐次坐标变换矩阵,计算左升降机构3101的左推杆3111期望运动距离和右升降机构3102的右推杆3112期望运动距离,可包括如下步骤:

S501,根据颈部期望姿态的第二齐次坐标变换矩阵,计算左升降机构3101的左推杆3111的左上铰点3301期望位置和左下铰点3401期望位置,以及右升降机构3102的右推杆3112的右上铰点3302期望位置和右下铰点3402期望位置。

在本实施例中,由于左推杆3111的左下铰点3401和右推杆3112的右下铰点3402在基础坐标系的坐标均是固定不变的,因此机器人10可在左推杆3111运动之前确定左下铰点3401在基础坐标系的坐标,即左下铰点3401位置;以及在右推杆3112运动之前确定右下铰点3402在基础坐标系的坐标,即右下铰点3402位置。在左推杆3111运动之后,机器人10可直接将运动之前的左推杆3111的左下铰点3401位置确定为运动之后的左推杆3111的左下铰点3401期望位置。在右推杆3112运动之后,机器人10可直接将运动之前的右推杆3112的右下铰点3402位置确定为运动之后的右推杆3112的右下铰点3402期望位置。

机器人10可通过矩阵平移变换,在基础坐标系中计算左升降机构3101的左推杆3111的左上铰点3301期望位置和右升降机构3102的右推杆3112的右上铰点3302期望位置。

举例而言,机器人10可通过如下矩阵平移变换来计算左升降机构3101的左推杆3111的左上铰点3301期望位置:

其中,T

机器人10可通过如下矩阵平移变换来计算右升降机构3102的右推杆3112的右上铰点3302期望位置:

其中,T

S502,检测左升降机构3101的左推杆3111的左上铰点3301位置和左下铰点3401位置之间的左推杆3111第一距离,以及右升降机构3102的右推杆3112的右上铰点3302位置和右下铰点3402位置之间的右推杆3112第一距离。

在本实施例中,机器人10可通过传感器实时或周期性地检测左升降机构3101的左推杆3111的左上铰点3301和左下铰点3401在基础坐标系的位置,以及检测右升降机构3102的右推杆3112的右上铰点3302和右下铰点3402在基础坐标系的位置。然后,机器人10计算左上铰点3301位置和左下铰点3401位置之间的左推杆3111第一距离,以及计算右上铰点3302位置和右下铰点3402位置之间的右推杆3112第一距离。

S503,计算左升降机构3101的左推杆3111的左上铰点3301期望位置和左下铰点3401期望位置之间的左推杆3111第二距离,以及右升降机构3102的右推杆3112的右上铰点3302期望位置和右下铰点3402期望位置之间的右推杆3112第二距离。

在本实施例中,机器人10在计算出左升降机构3101的左推杆3111的左上铰点3301期望位置和左下铰点3401期望位置之后,再计算左推杆3111的左上铰点3301期望位置和左下铰点3401期望位置之间的左推杆3111第二距离。机器人10在计算出右升降机构3102的右推杆3112的右上铰点3302期望位置和右下铰点3402期望位置之后,再计算右推杆3112的右上铰点3302期望位置和右下铰点3402期望位置之间的右推杆3112第二距离。

可以理解,左推杆3111第一距离为左推杆3111在第一控制周期内运动的距离,左推杆3111第二距离为左推杆3111在第二控制周期内运动的期望距离。在一些实施例中,左推杆3111第一距离可为0。右推杆3112第一距离为右推杆3112在第一控制周期内运动的距离,右推杆3112第二距离为右推杆3112在第二控制周期内运动的期望距离。在一些实施例中,右推杆3112第一距离可为0。其中,第二控制周期是在第一控制周期之后的时间段。

S504,将左推杆3111第二距离与左推杆3111第一距离相减,得到左升降机构3101的左推杆3111期望运动距离,以及将右推杆3112第二距离与右推杆3112第一距离相减,得到右升降机构3102的右推杆3112期望运动距离。

在本实施例中,机器人10在计算出左推杆3111第一距离和左推杆3111第二距离之后,将左推杆3111第二距离与左推杆3111第一距离相减,即,将左推杆3111在第二控制周期内运动的期望距离与在第一控制周期内运动的距离做差,从而得到左推杆3111从第一控制周期到第二控制周期的时间段内的期望运动距离。机器人10在计算出右推杆3112第一距离和右推杆3112第二距离之后,将右推杆3112第二距离与右推杆3112第一距离相减,即,将右推杆3112在第二控制周期内运动的期望距离与在第一控制周期内运动的距离做差,从而得到右推杆3112从第一控制周期到第二控制周期的时间段内的期望运动距离。

举例而言,机器人10可通过公式(1)计算左升降机构3101的左推杆3111期望运动距离:

L

其中,L

机器人10可通过公式(2)计算右升降机构3102的右推杆3112期望运动距离:

L

其中,L

可以理解,L

图6是本申请一种实施例提供的图3所示的步骤S306的子步骤流程图。

可参阅图6,机器人10根据检测到的电机320的旋转角度、左升降机构3101的左推杆3111运动距离和右升降机构3102的右推杆3112运动距离,计算机器人10的头部100的当前姿态,可包括如下步骤:

S601,计算左升降机构3101的左推杆3111运动距离与左推杆3111期望运动距离之间的左推杆3111运动距离偏差,以及右升降机构3102的右推杆3112运动距离与右推杆3112期望运动距离之间的右推杆3112运动距离偏差。

在本实施例中,机器人10在检测到左升降机构3101的左推杆3111运动距离之后,计算左升降机构3101的左推杆3111运动距离与左推杆3111期望运动距离之间的左推杆3111运动距离偏差,从而可基于左推杆3111运动距离偏差判断左推杆3111运动的精度。机器人10在检测到右升降机构3102的右推杆3112运动距离之后,计算右升降机构3102的右推杆3112运动距离与右推杆3112期望运动距离之间的右推杆3112运动距离偏差,从而可基于右推杆3112运动距离偏差判断右推杆3112运动的精度。

S602,确定左推杆3111运动距离偏差和右推杆3112运动距离偏差是否均小于精度阈值。

在本实施例中,机器人10在计算出左推杆3111运动距离偏差之后,判断左推杆3111运动距离偏差是否小于精度阈值。机器人10在计算出右推杆3112运动距离偏差之后,判断右推杆3112运动距离偏差是否小于精度阈值。

可以理解,精度阈值可依需而设。由于机器人10的头部100从当前姿态向期望姿态运动过程中,头部100的当前姿态是不断变化的,因此颈部300的当前姿态也是不断变化的。假设电机320的旋转角度是固定不变的,则颈部偏航角y

举例而言,机器人10可通过公式(3)迭代更新颈部横滚角r

x

其中,x

可以理解,当颈部横滚角r

具体而言,机器人10在每次更新完颈部横滚角r

在一些实施例中,机器人10在计算出左推杆3111运动距离和左推杆3111期望运动距离,以及右推杆3112运动距离和右推杆3112期望运动距离之后,再计算推杆运动距离和推杆期望运动距离之差的二范数,判断推杆运动距离和推杆期望运动距离之差的二范数是否小于精度阈值。

举例而言,机器人10可通过公式(4)判断推杆运动距离和推杆期望运动距离之差的二范数是否小于精度阈值:

||L

其中,L

机器人10在每次更新完颈部横滚角r

S603,将颈部横滚角r

在本实施例中,机器人10在每次更新完颈部横滚角r

举例而言,机器人10可将颈部横滚角r

其中,T

S604,通过坐标变换将颈部姿态的齐次坐标变换矩阵转换成头部姿态的齐次坐标变换矩阵。

在本实施例中,机器人10在转换得到颈部姿态的齐次坐标变换矩阵之后,根据颈部坐标系和头部坐标系之间的坐标变换关系,将颈部坐标系的颈部姿态转换到头部坐标系的头部姿态。

举例而言,机器人10可通过矩阵变换,将颈部姿态的齐次坐标变换矩阵转换成如下头部姿态的齐次坐标变换矩阵:

T

其中,T

S605,将头部姿态的齐次坐标变换矩阵转换成头部横滚角r

在本实施例中,机器人10在转换得到头部姿态的齐次坐标变换矩阵之后,可通过齐次坐标变换矩阵的逆变换,将头部姿态的齐次坐标变换矩阵转换成头部横滚角r

下面对本申请实施例的控制终端进行说明。

图7是本申请一种实施例提供的控制终端20的结构框图。

控制终端20可与机器人10通信连接,从而实现对机器人10的操控。可参阅图7,控制终端20包括处理器21和存储器22,处理器21可运行存储于存储器22中的计算机程序或代码,实现本申请实施例的机器人头部姿态三自由度控制方法。

在本实施例中,控制终端20可通过处理器21响应于头部姿态控制指令,计算机器人10的颈部300至少一个电机320的期望旋转角度和至少两个升降机构310各自的推杆311期望运动距离,然后生成电机驱动指令和升降机构驱动指令,再向机器人10发送电机驱动指令和升降机构驱动指令,从而通过电机驱动指令来驱动机器人10的颈部300至少一个电机320,以及通过升降机构驱动指令来驱动机器人10的颈部300至少两个升降机构310。

处理器21可以包括一个或多个处理单元。例如,处理器21可以包括,但不限于应用处理器(Application Processor,AP)、调制解调处理器、图形处理器(GraphicsProcessing Unit,GPU)、图像信号处理器(Image Signal Processor,ISP)、控制器、视频编解码器、数字信号处理器(Digital Signal Processor,DSP)、基带处理器、神经网络处理器(Neural-Network Processing Unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。

处理器21中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器21中的存储器为高速缓冲存储器。该存储器可以保存处理器21刚用过或循环使用的指令或数据。如果处理器21需要再次使用该指令或数据,可从该存储器中直接调用。

在一些实施例中,处理器21可以包括一个或多个接口。接口可以包括,但不限于集成电路(Inter-Integrated Circuit,I2C)接口、集成电路内置音频(Inter-IntegratedCircuit Sound,I2S)接口、脉冲编码调制(Pulse Code Modulation,PCM)接口、通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART)接口、移动产业处理器接口(Mobile Industry Processor Interface,MIPI)、通用输入输出(General-PurposeInput/Output,GPIO)接口、用户标识模块(Subscriber Identity Module,SIM)接口、通用串行总线(Universal Serial Bus,USB)接口等。

可以理解,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对机器人10的结构限定。在另一些实施例中,机器人10也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。

存储器22可以包括外部存储器接口和内部存储器。其中,外部存储器接口可以用于连接外部存储卡,例如Micro SD卡,实现扩展机器人10的存储能力。外部存储卡通过外部存储器接口与处理器21通信,实现数据存储功能。内部存储器可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(例如声音播放功能,图像播放功能等)等。存储数据区可存储机器人10使用过程中所创建的数据(例如音频数据,电话本等)等。此外,内部存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件或通用闪存存储器(Universal Flash Storage,UFS)等。处理器21通过运行存储在内部存储器的指令,和/或存储在设置于处理器21中的存储器的指令,执行机器人10的各种功能应用以及数据处理,例如实现本申请实施例的机器人头部姿态三自由度控制方法。

可以理解,本申请实施例示意的结构并不构成对机器人10或控制终端20的具体限定。在另一些实施例中,机器人10或控制终端20可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。

举例而言,可一并参阅图8和图9,图8是本申请一种实施例提供的多足机器人的结构框图,图9是本申请一种实施例提供的控制终端20控制多足机器人30的场景示意图。

如图8所示,多足机器人30包括机械单元301、通讯单元302、传感单元303、接口单元304、存储单元305、显示单元306、输入单元307、控制模块308及电源309。多足机器人30的各种部件可以以任何方式连接,包括有线或无线连接等。

可以理解,图8中示出的多足机器人的具体结构并不构成对多足机器人的限定,多足机器人可以包括比图示更多或更少的部件,某些部件也并不属于多足机器人的必须构成,完全可以根据需要在不改变申请的本质的范围内而省略,或者组合某些部件。

下面结合图8和图9对多足机器人30的各个部件进行具体介绍。

机械单元301为多足机器人30的硬件。如图8所示,机械单元301可包括驱动板3011、电动机3012、机械结构3013。

如图9所示,机械结构3013可包括机身3014、可转动的头部结构3017以及连接机身3014和可转动的头部结构3017的颈部结构(图未示)、可伸展的腿部3015、足端3016、可摇动的尾巴结构3018、载物结构3019、鞍座结构3020、摄像头结构3021,在其他实施方式中,机械结构3013还可包括可伸展的机械臂(图未示)等。

需要说明的是,机械单元301的各个部件模块可以为一个也可以为多个,可根据具体情况设置,比如腿部3015可为4个,每个腿部3015可配置3个电动机3012,对应的电动机3012为12个。

通讯单元302可用于信号的接收和发送,还可以通过与网络和其他设备通信,比如,接收遥控器或其他多足机器人30发送的按照特定步态以特定速度值向特定方向移动的指令信息后,传输给控制模块308处理。通讯单元302包括如WiFi模块、4G模块、5G模块、蓝牙模块、红外模块等。

传感单元303用于获取多足机器人30周围环境的信息数据以及监控多足机器人30内部各部件的参数数据,并发送给控制模块308。传感单元303包括多种传感器,如获取周围环境信息的传感器:激光雷达(用于远程物体检测、距离确定和/或速度值确定)、毫米波雷达(用于短程物体检测、距离确定和/或速度值确定)、摄像头、红外摄像头、全球导航卫星系统(GNSS,Global Navigation Satellite System)等。如监控多足机器人30内部各部件的传感器:惯性测量单元(IMU,Inertial Measurement Unit)(用于测量速度值、加速度值和角速度值的值),足底传感器(用于监测足底着力点位置、足底姿态、触地力大小和方向)、温度传感器(用于检测部件温度)。至于多足机器人30还可配置的载荷传感器、触摸传感器、电动机角度传感器、扭矩传感器等其他传感器,在此不再赘述。

接口单元304可以用于接收来自外部装置的输入(例如,数据信息、电力等)并且将接收到的输入传输到多足机器人30内的一个或多个部件,或者可以用于向外部装置输出(例如,数据信息、电力等)。接口单元304可包括电源端口、数据端口(如USB端口)、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口等。

存储单元305用于存储软件程序以及各种数据。存储单元305可主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统程序、运动控制程序、应用程序(比如文本编辑器)等;数据存储区可存储多足机器人30在使用中所生成的数据(比如传感单元303获取的各种传感数据,日志文件数据)等。此外,存储单元305可以包括高速随机存取存储器,还可以包括非易失性存储器,例如磁盘存储器、闪存器、或其他易失性固态存储器。

显示单元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。具体地,其他输入设备3072可以包括但不限于遥控操作手柄等中的一种或多种,具体此处不做限定。

进一步的,触控面板3071可覆盖显示面板3061,当触控面板3071检测到在其上或附近的触摸操作后,传送给控制模块308以确定触摸事件的类型,随后控制模块308根据触摸事件的类型在显示面板3061上提供相应的视觉输出。虽然在图8中,触控面板3071与显示面板3061是作为两个独立的部件来分别实现输入和输出功能,但是在某些实施例中,可以将触控面板3071与显示面板3061集成而实现输入和输出功能,具体此处不做限定。

控制模块308是多足机器人30的控制中心,利用各种接口和线路连接整个多足机器人30的各个部件,通过运行或执行存储在存储单元305内的软件程序,以及调用存储在存储单元305内的数据,从而对多足机器人30进行整体控制。

电源309用于给各个部件供电,电源309可包括电池和电源控制板,电源控制板用于控制电池充电、放电、以及功耗管理等功能。在图8所示的实施方式中,电源309电连接控制模块308,在其它的实施方式中,电源309还可以分别与传感单元303(比如摄像头、雷达、音箱等)、电动机3012电性连接。需要说明的是,各个部件可以各自连接到不同的电源309,或者由相同的电源309供电。

在图9所示的控制终端20控制多足机器人30的场景中,具体地,控制终端20与多足机器人30进行通信连接,在控制终端20与多足机器人30进行通信时,控制终端20可以向多足机器人30发送控制指令,多足机器人30可通过通讯单元302来接收控制指令,并可在接收到控制指令的情况下,将控制指令传输至控制模块308,使得控制模块308可根据控制指令来实现相应的功能。控制终端20包括,但不限于:具备图像拍摄功能的手机、平板电脑、服务器、个人计算机、可穿戴智能设备、其它电器设备。

控制指令可以根据预设条件来确定。在一种实施方式中,多足机器人30可以包括传感单元303,传感单元303根据多足机器人30所在的当前环境可生成控制指令。控制模块308可根据控制指令来判断多足机器人30的当前速度值是否满足对应的预设条件。若满足预设条件,则会保持多足机器人30的当前速度值和当前步态移动。若不满足预设条件,则会根据对应的预设条件来确定目标速度值和相应的目标步态,从而可控制多足机器人30以目标速度值和相应的目标步态移动。传感单元303与控制模块308之间的通信方式可以为有线通信,也可以为无线通信。无线通信的方式包括,但不限于:无线网络、移动通信网络(3G、4G、5G等)、蓝牙、红外。

可以理解,多足机器人30能够实现本申请实施例提供的机器人头部姿态三自由度控制方法的所有方法步骤,在此不再对相同的方法步骤及有益效果进行赘述。

上面结合附图对本申请实施例作了详细说明,但是本申请不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本申请宗旨的前提下做出各种变化。

技术分类

06120115936771