一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种三维建图方法、三维建图装置及机器人与流程

2022-03-09 04:08:35 来源:中国专利 TAG:


1.本技术属于机器人技术领域,尤其涉及一种三维建图方法、三维建图装置、机器人及计算机可读存储介质。


背景技术:

2.随着科技的发展,人们越来越多地使用高智能化的智能设备(例如机器人)协助进行生活中的各项事务。这其中,家务型机器人是普及率最高,也最受人喜爱的机器人,其可以解放用户的双手,大大提升用户的生活品质。当前,地图构建是家务型机器人执行各种家务工作的基础,因而如何构建家务型机器人应用环境空间的地图成为一个关键问题。
3.现有的三维建图方法中,往往只关注到了环境空间的障碍物,但并没有关注障碍物的真实表面纹理,这导致机器人仅能大致定位障碍物所处的位置,但无法准确获知障碍物是什么物体,导致其避障策略固化,避障效果受到影响。


技术实现要素:

4.本技术提供了一种三维建图方法、三维建图装置、机器人及计算机可读存储介质,可帮助机器人获得能够反应环境中物体的真实颜色的三维环境图像,帮助机器人在定位环境中物体的同时也能准确识别环境中物体,一定程度提升机器人的避障效果。
5.第一方面,本技术提供了一种三维建图方法,上述三维建图方法应用于机器人,上述机器人包括第一摄像头、第二摄像头及线激光器,其中,上述线激光器所投射出的激光光束与地面垂直,上述激光光束为不可见光,上述激光光束投射在物体后在上述第一摄像头的传感器面成像,使得所述第一摄像头拍摄获得用于表征激光光束投射在物体上所呈现的点的灰度图像,环境中的可见光投射在物体后在所述第二摄像头的传感器面成像,使得所述第二摄像头拍摄获得用于表征物体颜色的彩色图像;上述三维建图方法包括:
6.上述机器人在待测环境内的移动过程中,获取上述第一摄像头实时拍摄的第一图像及上述第二摄像头实时拍摄的第二图像,其中,上述第一图像及上述第二图像的拍摄时刻相同;
7.基于上述激光光束获取点云数据,其中,上述点云数据包括上述激光光束的各个点的三维坐标信息及颜色信息,上述三维坐标信息基于上述第一图像获得,上述颜色信息基于上述第一图像及第二图像获得,上述激光光束的点指的是激光光束投射在物体上所呈现的点;
8.根据上述移动过程中所获得的所有点云数据,构建彩色全局三维地图。
9.第二方面,本技术提供了一种三维建图装置,上述三维建图装置应用于机器人,上述机器人包括第一摄像头、第二摄像头及线激光器,其中,上述线激光器所投射出的激光光束与地面垂直,上述激光光束为不可见光,上述激光光束投射在物体后在上述第一摄像头的传感器面成像,使得所述第一摄像头拍摄获得用于表征激光光束投射在物体上所呈现的点的灰度图像,环境中的可见光投射在物体后在所述第二摄像头的传感器面成像,使得所
述第二摄像头拍摄获得用于表征物体颜色的彩色图像;上述三维建图装置包括:
10.第一获取模块,用于上述机器人在待测环境内的移动过程中,获取上述第一摄像头实时拍摄的第一图像及上述第二摄像头实时拍摄的第二图像,其中,上述第一图像及上述第二图像的拍摄时刻相同;
11.第二获取模块,用于基于上述激光光束获取点云数据,其中,上述点云数据包括上述激光光束的各个点的三维坐标信息及颜色信息,上述三维坐标信息基于上述第一图像获得,上述颜色信息基于上述第一图像及第二图像获得,上述激光光束的点指的是激光光束投射在物体上所呈现的点;
12.构建模块,用于根据上述移动过程中所获得的所有点云数据,构建彩色全局三维地图。
13.第三方面,本技术提供了一种机器人,上述机器人包括存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如上述第一方面的方法的步骤。
14.第四方面,本技术提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现如上述第一方面的方法的步骤。
15.第五方面,本技术提供了一种计算机程序产品,上述计算机程序产品包括计算机程序,上述计算机程序被一个或多个处理器执行时实现如上述第一方面的方法的步骤。
16.本技术与现有技术相比存在的有益效果是:对机器人进行了硬件上的优化,让机器人配备有第一摄像头、第二摄像头及线激光器,其中,线激光器所投射出的激光光束与地面垂直,该激光光束为不可见光,且该激光光束投射在物体后在第一摄像头的传感器面成像,使得所述第一摄像头拍摄获得用于表征激光光束投射在物体上所呈现的点的灰度图像,环境中的可见光投射在物体后在所述第二摄像头的传感器面成像,使得所述第二摄像头拍摄获得用于表征物体颜色的彩色图像。以此为基础,机器人可在待测环境内的移动过程中,获取第一摄像头实时拍摄的第一图像及第二摄像头实时拍摄的第二图像,其中,第一图像及第二图像的拍摄时刻相同,然后基于激光光束获取点云数据,其中,该点云数据包括激光光束的各个点的三维坐标信息及颜色信息,且该三维坐标信息基于第一图像获得,该颜色信息基于第一图像及第二图像获得,该激光光束的点指的是激光光束投射在物体上所呈现的点,最后即可根据移动过程中所获得的所有点云数据,构建彩色全局三维地图。由上述过程可知,一方面,第一摄像头用于捕捉不可见光,因而激光光束投射在物体后能够在第一摄像头的传感器面成像,使得第一摄像头拍摄能够获得用于表征激光光束投射在物体上所呈现的点的灰度图像;另一方面,由于第二摄像头用于捕捉可见光,因而该激光光束不会对第二摄像头产生任何影响,使得第二摄像头拍摄获得用于表征物体颜色的彩色图像。由于激光光束投射在物体上所呈现的各个点实际为激光光束对物体的扫描,也即这些点也是在物体上的,因而基于以上特性,机器人通过第一摄像头及激光光束来获得物体各个点的三维坐标信息,并通过第一摄像头、第二摄像头及激光光束来获得物体各个点的颜色信息。这可使得点云数据既包含三维坐标信息又包含颜色信息,由此实现彩色全局三维地图的构建,不仅能够反映待测环境中物体的位置,还能反映待测环境中物体的颜色,帮助机器人在定位环境中物体的同时也能准确识别环境中物体,一定程度提升机器人的避障效果。
17.可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的
相关描述,在此不再赘述。
附图说明
18.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1是本技术实施例提供的激光光束与地面垂直的示例图;
20.图2是本技术实施例提供的机器人的右视图中各元件的位置的示例图;
21.图3是本技术实施例提供的机器人的俯视图中各元件的位置的示例图;
22.图4是本技术实施例提供的三维建图方法的实现流程示意图;
23.图5是本技术实施例提供的计算三维坐标信息时,机器人的俯视图的示例图;
24.图6是本技术实施例提供的计算三维坐标信息时,机器人的俯视图的另一示例图;
25.图7是本技术实施例提供的计算三维坐标信息时,机器人的正视图的示例图;
26.图8是本技术实施例提供的三维建图装置的结构框图;
27.图9是本技术实施例提供的机器人的结构示意图。
具体实施方式
28.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
29.为了说明本技术所提出的技术方案,下面通过具体实施例来进行说明。
30.下面对本技术实施例所提出的三维建图方法作出说明。该三维建图方法应用于机器人。仅作为示例,该机器人可以为扫地机器人,此处不对机器人的类型作出限定。该机器人包括第一摄像头、第二摄像头及线激光器。
31.其中,第一摄像头及第二摄像头之间的位置关系可预先标定获得,以作为后续三维建图过程的基础。仅作为示例,出于外观要求的考虑,可设置第一摄像头、第二摄像头及线激光器处于同一平面,该平面垂直于地面,且第一摄像头及第二摄像头水平设置。当然,也可以以其它方式设定第一摄像头、第二摄像头及线激光器之间的位置关系,此处不作限定。需要注意的是,本技术实施例并不要求第一摄像头及第二摄像头对相同空间范围内的环境进行拍摄,只要求第一摄像头拍摄的环境所对应的空间范围与第二摄像头拍摄的环境所对应的空间范围有重叠即可。并且,线激光器所投射出的激光光束处于该重叠的空间范围内。
32.具体地,对于线激光器来说,其可以一定角度投射出一束激光光束。其中,该一定角度指的是:线激光器所投射出的激光光束和摄像头的传感器面之间的夹角,一般可设定为45
°
左右。除此之外,考虑到后续涉及对三维坐标信息的计算,作为一可选实施例,该线激光器所投射出的激光光束可与地面垂直。当然,线激光器所投射出的激光光束也可不垂直于地面,则在这种情况下,需要对激光光束与地面所呈现的倾斜角度θ进行标定。可以理解
的是,第一摄像头与线激光器实际构成了一测距系统,当线激光器所投射的激光光束垂直于地面时,该测距系统的基线长度最大;当线激光器所投射出的激光光束不垂直于地面时,该测距系统的基线长度会变成原基线长度(也即最大的基线长度)与cosθ的乘积。也即,相比于线激光器所投射的激光光束垂直于地面的情况,线激光器所投射出的激光光束不垂直于地面的情况会导致基线长度变短,进而可能对测距精度产生一定影响,但其所涉及的测距流程及基于测距结果所进行的三维建图流程基本不变。因而,为便于理解,后文主要以线激光器所投射出的激光光束垂直于地面为例,对本技术实施例所提出的各个步骤作出解释及说明。
33.为便于理解,请参阅图1,图1给出了激光光束与地面垂直的示例。由图1可知,激光光束与地面垂直指的是:线激光器所投射出的激光光束与该线激光器所形成的平面垂直于地面(也即该线激光器的投射路径所形成的平面垂直于地面);或者也可理解为,该激光光束投射在垂直于地面的平面a后,在该平面a所形成的光线(也即激光光束投射在平面a的各个点所形成的光线)垂直于地面。显然,后续俯视该线激光器时,所看到的激光光束在俯视图中的投射路径表现为一条线。
34.通常来说,该第一摄像头及第二摄像头均安装于机器人的正前方,用于对机器人前进方向上的环境进行拍摄。在该第一摄像头与第二摄像头水平设置的情况下,该第一摄像头可以是右摄像头,该第二摄像头可以是左摄像头。
35.为了将线激光器所投射出的激光光束与环境光(也即环境中的可见光)区分开来,该激光器所投射出的激光光束应为不可见光,例如可以是近红外光。基于前文所给出的第一摄像头及第二摄像头的设置方式可知,第一摄像头与第二摄像头的视野应大部分相同,但第一摄像头与第二摄像头的拍摄方式应不同。也即,二者所拍摄的图像应有相当一部分是重合的,但第一摄像头所拍摄的图像及第二摄像头所拍摄的图像的图像形式应有所区别。
36.具体地,第一摄像头的双滤光片切换器(ir-cut)被切到了白片,由于白片是一块全光谱光学玻璃,因而近红外光可以透过它被第一摄像头的传感器接收到。基于此,第一摄像头可对近红外光进行捕捉,拍摄获得用于表征激光光束投射在物体上所呈现的点的灰度图像;也即,激光光束投射在物体后,只要该物体在第一摄像头的视野范围内,该激光光束就可在第一摄像头的传感器面成像。可以理解,灰度图像可以显示激光光束投射在物体的位置,但无法显示物体的颜色,对此,后续可通过定位该灰度图像中激光光束的位置,完成激光光束的各个点的三维坐标信息的测量。可见,第一摄像头主要对环境中物体的定位起到作用。
37.具体地,第二摄像头使用红外截止低通滤光片,其无法捕捉不可见光,也即,仅环境光投射在物体后才可在第二摄像头的传感器面成像,使得第二摄像头拍摄正常的彩色图像(也即rgb图像),该彩色图像用于标表征物体颜色,可还原物体在肉眼所呈现的样子。由于激光光束为不可见光,因而激光光束不会对第二摄像头所拍摄的彩色图像产生任何影响。这样一来,后续可通过彩色图像中所显示的颜色,完成对激光光束所扫描到的物体的颜色的获取。可见,第二摄像头主要对环境中物体的颜色获取起到作用。
38.可以理解,基于第一摄像头及第二摄像头的以上特性,通过设置激光光束为不可见光,可避免环境光对三维坐标信息的采集造成影响,同时也可以避免激光光束对颜色信
息的采集造成影响。
39.在一些实施例中,考虑到线激光器只能以给定的角度投射激光光束(也即激光光束的投射路径固定),因而可考虑在机器人中设定两个线激光器,可分别记作第一线激光器及第二线激光器,用于扫描机器人前进方向上左右两边的物体。具体地,这两个线激光器分别设置于第一摄像头及第二摄像头的两侧。
40.请参阅图2,图2给出了机器人的右视图中各元件的位置的示例:假定机器人从左向右移动(也即机器人的正面朝向右侧),则在机器人的右视图中,各元件的位置呈现水平状态,其中第一线激光器及第二线激光器在外侧,第一摄像头及第二摄像头在内侧。
41.请参阅图3,图3给出了机器人的俯视图中各元件的位置的示例:假定机器人从左向右移动(也即机器人的正面朝向右侧),则在机器人的俯视图中,各元件的位置呈现竖直状态,其中第一线激光器及第二线激光器在外侧,第一摄像头及第二摄像头在内侧。需要注意的是,线激光器并不是面向机器人的正前方投射激光光束,而是会有一定的偏转,以略微朝向摄像头一侧的角度(通常为45
°
)向侧前方投射激光光束。
42.仅作为示例,对于图2及图3来说,第一摄像头具体为右摄像头,第二摄像头具体为左摄像头,第一线激光器具体为右侧线激光器,第二线激光器具体为左侧线激光器。
43.需要注意的是,在机器人投入使用之前,需要先对该机器人所配备的第一摄像头及第二摄像头进行相机标定和畸变校正。为便于理解,下面对该相机标定和畸变校正的过程作出具体说明:
44.预先利用标定板(例如棋盘格)来拍摄标定图像进行相机标定和畸变校正。该过程需将标定板与待标定的摄像头的传感器面平行放置,以使得待标定的摄像头能够拍摄获得标定图像。一般而言,将标定板垂直地面放置即可。此处采用最常见的针孔相机模型为例进行说明,该针孔相机模型如下:
[0045][0046]
其中,(xw,yw,zw)为真实世界的三维坐标;(u,v)是图像上像素在图像坐标系中的坐标;r是3
×
3的旋转矩阵;t是3
×
1的平移向量;f是摄像头的焦距;dx为像素在x轴方向上的物理尺寸(也即单个像素的物理宽度);dy为像素在y轴方向上的物理尺寸(也即单个像素的物理高度);(u0,v0)为图像坐标系的原点的坐标。参数r,t,及(u0,v0)均可通过相机标定算法计算获得,该相机标定算法可以为张正友标定法,此处不作限定。为后续方便描述,可将上述模型简记为如下:
[0047][0048]
其中,m表示相机标定输出的内参,n表示相机标定输出的外参。在标定完成后,将
第二摄像头的内参矩阵记为m1,第二摄像头拍摄的标定板垂直地面放置的标定图像的外参矩阵记为n1,第一摄像头的内参矩阵记为m2,第一摄像机拍摄的标定板垂直地面放置的标定图像的外参矩阵记为n2。至此,完成对第一摄像头及第二摄像头的相机标定和畸变校正,m1、m2、n1及n2即为标定参数。
[0049]
在前文所提出的机器人的基础上,请参阅图4,该三维建图方法包括:
[0050]
步骤401,机器人在待测环境内的移动过程中,获取第一摄像头实时拍摄的第一图像及第二摄像头实时拍摄的第二图像。
[0051]
在本技术实施例中,机器人在接收到建图请求后,即可立即启动第一摄像头、第二摄像头及线激光器,并控制自身在当前所处的环境(也即待测环境)内进行移动。显然,在机器人的移动过程中,第一摄像头及第二摄像头会持续进行拍摄,且线激光器会持续投射出激光光束。机器人由此可获取第一摄像头所实时拍摄的第一图像及第二摄像头所实时拍摄的第二图像,其中,该第一图像及该第二图像的拍摄时刻相同。也即,在机器人的移动过程中,在每个时刻下,都可获得该时刻所拍摄而得的第一图像及第二图像。
[0052]
可以理解,由于第一图像是第一摄像头拍摄得到的,因而该第一图像为灰度图像;由于第二图像是第二摄像头拍摄得到的,因而该第二图像为彩色图像。
[0053]
步骤402,基于激光光束获取点云数据。
[0054]
在本技术实施例中,点云数据包括激光光束的各个点的三维坐标信息及颜色信息,该三维坐标信息基于第一图像获得,该颜色信息基于第一图像及第二图像获得。由于激光光束投射在机器人前进方向附近的物体后,会在第一摄像头的传感器面上成像,因而,在机器人前进方向附近存在有物体的情况下,第一图像中会显示有激光光束投射在物体时所呈现的各个点而形成的光线,则前文所说的该激光光束的点指的就是激光光束投射在物体上所呈现的点(也即物体上被激光光束扫描到的点)。可以理解,由于激光光束实际为不可见光,且激光光束实际投射在了物体表面,因而本步骤中所说的点的颜色信息,实际上指的是点所对应的物体表面的颜色信息。
[0055]
其中,针对激光光束上的每个点,该点的三维坐标信息的获取方式包括:
[0056]
a1、确定该点相对于第一摄像头及线激光器所处的方位。
[0057]
线激光器所扫描到的物体可能处于第一摄像头的左侧,也可能处于第一摄像头的右侧。又由于线激光器及第一摄像头的位置是固定且已知的,因而,机器人可通过该点在第一图像中所处的方位,来确定该点相对于第一摄像头及线激光器所处的方位。
[0058]
仅作为示例,可从中间将第一图像分为左右两边,分别为左图像区域及右图像区域。则该点处于第一图像的左图像区域时,认为该点在第一摄像头的左侧,若此时发出该点的线激光器也在第一摄像头的左侧,则可知该点距离线激光器较近,反之,若此时发出该点的线激光器在第一摄像头的右侧,则可知该点距离线激光器较远;该点处于第一图像的右图像区域时,认为该点在第一摄像头的右侧,若此时发出该点的线激光器在第一摄像头的左侧,则可知该点距离线激光器较远,反之,若此时发出该点的线激光器在第一摄像头的右侧,则可知该点距离线激光器较近。
[0059]
a2、根据该方位确定对应的坐标计算公式。
[0060]
a3、基于第一摄像头、线激光器及步骤a2所确定的坐标计算公式,计算得到该点的三维坐标信息。
[0061]
可以理解,点相对于第一摄像头及线激光器的方位不同时,后续所使用的坐标计算公式也有所不同。然而,不管所使用的坐标计算公式如何,其必然会涉及如下与第一摄像头及线激光器相关的参数,包括:
[0062]
激光光束与预设平面的夹角θ,该预设平面指的是第一摄像头、第二摄像头及线激光器所形成的平面;
[0063]
第一摄像头的内参。具体地,可将第一摄像头的成像过程等效为小孔成像模型,则此处主要关注的内参为:小孔到第一摄像头的传感器面的垂直距离f;
[0064]
该点成像在第一摄像头的传感器面上所对应的水平距离dh,也可理解为该点水平方向的像素坐标与单个像素点在水平方向上的物理尺寸的乘积,也即第一图像上该点所在像素与第一摄像头的传感器面的中心像素在水平方向上的物理距离,可通过水平像素间隔(指的是该点所在像素与中心像素在水平方向上的间隔)
×
水平像素尺寸(指的是单个像素在水平方向上的物理尺寸,也即单个像素的物理宽度)计算而得;
[0065]
该点成像在第一摄像头的传感器面上所对应的竖直距离dv,也可理解为该点竖直方向的像素坐标与单个像素点在竖直方向上的物理尺寸的乘积,也即第一图像上该点所在像素与第一摄像头的传感器面的中心像素在竖直方向上的物理距离,可通过竖直像素间隔(指的是该点所在像素与中心像素在竖直方向上的间隔)
×
竖直像素尺寸(指的是单个像素在竖直方向上的物理尺寸,也即单个像素的物理高度)计算而得;
[0066]
投射该激光光束的线激光器与第一摄像头的透镜中心的距离d0。
[0067]
在一些实施例中,针对激光光束上的任一点来说,该点的三维坐标信息包括:该点相对于第一摄像头的垂直距离(也即该点在第一摄像头的光轴方向上的距离),记作z;该点相对于第一摄像头的水平位移,记作x;以及该点相对于第一摄像头的高度,记作h。基于此,坐标计算公式具体包括:用于计算z的第一坐标计算公式、用于计算x的第二坐标计算公式以及用于计算h的第三坐标计算公式。实际上,受点的方位影响的主要是第一计算公式及第二计算公式。也即,不管点的方位如何,第三计算公式均不变。
[0068]
为便于说明,此处以该点为第二线激光器(也即左测线激光器)所投射出的激光光束上的点为例,描述该点的三维坐标信息的获取过程:
[0069]
在第一种应用场景下,该点在第一图像中所处的方位为右侧,也即该点在第一摄像头的右侧。请参阅图5,图5给出了物体在第一摄像头的右侧时,俯视图的示例;也即,该点为第二线激光器所投射出的激光光束扫描到在第一摄像头右侧的物体(也即距离第二线激光器较远的物体)时所得到的点。其中,图5中的灰色双向箭头用于表示第一摄像头的透镜,其它各个字符参数在前文已有释义,此处不做赘述。基于该种方位,所采用的第一计算公式为:
[0070][0071]
所采用的第二计算公式为:
[0072][0073]
在第二种应用场景下,该点在第一图像中所处的方位为左侧,也即该点在第一摄像头的左侧。请参阅图6,图6给出了物体在第一摄像头的左侧时,俯视图的示例。其中,图6
中的灰色双向箭头用于表示第一摄像头的透镜,其它各个字符参数在前文已有释义,此处不做赘述。也即,该点为第二线激光器所投射出的激光光束扫描到在第一摄像头左侧的物体(也即距离第二线激光器较近的物体)时所得到的点。基于该种方位,由图6可知,所采用的第一计算公式为:
[0074][0075]
所采用的第二计算公式为:
[0076][0077]
请参阅图7,图7给出了物体与第一摄像头的正视图的示例。其中,图7中的灰色双向箭头用于表示第一摄像头的透镜,其它各个字符参数在前文已有释义,此处不做赘述。由该正视图可知,不管物体相对于第一摄像头在哪一方位,其高度的推导过程均相同。由图7可知,所采用的第三计算公式为:
[0078][0079]
至此,即已获得该点的三维坐标信息(x,h,z)。其中,x的正负符号用于表示该点在第一摄像头的左侧还是右侧。类似地,第一线激光器(也即右侧线激光器)所投射的激光光束上的各个点的三维坐标信息也可参照上述过程,例如,对于第一线激光器所投射出的激光光束上的点:若该点在第一摄像头的左侧,则说明该点距离第一线激光器较远,可采用第一种应用场景所示出的第一坐标计算公式及第二坐标计算公式来计算z及x;若该点在第一摄像头的右侧,则说明该点距离第一线激光器较近,可采用第二种应用场景所示出的第一坐标计算公式及第二坐标计算公式来计算z及x,此处不再赘述。
[0080]
其中,针对激光光束上的每个点,该点的颜色信息的获取方式包括:
[0081]
b1、在第一图像中确定该点的位置。
[0082]
仅作为示例,可通过坐标来表示该点在第一图像中的位置。记第一图像的图像坐标系为第一图像坐标系,则机器人可在第一图像中对该点进行定位,得到第一图像坐标系下该点的图像坐标,记作第一图像坐标。
[0083]
b2、根据该点的位置,在第二图像中找到与该点相对应的像素点。
[0084]
由于第一摄像头及第二摄像头的视野大部分相同,因而,第一图像中的大部分内容都可以映射至第二图像中。基于此,可根据第一图像中该点的位置,在第二图像中找到与该点相对应的像素点。
[0085]
仅作为示例,由于机器人已预先完成了对第一摄像头及第二摄像头的相机标定及畸变校正,因而可基于通过相机标定及畸变校正所获得的标定参数对该点的第一图像坐标进行坐标转换,即可得到第二图像坐标系下的第二图像坐标,其中,该第二图像坐标系为第二图像的图像坐标系。具体地,该坐标转换的过程可基于下式实现:
[0086][0087][0088]
其中,z为步骤a1-a3所计算出的该点相对于第一摄像头的垂直距离;(u1,v1)为该点的第一图像坐标;t1、t2及t3为中间变量,无实际意义;所求得的(u2,v2)为该点的第二图像坐标。
[0089]
在获得第二图像坐标后,即可将该第二图像坐标在第二图像中对应的像素点确定为与该点相对应的像素点。
[0090]
b3、基于该像素点的颜色得到该点的颜色信息。
[0091]
由前文可知,激光光束不会对第二摄像头产生影响,所以激光光束投射在物体上所呈现的各个点不会在第二图像中有所显示,也即该第二图像仍是物体在正常光照条件下得的彩色图像,表现了物体表面真实的颜色。基于此,在找到第二图像中与激光光束上的点相对应的像素点后,该像素点的颜色就是该点的真实颜色,由此可得到该点的颜色信息。
[0092]
可以理解,在每个拍摄时刻下,均会通过上述步骤a1-a3及步骤b1-b3获得激光光束中的每个点的三维坐标信息及颜色信息,由此可得到每个拍摄时刻下的点云数据。
[0093]
步骤403,根据移动过程中所获得的所有点云数据,构建彩色全局三维地图。
[0094]
在本技术实施例中,每个拍摄时刻下,如果机器人的前进方向的附近存在有物体,那么机器人就可以通过该拍摄时刻下的第一图像及第二图像来获得该拍摄时刻下激光光束投射在该物体所得的点云数据(也即基于该物体所反馈的点云数据)。考虑到点云数据不仅包括三维坐标信息,而且还包括颜色信息,因而只要机器人在待测环境中进行了充分的移动,即可通过移动过程中所获得的各个拍摄时刻下的点云数据来构建得到彩色全局三维地图。
[0095]
在一些实施例中,为了避免因移动过程中所获得的点云数据过多而导致彩色全局三维地图的构建效率受到影响,可基于预设的周期时长将该移动过程划分为至少两个预设时间段,则步骤403可具体表现为:
[0096]
d1、根据每个预设时间段内所得的所有点云数据,构建对应的彩色局部三维地图。
[0097]
该过程可以理解为,机器人每移动一段固定的时间,就可根据该段时间内获取到的点云数据来生成机器人在该段时间移动经过的区域所对应的彩色局部三维地图。具体地,彩色局部三维地图的生成过程中通常会涉及到点云滤波、点云配准及点云网格化等操作。为便于理解,下面以一个预设时间段内所得的所有点云数据为例,对点云滤波、点云配准及点云网格化作出说明:
[0098]
由于机器人移动经过的区域有可能存在重复,这会导致机器人在这些区域内所获得的点云数据也可能是重复的。此外,对于一些光照不均匀的地方,可能出现噪声点。基于
这些理由,机器人需要对获取到的点云数据进行点云滤波和精简,去除噪声点及离群点等,减少后续的计算量。仅作为示例,点云滤波和精简的方法有直通滤波及统计滤波等,此处不作赘述。
[0099]
机器人在扫描物体的不同位置时会获得不同位置所对应的点云数据,当这些位置存在重叠区域时,需要对点云数据进行配准。因而,可对滤波后的点云数据进行点云配准,该点云配准以点云数据的公共部分为基准,将不同位置的点云数据匹配到同一坐标系下,计算出相应的旋转和平移矩阵,同时消除冗余信息。仅作为示例,点云配准的公式如下:p_t=r*p_s t。其中,p_t为目标点云,p_s为待配准的点云,r为旋转矩阵,t为平移矩阵;
[0100]
在点云配准完成后,点云数据仍为一个个的点,并未连接起来。为实现三维地图的构建,需要点云数据进行网格化处理。因而,可对配准后的点云数据进行点云网格化,该点云网格化具体涉及三角网格化的操作,其过程简述如下:先将点云投影到二维平面,然后对投影后的点云做平面内的三角化,从而得到各点的连接关系,再根据连接关系确定三维点云的连接方式,即可得到三维地图。
[0101]
由于是基于一个预设时间段内所得的所有点云数据进行三维地图的构建,且点云数据包括颜色信息,因而通过上述点云滤波、点云配准及点云网格化的操作,获得的是该预设时间段所对应的彩色局部三维地图。
[0102]
d2、根据至少两个预设时间段所分别对应的彩色局部三维地图,构建彩色全局三维地图。
[0103]
只要机器人在待测环境中进行了充分的移动,即可得到多个预设时间段所分别对应的彩色局部三维地图,每个局部三维地图对应了待测环境里的一个子区域。由于机器人在移动过程中可通过同步定位与建图(simultaneous localization and mapping,slam)算法输出位姿信息,机器人由此可根据位姿信息将所有彩色局部三维地图放到同一个坐标系下进行合并,即可得到彩色全局三维地图。
[0104]
在一些实施例中,彩色全局三维地图的构建对机器人识别物体及策略性避障有一定正面作用。
[0105]
机器人在移动过程中,可利用第二摄像头所采集的单帧彩色图像,结合现有的人工智能(artificial intelligence,ai)识别技术对待测环境中的物体进行识别,并可依据不同的识别结果来使用不同的避障策略,例如:当识别到前方的物体为鞋子时,在距该物体2厘米处进行避障操作;当识别到前方的物体为宠物粪便时,在距该物体5厘米处进行避障操作。
[0106]
机器人移动结束后,即可获取到彩色全局三维地图,根据该彩色全局三维地图可以获取环境中物体的多视角信息,利用ai识别技术可以对物体进行更精确的识别,从而进行策略性避障。
[0107]
由上可见,在本技术实施例中,一方面,第一摄像头用于捕捉不可见光,因而激光光束投射在物体后能够在第一摄像头的传感器面成像,使得第一摄像头拍摄能够获得用于表征激光光束投射在物体上所呈现的点的灰度图像;另一方面,由于第二摄像头用于捕捉可见光,因而该激光光束不会对第二摄像头产生任何影响,使得第二摄像头拍摄获得用于表征物体颜色的彩色图像。由于激光光束投射在物体上所呈现的各个点实际为激光光束对物体的扫描,也即这些点也是在物体上的,因而基于以上特性,机器人通过第一摄像头及激
光光束来获得物体各个点的三维坐标信息,并通过第一摄像头、第二摄像头及激光光束来获得物体各个点的颜色信息。这可使得点云数据既包含三维坐标信息又包含颜色信息,由此实现彩色全局三维地图的构建,不仅能够反映待测环境中物体的位置,还能反映待测环境中物体的颜色,帮助机器人在定位环境中物体的同时也能识别环境中物体,一定程度提升机器人的避障效果。
[0108]
对应于上文所提供的三维建图方法,本技术实施例还提供了一种三维建图装置。上述三维建图装置应用于机器人,上述机器人包括第一摄像头、第二摄像头及线激光器,其中,上述线激光器所投射出的激光光束与地面垂直,上述激光光束为不可见光,上述激光光束投射在物体后在上述第一摄像头的传感器面成像,使得所述第一摄像头拍摄获得用于表征激光光束投射在物体上所呈现的点的灰度图像,环境中的可见光投射在物体后在所述第二摄像头的传感器面成像,使得所述第二摄像头拍摄获得用于表征物体颜色的彩色图像。如图8所示,该三维建图装置800包括:
[0109]
第一获取模块801,用于上述机器人在待测环境内的移动过程中,获取上述第一摄像头实时拍摄的第一图像及上述第二摄像头实时拍摄的第二图像,其中,上述第一图像及上述第二图像的拍摄时刻相同;
[0110]
第二获取模块802,用于基于上述激光光束获取点云数据,其中,上述点云数据包括上述激光光束的各个点的三维坐标信息及颜色信息,上述三维坐标信息基于上述第一图像获得,上述颜色信息基于上述第一图像及第二图像获得,上述激光光束的点指的是激光光束投射在物体上所呈现的点;
[0111]
构建模块803,用于根据上述移动过程中所获得的所有点云数据,构建彩色全局三维地图。
[0112]
可选地,上述第二获取模块802包括:
[0113]
方位确定单元,用于针对上述激光光束上的每个点,确定上述点相对于上述第一摄像头及上述线激光器所处的方位;
[0114]
公式确定单元,用于根据上述方位确定对应的坐标计算公式;
[0115]
坐标计算单元,用于基于上述第一摄像头、上述线激光器及上述坐标计算公式,计算得到上述点的三维坐标信息。
[0116]
可选地,上述坐标计算单元,具体用于基于上述激光光束与预设平面的夹角、上述第一摄像头的内参、上述点成像在上述第一摄像头的传感器面上所对应的水平距离、上述点成像在上述第一摄像头的传感器面上所对应的竖直距离、上述线激光器与上述第一摄像头的透镜中心的距离及上述坐标计算公式,计算得到上述点的三维坐标信息。
[0117]
可选地,上述点的三维坐标信息包括:上述点相对于第一摄像头的垂直距离,上述点相对于第一摄像头的水平位移及上述点相对于第一摄像头的高度;上述坐标计算公式包括第一坐标计算公式、第二坐标计算公式及第三坐标计算公式;
[0118]
上述坐标计算单元,包括:
[0119]
第一计算子单元,用于基于上述激光光束与预设平面的夹角、上述第一摄像头的内参、上述点成像在上述第一摄像头的传感器面上所对应的水平距离、上述线激光器与上述第一摄像头的透镜中心的距离及上述第一坐标计算公式,计算得到上述点相对于上述第一摄像头的垂直距离;
[0120]
第二计算子单元,用于基于上述激光光束与预设平面的夹角、上述第一摄像头的内参、上述点成像在上述第一摄像头的传感器面上所对应的水平距离、上述线激光器与上述第一摄像头的透镜中心的距离及上述第二坐标计算公式,计算得到上述点相对于上述第一摄像头的水平位移;
[0121]
第三计算子单元,用于基于上述第一摄像头的内参、上述点成像在上述第一摄像头的传感器面上所对应的竖直距离、上述点相对于上述第一摄像头的垂直距离及上述第三坐标计算公式,计算得到上述点相对于上述第一摄像头的高度。
[0122]
可选地,上述第二获取模块802包括:
[0123]
位置确定单元,用于针对上述激光光束上的每个点,在上述第一图像中确定上述点的位置;
[0124]
像素点查找单元,用于根据上述点的位置,在上述第二图像中找到与上述点相对应的像素点;
[0125]
颜色确定单元,用于基于上述像素点的颜色得到上述点的颜色信息。
[0126]
可选地,上述位置确定单元,具体用于在上述第一图像中,对上述点进行定位,得到第一图像坐标系下上述点的第一图像坐标,其中,上述第一图像坐标系为上述第一图像的图像坐标系;
[0127]
相应地,上述像素点查找单元,包括:
[0128]
坐标转换子单元,用于基于预设的标定参数对上述第一图像坐标进行坐标转换,得到第二图像坐标系下的第二图像坐标,其中,上述第二图像坐标系为上述第二图像的图像坐标系;
[0129]
像素点查找子单元,用于基于上述第二图像坐标在上述第二图像中查找对应的像素点。
[0130]
上述构建模块803,包括:
[0131]
第一构建单元,用于根据每个预设时间段内所得的所有点云数据,构建对应的彩色局部三维地图;
[0132]
第二构建单元,用于根据上述至少两个预设时间段所分别对应的彩色局部三维地图,构建彩色全局三维地图。
[0133]
由上可见,在本技术实施例中,一方面,第一摄像头用于捕捉不可见光,因而激光光束投射在物体后能够在第一摄像头的传感器面成像,使得第一摄像头拍摄能够获得用于表征激光光束投射在物体上所呈现的点的灰度图像;另一方面,由于第二摄像头用于捕捉可见光,因而该激光光束不会对第二摄像头产生任何影响,使得第二摄像头拍摄获得用于表征物体颜色的彩色图像。由于激光光束投射在物体上所呈现的各个点实际为激光光束对物体的扫描,也即这些点也是在物体上的,因而基于以上特性,机器人通过第一摄像头及激光光束来获得物体各个点的三维坐标信息,并通过第一摄像头、第二摄像头及激光光束来获得物体各个点的颜色信息。这可使得点云数据既包含三维坐标信息又包含颜色信息,由此实现彩色全局三维地图的构建,不仅能够反映待测环境中物体的位置,还能反映待测环境中物体的颜色,帮助机器人在定位环境中物体的同时也能识别环境中物体,一定程度提升机器人的避障效果。
[0134]
对应于上文所提供的三维建图方法,本技术实施例还提供了一种机器人。请参阅
图9,本技术实施例中的机器人9包括:存储器901,一个或多个处理器902(图9中仅示出一个)及存储在存储器901上并可在处理器上运行的计算机程序。其中:存储器901用于存储软件程序以及单元,处理器902通过运行存储在存储器901的软件程序以及单元,从而执行各种功能应用以及诊断,以获取上述预设事件对应的资源。上述机器人还包括第一摄像头、第二摄像头及线激光器,上述线激光器所投射出的激光光束与地面垂直,上述激光光束为不可见光,上述激光光束投射在物体后在上述第一摄像头的传感器面成像,使得所述第一摄像头拍摄获得用于表征激光光束投射在物体上所呈现的点的灰度图像,环境中的可见光投射在物体后在所述第二摄像头的传感器面成像,使得所述第二摄像头拍摄获得用于表征物体颜色的彩色图像。具体地,处理器902通过运行存储在存储器901的上述计算机程序时实现以下步骤:
[0135]
上述机器人在待测环境内的移动过程中,获取上述第一摄像头实时拍摄的第一图像及上述第二摄像头实时拍摄的第二图像,其中,上述第一图像及上述第二图像的拍摄时刻相同;
[0136]
基于上述激光光束获取点云数据,其中,上述点云数据包括上述激光光束的各个点的三维坐标信息及颜色信息,上述三维坐标信息基于上述第一图像获得,上述颜色信息基于上述第一图像及第二图像获得,上述激光光束的点指的是激光光束投射在物体上所呈现的点;
[0137]
根据上述移动过程中所获得的所有点云数据,构建彩色全局三维地图。
[0138]
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,针对上述激光光束上的每个点,上述点的三维坐标信息的获取方式包括:
[0139]
确定上述点相对于上述第一摄像头及上述线激光器所处的方位;
[0140]
根据上述方位确定对应的坐标计算公式;
[0141]
基于上述第一摄像头、上述线激光器及上述坐标计算公式,计算得到上述点的三维坐标信息。
[0142]
在上述第二种可能的实施方式作为基础而提供的第三种可能的实施方式中,上述基于上述第一摄像头、上述线激光器及上述坐标计算公式,计算得到上述点的三维坐标信息,包括:
[0143]
基于上述激光光束与预设平面的夹角、上述第一摄像头的内参、上述点成像在上述第一摄像头的传感器面上所对应的水平距离、上述点成像在上述第一摄像头的传感器面上所对应的竖直距离、上述线激光器与上述第一摄像头的透镜中心的距离及上述坐标计算公式,计算得到上述点的三维坐标信息。
[0144]
在上述第三种可能的实施方式作为基础而提供的第四种可能的实施方式中,上述点的三维坐标信息包括:上述点相对于第一摄像头的垂直距离,上述点相对于第一摄像头的水平位移及上述点相对于第一摄像头的高度;上述坐标计算公式包括第一坐标计算公式、第二坐标计算公式及第三坐标计算公式;
[0145]
上述基于上述激光光束与预设平面的夹角、上述第一摄像头的内参、上述点成像在上述第一摄像头的传感器面上所对应的水平距离、上述点成像在上述第一摄像头的传感器面上所对应的竖直距离、上述线激光器与上述第一摄像头的透镜中心的距离及上述坐标
计算公式,计算得到上述点的三维坐标信息,包括:
[0146]
基于上述激光光束与预设平面的夹角、上述第一摄像头的内参、上述点成像在上述第一摄像头的传感器面上所对应的水平距离、上述线激光器与上述第一摄像头的透镜中心的距离及上述第一坐标计算公式,计算得到上述点相对于上述第一摄像头的垂直距离;
[0147]
基于上述激光光束与预设平面的夹角、上述第一摄像头的内参、上述点成像在上述第一摄像头的传感器面上所对应的水平距离、上述线激光器与上述第一摄像头的透镜中心的距离及上述第二坐标计算公式,计算得到上述点相对于上述第一摄像头的水平位移;
[0148]
基于上述第一摄像头的内参、上述点成像在上述第一摄像头的传感器面上所对应的竖直距离、上述点相对于上述第一摄像头的垂直距离及上述第三坐标计算公式,计算得到上述点相对于上述第一摄像头的高度。
[0149]
在上述第一种可能的实施方式作为基础而提供的第五种可能的实施方式中,针对上述激光光束上的每个点,上述点的颜色信息的获取方式包括:
[0150]
在上述第一图像中确定上述点的位置;
[0151]
根据上述点的位置,在上述第二图像中找到与上述点相对应的像素点;
[0152]
基于上述像素点的颜色得到上述点的颜色信息。
[0153]
在上述第五种可能的实施方式作为基础而提供的第六种可能的实施方式中,上述在上述第一图像中确定上述点的位置,包括:
[0154]
在上述第一图像中,对上述点进行定位,得到第一图像坐标系下上述点的第一图像坐标,其中,上述第一图像坐标系为上述第一图像的图像坐标系;
[0155]
相应地,上述根据上述点的位置,在上述第二图像中找到与上述点相对应的像素点,包括:
[0156]
基于预设的标定参数对上述第一图像坐标进行坐标转换,得到第二图像坐标系下的第二图像坐标,其中,上述第二图像坐标系为上述第二图像的图像坐标系;
[0157]
基于上述第二图像坐标在上述第二图像中查找对应的像素点。
[0158]
在上述第一种可能的实施方式作为基础而提供的第七种可能的实施方式中,上述移动过程被划分为至少两个预设时间段,上述根据上述移动过程中所获得的所有点云数据,构建彩色全局三维地图,包括:
[0159]
根据每个预设时间段内所得的所有点云数据,构建对应的彩色局部三维地图;
[0160]
根据上述至少两个预设时间段所分别对应的彩色局部三维地图,构建彩色全局三维地图。
[0161]
应当理解,在本技术实施例中,所称处理器902可以是中央处理单元(central processing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0162]
存储器901可以包括只读存储器和随机存取存储器,并向处理器902提供指令和数据。存储器901的一部分或全部还可以包括非易失性随机存取存储器。例如,存储器901还可以存储设备类别的信息。
[0163]
由上可见,在本技术实施例中,一方面,第一摄像头用于捕捉不可见光,因而激光光束投射在物体后能够在第一摄像头的传感器面成像,使得第一摄像头拍摄能够获得用于表征激光光束投射在物体上所呈现的点的灰度图像;另一方面,由于第二摄像头用于捕捉可见光,因而该激光光束不会对第二摄像头产生任何影响,使得第二摄像头拍摄获得用于表征物体颜色的彩色图像。由于激光光束投射在物体上所呈现的各个点实际为激光光束对物体的扫描,也即这些点也是在物体上的,因而基于以上特性,机器人通过第一摄像头及激光光束来获得物体各个点的三维坐标信息,并通过第一摄像头、第二摄像头及激光光束来获得物体各个点的颜色信息。这可使得点云数据既包含三维坐标信息又包含颜色信息,由此实现彩色全局三维地图的构建,不仅能够反映待测环境中物体的位置,还能反映待测环境中物体的颜色,帮助机器人在定位环境中物体的同时也能识别环境中物体,一定程度提升机器人的避障效果。
[0164]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0165]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0166]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者外部设备软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0167]
在本技术所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0168]
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0169]
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关联的硬件来完成,上述的计算机
程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读存储介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机可读存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括是电载波信号和电信信号。
[0170]
以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献