本发明涉及的机器人运动的技术领域,具体涉及一种激光里程计算的方法,还涉及基于该方法的地图构建方法。
背景技术:
机器人在环境中移动时,里程信息是机器人运动状态的最基本信息。传统的机器人的里程计是利用致动器的移动数据来估算机器人位姿随时间改变量的方法。位姿变换需要由可编码器和惯性导航传感器来获得。这种传统的机器人的里程计需要依赖惯性导航传感器的累计信息,因此,里程计的误差也会不断累积,导致精度下降。
因此,针对传统的机器人的里程计所存在的精度问题,本发明实施例提出一种激光里程计算方法,该激光里程计算方法基于具有俯仰电机的二维激光雷达实现实时计算里程,从而有效地避免由于随着时间增长而误差累计的问题,进而提高了里程计的精度。基于所述的激光里程计算方法,本发明实施例还提出一种三维地图的构建方法,从而使得三维地图的构建不再依赖惯性测量单元。
技术实现要素:
针对传统的机器人的里程计所存在的精度问题,本发明实施例提出一种激光里程计算方法。该激光里程计算方法基于具有俯仰电机的二维激光雷达实现实时计算里程,通过三维激光雷达感知的点云来估计机器人平台自身的运动状态,从而有效地避免传统里程计由于随着时间增长而误差累计的问题,进而提高了里程计的精度。
该激光里程计算方法的具体方案如下:一种激光里程计算方法,包括以下步骤:通过激光雷达扫描多次而获得多个不均匀分布的点云;从所述每个点云中提取出具有共面几何关系的特征点;采用估算运动变换算法将不同时刻扫描所获取的点云投影至同一时刻,从而获得投影点云,再依据所述投影点云而获取时空对应的投影特征点;对不同时刻扫描所获取的点云进行线性插值姿态变换;采用非线性最小二乘法计算激光雷达的运动,从而获取激光里程。
优选地,所述激光雷达连接电机,所述电机具有-90度至90度的区间俯仰角。
优选地,所述激光雷达的运动模型以恒定的角速度和恒定的线性速度进行线性插值。
优选地,所述共面几何关系的特征点包括在尖锐边缘的特征点和平面表面的特征点。
优选地,用来评估每次所扫描获得的点云的局部表面平滑度的表达式如式1所示:
式1:
其中,
优选地,将所述c值对扫描中的点进行排序,以最大的c值作为边缘特征点,以最小的c值作为平面特征点。
优选地,所述非线性最小二乘法包括列文伯格马夸尔特法。
优选地,所述线性插值姿态变换的具体表达式如式4所示:
式4:
其中,
优选地,对所述式4进行变换可得式5:
式5:
其中,
本发明实施例还提供一种地图构建的方法,所述方法基于上述激光里程计算方法,具体包括步骤:采用上述任意一种所述的激光里程计算方法所获取的里程数据,去除相邻点云的失真形变;将去除失真形变的点云投影至同一时刻进行点云匹配,获得准确的变换矩阵,进行里程计的矫正;将所述矫正后的点云从激光雷达坐标系转换为世界坐标系,构建三维地图。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中所提供的激光里程计算方法,基于具有俯仰电机的二维激光雷达实现实时计算里程,通过三维激光雷达感知的点云来估计机器人平台自身的运动状态,从而有效地避免传统里程计误差累计的问题,进而提高了里程计的精度。本发明实施例所提供的地图构建方法基于上述所述激光里程计算方法,而不再像传统的地图构建方法需要依赖惯性测量单元。
附图说明
图1为本发明实施例中提供的一种具有俯仰电机的激光雷达装置的示意图;
图2为本发明实施例中提供的一种激光里程计软件系统的示意图;
图3为本发明实施例中提供的一种激光里程计算方法的流程示意图;
图4为本发明实施例中提供的一种时空对应特征点对应的过程示意图;
图5为本发明实施例中提供的一种相邻两组点云的对应边缘特征点和平面特征点投影在同一时刻的位移示意图;
图6为本发明实施例中提供的一种地图构建方法的流程示意图;
图7(a1)为传统里程计算法所构建地图的深度示意图;
图7(a2)为传统里程计算法所构建地图的俯视示意图;
图7(b1)为图6实施例所构建地图的深度示意图;
图7(b2)为图6实施例所构建地图的俯视示意图。
附图标记说明:
100、激光雷达装置10、电机
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了更好地阐述本发明实施例,此处先对本发明中相关的变量、使用的平台及相关的软件系统进行介绍。
本发明实施例中提供的里程计算方法是通过三维激光雷达所感知的点云来估计机器人平台自身的运动状态,并基于所得到里程数据为遍历环境构建地图。在本发明实施例中,定义激光雷达的角速度和线速度随着时间的推移是平滑和连续的,不存在突然的变化。在本发明实施例中,坐标系采用右侧上角标的大写字母来表示。扫描定义为激光雷达完成一次扫描,采用右侧下角标k,
如图1所示,本发明实施例中提供的一种具有俯仰电机的激光雷达装置的示意图。在该实施例中,激光雷达装置100的具体参数如下:具有190°的视野,分辨率为0.667°,且扫描速率为50线/秒。激光雷达装置100连接电机10,电机10能够在-90°至90°之间以50°/s的角速度旋转,其中,定义激光雷达装置100的水平方向为零。激光雷达装置100的扫描是从-90°到90°的旋转或者以相反的方向进行旋转。当机器人平台相对地面静止的时候,激光雷达装置100的扫描平面是半球形。在一具体实施例中,车载编码器以1°的分辨率测量电机旋转角度,激光点投射到激光雷达坐标{l}中。激光雷达坐标{l}的具体坐标系表示如图1所示。在一具体实施例中,激光雷达装置100可基于思科激光测距系统511进行定制成三维激光雷达。当然,激光雷达装置100并不局限于所述的硬件平台。
如图2所示,本发明实施例中提供的一种激光里程计软件系统的流程示意图。激光里程计软件系统流程主要包括:激光雷达及机器人的运动,进行点云采集,采用激光里程计获取里程,分别对里程进行无畸变从而进行点云匹配,对里程进行位姿变换,并结合点云匹配结果进行周期内位姿变换再变换合成,以对激光里程计的误差进行校正。结合具体的点云数据的流程如下:将
如图3所示,本发明实施例中提供的一种激光里程计算方法的流程示意图。本发明实施例所提供的一种激光里程计算方法包括五大步骤,具体如下所示。
步骤s1:通过激光雷达扫描多次而获得多个不均匀分布的点云。继续参照图1,采用激光雷达装置100在扫描过程中产生不均匀分布的点云
步骤s2:从所述每个点云中提取出具有共面几何关系的特征点。基于步骤s1中激光雷达装置100的参数,当激光雷达装置100以50°/s的角速度旋转并且以50hz产生扫描时,此时与扫描平面垂直的方向上的分辨率为50/50=1°。因此,在该实施例中,仅使用每次独立扫描的信息从点云
其中,
步骤s3:采用估算运动变换算法将不同时刻扫描所获取的点云投影至同一时刻,从而获得投影点云,再依据所述投影点云而获取时空对应的投影特征点。
在该实施例中,采用测距算法估计激光雷达装置100在一个扫描周期内的运动。令tk为扫描k的开始时间。在每次扫描结束时,在扫描期间感知到的点云
在该实施例中,在k+1扫描期间,定义将新感知的点云
同理,由上述三点形成三角形推导到四点形成四面体。四个点
步骤s4:对不同时刻扫描所获取的点云进行线性插值姿态变换。在该实施例中,由于采用恒定的角速度和线性速度构建扫描期间激光雷达的运动模型,因此,可以对不同时间内接收的扫描点进行线性插值姿态变换。具体的线性插值姿态变换的计算过程如下所述:
令t为当前时间戳,tk+1是第k+1次扫描开始的时间。令
通过使用公式4中的变换,可以得到:
其中,
其中,θ是旋转量的大小,具体的表达式如公式7所示:
其中,ω表示旋转方向的单位向量,
对于点云
在该实施例中,通过使用从前一部分获得的粗略测距数值进行点云重构,在时间戳tk+1处匹配两个相邻点云,以便获得准确的变换矩阵。
步骤s5:采用非线性最小二乘法计算激光雷达的运动,从而获取激光里程。在具体实施例中,非线性最小二乘法采用列文伯格马夸尔特法(levenberg-marquardt)。将边缘特征点和平面特征点的公式9和公式10进行累加,得到一个非线性函数,具体表达式如公式11所示:
其中,每行f对应于一个特征点,d为该特征点的距离。计算f函数相对于
从而将d最小化为零,具体的求解过程如公式12所示:
其中,λ是由列文伯格马夸尔特法(levenberg-marquardt)方法确定的因子。
本发明实施例中所提供的激光里程计算方法,基于具有俯仰电机的二维激光雷达实现实时计算里程,通过三维激光雷达感知的点云来估计机器人平台自身的运动状态,从而有效地避免传统里程计由于随着时间增长而误差累计的问题,进而提高了里程计的精度。
本发明实施例还提供一种基于上述激光里程计算方法的地图构建方法。如图6所示,本发明实施例中提供的一种地图构建方法的流程示意图。该地图构建方法包括三大步骤,具体为:
步骤s11:采用上述的激光里程计算方法所获取的里程数据,去除相邻点云的失真形变。
步骤s22:将去除失真形变的点云投影至同一时刻进行点云匹配,获得准确的变换矩阵,进行里程计的矫正。在一具体实施例中,点云匹配可采用正态分布变换法(normaldistributedtransform)进行匹配,从而获得准确的变换矩阵,完成最终的里程计矫正。
步骤s33:将所述矫正后的点云从激光雷达坐标系转换为世界坐标系,构建三维地图。如图7所示,7(a1)为传统里程计算法所构建地图的深度示意图;7(a2)为传统里程计算法所构建地图的俯视示意图;7(b1)为本发明实施例所构建地图的深度示意图;7(b2)为本发明实施例所构建地图的俯视示意图。通过7(a)和7(b)比对可发现,本发明实施例所构建的地图进行了误差校正,且三维地图的构建不再依赖惯性测量单元。
本发明实施例所提供的地图构建方法基于上述所述激光里程计算方法,而不再像传统的地图构建方法需要依赖惯性测量单元。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。