机器人控制方法以及机器人转让专利

申请号 : CN202311217760.3

文献号 : CN116974288B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈观鹏陈盛军涂强

申请人 : 深圳鹏行智能研究有限公司

摘要 :

本申请公开了一种机器人控制方法以及机器人。该方法包括:获取位姿调整指令,确定位姿调整指令所指示的目标位姿;获取机器人的当前位姿信息,以及目标空间中障碍物对应的障碍信息;根据目标位姿、机器人的当前位姿信息以及目标空间中障碍物对应的障碍信息,控制机器人调整至目标位姿。本申请实施例提供的技术方案,使得机器人在狭窄空间内能够自主调整位姿,无需倒退走出狭窄空间,由于机器人正向上的环境采集设备更丰富,能够采集到更丰富的环境信息,机器人基于更丰富的环境信息来调整自身位姿,从而使得机器人能更准确地进行位姿调整。

权利要求 :

1.一种机器人控制方法,其特征在于,所述方法包括:获取位姿调整指令,确定所述位姿调整指令所指示的目标位姿,所述位姿调整指令用于指示机器人在目标空间内调整位姿,所述目标位姿至少包括目标朝向,所述目标朝向为所述机器人的第一部位朝向所述目标空间中的目标对象,所述第一部位是指所述机器人中设置的环境采集设备的数量超过预设数量的部位,所述目标空间为电梯轿厢或杂物间,在所述目标空间为所述电梯轿厢的情况下,所述目标对象为电梯门或者电梯楼层按键,在所述目标空间为所述杂物间的情况下,所述目标对象为所述杂物间的门;

获取所述机器人的当前位姿信息,以及所述目标空间中障碍物对应的障碍信息;

根据所述目标空间中障碍物对应的障碍信息,确定所述机器人的可通行区域;

基于所述目标位姿和所述机器人的当前位姿信息,检测所述可通行区域中是否包括目标调整区域,其中,所述目标调整区域表征允许所述机器人通过旋转操作调整至所述目标位姿的区域;

当所述可通行区域中不包括所述目标调整区域时,根据所述目标位姿和所述机器人的当前位姿信息,确定所述机器人对应的子目标位姿,所述子目标位姿包括子目标朝向;

根据所述目标空间中障碍物对应的障碍信息和所述子目标位姿,控制所述机器人进行位姿调整,并重复所述基于所述目标位姿和所述机器人的所述当前位姿信息,检测所述可通行区域中是否包括目标调整区域的步骤,直到满足位姿调整条件;

当所述可通行区域中包括所述目标调整区域时,控制所述机器人在所述目标调整区域内进行位姿调整,以调整至所述目标位姿;

其中,所述根据所述目标位姿和所述机器人的当前位姿信息,确定所述机器人对应的子目标位姿,包括:根据所述目标位姿和所述机器人的当前位姿信息,确定所述机器人的位姿向量;

根据所述机器人的当前位姿信息和所述目标空间中障碍物对应的障碍信息,确定所述机器人的障碍向量;

基于所述位姿向量和所述障碍向量,计算所述机器人对应的目标向量,将所述目标向量的方向作为所述机器人的子目标朝向。

2.根据权利要求1所述的方法,其特征在于,所述基于所述目标位姿和所述机器人的当前位姿信息,检测所述可通行区域中是否包括目标调整区域,包括:获取所述机器人的轮廓信息;

根据所述机器人的轮廓信息确定区域条件;

当所述机器人的当前位置不符合所述区域条件时,基于所述目标位姿和所述机器人的当前位姿信息确定至少一个检测方向;

基于所述至少一个检测方向在所述可通行区域中进行区域检测,将所述可通行区域中符合所述区域条件的区域作为目标调整区域。

3.根据权利要求1所述的方法,其特征在于,所述根据所述目标位姿和所述机器人的当前位姿信息,确定所述机器人的位姿向量,包括:基于所述机器人的当前位姿信息获取所述机器人的当前朝向;

根据所述当前朝向和所述目标朝向,确定朝向角度差值;

基于所述朝向角度差值确定所述机器人的位姿向量,所述位姿向量的大小与所述朝向角度差值呈正相关关系。

4.根据权利要求3所述的方法,其特征在于,所述根据所述机器人的当前位姿信息和所述目标空间中障碍物对应的障碍信息,确定所述机器人的障碍向量,包括:基于所述机器人的当前位姿信息获取所述机器人的当前位置;

基于所述机器人的当前位置和所述目标空间中障碍物对应的障碍信息,确定距离差值;

基于所述距离差值确定所述机器人的障碍向量,所述障碍向量的大小与所述距离差值呈负相关关系。

5.根据权利要求1至4中任意一项所述的方法,其特征在于,所述获取位姿调整指令,包括:获取所述机器人的周围环境对应的环境地图,以及所述机器人的移动路径;

基于所述环境地图识别所述机器人的周围环境中的目标空间;

响应于所述机器人基于所述移动路径进入所述目标空间,生成位姿调整指令。

6.根据权利要求1至4中任意一项所述的方法,其特征在于,所述方法还包括:当所述机器人进行位姿调整时,控制所述机器人发出位姿调整提示信息。

7.根据权利要求1至4中任意一项所述的方法,其特征在于,所述根据所述目标位姿、所述机器人的当前位姿信息以及所述目标空间中障碍物对应的障碍信息,控制所述机器人调整至所述目标位姿之后,还包括:确定所述目标空间的空间状态;

若所述目标空间的空间状态为开放状态,则控制所述机器人基于所述目标位姿离开所述目标空间。

8.一种机器人,其特征在于,所述机器人包括:

机身;

与所述机身通信的控制系统,所述控制系统包括处理器和与所述处理器通信的存储器,所述存储器存储指令,所述指令在所述处理器上被运行时使所述处理器执行操作,所述操作包括:获取位姿调整指令,确定所述位姿调整指令所指示的目标位姿,所述位姿调整指令用于指示机器人在目标空间内调整位姿,所述目标位姿至少包括目标朝向,所述目标朝向为所述机器人的第一部位朝向所述目标空间中的目标对象,所述第一部位是指所述机器人中设置的环境采集设备的数量超过预设数量的部位,所述目标空间为电梯轿厢或杂物间,在所述目标空间为所述电梯轿厢的情况下,所述目标对象为电梯门或者电梯楼层按键,在所述目标空间为所述杂物间的情况下,所述目标对象为所述杂物间的门;

获取所述机器人的当前位姿信息,以及所述目标空间中障碍物对应的障碍信息;

根据所述目标空间中障碍物对应的障碍信息,确定所述机器人的可通行区域;

基于所述目标位姿和所述机器人的当前位姿信息,检测所述可通行区域中是否包括目标调整区域,其中,所述目标调整区域表征允许所述机器人通过旋转操作调整至所述目标位姿的区域;

当所述可通行区域中不包括所述目标调整区域时,根据所述目标位姿和所述机器人的当前位姿信息,确定所述机器人对应的子目标位姿,所述子目标位姿包括子目标朝向;

根据所述目标空间中障碍物对应的障碍信息和所述子目标位姿,控制所述机器人进行位姿调整,并重复所述基于所述目标位姿和所述机器人的所述当前位姿信息,检测所述可通行区域中是否包括目标调整区域的步骤,直到满足位姿调整条件;

当所述可通行区域中包括所述目标调整区域时,控制所述机器人在所述目标调整区域内进行位姿调整,以调整至所述目标位姿;

其中,所述根据所述目标位姿和所述机器人的当前位姿信息,确定所述机器人对应的子目标位姿,包括:根据所述目标位姿和所述机器人的当前位姿信息,确定所述机器人的位姿向量;

根据所述机器人的当前位姿信息和所述目标空间中障碍物对应的障碍信息,确定所述机器人的障碍向量;

基于所述位姿向量和所述障碍向量,计算所述机器人对应的目标向量,将所述目标向量的方向作为所述机器人的子目标朝向。

9.根据权利要求8所述的机器人,其特征在于,所述基于所述目标位姿和所述机器人的所述当前位姿信息,检测所述可通行区域中是否包括目标调整区域,包括:获取所述机器人的轮廓信息;

根据所述机器人的轮廓信息确定区域条件;

当所述机器人的当前位置不符合所述区域条件时,基于所述目标位姿和所述机器人的当前位姿信息确定至少一个检测方向;

基于所述至少一个检测方向在所述可通行区域中进行区域检测,将所述可通行区域中符合所述区域条件的区域作为目标调整区域。

