本发明属于机器人学和人工智能领域,更具体地,涉及一种地图分区及覆盖路径规划方法。
背景技术:
1、区域覆盖任务广泛应用于农业、制造业、服务业、搜救及探测等领域,其特征在于动作的单一性和高劳动强度。移动机器人以其出色的机动性,成为执行这些大规模覆盖任务的理想选择。对于移动机器人实施覆盖作业,覆盖路径规划是关键技术之一。随着区域覆盖任务正向室外大规模及智能化方向演进,对覆盖路径规划的覆盖效率和环境适应性提出迫切需求。
2、目前,面对移动机器人的覆盖路径规划问题,常采用单元分解法或栅格地图法进行覆盖路径生成。通过上述方法分解后生成的子单元内部采用单一的直线往复式,曲线螺旋式覆盖或其他覆盖方式的一种来实现整个区域的覆盖,未能根据子单元的环境特征充分利用融合的多种覆盖策略,达到效率最大化。
3、现有技术公开号为cn117664137a的发明专利提出了一种车辆及车载无人机协同路径规划方法,包括:获取车载无人机所需覆盖区域的边界轮廓;根据所述边界轮廓来获取第一数量的补给点,并根据所述补给点来将所述边界轮廓划分为所述第一数量的子区域;根据补给点集合并利用dijkstra最短路径算法来生成车辆的路径轨迹;遍历每个子区域轮廓,分别生成对应的所述子区域的车载无人机飞行轨迹路径。该方案对于分解后的子区域使用了直线往复式算法、contour-parallel路径算法、曲线螺旋式算法之一,依赖了单一的覆盖策略。
技术实现思路
1、本发明为克服现有技术中对分解后子单元的覆盖策略效率低的问题,提供一种地图分区及覆盖路径规划方法,包括如下步骤:
2、s1:利用经过二值化处理后的二维地图,确定待覆盖区域与障碍物区域;
3、s2:计算所述二维地图的特征信息,根据所述特征信息确定适用不同覆盖策略的作业分区,并使用对应的覆盖策略在所述作业分区内生成覆盖路径;
4、s3:提取每个作业分区的潜在起点位置,并使用预设算法寻找机器人当前位置最近的未覆盖分区潜在起点位置,并使用预设路径算法生成无碰撞过渡路径;
5、s4:将作业分区内的覆盖路径与过渡路径融合构成全局覆盖路径。
6、进一步地,步骤s2中计算地图的特征信息的步骤包括:
7、s2.1:对地图的待覆盖区域提取骨架线,利用opencv库的thinning函数对待覆盖区域的像素点集进行处理,提取出地图的骨架像素点集;计算距离变换值,通过预设函数对待覆盖区域的像素点集进行距离变换,计算出每个像素点到最近障碍物的距离;
8、s2.2:结合骨架像素点与距离变换值,得到了包含距离变换信息的骨架线图,再通过预设方法构建邻居宽度熵差骨架线图;
9、s2.3:在所述骨架线图上用预设方法实现精确的地图分割,得到分割后的像素点集;
10、s2.4:从分割后的像素点集中使用预设方法提取所有独立的连通区域,并将所述区域归纳为单独的元素,加入到连通区域集中;
11、s2.5:对每个分割后的连通区域,计算其连通像素点集的平均宽度,按预设方法对每个区域进行分类,确定适用不同覆盖策略的作业分区,并使用对应的覆盖策略在所述作业分区内生成覆盖路径。
12、进一步地,所述步骤s2.1中对待覆盖像素点集进行距离变换的预设函数是opencv库的distancetransform函数。
13、进一步地,所述步骤s2.2中构建邻居宽度熵差骨架线图的方法是通过遍历每个骨架像素点,并根据预设的邻居距离阈值提取邻居骨架点集,使用opencv库的floodfill函数将邻居骨架点集分为两段,计算出所述两段邻居骨架线的宽度熵差,比较邻居骨架熵差与预设的邻居熵差阈值,当邻居骨架熵差大于所述阈值时确定为分割点,构建邻居宽度熵差骨架线图。
14、进一步地,所述步骤s2.3中实现地图分割的方法是,在分割像素点周围绘制圆形区域,所述圆的半径设为距离变换值与预设的划分点范围阈值的和,并与最大分割圆半径对比取小值,以此范围内的障碍物像素点作为待分割点簇,通过应用k-means聚类算法对所述待分割点簇进行处理,设置聚类数为二,通过opencv库的line函数连接所述两个聚类中心点,对整个地图实现精确分割。
15、进一步地,所述步骤s2.4中提取连通区域的方法是采用了opencv库中的floodfill函数,每当通过opencv库的floodfill函数成功识别出一个连通区域时,便将其作为一个独立的元素,纳入分割后连通区域集合中。
16、进一步地,所述步骤s2.5中对区域进行分类的步骤包括:
17、若一个连通区域的平均宽度小于预设的分区覆盖方式宽度阈值,则该区域被归类为狭窄区域;
18、若一个连通区域的平均宽度大于预设的分区覆盖方式宽度阈值,则该区域被归类为开阔区域。
19、进一步地,所述步骤s2.5中的覆盖策略,对于狭窄区域使用曲线螺旋式覆盖策略,对于开阔区域使用直线往复式覆盖策略。
20、进一步地,所述步骤s3中寻找机器人当前位置最近的未覆盖分区潜在起点位置的算法是贪婪算法。
21、进一步地,所述步骤s3中生成无碰撞过渡路径的算法是a*算法。
22、与现有技术相比,本发明技术方案的有益效果是:
23、本申请针对二维平面覆盖路径规划,设计出能够有效融合多种覆盖策略的方法,以充分发挥每种覆盖策略在特定环境条件下的优势,提升多样化场景下的覆盖效率和适应性。
1.一种地图分区及覆盖路径规划方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种地图分区及覆盖路径规划方法,其特征在于,步骤s2中计算地图的特征信息的步骤包括:
3.根据权利要求2所述的一种地图分区及覆盖路径规划方法,其特征在于,所述步骤s2.1中对待覆盖像素点集进行距离变换的预设函数是opencv库的distancetransform函数。
4.根据权利要求2所述的一种地图分区及覆盖路径规划方法,其特征在于,所述步骤s2.2中构建邻居宽度熵差骨架线图的方法是通过遍历每个骨架像素点,并根据预设的邻居距离阈值提取邻居骨架点集,使用opencv库的floodfill函数将邻居骨架点集分为两段,计算出所述两段邻居骨架线的宽度熵差,比较邻居骨架熵差与预设的邻居熵差阈值,当邻居骨架熵差大于所述阈值时确定为分割点,构建邻居宽度熵差骨架线图。
5.根据权利要求2所述的一种地图分区及覆盖路径规划方法,其特征在于,所述步骤s2.3中实现地图分割的方法是,在分割像素点周围绘制圆形区域,所述圆的半径设为距离变换值与预设的划分点范围阈值的和,并与最大分割圆半径对比取小值,以此范围内的障碍物像素点作为待分割点簇,通过应用k-means聚类算法对所述待分割点簇进行处理,设置聚类数为二,通过opencv库的line函数连接所述两个聚类中心点,对整个地图实现精确分割。
6.根据权利要求2所述的一种地图分区及覆盖路径规划方法,其特征在于,所述步骤s2.4中提取连通区域的方法是采用了opencv库中的floodfill函数,每当通过opencv库的floodfill函数成功识别出一个连通区域时,便将其作为一个独立的元素,纳入分割后连通区域集合中。
7.根据权利要求2所述的一种地图分区及覆盖路径规划方法,其特征在于,所述步骤s2.5中对区域进行分类的步骤包括:
8.根据权利要求2所述的一种地图分区及覆盖路径规划方法,其特征在于,所述步骤s2.5中的覆盖策略,对于狭窄区域使用曲线螺旋式覆盖策略,对于开阔区域使用直线往复式覆盖策略。
9.根据权利要求1所述的一种地图分区及覆盖路径规划方法,其特征在于,所述步骤s3中寻找机器人当前位置最近的未覆盖分区潜在起点位置的算法是贪婪算法。
10.根据权利要求1所述的一种地图分区及覆盖路径规划方法,其特征在于,所述步骤s3中生成无碰撞过渡路径的算法是a*算法。