本发明涉及环境感知技术,尤其涉及一种三维扫描装置、机器人及数据处理方法。
背景技术:
随着机器人技术的不断发展,服务机器人已在环境监测、公共安全、救灾救援、反恐防爆等领域实现了应用。在复杂非结构化的环境中,服务机器人需要获取外部环境的三维空间数据,以完成机器人位姿的估计、不同高度障碍物的识别及避障、运动轨迹的自动规划、目标物体的识别及检测等各项任务。因此,建立环境的三维空间信息是服务机器人实现各种功能的先决条件。
在复杂非结构化的环境中,由于存在不同高度的障碍物和不同大小的目标物体,因此需要激光雷达能够实现三维空间的扫描功能。目前能够进行三维环境测量的多线激光雷达非常昂贵,其体积和重量不适应于一般的服务机器人。而单线激光雷达通常被安置在机器人某个特定高度上,只能用于获取二维平面上的空间信息,不能实现三维空间的扫描功能。
相关技术中有一些将单线激光雷达安装在运动平台上,通过旋转扫描平面完成三维建图的解决方案。此类方案非常依赖于运动平台的运动精度驱动,需要使用较贵的高精度伺服驱动设备,并存在容易受到运动平台精度的影响的缺陷。此外,由于运动平台所属的转动机构需要将角度数据发送到处理模块,而单线激光雷达的扫描信息数据也需要发送给处理模块。运动平台从一个角度旋转到下一个角度需要一定时间,在每个角度也可以停留一段时间,激光雷达中的激光扫描旋转一周也需要时间(例如25毫秒),这些时间可能各不相同。而且,角度数据和激光扫描信息数据通过不同的线路来传播,因此两者的传播所需要的时间很可能不同,即延时不同,因此两种数据的产生和传输均无法同步,处理模块无法将接收到的激光扫描信息数据与角度数据正确地对应匹配出来。对于该问题,相关技术中的处理模块采用下面两种方法来进行数据处理。
第一种方法是,处理模块同时接收角度数据和激光扫描信息数据,并且认为两者的产生和传输都完全同步,即认为同一时刻接收到的角度数据和激光扫描信息数据完全对应,但这样的方式是非常粗糙的,容易出现对应错误。在三维建图中,预定转动角度微小的误差就会造成建图误差,而且误差会随着测量距离的增加而线性放大,使得环境描述不准确,因此难以适用于服务机器人。
第二种方法是,处理模块同时接收角度数据和激光扫描信息数据,然后将接收到的角度数据按时间比例线性地与激光扫描信息数据对应匹配,这样的方式也很粗糙,容易出现对应错误。
技术实现要素:
本发明的目的是提出一种三维扫描装置、机器人及数据处理方法,能够获得更为精准的三维扫描数据。
为实现上述目的,本发明提供了一种三维扫描装置,包括:激光雷达、转动机构和数据处理模块,其中,所述激光雷达中的激光进行旋转扫描,激光的扫描范围包括环境扫描区域和由角度确定辅助部件提供的标定区域;所述转动机构驱动所述激光雷达的本体转动并经过各个预定转动角度;所述数据处理模块接收所述激光雷达在所述本体转动经过的每个预定转动角度下获得的所述标定区域中的标定点的激光扫描信息数据和环境扫描区域的激光扫描信息数据,并根据所述标定区域中的标定点的激光扫描信息数据确定与所述环境扫描区域的激光扫描信息数据对应的所述预定转动角度。
在一个实施例中,所述激光雷达的线数为单线,或者所述激光雷达的线数为两线至六线中的一种。
在一个实施例中,所述转动机构驱动所述激光雷达的本体以方向与激光旋转扫描的轴线方向不同的轴线为轴转动,所述激光雷达的激光形成的扫描面随所述激光雷达的本体一起转动,并且激光出射轴心始终位于所述本体的转动轴线上。
在一个实施例中,所述环境扫描区域对应的扫描角度小于所述激光雷达的有效角度范围,以使所述标定区域的至少一部分对应的扫描角度处于所述有效角度范围内。
在一个实施例中,所述转动机构驱动所述激光雷达的本体朝预设方向连续旋转,或在预设角度范围内往复摆动。
在一个实施例中,所述预设角度范围的大小为180°或超过180°。
在一个实施例中,在所述转动机构驱动所述激光雷达的本体转动的过程中,转动机构在所述各个预定转动角度处停留预定时间。
在一个实施例中,所述预定时间等于或者长于激光雷达的激光扫描一圈的时间。
在一个实施例中,在各个预定转动角度处,所述激光雷达的本体不停留。
在一个实施例中,所述角度确定辅助部件是属于三维扫描装置的部件或者是不属于三维扫描装置的其他结构,所述标定区域形成于所述激光雷达的激光在所述角度确定辅助部件的表面上扫描的范围,所述标定区域与激光雷达的本体的转动轴线之间保持相对静止。
在一个实施例中,所述角度确定辅助部件被构造为使得预定转动角度、对应的标定点的方位和距离的关系符合预设公式,或者使得预定转动角度、对应的标定点的距离的关系符合预设公式。
在一个实施例中,沿所述激光雷达的本体的转动轴线从环境扫描区域向所述激光雷达看去的主视方向观察,所述角度确定辅助部件提供所述标定区域的部分呈圆形、渐开线形、椭圆形或三角形中的一种的整体或局部形状。
在一个实施例中,所述角度确定辅助部件包括与所述转动机构可转动地连接的壳体或者与所述转动机构分离设置的独立结构,所述转动机构驱动所述激光雷达的本体相对于所述壳体或独立结构转动。
在一个实施例中,所述壳体或独立结构具有避让所述本体的运动空间的内凹部分,所述标定区域形成于所述激光雷达的激光在所述内凹部分的内周表面的扫描范围中。
在一个实施例中,所述内凹部分被构造为使得其内周表面与激光雷达的本体的每个预定转动角度上的激光扫描面的至少一条交线呈圆弧形,且所述圆弧形的圆心位于所述激光雷达的激光的出射轴心上。
在一个实施例中,所述角度确定辅助部件为独立于所述三维扫描装置之外而存在的外部环境或设施,所述外部环境或设施相对于所述本体的转动轴线之间保持静止。
在一个实施例中,所述标定区域在所述本体转动经过的各个预定转动角度下包括单一标定点、连续或离散形式的多个标定点。
在一个实施例中,所述多个标定点部分地或完全地覆盖所述标定区域。
在一个实施例中,所述单一标定点为所述标定区域的边缘点,或者所述激光雷达的激光从所述环境扫描区域进入所述标定区域的起始点。
在一个实施例中,所述标定点的激光扫描信息数据包括所述标定点的距离数据,或者所述标定点的激光扫描信息数据包括所述标定点的距离数据和方位数据。
在一个实施例中,当根据某一预定角度下的标定点的激光扫描信息数据还不足以确定与所述环境扫描区域的激光扫描信息数据对应的所述预定转动角度时,则进一步结合相邻预定转动角度下的标定点的激光扫描信息数据来确定与所述环境扫描区域的激光扫描信息数据对应的所述预定转动角度。
在一个实施例中,不同的预定转动角度上对应的标定点的激光扫描信息数据互不相同。
在一个实施例中,所述转动机构包括激光雷达安装支架和转动驱动组件,所述激光雷达安装在所述激光雷达安装支架上,所述壳体安装在所述转动驱动组件与所述激光雷达安装支架之间。
在一个实施例中,所述激光雷达安装支架与所述壳体通过回转轴承可转动地连接。
在一个实施例中,所述转动驱动组件包括动力元件和齿形啮合传动机构,所述动力元件通过所述齿形啮合传动机构与所述激光雷达安装支架可操作地连接,驱动所述激光雷达安装支架绕所述本体的转动轴线转动。
在一个实施例中,所述齿形啮合传动机构为同步带传动机构或者多齿轮传动机构。
在一个实施例中,所述动力元件包括伺服电机和减速器,或者所述动力元件包括步进电机。
在一个实施例中,所述数据处理模块包括:
扫描数据接收单元,接收所述激光雷达在所述本体转动经过的每个预定转动角度下获得的所述标定区域中的标定点的激光扫描信息数据和环境扫描区域的激光扫描信息数据;
转动角度确定单元,根据所述标定区域中的标定点的激光扫描信息数据确定与所述环境扫描区域的激光扫描信息数据对应的预定转动角度。
在一个实施例中,所述数据处理模块还包括:
点云数据生成单元,结合所述预定转动角度和所述环境扫描区域的激光扫描信息数据生成三维环境点云数据。
在一个实施例中,所述数据处理模块还至少包括以下单元之一:
启动信号响应单元,响应于来自所述转动机构的数据采集启动信号,触发所述扫描数据接收单元开始接收所述激光雷达获得的激光扫描信息数据;
停止信号响应单元,响应于来自所述转动机构的数据采集停止信号,控制所述扫描数据接收单元在预定时间后停止接收所述激光雷达获得的激光扫描信息数据。
在一个实施例中,所述转动机构的转动范围内的各个预定转动角度与各个预定转动角度所对应的标定点的激光扫描信息数据遵循预设公式,所述转动角度确定单元具体包括:
公式计算确定子单元,根据所述预设公式和所述标定点的激光扫描信息数据计算出对应的预定转动角度,从而得到与相应的所述环境扫描区域的激光扫描信息数据匹配的预定转动角度。
在一个实施例中,还包括映射信息预存模块,预存所述标定点的激光扫描信息数据与所述预定转动角度之间的映射信息表。
在一个实施例中,还包括映射信息计算模块,根据预设公式计算所述标定点的激光扫描信息数据中的至少一种与预定转动角度之间的映射关系,并提供给所述映射信息预存模块进行保存。
在一个实施例中,所述转动角度确定单元包括:
查表确定子单元,用于在所述映射信息表中查找与检测到的标定点的激光扫描信息数据相同或最接近的被预存的标定点的激光扫描信息数据,进而将与所述相同或最接近的被预存的标定点的激光扫描信息数据对应的预定转动角度确定为与检测到的所述环境扫描区域的激光扫描信息数据匹配。
在一个实施例中,所述数据处理模块还包括标定单元,接收所述转动机构提供的所述预定转动角度和所述激光雷达获得的所述标定区域中的标定点的激光扫描信息数据,并对所述预定转动角度和所述标定点的激光扫描信息数据对应地保存到所述映射信息表中。
在一个实施例中,所述标定单元在接收所述转动机构在转动到每个预定转动角度时提供的所述预定转动角度之后,接收所述激光雷达获得的所述标定点的激光扫描信息数据,并将所述标定点的激光扫描信息数据与所述预定转动角度对应地存储到所述映射信息表中。
在一个实施例中,所述映射信息表以非更改方式存储在所述映射信息预存模块中。
在一个实施例中,所述标定单元在角度确定辅助部件与转动机构的旋转轴的相对状态变化超过阈值时,或者在经过预设时长后,进行重新标定,所述映射信息预存模块基于重新标定后得到的映射信息表进行更新。
在一个实施例中,还包括对所述激光雷达与所述角度确定辅助部件进行封闭的封闭罩,所述封闭罩对于所述激光雷达发射的激光波段是透明的。
为实现上述目的,本发明还提供了一种机器人,包括前述的三维扫描装置。
为实现上述目的,本发明还提供了一种角度确定辅助部件,其设置于三维扫描装置中或设置在三维扫描装置附近,所述三维扫描装置包括激光雷达和转动机构,所述激光雷达中的激光进行旋转扫描,激光的扫描范围包括环境扫描区域和由角度确定辅助部件提供的标定区域,所述转动机构驱动所述激光雷达的本体以方向与激光旋转扫描的轴线方向不同的轴线为旋转轴转动经过各个预定转动角度,
其中,所述标定区域与激光雷达的本体的转动轴线之间保持相对静止。
在一个实施例中,所述角度确定辅助部件被构造为具有规则的形状,从而使得预定转动角度、对应的标定点的方位和距离形成特定的公式,或者使得预定转动角度、对应的标定点的距离形成特定的公式。
在一个实施例中,所述角度确定辅助部件包括具有避让所述本体的运动空间的内凹部分的壳体,所述转动机构包括激光雷达安装支架和转动驱动组件,所述激光雷达安装在激光雷达安装支架上,所述激光雷达安装支架与所述壳体通过回转轴承可转动地连接。
为实现上述目的,本发明还提供了一种基于前述的三维扫描装置的数据处理方法,包括:
数据处理模块接收所述激光雷达在所述本体转动经过的每个预定转动角度下获得的所述标定区域中的所述标定点的激光扫描信息数据和环境扫描区域的激光扫描信息数据;
所述数据处理模块根据所述标定区域中的标定点的激光扫描信息数据确定与所述环境扫描区域的激光扫描信息数据对应的预定转动角度。
在一个实施例中,所述数据处理方法还包括:
所述数据处理模块结合所述预定转动角度和所述环境扫描区域的激光扫描信息数据生成三维环境点云数据。
在一个实施例中,所述数据处理方法还至少包括以下步骤之一:
响应于来自所述转动机构的数据采集启动信号,所述数据处理模块触发所述数据处理模块开始接收所述激光雷达获得的激光扫描信息数据;
响应于来自所述转动机构的数据采集停止信号,所述数据处理模块控制所述数据处理模块在预定时间后停止接收所述激光雷达获得的激光扫描信息数据。
在一个实施例中,转动机构的转动范围内的各个预定转动角度与各个预定转动角度所对应的标定点的激光扫描信息数据遵循预设公式;确定预定转动角度的操作具体包括:
所述数据处理模块根据所述预设公式和所述标定点的激光扫描信息数据计算出对应的预定转动角度,从而得到与相应的所述环境扫描区域的激光扫描信息数据匹配的预定转动角度。
在一个实施例中,所述三维扫描装置还包括映射信息预存模块,预存所述标定点的激光扫描信息数据与所述预定转动角度之间的映射信息表;确定预定转动角度的操作具体包括:
所述数据处理模块在所述映射信息表中查找与所述激光雷达获得的所述标定点的激光扫描信息数据匹配的预存映射信息,进而将所述预存映射信息中的预定转动角度确定为与检测到的所述环境扫描区域的激光扫描信息数据匹配。
在一个实施例中,预存映射信息表的操作具体包括:
根据预设公式计算所述标定点的激光扫描信息数据中的至少一种与预定转动角度之间的映射关系,并提供给所述映射信息预存模块进行保存。
在一个实施例中,所述数据处理模块还包括标定单元;所述数据处理方法还包括:
所述标定单元在接收所述转动机构在转动到每个预定转动角度时提供的所述预定转动角度之后,接收所述激光雷达获得的所述标定点的激光扫描信息数据,并将所述标定点的激光扫描信息数据与所述预定转动角度对应地存储到所述映射信息表中。
在一个实施例中,所述映射信息表以非更改方式存储在所述映射信息预存模块中;或者,所述数据处理方法还包括:
在经过预设时长后或者在所述角度确定辅助部件与所述转动机构的旋转轴的相对状态变化超过阈值时,进行重新标定,所述映射信息预存模块基于重新标定后得到的映射信息表进行更新。
为实现上述目的,本发明还提供了一种三维扫描装置,包括:激光雷达、转动机构和数据处理模块,其中,所述激光雷达中的激光进行旋转扫描;所述转动机构驱动所述激光雷达的本体转动并经过各个预定转动角度;所述数据处理模块在接收到所述转动机构发送的所述预定转动角度之后,再接收所述激光雷达在所述预定转动角度下获得的环境扫描区域的激光扫描信息数据,接着所述转动机构再将所述激光雷达的本体转动到下一个预定转动角度;重复上述所述数据处理模块的接收操作和所述转动机构的旋转操作,直至得到所有预定转动角度所对应的环境扫描区域的激光扫描信息数据,并结合所述预定转动角度和所述环境扫描区域的激光扫描信息数据生成三维环境点云数据。
在一个实施例中,在所述数据处理模块接收所述环境扫描区域的激光扫描信息数据的过程中,确定所述环境扫描区域的激光扫描信息数据是否稳定,如果没有稳定,则所述转动机构停留等待,直至所述环境扫描区域的激光扫描信息数据稳定,然后再将所述预定转动角度和稳定的所述环境扫描区域的激光扫描信息数据进行对应地存储。
基于上述技术方案,本发明的一个实施例将激光雷达在各个预定转动角度下的扫描范围至少分为环境扫描区域和标定区域,当激光雷达进行环境扫描时,数据处理模块可以接收到激光雷达测量到的每个预定转动角度所对应的标定区域中标定点的激光扫描信息数据和环境扫描区域的激光扫描信息数据,由标定点的激光扫描信息数据来精确地确定预定转动角度。相比于背景技术中涉及的相关技术,本发明实施例由于利用了激光雷达自身的测量数据作为标定信息来获得摆动角度,不仅减少了对运动机构的运动精度控制的依赖,而且测量精度更高,误差更小,获得的三维扫描数据更为精准。
本发明的另一个实施例在接收到转动机构发送的预定转动角度之后,再接收激光雷达在该预定转动角度下获得的环境扫描区域的激光扫描信息数据,能够明确预定转动角度与环境扫描区域的激光扫描信息数据的对应关系,因此也能够减少对运动机构的运动精度控制的依赖,而且测量精度更高,误差更小,获得的三维扫描数据更为精准。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明的三维扫描装置的一实施例的示意性框图。
图2为本发明的三维扫描装置的另一实施例的示意性框图。
图3为本发明的三维扫描装置的又一实施例的示意性框图。
图4为本发明的三维扫描装置的实施例的单线激光雷达的示意性俯视剖视图。
图5为本发明的三维扫描装置的实施例的示意性主视图。
图6为本发明的三维扫描装置的实施例的示意性局部剖除立体图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
如图1所示,为本发明的三维扫描装置的一实施例的示意性框图,结合图4和图5分别示出的三维扫描装置实施例中单线激光雷达的示意性俯视剖视图和主视图。参照图1、图4和图5,本发明的一实施例的三维扫描装置包括:激光雷达1、转动机构2和数据处理模块3。
参考图4和图5,激光雷达1能够通过发射激光作为探测信号并接收从目标反射回来的信号来实现测距功能,而且激光可以以激光出射轴心o点所在的激光雷达纵向中心轴为旋转轴来旋转扫描。当单线激光雷达的本体静止时,从出射轴心o点出射的激光位于一个平面上,该平面构成激光扫描面。当单线激光雷达的本体一直不停地运动时,从出射轴心o点出射的激光位于一个螺旋面上,可将360°范围内的螺旋面称为激光扫描面。其中,可以将激光绕之旋转的纵向中心轴称为“第一轴线”。该激光可以朝某个方向连续旋转,该旋转可通过例如反射镜的机械旋转来实现。激光雷达1的线数可优选为单线,线数也可以选为两线至四线中的一种,最好不要超过六线。多线数的激光雷达的本体静止时,也会存在多个激光扫描面。本发明实施例可以用造价低廉的单线雷达或低线数雷达实现全方位的三维扫描。
在激光旋转的360度范围内,由于激光雷达的内部结构,可能只有例如270度的范围内能够获得有效数据,因此可以将该有效扫描范围定义为“有效角度范围”。激光扫描信息数据可以包括激光的方位角以及相应方位角下的距离数据(例如到目标的表面上某点的距离),例如,假设某个标定点a1的激光扫描信息数据为(10°,30mm)。在下面的描述中,如果激光照射的是某个标定点,则此时激光扫描信息数据所包括的“激光的方位”也可称为“标定点的方位”。
上面描述了激光雷达中的激光的旋转,下面描述激光雷达的本体的旋转(或者也可以称之为“转动”)。根据本申请的实施例,可以设置驱动激光雷达1的本体旋转的转动机构2。具体地说,转动机构2驱动激光雷达1的本体绕另一旋转轴线(过o点且垂直于图5的纸面)旋转,从而使得激光所形成的扫描面也随之旋转,这样各个旋转角度下对应扫描面的扫描区域可以实现三维空间的扫描测距功能。其中,可将所述另一旋转轴线称为“第二轴线”。该“第二轴线”的方向与前述“第一轴线”不同,即转动机构2驱动激光雷达1的本体以方向与激光旋转扫描的轴线方向不同的轴线为轴转动。
为了将激光雷达1的本体的旋转角度与激光雷达1内部的激光的旋转方位角相区分,下面将激光雷达1的本体的旋转角度称为“转动角度”。转动机构2可以驱动激光雷达1朝某一方向连续旋转,也可以在预设角度范围(例如预设角度范围的大小为180°)内往复摆动,例如转动机构2以水平面为基准在180°内往复摆动,这样在激光雷达的本体往复旋转180°后能够使扫描面覆盖主视平面内的360°的三维扫描范围。在另一个实施例中,预设角度范围的大小也可以为180°以上,例如200°等,以确保一定的裕度。当然,在需要对目标进行快速扫描的情况下,优选180°。参考图5,激光雷达1形成的激光出射轴心o始终位于所述转动机构2的旋转轴线(即前面的“第二轴线”)上。
参考图4所示的激光雷达的示意性俯视剖视图,可以看到激光雷达1一圈(360°)的扫描范围包括环境扫描区域b和标定区域a,当然还可以包括无效角度范围。环境扫描区域b是目标以及目标所处的环境的区域,标定区域a是激光扫描面所扫到的角度确定辅助部件(后面将详细描述)的表面区域并且在该区域中存在标定点。标定区域a与激光雷达1的本体的各个预定转动角度下的激光扫描面的交线中存在至少一个标定点。如果每个预定转动角度下的一个激光扫描面与标定区域的交线上存在的标定点的数量为多个,则这多个标定点可以构成一个标定点组,此时,标定区域在每个预定转动角度下都具有一个标定点组。激光发射到标定点并接收反射回来的信号以获得标定点的激光扫描信息数据。标定点的激光扫描信息数据用于帮助确定激光雷达1的本体的预定转动角度。激光雷达在扫描环境扫描区域b和标定区域a中的标定点之后,获得了环境扫描区域b以及标定点的激光扫描信息数据,这两种数据一起被发送到数据处理模块3,标定区域a中的标定点的激光扫描信息数据将用于帮助确定与其一起被发送的同一圈中的环境扫描区域b的激光扫描信息数据是在激光雷达1的本体的什么预定转动角度下测得的。
为了形成标定区域a,本发明的三维扫描装置的实施例可以包括角度确定辅助部件5。标定点可处于有效角度范围(例如前面提到的270°的范围)内,以保证能够返回有效的激光扫描信息。图6为本发明的三维扫描装置的实施例的示意性局部剖除立体图。
参照图4、图5和图6,在一个实施例中,角度确定辅助部件5可以包括与转动机构2可转动地连接的壳体51。转动机构2驱动激光雷达1以第二轴线为旋转轴相对于壳体51旋转,从而使激光扫描面可以扫过壳体51的轮廓表面。旋转机构2可转动地安装在壳体51上并带动激光雷达1的本体旋转,这种结构使得三维扫描装置整体更加紧凑和稳定。当激光在被转动机构2驱动到某个预定转动角度θ下进行一圈360度的扫描时,激光会扫描环境扫描区域b(假如区域b中存在目标,则会将激光反射回来),并且激光也会扫描壳体51的轮廓表面上的两个标定区域a。此外,也可以扫描到两个标定区域a中间的无效区域。
参照图4,在一个实施例中,标定区域a与环境扫描区域b的角度之和既可以小于也可以大于有效角度范围(例如前面提到的270°),而环境扫描区域b的范围则可以根据期望的扫描范围进行选择,相应的环境扫描区域b对应的扫描角度优选小于有效角度范围,以保证标定区域a的至少有一部分对应的扫描角度处于有效角度范围内,即保证壳体51的标定区域a中存在有效的标定点。
对于本发明的三维扫描装置来说,角度确定辅助部件5可以是属于三维扫描装置的部件,也可以是不属于三维扫描装置的其他结构。标定区域a可以形成在激光雷达1的激光在角度确定辅助部件的表面上扫描的范围中,而标定区域与激光雷达1的本体的转动轴线(即第二轴线)之间保持相对静止。另外,除了角度确定辅助部件包括与转动机构2可转动地连接的壳体51的结构形式之外,还可以采用包括与转动机构2分离设置的独立结构,转动机构2可以驱动激光雷达1的本体相对于该独立结构转动。该独立结构与转动机构2不连接或者接触,但能够保持与第二轴线的相对静止关系即可,以便提供稳定的参照作用。另一种角度确定辅助部件的实例可以为独立于三维扫描装置之外而存在的外部环境或设施,例如三维扫描装置的安装位置周围的墙壁、台阶、自然存在物等,相应的,需要使外部环境或设施相对于激光雷达1的本体的转动轴线保持静止。
下面进一步详细描述该实施例的壳体51的结构。如图4和图6所示,壳体51可以具有避让激光雷达1的本体的运动空间的内凹部分,由激光雷达1在内凹部分的内周表面(图5的内周向轮廓)可以形成标定区域a。可参考的,前述的独立结构也可以具有避让激光雷达1的本体的运动空间的内凹部分,标定区域a可形成于激光雷达1的激光在所述内凹部分的内周表面的扫描范围中。
标定点可以完全地覆盖标定区域a,当然,本发明不限于此,标定点也可以部分地覆盖标定区域。在一个实施例中,标定区域a在任一个预定转动角度下的标定区域可以包括连续的多个标定点或离散的多个标定点。在另一个实施例中,标定区域在任一个预定转动角度下的标定区域可以仅仅只存在一个标定点,即单一标定点,例如,单一标定点为标定区域a的边缘点,或者激光从环境扫描区域b进入标定区域a的起始点。
标定点数量越少,则数据处理模块处理的标定区域的激光扫描信息数据越少,处理/运算速度越快;标定点数量越多,则数据处理模块处理的标定区域的激光扫描信息数据越多,虽然处理速度较慢,但由于具有多个标定点数据,可以全面考虑多个点的数据,从而避免或至少减少意外的畸变点(例如,有飞虫突然飞入激光雷达与角度确定辅助部件之间或者信号突然畸变)带来的影响。
在每个预定转动角度下的标定区域采用多个标定点的情况下,还可以进一步优化。激光雷达1的本体的每个预定转动角度上的激光扫描面与所述内凹部分的内周表面可以有一条或多条交线。其中至少一条交线呈圆弧形,且所述圆弧形的圆心位于所述激光雷达1的激光出射轴心上。具体地,参考图4(俯视图)以及图6,在图4的俯视图中,此时激光雷达1的本体处于0度的位置上,激光扫描面平行于纸面(水平面),可以看到激光雷达1的本体的每个预定转动角度上的激光扫描面与壳体5的内凹部分的内周表面有左右两条交线,可以看到这两条交线均呈圆弧形状。在这样的设置下,激光雷达1的轴心o到图4的右侧的标定区域a上的每个标定点的距离是相同的d2,轴心o到图4的左侧的标定区域a上的每个点的距离是相同的d1。这样,即便在标定区域a的长度较大的情况下,激光在扫描一圈的过程中也只有最多两个数值的标定距离(即d1和d2),因此可以简化计算过程。另外,还可以通过求平均、剔除异常点等手段来降噪,去除畸点。
进一步地,从图5所示的主视方向上看,实际上只要激光雷达从正立变为倒立,即旋转180°之后,激光扫描面就可以覆盖整个360度的空间,因此实际上只需要主视方向上扫描角度大小为180°的标定区域用于帮助确定预定转动角度即可。例如,在图5的实施例中,在主视方向上看,壳体51的内周轮廓的上部为一个半圆形,内周轮廓的下部则为两条平行线,只需要用上部0°-180°的区域作为标定区域即可。此时,可以看到激光雷达1的本体的每个预定转动角度上的激光扫描面与壳体51的内凹部分的内周表面有左右两条交线,但是由于标定区域只取图5的上半部分的半圆,因此激光雷达1的本体的每个预定转动角度上的激光扫描面与壳体51的标定区域a只有一条交线,将这一条交线设置成圆弧形状,并使圆弧线的圆心在轴心o上。在这样的设置下,激光雷达1的轴心o到标定区域a上的每个标定点的距离是相同的一个数值,这样可以更加简化计算过程。
本发明不限于图5的实施例,角度确定辅助部件可以被构造为使得预定转动角度、对应的标定点的方位和距离的关系符合预设公式,或者使得预定转动角度、对应的标定点的距离的关系符合预设公式。例如,沿所述激光雷达1的本体的转动轴线从环境扫描区域b向所述激光雷达1看去的主视方向观察,所述角度确定辅助部件5提供所述标定区域a的部分呈圆形、渐开线形、椭圆形或三角形中的一种的整体或局部形状。
参考图5,相应的将壳体5的内周表面构造成符合预设公式即可,例如,在前述提到的主视方向上观察,可将内凹部分的至少180°范围内的周向轮廓设置为圆形、渐开线形、椭圆形或者三角形等。具体地说,旋转机构2的转动范围内的各个预定转动角度与对应的标定点的方位和距离数据遵循预设函数,三者可以形成特定的公式(或距离构成方位和预定转动角度的二元函数)。当然,还有一种简化的形式,即如果各个预定转动角度下的标定区域均只有一个标定点(即内周表面只存在一个标定点,例如,将激光从环境扫描区域b开始进入标定区域的起始点作为唯一的标定点),则预定转动角度变量和距离变量这两者遵循特定的公式(或距离为预定转动角度的函数),这种情况也可以认为壳体5的内周表面符合预设的公式。
在一个实施例中,为了通过标定点的激光扫描信息数据来确定唯一对应的激光雷达1的本体的预定转动角度,可以使激光雷达1的本体的每个预定转动角度下的标定点的激光扫描信息数据与其他预定转动角度下的标定点的激光扫描信息数据不同。例如,假设预定转动角度0°下有三个标定点a1、a2和a3,其激光扫描信息数据为(10°,30mm)、(13°,51mm)和(15°,37mm),而预定转动角度9°下的三个对应标定点b1、b2和b3的激光扫描信息数据为(10°,33mm)、(13°,47mm)和(15°,37mm),则此时可通过三个标定点a1、a2和a3的激光扫描信息数据和三个标定点b1、b2和b3的激光扫描信息数据来确定出各自对应的预定转动角度或至少将两个预定转动角度0°和9°区分开来。
前面所提到的标定点的激光扫描信息数据不同并不要求所有对应标定点(激光方位对应)的距离数据不同,可以只有一对对应标定点的距离数据不同,例如,在上面的示例中,虽然a3和b3的距离数据相同,但是a1与b1不同,a2与b2不同,因此可以做到区分。这里的标定点的激光扫描信息数据可以包括标定点的距离数据,例如在前面各个预定转动角度对应的标定区域只有一个标定点或者各个标定点的距离数据基本相同的情况下,可以只使用标定点的距离数据作为标定点的激光扫描信息数据。
另外,还可以将包括标定点的数量、标定点的覆盖范围和相邻预定转动角度中的至少一种作为附加信息发送给数据处理模块。例如,当根据某一预定角度下的标定点的激光扫描信息数据还不足以确定与所述环境扫描区域b的激光扫描信息数据对应的所述预定转动角度时,还可以进一步结合相邻预定转动角度下的标定点的激光扫描信息数据来确定与所述环境扫描区域b的激光扫描信息数据对应的所述预定转动角度。优选地,为了使每个预定转动角度对应的标定点的距离数据不同,同时为了使前面提到的“预设公式”的形式变得简单,可以使转动机构2的所有预定转动角度下的标定点符合预设公式。
如图5所示,在一个实施例中,可以让所有预定转动角度对应的各个标定点所在的曲线形成渐开线,以符合渐开线公式,从而使标定点到轴心o的距离随着预定转动角度的增大而增大,以简化预定转动角度和距离数据(以及标定点的方位数据等)的计算关系更为简单。当然,本发明实施例可选用的预设公式不限于渐开线公式,在另一个实施例中,预设公式也可以是距离随预定转动角度的变化而单调变化的其他预设函数曲线公式,这样不仅可以确保各个预定转动角度对应的标定点的距离数据不同,而且也能够容易的根据预设函数曲线公式来从距离数据计算出预定转动角度。
下面以图5所示的实施例为例进行具体说明。当激光雷达1偏心设置在壳体51的内凹部分中时(即激光雷达1的轴心o与壳体51的上半圆周的圆心不重合时),轴心o到内凹部分的内周表面的距离随着激光雷达1的本体的预定转动角度的增大而增大。当激光雷达1的本体处于正立状态(即预定转动角度为0°)时,轴心o点到标定区域a(内周表面的右侧)距离最近,为d2;然后逆时针转动,轴心o点到内周表面的上部的标定区域a的距离越来越大,例如变为d3;最后轴心o点到内周表面的左侧的标定区域a的距离达到最大,变为d1。
在激光雷达1的本体摆动的过程中,可以认为激光雷达1的扫描面的一半从右侧的0°(假定为图5的标注d2的方向)向着左侧的180°(假定为图5的标注d1的方向)摆动,并可以在各个离散的预定转动角度适当停留预定时间,该预定时间优选等于或者长于激光雷达1的激光扫描一圈的时间。例如,某型号的激光雷达1中的激光扫描一圈需要25ms,则激光雷达在每个预定转动角度(例如,0度、9度、18度、……)下停留的时间大于等于25ms,以确保激光雷达1在该预定转动角度下能够完整地采集到激光扫描一圈的数据。而为了确保一定的裕度,停留的时间可以大于25ms,例如30ms或50ms等。当然,在需要快速扫描的情况下,停留的时间优选等于25ms。这在摆动到180°之后,激光雷达再从180°向0°摆动,从而实现往复摆动。当然,如果激光雷达的本体的转动速度低于预定速度,且检测精度要求较低,则在各个预定转动角度,激光雷达1的本体也可以不停留。
在另一个实施例中,即便可能存在两个预定转动角度对应的标定点的激光扫描信息数据相同的情况,但是其仍可以通过其各自相邻的预定转动角度将这两个预定转动角度简单地区别开来,则这种情况也是落入本申请的范围之内。即在主视方向上看(即从图5的方向上看),可将壳体5的内凹部分的至少180°范围内的周向轮廓(可为图5的上半周轮廓,也可为图中未示出的下半周轮廓、左半周轮廓、斜半周轮廓等)设定为标定区域。图5中标注的d2对应的预定转动角度0°,逆时针旋转则转动角度变大,d1对应的角度为180°。
在相邻预定转动角度的间隔为1°的情况下:假定5°的预定转动角度下的标定点(或标定点组)a1的激光方位数据和距离数据与130°的预定转动角度下的标定点(或标定点组)a2的激光方位数据和距离数据相同。如果只看这两组数据,则无法确定它们究竟哪一组是对应5°的预定转动角度,哪一组是对应130°的预定转动角度。此时,可引入与该未知预定转动角度(假设是第二预定转动角度)的上一个相邻预定转动角度(第一预定转动角度)和/或下一个相邻预定转动角度(第三预定转动角度)的相应数据。例如,5°的上一相邻预定转动角度4°下的数据与130°的上一相邻预定转动角度129°下的数据不相同,则在另一个实施例中,也可以通过相邻角度的激光扫描信息数据来确定与检测得到a1的激光扫描信息数据和a2的激光扫描信息数据分别对应的预定转动角度。
在本发明的另一个实施例中,在构造角度确定辅助部件时,可以不使预定转动角度、对应的标定点的方位和距离的关系符合预设公式,而是将角度确定辅助部件构造成任意的不规则形状。在所述本体转动经过的各个预定转动角度下的标定点组的激光扫描信息数据随机分布。在这种情况下,计算将变得复杂甚至难以实现,但是该实施例将不通过公式计算来确定对应的预定转动角度,而是通过随后提到的标定过程来确定与检测到的激光扫描信息数据对应的预定转动角度。这个实施例的优点是确定辅助部件的形状和尺寸不需要按照精确尺寸制造,安装也不需要精度,制造安装成本将大大降低。
如图6所示,为本发明的三维扫描装置的实施例的示意性局部剖除立体图。在图6中,旋转机构2具体包括激光雷达安装支架28和转动驱动组件,激光雷达1安装在激光雷达安装支架28上,壳体51安装在转动驱动组件与激光雷达安装支架28之间。壳体51可以通过安装板23固定在转动驱动组件的底架上,也可以为转动驱动组件的底架的一部分。
参考图6,转动驱动组件可以具体包括动力元件和齿形啮合传动机构。动力元件通过所述齿形啮合传动机构与激光雷达安装支架28可操作地连接,驱动激光雷达安装支架28绕旋转轴线转动。在图6中,动力元件可包括伺服电机21和减速器22。根据需要,还可以进一步设置离合器等。在另一实施例中,动力元件也可以包括步进电机或者其他动力形式的部件例如气动马达、回转气缸或液压马达等。
齿形啮合传动机构可以通过齿形啮合来实现精准的动力传递,其可以包括同步带传动机构。在图6中,同步带传动机构可以具体包括主动轮24、齿形皮带25和从动轮26。为了使激光雷达安装支架28转动更为顺畅,可使激光雷达安装支架28与所述壳体5通过回转轴承27转动连接。在另一个实施例中,齿形啮合传动机构还可以包括多齿轮传动机构,即通过多个齿轮来啮合传动。
在本发明三维扫描装置的另一实施例中,还可以包括对所述激光雷达1与所述角度确定辅助部件5进行封闭的封闭罩,该封闭罩对于所述激光雷达1发射的激光波段是透明的,这样就能够排除操作者的手或飞虫等异物误入激光雷达1与角度确定辅助部件5之间而造成标定点的激光扫描信息数据无法正常或准确的获取问题,从而提高三维扫描装置的可靠性。
数据处理模块3能够接收每个预定转动角度下的单线激光雷达1获得的标定区域a和环境扫描区域b的激光扫描信息数据(例如激光方位角以及相应的距离等)。如图2所示,为本发明三维扫描装置的另一实施例的结构示意图。与图1的实施例相比,数据处理模块3包括:扫描数据接收单元31和转动角度确定单元32。其中,扫描数据接收单元31接收激光雷达1在本体处于每个预定转动角度下获得的标定区域a中标定点的激光扫描信息数据和环境扫描区域b的激光扫描信息数据。转动角度确定单元32根据标定点的激光扫描信息数据确定预定转动角度。对于提供标定区域a的角度确定辅助部件5,转动角度确定单元32可以根据前面提到的“预设公式”以及接收到的标定点的激光扫描信息数据(例如标定点的距离数据、方位数据等)计算出标定点的激光扫描信息数据对应的预定转动角度。
在另一个实施例中,数据处理模块3还可以进一步包括点云数据生成单元,该单元可以结合所述预定转动角度和所述环境扫描区域b的距离数据生成三维环境点云数据。由于该标定点的激光扫描信息数据来自于激光雷达1自身的测量数据,同一圈的标定点的激光扫描信息数据和环境扫描区域b的激光扫描信息数据位于同一数据单元(例如同一帧)中并通过相同的线路架构传输,因此数据处理模块3在接收到这两种数据时也能将其作为同一数据单元。这样,当转动角度确定单元32根据标定点的激光扫描信息数据确定出预定转动角度之后,点云数据生成单元就能够将激光雷达1的本体的预定转动角度与环境扫描区域b的激光扫描信息数据准确地对应出来,而避免由于不同数据的接收延迟导致的数据无法同步而错误匹配的问题,使得数据处理模块3获得准确的预定转动角度,进而确保基于空间三维点云数据的建图更加精准。
根据本发明的实施例,在一次三维扫描中,转动机构2可以向数据处理模块发送最多两个信号,第一信号是激光雷达1的本体处于0°(例如,图5所示的激光雷达正立、锥台上小下大的状态)并且转动机构2准备开始让激光雷达1的本体转动时,转动机构2向数据处理模块3发送一个数据采集启动信号,这个数据采集启动信号可以体现初始位置或者带有初始角度数据0°,当然也可以不体现任何角度。第二信号是激光雷达1的本体处于180°(例如,与图5相反的激光雷达倒立、锥台上大下小的状态)时,转动机构2向数据处理模块3发送一个数据采集停止信号,该数据采集停止信号可以体现停止位置或者带有停止角度数据180°,当然也可以不体现任何角度。总而言之,转动机构2可以不向数据处理模块发送任何角度数据,或者转动机构2最多只发送两个体现初始角度和结束角度的数据采集启动信号和数据采集停止信号。
相应的,数据处理模块3可以至少包括启动信号响应单元和停止信号响应单元中之一。其中,启动信号响应单元响应于来自所述转动机构的数据采集启动信号,触发所述扫描数据接收单元31开始接收所述激光雷达1获得的激光扫描信息数据。停止信号响应单元响应于来自所述转动机构的数据采集停止信号,控制所述扫描数据接收单元31在预定时间后停止接收所述激光雷达1获得的激光扫描信息数据。例如,在接收到上述第二信号之后再顺延一个很短的预定时间(例如激光雷达1的激光扫描一圈所需要的时间,例如25ms,当然也可以是略大于扫描一圈的时间)后停止接收激光扫描信息数据,只要保证能够接收到180°的预定转动角度下的激光雷达完整的一圈扫描信息数据即可。
由于转动机构2可以根据需要最多向数据处理模块发两次数据,因此减小了数据处理模块3的数据处理量,简化了处理过程,也减少了通信干扰和功耗。
数据处理模块3接收每个预定转动角度下激光雷达1获得的标定区域a中标定点的激光扫描信息数据时,可以根据标定点的激光扫描信息数据确定预定转动角度。根据本发明的实施例,对于被配置为使得预定转动角度、对应的标定点的方位和距离的关系符合预设公式,或者使得预定转动角度、对应的标定点的距离的关系符合预设公式的角度确定辅助部件来说,有几种确定预定转动角度的方法。第一种方法是采用公式计算的方法,第二种方法是采用查找表的方法。而在采用查找表的方法中,又分为采用数据固定的查找表的方法,以及采用数据更新的查找表的方法。这些方法将在下面针对图2和图3的描述中详细解释。
对于第一种公式计算的方法,在激光雷达1的本体的各个预定转动角度与预定转动角度所对应的标定点的激光扫描信息数据遵循特定公式的条件下,转动角度确定单元32可以具体包括公式计算确定子单元,该子单元能够根据预设公式和所述标定点的激光扫描信息数据计算出对应的预定转动角度,从而得到与相应的所述环境扫描区域b的激光扫描信息数据匹配的预定转动角度。
预定转动角度的确定不限于根据特定公式进行计算的方式,也可以前述第二种查表的方式。如图3所示,为本发明三维扫描装置的又一实施例的结构示意图。与上一实施例相比,本实施例还可以进一步包括映射信息预存模块4,预存所述标定点的激光扫描信息数据与所述预定转动角度之间的映射信息表,即预存查找表。映射信息表内的数据映射信息可以通过公式计算获得,即在另一实施例中,三维扫描装置还可以包括映射信息计算模块,根据预设公式计算所述标定点的激光扫描信息数据中的至少一种与预定转动角度之间的映射关系,并提供给所述映射信息预存模块4进行保存。
对于预存在映射信息预存模块4中的映射信息表来说,其可以包括至少一组预存映射信息记录,而预存映射信息记录可以包括每个预定转动角度以及该预定转动角度对应的标定点的激光扫描信息数据。而在一个实施例中,转动角度确定单元32可以包括查表确定子单元,该子单元可以在所述映射信息表中查找与检测到的标定点的激光扫描信息数据相同或最接近的被预存的标定点的激光扫描信息数据,进而将与所述相同或最接近的被预存的标定点的激光扫描信息数据对应的预定转动角度确定为与检测到的所述环境扫描区域b的激光扫描信息数据匹配。这里最接近的被预存的标定点的激光扫描信息数据是指该被预存的标定点的激光扫描信息数据与检测到的标定点的激光扫描信息数据的差距非常小,而这种差距可能是因为三维扫描装置在运行时的误差(例如抖动等)造成的,因此在预设的差距范围内仍然可以认定为数据匹配,另一方面,最接近的被预存的标定点的激光扫描信息数据也表示在各个预定转动角度所对应的被预存的标定点的激光扫描信息数据中与检测到的标定点的激光扫描信息数据的差距最小。
前面提到查找表的方法分为采用数据固定的查找表的方法和采用数据更新的查找表的方法。这里首先介绍采用数据固定的查找表的方法。当角度确定辅助部件的形状的机械加工精度较高,即实际形状与预设的形状偏差很小时,则映射信息预存模块4中存储的是根据前述预设公式事先计算得到的离散的多个预定转动角度与多个对应的距离数据,甚至还可能包括多个对应的激光方位。这些数值在设备出厂时就被固定在映射信息预存模块4中,以后不再变化。当然,除了利用预设公式计算之外,在角度确定辅助部件直接采用任意不规则的形状的情况下,也可以通过出厂前的一次标定实验(随后会详细描述)得到各个相应的数据(预定转动角度以及对应的激光扫描信息数据),并把所有相关的数据存储在映射信息预存模块4中,以后不再变化。这种标定的方法不仅适用于采用不规则形状的角度确定辅助部件,也适用于符合预设公式的具有规则形状的角度确定辅助部件。综上所述,映射信息表可以采用以非更改方式存储在所述映射信息预存模块4中。
而在另一实施例中,当角度确定辅助部件对环境的稳定性差或者安装不牢固时,或者当转动机构2频繁驱动激光雷达1的本体转动时,可能会出现这样的情况:在经过一定时间以后,角度确定辅助部件5与转动机构2的旋转轴的相对状态(主要是相对位置)变化可能会超过阈值,那么在这种情况下,需要每隔预设时长或每当角度确定辅助部件5与转动机构2的旋转轴的相对状态变化超过阈值时,重新进行标定,映射信息预存模块4基于重新标定后得到的映射信息表进行更新。
标定操作可以由数据处理模块中的标定单元执行,即在另一个实施例中,数据处理模块3还可以进一步包括标定单元。标定单元能够接收转动机构2提供的所述预定转动角度和所述激光雷达1获得的所述标定区域a中的标定点的激光扫描信息数据,并对所述预定转动角度和所述标定点的激光扫描信息数据对应地保存到所述映射信息表中。例如,通过先设置一个预定转动角度,然后再接收该预定转动角度下标定区域a中标定点的激光扫描信息数据,将预定转动角度与对应的激光扫描信息数据存储在映射信息预存模块4中。
相应地,在实际测量目标的过程中,在获得环境扫描区域b与标定点的激光扫描信息之后,转动角度确定单元32就能够从映射信息预存模块4的被最新标定过的数据中查找与实际测得的标定点的扫描信息最接近的标定点数据,进而可以根据映射关系非常准确地找出对应的预定转动角度。使用这种定期标定的方式,不仅能够减少对运动机构的运动精度控制和机械加工精度的依赖,而且可以大大减少运动机构的机械振动带来的不利的影响,从而能够降低设备成本,而且测量精度更高,误差更小。
上面提到的标定操作先让转动机构将激光雷达的本体转动到某一预定转动角度,然后将关于该预定转动角度的角度数据发送到数据处理模块中的标定单元,标定单元在接收到该预定转动角度数据后,再接收激光雷达获得的所述标定点的激光扫描信息数据,并将所述标定点的激光扫描信息数据与所述预定转动角度对应地存储到所述映射信息表中。在接收激光雷达所获得的标定点的激光扫描信息数据时,优选等待一段时间以确定标定点的激光扫描信息数据基本没有变化(以防接收的是上一个角度对应的标定区域中标定点的激光扫描信息数据),然后将该预定转动角度与确定的扫描信息数据对应地存储在存储模块的相应区域(例如映射信息预存模块)中。接着转动机构再将激光雷达的本体转动到下一个预定转动角度,重复上述过程,如此周而复始,最后可得到全部的标定信息。
上面介绍的这种方法虽然是用于标定,但是在本发明三维扫描装置的另一实施例中,可直接用上述方法来检测静止的目标物体。即先让转动机构将激光雷达本体旋转到某一预定转动角度,然后将关于该预定角度的预定转动角度数据发送到数据处理模块。数据处理模块在接收到所述转动机构发送的所述预定转动角度之后,再接收所述激光雷达在所述预定转动角度下获得的环境扫描区域的激光扫描信息数据,接着所述转动机构再将所述激光雷达的本体转动到下一个预定转动角度;重复上述所述数据处理模块的接收操作和所述转动机构的旋转操作,直至得到所有预定转动角度所对应的环境扫描区域的激光扫描信息数据,并结合所述预定转动角度和所述环境扫描区域的激光扫描信息数据生成三维环境点云数据。
如果存在无线传输等延时较长的情况下,数据处理模块在接收环境扫描区域的激光扫描信息数据的过程中,需要确定环境扫描区域的激光扫描信息数据是否稳定(即判断该预定转动角度下接收的多圈激光扫描信息数据之间是否基本相同,防止接收的是上一个预定转动角度下的扫描信息数据),如果没有稳定,则转动机构继续停留等待,直至所述环境扫描区域的激光扫描信息数据稳定,然后再将所述预定转动角度和稳定的所述环境扫描区域的激光扫描信息数据进行对应地存储。这种检测方法适合于不需要快速检测的场景(例如激光雷达装载在运动的机器人身上或车上的情况,或者激光雷达检测运动的车辆或行人的情况)。
本发明的上述三维扫描装置的各实施例可适用于各类需要进行三维扫描的场合和设备上,例如利用得到的激光扫描信息数据来实现三维空间建图等。三维扫描装置可以安装在固定的设备上,也可以安装在运动的设备上。例如,可以应用于无人驾驶汽车,但尤其适用于机器人。因此本发明也提供了一种机器人,包括前述任一种三维扫描装置的实施例。
另外,参考前述三维扫描装置实施例的说明,本发明还可以提供一种角度确定辅助部件5,其设置于三维扫描装置中或设置在三维扫描装置附近,所述三维扫描装置包括激光雷达1和转动机构2,所述激光雷达1中的激光进行旋转扫描,激光的扫描范围包括环境扫描区域b和由角度确定辅助部件5提供的标定区域a,所述转动机构2驱动所述激光雷达1的本体以方向与激光旋转扫描的轴线方向不同的轴线为旋转轴转动经过各个预定转动角度,其中,所述标定区域a与激光雷达1的本体的转动轴线之间保持相对静止。
角度确定辅助部件5可以被构造为具有规则的形状,从而使得预定转动角度、对应的标定点的方位和距离形成特定的公式,或者使得预定转动角度、对应的标定点的距离形成特定的公式。在构成上,角度确定辅助部件5可以包括具有避让所述本体的运动空间的内凹部分的壳体51,转动机构2可以包括激光雷达安装支架28和转动驱动组件,所述激光雷达1安装在激光雷达安装支架28上,所述激光雷达安装支架28与所述壳体51通过回转轴承27可转动地连接。
基于前述的三维扫描装置实施例,本发明也提供了对应的三维环境点云数据生成方法,包括:
数据处理模块3接收所述激光雷达1在所述本体转动经过的每个预定转动角度下获得的所述标定区域a中的所述标定点的激光扫描信息数据和环境扫描区域b的激光扫描信息数据;
所述数据处理模块3根据所述标定区域a中的标定点的激光扫描信息数据确定与所述环境扫描区域b的激光扫描信息数据对应的预定转动角度。
在上述实施例,激光雷达1形成的扫描面可始终通过所述转动机构2的旋转轴线。所述转动机构2可以驱动所述激光雷达1连续旋转,或在预设角度范围内往复摆动。预设角度范围的大小可以为180°或180°以上。相应地,转动机构2能够以水平面为基准在180°内往复旋转。
为了进一步形成用于实现三维空间建图的三维环境点云数据,数据处理方法还可以包括:数据处理模块3结合所述预定转动角度和所述环境扫描区域b的激光扫描信息数据生成三维环境点云数据。
在上述实施例中,数据处理方法还可以至少包括以下步骤之一:
响应于来自所述转动机构2的数据采集启动信号,所述数据处理模块3触发所述数据处理模块3开始接收所述激光雷达1获得的激光扫描信息数据;
响应于来自所述转动机构2的数据采集停止信号,所述数据处理模块3控制所述数据处理模块3在预定时间后停止接收所述激光雷达1获得的激光扫描信息数据。
在另一个方法实施例中,转动机构2的转动范围内的各个预定转动角度与各个预定转动角度所对应的标定点的激光扫描信息数据遵循预设公式;确定预定转动角度的操作可以具体包括:所述数据处理模块3根据所述预设公式和所述标定点的激光扫描信息数据计算出对应的预定转动角度,从而得到与相应的所述环境扫描区域b的激光扫描信息数据匹配的预定转动角度。
参考图3所示三维扫描装置的实施例,三维扫描装置还可以包括映射信息预存模块4,预存所述标定点的激光扫描信息数据与所述预定转动角度之间的映射信息表。相应的,确定预定转动角度的操作可以具体包括:所述数据处理模块3在所述映射信息表中查找与所述激光雷达1获得的所述标定点的激光扫描信息数据匹配的预存映射信息,进而将所述预存映射信息中的预定转动角度确定为与检测到的所述环境扫描区域b的激光扫描信息数据匹配。其中,预存映射信息表的操作可以具体包括:根据预设公式计算所述标定点的激光扫描信息数据中的至少一种与预定转动角度之间的映射关系,并提供给所述映射信息预存模块4进行保存。
对于查表方式,映射信息表能够以非更改方式存储在所述映射信息预存模块4中;或者以可更新的方式存储在映射信息预存模块4中。即数据处理方法还包括:在经过预设时长后或者在所述角度确定辅助部件5与所述转动机构2的旋转轴的相对状态变化超过阈值时,进行重新标定,所述映射信息预存模块4基于重新标定后得到的映射信息表进行更新。
在另一个方法实施例中,数据处理模块3还可以包括标定单元。相应的数据处理方法还包括:所述标定单元在接收所述转动机构2在转动到每个预定转动角度时提供的所述预定转动角度之后,接收所述激光雷达1获得的所述标定点的激光扫描信息数据,并将所述标定点的激光扫描信息数据与所述预定转动角度对应地存储到所述映射信息表中。
上述数据处理方法的各实施例的说明可参考前述三维扫描装置各实施例的内容和技术效果的说明,这里不再赘述。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本公开。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。上面对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。