CN115494834A - 机器人路径规划方法、装置及机器人 - Google Patents
机器人路径规划方法、装置及机器人 Download PDFInfo
- Publication number
- CN115494834A CN115494834A CN202210376169.1A CN202210376169A CN115494834A CN 115494834 A CN115494834 A CN 115494834A CN 202210376169 A CN202210376169 A CN 202210376169A CN 115494834 A CN115494834 A CN 115494834A
- Authority
- CN
- China
- Prior art keywords
- area
- robot
- map
- path
- information
- 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
- 238000000034 method Methods 0.000 title claims abstract description 81
- 230000004888 barrier function Effects 0.000 claims description 30
- 238000003860 storage Methods 0.000 claims description 21
- 238000013507 mapping Methods 0.000 claims description 15
- 238000010276 construction Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 11
- 230000003993 interaction Effects 0.000 claims description 5
- 239000003550 marker Substances 0.000 claims description 4
- 238000000151 deposition Methods 0.000 claims 2
- 238000005516 engineering process Methods 0.000 abstract description 7
- 101150064138 MAP1 gene Proteins 0.000 description 23
- 101100075995 Schizosaccharomyces pombe (strain 972 / ATCC 24843) fma2 gene Proteins 0.000 description 9
- 230000008447 perception Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 238000005259 measurement Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 101100400452 Caenorhabditis elegans map-2 gene Proteins 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000010408 sweeping Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000994 depressogenic effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005429 filling process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0242—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using non-visible light signals, e.g. IR or UV signals
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0246—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0255—Control of position or course in two dimensions specially adapted to land vehicles using acoustic signals, e.g. ultra-sonic singals
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/0274—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- General Physics & Mathematics (AREA)
- Aviation & Aerospace Engineering (AREA)
- Automation & Control Theory (AREA)
- Electromagnetism (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Acoustics & Sound (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Manipulator (AREA)
Abstract
本发明公开了一种机器人路径规划方法、装置及机器人。该方法包括:获取地图,其中,所述地图中绑定有预先确定的机器人作业范围的信息;从所述预定路线开始或者从预定位置开始,逐次在所述作业范围内规划路径,其中,每次规划的路径,为上一次作业路径向所述作业范围的未覆盖区域膨胀机器人作业覆盖宽度的预定值而形成的路径;在所述地图中规划完所有路径后,将规划后的所有路径发送至机器人的运动控制模块,以使所述运动控制模块控制机器人跟踪所述规划后的所有路径。采用本申请的路径规划方法,解决了相关技术中的区域覆盖规划方式,导致机器人稳定性不高且工作效率低下等问题,提高了机器人稳定性和工作效率。
Description
技术领域
本发明涉及人工智能领域,具体而言,涉及一种机器人路径规划方法、装置及机器人。
背景技术
在移动机器人路径规划中,区域覆盖路径规划在多种领域中都有被用到,例如:扫地机器人,消杀机器人,移动安防机器人,配送机器人,割草机器人,擦玻璃机器人,移动商务机器人,农业机器人,特种作业机器人,军工机器人等。
早期的移动机器人在做区域覆盖路径规划时,比较简单,通常由旋转行进和直线行进两个动作组成:当机器人遇到障碍物后,就旋转一定的角度,继续走直线,直到超出规定的时间。这种区域覆盖方式效率低,遗漏面积大,在早期的扫地机器人中比较常见。
随着惯性导航技术的应用,移动机器人具备了定位功能,区域覆盖规划有了新的方向,可以规划出避开已知障碍物的路径,例如,弓字(或称为之字)路径规划方式等。
然而,由于目前移动机器人的应用场景逐渐多元化,家居环境,公共办公环境,室外环境,需要应对的需求也日渐多样,上述区域覆盖规划方式已经不能满足需求。
相关技术中的区域覆盖规划方式,主要有以下几个方面问题:
1、弯道较多,且都是急转弯,导致机器人在转弯时具有较高的旋转速度。这对机器人的SLAM模块会产生不可忽视的影响。当机器人的体积,重量较大时,就会产生较大的惯性,带动负载产生较大的晃动,大大降低了机器人的稳定性。可以考虑通过降低机器人转弯时的速度改善以上情况,但这样又会引入频繁的加速和减速的问题,同时也会降低工作效率。
2、工作效率较低。相关技术中的区域覆盖规划方式,通常由直线组成,没有曲线,单条路径长度较短,且延展方向具有单向性(每次都只能向一个固定的方向延展,到尽头后就要停下来重新确立起点和方向)。
3、应用平台单一。相关技术中的区域覆盖规划方式,在以差速控制模型的机器人底盘上具有较好的适应性;在汽车控制模型的底盘上就会受机器人转弯半径的约束,致使清扫间距受限,降低工作效率。
因此,目前亟待提出一种新的区域覆盖规划路径方案,以解决上述问题,提高机器人的作业工作效率。
发明内容
本发明的主要目的在于公开了一种机器人路径规划方法、装置及机器人,以至少解决采用相关技术中的区域覆盖规划方式,导致机器人稳定性不高且工作效率低下等问题。
根据本发明的一个方面,提供了一种机器人路径规划方法。
根据本发明的机器人路径规划方法包括:获取地图,其中,所述地图中绑定有预先确定的机器人作业范围的信息;从所述预定路线开始或者从预定位置开始,逐次在所述作业范围内规划路径,其中,每次规划的路径,为上一次作业路径向所述作业范围的未覆盖区域膨胀机器人作业覆盖宽度的预定值而形成的路径;在所述地图中规划完所有路径后,将规划后的所有路径发送至机器人的运动控制模块,以使所述运动控制模块控制机器人跟踪所述规划后的所有路径。
根据本发明的另一方面,提供了一种机器人路径规划装置。
根据本发明的机器人路径规划装置包括:获取模块,用于获取地图,其中,所述地图中绑定有预先确定的机器人作业范围的信息;路径规划模块,用于从所述预定路线开始或者从预定位置开始,逐次在所述作业范围内规划路径,其中,每次规划的路径,为上一次作业路径向所述作业范围的未覆盖区域膨胀机器人作业覆盖宽度的预定值而形成的路径;发送模块,用于在所述地图中规划完所有路径后,将规划后的所有路径发送至机器人的运动控制模块,以使所述运动控制模块控制机器人跟踪所述规划后的所有路径。
根据本发明的又一方面,提供了一种机器人。
根据本发明的机器人包括:存储器及处理器,所述存储器,用于存储计算机执行指令;所述处理器,用于执行所述存储器存储的计算机执行指令,使得所述机器人执行如上述任一项所述的方法。
根据本发明,提出了一种新的区域覆盖规划路径方案,获取当前绑定有预先确定的机器人作业范围的信息的地图,从所述预定路线开始或者从预定位置开始,逐次在机器人作业范围内规划路径,将规划后的路径发送至机器人的运动控制模块,以使所述运动控制模块控制机器人跟踪所述规划后的路径。采用本申请的路径规划方法,解决了相关技术中的区域覆盖规划方式,导致机器人稳定性不高且工作效率低下等问题,提高了机器人稳定性和工作效率。
附图说明
图1是根据本发明实施例的机器人路径规划方法的流程图;
图2是根据本发明实施例的机器人路径规划装置的结构框图;
图3是根据本发明实施例的机器人的结构示意图。
具体实施方式
下面结合说明书附图对本发明的具体实现方式做一详细描述。
图1是根据本发明实施例的机器人路径规划方法的流程图。如图1所示,该机器人路径规划方法包括:
步骤S101:获取地图,其中,上述地图中绑定有预先确定的机器人作业范围的信息;
步骤S102:从上述预定路线开始或者从预定位置开始,逐次在上述作业范围内规划路径,其中,每次规划的路径,为上一次作业路径向上述作业范围的未覆盖区域膨胀机器人作业覆盖宽度的预定值而形成的路径;
步骤S103:在所述地图中规划完所有路径后,将规划后的所有路径发送至机器人的运动控制模块,以使上述运动控制模块控制机器人跟踪上述规划后的所有路径。
采用图1所示的方法,提出了一种新的区域覆盖规划路径方案,获取绑定有预先确定的机器人作业范围的信息的地图,从上述预定路线开始或者从预定位置开始,逐次在上述作业范围内规划路径,在规划好所有的路径后,将规划后的所有路径发送至机器人的运动控制模块,以使上述运动控制模块控制机器人跟踪上述规划后的路径。采用本申请的路径规划方法,解决了相关技术中的区域覆盖规划方式,导致机器人稳定性不高且工作效率低下等问题,提高了机器人稳定性和工作效率。
优选地,获取地图之前,还可以包括以下处理:基于参考点建立世界坐标系,并基于上述世界坐标系构建世界地图,其中,上述参考点包括:充电桩位置、初始化对象位置、机器人作业启动位置;基于上述世界坐标系和上述世界地图,构建栅格地图,其中,上述栅格地图包括:未知区域信息、障碍物区域信息、障碍物膨胀区域信息、空闲区域信息;确定机器人作业范围的信息。
在优选实施过程中,首先需要确定参考点,例如,可以通过以下方式确定参考点:
方式一:机器人从充电桩上启动,以充电桩上的红外信号点为参考点,机器人作业完成后再回到充电桩上充电/待机;具体实施过程中,充电桩附近不可放置干扰机器人移动的物体。
方式二:机器人以初始化对象(初始化对象可以为包含自然特征、固定特征等各类特征标识的物体,例如,平面标记板等。初始化对象标记物上的标识可以是apriltag,也可以是其他类型的标识,如ARTag,ARToolkit,aruco 等)位置作为起始点,如果机器人作业完成后如果无法找到充电桩,则可以返回至初始化对象附近。具体实施过程中,初始化对象附近也不可放置干扰机器人移动的物体。
方式三:机器人可以在任意位置启动作业,因此可以以机器人作业启动位置作为参考点,机器人工作过程中如果没有发现充电桩位置,机器人完成任务后可以返回至该机器人作业启动位置。
在优选实施过程中,可以基于上述世界坐标系和上述世界地图,构建栅格地图。其中,栅格地图是一个有序的数据阵列,是像素的集合,由很多小方块像素组成,各个像素之间互不影响,栅格地图分为二维(2D)栅格地图和三维(3D)栅格地图,3D栅格地图存储的数据量较多,比2D栅格地图需要更大的存储空间,数据访问时的效率相对较低,对于非空间移动机器人一般采用2D栅格地图,对于地面移动机器人来说,由于2D栅格地图已经满足需求,下面均以2D栅格地图为例进行说明。
栅格地图的存储形式包括但不限于以下几种:
第一种:节省存储空间的有:链式,游程,块状,四叉树等。缺点是随机读写效率较低。
第二种:读写效率较高的有:静态图。缺点是占有的存储空间大小固定,比较消耗存储资源。
第三种:兼顾存储和读写的方式:动态图。占有的存储空间随地图有效数据的大小变化,还是会浪费少部分存储资源,读写速度和静态图相等。
从机器人的角度出发,可以将地图中的空间属性划分为:未知(Unknown) 区域(机器人未到过的区域),障碍物区域(Obs,不可通过区域),障碍物膨胀区域(ObsExpand,非障碍物但不可通过区域),空闲区域(Free,机器人可以通过的区域),地图上的栅格值可以用来代表以上几类区域信息,有时还会在地图上标注其他特殊标记。例如,栅格值254表示障碍物区域,栅格值100代表障碍物膨胀区域,栅格值0代表空闲区域。
具体实施过程中,可以通过以下方式建图:
首先,获取建图的参考数据:机器人通过传感器感知外界信息,可以采用多传感器,包括:红外传感器、超声波传感器、碰撞传感器等,此类传感器可以在近距离检测障碍物;激光雷达,单目或者双目摄像头,结构光,TOF,这类传感器可以远距离检测障碍物;其中激光雷达和摄像头的检测范围相对较大,机器人在建图时一般主要参照这两种传感器的数据,根据机器人功能平台的差异,其他传感器的数据也可以用来建图。对于安全需求较高的机器人,可以在机器人不同部位安装多种传感器,确保传感器的检测范围可以覆盖机身,将各个传感器数据纵向映射到2D平面填充到栅格地图中;也可根据机器人机身高度,建立3D栅格地图,在使用时对3D栅格图降维处理,将3D 栅格地图压缩为2D栅格地图。
其次,执行数据填充操作,包括:先对传感器数据进行滤波降噪处理;从传感器得到的数据都是具有距离和方位的矢量数据,通过矢量数据栅格化处理后,就可以得到目标点(障碍物)相对于传感器的栅格坐标。将目标点的栅格坐标平移到机器人所在的栅格坐标后,就可以得到目标点相对于地图原点的栅格坐标。将地图中目标点的栅格属性置为障碍物区域,将障碍物周围的非障碍物区域置为膨胀区域,将目标点到机器人所在的栅格坐标之间的非膨胀区域置为空闲区域。对于误差而言,栅格地图的误差包含两种:传感器的测量误差和栅格化自身的误差。误差的大小取决于传感器的精度和栅格地图的分辨率,传感器测量精度越高,地图分辨率就越高,地图所反馈的信息误差越小,但地图的数据量越大,在做决策时所消耗的时间越长。一般情况下,传感器的精度是固定的,无法改变;地图的分辨率是可以根据实际需求设定的,但一般不会高于传感器的测量误差。结合多传感器数据填充后的栅格地图,该栅格地图包括:未知区域、障碍物区域、障碍物膨胀区域、空闲区域。
通常情况下,由于不同的机器人平台,对地图的需求是多样的,对于建好的地图,还需要执行地图优化修正。优化修正的方式包括但不限于:降噪,平滑,拉直,地图方向校正等处理。
优选地,基于参考点建立世界坐标系,并基于上述世界坐标系构建世界地图包括以下至少之一:响应用户操控机器人在目标区域内移动的操作,直至完成上述世界地图的构建;当上述机器人在上述目标区域内自主移动建图,直至完成上述世界地图的构建;当上述机器人跟踪预设特定标识或者移动物体移动建图,直至完成上述世界地图的构建;响应云端操作,当一个或多个上述机器人在上述目标区域内移动时建图,直至完成上述世界地图的构建。即,可以采用上述的任意一种方式,或者任意两种方式的组合,或者任意两种方式的组合,或者上述四种方式的组合,来实现基于参考点建立世界坐标系,并基于上述世界坐标系构建世界地图。
在优选实施过程中,可以采用以下至少之一的方式执行机器人建图操作:
1、响应用户操控机器人在目标区域内移动的操作,直至完成上述世界地图的构建;例如,使用遥控、手柄、直接推动等方式,让机器人在目标区域内移动,直到完成建图。或者,由机器人跟踪指定目标(例如,用户)完成对工作环境的扫描建图,适用于人机混合作业,跨种类机器人混合作业的场景。
2、机器人自主建图的方式:机器人在目标区域内自主移动,直到完成建图。具体包括以下处理:(1)机器人启动;(2)机器人对周围环境进行扫描;(3)机器人在最近的未知区域附近找一个目标点;(4)机器人通过导航到达目标点,然后回到步骤(2)继续执行;(5)直到在步骤(3)找不到目标点,完成建图。
3、目标物体引导:在机器人的工作场景中放置具有指向性的特定标识(例如,二维码等等),或者为机器人设定特定物体特征(例如,平面标记板等等),机器人会跟踪上述标识或特征对周围环境进行扫描建图。
4、云端控制:当一个或多个上述机器人在上述目标区域内移动时建图,通过云端对机器人进行远程/集中控制。可以实现对机器人的集群管理,适用于大型场地多机协同作业建图的场景。
需要说明的是,上述几种方式可以使用其中任意一种,任意两种的组合,任意三种的组合,以及四种方式相结合来建图。
其中,上述建图内容可以是不同机器人依据具体工作环境和用途,在建图时需要扫描记录、以备使用的多种信息。例如:机器人轨迹信息、场景障碍物信息、机器人业务操作信息、环境特征信息、语义识别信息、跌落信息等。
优选地,确定机器人作业范围的信息可以包括以下至少之一:
响应用户操控机器人移动的操作,将上述机器人的移动轨迹对应的栅格围成的范围作为上述作业范围;
响应用户通过人机交互界面对地图的设置操作,将用户设置的路线围成的范围作为上述作业范围;
在上述机器人在上述目标区域内自主移动完成上述栅格地图的构建之后,在上述栅格地图中查找与起始点相连的空闲区域,并将上述空闲区域的位置信息保存到第一列表中;遍历上述第一列表,将上述第一列表中的位置信息对应的位置向非空闲区域进行N层膨胀,并将第N层的栅格确定为机器人作业范围的最外层栅格,遍历上述栅格地图,将全部上述最外层栅格的位置信息存储至第二列表中,其中,上述N为边界深度,N由定位误差、建图误差、机器人关联信息确定;
上述机器人根据预定标记物或者预定特征信息,在上述栅格地图中划定上述作业范围。
即,可以采用上述其中的任一种方式、也可以采用上述其中的任两种方式的组合、也可以采用上述其中的任三种方式的组合、或者采用四种方式的组合,来确定机器人作业范围。
在优选实施过程中,在执行本发明实施例提供的技术方案时,需要先获取地图(例如,栅格地图)。如果当前没有已经构建好的地图,则获取地图的方式包括:采用上述建图方式构建地图。当然,如果当前已经有构建好的地图,则获取地图的方式包括:直接导入已经构建的地图。即机器人不需重新建图,可以直接使用已经构建的地图。例如,在一个场景中有多个机器人,只需其中一个机器人建图,其他机器人均可以共享该地图数据;或者,同一个机器人需要在多个场景中工作,机器人在一个场景中完成建图后就可以把地图存储下来,以备下次使用。此外,多机集群工作时,各个机器人可以相互分享地图;也可将每个机器人所建的地图上传至云端,在云端后台对上传的多张地图进行合并,然后将合并后的地图再分发给机器人集群。
并且,机器人一般都是在有限的空间范围内工作,要为机器人划定作业范围,即,上述地图中绑定的预先确定的机器人作业范围的信息。具体地,可以采用以下至少之一的方式确定机器人作业范围的信息:
方式一:响应用户操控机器人移动的操作,将上述机器人的移动轨迹对应的栅格围成的范围作为上述作业范围;例如,由用户使用遥控器操控机器人沿指定路线行进,以机器人的轨迹对应的栅格围成的范围作为上述作业范围,机器人在以后的工作过程中,不允许超出轨迹对应的栅格。这种方式划出的范围具有一定的局限性,有些机器人无法进入的区域就不能被纳入到机器人的工作范围内。
方式二:响应用户通过人机交互界面对地图的设置操作,将用户设置的路线围成的范围作为上述作业范围;例如,机器人在已知封闭区域内完成自主建图后,通过人机交互界面,在地图上手动划定作业范围。这种方式可以灵活地划定作业范围。
方式三:机器人在已知封闭区域内完成自主建图后,自主确定作业范围。划出的范围较为全面,可以最大限度的划定机器人的工作范围。具体包括以下步骤:
步骤1:采用上述建图方式自主建图,完成栅格地图(下文以WorldMap 表示)的构建。
步骤2:自主确定作业范围:
(1)在WorldMap中查找机器人可以到达的区域,并存储到ilist中。
(2)确定边界深度N(栅格数)。其中,N1是建图最大误差和机器人定位最大误差的和;N2是机器人的机身半径;N3是机器人的控制误差。N 的值可以通过以下方式确定:将N1,N2,N3的和转为栅格数量并加1。
(3)遍历ilist1,将ilist1中的坐标向非空闲区域(非Free区域)进行N 层膨胀,并将第N层的栅格值标记为FlgSide1。
(4)遍历WorldMap,将FlgSide1的栅格坐标存储到tlist1中。Tlist1中的数据即上述作业范围的最外层数据。
方式四:在机器人工作的环境中设置特殊标记,或者对机器人设定特定自然特征,机器人依据标记物或者预定特征信息,在上述栅格地图中划定上述作业范围。
需要说明的是,可以采用上述任一种方式、任两种方式的组合、任三种方式的组合、四种方式的组合,来确定机器人的作业范围。例如,在机器人完成自主建图并自主确定作业范围后,可以响应用户通过人机交互界面对地图的设置操作,对作业范围进行调整等。
优选地,在基于上述世界坐标系和上述世界地图,构建栅格地图之后,还可以包括以下至少之一:
响应用户禁区设置操作,在上述栅格地图中设置禁止上述机器人进入的禁区;
响应用户虚拟墙设置操作,在上述栅格地图设置禁止机器人通行的虚拟墙;
响应用户核心(重点)覆盖区域设置操作,在上述栅格地图中设置需要机器人实现作业全覆盖或者多次覆盖的区域;
响应用户忽略覆盖区域设置操作,在上述栅格地图中设置需要机器人通行,但无需实现覆盖的区域;
响应用户安全覆盖区域设置操作,在上述栅格地图中设置机器人通行时需要与障碍物保持预定安全距离的区域;即,机器人在该区域作业时不允许与障碍物靠的太近,要保持设定的安全距离。
响应用户对特定区域的设置操作,在上述栅格地图中按照区域属性信息设置特定区域。例如,地毯区,洼地区,凸起区,限高区,限宽区,限重区,静音区,干燥区,积水区,非平整路面区,阴暗区,强光区,静态物体区,动态物体区;机器人在通过这些区域时,会根据设定的区域属性对工作方式做出调整。
优选地,上述步骤S102中,从上述预定路线开始,逐次在上述作业范围内规划路径(第一种规划方式)可以包括以下处理:在规划第一条路径时,将上述栅格地图的信息导入第一新建地图中,其中,上述第一新建地图包括:上述边界信息外部的区域信息、障碍物及障碍物膨胀层区域信息、空闲区域信息、边界信息、未知区域信息;将当前作业已覆盖区域信息中能够导入上述第一新建地图中空闲区域的信息导入至上述第一新建地图中;遍历上述第一新建地图,将上述边界信息对应的位置信息存储至第三列表中;将与空闲区域相邻的当前作业已覆盖区域相邻的障碍物及障碍物膨胀层区域,以及与该障碍物及障碍物膨胀层区域相邻的障碍物及障碍物膨胀层区域的位置信息存储至上述第三列表中,在所述第一新建地图中将本步骤存储至所述第三列表中的位置信息对应的区域重置为障碍物标识区;将与空闲区域相邻的当前作业已覆盖区域相邻的M层栅格以内的空闲区域的位置信息存储到上述第三列表中,在所述第一新建地图中将本步骤存储至所述第三列表的位置信息对应的区域重置为空闲区域标识区,其中,上述M为机器人单次作业覆盖宽度的一半再加1;遍历上述第三列表,将上述第三列表中保存的位置信息对应的区域中与空闲区域、障碍物及障碍物膨胀层区域相邻的区域的位置信息保存至第四列表,并在上述第一新建地图中将上述第四列表保存的位置信息对应的栅格属性确定为目标路径点。
优选地,上述步骤S102中,从上述预定位置开始,逐次在上述作业范围内规划路径(第二种规划方式)可以进一步包括以下处理:在规划第一条路径时,将上述栅格地图的信息导入第一新建地图中,其中,上述第一新建地图包括:上述边界信息外部的区域信息、障碍物及障碍物膨胀层区域信息、空闲区域信息、边界信息、未知区域信息;将当前作业已覆盖区域信息中能够导入上述第一新建地图中空闲区域的信息导入至上述第一新建地图中;遍历上述第一新建地图,将上述预定位置相邻的M层栅格以内的空闲区域的位置信息存储到上述第三列表中,在所述第一新建地图中将本步骤存储至所述第三列表的位置信息对应的区域重置为空闲区域标识区,其中,上述M为机器人单次作业覆盖宽度的一半再加1;将与空闲区域相邻的当前作业已覆盖区域相邻的障碍物及障碍物膨胀层区域,以及与该障碍物及障碍物膨胀层区域相邻的障碍物及障碍物膨胀层区域的位置信息存储至上述第三列表中,在所述第一新建地图中将本步骤存储至所述第三列表中的位置信息对应的区域重置为障碍物标识区;将与空闲区域相邻的当前作业已覆盖区域相邻的M层栅格以内的空闲区域的位置信息存储到上述第三列表中;遍历上述第三列表,将上述第三列表中保存的位置信息对应的区域中与空闲区域、障碍物及障碍物膨胀层区域相邻的区域的位置信息保存至第四列表,并在上述第一新建地图中将上述第四列表保存的位置信息对应的栅格属性确定为目标路径点。
优选地,对于上述两种规划方式而言,在所述第一新建地图中将所述第四列表保存的位置信息对应的栅格属性确定为路径点之后,均需要进一步执行优化操作,删除不符合要求的路径点,因此,上述方法还可以包括:遍历上述第四列表,将上述第四列表存储的位置信息对应的栅格点中相邻有空闲区域标识区、障碍物标识区、障碍物及障碍物膨胀层区域、或者上述边界信息外部的区域的多个栅格点进行保留,删除上述第四列表存储的位置信息对应的栅格点中除上述多个栅格点之外的其他栅格点;遍历上述第四列表,删除上述第三列表和上述第四列表中栅格属性为路径点的孤点、端点和交叉点。将上述第一新建地图中栅格属性为路径点的所有栅格点确定为最终的目标路径点。
优选地,在确定目标路径点之后,需要执行相应的拆解操作,获取一条规划好的路径,并将该路径保存在列表中,在后续规划好所有路径后,将规划后的所有路径信息发送至运动控制模块,以使上述运动控制模块控制机器人跟踪上述规划后的路径。
对应于上述第一种路径规划方式,相应的拆解操作包括以下处理:在第一次查找拆解点时,在上述第一新建地图中搜索距离当前机器人所在位置最近的目标路径点作为拆解点,在非第一次查找拆解点时,在所述第一新建地图中搜索距离上一条路径的最后一个路径点位置最近的目标路径点作为拆解点;选择将上述拆解点相邻的两个栅格点中的一个点为起点,逐个搜索相邻的目标路径点,并对于搜索到的每个目标路径点,逐个存储到第五列表中;判断上述第五列表中目标路径点的存储顺序是否满足预定路径方向要求,如果不满足,则调整上述存储顺序;将所述第五列表中的目标路径点存放至第六列表中。
优选地,在将所述第五列表中的目标路径点存放至第六列表中之后,还可以包括以下处理:将所述第一新建地图中的空闲区域标识区重置为空闲区域,将所述第一新建地图中的障碍物标识区重置为障碍物区域,将所述第一新建地图中的栅格属性为路径点的区域重置为空闲区域;将当前得到的路径膨胀P层,并将膨胀后的信息中能够导入所述第一新建地图中空闲区域的信息导入至所述第一新建地图中,其中,所述P为机器人单次作业覆盖宽度的一半;返回至所述遍历所述第一新建地图,将所述边界信息对应的位置信息存储至第三列表中的步骤,循环执行该步骤及后续步骤,直至无法在所述第一新建地图中搜索到距离上一条路径的最后一个路径点位置最近的目标路径点;将所述第六列表中保存的全部路径,作为所述规划后的所有路径。
以下结合示例进一步描述上述优选实施方式。
针对第一种规划方式,即,从上述预定路线(例如,作业范围的最外层栅格)开始,逐次在上述作业范围内规划路径。前提是已经完成建图 (WorldMap),并完成边界的划分。栅格地图WorldMap中的信息包括:Obs (障碍物)信息,ObsExpand(障碍物膨胀层)信息,Unknown(未知)信息, Free(空闲)信息。新建记录当前作业覆盖信息的覆盖图CoverMap。
步骤1:将WorldMap的数据提取到临时地图map中,ObsExpand用Obs 代替;map1中包含的信息有:Outside,Obs,Cover,Free,Side,Unknown。再将边界信息填充到map1中,填充值为Side;将map1中作业范围以外的区域填充为Outside。
步骤2:将CoverMap中的覆盖信息填充到map1中,填充值为Cover,需要说明的是:只是将covermap中能够导入map1中空闲区域的信息导入至覆盖信息填充到map1中的空闲区域。
步骤3:遍历map1,将map1中的Side的坐标存储到ilist1中,将与Free 相邻的Cover的坐标存储到slist1中。
步骤4:遍历slist1,将slist1周围的Obs及与之相连的Obs的栅格坐标存储到ilist1中,并在map中将对应的Obs重置为FlgObs。
步骤5:遍历slist1,将slist1周围M层栅格以内的Free的栅格坐标存储到ilist1中。M的值是机器人单次覆盖宽度的一半再加1,例如,机器人单次覆盖宽度为10个栅格,则N的值为6。
步骤6:遍历ilist1,把map1里与之对应的栅格值重置为FlgFree。
步骤7:遍历ilist1,将ilist1中与Free和Obs相邻的栅格坐标记录到plist1 中,并将map1中与之相对应的栅格属性重置为Path。
步骤8:循环遍历plist1,从plist1和ilist1中删除栅格值为Path的孤点,端点,交叉点(当一个栅格值为Path的栅格邻域(例如,八邻域)内有多于 2个的栅格值为Path的栅格,该点就判定为交叉点)。
步骤9:将map1里栅格值为Path的点作为初步的目标路径点。
步骤10:如果是第一次查找拆解点,在map1中搜索距离机器人当前位置最近的栅格值为Path的点作为拆解点ps2,如果非第一次查找拆解点,在所述map1中搜索距离上一条路径的最后一个路径点位置最近的目标路径点作为拆解点;若找不到拆解点,则认为当前区域已经没有满足要求的覆盖路径。找不到ps2后需要进行补漏。
需要说明的是,由于从边界信息开始逐次向所述作业范围的未覆盖区域规划路径,在所述地图中规划完所有路径后,才会将规划后的所有路径发送至机器人的运动控制模块,以使所述运动控制模块控制机器人跟踪所述规划后的所有路径。因此,在规划路径完成之前,机器人的位置不会发生变化,路径规划过程中,对于第一条规划的路径,在寻找该路径的拆解点时,在上述第一新建地图中搜索距离当前机器人所在位置最近的目标路径点作为拆解点;对于除第一条路径之外的其他每条路径,在寻找该路径的拆解点时,是以上一次规划的路径的最后一个路径点作为参考点。
步骤11:确定路径:此时map1里栅格属性为Path的点相互之间都是八邻域单连接。将ps2点在map1里重置为Free,任取ps2周围两个点中的一个作为起点,搜索map1里的Path点并存储到pathlist1。
步骤12:调整路径方向:对pathlist1进行顺时针判断,如果与设定的方向相反,对pathlist1逆向排序即可。
步骤13:将pathlist1中的目标路径点存储到tlist1中。
步骤14:将map1里的的FlgFree重置为Free,FlgObs重置为Obs,Path 重置为Free。
步骤15:将当前得到的路径膨胀P层并填充到map1中,需要说明的是,填充过程中只覆盖栅格值为Free的栅格。其中,P为机器人单次作业覆盖宽度的一半,例如,机器人单次覆盖的宽度为10个栅格,则N的值为5。
步骤16:返回至步骤3,循环执行步骤3至步骤15,直至无法在map1 中搜索到距离上一条路径的最后一个路径点位置最近的目标路径点,则跳出循环。在跳出循环后,将tlist1中存储的所有路径点构成的路径,作为所述规划后的所有路径。
对应于上述第二种路径规划方式,相应的拆解操作包括以下处理:在第一次查找拆解点时,在所述第一新建地图中搜索距离所述预定位置最近的目标路径点作为拆解点,在非第一次查找拆解点时,在所述第一新建地图中搜索距离上一条路径的最后一个路径点位置最近的目标路径点作为拆解点;选择将所述拆解点相邻的两个栅格点中的一个点为起点,逐个搜索相邻的目标路径点,并对于搜索到的每个目标路径点,逐个存储到第五列表中;判断所述第五列表中目标路径点的存储顺序是否满足预定路径方向要求,如果不满足,则调整所述存储顺序;将所述第五列表中的目标路径点存放至第六列表中。
需要说明的是,由于从预定位置开始逐次在所述作业范围内规划路径,在所述地图中规划完所有路径后,才会将规划后的所有路径发送至机器人的运动控制模块,以使所述运动控制模块控制机器人跟踪所述规划后的所有路径。因此,在规划路径完成之前,机器人的位置不会发生变化,路径规划过程中,对于每条路径,在寻找该路径的拆解点时,是以上一次规划的路径的最后一个路径点作为参考点。
优选地,在将所述第五列表中的目标路径点存放至第六列表中之后,还可以包括以下处理:将所述第一新建地图中的空闲区域标识区重置为空闲区域,将所述第一新建地图中的障碍物标识区重置为障碍物区域,将所述第一新建地图中的栅格属性为路径点的区域重置为空闲区域;将当前得到的路径膨胀P层,并将膨胀后的信息中能够导入所述第一新建地图中空闲区域的信息导入至所述第一新建地图中,其中,所述P为机器人单次作业覆盖宽度的一半;返回至所述遍历所述第一新建地图,将所述预定位置相邻的M层栅格以内的空闲区域的位置信息存储到所述第三列表中的步骤,循环执行该步骤及后续步骤,直至无法在所述第一新建地图中搜索到距离上一条路径的最后一个路径点位置最近的目标路径点;将所述第六列表中保存的全部路径,作为所述规划后的所有路径。
针对第二种规划方式,即,从上述预定位置开始,逐次在上述作业范围内规划路径。与上述步骤不同的是,在规划第一条路径时,需要将上述步骤3 变更为:遍历map1,将预定位置ps1周围M层以内在的Free的栅格坐标存储到ilist1中。在规划非第一条路径时,则步骤3不作变更,即,遍历map1,将map1中的Side的坐标存储到ilist1中,将与Free相邻的Cover的坐标存储到slist1中;步骤10中,在第一次查找拆解点时,在所述第一新建地图中搜索距离所述预定位置最近的目标路径点作为拆解点,在非第一次查找拆解点时,在所述第一新建地图中搜索距离上一条路径的最后一个路径点位置最近的目标路径点作为拆解点。其他步骤参见上述示例,此处不再赘述。
优选地,上述方法还可以包括:将上述栅格地图的信息导入第二新建地图中,其中,上述第二新建地图包括:上述边界信息外部的区域信息、障碍物及障碍物膨胀层区域信息、空闲区域信息、边界信息、未知区域信息;将当前作业已覆盖区域信息中能够导入上述第二新建地图中空闲区域的信息导入至上述第二新建地图中;将上述第二新建地图中栅格属性为空闲区域进行标识,并重置为空闲标识区;统计上述第二新建地图中多个栅格点连在一起的空闲标识区的栅格点数量,将上述栅格点数量小于预定数量的空闲标识区的栅格属性重置为空闲区域;对上述第二新建地图中的空闲标识区的区域取特征点(例如,可以取对称区域的对称轴上的点作为特征点),并将特征点重置为路径点,将该路径点形成的至少一条路径的端点进行标识;搜索距离上述机器人当前位置最近的上述至少一条路径的端点作为起点,逐步搜索相邻的空闲标识区和路径点,将搜索到的栅格点区域进行保存,根据搜索到的栅格点区域确定与该起点相连的最长路径,并保存上述最长路径,判断上述搜索到的栅格点区域和/或上述最长路径是否满足预设条件,如果不满足,则循环执行此步骤,直至上述搜索到的栅格点区域和/或上述最长路径满足预设条件;将满足上述预设条件的栅格点区域和/或最长路径确定为机器人作业补漏区域,将上述补漏区域的信息发送至机器人的运动控制模块,以使上述运动控制模块控制机器人在上述补漏区域作业。
以下结合示例进一步描述上述优选实施方式。
在优选实施过程中,需要对无法生成路径的区域进行补漏。具体包括以下步骤:
步骤1:将栅格地图WorldMap中当前分区数据提取到临时地图map2中;将边界信息填充到map2中,将map2中作业范围以外的区域填充为Outside。
步骤2:将清扫覆盖地图CoverMap中当前分区对应的覆盖信息填充到 map2中,将covermap能够导入map2中空闲区域的信息导入至map2中;此时map2中包含的信息有:Outside,Obs,Cover,Free,Side,Unknown。
步骤3:将map2中栅格属性为Free的区域标记出来,重置为FlgFree。统计map2中每个连接成一片的FlgFree的数量,将小于n(最小补漏数量) 的整片栅格重置为Free。
步骤4:对map2中的FlgFree区域取特征点(例如,可以取对称区域的对称轴上的点作为特征点),并将特征点重置为路径点(path)。
步骤5:将当前map2中栅格属性为Path的栅格作为补漏路径点。
步骤6:标记每条路径点的端点。
步骤7:找到距离机器人当前位置最近的端点ps3。
步骤8:以ps3为起点,找到所有与之相连的FlgFree和Path点,存储到 slist2中;找到所有与之相连的路径点,并存储到tlist1中。此时就可得到一条补漏曲线路径。
步骤9:判断slist2和tlist1的数据,只要其中一个表格中的数据满足预定条件,就可以输出tlist1,否则,就将slis,2中的栅格属性都重置为Free,然后循环运行步骤7至步骤9,直到步骤9中的条件被满足,或者步骤7中找不到 ps3,则退出循环。
优选地,在机器人作业过程中,还可以包括以下至少之一处理:
对于同一区域内,不同时间点的空间信息发生变化时,上述运动控制模块控制上述机器人执行脱困决策处理,在上述机器人无法实现脱困的情况下,上述机器人执行异常申报处理;
对于不同区域内,相同时间点的空间信息发生变化时,上述机器人依据历史记录信息以及当前传感器的观测数据,执行相应决策处理。
在优选实施过程中,机器人决策规划的先决条件是感知,能感知,才能应对。机器人的智能化程度取决于感知能力。传感器探测,物联网数据共享,机器学***台都具备这些能力。当机器人遇到超出感知能力以外的情况,机器人就很难做出合理有效的应对了。
在同一地点,不同时间点的空间信息发生的改变,导致机器人的正常工作流程被打断,这种情况是无法做出合理的决策规划的。例如:机器人进入一个房间后,房间的门被关闭,机器人想要离开当前房间,但机器人无法知道门下一次开启的时间。房间的门在不同时间点的开关状态可能不同,机器人可以检测到门的开启或关闭,但机器人无法知道门在下一个时间节点的开关状态。如果要求机器人在房间内等待门开启,那么又会引入新的问题:机器人应该在房间内的什么位置等待;机器人在等待期间是否影响到房间内其他物体(例如其他机器人)的正常工作;机器人是否会被其他物体(例如其他机器人)当作障碍物;机器人等待期间是否需要变换位置;机器人是否能及时感知到门被打开,机器人如何获知需要等待的时间,在等待期间机器人电量不足如何处理等等问题,在没有合理应对方式实现脱困的情况下,机器人可以发出警报,等待人工介入,从而避免让机器人从时间维度上做决策规划。
在同一时间点,不同空间信息发生的改变,机器人的决策规划也具有一定的局限性。受传感器的探测范围的影响,机器人对空间环境的感知是受限的,只能检测局部环境的变化,对于超出机器人感知范围以外的环境变化,机器人只能依据历史信息做出决策规划。机器人在执行决策任务时,可以依据当前的感知信息,对决策规划做出实时调整。例如,规划出的路径上检测出新的障碍物,机器人可以尝试绕开障碍物,发现不能绕开时,则重新规划路径。
优选地,上述方法还包括:在机器人完成全部作业后(例如,覆盖路径无法再生成,且补漏路径也无法再生成,可以认为完成全部作业),对于上述机器人作业覆盖区域进行统计,得到机器人实际作业覆盖区域的面积,根据实际作业覆盖区域的面积与上述预先确定的机器人作业范围的面积,计算得到上述机器人的作业覆盖率。
优选地,上述方法还包括:在机器人完成全部作业时的位置,执行路径规划操作,规划得到上述机器人返回至充电桩位置、初始化对象位置、或者机器人作业启动位置的路径;上述机器人根据规划后的路径返回至充电桩位置、初始化对象位置、或者机器人作业启动位置,并将当前保存的地图信息、实际作业覆盖区域的面积信息、机器人作业关联信息(例如,机器人作业状态信息、作业时长信息、耗材信息等)发送至本地或者云端备份。
根据本发明实施例,还提供了一种机器人路径规划装置。
图2是根据本发明实施例的机器人路径规划装置的结构框图。如图2所示,该机器人路径规划装置包括:获取模块20,用于获取地图,其中,上述地图中绑定有预先确定的机器人作业范围的信息;路径规划模块22,用于从上述边界信息开始或者从预定位置开始,逐次向上述作业范围的内部规划路径,其中,每次规划的路径,为上一次作业路径向上述作业范围的未覆盖区域膨胀机器人作业覆盖宽度的预定值而形成的路径;发送模块24,用于在所述地图中规划完所有路径后,将规划后的所有路径发送至机器人的运动控制模块,以使上述运动控制模块控制机器人跟踪上述规划后的所有路径。
采用图2所示的装置,提出了一种新的区域覆盖规划路径方案,获取模块20获取绑定有预先确定的机器人作业范围的信息的地图,路径规划模块22 从上述边界信息开始或者从预定位置开始,逐次在上述作业范围内规划路径,发送模块24在路径规划模块规划好所有的路径后,将规划后的所有路径发送至机器人的运动控制模块,以使上述运动控制模块控制机器人跟踪上述规划后的所有路径。采用本申请的路径规划装置,解决了相关技术中的区域覆盖规划方式,导致机器人稳定性不高且工作效率低下等问题,提高了机器人稳定性和工作效率。
需要说明的是,上述装置中各模块,各单元的优选实施方式,可以参照图1的描述,此处不再赘述。
根据本发明实施例,还提供了一种机器人。
图3是根据本发明实施例的机器人的结构框图。如图3所示,根据本发明的机器人包括:存储器30及处理器32,上述存储器30,用于存储计算机执行指令;上述处理器32,用于执行上述存储器存储的计算机执行指令,使得上述机器人执行如上述实施例提供的机器人的路径规划方法。
处理器32可以为中央处理器(Central Processing Unit,CPU)。处理器 52还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器30作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的机器人重定位方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理。
存储器30可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器30可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述一个或者多个模块存储在上述存储器30中,当被上述处理器32执行时,执行如图1所示实施例中的机器人路径规划方法。
上述机器人的具体细节可以对应参阅图1所示的实施例中对应的相关描述和效果进行理解,此处不再赘述。
综上所述,借助本发明提供的上述实施方式,提出了一种新的区域覆盖规划路径方案,获取绑定有预先确定的机器人作业范围的信息的地图,从所述预定路线开始或者从预定位置开始,逐次在所述作业范围内规划路径,将规划后的路径发送至机器人的运动控制模块,以使所述运动控制模块控制机器人跟踪所述规划后的路径。本发明实施例提供的方案规划出的路线,平滑度较好,作业覆盖效率高,解决了相关技术中的区域覆盖规划方式,导致机器人稳定性不高且工作效率低下等问题,提高了机器人稳定性和工作效率。在规划出路径后,还设计了补漏方案,进一步增加了作业覆盖率,并且本方案不受机器人转弯半径的约束,可以适用于多种移动机器人平台。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (18)
1.一种机器人路径规划方法,其特征在于,包括:
获取地图,其中,所述地图中绑定有预先确定的机器人作业范围的信息;
从所述预定路线开始或者从预定位置开始,逐次在所述作业范围内规划路径,其中,每次规划的路径,为上一次作业路径向所述作业范围的未覆盖区域膨胀机器人作业覆盖宽度的预定值而形成的路径;
在所述地图中规划完所有路径后,将规划后的所有路径发送至机器人的运动控制模块,以使所述运动控制模块控制机器人跟踪所述规划后的所有路径。
2.根据权利要求1所述的方法,其特征在于,获取地图之前,还包括:
基于参考点建立世界坐标系,并基于所述世界坐标系构建世界地图,其中,所述参考点包括:充电桩位置、初始化对象位置、机器人作业启动位置;
基于所述世界坐标系和所述世界地图,构建栅格地图,其中,所述栅格地图包括:未知区域信息、障碍物区域信息、障碍物膨胀区域信息、空闲区域信息;
确定机器人作业范围的信息。
3.根据权利要求2所述的方法,其特征在于,基于参考点建立世界坐标系,并基于所述世界坐标系构建世界地图包括以下至少之一:
响应用户操控机器人在目标区域内移动的操作,直至完成所述世界地图的构建;
当所述机器人在所述目标区域内自主移动建图,直至完成所述世界地图的构建;
当所述机器人跟踪预设特定标识或者移动物体移动建图,直至完成所述世界地图的构建;
响应云端操作,当一个或多个所述机器人在所述目标区域内移动时建图,直至完成所述世界地图的构建。
4.根据权利要求2所述的方法,其特征在于,确定机器人作业范围的信息包括以下至少之一:
响应用户操控机器人移动的操作,将所述机器人的移动轨迹对应的栅格围成的范围作为所述作业范围;
响应用户通过人机交互界面对地图的设置操作,将用户设置的路线围成的范围作为所述作业范围;
在所述机器人在所述目标区域内自主移动完成所述栅格地图的构建之后,在所述栅格地图中查找与起始点相连的空闲区域,并将所述空闲区域的位置信息保存到第一列表中;遍历所述第一列表,将所述第一列表中的位置信息对应的位置向非空闲区域进行N层膨胀,并将第N层的栅格确定为机器人作业范围的最外层栅格,遍历所述栅格地图,将全部所述最外层栅格的位置信息存储至第二列表中,其中,所述N为边界深度,N由定位误差、建图误差、机器人关联信息确定;
所述机器人根据预定标记物或者预定特征信息,在所述栅格地图中划定所述作业范围。
5.根据权利要求2所述的方法,其特征在于,在基于所述世界坐标系和所述世界地图,构建栅格地图之后,还包括以下至少之一:
响应用户禁区设置操作,在所述栅格地图中设置禁止所述机器人进入的禁区;
响应用户虚拟墙设置操作,在所述栅格地图设置禁止机器人通行的虚拟墙;
响应用户核心覆盖区域设置操作,在所述栅格地图中设置需要机器人实现作业全覆盖或者多次覆盖的区域;
响应用户忽略覆盖区域设置操作,在所述栅格地图中设置需要机器人通行,但无需实现覆盖的区域;
响应用户安全覆盖区域设置操作,在所述栅格地图中设置机器人通行时需要与障碍物保持预定安全距离的区域;
响应用户对特定区域的设置操作,在所述栅格地图中按照区域属性信息设置特定区域。
6.根据权利要求1所述的方法,其特征在于,从所述预定路线开始,逐次在所述作业范围内规划路径包括:
在规划第一条路径时,将所述栅格地图的信息导入第一新建地图中,其中,所述第一新建地图包括:所述作业范围外部的区域信息、障碍物及障碍物膨胀层区域信息、空闲区域信息、边界信息、未知区域信息;
将当前作业已覆盖区域信息中能够导入所述第一新建地图中空闲区域的信息导入至所述第一新建地图中;
遍历所述第一新建地图,将所述边界信息对应的位置信息存储至第三列表中;
将与空闲区域相邻的当前作业已覆盖区域相邻的障碍物及障碍物膨胀层区域,以及与该障碍物及障碍物膨胀层区域相邻的障碍物及障碍物膨胀层区域的位置信息存储至所述第三列表中,在所述第一新建地图中将本步骤存储至所述第三列表中的位置信息对应的区域重置为障碍物标识区;
将与空闲区域相邻的当前作业已覆盖区域相邻的M层栅格以内的空闲区域的位置信息存储到所述第三列表中,在所述第一新建地图中将本步骤存储至所述第三列表的位置信息对应的区域重置为空闲区域标识区,其中,所述M为机器人单次作业覆盖宽度的一半再加1;
遍历所述第三列表,将所述第三列表中保存的位置信息对应的区域中与空闲区域、障碍物及障碍物膨胀层区域相邻的区域的位置信息保存至第四列表,并在所述第一新建地图中将所述第四列表保存的位置信息对应的栅格属性确定为路径点。
7.根据权利要求1所述的方法,其特征在于,从所述预定位置开始,逐次在所述作业范围内规划路径包括:
在规划第一条路径时,将所述栅格地图的信息导入第一新建地图中,其中,所述第一新建地图包括:所述边界信息外部的区域信息、障碍物及障碍物膨胀层区域信息、空闲区域信息、边界信息、未知区域信息;
将当前作业已覆盖区域信息中能够导入所述第一新建地图中空闲区域的信息导入至所述第一新建地图中;
遍历所述第一新建地图,将所述预定位置相邻的M层栅格以内的空闲区域的位置信息存储到所述第三列表中,在所述第一新建地图中将本步骤存储至所述第三列表的位置信息对应的区域重置为空闲区域标识区,其中,所述M为机器人单次作业覆盖宽度的一半再加1;
将与空闲区域相邻的当前作业已覆盖区域相邻的障碍物及障碍物膨胀层区域,以及与该障碍物及障碍物膨胀层区域相邻的障碍物及障碍物膨胀层区域的位置信息存储至所述第三列表中,在所述第一新建地图中将本步骤存储至所述第三列表中的位置信息对应的区域重置为障碍物标识区;
将与空闲区域相邻的当前作业已覆盖区域相邻的M层栅格以内的空闲区域的位置信息存储到所述第三列表中;
遍历所述第三列表,将所述第三列表中保存的位置信息对应的区域中与空闲区域、障碍物及障碍物膨胀层区域相邻的区域的位置信息保存至第四列表,并在所述第一新建地图中将所述第四列表保存的位置信息对应的栅格属性确定为路径点。
8.根据权利要求6或7所述的方法,其特征在于,在所述第一新建地图中将所述第四列表保存的位置信息对应的栅格属性确定为路径点之后,还包括:
遍历所述第四列表,将所述第四列表存储的位置信息对应的栅格点中相邻有空闲区域标识区、障碍物标识区、障碍物及障碍物膨胀层区域、或者所述边界信息外部的区域的多个栅格点进行保留,删除所述第四列表存储的位置信息对应的栅格点中除所述多个栅格点之外的其他栅格点;
遍历所述第四列表,删除所述第三列表和所述第四列表中栅格属性为路径点的孤点、端点和交叉点;
将所述第一新建地图中栅格属性为路径点的所有栅格点确定为最终的目标路径点。
9.根据权利要求6或8所述的方法,其特征在于,还包括:
在第一次查找拆解点时,在所述第一新建地图中搜索距离当前机器人所在位置最近的目标路径点作为拆解点,在非第一次查找拆解点时,在所述第一新建地图中搜索距离上一条路径的最后一个路径点位置最近的目标路径点作为拆解点;
选择将所述拆解点相邻的两个栅格点中的一个点为起点,逐个搜索相邻的目标路径点,并对于搜索到的每个目标路径点,逐个存储到第五列表中;
判断所述第五列表中目标路径点的存储顺序是否满足预定路径方向要求,如果不满足,则调整所述存储顺序;
将所述第五列表中的目标路径点存放至第六列表中。
10.根据权利要求9所述的方法,其特征在于,在将所述第五列表中的目标路径点存放至第六列表中之后,还包括:
将所述第一新建地图中的空闲区域标识区重置为空闲区域,将所述第一新建地图中的障碍物标识区重置为障碍物区域,将所述第一新建地图中的栅格属性为路径点的区域重置为空闲区域;
将当前得到的路径膨胀P层,并将膨胀后的信息中能够导入所述第一新建地图中空闲区域的信息导入至所述第一新建地图中,其中,所述P为机器人单次作业覆盖宽度的一半;
返回至所述遍历所述第一新建地图,将所述边界信息对应的位置信息存储至第三列表中的步骤,循环执行该步骤及后续步骤,直至无法在所述第一新建地图中搜索到距离上一条路径的最后一个路径点位置最近的目标路径点;
将所述第六列表中保存的全部路径,作为所述规划后的所有路径。
11.根据权利要求7或8所述的方法,其特征在于,还包括:
在第一次查找拆解点时,在所述第一新建地图中搜索距离所述预定位置最近的目标路径点作为拆解点,在非第一次查找拆解点时,在所述第一新建地图中搜索距离上一条路径的最后一个路径点位置最近的目标路径点作为拆解点;
选择将所述拆解点相邻的两个栅格点中的一个点为起点,逐个搜索相邻的目标路径点,并对于搜索到的每个目标路径点,逐个存储到第五列表中;
判断所述第五列表中目标路径点的存储顺序是否满足预定路径方向要求,如果不满足,则调整所述存储顺序;
将所述第五列表中的目标路径点存放至第六列表中。
12.根据权利要求11所述的方法,其特征在于,在将所述第五列表中的目标路径点存放至第六列表中之后,还包括:
将所述第一新建地图中的空闲区域标识区重置为空闲区域,将所述第一新建地图中的障碍物标识区重置为障碍物区域,将所述第一新建地图中的栅格属性为路径点的区域重置为空闲区域;
将当前得到的路径膨胀P层,并将膨胀后的信息中能够导入所述第一新建地图中空闲区域的信息导入至所述第一新建地图中,其中,所述P为机器人单次作业覆盖宽度的一半;
返回至所述遍历所述第一新建地图,将所述预定位置相邻的M层栅格以内的空闲区域的位置信息存储到所述第三列表中的步骤,循环执行该步骤及后续步骤,直至无法在所述第一新建地图中搜索到距离上一条路径的最后一个路径点位置最近的目标路径点;
将所述第六列表中保存的全部路径,作为所述规划后的所有路径。
13.根据权利要求2所述的方法,其特征在于,还包括:
将所述栅格地图的信息导入第二新建地图中,其中,所述第二新建地图包括:所述边界信息外部的区域信息、障碍物及障碍物膨胀层区域信息、空闲区域信息、边界信息、未知区域信息;
将当前作业已覆盖区域信息中能够导入所述第二新建地图中空闲区域的信息导入至所述第二新建地图中;
将所述第二新建地图中栅格属性为空闲区域进行标识,并重置为空闲标识区;
统计所述第二新建地图中多个栅格点连在一起的空闲标识区的栅格点数量,将所述栅格点数量小于预定数量的空闲标识区的栅格属性重置为空闲区域;
对所述第二新建地图中的空闲标识区的区域取特征点,并将所述特征点重置为路径点,将该路径点形成的至少一条路径的端点进行标识;
搜索距离所述机器人当前位置最近的所述至少一条路径的端点作为起点,逐步搜索相邻的空闲标识区和路径点,将搜索到的栅格点区域进行保存,根据搜索到的栅格点区域确定与该起点相连的最长路径,并保存所述最长路径,判断所述搜索到的栅格点区域和/或所述最长路径是否满足预设条件,如果不满足,则循环执行此步骤,直至所述搜索到的栅格点区域和/或所述最长路径满足预设条件;
将满足所述预设条件的栅格点区域和/或最长路径确定为机器人作业补漏区域,将所述补漏区域的信息发送至机器人的运动控制模块,以使所述运动控制模块控制机器人在所述补漏区域作业。
14.根据权利要求1至13中任一项所述的方法,其特征在于,还包括以下至少之一:
在所述机器人作业过程中,对于同一区域内,不同时间点的空间信息发生变化时,所述运动控制模块控制所述机器人执行脱困决策处理,在所述机器人无法实现脱困的情况下,所述机器人执行异常申报处理;
在所述机器人作业过程中,对于不同区域内,相同时间点的空间信息发生变化时,所述机器人依据历史记录信息以及当前传感器的观测数据,执行相应决策处理。
15.根据权利要求1至13中任一项所述的方法,其特征在于,还包括:
在机器人跟踪所述规划后的所有路径完成全部作业后,对于所述机器人作业覆盖区域进行统计,得到机器人实际作业覆盖区域的面积,根据实际作业覆盖区域的面积与所述预先确定的机器人作业范围的面积,计算得到所述机器人的作业覆盖率。
16.根据权利要求1至13中任一项所述的方法,其特征在于,还包括:
在机器人完成全部作业时的位置,执行路径规划操作,规划得到所述机器人返回至充电桩位置、初始化对象位置、或者机器人作业启动位置的路径;
所述机器人根据规划后的路径返回至充电桩位置、初始化对象位置、或者机器人作业启动位置,并将当前保存的地图信息、实际作业覆盖区域的面积信息、机器人作业关联信息发送至本地或者云端备份。
17.一种机器人路径规划装置,其特征在于,包括:
获取模块,用于获取地图,其中,所述地图中绑定有预先确定的机器人作业范围的信息;
路径规划模块,用于从所述预定路线开始或者从预定位置开始,逐次在所述作业范围内规划路径,其中,每次规划的路径,为上一次作业路径向所述作业范围的未覆盖区域膨胀机器人作业覆盖宽度的预定值而形成的路径;
发送模块,用于在所述地图中规划完所有路径后,将规划后的所有路径发送至机器人的运动控制模块,以使所述运动控制模块控制机器人跟踪所述规划后的所有路径。
18.一种机器人,包括:存储器及处理器,其特征在于,
所述存储器,用于存储计算机执行指令;
所述处理器,用于执行所述存储器存储的计算机执行指令,使得所述机器人执行如权利要求1至15中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210376169.1A CN115494834A (zh) | 2022-04-11 | 2022-04-11 | 机器人路径规划方法、装置及机器人 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210376169.1A CN115494834A (zh) | 2022-04-11 | 2022-04-11 | 机器人路径规划方法、装置及机器人 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115494834A true CN115494834A (zh) | 2022-12-20 |
Family
ID=84464348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210376169.1A Pending CN115494834A (zh) | 2022-04-11 | 2022-04-11 | 机器人路径规划方法、装置及机器人 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115494834A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116125991A (zh) * | 2023-02-27 | 2023-05-16 | 麦岩智能科技(北京)有限公司 | 一种基于面向高端场景的商用服务机器人的禁区脱困、存储介质、设备 |
CN116841300A (zh) * | 2023-08-31 | 2023-10-03 | 未岚大陆(北京)科技有限公司 | 工作地图生成方法、作业方法、控制方法和相关装置 |
CN117268401A (zh) * | 2023-11-16 | 2023-12-22 | 广东碧然美景观艺术有限公司 | 一种动态围栏的园艺路径生成方法 |
-
2022
- 2022-04-11 CN CN202210376169.1A patent/CN115494834A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116125991A (zh) * | 2023-02-27 | 2023-05-16 | 麦岩智能科技(北京)有限公司 | 一种基于面向高端场景的商用服务机器人的禁区脱困、存储介质、设备 |
CN116125991B (zh) * | 2023-02-27 | 2023-08-15 | 麦岩智能科技(北京)有限公司 | 一种基于面向高端场景的商用服务机器人的禁区脱困、存储介质、设备 |
CN116841300A (zh) * | 2023-08-31 | 2023-10-03 | 未岚大陆(北京)科技有限公司 | 工作地图生成方法、作业方法、控制方法和相关装置 |
CN116841300B (zh) * | 2023-08-31 | 2023-12-19 | 未岚大陆(北京)科技有限公司 | 工作地图生成方法、作业方法、控制方法和相关装置 |
CN117268401A (zh) * | 2023-11-16 | 2023-12-22 | 广东碧然美景观艺术有限公司 | 一种动态围栏的园艺路径生成方法 |
CN117268401B (zh) * | 2023-11-16 | 2024-02-20 | 广东碧然美景观艺术有限公司 | 一种动态围栏的园艺路径生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020140860A1 (zh) | 动态区域划分与区域通道识别方法及清洁机器人 | |
CN113110457B (zh) | 在室内复杂动态环境中智能机器人的自主覆盖巡检方法 | |
CN112000754B (zh) | 地图构建方法、装置、存储介质及计算机设备 | |
CN115494834A (zh) | 机器人路径规划方法、装置及机器人 | |
CN114911228A (zh) | 机器人路径规划方法、装置及机器人 | |
US20200192399A1 (en) | Method for traversing a subarea, method for cleaning, and cleaning robot thereof | |
Yamauchi | Decentralized coordination for multirobot exploration | |
Sudhakara et al. | Trajectory planning of a mobile robot using enhanced A-star algorithm | |
CN111459153B (zh) | 动态区域划分与区域通道识别方法及清洁机器人 | |
CN108628318B (zh) | 拥堵环境检测方法、装置、机器人及存储介质 | |
CN111609852A (zh) | 语义地图构建方法、扫地机器人及电子设备 | |
Costante et al. | Exploiting photometric information for planning under uncertainty | |
CN114610042A (zh) | 机器人路径动态规划方法、装置及机器人 | |
Altshuler et al. | Static and expanding grid coverage with ant robots: Complexity results | |
Kaufman et al. | Autonomous exploration by expected information gain from probabilistic occupancy grid mapping | |
Dornhege et al. | Multirobot coverage search in three dimensions | |
Kumar et al. | Robot path pursuit using probabilistic roadmap | |
CN111609853A (zh) | 三维地图构建方法、扫地机器人及电子设备 | |
WO2021185657A2 (en) | Using static scores to control vehicle operations | |
CN114690769B (zh) | 路径规划方法、电子设备及存储介质、计算机程序产品 | |
WO2024093989A1 (zh) | 机器人的避障方法和*** | |
CN114460939A (zh) | 复杂环境下智能行走机器人自主导航改进方法 | |
Zhao et al. | Complete coverage path planning scheme for autonomous navigation ROS-based robots | |
Karpov et al. | Multi-robot exploration and mapping based on the subdefinite models | |
Sharma et al. | A virtual bug planning technique for 2D robot path planning |
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 |