CN111546338A - 一种机器人的控制方法、装置、机器人以及存储介质 - Google Patents
一种机器人的控制方法、装置、机器人以及存储介质 Download PDFInfo
- Publication number
- CN111546338A CN111546338A CN202010382291.0A CN202010382291A CN111546338A CN 111546338 A CN111546338 A CN 111546338A CN 202010382291 A CN202010382291 A CN 202010382291A CN 111546338 A CN111546338 A CN 111546338A
- Authority
- CN
- China
- Prior art keywords
- robot
- target
- angle
- rotation
- head
- 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
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
- B25J9/1697—Vision controlled systems
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Automation & Control Theory (AREA)
- Toys (AREA)
Abstract
本申请适用于机器人技术领域,提供了一种机器人的控制方法、装置、机器人以及存储介质,该方法包括:获取目标对象的位置信息;根据目标对象的位置信息控制机器人转动;在机器人旋转的过程中,动态调整机器人上用于模拟眼部特征的显示模块的输出画面。本申请提供的技术方案通过显示模块的输出界面模拟机器人的眼球运动,移动过程中无需马达驱动实现偏转,响应时间较短,实现了平滑凝视跟踪行为,提高了拟人化程度以及凝视跟踪行为的准确性,能够更好地使用机器人对孩子进行陪伴以及教育,增强了人机交互的体验感。
Description
技术领域
本发明属于机器人技术领域,尤其涉及一种机器人的控制方法、装置、机器人以及存储介质。
背景技术
在现代社会的家庭中,越来越多的父母不能时刻陪伴孩子,在不能够陪伴的孩子的时候,父母可以使用智能机器人对孩子进行陪伴以及教育孩子,现有的智能机器人能够与孩子进行交流,并基于与孩子之间的交流,学习和更新与孩子的交流方式。
而拟人特性作为衡量机器人智能化的重要指标,在人机交互的过程中,目标跟随以及凝视跟踪行为的准确性则直接反映机器人的拟人化程度,通过提高机器人的拟人化从而提高孩子的使用体验。现有的机器人控制技术,无法实现平滑的凝视跟踪行为,从而降低了机器人的拟人化程度以及凝视跟踪行为的准确性。
发明内容
本申请实施例提供了一种机器人的控制方法、装置、机器人以及存储介质,可以解决现有的机器人控制技术,无法实现平滑的凝视跟踪行为,机器人的拟人化程度以及凝视跟踪行为的准确性较低的问题。
第一方面,本申请实施例提供了一种机器人的控制方法,包括:
获取目标对象的位置信息;
根据所述目标对象的位置信息控制所述机器人转动;
在所述机器人旋转的过程中,动态调整所述机器人上用于模拟眼部特征的显示模块的输出画面,以使所述机器人上所述显示模块的所述输出画面的模拟眼部特征的眼部视线在机器人旋转过程中为看向所述目标对象的方向。
上述控制所述机器人转动具体为控制机器人身体内的旋转部件进行转动,若机器人包含头部,则上述控制机器人转动具体为控制连接机器人头部与身体之间旋转部件进行转动,以改变机器人头部正面的朝向;若机器人包含头部、躯干以及底部(如底座或腿部),则上述控制机器人转动具体为控制连接机器人头部与躯干之间的旋转部件转动,以及控制连接机器人躯干与底部之间的旋转部件转动,以改变机器人头部以及躯干的朝向。其中,连接机器人任意两个部分之间的旋转部件可以为一个,也可以为两个或以上,当连接任意两个部分之间的旋转部件包含两个或以上时,可实现多自由度的转动,上述多自由度的转动包括:垂直方向上转动以及水平方向上转动。
上述模拟眼部特征具体为基于拍摄真人的眼睛区域朝各个方向移动的视频而生成的模拟真人眼球的画面,还可以通过动画、漫画、三维模型等方式构建具有眼部特征的眼部画面,包括用于模拟眼部的圆点或任意形状。所述模拟眼部特征的输出画面可以包含有模拟的瞳孔、眼球、眼睑、眉毛、睫毛等显示对象,通过上述显示对象构成模拟的眼睛画面。
在第一方面的一种可能的实现方式中,所述在所述机器人旋转的过程中,动态调整所述机器人上用于模拟眼部特征的显示模块的输出画面,具体为:
在机器人的旋转过程中,根据目标偏转角度动态调整所述机器人上用于模拟眼部特征的显示模块的输出画面;所述目标偏转角度为机器人由初始角度旋转至面向目标对象时对应的偏转角度。
上述初始角度具体为机器人的正面所对应的方向角;若机器人包含头部,身体的正面所对应的方向角则具体为机器人的头部的正面所对应的方向,其中,机器人的头部的正面具体指包含模拟眼球所在的面。
在第一方面的一种可能的实现方式中,所述在所述机器人旋转的过程中,动态调整所述机器人上用于模拟眼部特征的显示模块的输出画面,以使所述机器人上所述显示模块的所述输出画面的模拟眼部特征的眼部视线在机器人旋转过程中为看向所述目标对象的方向,包括:
在控制所述机器人旋转的过程中,根据所述机器人实时反馈的实时旋转角度以及所述目标偏转角度,动态调整所述输出画面中的模拟眼部特征的位置到眼部特征目标位置;所述眼部特征目标位置是所述输出画面所模拟的眼部视线首次看向所述目标对象的方向的位置;
在所述眼部视线首次看向所述目标对象的方向后,根据所述实时旋转角度,动态调整所述模拟眼部特征的位置,以保持所述眼部视线看向所述目标对象的方向。
在第一方面的一种可能的实现方式中,所述在控制所述机器人旋转的过程中,根据所述机器人实时反馈的实时旋转角度以及所述目标偏转角度,动态调整所述输出画面中的模拟眼部特征的位置到眼部特征目标位置,包括:
基于所述实时旋转角度确定水平偏转量以及垂直偏转量;
根据所述目标偏转角度、所述水平偏转量以及所述垂直偏转量,确定所述眼部特征目标位置;所述实时偏移量具体为:
其中,eye_yaw为所述眼部特征目标位置的水平分量;eye_pitch为所述眼部特征目标位置的垂直分量;target_yaw为所述目标偏转角度的水平分量;target_pitch为所述目标偏转角度的垂直分量;motor_yaw为所述水平偏转量;motor_pitch为所述水平偏转量。
在第一方面的一种可能的实现方式中,所述根据所述目标对象的位置信息控制所述机器人转动,包括:
基于所述目标偏转角度控制所述机器人的躯干转动;所述目标偏转角度为机器人的躯干由初始角度旋转至朝向目标对象时对应的偏转角度;
在所述机器人的躯干旋转的过程中,根据实时反馈的实时躯干角度以及所述目标偏转角度,动态控制所述机器人的头部转动至头部目标位置,所述头部目标位置为所述机器人头部首次面向所述目标对象的方向的位置;
在所述机器人头部的正面面向首次面向所述目标对象的方向后,根据所述实时躯干角度,动态控制所述机器人的头部转动,以保持所述机器人头部面向所述目标对象的方向。
在一种可能的实现方式中,所述基于所述目标偏转角度控制所述机器人的躯干转动,包括:
以预设的控制周期获取所述机器人的躯干在各个所述控制周期的第一基准旋转角度;
根据当前所述控制周期的所述第一基准旋转角度、上一所述控制周期的第一跟踪误差角度以及所述躯干旋转角度,生成当前所述控制周期对应的第一周期旋转指令;
根据各个所述第一周期旋转指令控制所述机器人的躯干转动。
其中,所述第一周期旋转指令内的旋转角度具体为:
其中,motor0_yaw为所述第一周期旋转指令内的旋转角度;current_motor0_yaw为当前所述控制周期的第一基准旋转角度;target_yaw为所述目标偏转角度;motor0_yaw_diff为当前所述控制周期的第一跟踪误差角度;motor0_yaw_last_diff为上一所述控制周期的第一跟踪误差角度;motor0_Kp以及motor0_Kd为所述躯干旋转部件的预设调整参数。
在第一方面的一种可能的实现方式中,所述在所述机器人的躯干旋转的过程中,根据实时反馈的实时躯干角度以及所述目标偏转角度,动态控制所述机器人的头部转动至头部目标位置,所述头部目标位置为所述机器人头部首次面向所述目标对象的方向的位置,包括:
基于所述目标偏转角度确定水平偏转角度以及垂直偏转角度;
根据所述垂直偏转角度控制所述机器人的头部在垂直方向上转动;
以及同时在所述机器人的躯干转动的过程中,根据实时反馈的实时躯干角度以及所述水平偏转角度,动态控制所述机器人的头部在水平方向上转动至水平目标位置;所述水平目标位置为所述机器人头部在水平方向上首次面向所述目标对象的方向的位置。
在第一方面的一种可能的实现方式中,所述根据所述垂直偏转角度控制所述机器人的头部在垂直方向上转动,包括:
以预设的控制周期获取所述机器人的头部在垂直方向上各个所述控制周期的第二基准旋转角度;
根据当前所述控制周期的所述第二基准旋转角度、上一所述控制周期的第二跟踪误差角度以及所述垂直偏转角度,生成当前所述控制周期对应的第二周期旋转指令;
根据各个所述第二周期旋转指令控制所述机器人的头部在垂直方向上转动。
其中,所述第二周期旋转指令内的旋转角度具体为:
其中,motor2_pitch为所述第二周期旋转指令内的旋转角度;current_motor2_pitch为当前所述控制周期的第二基准旋转角度;target_pitch为所述垂直偏转角度;motor2_pitch_diff为当前所述控制周期的第二跟踪误差角度;motor2_pitch_last_diff为上一所述控制周期的第二跟踪误差角度;motor2_Kp以及motor2_Kd为所述第二头部旋转部件的预设调整参数。
在第一方面的一种可能的实现方式中,所述在所述机器人的躯干转动的过程中,根据实时反馈的实时躯干角度以及所述水平偏转角度,动态控制所述机器人的头部在水平方向上转动至水平目标位置,包括:
以预设的控制周期获取所述机器人的头部在水平方向上各个所述控制周期的第三基准旋转角度;
根据当前所述控制周期的所述第三基准旋转角度、上一所述控制周期的第三跟踪误差角、所述实时躯干角度以及所述水平偏转角度,生成当前所述控制周期对应的第三周期旋转指令;
根据各个所述三周期旋转指令动态控制所述机器人的头部在水平方向上转动。
其中,所述第三周期旋转指令内的旋转角度具体为:
其中,motor1_yaw为所述第三周期旋转指令内的旋转角度;current_motor1_yaw为当前所述控制周期的第三基准旋转角度;target_yaw为所述水平偏转角度;motor1_yaw_diff为当前所述控制周期的第三跟踪误差角度;motor1_yaw_last_diff为上一所述控制周期的第三跟踪误差角度;motor1_Kp以及motor1_Kd为所述第一头部旋转部件的预设调整参数;current_motor0_yaw为所述实时躯干角度。
在第一方面的一种可能的实现方式中,所述获取目标对象的位置信息,包括:
通过所述机器人内置的摄像模块获取包含所述目标对象的场景图像;
从所述场景图像中标记出所述目标对象的边界坐标,并根据所述边界坐标确定所述目标对象的目标对象的位置信息;所述目标对象的位置信息包括所述目标对象的对象中心坐标;
根据所述对象中心坐标以及所述场景图像的图像中心坐标,确定所述目标偏转角度;
其中,所述目标偏转角度具体为:
其中,target_yaw为所述目标偏转角度的水平分量;target_pitch为所述目标偏转角度的垂直分量;OC为所述摄像模块的焦距;CD为对象中心坐标与图像中心坐标之间的水平偏差;AC为对象中心坐标与图像中心坐标之间的垂直偏差。
在第一方面的一种可能的实现方式中,所述通过所述机器人内置的摄像模块获取包含所述目标对象的场景图像,包括:
根据摄像模块与所述显示模块的输出画面的模拟眼部特征的位置之间的偏移量,确定图像校正参量;
基于所述图像校正参量调整所述摄像模块采集到的原始图像,生成所述场景图像。
第二方面,本申请实施例提供了一种机器人的控制装置,包括:
位置信息获取单元,用于获取目标对象的位置信息;
转动控制单元,用于根据所述目标对象的位置信息控制所述机器人转动;
画面调整单元,用于在所述机器人旋转的过程中,动态调整所述机器人上用于模拟眼部特征的显示模块的输出画面,看向所述目标对象的方向以使所述机器人上所述显示模块的所述输出画面的模拟眼部特征的眼部视线在机器人旋转过程中为看向所述目标对象的方向。
第三方面,本申请实施例提供了一种机器人,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述第一方面中任一项所述机器人的控制方法。
第四方面,本申请实施例提供了一种机器人,包括处理器、显示器以及用于控制机器人转动的传动部件,其特征在于,所述处理器执行计算机程序时实现上述第一方面中任一项所述机器人的控制方法,所述传动部件根据所述计算机程序输出的控制指令,控制所述机器人转动,以及所述显示器根据所述计算机程序的输出指令,动态调整用于模拟眼部特征的输出画面。
第五方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述第一方面中任一项所述机器人的控制方法。
第六方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在机器人上运行时,使得机器人执行上述第一方面中任一项所述机器人的控制方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
本申请实施例根据目标对象与机器人之间的相对位置,确定目标偏转角度,并基于上述目标偏转角度调整显示模块的输出画面以及旋转部件来实现凝视跟踪行为,由于该机器人的眼球运动是通过显示模块的输出界面进行模拟,移动过程中无需马达驱动实现偏转,响应时间较短,实现了平滑凝视跟踪行为,提高了拟人化程度以及凝视跟踪行为的准确性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的机器人的部分结构的框图;
图2是本申请实施例的机器人的软件结构示意图;
图3是本申请一实施例提供的机器人示意图;
图4是本申请一实施例提供的机器人的结构示意图;
图5是本申请第一实施例提供的机器人的控制方法的实现流程图;
图6是本申请一实施例提供的目标对象的关键中心的示意图;
图7是本申请一实施例提供的目标偏转角度的获取示意图;
图8是本申请另一实施例提供的一种机器人的控制方法S501以及S502的具体实现流程图;
图9是本申请一实施例提供的确定对象中心坐标的示意图;
图10是本申请一实施例提供的目标偏移角度的获取示意图;
图11是本申请一实施例提供的拍摄偏移的原理示意图;
图12是本申请另一实施例提供的一种机器人的控制方法S5011的具体实现流程图;
图13是本申请一实施例提供的基于马达驱动的多自由度的机器人示意图;
图14是本申请一实施例提供的2个自由度的机器人示意图;
图15是本申请另一实施例提供的一种机器人的控制方法S503的具体实现流程图;
图16是本申请一实施例提供的机器人的眼部视线首次对准目标对象的示意图;
图17是本申请另一实施例提供的一种机器人的控制方法S5031的具体实现流程图;
图18是本申请一实施例提供的旋转部件包含有一个自由度的机器人的示意图;
图19是本申请一实施例提供的旋转部件包含有两个自由度的机器人的示意图;
图20是本申请另一实施例提供的一种机器人的控制方法S502的具体实现流程图;
图21是本申请另一实施例提供的一种机器人的控制方法S2001的具体实现流程图;
图22是本申请另一实施例提供的一种机器人的控制方法S2002的具体实现流程图
图23是本申请一实施例提供的旋转部件包含有三个自由度的机器人的示意图;
图24是本申请另一实施例提供的一种机器人的控制方法S2202的具体实现流程图;
图25是本申请另一实施例提供的一种机器人的控制方法S2203的具体实现流程图;
图26是本申请一实施例提供的一种机器人的控制设备的结构框图;
图27本申请另一实施例提供的一种机器人的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
凝视跟踪行为是指机器人对于目标对象通过机器人的躯干、头部和眼睛的协调动作进行主动跟踪,是人机非语言类交互中最重要的功能,也是人机交互的重要步骤。对于拟人类机器人而言,凝视跟踪尤为重要,通过系统设计实现机器人对和交互对象的跟踪凝视和自然对视,才能进一步展开深层次交互。凝视跟踪行为具体包含方面,分别为机器人对于目标的跟踪以及机器人与目标对象之间的目光接触。针对目前机器人控制技术,无法实现平滑的凝视跟踪行为,从而降低了机器人的拟人化程度以及凝视跟踪行为的准确性的问题,本申请实施例提供一种机器人的控制方法、装置、机器人及存储介质,根据目标对象与机器人之间的相对位置,确定目标偏转角度,并基于上述目标偏转角度调整显示模块的输出画面以及旋转部件来实现凝视跟踪行为,由于该机器人的眼球运动是通过显示模块的输出界面进行模拟,移动过程中无需马达驱动实现偏转,响应时间较短,实现了平滑凝视跟踪行为,提高了拟人化程度以及凝视跟踪行为的准确性。
下面以具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
本申请实施例提供的机器人的控制方法可以应用于智能机器人,该智能机器人能够实现人机交互,上述人机交互包括但不限于目标跟踪、凝视跟踪行为、智能问答、智能导航、音乐点播、智能陪护等交互操作,智能机器人还能够根据预先配置的指令,自动执行指令关联的任务操作,举例性地,机器人在检测到达预设的时间节点时,可以对用户进行语音提示,或满足预设的触发条件时,执行与触发条件关联的响应操作,例如在检测到当前室内温度大于预设的温度阈值时,开启室内的空调设备。在机器人与用户进行交互过程中,为了提高机器人的拟人化程序,机器人的眼神可以跟随用户的移动而移动,上述过程即为凝视跟踪行为。
在本实施例中,上述机器人可以是具备如图1所示的硬件结构的机器人100,如图1所示,机器人100具体可以包括:通信模块110、存储器120、摄像模块130、显示单元140、传感器150、音频电路160、旋转部件170、处理器180、以及电源190等部件。本领域技术人员可以理解,图1中示出的机器人100的结构并不构成对机器人的限定,机器人可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图1对机器人的各个构成部件进行具体的介绍:
通信模块110可用于与其他设备建立通信连接,从而接收其他设备发送的控制指令、固件更新数据包等,还可以向其他设备发送机器人的操作记录,可选地,该机器人还可以通过通信模块110与所在场景下的其他机器人建立通信连接,从而与其他机器人进行协同运作。特别地,通信模块110可以将从其他设备接收到的下行信息,给处理器180处理;另外,将设计上行的数据发送给与之连接的其他设备。通常,通信模块110包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器、无线通信模块、蓝牙通信模块等。此外,通信模块110还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobile communication,GSM)、通用分组无线服务(General PacketRadio Service,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE))、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行机器人的各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如凝视跟踪行为应用、智能陪护应用、智能教育应用等)等;存储数据区可存储根据机器人的使用所创建的数据(比如通过摄像模块130采集的图像数据、旋转部件170反馈的旋转角度等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
摄像模块130可用于采集机器人所处的环境图像,该摄像模块130的拍摄方向可以与机器人的正面面向的方向一致,从而能够实现机器人模拟“人眼看到”所处的环境。可选地,机器人内置有多个摄像模块130,不同的摄像模块130用于采集机器人在不同方向的环境图像;可选地,机器人内置有一个摄像模块130,该摄像模块130可以预设的轨迹移动或围绕一轴心转动,从而获取不同角度、方向的环境图像。摄像模块130可以将采集到的图像存储于存储器120中,还可以采集到的图像直接传输给处理器180。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及机器人的各种菜单。显示单元140可包括显示面板141,可选的,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板141。进一步的,触控面板可覆盖显示面板141,当触控面板检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。特别地,该机器人的头部区域包含有用于模拟双眼的显示模块,该显示模块的输出画面具体为模拟眼睛的画面,该眼睛可以基于拍摄真人的眼睛区域在各个方向移动所对应的视频而生成的模拟真人眼球的画面,还可以通过动画、漫画、三维模型等方式构建的眼睛画面。该模拟眼睛的输出画面内可以包含有模拟的瞳孔、眼球、眼睑、眉毛、睫毛等显示对象,通过上述显示对象构成模拟的眼睛画面。需要说明的是,机器人的头部可以包含一个显示模块,该显示模块可以用于输出包含双眼的输出画面;该机器人的头部还可以包含两个显示模块,分别为左眼显示模块以及右眼显示模块,左眼显示模块用于输出模拟左眼的输出画面,而右眼显示模块用于输出模拟右眼的输出画面。
机器人100还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示单元140的亮度,接近传感器用于判断机器人与用户之间的距离,并在距离小于预设的距离阈值时,通过机器人的传动部件控制机器人远离用户,从而避免与用户碰撞。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别机器人姿态的应用、振动识别相关功能等;至于机器人还可配置的陀螺仪、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160、扬声器161,传声器162可提供用户与机器人之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经通信模块110以发送给比如另一机器人,或者将音频数据输出至存储器120以便进一步处理。可选地,在用户与机器人进行交互的过程中,可以通过音频电路160采集用户发起的语音指令,并基于语音指令进行响应的响应操作;还可以通过音频电路160在与进行人机交互的过程中,输出智能应答语音信号,实现了与用户进行仿真交互过程。
机器人在进行移动、目标追踪以及凝视跟踪行为的过程中,可以通过旋转部件170控制机器人执行相应运动。该旋转部件170可以通过马达进行驱动,通过马达提供驱动力来控制旋转部件170进行旋转,从而实现机器人移动、姿态调整、面向调整等运动操作。在一种可能的实现方式中,为了提高凝视跟踪行为的拟人化程度,可以在机器人的头部、躯干等部位安装有多个旋转部件170,不同的旋转部件可以控制机器人在一个方向上旋转,即对应一个自由度,根据机器人内安装多个旋转部件170,可以实现多自由度的凝视跟踪行为。该旋转部件170还可以实时向处理器180反馈实时旋转角度,处理器180可以根据反馈的实时旋转角度控制机器人运动,从而实现对目标对象进行平滑的凝视跟踪行为。
处理器180是机器人的控制中心,利用各种接口和线路连接整个机器人的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行机器人的各种功能和处理数据,从而对机器人进行整体监控。可选的,处理器180可包括一个或多个处理单元;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
机器人100还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
机器人100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明机器人100的软件结构。
图2是本申请实施例的机器人100的软件结构框图。将Android系统分为四层,分别为应用程序层、应用程序框架层(framework,FWK)、系统层以及硬件抽象层,层与层之间通过软件接口通信。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图2所示,应用程序包可以包括相机、智能问答、智能陪护、多媒体点播、智能学习教育等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示模块大小,判断当前的显示模块的显示状态等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,旋转部件反馈的旋转角度等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等,特别地该可视控件包括有用于模拟眼球的控件。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,图形,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。具体地,用于模拟眼球的输出画面可以通过三维图形处理库进行画面渲染、合成。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。在一些实施例中,上述内核层还包含PCIE驱动。
在本申请实施例中,流程的执行主体为机器人。作为示例而非限定,该机器人包含有显示模块以及旋转部件,通过显示模块输出用于模拟眼球的输出画面,通过旋转部件控制机器人移动。作为示例而非限定,图3示出了本申请一实施例提供的机器人示意图。参见图3所示,本申请提供的机器人可以为具有模拟人形形态的机器人(如图3中的a型机器人),或非人形形态的机器人,例如模拟动物形态的机器人(如图3中的b型机器人)或非生物形态的机器人(如图3中的c型机器人),上述机器人即为任何具有运动功能的设备,运动包括移动、旋转等。
作为示例而非限定,图4示出了本申请一实施例提供的机器人的结构示意图。参见图4所示,该机器人的显示模块安装于机器人的头部,显示模块包括用于模拟左眼的左眼显示模块以及用于模拟右眼的右眼显示模块,通过两个显示模块的输出画面模拟眼球运动,实现凝视跟踪。该机器人的旋转部件包括有用于控制机器人躯干左右旋转的躯干旋转部件、用于控制机器人头部左右旋转的第一头部旋转部件以及用于控制机器人头部上下旋转的第二头部旋转部件。机器人通过控制显示模块的输出画面以及旋转部件的旋转,实现平滑的凝视追踪行为。
图5示出了本申请第一实施例提供的机器人的控制方法的实现流程图,详述如下:
在S501中,获取目标对象的位置信息。
在S502中,根据所述目标对象的位置信息控制所述机器人转动。
在本实施例中,机器人可以通过自动识别或者手动设置的方式确定目标对象,并确定该目标对象所在的位置信息。该位置信息具体可以为机器人与目标对象之间的相对位置。举例性地,该相对位置可以为一相对方向,例如左侧、右侧、前方、后方等;也可以为一具体的角度,例如+60°、-120°,其中上述角度具体可以为一矢量角,角度的正负值代表对应的方向,例如可以将左侧定义为正方向、右侧定义为负方向。机器人可以根据上述的位置信息控制机器人转动。
在一种可能的实现方式中,S502具体可以为:根据所述目标独享的位置信息,确定机器人的初始角度旋转至面向目标对象时对应的目标偏转角度;根据所述目标偏转角度,控制所述机器人转动。
在本实施例中,根据机器人自身的初始角度以及目标对象的位姿确定目标偏转角度。上述机器人的初始角度具体为机器人的正面所对应的方向角,若机器人包含头部,身体的正面所对应的方向角则具体为机器人的头部的正面所对应的方向,其中,机器人的头部的正面具体指包含模拟眼球所在的面。为了能够实现凝视跟踪的目的,上述目标偏转角度具体是用于将机器人当前的视线看向所述目标对象的方向,若该目标对象为实体人,则该目标偏转角度具体用于将机器人当前的视线对准目标对象的关键中心。
作为示例而非限定,图6示出了本申请一实施例提供的目标对象的关键中心的示意图。参见图6所示,目标对象的关键中心具体为可以为:目标对象的几何中心、目标对象的头部的几何中心,若目标对象为实体人,则上述的关键中心还可以为目标对象两眼的中间区域。
示例性地,图7示出了本申请一实施例提供的目标偏转角度的获取示意图。参见图7所示,该目标对象为实体人,由于实体人具有一定的空间体积,而该空间内的任意一点均属于目标对象,而对于凝视追踪,最重要是将机器人的视线与目标对象的视线交汇,即处于同一平面内,因此,机器人需要确定自身当前的视线方向以及目标对象的视线方向,并基于两个视线方向确定偏转角度。
在一种可能的实现方式中,机器人自动识别目标对象的方式可以包含以下三种:
方式1:基于距离传感器确定目标对象,实现方式具体如下:机器人可以配置有距离传感器,该距离传感器可以包含有多个距离探测单元,通过多个距离探测单元采集的距离值构建机器人所处场景下的深度图,基于深度图确定当前场景包含的场景对象,并选取距离最小的一个场景对象作为目标对象。可选地,若凝视跟踪行为的目标对象是实体人,则可以根据构建的深度图确定各个场景图像的轮廓线,并根据轮廓线与实体人的标准轮廓线进行匹配,基于匹配结果从场景对象中确定目标对象。优选地,该机器人还包含有红外热成像模块,可以采集所处场景下各个场景对象的外表面的温度值,从而可以构建得到包含温度信息的深度图,根据深度图中的轮廓信息以及温度值,可以确定机器人所处场景下的包含的场景对象的对象类型,并选取对象类型为人的场景对象作为目标对象。若存在多个对象类型为人的场景对象,则可以选取距离最近的一个对象类型为人的场景对象作为目标对象。
方式2:基于拍摄图像确定目标对象,实现方式如下:机器人可以通过摄像模块获取当前场景的场景图像。通过轮廓识别算法提取该场景图像内包含的轮廓信息,并基于轮廓信息对场景图像进行划分,得到多个拍摄主体区域,并对各个拍摄主体区域进行主体类型识别,基于主体类型确定目标对象。例如,机器人进行凝视跟踪行为的目标对象为实体人,则可以从主体类型中选取实体人类型的拍摄主体作为目标对象;若该拍摄场景中包含的多个场景类型为实体人的拍摄主体,则可以选取拍摄主体区域面积最大的一个拍摄主体作为目标对象。可选地,若目标对象为实体人,则机器人在获取到场景图像后,可以通过人脸识别算法定位出人脸区域,并基于人脸区域确定目标对象。
方式3:基于语音信号确定目标对象,实现方式如下:机器人可以配置有麦克风模块,通过麦克风模块获取当前场景下的声音信号。若检测到当前场景下的声音信号的信号强度大于预设的分贝阈值,则对所述声音信号进行语音分析,基于语音分析结果确定目标对象。其中,上述语音分析具体可以为将声音信号转换为文本信息,机器人可以配置有激活口令,若上述文本信息与激活口令匹配,则识别用户需要与机器人进行交互,此时可以获取声音信号所对应的发声方向,并从当前场景下该发声方向上对应的对象,识别为目标对象。上述语音分析还可以为提取所述声音信号的声纹特征参数,将所述声纹特征参数与各个预存的已登记用户的标准生物参数进行匹配,基于匹配结果确定该声音信号对应的已登记用户,并将该声音信号对应的已登记用户识别为目标用户。在该情况下,机器人可以通过摄像模块获取当前场景下的环境图像,并根据目标对象预存的标准人脸图像以及上述环境图像,确定出该目标用户所在的位置信息。
在一种可能的实现方式中,机器人确定目标对象的方式可以采用用户设定的方式,用户设定的方式可以包含以下两种:
方式1,根据用户的选择指令确定目标对象,实现方式如下:机器人可以在交互界面上显示所处场景下的候选对象(例如通过机器人身体部位配置有的显示模块输出当前场景拍摄得到的场景图像,并对场景图像进行人脸识别,将识别到的人脸作为候选对象),用户可以通过触控方式或按键方式等交互手段向机器人发送选择指令,从多个候选对象中选择一个作为目标对象。
方式2,根据定位设备确定目标对象,实现方式如下:所需进行凝视跟随的用户可以佩戴有定位设备,该定位设备可以为一智能手表、智能项链、智能手机、智能眼镜等配置有定位模块的可穿戴设备。定位模块可以向机器人以预设的反馈周期向机器人发送定位信息,机器人可以根据定位信息识别得到目标对象。
在一种可能的实现方式中,机器人触发凝视跟随行为的方式可以包括以下三种:
方式1,机器人可以在检测到目标对象位姿变化时,触发凝视跟随行为。机器人可以通过上述方式确定目标对象的位置,并根据目标对象的轮廓信息确定目标对象的姿态,若检测到目标对象的位置移动和/或姿态发生改变时,则判定目标对象的位姿发生变化,此时触发凝视跟踪行为,执行S501以及S502的操作。
方式2,机器人可以在检测到机器人位姿变化时,触发凝视跟随行为。机器人可内置有运动传感器,该运动传感器包括但不限于:陀螺仪、震动传感器、加速度传感器、重力传感器等,机器人可以获取各个运动传感器反馈的感应值,判断机器人的位姿是否改变,例如若陀螺仪的读数发生变化或加速度传感器的数值不为0,则可以机器人的位姿发生变化,此时触发凝视跟踪行为,执行S501以及S502的操作。
方式3,机器人可以在检测到目标对象变更时,触发凝视跟踪行为。上述目标对象发生变更包括目标对象由无目标对象到有目标对象的变更,还包括从对象A变更为对象B。上述目标变更可以根据用户的选择指令确定所需变更的对象,也可以通过机器人自动识别的方式进行目标变更(例如目标对象出现在机器人的采集画面内,又例如目标对象B靠近机器人,从而识别的对象B与机器人之间的距离小于对象A与机器人之间的距离,继而机器人将目标对象由对象A切换至对象B)。
图8示出了本申请另一实施例提供的一种机器人的控制方法S501以及S502的具体实现流程图。参见图8,相对于图5所述实施例,本实施例提供的一种机器人的控制方法中S501包括:S5011~S5012,S502包括S5021,具体详述如下:
在S5011中,通过所述机器人内置的摄像模块获取包含所述目标对象的场景图像。
在本实施例中,机器人内置有摄像模块,通过摄像模块采集当前场景下的场景图像。
在一种可能的实现方式下,摄像模块可以以视频格式的形式获取当前场景下的场景视频,机器人可以将场景视频内最新拍摄得到的视频图像帧作为上述场景图像,并从场景图像中识别出目标对象。
在一种可能的实现方式中,机器人可以向摄像模块发送拍摄指令,摄像模块在接收到拍摄指令后,则获取接收到拍摄指令时刻对应的图像,并将当前拍摄得到的图像识别为上述的场景图像。
在本实施例中,机器人可以配置有目标对象的识别算法,机器人通过上述目标对象的识别算法对摄像图像反馈的图像数据进行解析,判断该图像数据内是否包含目标对象,若包含,则识别该图像数据为包含目标对象的场景图像,并执行S5012的操作;反之,若该图像数据内不包含目标对象,则无需进行凝视跟踪。
在一种可能的实现方式中,若上述目标对象的人,则上述目标对象的识别算法可以为人脸识别算法。在该情况下,机器人可以通过人脸识别算法,判断上述摄像模块反馈的场景图像内是否包含人脸,若包含,则执行S5012的操作。反之,若该场景图像内不包含人脸,则识别当前场景不存在进行凝视跟踪的目标对象,进入待机状态或保持原有的位姿。
在S5012中,从所述场景图像中标记出所述目标对象的边界坐标,并根据所述边界坐标确定所述目标对象的目标对象的位置信息;所述目标对象的位置信息包括所述目标对象的对象中心坐标。
在本实施例中,机器人在场景对象中识别得到目标对象的所在的区域图像,并从目标对象所在的区域图像中确定上述的边界坐标。
在一种可能的实现方式中,机器人配置有轮廓识别算法,可以将场景图像导入到上述轮廓识别算法内,提取得到场景图像包含的轮廓线,并从轮廓线上选取至少一个像素点作为上述的边界坐标。
在一种可能的实现方式中,机器人可以选取目标对象与场景图像的原点坐标(例如场景图像以图像的左上角为原点坐标)最近的边界点作为上述的边界坐标,并根据该目标对象在场景图像中的区域面积以及边界坐标,确定对象中心坐标。以场景图像的横纵方向为坐标轴构建图像坐标系,则根据边界坐标与场景图像的原点坐标之间的相对位置,可以边界坐标的值,为(left,top),其中,left为与原点坐标之间的水平方向的距离;top为与原点坐标之间垂直方向的距离。若目标对象为一矩形,则其对应的区域面积可以表示为(width,height),其中,width为矩形区域的宽,height为矩形区域的长。基于上述多个参数,可以确定目标对象的位置信息,该位置信息包括目标对象在场景图像内对应的对象中心坐标。
示例性地,图9示出了本申请一实施例提供的确定对象中心坐标的示意图。参见图9所示,目标对象T可以表示为[left,top,width,height]。通过上述四个参数,可以确定目标对象的对象中心坐标A=[left+width/2,top+height/2]。
在一种可能的实现方式中,若目标对象为人脸,则上述目标对象的边界坐标可以为目标对象的人眼坐标,将目标对象两个人眼的所构成线段的中点,作为目标对象的对象中心,将该中点的坐标作为目标对象的对象中心坐标。
在S5021中,根据所述对象中心坐标以及所述场景图像的图像中心坐标,确定所述目标偏转角度;
其中,target_yaw为所述目标偏转角度的水平分量;target_pitch为所述目标偏转角度的垂直分量;OC为所述摄像模块的焦距;CD为对象中心坐标与图像中心坐标之间的水平偏差;AC为对象中心坐标与图像中心坐标之间的垂直偏差。
在本实施例中,摄像模块的拍摄角度与机器人的眼部视线方向一致,因此,若要眼部视线对准目标对象,则需要将目标对象的对象中心坐标移动到场景图像的中心坐标。因此可以根据对象中心坐标与场景图像的图像中心坐标生成一个偏移向量,并根据该偏移向量以及机器人的眼部视线的初始角度,确定得到上述的目标偏转角度。
示例性地,图10示出了本申请一实施例提供的目标偏移角度的获取示意图。参见图10所示,目标对象的对象中心为点A,场景图像的焦点为点C,机器人两眼的中心点为点O。因此,机器人的眼部视线为直线OD,摄像模块的焦距为OC,而有图像中心坐标偏移至对象中心坐标的距离为AC,通过上述四个坐标点,可以确定机器人在水平方向的偏转角度target_yaw以及在垂直方向的偏转角度target_pitch。
在本申请实施例中,通过摄像模块获取包含目标对象的场景图像,并根据场景图像中目标对象的中心坐标与眼部视线在场景图像中的坐标之间的偏差量,计算出目标偏移角度,通过二维图像计算三维方向的偏转量,计算方式简单,计算量少,从而能够减少机器人的运算压力。
进一步地,若摄像模块与眼部视线之间存在一定的偏移量,为了提高目标偏转角度的准确性,机器人在获取得到场景图像时,可以基于上述偏移量对场景图像进行校准。示例性地,图11示出了本申请一实施例提供的拍摄偏移的原理示意图。参见图11所示,该机器人包含有摄像模块,该摄像模块位于显示模块的上方,与显示模块的输出画面中的眼球之间具有一定的偏移量。基于此,若在模拟眼部特征的位置配置也配置有摄像模块,则眼球所观察到的图像中目标对象的位置与摄像机拍摄得到的目标对象的位置会存在一定的偏移,从而在后续的凝视跟随时,会导致机器人的眼部视线偏移目标对象的中心,因此需要对上述的摄像模块采集的图像进行校准。
在该情况下,上一实施例中的S5011可以包含校准操作。图12示出了本申请另一实施例提供的一种机器人的控制方法S5011的具体实现流程图。参见图12,相对于图8所述实施例,本实施例提供的一种机器人的控制方法中S5011包括:S1201~S1202,具体详述如下:
在S1201中,根据摄像模块与所述显示模块的输出画面的模拟眼部特征的位置之间的偏移量,确定图像校正参量。
在本实施例中,机器人可以根据眼球在输出画面中的显示位置,确定眼球相对于机器人本体的所在位置,并且根据摄像模块在机器人本地的位置与上述确定的眼球相对于机器人本地的所在位置,确定上述偏移量。机器人可以配置有偏移量与校正量之间的转换算法,并将偏移量导入上述转换算法中,计算得到图像校正参数。
在S1202中,基于所述图像校正参量调整所述摄像模块采集到的原始图像,生成所述场景图像。
在本实施例中,机器人接收到摄像模块采集得到的原始图像后,可以通过上述图像校正参量对上述原始图像进行校准,例如,可以根据校正参量叫原始图像进行旋转、拉伸、水平拉伸、垂直拉伸、目标对象平移等校正操作,并将校正后的原始图像作为上述场景图像,并执行后续的目标偏移角度的确定操作。
在本申请实施例中,根据摄像模块与眼部视线之间的偏移量,对摄像模块拍摄得到的原始图像进行校正,从而能够提高后续目标偏转角度的准确性,消除因机器人模块之间偏移而导致的视线偏移的情况,继而提高了凝视跟踪行为的准确性,提高机器人的拟人化程度。
在S503中,在所述机器人旋转的过程中,动态调整所述机器人上用于模拟眼球部特征的显示模块的输出画面,以及控制所述机器人内置的旋转部件转动,以使所述机器人上所述显示模块的所述输出画面的模拟眼球眼部特征的眼部视线在机器人旋转过程中看向所述目标对象的方向。
在本实施例中,机器人在确定了自身正面面向的位姿与目标对象正面面向的位置之间的相对位置后,即上述目标对象的位置信息后,可以通过显示模块的输出画面模拟眼部特征移动的同时,控制机器人内置的旋转部件旋转,从而使得机器人显示模块的输出画面中的模拟眼部特征,例如模拟眼球或模拟眼睛对准目标对象。
与机械运动相比,通过显示模块输出用于模拟眼部特征移动的输出画面,会使得眼部特征移动更为平滑。由于通过显示模块的输出画面不受限与机器运动,只需通过刷新画面内容即可改变模拟眼部特征的位置,减少了通过马达驱动等机械驱动方式所需的启动时间,提高了响应速率,使得通过显示模块模拟的眼球运动与人体眼球运动的响应速度更为接近,提高了机器人的拟人化程度。
在一种可能的实现方式中,所述在所述机器人旋转的过程中,动态调整所述机器人上用于模拟眼部特征的显示模块的输出画面,具体为:在机器人的旋转过程中,根据目标偏转角度动态调整所述机器人上用于模拟眼部特征的显示模块的输出画面;所述目标偏转角度为机器人由初始角度旋转至面向目标对象时对应的偏转角度。
在一种可能的实现方式中,调整机器人的眼部视线对准目标对象的方式具体可以为:根据目标偏转角度,确定输出画面中模拟眼部特征的偏移量以及机器人的旋转部件的旋转角度,调整输出画面中模拟眼部特征的位置的同时,控制机器人内置的旋转部件进行转动。
其中,由于机器人的显示模块是附着于机器人表面,因此模拟眼部特征的位置的移动需要考虑机器人本体运动,在该情况下,确定旋转角度以及模拟眼球的偏移量的方式可以为:机器人可以将目标偏移角度作为旋转部件的旋转角度,并且根据以下计算方式计算出眼球的偏移量:
其中,eye_angle为眼球的偏移量;target_angle为目标偏转角;motor_angle为眼球移动过程中旋转部件的旋转角度;motor_rate为旋转部件的旋转速度;time为眼球移动所需上述偏移量所需的时间;eye_rate为眼球移动速度。
在一种可能的实现方式中,由于目标偏转角度的不同,旋转部件的启动加速度也会不同,从而导致旋转部件的速度是并非一恒定数值。在该情况下,机器人可以通过大数据分析的方式,采集在不同目标偏转角度下,旋转部件的历史速度,从而构建目标偏转角度与旋转角度之间的对应关系。机器人可以根据本次识别得到的目标偏转角度确定旋转部件的旋转速度,从而导入到上述计算方程内,计算得到眼球偏移量。
以上可以看出,本申请实施例提供的一种机器人的控制方法根据目标对象与机器人之间的相对位置,确定目标偏转角度,并基于上述目标偏转角度调整显示模块的输出画面以及旋转部件来实现眼神追随,由于该机器人的眼球运动是通过显示模块的输出界面进行模拟,移动过程中无需马达驱动实现偏转,响应时间较短,实现了平滑眼神跟随,提高了拟人化程度以及眼神跟随的准确性。
现有的机器人控制技术中,对于凝视跟踪主要采用以下两种类型的方式实现:
第一,通过视觉融合、运动双模态以及控制算法来实现凝视跟踪,而由于视觉偏移的速度与头部、躯干等身体移动的速度不同,在运动双模态的拟合计算过程中,需要考虑不同部件之间的速度偏差,从而大大增加了凝视跟踪的运算量,并且当机器人在凝视跟踪过程中的自动度的增加,上述运算量也以几何级别的速度增长,进一步增加了机器人的运算压力。图13示出了本申请一实施例提供的基于马达驱动的多自由度的机器人示意图。参见图13所示,该机器人在跟踪凝视过程中,机器人头部可以在三个方向上进行旋转,即基于左右方向旋转、上下方向旋转以及内外方向旋转,而机器人的头部内置有基于马达驱动的眼睛部件,该眼睛部件可以基于两个自由度进行旋转,即上下方向旋转以及左右方向旋转。机器人的头部还配置有惯性测量单元IMU进行运动控制补偿;对于凝视跟踪的控制算法可以采用正逆向运动学解算以及IMU补偿,并融合采用P(比例)I(积分)D(微分)控制算法。而由于该机器人内的马达自由度过多,为了保证系统稳定性需要IMU反馈角度进行运动补偿,尤其对于眼睛运动而言,需要复杂的正逆向运动学进行目标位置解算,凝视跟踪无法同时兼顾准确性、实时性以及平滑性,从而降低了拟人化程度。另外,由于多马达驱动,启动时间较长,从而降低了凝视跟踪的灵敏度,机械感较强,进一步降低了眼神凝视效果。
第二,采取低自由度的凝视跟随方式,例如以2个自由度为主(即上下方向以及左右方向),并且主要以头部旋转的方式实现目标的凝视跟踪。图14示出了本申请一实施例提供的2个自由度的机器人示意图。参见图14所示,该机器人的眼睛部件固定安装于头部,即无法移动,而头部安装有两个旋转部件,分别可以控制机器人的头部在左右方向上进行旋转以及在上下方向进行旋转。在进行凝视跟踪的过程中,主要依靠头部的偏转来实现对准目标对象。而上述方式由于自由度低,眼神无法移动,从而拟人化程度较低,用户体验度较低。
与现有的机器人控制技术相比,本申请实施例采用显示模块的输出画面模拟眼部运动,与基于马达驱动旋转部件实现眼部运动相比,除了具有更快的响应速度外,对于马达驱动算法的计算量也随之减少,正逆向运动学解算的要求也随之降低,能够提高凝视跟踪行为的流畅度以及减少机器人的运算压力,实现了平滑且稳定的凝视跟踪,有效提高机器人的运动行为能力以及拟人化程度。与此同时,通过显示模块模拟眼睛运动,只需在机器人头部安装显示模块,而无需配置马达部件、旋转部件以及实体的眼睛部件,从而减少了机器人的造价成本。
图15示出了本申请另一实施例提供的一种机器人的控制方法S503中在所述机器人旋转的过程中,动态调整所述机器人上用于模拟眼球部特征的显示模块的输出画面的具体实现流程图。参见图15,相对于图5所述实施例,本实施例提供的一种机器人的控制方法中在机器人的旋转过程中,根据目标偏转角度动态调整所述机器人上用于模拟眼部特征的显示模块的输出画面包括:S5031~S5033,具体详述如下:
在S5031中,在控制所述机器人旋转的过程中,根据所述机器人实时反馈的实时旋转角度以及所述目标偏转角度,动态调整所述输出画面中的模拟眼部特征的位置到眼部特征目标位置;所述眼部特征目标位置是所述输出画面所模拟的眼部视线首次看向所述目标对象的方向的位置。
在本实施例中,机器人进行凝视跟踪的过程具体可以划分为两个方面,其中一个方面为将机器人的正面面向对准目标对象的正面面向,另一方面则是将机器人的眼部视线的方向对准目标对象的关键中心。上述两个不同方面可以通过机器人的不同部件完成。对于将机器人的正面面向对准目标对象的正面面向的过程,可以通过控制机器人转动调整机器人的位姿,从而实现正面面向的对齐;而对于眼部视线的对齐,则可以通过S5031的操作完成,即通过动态调整显示模块输出画面中的模拟眼部特征的位置,以使机器人的眼部视线的对准目标对象的关键中心。
需要说明的是,控制机器人转动以及调整输出画面是同时执行的,则在机器人在控制机器人的旋转部件进行旋转操作的同时,可以通过动态刷新显示模块的输出画面中的模拟眼部特征的位置。其中,显示模型的输出画面中的模拟眼部特征的位置并非直接跳转到上述目标对象位置,而是可以基于预设的眼球转动速度,从在调整前的初始位置以上述的眼球转动速度旋转至眼部特征目标位置,即从初始位置到目标模拟眼部特征的位置的过程中,需要一定的旋转时间。举例性,若眼部特征目标位置与眼球的初始位置之间的角度差为30°,而机器人的预设眼球旋转速度为120°/s,则眼球的初始位置转动到眼部特征目标位置所需的时间为30/120s=0.25s。即眼部视线首次对准目标对象所需耗时为0.25s。
在本实施例中,由于机器人的显示模块是处于机器人的主体表面,从而显示模块的输出画面中的眼球运动会与机器人的主体运动耦合,眼球相当于目标对象之间的旋转角度,包含眼球相对于机器人的旋转角度(即机器人控制眼球旋转的角度),以及机器人主体本身的自转(即机器人通过旋转部件进行的转动),因此,眼球相对于目标对象之间的旋转角度与目标偏移角度相同,但最终眼球相当于机器人的眼球旋转的角度需要根据旋转部件的实际角度进行调整。基于此,在所机器人转动的过程中,旋转部件会实时向机器人反馈实时旋转角度,机器人可以根据机器人当前眼球的旋转角度与旋转部件的实时旋转角度进行叠加,判断是否到达上述的目标偏移角度,从而确定机器人的眼部视线是否对准目标对象;若当前眼球的旋转角度与旋转部件的实时旋转角度进行叠加小于目标偏转角度,则机器人的眼部视线未对准目标对象,继续控制眼球以及旋转部件进行转动;反之,若当前眼球的旋转角度与旋转部件的实时旋转角度进行叠加等于目标偏转角度,则识别机器人的眼部视线已对准目标对象,执行S5032的操作。
需要说明的是,上述旋转部件反馈的实时旋转角度是在旋转开始到反馈时刻之间的整个转动过程中的旋转角度。其中,旋转部件可以预设的时间间隔向机器人反馈实时旋转角度,举例性地,该时间间隔可以为30μs或30ms,在时间间隔较短的情况下,可以近似于实时反馈实时旋转角度。其中,上述旋转角度的确定过程可以是调用机器人内置的旋转角度控制模块完成,该旋转角度控制模块可以为P(比例)D(微分)控制器、P(比例)I(积分)控制器以及P(比例)I(积分)D(微分)控制器等控制模块,该旋转角度控制模块的角度计算过程可以通过比例积分微分原理,还可以基于预测控制,滑模控制等原理计算得到,在此不做限定。
在本实施例中,由于机器人在控制旋转部件旋转时,需要启动马达驱动,并通过马达驱动牵引旋转部件进行旋转,从而实现机器人进行机械旋转,而马达驱动启动、马达驱动牵引等操作耗时较长,而对于显示模块只需刷新输出画面即可实现眼球移动,由于显示模块的输出画面可以达到60Hz、120Hz甚至更高的刷新频率,因此眼球移动相当于即时响应,远远快于机械旋转。另一方面,在拟人化的角度而言,在跟随物体的过程中,往往是眼睛转动速度快于身体转动,因此通过旋转部件来控制机器人的身体转动,通过显示模块模拟眼球运动,则使得机器人的凝视跟踪过程的拟人化程度更高,进一步提高了用户的使用体验。基于上述原因,机器人的眼神视线对准目标对象的关键中心的耗时,会短于机器人的正面面向对准目标对象的正面面向。
作为示例而非限定,图16示出了本申请一实施例提供的机器人的眼部视线首次对准目标对象的示意图。参见图16所示,在凝视跟踪行为之前,机器人的眼部视线方向为PA方向,此时机器人的正面面向也是朝着PA方向。此时,机器人眼部视线方向与目标对象之间的目标偏移角度为∠APD,即θ,此时机器人可以控制显示模块的输出画面中的眼球进行转动以及机器人的身体进行移动。由于眼球转动较快且叠加了机器人的身体的转动角度,因此,在机器人的眼部视线对准目标对象时,机器人的正面面向仍处于PB方向,并未对准目标对象,此时,眼球相当于机器人的转动角度为α,而机器人的身体相当于目标对象的转动角度为β,因此眼球相对于目标对象的实际转动角度为α+β=θ。因此,眼部视线会优先机器人的正面面向对准目标对象。
进一步地,图17示出了本申请另一实施例提供的一种机器人的控制方法S5031的具体实现流程图。参见图17,相对于图15所述实施例,本实施例提供的一种机器人的控制方法中S5031包括:S1701~S1702,具体详述如下:
在S1701中,基于所述实时旋转角度确定水平偏转量以及垂直偏转量。
在本实施例中,由于显示模块的输出画面中的模拟眼球包含有两个自由度,可以在显示屏幕所在平面的各个方向移动,而所有移动方向可以分解到水平分量以及垂直分量。因此,机器人在接收到旋转部件反馈的实时旋转角度后,可以对该旋转角度在水平方向以及垂直方向上进行分解,从而得到水平偏转量以及垂直偏转量。
在一种可能的实现方式中,若机器人的体态旋转是通过多个不同的旋转部件控制完成的,且不同的旋转部件对应一个旋转方向,则上述实时旋转角度可以有各个旋转部件的旋转分量构成,机器人可以确定各个旋转部件对应的旋转方向,将所有在水平方向上的旋转分量进行叠加,得到上述水平偏转量,以及将所有垂直方向上的旋转分量进行叠加,得到上述的垂直偏转量。
在一种可能的实现方式中,若机器人的体态旋转有一个多自由度的旋转部件控制完成,该旋转部件可以在多个方向上进行旋转。在该情况下,机器人可以根据旋转部件反馈的三维旋转角度进行分解,得到上述的水平偏转量以及垂直偏转量。
在S1702中,根据所述目标偏转角度、所述水平偏转量以及所述垂直偏转量,确定所述眼部特征目标位置;所述实时偏移量具体为:
其中,eye_yaw为所述眼部特征目标位置的水平分量;eye_pitch为所述眼部特征目标位置的垂直分量;target_yaw为所述目标偏转角度的水平分量;target_pitch为所述目标偏转角度的垂直分量;motor_yaw为所述水平偏转量;motor_pitch为所述水平偏转量。
在本实施例中,机器人可以对目标偏转角度进行分解,得到目标偏转角度的水平分量以及垂直分量,由于机器人的眼球与目标对象之间的相对运动包含有眼球相对于机器人的运动以及机器人相对于目标对象的运动,因此,眼球相对于机器人的实际运动需要减去机器人相当于目标对象的运动贡献,即通过eye_yaw=target_yaw-motor_yaw计算水平分量,通过eye_pitch=target_pitch-motor_pitch计算垂直分量。上述眼部特征目标位置指的是,在机器人的显示画面中眼球对准目标对象时,眼球相当于机器人的偏移位置。
在本申请实施例中,通过对目标偏转角度在水平方向以及垂直方向进行分量分解,从而可以得到目标模拟眼部特征的位置的水平分量以及目标模拟眼部特征的位置的垂直分量,从而唯一确定眼部特征目标位置,上述计算过程简单,从而能够减少机器人的运算压力。
在S5032中,在所述眼部视线首次看向所述目标对象的方向后,根据所述实时旋转角度,动态调整所述模拟眼部特征的位置,以保持所述眼部视线看向所述目标对象的方向。
在本实施例中,机器人在首次对准目标对象后,由于机器人仍在转动,即机器人的旋转角度未到达预设的目标偏转角度,为了能够保持眼部视线持续对准目标对象。此时,机器人可以获取实时旋转角度,继续调整显示模块的输出画面中模拟眼球的模拟眼部特征的位置,即将模拟眼部特征的位置逐渐回正,最终在旋转部件旋转至目标偏转角度后,此时机器人的正面面向也正对着目标对象,且机器人的眼部视线也与机器人的正面面向一致,即旋转至机器人的眼部的中心区域(即眼球回正)。
在本实施例中,上述根据实时旋转角度调整模拟眼部特征的位置的方式具体可以为:基于旋转部件在各个反馈时刻反馈的实时旋转角度,确定旋转部件的旋转速度,并控制显示模块中的模拟眼球以旋转部件的旋转方向的反方向,以上述旋转速度进行运动,从而能够抵消因旋转部件旋转而带来的偏移量,从而保持眼部视线对准目标对象。
在一种可能的实现方式中,机器人旋转部件包含有一个自由度,即用于控制头部在左右方向旋转。图18示出了本申请一实施例提供的旋转部件包含有一个自由度的机器人的示意图。参见图18所示,机器人在控制头部左右旋转时,显示模块上的模拟眼球的视线会先对准目标对象,此时,机器人的头部可以继续进行旋转,机器人的眼球可以根据头部在水平方向上的旋转量,在水平方向上进行反方向运动,而保持眼球在垂直方向上静止。
在一种可能的实现方式中,机器人旋转部件包含有两个自由度,即用于控制头部在左右方向旋转以及上下方向旋转。图19示出了本申请一实施例提供的旋转部件包含有两个自由度的机器人的示意图。参见图19所示,机器人的头部可以在两个方向上进行旋转,分别通过旋转部件1控制头部左右旋转,旋转部件2控制头部上下旋转。由于上述两个旋转模块的旋转耗时较长,因此显示模块上的模拟眼球的视线会先对准目标对象,此时,机器人可以通过旋转部件1以及旋转部件2继续控制头部进行旋转,机器人的眼球可以根据旋转部件1在水平方向上的旋转量,在水平方向上进行反方向运动,以及根据旋转部件2在垂直方向上的旋转量,在垂直方向上进行反方向运动,以实现机器人视线持续跟踪目标对象。
在本申请实施例中,机器人在控制眼球的移动过程中,会耦合有机器人旋转部件的实时旋转量,从而能够提高凝视跟踪的准确性,并且在眼球首次对准目标后,可以根据旋转部件的实时旋转量,动态调整模拟眼部特征的位置,从而能够保持视线始终对准目标对象,从而能够提高拟人化程度。
进一步地,当机器人的躯干以及头部分离,可以通过不同的旋转部件(即头部旋转部件以及躯干旋转部件)分别控制躯干以及头部运动的情况下,则S502中根据所述目标对象的位置信息控制所述机器人转动可以包含有S2001~S2003的操作。图20示出了本申请另一实施例提供的一种机器人的控制方法S502中的根据所述目标对象的位置信息控制所述机器人转动的具体实现流程图。参见图20,相对于图5所述实施例,本实施例提供的一种机器人的控制方法中S502包括:S2001~S2003,具体详述如下:
在S2001中,基于所述目标偏转角度控制所述机器人的躯干转动;所述目标偏转角度为机器人的躯干由初始角度旋转至朝向目标对象时对应的偏转角度。
在本实施例中,由于机器人的躯干运动并不受头部以及眼球的运动影响,因此该机器人的初始角度对准目标对象所需的旋转角度即为上述的目标偏转角度,可以基于目标偏转角度控制机器人的躯干进行转动。其中,所述初始角度为机器人的躯干正面所朝向的方向角。
进一步地,图21示出了本申请另一实施例提供的一种机器人的控制方法S2001的具体实现流程图。参见图21,相对于图20所述实施例,本实施例提供的一种机器人的控制方法中S2001包括:S2101~S2103,具体详述如下:
在S2101中,以预设的控制周期获取所述机器人的躯干在各个所述控制周期的第一基准旋转角度。
在本实施例中,控制机器人躯干转动可以通过机器人部署于机器人躯干的躯干旋转部件视线,其中,机器人会以预设的控制周期向躯干旋转部件发送控制指令,每一次发送的控制指令内可以包含有关于该躯干旋转部件在整个旋转过程中的旋转角度,并根据每个控制周期反馈的实际旋转量动态调整上述旋转角度,从而确保旋转操作的准确性。因此,机器人向躯干旋转部件发送第一周期旋转指令时,需要确定当前机器人的姿态,即在控制周期对应的开始时刻,该机器人躯干的旋转角度,即上述的第一基准旋转角度。
在S2102中,根据当前所述控制周期的所述第一基准旋转角度、上一所述控制周期的第一跟踪误差角度以及所述躯干旋转角度,生成当前所述控制周期对应的第一周期旋转指令;所述第一周期旋转指令内的旋转角度具体为:
其中,motor0_yaw为所述第一周期旋转指令内的旋转角度;current_motor0_yaw为当前所述控制周期的第一基准旋转角度;target_yaw为所述目标偏转角度;motor0_yaw_diff为当前所述控制周期的第一跟踪误差角度;motor0_yaw_last_diff为上一所述控制周期的第一跟踪误差角度;motor0_Kp以及motor0_Kd为所述躯干旋转部件的预设调整参数。
在本实施例中,由于躯干旋转部件的运行并非匀速且稳定,在实际旋转的过程中会存在一定旋转误差。为了消除机器人因机械转动所带来的的误差,可以通过躯干旋转部件对应的motor0_Kp以及motor0_Kd来实时调整旋转角度,上述两个参数可以在机器人出厂过程时默认配置,还可以基于机器人在历史控制操作中的历史旋转记录中通过大数据学习的方式确定得到,当然,还可以通过与云端服务器进行通信,实时更新上述调整参数。对于上述预设参数的获取方式,在此不一一进行限定。其中,motor0_Kp为当前周期的校准参量;motor0_Kd为周期迭代的校准参量。
在本实施例中,第一跟踪误差角度为表示与目标偏差角度之间的相差角度,即机器人的躯体仍需旋转的角度,由于current_motor0_yaw为当前机器人的躯干的已偏转的角度,即第一基准旋转角度,当该角度与目标偏转角度相同时,上述数值为0,则不存在偏差,机器人的躯干的正面面向已对准目标对象,无需继续旋转;反之,若上述数值为非0,即机器人仍需继续进行旋转,并生成第一周期控制指令。
在S2103中,根据各个所述第一周期旋转指令控制所述机器人的躯干转动。
在本实施例中,机器人在每个控制周期生成一个第一周期旋转指令,该第一周期旋转指令包含上述确定旋转部件所需旋转的角度,并在各个控制周期将第一周期控制指令发送给躯干旋转部件,以控制躯干旋转部件进行转动,直到目标旋转部件的旋转角度到达上述目标偏转角度,此时识别机器人当前的正面位姿对准目标对象。
在本申请实施例中,通过在每个周期生成一个对躯干旋转部件进行控制的第一周期旋转指令,实现对旋转部件的周期精准控制,并且在生成第一周期旋转指令时,通过motor0_Kp以及motor0_Kd来消除机械旋转偏差量,提高了机器人控制的准确性。
在S2002中,在所述机器人的躯干旋转的过程中,根据实时反馈的实时躯干角度以及所述目标偏转角度,动态控制所述机器人的头部转动至头部目标位置,所述头部目标位置为所述机器人头部首次面向所述目标对象的方向的位置。
在本实施例中,机器人将头部的正面面向对准目标对象的正面面向的过程具体可以划分为两个方面,其中一个方面为将机器人头部的正面面向对准目标对象的正面面向,另一方面则是将机器人躯干的正面面向对准目标对象的正面面向,当上述两个部位均对准目标对象的正面面向时,则识别机器人已对准目标对象。上述两个不同方面可以通过机器人的不同部件完成。对于将机器人头部的正面面向对准目标对象的正面面向的过程,可以通过机器人的头部旋转部件调整机器人的头部位姿,从而实现头部正面面向与目标对象的正面面向的对齐;而对于机器人躯干的正面面向对准目标对象的正面面向的过程,可以通过机器人的躯干旋转部件调整机器人的头部位姿,从而实现头部正面面向与目标对象的正面面向的对齐。
需要说明的是,S2001以及S2002是同时执行的,则在机器人在控制机器人的躯干旋转部件进行旋转操作的同时,可以控制机器人的头部旋转部件进行旋转操作。其中,头部旋转部件相对于目标对象的旋转速度会高于躯体旋转部件相对于目标对象的旋转速度,即头部部件会快于身体部件对准目标对象的正面面向。理由如下:
由于机器人的头部是安装于机器人的躯干上,从而头部部件的旋转会与机器人的躯干的运动耦合,头部部件相对于目标对象之间的旋转角度,包含头部部件相对于机器人的旋转角度(即机器人控制头部部件的角度),以及机器人躯干的旋转(即机器人通过躯干旋转部件进行的转动),因此,头部部件的实际旋转角度需要根据躯干旋转部件的实际旋转角度进行调整。基于此,在躯干旋转部件转动的过程中,躯干旋转部件会实时向机器人反馈实时躯干角度,机器人可以根据机器人当前头部的旋转角度与躯干旋转部件的实时躯干角度进行叠加,判断是否到达上述的目标偏移角度,从而确定机器人的头部的正面面向是否对准目标对象;若当前头部的旋转角度与躯干旋转部件的实时躯干角度进行叠加小于目标偏转角度,则机器人的头部的正面面向未对准目标对象,继续控制头部旋转部件以及躯干旋转部件进行转动;反之,若当前头部的旋转角度与躯干旋转部件的实时躯干角度进行叠加等于目标偏转角度,则识别机器人的头部的正面面向已对准目标对象。
在拟人化的角度而言,在跟随物体的过程中,往往是头部转动速度快于躯干转动,因此通过躯干旋转部件来控制机器人的躯干转动,通过耦合了躯干旋转的基础上控制头部旋转部件控制机器人的头部转动,从而使得头部优先于躯干对正目标对象,机器人的凝视跟踪过程的拟人化程度更高,进一步提高了用户的使用体验。
在S2003中,在所述机器人头部首次面向所述目标对象的方向后,根据所述实时躯干角度,动态控制所述机器人的头部转动,以保持所述机器人头部面向所述目标对象的方向。
在本实施例中,机器人头部的正面面向在首次对正目标对象后,由于躯干旋转部件仍在旋转,即躯干旋转部件的旋转角度未到达预设的目标偏转角度,为了能够保持器人头部的正面面向持续对正目标对象。此时,机器人可以获取躯干旋转部件的实时躯干角度,继续通过头部旋转部件控制机器人头部进行旋转,即将头部逐渐回正,最终在躯干旋转部件旋转至目标偏转角度后,此时机器人躯干的正面面向也正对着目标对象,且机器人头部的正面面向也与机器人躯干的正面面向一致,即实现头部回正。
在本实施例中,上述根据实时旋转角度调整模拟眼部特征的位置的方式具体可以为:基于躯干旋转部件在各个反馈时刻反馈的实时躯干角度,确定躯干旋转部件的躯干旋转速度,并控制头部旋转部件以躯干旋转部件的旋转方向的反方向,以上述躯干旋转速度进行运动,从而能够抵消因躯干旋转部件旋转而带来的偏移量,从而保持头部的正面面向对正目标对象。
在本申请实施例中,机器人在控制头部的转动过程中,会耦合有机器人躯干旋转部件的实时旋转量,从而能够提高凝视跟踪的准确性,并且在头部的正面面向首次对正目标对象后,可以根据躯干旋转部件的实时旋转量,动态调整头部旋转部件的转动,从而能够保持头部的正面面向始终对正目标对象,从而能够提高拟人化程度。
进一步地,当机器人的头部旋转包含有两个自由度,例如可以通过两个不同的头部旋转部件(即用于左右旋转的第一头部旋转部件以及用于上下旋转的第二头部旋转部件)分别控制头部进行左右旋转以及上下旋转的情况下,则S2002可以包含有S2201~S2203的操作。图22示出了本申请另一实施例提供的一种机器人的控制方法S2002的具体实现流程图。参见图22,相对于图20所述实施例,本实施例提供的一种机器人的控制方法中S2202包括:S2201~S2203,具体详述如下:
在S2201中,基于所述目标偏转角度确定水平偏转角度以及垂直偏转角度。
在本实施例中,由于机器人头部的包含有两个自由度,分别通过第一头部旋转部件控制头部在水平方向旋转,通过第二头部部件控制在垂直方向旋转。因此,机器人可以对该目标偏转角度在水平方向以及垂直方向上进行分解,从而得到水平偏转角度以及垂直偏转角度。
图23示出了本申请一实施例提供的旋转部件包含有三个自由度的机器人的示意图。参见图23所示,机器人的头部可以在两个方向上进行旋转,分别通过旋转部件1控制头部左右旋转,旋转部件2控制头部上下旋转,机器人的躯干可以在一个方向上进行旋转,即通过旋转部件0控制躯干在左右方向上旋转。由于垂直方向上只有第二头部旋转部件进行控制,因此第二头部旋转部件承担所有垂直旋转量;而在水平方向上,有用于控制头部左右旋转的第一头部旋转部件(即旋转部件1)以及用于控制躯干左右旋转的躯干旋转部件(即旋转部件0),因此头部旋转的过程中需要考虑躯干的实时躯干角度。
在S2202中,根据所述垂直偏转角度控制所述机器人的头部在垂直方向上转动。
在本实施例中,由于垂直方向上只有第二头部旋转部件进行控制,躯干的转动并不会影响垂直方向的旋转角度,因此可以根据上述确定的垂直偏转角度控制第二头部旋转部件进行转动,以使头部在垂直方向上移动目标位置。
进一步地,图24示出了本申请另一实施例提供的一种机器人的控制方法S2202的具体实现流程图。参见图24,相对于图22所述实施例,本实施例提供的一种机器人的控制方法中S2202包括:S2401~S2403,具体详述如下:
在S2401中,以预设的控制周期获取所述机器人的头部在垂直方向上各个所述控制周期的第二基准旋转角度。
在本实施例中,机器人会以预设的控制周期向第二头部旋转部件发送控制指令,每一次发送的控制指令内可以包含有关于该第二头部旋转部件在整个旋转过程中垂直方向的旋转角度,并根据每个控制周期反馈的实际垂直旋转量动态调整上述垂直方向的旋转角度。因此,机器人向第二头部旋转部件发送第二周期旋转指令时,需要确定当前机器人头部垂直方向上的姿态,即在控制周期对应的开始时刻,该机器人头部垂直方向上的旋转角度,即上述的第二基准旋转角度。
在S2402中,根据当前所述控制周期的所述第二基准旋转角度、上一所述控制周期的第二跟踪误差角度以及所述垂直偏转角度,生成当前所述控制周期对应的第二周期旋转指令;所述第二周期旋转指令内的旋转角度具体为:
其中,motor2_pitch为所述第二周期旋转指令内的旋转角度;current_motor2_pitch为当前所述控制周期的第二基准旋转角度;target_pitch为所述垂直偏转角度;motor1_yaw_diff为当前所述控制周期的第三跟踪误差角度;motor1_yaw_last_diff为上一所述控制周期的第三跟踪误差角度;;motor2_Kp以及motor2_Kd为所述第二头部旋转部件的预设调整参数。
在本实施例中,由于第二头部旋转部件的运行并非匀速且稳定,在实际旋转的过程中会存在一定旋转误差。为了消除机器人因机械转动所带来的的误差,可以通过第二头部旋转部件对应的motor2_Kp以及motor2_Kd来实时调整旋转角度,上述两个参数可以在机器人出厂过程时默认配置,还可以基于机器人在历史控制操作中的历史旋转记录中通过大数据学习的方式确定得到,当然,还可以通过与云端服务器进行通信,实时更新上述调整参数。对于上述预设参数的获取方式,在此不一一进行限定。其中,motor2_Kp为当前周期的校准参量;motor2_Kd为周期迭代的校准参量。
在本实施例中,第二跟踪误差角度为表示与目标偏差角度在垂直方向上的相差角度,即机器人的头部在垂直方向仍需旋转的角度,由于current_motor2_pitch为当前机器人的头部在垂直方向上的已偏转的角度,即第二基准旋转角度,当该角度与目标偏转角度的垂直防线的偏转角度相同时,上述数值为0,则不存在偏差,机器人的头部在垂直方向上已到达目标位置,无需继续旋转;反之,若上述数值为非0,即第二头部旋转部件仍需继续进行旋转,并生成第二周期控制指令。
在S2403中,根据各个所述第二周期旋转指令控制所述机器人的头部在垂直方向上转动。
在本实施例中,机器人在每个控制周期生成一个第二周期旋转指令,该第二周期旋转指令包含上述确定第二头部旋转部件所需旋转的角度,并在各个控制周期将第二周期控制指令发送给第二头部旋转部件,以控制第二头部旋转部件进行转动,直到到达上述垂直偏转角度。
在本申请实施例中,通过在每个周期生成一个对第二头部旋转部件进行控制的第二周期旋转指令,实现对第二头部旋转部件的周期精准控制,并且在生成第二周期旋转指令时,通过motor2_Kp以及motor2_Kd来消除机械旋转偏差量,提高了机器人控制的准确性。
在S2203中,在所述机器人的躯干转动的过程中,根据实时反馈的实时躯干角度以及所述水平偏转角度,动态控制所述机器人的头部在水平方向上转动至水平目标位置;所述水平目标位置为所述机器人头部在水平方向上首次面向所述目标对象的方向的位置。
在本实施例中,由于机器人的头部是安装于机器人的躯干上,从而头部部件的水平旋转会与机器人的躯干的水平运动耦合,头部部件相对于目标对象之间在水平方向上的旋转角度,包含头部部件相对于机器人在水平方向上的旋转角度(即机器人控制第一头部部件的角度),以及机器人躯干在水平方向上的旋转(即机器人通过躯干旋转部件进行的转动),因此,头部部件在水平方向上的实际旋转角度需要根据躯干旋转部件在水平方向上的实际旋转角度进行调整。
进一步地,图25示出了本申请另一实施例提供的一种机器人的控制方法S2203的具体实现流程图。参见图25,相对于图22所述实施例,本实施例提供的一种机器人的控制方法中S2203包括:S2501~S2503,具体详述如下:
在S2501中,以预设的控制周期获取所述机器人的头部在水平方向上各个所述控制周期的第三基准旋转角度。
在本实施例中,与S2401相似,机器人会以预设的控制周期向第二头部旋转部件获取第三基准旋转角度。具体参数可以参见S2401的相关描述,在此不一一赘述。
在S2502中,根据当前所述控制周期的所述第三基准旋转角度、上一所述控制周期的第三跟踪误差角、所述实时躯干角度以及所述水平偏转角度,生成当前所述控制周期对应的第三周期旋转指令;所述第三周期旋转指令内的旋转角度具体为:
其中,motor1_yaw为所述第三周期旋转指令内的旋转角度;current_motor1_yaw为当前所述控制周期的第三基准旋转角度;target_yaw为所述水平偏转角度;motor1_yaw_diff为当前所述控制周期的第三跟踪误差角度;motor1_yaw_last_diff为上一所述控制周期的第三跟踪误差角度;motor1_Kp以及motor1_Kd为所述第一头部旋转部件的预设调整参数;current_motor0_yaw为所述实时躯干角度。
在本实施例中,同样地,为了消除机械运动的误差,在确定第三周期旋转指令内的旋转角度时,可以引入motor1_Kp以及motor1_Kd,实现参数校正。
在本实施例中,由于第一头部旋转部件在执行左右旋转的过程中current_motor1_yaw中耦合了躯干左右旋转current_motor0_yaw,因此计算第三跟踪误差角度时需要考虑上述的耦合影响。
在S2503中,根据各个所述三周期旋转指令动态控制所述机器人的头部在水平方向上转动。
在本实施例中,机器人在每个控制周期生成一个第三周期旋转指令,该第三周期旋转指令包含上述确定第一头部旋转部件所需旋转的角度,并在各个控制周期将第三周期控制指令发送给第一头部旋转部件,以控制第一头部旋转部件进行转动,直到到达上述水平偏转角度。
在本申请实施例中,在控制头部水平旋转的过程中考虑了机器人躯干水平旋转量,从而能够提高旋转控制的准确性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的机器人的控制方法,图26示出了本申请实施例提供的机器人的控制装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图26,该机器人的控制装置包括:
位置信息获取单元261,用于获取目标对象的位置信息;
转动控制单元262,用于根据所述目标对象的位置信息控制所述机器人转动;
画面调整单元263,用于在所述机器人旋转的过程中,动态调整所述机器人上用于模拟眼部特征的显示模块的输出画面,以使所述机器人上所述显示模块的所述输出画面的模拟眼部特征的眼部视线在机器人旋转过程中为看向所述目标对象的方向。
所述画面调整单元263具体用于:在机器人的旋转过程中,根据目标偏转角度动态调整所述机器人上用于模拟眼部特征的显示模块的输出画面;所述目标偏转角度为机器人由初始角度旋转至面向目标对象时对应的偏转角度。
可选地,所述画面调整单元263包括:
眼部运动控制单元,用于在控制所述机器人旋转的过程中,根据所述机器人实时反馈的实时旋转角度以及所述目标偏转角度,动态调整所述输出画面中的模拟眼部特征的位置到眼部特征目标位置;所述眼部特征目标位置是所述输出画面所模拟的眼部视线首次看向所述目标对象的方向的位置;
眼部回正控制单元,还用于在所述眼部视线首次看向所述目标对象的方向后,根据所述实时旋转角度,动态调整所述模拟眼部特征的位置,以保持所述眼部视线看向所述目标对象的方向。
可选地,所述眼球运动控制单元包括:
偏转分量确定单元,用于基于所述实时旋转角度确定水平偏转量以及垂直偏转量;
眼部特征目标位置确定单元,用于根据所述目标偏转角度、所述水平偏转量以及所述垂直偏转量,确定所述眼部特征目标位置;所述实时偏移量具体为:
其中,eye_yaw为所述眼部特征目标位置的水平分量;eye_pitch为所述眼部特征目标位置的垂直分量;target_yaw为所述目标偏转角度的水平分量;target_pitch为所述目标偏转角度的垂直分量;motor_yaw为所述水平偏转量;motor_pitch为所述水平偏转量。
可选地,所述转动控制单元262包括:
躯干旋转控制单元,用于基于所述目标偏转角度控制所述机器人的躯干转动;所述目标偏转角度为机器人的躯干由初始角度旋转至朝向目标对象时对应的偏转角度;
头部旋转控制单元,用于在所述机器人的躯干旋转的过程中,根据实时反馈的实时躯干角度以及所述目标偏转角度,动态控制所述机器人的头部转动至头部目标位置,所述头部目标位置为所述机器人头部首次面向所述目标对象的方向的位置;
头部旋转回正单元,用于在所述机器人头部首次面向所述目标对象的方向后,根据所述实时躯干角度,动态控制所述机器人的头部转动,以保持所述机器人头部面向所述目标对象的方向。
可选地,所述躯干旋转控制单元包括:
第一基准旋转角度确定单元,用于以预设的控制周期获取所述机器人的躯干在各个所述控制周期的第一基准旋转角度;
第一周期旋转指令生成单元,用于根据当前所述控制周期的所述第一基准旋转角度、上一所述控制周期的第一跟踪误差角度以及所述躯干旋转角度,生成当前所述控制周期对应的第一周期旋转指令;所述第一周期旋转指令内的旋转角度具体为:
其中,motor0_yaw为所述第一周期旋转指令内的旋转角度;current_motor0_yaw为当前所述控制周期的第一基准旋转角度;target_yaw为所述目标偏转角度;motor0_yaw_diff为当前所述控制周期的第一跟踪误差角度;motor0_yaw_last_diff为上一所述控制周期的第一跟踪误差角度;motor0_Kp以及motor0_Kd为所述躯干旋转部件的预设调整参数;
第一周期旋转指令执行单元,用于根据各个所述第一周期旋转指令控制所述机器人的躯干转动。
可选地,所述头部旋转控制单元包括:
旋转角度分量确定单元,用于基于所述目标偏转角度确定水平偏转角度以及垂直偏转角度;
第一头部旋转控制单元,用于根据所述垂直偏转角度控制所述机器人的头部在垂直方向上转动;以及同时
第二头部旋转控制单元,用于在所述机器人的躯干转动的过程中,根据实时反馈的实时躯干角度以及所述水平偏转角度,动态控制所述机器人的头部在水平方向上转动至水平目标位置;所述水平目标位置为所述机器人头部在水平方向上首次面向所述目标对象的方向的位置。
可选地,所述第一头部旋转控制单元包括:
第二基准旋转角度确定单元,用于以预设的控制周期获取所述机器人的头部在垂直方向上各个所述控制周期的第二基准旋转角度;
第二周期旋转指令生成单元,用于根据当前所述控制周期的所述第二基准旋转角度、上一所述控制周期的第二跟踪误差角度以及所述垂直偏转角度,生成当前所述控制周期对应的第二周期旋转指令;所述第二周期旋转指令内的旋转角度具体为:
其中,motor2_pitch为所述第二周期旋转指令内的旋转角度;current_motor2_pitch为当前所述控制周期的第二基准旋转角度;target_pitch为所述垂直偏转角度;motor2_pitch_diff为当前所述控制周期的第二跟踪误差角度;motor2_pitch_last_diff为上一所述控制周期的第二跟踪误差角度;motor2_Kp以及motor2_Kd为所述第二头部旋转部件的预设调整参数;
第二周期旋转指令执行单元,用于根据各个所述第二周期旋转指令控制所述机器人的头部在垂直方向上转动。
可选地,所述第二头部旋转控制单元包括:
第三基准旋转角度确定单元,用于以预设的控制周期获取所述机器人的头部在水平方向上各个所述控制周期的第三基准旋转角度;
第三周期旋转指令生成单元,用于根据当前所述控制周期的所述第三基准旋转角度、上一所述控制周期的第三跟踪误差角、所述实时躯干角度以及所述水平偏转角度,生成当前所述控制周期对应的第三周期旋转指令;所述第三周期旋转指令内的旋转角度具体为:
其中,motor1_yaw为所述第三周期旋转指令内的旋转角度;current_motor1_yaw为当前所述控制周期的第三基准旋转角度;target_yaw为所述水平偏转角度;motor1_yaw_diff为当前所述控制周期的第三跟踪误差角度;motor1_yaw_last_diff为上一所述控制周期的第三跟踪误差角度;motor1_Kp以及motor1_Kd为所述第一头部旋转部件的预设调整参数;current_motor0_yaw为所述实时躯干角度;
第三周期旋转指令执行单元,用于根据各个所述三周期旋转指令动态控制所述机器人的头部在水平方向上转动。
可选地,所述位置信息获取单元261包括:
场景图像采集单元,用于通过所述机器人内置的摄像模块获取包含所述目标对象的场景图像;
对象中心坐标确定单元,用于从所述场景图像中标记出所述目标对象的边界坐标,并根据所述边界坐标确定所述目标对象的目标对象的位置信息;所述目标对象的位置信息包括所述目标对象的对象中心坐标;
目标偏转角度计算单元,用于根据所述对象中心坐标以及所述场景图像的图像中心坐标,确定所述目标偏转角度;
其中,target_yaw为所述目标偏转角度的水平分量;target_pitch为所述目标偏转角度的垂直分量;OC为所述摄像模块的焦距;CD为对象中心坐标与图像中心坐标之间的水平偏差;AC为对象中心坐标与图像中心坐标之间的垂直偏差。
可选地,所述场景图像采集单元包括:
图像校正参量获取单元,用于根据摄像模块与所述显示模块的输出画面的模拟眼部特征的位置之间的偏移量,确定图像校正参量;
图像校正执行单元,用于基于所述图像校正参量调整所述摄像模块采集到的原始图像,生成所述场景图像。
因此,本申请实施例提供的机器人的控制装置同样可以根据目标对象与机器人之间的相对位置,确定目标偏转角度,并基于上述目标偏转角度调整显示模块的输出画面以及旋转部件来实现眼神追随,由于该机器人的眼球运动是通过显示模块的输出界面进行模拟,移动过程中无需马达驱动实现偏转,响应时间较短,实现了平滑眼神跟随,提高了拟人化程度以及眼神跟随的准确性。
图27为本申请一实施例提供的机器人的结构示意图。如图27所示,该实施例的机器人27包括:至少一个处理器270(图27中仅示出一个)处理器、存储器271以及存储在所述存储器271中并可在所述至少一个处理器270上运行的计算机程序272,所述处理器270执行所述计算机程序272时实现上述任意各个机器人的控制方法实施例中的步骤。
所述机器人27可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该机器人可包括,但不仅限于,处理器270、存储器271。本领域技术人员可以理解,图27仅仅是机器人27的举例,并不构成对机器人27的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器270可以是中央处理单元(Central Processing Unit,CPU),该处理器270还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器271在一些实施例中可以是所述机器人27的内部存储单元,例如机器人27的硬盘或内存。所述存储器271在另一些实施例中也可以是所述机器人27的外部存储设备,例如所述机器人27上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器271还可以既包括所述机器人27的内部存储单元也包括外部存储设备。所述存储器271用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器271还可以用于暂时地存储已经输出或者将要输出的数据。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供了一种网络设备,该网络设备包括:至少一个处理器、存储器以及存储在所述存储器中并可在所述至少一个处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意各个方法实施例中的步骤。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/机器人的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (19)
1.一种机器人的控制方法,其特征在于,包括:
获取目标对象的位置信息;
根据所述目标对象的位置信息控制所述机器人转动;
在所述机器人旋转的过程中,动态调整所述机器人上用于模拟眼部特征的显示模块的输出画面,以使所述机器人上所述显示模块的所述输出画面的模拟眼部特征的眼部视线在机器人旋转过程中为看向所述目标对象的方向。
2.根据权利要求1所述的控制方法,其特征在于,所述在所述机器人旋转的过程中,动态调整所述机器人上用于模拟眼部特征的显示模块的输出画面,具体为:
在机器人的旋转过程中,根据目标偏转角度动态调整所述机器人上用于模拟眼部特征的显示模块的输出画面;所述目标偏转角度为机器人由初始角度旋转至面向目标对象时对应的偏转角度。
3.根据权利要求2所述的控制方法,其特征在于,所述在机器人的旋转过程中,根据目标偏转角度动态调整所述机器人上用于模拟眼部特征的显示模块的输出画面,包括:
在控制所述机器人旋转的过程中,根据所述机器人实时反馈的实时旋转角度以及所述目标偏转角度,动态调整所述输出画面中的模拟眼部特征的位置到眼部特征目标位置;所述眼部特征目标位置是所述输出画面所模拟的眼部视线首次看向所述目标对象的方向时对应的位置;
在所述眼部视线首次看向所述目标对象的方向后,根据所述实时旋转角度,动态调整所述模拟眼部特征的位置,以保持所述眼部视线看向所述目标对象的方向。
4.根据权利要求3所述的控制方法,其特征在于,所述在控制所述机器人旋转的过程中,根据所述机器人实时反馈的实时旋转角度以及所述目标偏转角度,动态调整所述输出画面中的模拟眼部特征的位置到眼部特征目标位置,包括:
基于所述实时旋转角度确定水平偏转量以及垂直偏转量;
根据所述目标偏转角度、所述水平偏转量以及所述垂直偏转量,确定所述眼部特征目标位置;所述实时偏移量具体为:
其中,eye_yaw为所述眼部特征目标位置的水平分量;eye_pitch为所述眼部特征目标位置的垂直分量;target_yaw为所述目标偏转角度的水平分量;target_pitch为所述目标偏转角度的垂直分量;motor_yaw为所述水平偏转量;motor_pitch为所述水平偏转量。
5.根据权利要求1所述的控制方法,其特征在于,所述根据所述目标对象的位置信息控制所述机器人转动,包括:
基于目标偏转角度控制所述机器人的躯干转动;所述目标偏转角度为机器人的躯干由初始角度旋转至朝向目标对象时对应的偏转角度;
在所述机器人的躯干旋转的过程中,根据实时反馈的实时躯干角度以及所述目标偏转角度,动态控制所述机器人的头部转动至头部目标位置,所述头部目标位置为所述机器人头部首次面向所述目标对象的方向时对应的位置;
在所述机器人头部首次面向所述目标对象的方向后,根据所述实时躯干角度,动态控制所述机器人的头部转动,以保持所述机器人头部面向所述目标对象的方向。
6.根据权利要求5所述的控制方法,其特征在于,所述基于目标偏转角度控制所述机器人的躯干转动,包括:
以预设的控制周期获取所述机器人的躯干在各个所述控制周期的第一基准旋转角度;
根据当前所述控制周期的所述第一基准旋转角度、上一所述控制周期的第一跟踪误差角度以及所述躯干旋转角度,生成当前所述控制周期对应的第一周期旋转指令;
根据各个所述第一周期旋转指令控制所述机器人的躯干转动。
7.根据权利要求5所述的控制方法,所述在所述机器人的躯干旋转的过程中,根据实时反馈的实时躯干角度以及所述目标偏转角度,动态控制所述机器人的头部转动至头部目标位置,所述头部目标位置为所述机器人头部首次面向所述目标对象的方向的位置,包括:
基于所述目标偏转角度确定水平偏转角度以及垂直偏转角度;
根据所述垂直偏转角度控制所述机器人的头部在垂直方向上转动;
以及同时在所述机器人的躯干转动的过程中,根据实时反馈的实时躯干角度以及所述水平偏转角度,动态控制所述机器人的头部在水平方向上转动至水平目标位置;所述水平目标位置为所述机器人头部在水平方向上首次面向所述目标对象的方向的位置。
8.根据权利要求7所述的控制方法,其特征在于,所述根据所述垂直偏转角度控制所述机器人的头部在垂直方向上转动,包括:
以预设的控制周期获取所述机器人的头部在垂直方向上各个所述控制周期的第二基准旋转角度;
根据当前所述控制周期的所述第二基准旋转角度、上一所述控制周期的第二跟踪误差角度以及所述垂直偏转角度,生成当前所述控制周期对应的第二周期旋转指令;
根据各个所述第二周期旋转指令控制所述机器人的头部在垂直方向上转动。
9.根据权利要求7所述的控制方法,其特征在于,所述在所述机器人的躯干转动的过程中,根据实时反馈的实时躯干角度以及所述水平偏转角度,动态控制所述机器人的头部在水平方向上转动至水平目标位置,包括:
以预设的控制周期获取所述机器人的头部在水平方向上各个所述控制周期的第三基准旋转角度;
根据当前所述控制周期的所述第三基准旋转角度、上一所述控制周期的第三跟踪误差角、所述实时躯干角度以及所述水平偏转角度,生成当前所述控制周期对应的第三周期旋转指令;
根据各个所述三周期旋转指令动态控制所述机器人的头部在水平方向上转动。
10.根据权利要求1-9任一所述的控制方法,其特征在于,所述获取目标对象的位置信息,包括:
通过所述机器人内置的摄像模块获取包含所述目标对象的场景图像;
从所述场景图像中标记出所述目标对象的边界坐标,并根据所述边界坐标确定所述目标对象的目标对象的位置信息;所述目标对象的位置信息包括所述目标对象的对象中心坐标。
11.根据权利要求10所述的控制方法,其特征在于,所述通过所述机器人内置的摄像模块获取包含所述目标对象的场景图像,包括:
根据摄像模块与所述显示模块的输出画面的模拟眼部特征的位置之间的偏移量,确定图像校正参量;
基于所述图像校正参量调整所述摄像模块采集到的原始图像,生成所述场景图像。
12.一种机器人的控制装置,其特征在于,包括:
位置信息获取单元,用于获取目标对象的位置信息;
转动控制单元,用于根据所述目标对象的位置信息控制所述机器人转动;
画面调整单元,用于在所述机器人旋转的过程中,动态调整所述机器人上用于模拟眼部特征的显示模块的输出画面,以使所述机器人上所述显示模块的所述输出画面的模拟眼部特征的眼部视线在机器人旋转过程中为看向所述目标对象的方向。
13.根据权利要求12所述的控制装置,其特征在于,所述画面调整单元具体用于:在机器人的旋转过程中,根据目标偏转角度动态调整所述机器人上用于模拟眼部特征的显示模块的输出画面;所述目标偏转角度为机器人由初始角度旋转至面向目标对象时对应的偏转角度。
14.根据权利要求13所述的控制装置,其特征在于,所述画面调整单元包括:
眼部运动控制单元,用于在控制所述机器人旋转的过程中,根据所述机器人实时反馈的实时旋转角度以及所述目标偏转角度,动态调整所述输出画面中的模拟眼部特征的位置到眼部特征目标位置;所述眼部特征目标位置是所述输出画面所模拟的眼部视线首次看向所述目标对象的方向的位置;
眼部回正控制单元,还用于在所述眼部视线首次看向所述目标对象的方向后,根据所述实时旋转角度,动态调整所述模拟眼部特征的位置,以保持所述眼部视线看向所述目标对象的方向。
15.根据权利要求12所述的控制装置,其特征在于,所述转动控制单元包括:
躯干旋转控制单元,用于基于所述目标偏转角度控制所述机器人的躯干转动;所述目标偏转角度为机器人的躯干由初始角度旋转至朝向目标对象时对应的偏转角度;
头部旋转控制单元,用于在所述机器人的躯干旋转的过程中,根据实时反馈的实时躯干角度以及所述目标偏转角度,动态控制所述机器人的头部转动至头部目标位置,所述头部目标位置为所述机器人头部首次面向所述目标对象的方向的位置;
头部旋转回正单元,用于在所述机器人头部首次面向所述目标对象的方向后,根据所述实时躯干角度,动态控制所述机器人的头部转动,以保持所述机器人头部面向所述目标对象的方向。
16.根据权利要求15所述的控制装置,其特征在于,所述头部旋转控制单元包括:
旋转角度分量确定单元,用于基于所述目标偏转角度确定水平偏转角度以及垂直偏转角度;
第一头部旋转控制单元,用于根据所述垂直偏转角度控制所述机器人的头部在垂直方向上转动;以及同时
第二头部旋转控制单元,用于在所述机器人的躯干转动的过程中,根据实时反馈的实时躯干角度以及所述水平偏转角度,动态控制所述机器人的头部在水平方向上转动至水平目标位置;所述水平目标位置为所述机器人头部在水平方向上首次面向所述目标对象的方向的位置。
17.一种机器人,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至11任一项所述的方法。
18.一种机器人,包括处理器、显示器以及用于控制机器人转动的传动部件,其特征在于,所述处理器执行计算机程序时实现如权利要求1至11任一项所述的方法,所述传动部件根据所述计算机程序输出的控制指令,控制所述机器人转动,以及所述显示器根据所述计算机程序的输出指令,动态调整用于模拟眼部特征的输出画面。
19.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至11任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010382291.0A CN111546338A (zh) | 2020-05-08 | 2020-05-08 | 一种机器人的控制方法、装置、机器人以及存储介质 |
PCT/CN2021/089709 WO2021223611A1 (zh) | 2020-05-08 | 2021-04-25 | 一种机器人的控制方法、装置、机器人以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010382291.0A CN111546338A (zh) | 2020-05-08 | 2020-05-08 | 一种机器人的控制方法、装置、机器人以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111546338A true CN111546338A (zh) | 2020-08-18 |
Family
ID=71996160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010382291.0A Pending CN111546338A (zh) | 2020-05-08 | 2020-05-08 | 一种机器人的控制方法、装置、机器人以及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111546338A (zh) |
WO (1) | WO2021223611A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112083728A (zh) * | 2020-09-09 | 2020-12-15 | 上海擎朗智能科技有限公司 | 一种行驶设备的停靠方法、装置、设备及存储介质 |
CN112965599A (zh) * | 2021-03-08 | 2021-06-15 | 深圳市优必选科技股份有限公司 | 一种机器人与终端的交互方法、装置及机器人 |
CN113021338A (zh) * | 2021-03-16 | 2021-06-25 | 苏州工艺美术职业技术学院 | 一种智能随行机器人 |
WO2021223611A1 (zh) * | 2020-05-08 | 2021-11-11 | 华为技术有限公司 | 一种机器人的控制方法、装置、机器人以及存储介质 |
CN114872036A (zh) * | 2022-03-28 | 2022-08-09 | 青岛大学 | 一种基于仿生原理的机器人眼-头协同注视行为控制方法 |
CN117146828A (zh) * | 2023-10-30 | 2023-12-01 | 网思科技股份有限公司 | 拣货路径引导方法、装置、存储介质及计算机设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117809358B (zh) * | 2023-12-26 | 2024-07-05 | 北京极溯光学科技有限公司 | 一种眼球自转角度的确定方法、装置、设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011048236A1 (es) * | 2009-10-21 | 2011-04-28 | Thecorpora, S.L. | Robot social |
CN102279600A (zh) * | 2010-03-31 | 2011-12-14 | 索尼公司 | 机器人设备、控制机器人设备的方法及程序 |
JP4878462B2 (ja) * | 2005-09-07 | 2012-02-15 | 株式会社国際電気通信基礎技術研究所 | コミュニケーションロボット |
CN102915044A (zh) * | 2012-10-25 | 2013-02-06 | 上海大学 | 一种基于仿生机理的机器人头眼协调运动控制方法 |
CN106041940A (zh) * | 2016-06-14 | 2016-10-26 | 江苏若博机器人科技有限公司 | 一种重载无线传输五核快速关节机器人控制系统 |
CN109108960A (zh) * | 2017-06-23 | 2019-01-01 | 卡西欧计算机株式会社 | 机器人、机器人的控制方法以及存储介质 |
CN110024000A (zh) * | 2016-11-24 | 2019-07-16 | Groove X 株式会社 | 使瞳部变化的行为自主型机器人 |
CN110091345A (zh) * | 2018-01-31 | 2019-08-06 | 丰田自动车株式会社 | 互动机器人以及其控制程序 |
CN209364629U (zh) * | 2017-10-30 | 2019-09-10 | 索尼公司 | 信息处理装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647633B (zh) * | 2018-05-08 | 2023-12-22 | 腾讯科技(深圳)有限公司 | 识别跟踪方法、识别跟踪装置和机器人 |
CN109459722A (zh) * | 2018-10-23 | 2019-03-12 | 同济大学 | 基于人脸追踪装置的语音交互方法 |
CN111546338A (zh) * | 2020-05-08 | 2020-08-18 | 华为技术有限公司 | 一种机器人的控制方法、装置、机器人以及存储介质 |
-
2020
- 2020-05-08 CN CN202010382291.0A patent/CN111546338A/zh active Pending
-
2021
- 2021-04-25 WO PCT/CN2021/089709 patent/WO2021223611A1/zh active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4878462B2 (ja) * | 2005-09-07 | 2012-02-15 | 株式会社国際電気通信基礎技術研究所 | コミュニケーションロボット |
WO2011048236A1 (es) * | 2009-10-21 | 2011-04-28 | Thecorpora, S.L. | Robot social |
CN102279600A (zh) * | 2010-03-31 | 2011-12-14 | 索尼公司 | 机器人设备、控制机器人设备的方法及程序 |
CN102915044A (zh) * | 2012-10-25 | 2013-02-06 | 上海大学 | 一种基于仿生机理的机器人头眼协调运动控制方法 |
CN106041940A (zh) * | 2016-06-14 | 2016-10-26 | 江苏若博机器人科技有限公司 | 一种重载无线传输五核快速关节机器人控制系统 |
CN110024000A (zh) * | 2016-11-24 | 2019-07-16 | Groove X 株式会社 | 使瞳部变化的行为自主型机器人 |
CN109108960A (zh) * | 2017-06-23 | 2019-01-01 | 卡西欧计算机株式会社 | 机器人、机器人的控制方法以及存储介质 |
CN209364629U (zh) * | 2017-10-30 | 2019-09-10 | 索尼公司 | 信息处理装置 |
CN110091345A (zh) * | 2018-01-31 | 2019-08-06 | 丰田自动车株式会社 | 互动机器人以及其控制程序 |
Non-Patent Citations (1)
Title |
---|
吴何畏: "《机电传动与控制技术》", 31 August 2018, pages: 66 - 68 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021223611A1 (zh) * | 2020-05-08 | 2021-11-11 | 华为技术有限公司 | 一种机器人的控制方法、装置、机器人以及存储介质 |
CN112083728A (zh) * | 2020-09-09 | 2020-12-15 | 上海擎朗智能科技有限公司 | 一种行驶设备的停靠方法、装置、设备及存储介质 |
CN112083728B (zh) * | 2020-09-09 | 2024-04-30 | 上海擎朗智能科技有限公司 | 一种行驶设备的停靠方法、装置、设备及存储介质 |
CN112965599A (zh) * | 2021-03-08 | 2021-06-15 | 深圳市优必选科技股份有限公司 | 一种机器人与终端的交互方法、装置及机器人 |
CN112965599B (zh) * | 2021-03-08 | 2023-11-21 | 深圳市优必选科技股份有限公司 | 一种机器人与终端的交互方法、装置及机器人 |
CN113021338A (zh) * | 2021-03-16 | 2021-06-25 | 苏州工艺美术职业技术学院 | 一种智能随行机器人 |
CN114872036A (zh) * | 2022-03-28 | 2022-08-09 | 青岛大学 | 一种基于仿生原理的机器人眼-头协同注视行为控制方法 |
CN117146828A (zh) * | 2023-10-30 | 2023-12-01 | 网思科技股份有限公司 | 拣货路径引导方法、装置、存储介质及计算机设备 |
CN117146828B (zh) * | 2023-10-30 | 2024-03-19 | 网思科技股份有限公司 | 拣货路径引导方法、装置、存储介质及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2021223611A1 (zh) | 2021-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111546338A (zh) | 一种机器人的控制方法、装置、机器人以及存储介质 | |
US10078377B2 (en) | Six DOF mixed reality input by fusing inertial handheld controller with hand tracking | |
US10643389B2 (en) | Mechanism to give holographic objects saliency in multiple spaces | |
US9105210B2 (en) | Multi-node poster location | |
US20150379770A1 (en) | Digital action in response to object interaction | |
US20140002496A1 (en) | Constraint based information inference | |
JP6558839B2 (ja) | 媒介現実 | |
US20240248531A1 (en) | Reducing startup time of augmented reality experience | |
US12118685B2 (en) | Localization accuracy response | |
US20240029197A1 (en) | Dynamic over-rendering in late-warping | |
US20230410441A1 (en) | Generating user interfaces displaying augmented reality graphics | |
US20220375028A1 (en) | Dynamic over-rendering in late-warping | |
US20240303934A1 (en) | Adaptive image processing for augmented reality device | |
US12106688B1 (en) | Adjustable light field for extended reality | |
US12061842B2 (en) | Wearable device AR object voice-based interaction | |
US20240069637A1 (en) | Touch-based augmented reality experience | |
US11756274B1 (en) | Low-power architecture for augmented reality device | |
US20230418385A1 (en) | Low-power hand-tracking system for wearable device | |
US20240212287A1 (en) | Augmented reality ergonomics evaluation system | |
US20240073402A1 (en) | Multi-perspective augmented reality experience | |
CN107621881A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200818 |
|
RJ01 | Rejection of invention patent application after publication |