一种机器人路径规划方法及系统
技术领域
本发明属于电子技术领域,尤其涉及一种机器人路径规划方法及系统。
背景技术
家用机器人是为人类服务的特种机器人,主要从事家庭服务,维护、保养、修理、运输、清洗以及监护等工作。据联合国欧洲经济委员会及国际机器人协会统计截止到2007年末,有410万家用服务机器人走进了人们的生活。在我国,家庭智能机器人作为一个新兴的开苏发展产业,已经成为国家“十一五”发展规划的扶植重点。
路径规划作为机器人自主运动中的关键问题,在机器人的相关技术研究中有着重要的地位。现有的家用机器人的路径规划方案一般是在根据机器人系统导航的行驶路径向目标点移动时,采用位于机器人底部的2D激光扫描仪探测上述行驶路径上是否有障碍物,若无障碍物则按照上述行驶路径移动至目标点,相反,若有障碍物,则需要重新规划新的路径。这种路径规划方案只能探测距离机器人最近的物体,无法判断在这个物体之后是否还有其他障碍物的存在,缺少整体路径规划能力;此外,这种路径规划方案无法判断障碍物的尺寸大小,即使是一个很小的障碍物都必须使机器人避开绕过,局限性很大。
发明内容
本发明实施例的目的在于提供一种机器人路径规划方法及系统,旨在解决上述家用机器人的路径规划方案缺少整体路径规划能力以及无法判断障碍物的尺寸大小,即使是一个很小的障碍物都必须使机器人避开绕过,局限性很大的问题。
本发明实施例是这样实现的,一种机器人路径规划方法,包括:
采用安装在机器人顶部的3D体感相机实时采集所述机器人前方预设范围内障碍物的3D点云数据;
对所述3D点云数据进行背景裁剪,以除去所述3D点云数据中的背景数据;
采用集群抽取算法将除去背景数据后的3D点云数据分割成多个点云区块;
分别计算各个点云区块的三维空间体积;
判断各个点云区块的三维空间体积是否小于预设体积阈值;
若小于预设体积阈值,则将该点云区块从所述3D点云数据中除去,以重新建立位于所述机器人前方预设范围内的区域地图;
根据所述区域地图对所述机器人进行路径规划。
在上述技术方案的基础上,所述采用集群抽取算法将除去背景数据后的3D点云数据分割成多个点云区块之前还包括:
采用边缘噪点过滤算法对除去背景数据后的3D点云数据进行滤波处理。
在上述技术方案的基础上,对所述3D点云数据进行背景裁剪,以除去所述3D点云数据中的背景数据具体包括:
计算所述3D点云数据中各平面的尺寸,以获取所述3D点云数据中最大尺寸平面;
计算出所述最大尺寸平面的空间位置信息,并根据所述空间位置信息将所有属于所述最大尺寸平面的点云作为背景数据裁剪掉。
在上述技术方案的基础上,所述分别计算各个点云区块的三维空间体积具体包括:
采用有向包围盒算法分别计算出各个点云区块所对应的包围盒;
计算各包围盒的体积,将所述包围盒的体积作为与其对应的点云区块的三维空间体积。
在上述技术方案的基础上,所述计算各包围盒的体积,将所述包围盒的体积作为与其对应的点云区块的三维空间体积之前还包括:
计算出各点云区块中所有点的重心位置;
根据各点云区块的重心位置按照一定比例对各点云区块所对应的包围盒的长、宽、高进行调整,使所述包围盒的重心位置与其对应的点云区块中所有点的重心位置重合。
本发明实施例的另一目的在于提供一种机器人路径规划系统,包括:
3D体感相机,所述3D体感相机安装在机器人的顶部,用于实时采集所述机器人前方预设范围内障碍物的3D点云数据;
点云裁剪模块,用于对所述3D点云数据进行背景裁剪,以除去所述3D点云数据中的背景数据;
点云区块划分模块,用于采用集群抽取算法将除去背景数据后的3D点云数据分割成多个点云区块;
点云区块体积计算模块,用于分别计算各个点云区块的三维空间体积;
判断模块,用于判断各个点云区块的三维空间体积是否小于预设体积阈值;
区域地图重建模块,用于若小于预设体积阈值,则将该点云区块从所述3D点云数据中除去,以重新建立位于所述机器人前方预设范围内的区域地图;
路径规划模块,用于根据所述区域地图对所述机器人进行路径规划。
在上述技术方案的基础上,所述的机器人路径规划系统还包括:
滤波处理模块,用于采用边缘噪点过滤算法对除去背景数据后的3D点云数据进行滤波处理。
在上述技术方案的基础上,所述点云裁剪模块具体用于:
计算所述3D点云数据中各平面的尺寸,以获取所述3D点云数据中最大尺寸平面;
计算出所述最大尺寸平面的空间位置信息,并根据所述空间位置信息将所有属于所述最大尺寸平面的点云作为背景数据裁剪掉。
在上述技术方案的基础上,所述点云区块体积计算模块包括:
包围盒获取单元,用于采用有向包围盒算法分别计算出各个点云区块所对应的包围盒;
包围盒体积计算单元,用于计算各包围盒的体积,将所述包围盒的体积作为与其对应的点云区块的三维空间体积。
在上述技术方案的基础上,所述点云区块体积计算模块还包括:
点云区块重心计算单元,用于计算出各点云区块中所有点的重心位置;
包围盒重心调整单元,用于根据各点云区块的重心位置按照一定比例对各点云区块所对应的包围盒的长、宽、高进行调整,使所述包围盒的重心位置与其对应的点云区块中所有点的重心位置重合。
实施本发明实施例提供的一种机器人路径规划方法及系统具有以下有益效果:
本发明实施例由于首先采用安装在机器人顶部的3D体感相机实时采集所述机器人前方预设范围内障碍物的3D点云数据,从而能够检测出机器人前方预设范围内的所有障碍物,提高了机器人的整体路径规划能力;由于采用集群抽取算法将除去背景数据后的3D点云数据分割成多个点云区块;分别计算各个点云区块的三维空间体积;判断各个点云区块的三维空间体积是否小于预设体积阈值;若小于预设体积阈值,则将该点云区块从所述3D点云数据中除去,以重新建立位于所述机器人前方预设范围内的区域地图;最后根据所述区域地图对所述机器人进行路径规划,从而能够使机器人在进行路径规划时忽略体积小的障碍物,为机器人规划出最优路径,克服了现有机器人的路径规划方案无法判断障碍物的尺寸大小,即使是一个很小的障碍物都必须使机器人避开绕过,局限性很大的问题。
附图说明
图1是本发明实施例提供的一种机器人路径规划方法的具体实现流程图;
图2是本发明实施例提供的一种机器人路径规划系统的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1是本发明实施例提供的一种机器人路径规划方法的具体实现流程图。参见图1所示,本实施例提供的一种机器人路径规划方法包括:
在S101中,采用安装在机器人顶部的3D体感相机实时采集所述机器人前方预设范围内障碍物的3D点云数据。
本实施例中,由于采用安装在机器人顶部的3D体感相机采集机器人前方的障碍物信息,从而可以获取机器人前方预设范围内所有障碍物信息,克服了现有技术中存在的采用2D激光扫描仪只能扫描到离机器人最近的物体,而无法检测到该物体之后是否还有其他障碍物的缺陷。进一步的,本实施例中的预设范围为10m以内。
在S102中,对所述3D点云数据进行背景裁剪,以除去所述3D点云数据中的背景数据。进一步的,S102具体包括:
计算所述3D点云数据中各平面的尺寸,以获取所述3D点云数据中最大尺寸平面;
计算出所述最大尺寸平面的空间位置信息,并根据所述空间位置信息将所有属于所述最大尺寸平面的点云作为背景数据裁剪掉。
在本实施例中,所述3D点云数据中的最大尺寸地面即为机器人所处环境中的地面,即障碍物的3D点云数据中的背景,因此本实施例中,首先获取3D点云数据中的最大尺寸平面,然后计算其空间位置,根据其空间位置将其从3D点云数据中裁剪掉,这样能够大幅减少后续处理的点云数据,提高后续数据处理速度和精度。
在S103中,采用集群抽取算法将除去背景数据后的3D点云数据分割成多个点云区块。
在本实施例中,采集群抽取算法将出去背景数据后的3D点云数据分割成多个点云区块具体是利用3D点云数据中点与点之间的空间距离来划分点云区块的,具体的:首先设定一个距离阈值,判断一个点是否属于一个点云区块,则分别计算出该点距离该点云区块中所有点的距离,若其中有一个距离小于设定的距离阈值,则说明该点属于该点云区块,否则,以该点作为新的点云区块的起始点重复上述集群抽取算法,直到所有点云区块被区分出来为止。
需要说明的是,在其他实现示例中,步骤S103之前还可以包括:采用边缘噪点过滤算法对除去背景数据后的3D点云数据进行滤波处理。这样可以除去3D体感相机硬件本身产生的噪点,进一步提高后续点云数据处理的精确度。
在S104中,分别计算各个点云区块的三维空间体积。
在本实施例中,S104具体包括:
采用有向包围盒算法分别计算出各个点云区块所对应的包围盒;
计算各包围盒的体积,将所述包围盒的体积作为与其对应的点云区块的三维空间体积。
需要说明的是,在其他实现示例中,所述计算各包围盒的体积,将所述包围盒的体积作为与其对应的点云区块的三维空间体积之前还可以包括:计算出各点云区块中所有点的重心位置;根据各点云区块的重心位置按照一定比例对各点云区块所对应的包围盒的长、宽、高进行调整,使所述包围盒的重心位置与其对应的点云区块中所有点的重心位置重合。例如:如果计算出所述点云区块中所有点的重心位置位于包围盒的下方,那么说明包围盒上方的点比较稀疏,这样很有可能是没有处理干净的噪点所致,此时按照一定的比例对所述包围盒的长宽高进行调整,以使所述包围盒的重心位置与所述点云区块的重心位置重合,然后再计算包围盒的体积,将包围盒的体积作为点云区块的体积。这样可以使得包围盒的体积大小更接近实际障碍物的体积大小,得到更加精确的结果。
在S105中,判断各个点云区块的三维空间体积是否小于预设体积阈值,若小于预设体积阈值则进入步骤S106,反之,不做处理。
在本实施例中,所述预设体积阈值可由用户根据自身需求自行设定或更改。
在S106中,将该点云区块从所述3D点云数据中除去,以重新建立位于所述机器人前方预设范围内的区域地图。
在本实施例中,若所述点云区块的三维空间体积小于预设体积阈值,则说明该点云区块所对应的障碍物体积较小,所述机器人可以不避绕过该障碍物进行路径规划,此时将该点云区块从所述3D点云数据中除去即可;相反,若所述点云区块的三维空间体积大于或等于预设体积阈值,则说明该点云区块对应的障碍物体积较大,所述机器人进行路径规划时需要避开该障碍物,此时则保留所述3D点云数据中的该点云区块。
在S107中,根据所述区域地图对所述机器人进行路径规划。
在本实施例中,由于根据重建的区域地图对所述机器人进行路径规划,而重建的区域地图中除去了体积较小的障碍物,从而能够使得机器人在进行路径规划时直接忽略体积较小的障碍物,获得最优路径。
以上可以看出,本实施例提供的一种机器人路径规划方法不仅能够检测出机器人前方预设范围内的所有障碍物,提高机器人的整体路径规划能力,而且还能够使机器人在进行路径规划时忽略体积小的障碍物,为机器人规划出最优路径,克服了现有机器人的路径规划方案无法判断障碍物的尺寸大小,即使是一个很小的障碍物都必须使机器人避开绕过,局限性很大的问题。
图2是本发明实施例提供的一种机器人路径规划系统的结构示意图,该系统用于运行图1所示实施例提供的方法。为了便于说明仅仅示出了与本实施例相关的部分。
参见图2所示,本实施例提供的一种机器人路径规划系统,包括:
3D体感相机1,所述3D体感相机1安装在机器人的顶部,用于实时采集所述机器人前方预设范围内障碍物的3D点云数据;
点云裁剪模块2,用于对所述3D点云数据进行背景裁剪,以除去所述3D点云数据中的背景数据;
点云区块划分模块3,用于采用集群抽取算法将除去背景数据后的3D点云数据分割成多个点云区块;
点云区块体积计算模块5,用于分别计算各个点云区块的三维空间体积;
判断模块6,用于判断各个点云区块的三维空间体积是否小于预设体积阈值;
区域地图重建模块7,用于若小于预设体积阈值,则将该点云区块从所述3D点云数据中除去,以重新建立位于所述机器人前方预设范围内的区域地图;
路径规划模块8,用于根据所述区域地图对所述机器人进行路径规划。
可选的,所述的机器人路径规划系统还包括:
滤波处理模块4,用于采用边缘噪点过滤算法对除去背景数据后的3D点云数据进行滤波处理。
可选的,所述点云裁剪模块2具体用于:
计算所述3D点云数据中各平面的尺寸,以获取所述3D点云数据中最大尺寸平面;
计算出所述最大尺寸平面的空间位置信息,并根据所述空间位置信息将所有属于所述最大尺寸平面的点云作为背景数据裁剪掉。
可选的,所述点云区块体积计算模块5包括:
包围盒获取单元52,用于采用有向包围盒算法分别计算出各个点云区块所对应的包围盒;
包围盒体积计算单元54,用于计算各包围盒的体积,将所述包围盒的体积作为与其对应的点云区块的三维空间体积。
可选的,所述点云区块体积计算模块还包括:
点云区块重心计算单元51,用于计算出各点云区块中所有点的重心位置;
包围盒重心调整单元53,用于根据各点云区块的重心位置按照一定比例对各点云区块所对应的包围盒的长、宽、高进行调整,使所述包围盒的重心位置与其对应的点云区块中所有点的重心位置重合。
需要说明的是,本发明实施例提供的上述终端中各个模块,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
因此,可以看出,本实施例提供的一种机器人路径规划系统同样不仅能够检测出机器人前方预设范围内的所有障碍物,提高机器人的整体路径规划能力,而且还能够使机器人在进行路径规划时忽略体积小的障碍物,为机器人规划出最优路径,克服了现有机器人的路径规划方案无法判断障碍物的尺寸大小,即使是一个很小的障碍物都必须使机器人避开绕过,局限性很大的问题。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。