具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
具体实现中,本申请实施例中描述的机器人具体为移动机器人,例如为:移动式服务机器人、移动式清洁机器人等等。
应理解,本实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。
参见图1,图1是本申请实施例提供的一种机器人的脱困方法的流程图一。如图1所示,一种机器人的脱困方法,该方法包括以下步骤:
步骤101,控制机器人对目标路段进行环境信息采集,并基于采集的环境信息构建环境地图。
目标路段可以是在机器人行进前确定好的路段,或者是在机器人行进过程中基于行进路况确定的路段。
在目标路段为在机器人行进前确定好的路段的情况下,目标路段具体为从规划路径中事先判断得到的机器人易被卡困的行进路段,其中规划路径为事先根据活动空间进行规划得到。具体地,该规划路径中事先判断得到的目标路段例如是包括有大概率被可移动障碍物占据的位置点的路段,或者为路径曲折度较高的路段。
例如,房间中茶几附近的行进路段,容易存在位置不固定的凳子,形成不确定的障碍区,在该路段中行走时机器人易被临时障碍物卡困。或者沙发转角、床底等区域中路径曲折度较高的路段,机器人易被卡困。
其中,更进一步地,该目标路段可以是规划路径中机器人被卡困次数超出设定阈值的路段。
具体地,可以是在检测到机器人被困时,记录机器人的被困路段及机器人在被困路段的被困次数;根据被困路段及被困次数,将规划路径中被困次数超出阈值的被困路段设置为目标路段。
在控制机器人沿规划路径行进时,可以实时获取机器人沿规划路径行进过程中的行进位置点;当检测到行进位置点位于目标路段的起点位置时,确定机器人行进至目标路段。
其中,该机器人可以是现有的圆形、或者为D形、三角形、方形机器人等,赋予其各种造型。可以设置的是,针对于圆形机器人而言,上述的目标路段的宽度不小于圆形机器人的直径;针对方形机器人而言,上述的目标路段的宽度大于方形机器人轮轴方向的边长且小于方形机器人对角线的长度,因此方形机器人在目标路段旋转会受到阻碍。
其中,该目标路段可以是狭长且前方或两侧容易受阻的通道,该通道的行进路径的两侧具有障碍物,且两侧具有障碍物的该行进路径的长度超出设定长度。目标路段也可以是其他机器人容易发生卡困的路段。
如图2所示,机器人上方安装有激光雷达,前方、侧方可以安装多个线激光雷达,顶部可以设置激光雷达。其中,线激光雷达发射水平倾斜向下的线激光,线激光发射出去可以与目标物之间产生交线,可检测到地面、前面和侧面的障碍物。
具体地,当机器人进入到狭长通道的过程中,机器人利用预设的传感器进行机身高度范围、宽度范围以内的关于环境中障碍物的局部栅格地图(或拓扑地图,或语义地图)的构建,得到目标路段中的环境地图。
更进一步地,该控制机器人对目标路段进行环境信息采集,并基于采集的环境信息构建环境地图,可以包括:
在检测到机器人行进至目标路段时,控制机器人中的测距传感器对周围障碍物进行空间信息检测;对检测到的障碍物的空间信息进行信息整合,得到障碍物在目标路段中的空间分布状态;根据该空间分布状态,构建环境地图。
其中,该些测距传感器包括但不限于:激光雷达传感器、图像采集传感器(例如深度相机)、红外传感器、超声波传感器等。
激光雷达传感器可以是线激光雷达传感器,将光路平面朝外发射,例如朝向地面发射可以检测到道路前方一定距离上的障碍物,通过光路平面与障碍物的外轮廓交线得到障碍物的轮廓线,进而获取得到障碍物的空间信息。
一个障碍物的空间信息可以是多维的,例如一个障碍物的高度信息、宽度信息、轮廓信息、位置信息等等。且目标路段中亦可能存在有多个障碍物。因此,需要对检测到的障碍物的空间信息进行信息整合,得到障碍物在目标路段中的空间分布状态。
该空间分布状态用于指示目标路段中所存在的障碍物的三维空间分布信息。
这里,该环境地图能够指示出障碍物在目标路段中的空间信息。环境地图中包含有障碍物在目标路段中的空间分布状态。
对环境地图的构建,可以是基于整合得到的障碍物的空间分布状态所对应的障碍物的三维空间参数实现地图构建。
步骤102,当检测到机器人在目标路段前进受阻时,基于环境地图确定退出方式。
其中,该退出方式包括:退出路径、退出时实施的行为等。
该退出方式可以为机器人在目标路段通过无碰撞方式退出。该步骤中,通过基于环境地图确定退出方式,可以实现不用采用碰撞式手段即可获取到受困路段的环境信息,进而实现无碰撞方式退出。
作为一可选的实施方式,该退出方式为机器人在目标路段通过无碰撞方式退出,包括:
确定机器人的前进或后退方向是否和机器人所在目标路段通行方向平行;如果机器人前进或后退方向和机器人所在目标路段通行方向平行,则执行前进或后退动作;如果机器人前进或后退方向和所述机器人所在目标路段通行方向不平行,则旋转到和目标路段通行方向平行后再执行前进或后退动作。
该过程中,实现对退出方式中机器人从目标路段退出时实施的行为的确定。具体实现对机器人被困时的当前行进方向进行判断及旋转调整,确保按照正确方向行进以脱困。
检测机器人在目标路段前进受阻可以是:检测到机器人旋转时自身和障碍物发生碰撞,确定机器人处于被困状态。或者,检测到机器人机身旋转半径范围内存在障碍物,确定机器人处于被困状态。或者,控制机器人按照预定角度旋转,将预定角度与检测到的机器人实际旋转角度进行比较,当检测到的实际旋转角度不同于预定角度时(此时确定机器人受到障碍物阻挡),确定机器人处于被困状态。旋转角度的检测可以通过机器人中设置的陀螺仪来实现。或者,基于机器人中设置的传感器检测出机器人在目标路段的前进方向上已经被障碍物包围,确定机器人处于被困状态。
检测机器人被困还可以是:当构建的环境地图为栅格地图时,通过栅格地图中检测目标路段中障碍物栅格是否和机器人外边缘出现干涉,如出现干涉,则认为机器人被困。具体地机器人的外边缘位置在栅格地图上的映射位置是确定的,栅格上的障碍物在栅格地图上的映射位置也是可以确定的,当检测到两者的位置出现重合,则可以确定出现干涉,确定机器人被困。
对应地,该检测机器人在目标路段前进受阻,包括:若检测到机器人在目标路段中前进时与障碍物产生碰撞,则确定机器人在目标路段前进受阻;或者,若机器人中的测距传感器的检测结果为检测到机器人在目标路段的行进路径内存在障碍物,则确定机器人在目标路段前进受阻;或者,检测到机器人行进至目标路段的目标位置时,控制机器人按照预设角度旋转,若检测到机器人的实际旋转角度与预设角度不同,则确定机器人在目标路段前进受阻。
其中,机器人与障碍物产生碰撞的检测可以是通过机器人中设置的碰撞传感器来实现。
该目标位置可以是目标路段中卡困次数发生最多的位置。或者,目标位置是目标路段的靠近路段终点的一个设定位置。或者,目标位置是在检测到目标路段的前方行进方向上存在疑似障碍物时的机器人的当前所在位置。
在检测到机器人在目标路段前进受阻时,则根据局部地图(即环境地图)中的障碍物信息规划出包括安全路径在内的退出方式以实现脱困。这样机器人可以直接利用已经构建好的环境地图实现退出方式规划,不需要利用机身和障碍物的碰撞实现环境信息采集来规划脱困路径,提高了脱困效率。
其中,退出方式中退出路径的规划方法可以是利用A*路径规划算法来实现。
不同地,当目标路段为狭长受阻通道时,可以具体结合前述描述的机器人上设置的线激光雷达来实现退出路径的规划。具体地,在通过机器人上的线激光雷达将线激光发射出去后,同时与该发射出去的线激光将对应生成点云信号。结合图3、图4所示,在机器人在狭长受阻通道的行进过程中,对退出路径的规划可以是,获取由两侧线激光雷达所发射线激光对应生成的点云信号发生变形的临界点,根据该临界点所在位置来确定退出路径。
其中,正常来说,若通过发射线激光直接全部射向地面进行测距,则为直线型的点云信号,而若该线激光有一部分光在发射到地面的同时有一部分射向目标路段的侧壁,则在地面和侧壁的交界位置激光点云会出现拐点,该拐点即为前述的临界点。
其中更具体地,在根据该临界点所在位置来确定退出路径时,可以是:分别对两侧的临界点的连线进行获取,进而获取该两侧的临界点的连线的中心线,将该中心线确定为前方受阻时的退出路径,控制机器人沿该中心线行进即可。其中,该中心线上的点与两侧的临界点的连线间的距离相等。
具体地,退出路径可以是直线、曲线、折线路径,或者为包含了直线、曲线及折线的后退路径。
进一步地,作为一可选的实施方式,其中基于环境地图及机器人的轮廓信息确定退出方式,包括:
若机器人的轮廓为圆形,机器人通过前行的方式退出目标路段;
若机器人的轮廓为方形或D形,机器人通过后退的方式退出目标路段。
在机器人轮廓为圆形时,当目标路段前方受阻,则可以对机器人进行行进方向调转,具体为控制机器人旋转实现调头,使得该行进方向调转后的机器人能够通过前进的方式退出目标路段,便于能够随时利用机器人本身集中设置于前端、侧边上的传感器实现环境信息的传感感知。其中,机器人在从目标路径中退出过程中,在调转方向之后,即可沿前述步骤过程中确定出的退出路径进行行进,实现脱困。
对应地,在机器人轮廓为方形或D形时,当目标路段前方受阻,为了避免机器人在狭长通道内旋转掉头被卡住,这里采用了控制机器人通过后退的方式退出目标路段。其中,机器人在从目标路径中退出过程中,直接沿前述步骤过程中确定出的退出路径后退即可,以实现脱困。
更具体地,在实施时,若机器人为圆形机器人,则控制机器人旋转或/和移动至与机器人所在目标路段平行的方向且机器人前进方向朝向目标路段出口方向,机器人通过前行的方式退出目标路段;若机器人为方形机器人或D形机器人,则控制机器人旋转至与机器人所在位置的目标路段平行的方向,机器人通过后退的方式退出目标路段。
进一步地,在当检测到机器人在目标路段前进受阻时,同时还可以发出求助语音或消息提示,以供使用者得知机器人被困。
步骤103,控制机器人在目标路段依照该退出方式退出。
具体地,当退出方式包括退出路径时,在控制机器人从目标路段依照退出路径行进时,存在一个路径切换的操作过程,需要将原始规划路径切换至该退出路径,实现控制机器人在目标路段沿退出路径行进以脱困。
进一步具体地,当机器人在目标路段依照退出方式退出时,还可以通过机器人上(上方、侧方)安装的物体检测器检测机身周边的障碍物,依据障碍物实时分布情况进行路线偏移调整,并按照调整后的退出路径行进,执行退出动作。
进一步地,作为一可选的实施方式,在控制机器人在目标路段沿脱困路径行进时,该方法还包括:
在检测到机器人脱离目标路段时,调整机器人的方向,控制机器人沿原始规划路径继续行驶。
该原始规划路径即为其他路段所属的预先规划好的规划路径。
在机器人脱困后,控制机器人调整方向,以避开该受阻挡的目标路段,继续正常作业。
本申请实施例中,通过控制机器人对目标路段进行环境信息采集,并基于采集的环境信息,构建环境地图,当检测到机器人在目标路段前进受阻时,基于环境地图确定退出方式,控制机器人在目标路段依照该退出方式退出,实现在依照规划路径正常行驶过程中,对局部路段进行环境信息采集,构建目标路段的环境地图,以能够在受困时基于事先构建的环境地图实现脱困方式规划并按照脱困方式进行脱困,而不需要通过碰撞等手段实现对受困路段环境信息的探测,提升脱困效率,提高机器人的工作效率和智能性。
本申请实施例中还提供了机器人的脱困方法的不同实施方式。
参见图3,图3是本申请实施例提供的一种机器人的脱困方法的流程图二。如图3所示,一种机器人的脱困方法,该方法包括以下步骤:
步骤301,控制机器人对目标路段进行环境信息采集,并基于采集的环境信息构建环境地图。
该步骤的实现过程与前述实施方式中的步骤101的实现过程相同,此处不再赘述。
步骤302,当检测到机器人在目标路段前进受阻时,获取机器人的轮廓信息。
该轮廓信息用于指示机器人的外形轮廓尺寸。
该轮廓信息的获取,用于在基于环境地图进行退出方式规划时作为信息参考,以能够确保规划出的退出方式中的退出路径的行进空间能够容纳机器人的形状尺寸,准确实现机器人脱困。
步骤303,基于环境地图及机器人的轮廓信息确定退出方式。
具体可以是,基于环境地图,获取障碍物在目标路段中的空间分布状态,基于该障碍物在目标路段中的空间分布状态及机器人的轮廓信息,确定退出路径及机器人在该退出路径中待执行的退出动作。
该退出动作,例如为旋转、调整方向、高度降低、折合形变等操作。
基于环境地图及机器人的轮廓信息规划的脱困路径,能够确保机器人依照该退出方式脱困时,不与目标路段中的障碍物产生干涉,确保成功脱困。
步骤304,控制机器人在目标路段依照该退出方式退出。
该步骤的实现过程与前述实施方式中的步骤103的实现过程相同,此处不再赘述。
本申请实施例中,通过控制机器人对目标路段进行环境信息采集,并基于采集的环境信息,构建环境地图,当检测到机器人在目标路段前进受阻时,获取机器人的轮廓信息,基于环境地图及机器人的轮廓信息确定退出方式,控制机器人在目标路段依照该退出方式退出,实现在依照规划路径正常行驶过程中,对局部路段进行环境信息采集,构建目标路段的环境地图,以能够在受困时基于事先构建的环境地图,同时结合机器人自身的轮廓,实现脱困方式规划并按照脱困方式进行脱困,而不需要通过碰撞等手段实现对受困路段环境信息的探测,提升脱困效率,提高机器人的工作效率和智能性。
参见图4,图4是本申请实施例提供的一种机器人的脱困装置的结构图,为了便于说明,仅示出了与本申请实施例相关的部分。
该机器人的脱困装置400包括:
地图构建模块401,用于控制机器人对目标路段进行环境信息采集,并基于采集的所述环境信息构建环境地图;
路径规划模块402,用于当检测到所述机器人在所述目标路段前进受阻时,基于所述环境地图确定退出方式;
控制模块403,用于控制所述机器人在所述目标路段依照所述退出方式退出。
其中,地图构建模块还用于:
获取所述机器人的轮廓信息;
基于所述环境地图及所述机器人的轮廓信息确定退出方式。
所述地图构建模块具体用于:
若所述机器人的轮廓为圆形,所述机器人通过前行的方式退出所述目标路段;
若所述机器人的轮廓为方形或D形,所述机器人通过后退的方式退出所述目标路段。
其中,所述退出方式为:所述机器人在所述目标路段通过无碰撞方式退出。
其中,所述路径规划模块402,具体用于:
确定所述机器人的前进或后退方向是否和机器人所在目标路段通行方向平行;
如果所述机器人前进或后退方向和所述机器人所在目标路段通行方向平行,则执行前进或后退动作;
如果所述机器人前进或后退方向和所述机器人所在目标路段通行方向不平行,则旋转到和目标路段通行方向平行后再执行前进或后退动作。
该装置还包括:
切换模块,用于在检测到所述机器人脱离所述目标路段时,调整所述机器人的方向,控制所述机器人沿原始规划路径继续行驶。
其中,路径规划模块还用于:
若检测到所述机器人在所述目标路段中前进时与障碍物产生碰撞,则确定所述机器人在所述目标路段前进受阻;
或者,若所述机器人中的测距传感器的检测结果为检测到所述机器人在所述目标路段的行进路径内存在障碍物,则确定所述机器人在所述目标路段前进受阻;
或者,检测到所述机器人行进至所述目标路段的目标位置时,控制所述机器人按照预设角度旋转,若检测到所述机器人的实际旋转角度与所述预设角度不同,则确定所述机器人在所述目标路段前进受阻。
本申请实施例提供的机器人的脱困装置能够实现上述机器人的脱困方法的实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
图5是本申请实施例提供的一种机器人的结构图。如该图所示,该实施例的机器人5包括:至少一个处理器50(图5中仅示出一个)、存储器51以及存储在所述存储器51中并可在所述至少一个处理器50上运行的计算机程序52,所述处理器50执行所述计算机程序52时实现上述任意各个方法实施例中的步骤。
所述机器人5可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述机器人5可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是机器人5的示例,并不构成对机器人5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述机器人还可以包括输入输出设备、网络接入设备、总线等。
所述处理器50可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器51可以是所述机器人5的内部存储单元,例如机器人5的硬盘或内存。所述存储器51也可以是所述机器人5的外部存储设备,例如所述机器人5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器51还可以既包括所述机器人5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机程序以及所述机器人所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/机器人和方法,可以通过其它的方式实现。例如,以上所描述的装置/机器人实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序产品来实现,当计算机程序产品在机器人上运行时,使得所述机器人执行时实现可实现上述各个方法实施例中的步骤。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。