10.根据权利要求8所述的机器人,其特征在于,所述根据所述目标位姿和所述机器人的当前位姿信息,确定所述机器人的位姿向量,包括:基于所述机器人的当前位姿信息获取所述机器人的当前朝向;

根据所述当前朝向和所述目标朝向,确定朝向角度差值;

基于所述朝向角度差值确定所述机器人的位姿向量,所述位姿向量的大小与所述朝向角度差值呈正相关关系。

11.根据权利要求10所述的机器人,其特征在于,所述根据所述机器人的当前位姿信息和所述目标空间中障碍物对应的障碍信息,确定所述机器人的障碍向量,包括:基于所述机器人的当前位姿信息获取所述机器人的当前位置;

基于所述机器人的当前位置和所述目标空间中障碍物对应的障碍信息,确定距离差值;

基于所述距离差值确定所述机器人的障碍向量,所述障碍向量的大小与所述距离差值呈负相关关系。

12.根据权利要求8至11中任意一项所述的机器人,其特征在于,所述获取位姿调整指令,包括:获取所述机器人的周围环境对应的环境地图,以及所述机器人的移动路径;

基于所述环境地图识别所述机器人的周围环境中的目标空间;

响应于所述机器人基于所述移动路径进入所述目标空间,生成位姿调整指令。

13.根据权利要求8至11中任意一项所述的机器人,其特征在于,所述操作还包括:当所述机器人进行位姿调整时,控制所述机器人发出位姿调整提示信息。

14.根据权利要求8至11中任意一项所述的机器人,其特征在于,所述操作还包括:确定所述目标空间的空间状态;

在所述目标空间的空间状态为开放状态的情况下,控制所述机器人基于所述目标位姿离开所述目标空间。

说明书 :

机器人控制方法以及机器人

技术领域

[0001] 本申请涉及机器人技术领域,尤其涉及一种机器人控制方法以及机器人。

背景技术

[0002] 随着机器人技术的不断发展,越来越多的机器人被研发出来以辅助人类完成相关工作,比如服务机器人、巡检机器人等等。
[0003] 相关技术中,机器人需要走出目标空间时,需要将自身位姿调整至目标朝向,比如朝向目标空间的门,在该情况下,机器人通常通过旋转操作来调整自身的姿态,以实现调整至目标朝向。比如,在上述目标空间为电梯时,机器人需要通过旋转操作来使得自身朝向电梯门或者电梯按键。
[0004] 然而,在目标空间内障碍去较多的情况下,由于机器人自身轮廓的限制,其旋转操作通常会导致与障碍物发生碰撞,为避免该情况发生,此时机器人通常不进行姿态调整,以倒退姿态退出目标空间,然而,机器人背面的环境采集设备不够丰富,采集到的环境信息也不够丰富,这样机器人大概率无法准确走出目标空间。

发明内容

[0005] 为解决上述技术问题,本申请实施例提供一种机器人控制方法以及机器人。
[0006] 第一方面,本申请实施例提供一种机器人控制方法,该方法包括:获取位姿调整指令,确定位姿调整指令所指示的目标位姿,位姿调整指令用于指示机器人在目标空间内调整位姿,目标位姿至少包括目标朝向,目标朝向为机器人的第一部位朝向目标空间中的目标对象;获取机器人的当前位姿信息,以及目标空间中障碍物对应的障碍信息;根据目标位姿、机器人的当前位姿信息以及目标空间中障碍物对应的障碍信息,控制机器人调整至目标位姿。
[0007] 第二方面,本申请实施例提供一种机器人,机器人包括:机身; 与机身通信的控制系统,控制系统包括处理器和与处理器通信的存储器,存储器存储指令,指令在处理器上被运行时使处理器执行操作,操作包括:获取位姿调整指令,确定位姿调整指令所指示的目标位姿,位姿调整指令用于指示机器人在目标空间内调整位姿,目标位姿至少包括目标朝向,目标朝向为机器人的第一部位朝向目标空间中的目标对象;获取机器人的当前位姿信息,以及目标空间中障碍物对应的障碍信息;根据目标位姿、机器人的当前位姿信息以及目标空间中障碍物对应的障碍信息,控制机器人调整至目标位姿。
[0008] 第三方面,本申请实施例提供一种机器人控制装置,该装置包括:指令获取模块,用于获取位姿调整指令,确定位姿调整指令所指示的目标位姿,位姿调整指令用于指示机器人在目标空间内调整位姿,目标位姿至少包括目标朝向,目标朝向为机器人的第一部位朝向目标空间中的目标对象;信息获取模块,用于获取机器人的当前位姿信息,以及目标空间中障碍物对应的障碍信息;位姿调整模块,用于根据目标位姿、机器人的当前位姿信息以及目标空间中障碍物对应的障碍信息,控制机器人调整至目标位姿。
[0009] 第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序指令,计算机程序指令可被处理器调用执行如第一方面的机器人控制方法。
[0010] 第五方面,本申请实施例提供一种计算机程序产品,当该计算机程序产品被执行时,器用于实现如第一方面所述的机器人控制方法。
[0011] 本申请实施例提供的机器人控制方法,机器人在获取到位姿调整指令后,获取自身的当前位姿信息以及目标空间内障碍物对应的障碍信息,之后基于上述当前位姿信息、目标空间内障碍物对应的障碍信息以及目标位姿进行位姿调整,以使得机器人的第一部位能够朝向目标空间内的目标对象,使得机器人在狭窄空间内能够自主调整位姿,无需倒退走出狭窄空间,由于机器人正向上的环境采集设备更丰富,能够采集到更丰富的环境信息,机器人基于更丰富的环境信息来调整自身位姿,从而使得机器人能更准确地进行位姿调整。

附图说明

[0012] 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0013] 图1是本申请实施例提供的机器人的硬件结构示意图。
[0014] 图2是本申请实施例提供的机器人的机械结构示意图。
[0015] 图3是本申请一个实施例提供的一种机器人控制方法的流程图。
[0016] 图4是本申请一个实施例提供的一种机器人控制方法的流程图。
[0017] 图5是本申请一个实施例提供的一种机器人控制方法的流程图。
[0018] 图6是本申请一个实施例提供的一种机器人控制方法的流程图。
[0019] 图7是本申请一个实施例提供的一种机器人位姿调整的场景示意图。
[0020] 图8是本申请实施例提供的机器人的硬件结构示意图。
[0021] 图9是本申请一个实施例提供的一种机器人控制装置的框图。
[0022] 图10是本申请一个实施例提供的计算机存储介质的结构框图。

具体实施方式

