本发明涉及智能机器人领域,尤其涉及一种用于智能机器人的路径规划方法及装置。
背景技术:
随着计算机、传感器、控制技术、人工智能等技术的飞速发展,机器人虽然只经历了短短50多年的发展,但在需求的牵引下作为一种新兴的产业和技术,机器人技术已经得到了很好的发展。因为机器人的种类繁多、功能各不相同,所以能够广泛地应用在工业、民用等各个领域。
同时定位与地图创建(Simultaneous Localization and Mapping,简称SLAM)技术,是近几十年里机器人领域中的重大发展研究方向。作为机器人的核心技术,SLAM技术在机器人导航、控制、生产等方面都有着重要的研究意义。一般而言,SLAM技术分为两种主要的技术模式即:激光SLAM和视觉SLAM(包括双目SLAM、单目SLAM和RGBD-SLAM)。在两种技术模式中,视觉SLAM有其优势所在:视觉传感器价格便宜、无穿透性,并且易于在机器人硬件结构上实现。然而,目前的视觉SLAM算法相比激光SLAM算法来说还不成熟,且开源代码较为匮乏,在稳定性上也远远劣于激光SLAM算法。
因此,亟需提供一种具有良好的稳定性、快速性的用于智能机器人的路径规划解决方案。
技术实现要素:
本发明所要解决的技术问题之一是需要提供一种具有良好的稳定性、快速性的用于智能机器人的路径规划解决方案。
为了解决上述技术问题,本申请的实施例首先提供了一种用于智能机器人的路径规划方法,所述智能机器人安装有机器人操作系统,该方法包括:获取视角内的具有三维深度信息的视觉三维点云;在视平面上,在视角内划分出多个投影区域;对所述具有三维深度信息的视觉三维点云在每个投影区域的投影进行最近点迭代处理,将最近点作为该投影区域的激光二维数据点,进而得到与所述视觉三维点云对应的激光二维点云;利用激光SLAM算法和所得到的激光二维点云进行路径规划。
优选地,该方法还包括如下步骤:对获取的视觉三维点云数据进行滤波和/或平滑处理以修复丢失的深度数据。
优选地,在视角内平均划分出多个投影区域,在每个投影区域内利用预设的几何模型对所述具有三维深度信息的视觉三维点云进行投影。
优选地,该方法还包括如下步骤:基于路径规划进行导航。
根据本发明实施例的另一方面,还提供了一种用于智能机器人的路径规划装置,所述智能机器人安装有机器人操作系统,该装置包括:视觉三维点云获取模块,其获取视角内的具有三维深度信息的视觉三维点云;投影区域划分模块,其在视平面上,在视角内划分出多个投影区域;激光二维点云获取模块,其对所述具有三维深度信息的视觉三维点云在每个投影区域的投影进行最近点迭代处理,将最近点作为该投影区域的激光二维数据点,进而得到与所述视觉三维点云对应的激光二维点云;路径规划模块,其利用激光SLAM算法和所得到的激光二维点云进行路径规划。
优选地,所述视觉三维点云获取模块,其进一步对获取的视觉三维点云数据进行滤波和/或平滑处理以修复丢失的深度数据。
优选地,所述投影区域划分模块,其进一步在视角内平均划分出多个投影区域;所述激光二维点云获取模块,其还在每个投影区域内利用预设的几何模型对所述具有三维深度信息的视觉三维点云进行投影。
优选地,该装置还包括如下模块:导航模块,其基于路径规划进行导航。
与现有技术相比,上述方案中的一个或多个实施例可以具有如下优点或有益效果:
本发明实施例通过将利用深度视觉摄像头获取的视觉三维点云转换成激光二维点云,可以将激光SLAM算法与视觉传感器结合使用,完成机器人的路径规划和导航,有效的提高了使用视觉传感器的机器人的路径规划稳定性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明的技术方案而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构和/或流程来实现和获得。
附图说明
附图用来提供对本申请的技术方案或现有技术的进一步理解,并且构成说明书的一部分。其中,表达本申请实施例的附图与本申请的实施例一起用于解释本申请的技术方案,但并不构成对本申请技术方案的限制。
图1为根据本申请实施例的用于智能机器人的路径规划方法的流程示意图。
图2为根据本申请实施例的步骤S120的有关进行投影区域划分的示意图。
图3为根据本申请实施例的用来说明从视觉三维点云转成激光二维点云的应用实景示意图。
图4为根据本申请实施例获得的图3所示场景的视觉三维点云示意图。
图5为根据本申请实施例的将图4的视觉三维点云转换后的激光二维点云的示意图。
图6为根据本申请实施例的用于智能机器人的路径规划装置的结构框图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成相应技术效果的实现过程能充分理解并据以实施。本申请实施例以及实施例中的各个特征,在不相冲突前提下可以相互结合,所形成的技术方案均在本发明的保护范围之内。
另外,附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在现有技术中,SLAM技术中存在两种主要技术:激光SLAM和视觉SLAM。通常激光SLAM技术应用的激光测距单元比较精确、高效且其输出不需要太多的处理,激光SLAM技术也较为成熟稳定,但在硬件成本上较高。而视觉SLAM涉及的硬件成本较低,但算法上不成熟。因此,为了改善现有的这两种算法的技术问题,本申请实施例提供了一种通过将视觉传感器虚拟化成激光传感器,使其采集的数据转化成激光数据,随之用激光SLAM算法进行计算的技术方案。具体来说,本发明实施例通过对获取的具有三维深度信息的视觉三维点云在视角内的每个投影区域进行投影,然后执行最近点迭代处理,将最近点作为该投影区域的激光二维数据点,进而得到与视觉三维点云对应的激光二维点云,完成了数据转换,为随后利用激光SLAM算法进行路径规划奠定了基础。
为了保障获取的视觉三维点云数据的完整性,在获取了视觉三维点云数据后,对这些数据进行滤波和/或平滑处理以修复丢失的深度数据。这样也保证了后面转换成激光二维数据点时的准确性。
另外,在进行投影的过程中,在视角内平均划分出多个投影区域,在每个投影区域内利用预设的几何模型对所述具有三维深度信息的视觉三维点云进行投影。而且,进一步还可以基于路径规划进行导航操作。
第一实施例
图1为涉及本发明的用于智能机器人的路径规划方法的示例一的流程示意图,该智能机器人优选为安装有机器人操作系统的机器人,该实施例的方法主要包括以下步骤。
在步骤S110中,获取视角内的具有三维深度信息的视觉三维点云。
具体地,智能机器人采用高清晰度的深度相机,利用结构光实时地感知视角内的场景(如图3所示)并形成深度映射图像。深度映射图像中的每个像素记录着场景的深度值,与普通的RGB图像中像素所表示的光强度值截然不同。另外,深度相机可以将采集到的深度映射图像直接转换成视觉三维点云(如图4所示),也可称为“3D点云数据”,一般为一个二维矩阵,它的元素表示环境中物体到相机中心的距离值,可以作为灰度图像进行处理。
由于受到外部噪声的影响,转换后的视觉三维点云数据可能会丢失部分深度数据,因此,在转换后需要进行预处理。优选地,对获取的视觉三维点云数据进行滤波和/或平滑处理以修复丢失的深度数据,其中涉及的滤波和平滑处理算法可以采取开源机器人操作系统ROS节点message filter()函数来完成该操作。
在步骤S120中,在视平面上,在视角内划分出多个投影区域。
本例中的视角范围大概为100°~180°的角度,在该视角内平均划分出多个投影区域。具体数量不定,如图2所示,可以在180°的角度内平均划分出12个投影区域。
其中,12个投影区域可以通过对机器人的视平面上的视角,进行均分获得,图2中的点O可以看作机器人在其视平面上的投影,a,b,c,d,e,f所在的半圆,为机器人在视平面上的视角,将机器人的视角划分为12个等份,作为12个投影区域。
在步骤S130中,对具有三维深度信息的视觉三维点云在每个投影区域的投影进行最近点迭代处理,将最近点作为该投影区域的激光二维数据点,进而得到与视觉三维点云对应的激光二维点云。
具体地,利用预设的几何模型在平均划分得到的每个投影区域中对具有三维深度信息的视觉三维点云进行投影。其中的“最近点”是指距离机器人最近的投影点,激光二维数据点的表现形式例如为:2.98、2.99、3.00、3.01、...、2.20、8.17、2.21,表示从场景中的左边到右边机器人距最近障碍物的距离(单位一般为米),具体图像请参加图5所示。
在进行最近点迭代处理时,如图2所示,例如:投影后的c点和b点位于同一投影区域,通过对比二者与O点的距离得到为c点距离O点更近,则舍弃b点,若经过多次迭代处理,c点为最近点,则将该点作为该投影区域的激光二维数据点。同理,投影后的e点比f点距离O点更近,则舍弃f点,若经多次迭代处理,e点为最近点,则将该点作为该投影区域的激光二维数据点。
在步骤S140中,利用激光SLAM算法和所得到的激光二维点云进行路径规划。
具体地,利用激光SLAM算法对转换后的激光二维点云进行处理,根据周围的环境构建成一个地图。智能机器人利用地图给出的信息在外部环境中运动,并持续感知周围环境,进一步完善和更新地图。
另外,除了上面的四个步骤以外,该方法还可以包括如下步骤S150,基于路径规划进行导航。具体来说,在得到机器人面对的场景的地图后,获取目的地和机器人当前的位置信息,计算出最优的路径,指引机器人按照最优的路径前进。
第二实施例
图6为本申请实施例的用于智能机器人的路径规划装置600的结构框图。如图6所示,本申请实施例的路径规划装置600主要包括:视觉三维点云获取模块610、投影区域划分模块620、激光二维点云获取模块630、路径规划模块640和导航模块650。
视觉三维点云获取模块610,其获取视角内的具有三维深度信息的视觉三维点云。进一步,视觉三维点云获取模块610还对获取的视觉三维点云数据进行滤波和/或平滑处理以修复丢失的深度数据。
投影区域划分模块620,其在视平面上,在视角内划分出多个投影区域。所述投影区域划分模块620,其进一步在视角内平均划分出多个投影区域。
激光二维点云获取模块630,其对所述具有三维深度信息的视觉三维点云在每个投影区域的投影进行最近点迭代处理,将最近点作为该投影区域的激光二维数据点,进而得到与所述视觉三维点云对应的激光二维点云。激光二维点云获取模块630,其还在每个投影区域内利用预设的几何模型对所述具有三维深度信息的视觉三维点云进行投影。
路径规划模块640,其利用激光SLAM算法和所得到的激光二维点云进行路径规划。
导航模块650,其基于路径规划进行导航。
通过合理设置,本实施例的路径规划装置600可以执行第一实施例的各个步骤,此处不再赘述。
由于本发明的方法描述的是在计算机系统中实现的。该计算机系统例如可以设置在机器人的控制核心处理器中。例如,本文所述的方法可以实现为能以控制逻辑来执行的软件,其由机器人操作系统中的CPU来执行。本文所述的功能可以实现为存储在非暂时性有形计算机可读介质中的程序指令集合。当以这种方式实现时,该计算机程序包括一组指令,当该组指令由计算机运行时其促使计算机执行能实施上述功能的方法。可编程逻辑可以暂时或永久地安装在非暂时性有形计算机可读介质中,例如只读存储器芯片、计算机存储器、磁盘或其他存储介质。除了以软件来实现之外,本文所述的逻辑可利用分立部件、集成电路、与可编程逻辑设备(诸如,现场可编程门阵列(FPGA)或微处理器)结合使用的可编程逻辑,或者包括它们任意组合的任何其他设备来体现。所有此类实施例旨在落入本发明的范围之内。
应该理解的是,本发明所公开的实施例不限于这里所公开的特定结构、处理步骤或材料,而应当延伸到相关领域的普通技术人员所理解的这些特征的等同替代。还应当理解的是,在此使用的术语仅用于描述特定实施例的目的,而并不意味着限制。
说明书中提到的“一个实施例”或“实施例”意指结合实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,说明书通篇各个地方出现的短语“一个实施例”或“实施例”并不一定均指同一个实施例。
虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。