[0023] 应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0024] 在后续的描述中,使用用于表示部件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
[0025] 请参阅图1,图1为本申请其中一个实施例提供的机器人100的硬件结构示意图。机器人100可以是多种形态机器人中的任何一种,具体包括但不限于轮式机器人、足式机器人、履带式机器人、爬行机器人、蠕动式机器人或者游动式机器人等中的至少一种。例如,机器人100具体可以是足式机器人,可以是轮式机器人,也可以是足式与轮式相结合的机器人。其中,足式机器人包括单足、双足或者多足机器人。多足机器人是指具有三个足或者三个以上的足式机器人,例如多足机器人具体可以是四足机器人。机器人是指一种能够半自主或全自主执行工作的机器,机器人并不限定于人形的机器装置,还可以包括例如狗、马、猿或猴等仿生构型的机器人,例如机器人具体可以是一种四足的机器马,机器人也可以不是仿生的构型。在图1所示的实施方式中,机器人100包括机械单元101、通讯单元102、传感单元103、接口单元104、存储器105、显示单元106、输入单元107、处理器110或电源111等中的至少一个。机器人100的各种部件可以以任何方式连接,包括有线或无线连接等。本领域技术人员可以理解,图1中示出的机器人100的具体结构并不构成对机器人100的限定,机器人100可以包括比图示更多或更少的部件,某些部件也并不属于机器人100的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略,或者组合某些部件。
[0026] 图2是根据本申请一个实施例提供的机器人的机械结构示意图。下面结合图1和图2对机器人100的各个部件进行具体的介绍:
[0027] 机械单元101为机器人100的硬件。如图1所示,机械单元101可包括驱动板1011、电动机1012、机械结构1013。如图2所示,机械结构1013可包括机身主体1014、可伸展的腿部1015、足部1016。机器人包括的机身可以是机身主体1014,也可以包括机身主体1014、可伸展的腿部1015或者足部1016等。在其他实施方式中,机械结构1013还可包括可伸展的机械臂(图未示)、可转动的头部结构1017、可摇动的尾巴结构1018、载物结构1019、鞍座结构
1020或者摄像头结构1021等中的一个或者多个。需要说明的是,机械单元101的各个部件模块可以为一个也可以为多个,可根据具体情况设置,比如腿部1015可为4个,每个腿部1015可配置3个电动机1012,对应的电动机1012为12个。
[0028] 通讯单元102可用于信号的接收和发送,还可以通过与网络和其他设备通信,比如,接收遥控器或其他机器人100发送的按照特定步态以特定速度值向特定方向移动的指令信息后,传输给处理器110处理。通讯单元102包括如WiFi模块、4G模块、5G模块、蓝牙模块、红外模块等。
[0029] 传感单元103用于获取机器人100周围环境的信息数据以及监控机器人100内部各部件的参数数据,并发送给处理器110。传感单元103包括多种传感器,如获取周围环境信息的传感器:激光雷达(用于远程物体检测、距离确定和/或速度值确定)、毫米波雷达(用于短程物体检测、距离确定和/或速度值确定)、摄像头、红外摄像头、全球导航卫星系统(GNSS,Global Navigation Satellite System)等。如监控机器人100内部各部件的传感器:惯性测量单元(IMU,Inertial Measurement Unit)(用于测量速度值、加速度值和角速度值的值),足底传感器(用于监测足底着力点位置、足底姿态、触地力大小和方向)、温度传感器(用于检测部件温度)。至于机器人100还可配置的载荷传感器、触摸传感器、电动机角度传感器、扭矩传感器等其他传感器,在此不再赘述。
[0030] 接口单元104可以用于接收来自外部装置的输入(例如,数据信息、电力等)并且将接收到的输入传输到机器人100内的一个或多个部件,或者可以用于向外部装置输出(例如,数据信息、电力等)。接口单元104可包括电源端口、数据端口(如USB端口)、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口等。
[0031] 存储器105用于存储软件程序以及各种数据。存储器105可主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统程序、运动控制程序、应用程序(比如文本编辑器)等;数据存储区可存储机器人100在使用中所生成的数据(比如传感单元103获取的各种传感数据,日志文件数据)等。此外,存储器105可以包括高速随机存取存储器,还可以包括非易失性存储器,例如磁盘存储器、闪存器、或其他易失性固态存储器。
[0032] 显示单元106用于显示由用户输入的信息或提供给用户的信息。显示单元106可包括显示面板1061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light‑Emitting Diode,OLED)等形式来配置显示面板1061。
[0033] 输入单元107可用于接收输入的数字或字符信息。具体地,输入单元107可包括触控面板1071或者其他的输入设备1072。触控面板1071,也称为触摸屏,可收集用户的触摸操作(比如用户使用手掌、手指或适合的附件在触控面板1071上或在触控面板1071附近的操作),并根据预先设定的程式驱动相应的连接装置。触控面板1071可包括触摸检测装置1073和触摸控制器1074两个部分。其中,触摸检测装置1073检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器1074;触摸控制器1074从触摸检测装置1073上接收触摸信息,并将它转换成触点坐标,再送给处理器110,并能接收处理器110发来的命令并加以执行。除了触控面板1071,输入单元107还可以包括其他输入设备1072。具体地,其他输入设备1072可以包括但不限于遥控操作手柄等中的一种或多种,具体此处不做限定。
[0034] 进一步的,触控面板1071可覆盖显示面板1061,当触控面板1071检测到在其上或附近的触摸操作后,传送给处理器110以确定触摸事件的类型,随后处理器110根据触摸事件的类型在显示面板1061上提供相应的视觉输出。虽然在图1中,触控面板1071与显示面板1061是作为两个独立的部件来分别实现输入和输出功能,但是在某些实施例中,可以将触控面板1071与显示面板1061集成而实现输入和输出功能,具体此处不做限定。
[0035] 处理器110是机器人100的控制中心,利用各种接口和线路连接整个机器人100的各个部件,通过运行或执行存储在存储器105内的软件程序,以及调用存储在存储器105内的数据,从而对机器人100进行整体控制。
[0036] 电源111用于给各个部件供电,电源111可包括电池和电源控制板,电源控制板用于控制电池充电、放电、以及功耗管理等功能。在图1所示的实施方式中,电源111电连接处理器110,在其它的实施方式中,电源111还可以分别与传感单元103(比如摄像头、雷达、音箱等)、电动机1012电性连接。需要说明的是,各个部件可以各自连接到不同的电源111,或者由相同的电源111供电。
[0037] 在上述实施方式的基础上,具体地,在一些实施方式中,可以通过终端设备来与机器人100进行通信连接,在终端设备与机器人100进行通信时,可以通过终端设备来向机器人100发送指令信息,机器人100可通过通讯单元102来接收指令信息,并可在接收到指令信息的情况下,将指令信息传输至处理器110,使得处理器110可根据指令信息来处理得到目标速度值。终端设备包括但不限于:具备图像拍摄功能的手机、平板电脑、服务器、个人计算机、可穿戴智能设备、其它电器设备。
[0038] 指令信息可以根据预设条件来确定。在一个实施方式中,机器人100可以包括传感单元103,传感单元103可根据机器人100所在的当前环境可生成指令信息。处理器110可根据指令信息来判断机器人100的当前速度值是否满足对应的预设条件。若满足,则会保持机器人100的当前速度值和当前步态移动;若不满足,则会根据对应的预设条件来确定目标速度值和相应的目标步态,从而可控制机器人100以目标速度值和相应的目标步态移动。环境传感器可以包括温度传感器、气压传感器、视觉传感器、声音传感器。指令信息可以包括温度信息、气压信息、图像信息、声音信息。环境传感器与处理器110之间的通信方式可以为有线通信,也可以为无线通信。无线通信的方式包括但不限于:无线网络、移动通信网络(3G、4G、5G等)、蓝牙、红外。
[0039] 请参考图3,其示出本申请一个实施例提供的机器人控制方法的流程图。该方法包括如下过程。
[0040] S301,获取位姿调整指令,确定位姿调整指令所指示的目标位姿,位姿调整指令用于指示机器人在目标空间内调整位姿,目标位姿至少包括目标朝向,目标朝向为机器人的第一部位朝向目标空间中的目标对象。
[0041] 位姿调整指令用于指示机器人在目标空间内调整位姿。目标空间通常存在一个或多个出入口供机器人、人行走。目标空间包括且不限于:电梯轿厢、杂物间等狭窄空间。
[0042] 目标位姿至少包括目标朝向,目标朝向为机器人的第一部位朝向目标空间中的目标对象。第一部位是指机器人中设置的环境采集设备的数量超过预设数量的部位,预设数量根据实际需求设定。第一部位可以是头部。目标对象是指机器人进行位姿调整的参照物。上述目标对象包括且不限于电梯门、电梯楼层按键、用户等等。
[0043] 位姿调整指令可以由机器人自动触发,例如基于识别到的环境信息自动生成位姿调整指令,或者基于待执行的任务自动生成位姿调整指令,也可以由用户触发。位姿调整指令的获取方式将在下文实施例进行阐述。
[0044] S302,获取机器人的当前位姿信息,以及目标空间中障碍物对应的障碍信息。
[0045] 机器人的当前位姿信息是指当前时刻下的位姿信息,具体包括当前位置、当前朝向。目标空间中障碍物是指目标空间内对机器人的位姿调整造成影响的人或物体。目标空间中障碍物可以是动态障碍物,也即可以处于运动状态的障碍物,例如人、其他机器人。目标空间中障碍物也可以是静态障碍物,也即处于静止状态的障碍物,例如物体或者环境结构,上述物体可以包括且不限于:小推车、纸箱、人携带的背包、手提袋等等。环境结构可以包括目标空间的墙壁。障碍信息用于描述该障碍物与机器人的相对位置关系,包括障碍物与机器人的相对距离、相对角度等等。
[0046] 在一些实施例中,确定机器人的当前位置的方法包括且不限于:超宽带(Ultra Wide Band,UWB)室内定位技术、射频识别技术、蓝牙室内定位技术、超声波室内定位技术或者全球导航卫星系统(Global Navigation Satellite System,GNSS)定位技术等等。下面以超宽带室内定位技术为例进行阐述。机器人包括UWB模块,UWB模块是基于UWB技术制成的无线通信模块,通过UWB模块向基站发送脉冲信号,并记录第一时间戳,基站向无线通信模块发送响应信号,并记录第二时间戳,根据第一时间戳和第二时间戳确定脉冲信号的飞行时间,基于该飞行信号可以确定机器人与基站之间的距离,在基站位置已知的情况下,基于基站位置、机器人与基站之间的距离可以确定机器人的当前位置。
[0047] 在一些实施例中,机器人包括测角传感器,通过该测角传感器来测量机器人的当前朝向。上述测角传感器可以是指南针。
[0048] 在一些实施例中,机器人还可以获取雷达组件探测得到的点云数据,基于上述点云数据进行点云匹配从而确定机器人的当前位姿。
[0049] 在一些实施例中,机器人包括雷达组件(包括激光雷达、超声波雷达或者毫米波雷达等等),通过上述雷达组件探测目标空间中障碍物对应的障碍信息。在一些实施例中,机器人包括图像采集装置,比如摄像头,通过图像采集装置采集目标空间中障碍物对应的障碍信息。在一些实施例中,云端存储有目标空间内固定障碍物对应的障碍信息,机器人在确定自身所处的目标空间后,可以从云端获取上述固定障碍物对应的障碍信息。固定障碍物是指目标空间内位置不会发生变化的障碍物,其可以是环境结构。
[0050] S303,根据目标位姿、机器人的当前位姿信息以及目标空间中障碍物对应的障碍信息,控制机器人调整至目标位姿。
[0051] 在一些实施例中,可以预先训练针对机器人的位姿调整模型,并将上述位姿调整模型加载至机器人中,然后通过位姿调整模型对目标位姿、机器人的当前位姿信息以及目标空间中障碍物对应的障碍信息进行处理,由位姿调整模型输出针对机器人的控制指令,该控制指令包括机器人的位姿调整参数,比如移动步长、转动方向、转动角度等等。
[0052] 位姿调整模型是采用大量训练样本对神经网络进行训练得到的。每个训练样本包括目标位姿、机器人的当前位姿信息以及目标空间中障碍物对应的障碍信息,机器人的形状信息等等;每个训练样本标注有指定控制指令,机器人按照指定控制指令所携带的位姿调整参数可以使得自身调整至目标位姿。指定控制指令的标注过程可以人工完成,也可以根据历史位姿调整数据确定。机器人将训练样本输入待训练的神经网络,由神经网络输出控制指令,基于神经网络输出的控制指令与指定控制指令,对神经网络中各个隐藏层的参数进行调整,之后重复上述步骤,直至神经网络输出的控制指令与指定控制指令之间的误差小于预设误差,或者,神经网络的各个隐藏层的参数的调整次数大于预设次数,最后一次参数调整后得到的神经网络也即是位姿调整模型。上述预设误差以及预设次数均可以根据位姿调整模型的精度要求设定,比如,位姿调整模型的精度要求越高,预设误差可以设置得较小,预设次数可以设置得较大。在本申请实施例中,机器人在进入目标空间后,可以基于自身的当前位姿信息以及目标空间中障碍物对应的障碍信息进行位姿调整,以使得机器人的第一部位能够朝向目标空间中的目标对象,比如机器人在进入电梯后,基于自身的当前位姿信息以及目标空间中障碍物对应的障碍信息进行位姿调整,以使得机器人的头部能够朝向电梯楼层按键、电梯门等。位姿调整的具体实现方式将在下文实施例进行阐述。一方面,机器人的第一部位设有较多的传感器,使其第一部位朝向目标空间中目标对象,机器人可以获取更为丰富的环境信息,有利于机器人感知周围环境,这样,机器人可以实现更准确的位姿调整;另一方面,机器人在狭窄空间内能够自主调整位姿,无需倒退走出狭窄空间,从而提高机器人的仿生性能。
[0053] 在一些实施例中,位姿调整指令可以由机器人自动触发。该过程具体包括:获取机器人的周围环境对应的环境地图,以及机器人的移动路径;基于环境地图识别机器人的周围环境中的目标空间;响应于机器人基于移动路径进入目标空间,生成位姿调整指令。
[0054] 可选地,机器人通过传感单元获取机器人的周围环境对应的环境地图。具体地,机器人通过摄像头拍摄机器人的周围环境对应的环境图像,或者通过雷达组件(包括激光雷达、超声波雷达、毫米波雷达)或者双目相机等探测机器人的周围环境中的物体(比如墙壁、门、绿植、电梯等等)与机器人的相对位置关系(包括相对距离、相对角度等等),基于上述环境图像、机器人的周围环境中的物体与机器人的相对位置关系可以构建出机器人的周围环境对应的环境地图。或者,机器人先通过雷达组件获取自身的周围环境中的标记物,之后向云端发送局部地图加载请求,云端基于该局部地图加载请求从全局地图中获取与标记物匹配的局部地图,作为机器人的周围环境对应的环境地图,并向机器人返回上述环境地图。上述标记物可以是预先设置的,且位置始终不变的物体,其可以是环境结构,比如目标空间的门。局部地图加载请求用于请求获取包括标记物在内的局部地图,局部地图加载请求可以携带标记物的语义信息。在其他可能的实施例中,机器人还可以获取全局地图,该全局地图可以是机器人的日常工作场所的完整地图,本申请实施例对此不作限定。机器人在获取到环境地图后,可以基于环境地图中的环境语义信息来识别周围环境中的目标空间。
[0055] 可选地,机器人通过路径规划模块获取移动路径。机器人在获取路径终点之后,通过路径规划模块来制定机器人的移动路径。
[0056] 机器人可以基于移动路径在环境中进行移动,当机器人在确定出自身的当前位置属于目标空间对应的位置范围的情况下,确定自身进入目标空间。或者,机器人在确定出自身与目标空间的侧壁之间的距离小于预设距离的情况下,确定自身进入目标空间。
[0057] 在一些实施例中,机器人可以在进入目标空间后立刻生成位姿调整指令,也可以在进入目标空间后的预设时长生成位姿调整指令,也可以在进入目标空间并执行目标指令后生成位姿调整指令,本申请实施例对此不作限定。在一些实施例中,机器人在进入目标空间后,基于预先配置的目标空间与目标对象之间的对应关系获取该目标空间的目标对象,在获取到目标对象后生成位姿调整指令。上述预先配置的目标空间与目标对象之间的对应关系可以根据实验或经验设定,比如目标空间为杂物间,目标对象为门;再比如,目标空间为电梯,目标对象为电梯按键。预设时长和目标指令均可以根据实际场景设定,本申请实施例对此不作限定。示例性地,机器人获取到的目标指令为到杂物间拿取物品,那么机器人在进入杂物间后先执行物品的拿取操作,然后获取位姿调整指令。
[0058] 在该实施例中,机器人在判断出自身进入目标空间后,生成位姿调整指令,后续机器人基于位姿调整指令自主调整位姿,从而提高机器人的仿生性能。
[0059] 在另一些实施例中,位姿调整指令也可以由用户触发。可选地,用户在确定机器人进入目标空间且存在位姿调整需求后,触发机器人生成位姿调整指令。在一些实施例中,用户针对机器人的触控面板执行指定操作,触控面板基于该指定操作生成并向处理器发送电信号,该电信号也即处理器获取到的位姿调整指令。上述指定操作可以是机器人的开发过程中设定的,比如滑动操作。在另一些实施例中,用户向机器人发出语音指令,机器人在识别出该语音指令后生成位姿调整指令。用户在机器人的控制设备上触发位姿调整指令,之后该控制设备向机器人发送上述位姿调整指令。上述控制设备与机器人之间建立有无线通信连接,比如蓝牙连接、红外连接等。上述控制设备可以是遥控器,也可以是移动终端等等。
[0060] 在一些实施例中,当机器人进行位姿调整时,控制其发出位姿调整提示信息。位姿调整提示信息用于提示机器人正在进行位姿调整,用户或周围的人等可以基于该位姿调整提示信息进行避让操作,以避免在机器人的位姿调整过程中发生碰撞。位姿调整提示信息例如可以是“位姿调整中,请注意”等提示语音,也可以是发光、发声等其他提示信息,本申请实施例对此不作限定。可选地,机器人设有发声部件,比如扬声器,机器人通过上述发声部件发出位姿调整提示信息。
[0061] 在一些实施例中,机器人还可以确定目标空间的空间状态,若目标空间的空间状态为开放状态,则控制机器人基于目标位姿离开目标空间。
[0062] 目标空间的空间状态可以根据其出入口的开放状态确定,在其出入口关闭的情况下,目标空间的空间状态为关闭状态,在其出入口打开的情况下,目标空间的空间状态为开放状态。可选地,机器人通过摄像头对目标空间的出入口进行拍摄,得到出入口图片,然后对出入口图片进行识别,以判断目标空间的出入口打开或关闭,进而确定目标空间的空间状态。可选地,机器人通过雷达组件采集点云数据,基于点云数据来判断目标空间的出入口打开或关闭,进而确定目标空间的空间状态。
[0063] 在目标对象为目标空间的出入口(比如电梯门、杂物间的门)的情况下,机器人沿着目标朝向前进,以离开目标空间;在目标对象不为目标空间的出入口,机器人先将目标朝向改变为指定朝向,并沿着指定朝向前进,以离开目标空间。指定朝向是指机器人的第一部位朝向目标空间的出入口。
[0064] 在其他一些实施例中,机器人在确定目标空间的空间状态为开放状态的情况下,可以检测是否满足离开条件,在满足离开条件的情况下,控制机器人基于目标位姿离开目标空间。可选地,离开条件是获取到用户的指令,该指令可以是针对机器人的指定区域的触发信号所产生的指令,也可以是语音指令。可选地,离开条件是基于机器人的规划路径的终点确定的,比如,机器人的规划路径的终点位于5楼,则机器人在确定自身处于5楼的情况下,基于目标位姿离开目标空间。通过上述方式,可以实现对机器人的行走路径的更准确的控制,避免机器人发生行走错误的情况发生。
[0065] 综上所述,本申请实施例提供的技术方案,机器人在获取到位姿调整指令后,获取自身的当前位姿信息以及目标空间内障碍物对应的障碍信息,之后基于上述当前位姿信息、目标空间内障碍物对应的障碍信息以及目标位姿进行位姿调整,以使得机器人的第一部位能够朝向目标空间内的目标对象,比如使得机器人的头部朝向电梯门、电梯楼层按键等等,使得机器人在狭窄空间内能够自主调整位姿,无需倒退走出狭窄空间,由于机器人正向上的环境采集设备更丰富,能够采集到更丰富的环境信息,机器人基于更丰富的环境信息来调整自身位姿,从而使得机器人能更准确地进行位姿调整。
[0066] 在基于图3所示实施例提供的可选实施例中,S303可以替换为S403‑S405。请参考图4,其示出本申请一个实施例提供的机器人控制方法的流程图。该方法包括如下过程。
[0067] S401,获取位姿调整指令,确定位姿调整指令所指示的目标位姿。
[0068] 位姿调整指令用于指示机器人在目标空间内调整位姿,目标位姿至少包括目标朝向,目标朝向为机器人的第一部位朝向目标空间中的目标对象。
[0069] S402,获取机器人的当前位姿信息,以及目标空间中障碍物对应的障碍信息。
[0070] S403,根据目标空间中障碍物对应的障碍信息,确定机器人的可通行区域。
[0071] 机器人的可通行区域表征允许机器人通行的区域。在机器人的可通行区域内,机器人不会与目标空间内障碍物发生碰撞。
[0072] 在一些实施例中,机器人生成目标空间的栅格地图,根据当前位置以及目标空间中障碍物对应的障碍信息在上述栅格地图上标记出机器人以及障碍物,基于上述栅格地图以及栅格地图上的标记信息确定机器人在不同方向上的最大通行距离,基于机器人在不同方向上的最大通行距离确定机器人的可通行区域。
[0073] 本申请实施例对不同方向的数量不作限定,比如4个、8个等等。在不同方向的数量包括4个的情况下,上述不同方向可以包括机器人的前方、后方、左方、右方等等。
[0074] 如果机器人在不同方向中第一方向存在障碍物,那么机器人在第一方向上的最大通行距离,可以是机器人与第一方向上的障碍物之间的距离,也可以为机器人与第一方向上的障碍物之间的最小距离减去第一差值。由于障碍物具有形状,因此其与机器人之间的距离通常存在多个。第一差值根据实验或经验设定,本申请实施例对此不作限定,比如,第一差值为5cm。这样,可以确保机器人在第一方向上通行时不会与障碍物发生碰撞。举例来说,机器人与其前方的障碍物之间的最小距离为58cm,那么机器人在前方的最大通行距离为58‑5=53cm。
[0075] 如果机器人在不同方向中第二方向不存在障碍物,那么机器人在第二方向上的最大通行距离,可以是机器人与第二方向上的障碍物之间的距离,也可以是机器人与第二方向上的目标空间边界之间的最小距离减去第二差值。由于机器人具有形状,因此其与第二方向上的目标空间边界之间的距离通常存在多个。第二差值和第一差值可以相同,也可以不相同。第二差值根据实验或经验设定,本申请实施例对此不作限定,比如,第二差值为2cm。这样,可以确保机器人在第二方向上通行时不会与目标空间边界发生碰撞。举例来说,机器人与其后方的目标空间边界之间的最小距离为23cm,那么机器人在前方的最大通行距离为23‑2=21cm。
[0076] 在其他一些实施例中,机器人在第一指定方向上执行多轮平移碰撞检测操作。具体的,在n轮平移碰撞检测过程中的第i轮平移碰撞检测过程中,机器人确定第i个候选位置,并基于目标空间中障碍物的障碍信息,检测机器人在第i个候选位置处是否与障碍物以及目标空间边界发生碰撞,如果机器人在第i个候选位置处与障碍物或者目标空间边界发生碰撞,则将第i‑1个候选位置与机器人的当前位置之间的差值确定为机器人在第一指定方向上的最大通行距离,如果机器人在第i个候选位置未与障碍物以及目标空间边界发生碰撞,则继续第i+1轮碰撞检测过程,直至确定出发生平移碰撞事件。第一指定方向是上述不同方向中任意一个方向。n为正整数。i为小于或等于n的正整数。第i个候选位置是指机器人在指定方向上平移(i*d)个单位后所处的位置,其中,d是每次平移操作的步长,其可以根据实际需求设定,比如d为10cm。
[0077] 机器人基于机器人在不同方向上的最大通行距离可以确定多个位置点,上述多个位置点围合而成的区域也即是机器人的可通行区域。
[0078] S404,基于目标位姿和机器人的当前位姿信息,检测可通行区域中是否包括目标调整区域。
[0079] 目标调整区域表征允许机器人通过旋转操作调整至目标位姿的区域。在本申请实施例中,通过检测可通行区域是否包括目标调整区域,检测可通行区域中是否包括目标调整区域的具体实现方式将在下文实施例进行阐述。
[0080] S405,当可通行区域中包括目标调整区域时,控制机器人在目标调整区域内进行位姿调整,以调整至目标位姿。
[0081] 在机器人通过一轮区域条件检测过程即确定出目标调整区域时,此时目标调整区域与机器人的当前位置重合时,机器人获取待旋转角度,然后以自身中心为原点,原地旋转上述待旋转角度,以实现调整至目标位姿。
[0082] 在机器人通过多轮区域条件检测过程即确定出目标调整区域时,此时目标调整区域与机器人的当前位置不重合时,机器人先平移至目标调整区域,然后在目标调整区域原地旋转上述待旋转角度,以实现调整至目标位姿。
[0083] 综上所述,本申请实施例提供的技术方案,先确定出机器人的可通行区域,然后在可通行区域中确定目标调整区域,并在目标调整区域进行位姿调整,以使得机器人在不与障碍物以及目标空间边界发生碰撞的前提下,通过简单的旋转操作以及平移操作中的前一项或全部两项调整至目标位姿。
[0084] 下面对检测可通行区域中是否包括目标调整区域的具体实现方式进行阐述。在基于图3所示实施例提供的可选实施例中,S404可以替换为S4041‑S4044。
[0085] 在一些实施例中,S404可以实现为如下子步骤S4041‑S4044。
[0086] S4041,获取机器人的轮廓信息。
[0087] 机器人的轮廓信息包括描述机器人的形状的至少一个轮廓点的三维坐标。上述至少一个轮廓点包括且不限于:机身主体上的轮廓点、腿部上的轮廓点、头部上的轮廓点、载物结构上的轮廓点、尾巴上的轮廓点等等。本申请实施例对轮廓点的数量不作限定。在上文实施例介绍了机器人的当前位置的确定过程,而机器人的机械结构的各项参数是生产过程中的已知条件,因此可以基于机器人的当前位置以及机器人的机械结构的各项参数确定至少一个轮廓点的三维坐标。
[0088] S4042,根据机器人的轮廓信息确定区域条件。
[0089] 区域条件表征允许机器人通过原地旋转操作调整至目标位姿需满足的条件。在一些实施例中,机器人根据自身的轮廓信息以及目标空间中障碍物的障碍信息确定第一最大旋转角度和第二最大旋转角度,获取机器人的第一待旋转角度以及第二待旋转角度;在第一最大旋转角度大于第一待旋转角度与预设角度阈值之和的情况下,或者,在第二最大旋转角度大于第二待旋转角度与预设角度阈值之和的情况下,确定符合区域条件;在第一最大旋转角度小于第一待旋转角度与预设角度阈值之和的情况下,以及,在第二最大旋转角度小于第二待旋转角度与预设角度阈值之和的情况下,确定不符合区域条件。预设角度阈值根据实验或经验设定,示例性地,预设角度阈值为10°。
[0090] 第一最大旋转角度是机器人以自身中心为圆心、在第一方向上的最大旋转角度。第一待旋转角度是指机器人以自身中心为圆心按照第一方向进行旋转操作,由当前朝向改变目标朝向需要旋转的角度。第二最大旋转角度是机器人以自身中心为圆心,在第二方向上的最大旋转角度。第二待旋转角度是指机器人以自身中心为圆心按照第二方向进行旋转操作,由当前朝向改变目标朝向需要旋转的角度。第一方向和第二方向相反。比如,第一方向为顺时针方向,第二方向为逆时针方向。
[0091] 示例性地,机器人沿着顺时针方向的最大旋转角度(也即第一最大旋转角度)为135°,机器人沿着顺时针方向由当前朝向改变至目标朝向需要旋转的角度(也即第一待旋转角度)为290°,机器人沿着逆时针方向的最大旋转角度(也即第二最大旋转角度)为90°,机器人沿着顺时针方向由当前朝向改变至目标朝向需要旋转的角度(也即第二待旋转角度)为70°,由于第二待旋转角度与预设角度阈值之和为80°,第二最大旋转角度大于上述第二待旋转角度与预设角度阈值之和,因此符合区域条件。
[0092] 在一些实施例中,第一最大旋转角度可以通过如下方式获取:基于目标空间中障碍物的障碍信息确定第一指定障碍物,将机器人的当前朝向与第一指定朝向之间的偏差确定为第一最大旋转角度。其中,第一指定障碍物是指机器人以自身中心为圆心,在第一方向上旋转时最先发生碰撞的障碍物。第一指定朝向是指机器人的第一部位朝向上述第一指定障碍物。其中,在无法确定出第一指定障碍物的情况下,第一最大旋转角度为360度。第二最大旋转角度可以通过如下方式获取:基于目标空间中障碍物的障碍信息确定第二指定障碍物,将机器人的当前朝向与第二指定朝向的偏差确定为第二最大旋转角度。其中,第二指定障碍物是指机器人以自身中心为圆心,在第二方向上旋转时最先发生碰撞的障碍物。第二指定朝向是指机器人的第一部位朝向上述第二指定障碍物。同样地,在无法确定出第一指定障碍物的情况下,第二最大旋转角度为360度。
[0093] 在其他可能的实施例中,机器人沿着第二指定方向上执行m轮旋转碰撞检测过程,在m轮旋转碰撞检测过程中的第k轮旋转碰撞检测过程中,机器人确定第k个候选朝向,并基于目标空间中障碍物的障碍信息,检测机器人在第k个候选朝向处是否与障碍物以及目标空间边界发生碰撞,如果机器人在第k个候选朝向处与障碍物或者目标空间边界发生碰撞,则将第k‑1个候选朝向与机器人的当前朝向之间的角度差值确定为机器人在第二指定方向上的最大旋转角度,如果机器人在第k个候选朝向未与障碍物以及目标空间边界发生碰撞,则继续第k+1轮旋转碰撞检测过程,直至检测出旋转碰撞事件或者候选朝向与机器人的当前朝向之间的角度偏差达到180°。第二指定方向可以是顺时针方向,也可以是逆时针方向。m为正整数。k为小于或等于m的正整数。第k个候选朝向是指机器人在第二指定方向上原地旋转 个单位后所处的位置,其中,是每次原地旋转操作的步长,其可以根据实际需求设定,比如 为10°。
[0094] 在本申请实施例中,机器人可以先获取第一最大旋转角度以及第一待旋转角度,在基于第一最大旋转角度以及第一待旋转角度判断出不符合区域条件的情况下,获取第二最大旋转角度以及第二待旋转角度并继续区域条件的判断步骤;机器人也可以先获取第二最大旋转角度和第二待旋转角度,在基于第二最大旋转角度和第二待旋转角度判断出不符合区域条件的情况下,获取第一最大旋转角度和第一待旋转角度并继续区域条件的判断步骤。本申请实施例对区域条件的判断时序不作限定。
[0095] S4043,当机器人的当前位置不符合区域条件时,基于目标位姿和机器人的当前位姿信息确定至少一个检测方向。
[0096] 可选地,机器人将当前朝向和目标朝向之间的任意一个朝向确定为检测方向。具体地,机器人可以获取机器人沿着第三指定方向旋转预设角度后的方向,作为检测方向。第三指定方向是机器人由当前朝向改变至目标朝向的旋转方向,第三指定方向可以是顺时针方向或者逆时针方向。预设角度可以是根据实际需求设定。预设角度可以为多个,比如10°、20°、30°等等。
[0097] 当机器人的当前位置符合区域条件时,机器人执行原地旋转操作,以使得自身的当前朝向改变为目标朝向。
[0098] S4044,基于至少一个检测方向在可通行区域中进行区域检测,将可通行区域中符合区域条件的区域作为目标调整区域。
[0099] 机器人基于至少一个检测方向在可通行区域中进行区域检测,直至确定出可通行区域中符合区域条件的区域。具体检测方式可以参见S4042‑S4043,此处不作赘述。
[0100] 机器人在不能确定出目标调整区域的情况下,可以对机器人的当前位姿进行调整,然后基于调整后的位姿检测机器人的可通行区域内是否存在目标调整区域,这样,即使目标空间内的障碍物较多,机器人也能将自身位姿调整至目标位姿,从而使得机器人能够更准确地进行位姿调整。下面对该情况进行阐述。
[0101] 在基于图3所示实施例提供的可选实施例中,S303可以替换为S503‑S506。请参考图5,其示出本申请一个实施例提供的机器人控制方法的流程图。该方法包括如下过程。
[0102] S501,获取位姿调整指令,确定位姿调整指令所指示的目标位姿。
[0103] 位姿调整指令用于指示机器人在目标空间内调整位姿,目标位姿至少包括目标朝向,目标朝向为机器人的第一部位朝向目标空间中的目标对象。
[0104] S502,获取机器人的当前位姿信息,以及目标空间中障碍物对应的障碍信息。
[0105] S503,根据目标空间中障碍物对应的障碍信息,确定机器人的可通行区域。
[0106] S504,基于目标位姿和机器人的当前位姿信息,检测可通行区域中是否包括目标调整区域。
[0107] S505,当可通行区域中不包括目标调整区域时,根据目标位姿和机器人的当前位姿信息,确定机器人对应的子目标位姿。
[0108] 子目标位姿包括子目标朝向。可选地,子目标位姿还包括子目标位置。
[0109] 在一些实施例中,S505可以实现为如下过程:根据目标位姿和机器人的当前位姿信息,确定机器人的位姿向量;基于位姿向量,计算机器人对应的目标向量,根据目标向量的方向确定机器人的子目标朝向,基于子目标朝向进行碰撞检测,如果机器人在子目标朝向处未与目标空间中障碍物发生碰撞,则控制机器人调整至目标朝向,如果机器人在子目标朝向处与目标空间中障碍物发生碰撞,则对子目标朝向进行更新,直至找到没有与目标空间中障碍物发生碰撞的子目标朝向。
[0110] S506,根据目标空间中障碍物对应的障碍信息和子目标位姿,控制机器人进行位姿调整,并重复基于目标位姿和机器人的当前位姿信息,检测可通行区域中是否包括目标调整区域的步骤,直到满足位姿调整条件。
[0111] 在一些实施例中,位姿调整条件是指确定出机器人的可通行区域中存在目标调整区域。机器人先通过旋转操作和平移操作中的前一项或全部两项调整至子目标位姿,之后在子目标位姿处执行上述步骤S404,如果确定出目标调整区域,则在目标调整区域通过旋转操作和平移操作中的前一种或全部两种调整至目标位姿,如果没有,则继续执行S503‑S505,对子目标位姿进行更新,并基于更新后的子目标位姿进行下一轮检测。
[0112] 在另一些实施例中,位姿调整条件是指区域条件的检测次数大于预设次数。如果由于目标空间太过狭小,或者障碍物较多等原因,机器人多次调整位姿后依然无法确定出目标调整区域,则停止位姿调整过程,避免对机器人的资源造成浪费。
[0113] 综上所述,本申请实施例提供的技术方案,先确定机器人的子目标位姿,控制机器人先调整至上述子目标位姿,之后基于调整后的位姿检测机器人的可通行区域内是否存在目标调整区域,直至找到目标调整区域,这样,即使目标空间内的障碍物较多,机器人依然能够将自身位姿调整至目标位姿,使得机器人能更准确地进行位姿调整。
[0114] 下面对确定子目标位姿的具体实现方式进行阐述。在基于图5实施例提供的可选实施例中,S505可以包括如下子步骤S5051‑S5053。
[0115] S5051,根据目标位姿和机器人的当前位姿信息,确定机器人的位姿向量。
[0116] 机器人的位姿向量表征机器人的当前朝向与目标朝向的朝向角度差值。
[0117] 在一些实施例中,机器人通过如下步骤确定其位姿向量:基于机器人的当前位姿信息获取机器人的当前朝向;根据当前朝向和目标朝向,确定朝向角度差值;基于朝向角度差值确定机器人的位姿向量。
[0118] 位姿向量的大小与朝向角度差值呈正相关关系。也即,朝向角度越大,位姿向量的大小越大;朝向角度差值越小,位姿向量的大小越小。
[0119] 在一些实施例中,机器人的位姿向量可以通过如下第一计算式确定:
[0120]
[0121] 其中, 表征机器人的位姿向量;表示第一增益,其可以根据实验或经验设定,其为正数。 表示机器人的当前朝向与目标朝向之间的朝向角度差值。
[0122] 在本申请实施例中,机器人采用人工势场算法对上述朝向角度差值进行处理,得到机器人的位姿向量。该机器人的位姿向量可以称之为引力。
[0123] S5052,根据机器人的当前位姿信息和目标空间中障碍物对应的障碍信息,确定机器人的障碍向量。
[0124] 机器人的障碍向量用于表征机器人与障碍物之间的距离差值。在一些实施例中,机器人通过如下步骤确定其障碍向量:基于机器人的当前位姿信息获取机器人的当前位置;基于机器人的当前位置和目标空间中障碍物对应的障碍信息,确定距离差值;基于距离差值确定机器人的障碍向量。
[0125] 障碍向量的大小与距离差值呈负相关关系。也即,距离差值越大,障碍向量的大小越小;距离差值越小,障碍向量的差值越大。
[0126] 在一些实施例中,机器人的障碍向量可以通过如下第二计算式确定:
[0127]
[0128] 其中, 表征机器人的障碍向量; 为第二增益,其可以根据实际需求设定,为机器人与障碍物之间的距离差值; 为距离阈值。
[0129] 在目标空间中障碍物数量存在多个的情况下,上述机器人的障碍向量也存在多个。
[0130] 在本申请实施例中,机器人采用人工势场算法对上述距离差值进行处理,得到机器人的障碍向量。该机器人的障碍向量可以称之为斥力。
[0131] S5053,基于位姿向量和障碍向量,计算机器人对应的目标向量,根据目标向量的方向确定机器人的子目标朝向。
[0132] 机器人将位姿向量和障碍向量相加,得到机器人对应的目标向量。机器人获取目标向量的方向,在目标向量的方向上查找具有最大可旋转角度的位置点,该位置点也即是机器人的子目标位姿中的子目标位置,机器人在位置点旋转上述最大可旋转角度后的朝向也即是子目标朝向。
[0133] 图6是本申请一个实施例提供的机器人控制方法的流程图。该方法包括如下过程。
[0134] S601,根据机器人的当前位姿信息、轮廓信息以及目标空间内障碍物对应的障碍信息生成环境地图。
[0135] S602,计算机器人在前后左右四个方向上的可通行距离。
[0136] 机器人基于在前后左右四个方向上的可通行距离可以确定机器人的可通行区域。
[0137] S603,计算机器人在左右两个方向上的可旋转角度。
[0138] 本步骤也即上文实施例中确定第一最大旋转角度和第二最大旋转角度。
[0139] S604,检测机器人在左右两个方向上的可旋转角度是否大于机器人的朝向角度差值与预设角度阈值之差。
[0140] 朝向角度差值也即机器人的当前朝向与目标朝向之间的角度偏差。如果机器人在左右两个方向上的可旋转角度大于机器人的朝向角度差值与预设角度阈值之差,则执行S605,如果机器人在左右两个方向上的可旋转角度小于机器人的朝向角度差值与预设角度阈值之差,则执行S606。
[0141] 本步骤也即上文实施例中检测是否符合区域条件。
[0142] S605,控制机器人原地旋转,直至改变至目标朝向。
[0143] S606,在机器人的至少一个检测方向上,寻找原地旋转后可改变至目标朝向的第一位置点。
[0144] 本步骤也即上述实施例中基于至少一个检测方向在可通行区域中进行区域检测,将可通行区域中符合区域条件的区域作为目标调整区域。
[0145] S607,检测是否存在上述第一位置点。
[0146] 如果存在,执行S608,如果不存在,执行S609。
[0147] S608,控制机器人平移至上述第一位置点。
[0148] 机器人平移至第一位置点后,执行S605。
[0149] S609,根据环境地图,计算障碍物对机器人的斥力以及目标朝向对机器人的引力,基于引力和斥力计算合力。
[0150] 目标朝向对机器人的引力也即机器人的位姿向量。障碍物对机器人的斥力也即机器人的障碍向量。合力也即机器人的目标向量。
[0151] S610,在合力方向上,寻找具有最大可旋转角度的第二位置点。
[0152] 也即上文实施例中,根据目标向量的方向确定机器人的子目标朝向。
[0153] S611,先平移至上述第二位置点,在第二位置点旋转上述最大可旋转角度。
[0154] 机器人在S611之后从S606重新开始执行,直至满足位姿调整条件。
[0155] 结合参考图7,其示出本申请一个实施例提供的机器人位姿调整的场景示意图。在电梯710内,机器人100的当前朝向背离电梯门711,并且电梯710内存在多个障碍物730,机器人100在原地旋转会与障碍物730发生碰撞事件,此时机器人100通过人工势场算法将当前位姿更新至子目标位姿,机器人100在子目标位姿处可以在不与障碍物730发生碰撞的前提下,可以通过原地旋转操作以朝向电梯门711。
[0156] 图8是本申请实施例提供的机器人100的结构框图。机器人100包括:机身810;与机身810通信的控制系统820,控制系统820包括处理器821和与处理器821通信的存储器822,存储器822存储指令,指令在处理器821上被运行时使处理器821执行操作,操作包括:获取位姿调整指令,确定位姿调整指令所指示的目标位姿,位姿调整指令用于指示机器人在目标空间内调整位姿,目标位姿至少包括目标朝向,目标朝向为机器人的第一部位朝向目标空间中的目标对象;获取机器人的当前位姿信息,以及目标空间中障碍物对应的障碍信息;根据目标位姿、机器人的当前位姿信息以及目标空间中障碍物对应的障碍信息,控制机器人调整至目标位姿。
[0157] 在一些实施例中,根据目标位姿、机器人的当前位姿信息以及目标空间中障碍物对应的障碍信息,控制机器人调整至目标位姿,包括:根据目标空间中障碍物对应的障碍信息,确定机器人的可通行区域;基于目标位姿和机器人的当前位姿信息,检测可通行区域中是否包括目标调整区域;当可通行区域中包括目标调整区域时,控制机器人在目标调整区域内进行位姿调整,得到目标位姿。
[0158] 在一些实施例中,基于目标位姿和机器人的当前位姿信息,检测可通行区域中是否包括目标调整区域,包括:获取机器人的轮廓信息;根据机器人的轮廓信息确定区域条件;当机器人的当前位置不符合区域条件时,基于目标位姿和机器人的当前位姿信息确定至少一个检测方向;基于至少一个检测方向在可通行区域中进行区域检测,将可通行区域中符合区域条件的区域作为目标调整区域。
[0159] 在一些实施例中,根据目标位姿、机器人的当前位姿信息以及目标空间中障碍物对应的障碍信息,控制机器人调整至目标位姿,还包括:当可通行区域中不包括目标调整区域时,根据目标位姿和机器人的当前位姿信息,确定机器人对应的子目标位姿,子目标位姿包括子目标朝向;根据目标空间中障碍物对应的障碍信息和子目标位姿,控制机器人进行位姿调整,并重复基于目标位姿和机器人的当前位姿信息,检测可通行区域中是否包括目标调整区域的步骤,直到满足位姿调整条件。
[0160] 在一些实施例中,根据目标位姿和机器人的当前位姿信息,确定机器人对应的子目标位姿,包括:根据目标位姿和机器人的当前位姿信息,确定机器人的位姿向量;根据机器人的当前位姿信息和目标空间中障碍物对应的障碍信息,确定机器人的障碍向量;基于位姿向量和障碍向量,计算机器人对应的目标向量,将目标向量的方向作为机器人的子目标朝向。
[0161] 在一些实施例中,根据目标位姿和机器人的当前位姿信息,确定机器人的位姿向量,包括:基于机器人的当前位姿信息获取机器人的当前朝向;根据当前朝向和目标朝向,确定朝向角度差值;基于朝向角度差值确定机器人的位姿向量,位姿向量的大小与朝向角度差值呈正相关关系。
[0162] 在一些实施例中,根据机器人的当前位姿信息和目标空间中障碍物对应的障碍信息,确定机器人的障碍向量,包括:基于机器人的当前位姿信息获取机器人的当前位置;基于机器人的当前位置和目标空间中障碍物对应的障碍信息,确定距离差值;基于距离差值确定机器人的障碍向量,障碍向量的大小与距离差值呈负相关关系。
[0163] 在一些实施例中,获取位姿调整指令,包括:获取机器人的周围环境对应的环境地图,以及机器人的移动路径;基于环境地图识别机器人的周围环境中的目标空间;响应于机器人基于移动路径进入目标空间,生成位姿调整指令。
[0164] 在一些实施例中,操作还包括:当机器人进行位姿调整时,控制机器人发出位姿调整提示信息。
[0165] 在一些实施例中,操作还包括:确定目标空间的空间状态;在目标空间的空间状态为开放状态的情况下,控制机器人基于目标位姿离开目标空间。
[0166] 综上所述,本申请实施例提供的机器人,机器人在获取到位姿调整指令后,获取自身的当前位姿信息以及目标空间内障碍物对应的障碍信息,之后基于上述当前位姿信息、目标空间内障碍物对应的障碍信息以及目标位姿进行位姿调整,以使得机器人的第一部位能够朝向目标空间内的目标对象,使得机器人在狭窄空间内能够自主调整位姿,无需倒退走出狭窄空间,由于机器人正向上的环境采集设备更丰富,能够采集到更丰富的环境信息,机器人基于更丰富的环境信息来调整自身位姿,从而使得机器人能更准确地进行位姿调整。
[0167] 图9是本申请实施例提供的机器人控制装置的框图。该机器人控制装置包括:指令获取模块910、信息获取模块920以及位姿调整模块930。
[0168] 指令获取模块910,用于获取位姿调整指令,确定位姿调整指令所指示的目标位姿,位姿调整指令用于指示机器人在目标空间内调整位姿,目标位姿至少包括目标朝向,目标朝向为机器人的第一部位朝向目标空间中的目标对象。
[0169] 信息获取模块920,用于获取机器人的当前位姿信息,以及目标空间中障碍物对应的障碍信息。
[0170] 位姿调整模块930,用于根据目标位姿、机器人的当前位姿信息以及目标空间中障碍物对应的障碍信息,控制机器人调整至目标位姿。
[0171] 在一些实施例中,位姿调整模块930,用于根据目标空间中障碍物对应的障碍信息,确定机器人的可通行区域;基于目标位姿和机器人的当前位姿信息,检测可通行区域中是否包括目标调整区域;当可通行区域中包括目标调整区域时,控制机器人在目标调整区域内进行位姿调整,以调整至目标位姿。
[0172] 在一些实施例中,位姿调整模块930,用于获取机器人的轮廓信息;根据机器人的轮廓信息确定区域条件;当机器人的当前位置不符合区域条件时,基于目标位姿和机器人的当前位姿信息确定至少一个检测方向;基于至少一个检测方向在可通行区域中进行区域检测,将可通行区域中符合区域条件的区域作为目标调整区域。
[0173] 在一些实施例中,位姿调整模块930,用于当可通行区域中不包括目标调整区域时,根据目标位姿和机器人的当前位姿信息,确定机器人对应的子目标位姿,子目标位姿包括子目标朝向;根据目标空间中障碍物对应的障碍信息和子目标位姿,控制机器人进行位姿调整,并重复基于目标位姿和机器人的当前位姿信息,检测可通行区域中是否包括目标调整区域的步骤,直到满足位姿调整条件。
[0174] 在一些实施例中,位姿调整模块930,用于根据目标位姿和机器人的当前位姿信息,确定机器人的位姿向量;根据机器人的当前位姿信息和目标空间中障碍物对应的障碍信息,确定机器人的障碍向量;基于位姿向量和障碍向量,计算机器人对应的目标向量,将目标向量的方向作为机器人的子目标朝向。
[0175] 在一些实施例中,位姿调整模块930,用于基于机器人的当前位姿信息获取机器人的当前朝向;根据当前朝向和目标朝向,确定朝向角度差值;基于朝向角度差值确定机器人的位姿向量,位姿向量的大小与朝向角度差值呈正相关关系。
[0176] 在一些实施例中,位姿调整模块930,用于基于机器人的当前位姿信息获取机器人的当前位置;基于机器人的当前位置和目标空间中障碍物对应的障碍信息,确定距离差值;基于距离差值确定机器人的障碍向量,障碍向量的大小与距离差值呈负相关关系。
[0177] 在一些实施例中,指令接收模块910,用于获取机器人的周围环境对应的环境地图,以及机器人的移动路径;基于环境地图识别机器人的周围环境中的目标空间;响应于机器人基于移动路径进入目标空间,生成位姿调整指令。
[0178] 在一些实施例中,机器人控制装置还包括提醒模块(图中未示出)。提醒模块,用于当机器人进行位姿调整时,控制机器人发出位姿调整提示信息。
[0179] 在一些实施例中,机器人控制装置还包括行驶控制模块(图中未示出)。行驶控制模块,用于确定目标空间的空间状态;在目标空间的空间状态为开放状态的情况下,控制机器人基于目标位姿离开目标空间。
[0180] 综上所述,本申请实施例提供的机器人控制装置,在获取到位姿调整指令后,获取自身的当前位姿信息以及目标空间内障碍物对应的障碍信息,之后基于上述当前位姿信息、目标空间内障碍物对应的障碍信息以及目标位姿进行位姿调整,以使得机器人的第一部位能够朝向目标空间内的目标对象,比如使得机器人的头部朝向电梯门、电梯楼层按键等等,使得机器人在狭窄空间内能够自主调整位姿,无需倒退走出狭窄空间,从而提高机器人的仿生性能。
[0181] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0182] 在本申请所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。
[0183] 另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0184] 请参阅图10,其示出了本申请实施例还提供一种计算机可读存储介质1000,该计算机可读存储介质1000中存储有计算机程序指令1010,计算机程序指令1010可被处理器调用以执行上述实施例中所描述的方法。
[0185] 计算机可读存储介质1000可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质1000包括非易失性计算机可读存储介质(non‑transitory computer‑readable storage medium)。计算机可读存储介质1000具有执行上述方法中的任何方法步骤的计算机程序指令1010的存储空间。这些计算机程序指令1010可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。计算机程序指令1010可以以适当形式进行压缩。
[0186] 以上,仅是本申请的较佳示例而已,并非对本申请作任何形式上的限制,虽然本申请已以较佳示例揭示如上,然而并非用以限定本申请,任何本领域技术人员,在不脱离本申请技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效示例,但凡是未脱离本申请技术方案内容,依据本申请的技术实质对以上示例所作的任何简介修改、等同变化与修饰,均仍属于本申请技术方案的范围内。