发明内容
本申请提供了一种用于采集点云数据的车辆中的激光坐标系和惯导坐标系的标定方法和装置以及非瞬时性计算机可读存储介质。
根据本申请的第一方面,提供了一种用于采集点云数据的车辆中的激光坐标系和惯导坐标系的标定方法,包括:
控制所述车辆在路面上移动,并在车辆的移动过程中采集点云数据;
根据所述车辆的移动和所采集的点云数据构建惯导坐标系;
根据所述惯导坐标系中的坐标轴定义所述惯导坐标系中的单位矩阵;
基于所采集的点云数据得到与所述惯导坐标系的所述单位矩阵相对应的所述激光坐标系中的轴矩阵;
通过所述单位矩阵和所述轴矩阵的对应关系,计算所述激光坐标系与所述惯导坐标系之间的姿态角。
根据本申请的第二方面,提供了一种用于采集点云数据的车辆中的激光坐标系和惯导坐标系的标定装置,包括:
数据采集单元,在车辆在路面上移动的过程中采集点云数据;
坐标系构建单元,根据所述车辆的移动和所采集的点云数据构建惯导坐标系;
矩阵定义单元,根据所述惯导坐标系中的坐标轴定义所述惯导坐标系中的单位矩阵;
矩阵获取单元,基于所采集的点云数据得到与所述惯导坐标系的单位矩阵相对应的激光坐标系中的轴矩阵;
姿态角计算单元,通过所述单位矩阵和所述轴矩阵的对应关系,计算所述激光坐标系与所述惯导坐标系之间的姿态角。
根据本申请的第三方面,提供了一种装置,包括:
处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述处理器执行时,使得所述处理器实现如上所述的方法。
根据本申请的第四方面,提供了一种非瞬时性计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时,使得所述处理器实现如上所述的方法。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了从激光坐标系转换到车辆坐标系的相对位置变换标定的示意图;
图2示出了根据本申请一个实施方式用于采集点云数据的车辆中的激光坐标系和惯导坐标系的标定方法的流程图;
图3示出了根据本申请一个实施例车辆在路面上移动的示意图;
图4示出了根据图3所示实施例根据车辆的移动和所采集的点云数据构建惯导坐标系的流程图;
图5示出了根据本申请一个实施例将竖直墙面的法向量定义为惯导坐标系的第一坐标轴的流程图;
图6示出了根据本申请一个实施例将车辆的移动方向定义为惯导坐标系的第二坐标轴的流程图;
图7示出了根据本申请一个实施例通过车辆在运动时先后两帧的激光点云数据确定车辆移动方向的示意图;
图8示出了根据本申请一个实施例基于所采集的点云数据得到与惯导坐标系的单位矩阵相对应的激光坐标系中的轴矩阵的流程图;
图9示出了根据本申请激光点云数据的标定结果示意图;
图10示出了根据本申请一个实施方式用于采集点云数据的车辆中的激光坐标系和惯导坐标系的标定装置的示意图;
图11示出了根据本申请一个实施方式的坐标系构建单元的示意图;
图12示出了根据本申请一个实施方式的第一坐标轴定义子单元的示意图;
图13示出了根据本申请一个实施方式的第二坐标轴定义子单元的示意图;
图14示出了根据本申请一个实施方式的矩阵获取单元的示意图;
图15示出了根据本申请另一实施方式用于采集点云数据的车辆中的激光坐标系和惯导坐标系的标定装置的示意图。
具体实施方式
以下参照附图对本申请的实施方式进行详细描述。应注意,以下描述仅仅是示例性的,而并不旨在限制本申请。此外,在以下描述中,将采用相同的附图标号表示不同附图中的相同或相似的部件。在以下描述的不同实施方式中的不同特征,可彼此结合,以形成本申请范围内的其他实施方式。
为了解决现有技术中所出现的问题,本申请提供了一种用于采集点云数据的车辆中的激光坐标系和惯导坐标系的标定方法。通过该方法,可利用车辆上的激光点云数据采集装置所采集的激光点云数据,通过一系列的处理对激光坐标系和车辆坐标系(即,惯导坐标系)之间的相对变换进行标定,以得到两个坐标系之间的相对姿态角(即,旋转因子:俯仰角pitch、偏航角yaw、翻滚角roll)和/或平移量(即,x、y、z)。
图2示出了根据本申请一个实施方式用于采集点云数据的车辆中的激光坐标系和惯导坐标系的标定方法的流程图。如图2所示,该方法100可包括步骤S110至S150。在步骤S110中,控制车辆在路面上移动,并在车辆的移动过程中采集点云数据。为了所采集到的激光点云数据能够利于后续对激光坐标系和惯导坐标系之间的标定,可控制车辆在路面上沿着一定的参照物运动。
图3示出了根据本申请一个实施例车辆在路面上移动的示意图。如图3所示,在步骤S110中,可控制车辆200平行于路面上的竖直墙面300做直线运动(即,沿图3中的Y方向运动),从而便于后续的处理。
在步骤S120中,根据车辆的移动和所采集的点云数据构建惯导坐标系。惯导坐标系即车辆坐标系,可依据车辆的移动和在移动过程中所采集的点云数据来构建。
图4示出了根据图3所示实施例根据车辆的移动和所采集的点云数据构建惯导坐标系的流程图。如图4所示,上述步骤S120可包括子步骤S121至S123。在子步骤S121中,将竖直墙面的法向量定义为惯导坐标系的第一坐标轴。例如,参照图3所示,可将竖直墙面300的法向量定义为惯导坐标系的X轴。具体如何计算获得竖直墙面300的法向量,将在以下描述。
在子步骤S122中,将车辆的移动方向(亦即竖直墙面300的水平延伸方向)定义为惯导坐标系的第二坐标轴。例如,参照图3所示,可将车辆200的移动方向Y定义为惯导坐标系的Y轴。具体如何计算获得车辆200的移动方向,将在以下描述。
当确定了惯导坐标系的第一坐标轴和第二坐标轴,在子步骤S123中,可依据右手定则确定惯导坐标系的第三坐标轴。例如,参照图3所示,可将X轴与Y轴的叉积方向确定为惯导坐标系的Z轴方向。
图5示出了根据本申请一个实施例将竖直墙面的法向量定义为惯导坐标系的第一坐标轴的流程图。如图5所示,上述子步骤S121可包括子步骤S121a和S121b。在子步骤S121a中,提取所采集的点云数据中竖直墙面的墙面数据。在车辆在移动中采集到的激光点云数据中,可以利用适当的算法提取出竖直墙面的点云数据。随后,在子步骤S121b中,可基于提取出的墙面数据计算竖直墙面的法向量,并将该法向量定义为惯导坐标系的第一坐标轴。本领域技术人员可以理解,当提取出墙面数据后,可采用任何适当的算法计算该竖直墙面的法向量。由此,可根据所采集的激光点云数据定义惯导坐标系的第一坐标轴。
图6示出了根据本申请一个实施例将车辆的移动方向定义为惯导坐标系的第二坐标轴的流程图。如图6所示,上述子步骤S122可包括子步骤S122a和S122b。在子步骤S122a中,从所采集的点云数据中选取两帧或多帧点云数据。随后,在子步骤S122b中,基于所选取的两帧或多帧点云数据,利用平面拟合配准算法确定车辆的移动方向,并将车辆的移动方向定义为惯导坐标系的第二坐标轴。根据本申请的一个实施例,上述平面拟合配准算法可以是泛化迭代最近点算法(GICP:Generalized Iterative Closest Point)。本领域技术人员可以理解,利用GICP算法,可通过车辆在运动时先后两帧或多帧的激光点云数据确定出车辆的移动方向。由此,可根据车辆的移动方向确定惯导坐标系的第二坐标轴。
图7示出了根据本申请一个实施例通过车辆在运动时先后两帧的激光点云数据确定车辆移动方向的示意图。在图7的上半部(a)中示出了车辆在运动时所采集到的某一帧激光点云数据,在图7的下半部(b)中示出了在将先后两帧激光点云数据配准后得到的点云数据。在图7的上半部(a)和下半部(b)中所圈出的道路一侧的车辆即为两帧数据中的同一参照物。那么,点云数据的相对位移变化的方向即为车辆的行进方向。
再参照图2,在步骤S130中,根据惯导坐标系中的坐标轴定义惯导坐标系中的单位矩阵。当构建了惯导坐标系后,可根据其坐标轴来定义惯导坐标系的单位矩阵I:
在步骤S140中,基于所采集的点云数据得到与惯导坐标系的单位矩阵相对应的激光坐标系中的轴矩阵。图8示出了根据本申请一个实施例基于所采集的点云数据得到与惯导坐标系的单位矩阵相对应的激光坐标系中的轴矩阵的流程图。如图8所示,上述步骤S140可包括子步骤S141至S143。在子步骤S141中,从所采集的点云数据中选取两帧或多帧点云数据。随后,在子步骤S142中,基于所选取的两帧或多帧点云数据,利用平面拟合配准算法确定激光坐标系的坐标轴。根据本申请的一个实施例,上述平面拟合配准算法可以是GICP算法。本领域技术人员可以理解,利用GICP算法,可通过车辆在运动时先后两帧或多帧的激光点云数据确定出激光坐标系的坐标轴。在子步骤S143中,根据所确定的激光坐标系的坐标轴并利用所采集的点云数据得到激光坐标系中的轴矩阵,该轴矩阵即与惯导坐标系的单位矩阵I相对应。为了便于描述,以下将激光坐标系的轴矩阵描述为(XYZ)的形式,其中X、Y、Z分别代表激光坐标系的三个坐标轴。本领域技术人员可以理解,将激光点云数据代入到所确定的激光坐标系中,即可得到激光坐标系的轴矩阵(XYZ)。
再参照图1,在步骤S150中,通过单位矩阵I和轴矩阵(XYZ)的对应关系,计算激光坐标系与惯导坐标系之间的姿态角。根据一个实施方式,两坐标系之间的姿态角可包括俯仰角(pitch)、偏航角(yaw)和/或翻滚角(roll)。由此,可通过计算实现采集点云数据的车辆上的激光坐标系和惯导坐标系之间的姿态角的标定。
根据本申请一个实施例,在上述步骤S150中,惯导坐标系的单位矩阵I和激光坐标系的轴矩阵(XYZ)的对应关系可用如下关系式表示:
(XYZ)=RI
其中,R是惯导坐标系的单位矩阵I和激光坐标系的轴矩阵(XYZ)之间的变换矩阵。该变换矩阵R可具有如下形式:
其中,pitch是惯导坐标系与激光坐标系之间的俯仰角,yaw是惯导坐标系与激光坐标系之间的偏航角,roll是惯导坐标系与激光坐标系之间的翻滚角。
由于I是单位矩阵,因此根据上述惯导坐标系的单位矩阵I和激光坐标系的轴矩阵(XYZ)之间的关系式以及变换矩阵R的具体形式,可得:
为了简化计算过程,可设
亦即,
a=cos(pitch)*cos(yaw)
b=cos(pitch)*sin(yaw)
c=-sin(pitch)
d=cos(yaw)*sin(pitch)*sin(roll)-cos(roll)*sin(yaw)
e=cos(roll)*cos(yaw)+sin(pitch)*sin(roll)*sin(yaw)
f=cos(pitch)*sin(roll)
从而可得到计算激光坐标系与惯导坐标系之间的各姿态角:
pitch=-arcsin(c)
yaw=arctan(b/a)
roll=arcsin(f/cos(pitch))
通过以上计算,可利用惯导坐标系的单位矩阵I和激光坐标系的轴矩阵(XYZ)的对应关系(XYZ)=RI计算得出两坐标系之间的姿态角:pitch、yaw、roll。亦即,(XYZ)和I均可通过以上描述的操作获知,而变换矩阵R是通过姿态角pitch、yaw和roll表达的,因此可计算出激光坐标系与惯导坐标系之间的姿态角。
根据本申请一个实施方式,除了上述步骤S110至S150之外,该方法100还可包括:基于所采集的点云数据,利用平面拟合配准算法对所述姿态角进行微调。具体地,根据一个实施例,上述平面拟合配准算法可以是GICP算法。可以理解,为了使各姿态角的计算更加精确,可将上述步骤S110至S150计算出的各姿态角作为初始值,利用GICP算法和所采集的激光点云数据,对各姿态角进行微调(优化)处理,从而能够得到更加精确的姿态角pitch、yaw、roll。
根据本申请一个实施方式,除了上述步骤S110至S150之外,该方法100还可包括:基于计算出的姿态角和所采集的点云数据,利用平面拟合配准算法计算激光坐标系与惯导坐标系之间的平移量。具体地,根据一个实施例,上述平面拟合配准算法可以是GICP算法。可以理解,可将上述步骤S110至S150计算出的各姿态角作为已知的pitch、yaw、roll,利用GICP算法和所采集的激光点云数据,计算出激光坐标系和惯导坐标系之间的平移量x、y、z。
本领域技术人员可以理解,由于在上述步骤S110中,车辆在路面上的移动可以是仅包含水平分量的移动(即,不包含竖直分量的移动),所以利用平面拟合配准算法所计算的z方向(竖直方向)的平移量可能不够准确。但由于车辆在路面上行驶时,z方向的数值对精度影响较小,因此也可根据工程设计预先设置z方向的数值。
图9示出了根据本申请激光点云数据的标定结果示意图。如图9中的上半部(a)所示为原始采集到的激光点云数据,其处于激光坐标系中。如图9中的下半部(b)所示为经过本申请的标定方法处理后,将点云数据转换至车辆坐标系中的示意图。
图10示出了根据本申请一个实施方式用于采集点云数据的车辆中的激光坐标系和惯导坐标系的标定装置的示意图。如图10所示,该标定装置400可包括数据采集单元410、坐标系构建单元420、矩阵定义单元430、矩阵获取单元440、姿态角计算单元450。数据采集单元410在车辆在路面上移动的过程中采集点云数据。坐标系构建单元420根据所述车辆的移动和所采集的点云数据构建惯导坐标系。矩阵定义单元430根据所述惯导坐标系中的坐标轴定义所述惯导坐标系中的单位矩阵。矩阵获取单元440基于所采集的点云数据得到与所述惯导坐标系的单位矩阵相对应的激光坐标系中的轴矩阵。姿态角计算单元450通过所述单位矩阵和所述轴矩阵的对应关系,计算所述激光坐标系与所述惯导坐标系之间的姿态角。
根据一个实施方式,所述姿态角包括俯仰角、偏航角和/或翻滚角。
根据一个实施方式,数据采集单元410用于在车辆平行于所述路面上的竖直墙面做直线运动的过程中采集点云数据。
图11示出了根据本申请一个实施方式的坐标系构建单元的示意图。如图11所示,坐标系构建单元420可包括第一坐标轴定义子单元421、第二坐标轴定义子单元422、第三坐标轴确定子单元423。第一坐标轴定义子单元421将所述竖直墙面的法向量定义为所述惯导坐标系的第一坐标轴。第二坐标轴定义子单元422将所述车辆的移动方向定义为所述惯导坐标系的第二坐标轴。第三坐标轴确定子单元423基于所述第一坐标轴和所述第二坐标轴并依据右手定则,确定所述惯导坐标系的第三坐标轴。
图12示出了根据本申请一个实施方式的第一坐标轴定义子单元的示意图。如图12所示,第一坐标轴定义子单元421可包括点云数据提取模块421a和计算模块421b。点云数据提取模块421a提取所采集的点云数据中所述竖直墙面的墙面数据。计算模块421b基于所述墙面数据计算所述竖直墙面的法向量,并将所述法向量定义为所述惯导坐标系的第一坐标轴。
图13示出了根据本申请一个实施方式的第二坐标轴定义子单元的示意图。如图13所示,第二坐标轴定义子单元422可包括点云数据选取模块422a和配准模块422b。点云数据选取模块422a从所采集的点云数据中选取两帧或多帧点云数据。配准模块422b基于所选取的两帧或多帧点云数据,利用平面拟合配准算法确定所述车辆的移动方向,并将所述车辆的移动方向定义为所述惯导坐标系的第二坐标轴。
图14示出了根据本申请一个实施方式的矩阵获取单元的示意图。如图14所示,矩阵获取单元440可包括点云数据选取子单元441、配准子单元442、矩阵获取子单元443。点云数据选取子单元441从所采集的点云数据中选取两帧或多帧点云数据。配准子单元442基于所选取的两帧或多帧点云数据,利用平面拟合配准算法确定所述激光坐标系的坐标轴。矩阵获取子单元443根据所确定的所述激光坐标系的坐标轴并利用所采集的点云数据得到所述激光坐标系中的轴矩阵。
根据一个实施方式,所述单位矩阵和所述轴矩阵的对应关系为:
(X Y Z)=RI
其中,(X Y Z)表示所述轴矩阵,I表示所述单位矩阵,R表示所述单位矩阵和所述轴矩阵之间的变换矩阵,并且所述姿态角包括俯仰角、偏航角和翻滚角,所述变换矩阵R由如下公式表示:
其中,pitch表示所述俯仰角,yaw表示所述偏航角,roll表示所述翻滚角。
图15示出了根据本申请另一实施方式用于采集点云数据的车辆中的激光坐标系和惯导坐标系的标定装置的示意图。如图15所示,除了数据采集单元410、坐标系构建单元420、矩阵定义单元430、矩阵获取单元440、姿态角计算单元450,该标定装置400还可包括优化单元460。优化单元460基于所采集的点云数据,利用平面拟合配准算法对所述姿态角进行微调。根据一个实施例,优化单元460还用于基于所述姿态角和所采集的点云数据,利用平面拟合配准算法计算所述激光坐标系与所述惯导坐标系之间的平移量。
根据一个实施方式,上述平面拟合配准算法为泛化迭代最近点算法。
本领域技术人员可以理解,本申请的技术方案可实施为系统、方法或计算机程序产品。因此,本申请可表现为完全硬件的实施例、完全软件的实施例(包括固件、常驻软件、微码等)或将软件和硬件相结合的实施例的形式,它们一般可被称为“电路”、“模块”或“系统”。此外,本申请可表现为计算机程序产品的形式,所述计算机程序产品嵌入到任何有形的表达介质中,所述有形的表达介质具有嵌入到所述介质中的计算机可用程序代码。
参照根据本申请实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本申请。可以理解的是,可由计算机程序指令执行流程图和/或框图中的每个框、以及流程图和/或框图中的多个框的组合。这些计算机程序指令可提供给通用目的计算机、专用目的计算机或其它可编程数据处理装置的处理器,以使通过计算机或其它可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个框或多个框中指明的功能/动作的装置。
这些计算机程序指令还可存储于能够指导计算机或其它可编程数据处理装置以特定的方式实现功能的计算机可读介质中,以使存储于计算机可读介质中的指令产生包括实现流程图和/或框图中的一个框或多个框中指明的功能/动作的指令装置。
计算机程序指令还可加载到计算机或其它可编程数据处理装置上,以引起在计算机上或其它可编程装置上执行一连串的操作步骤,以产生计算机实现的过程,从而使在计算机或其它可编程装置上执行的指令提供用于实现流程图和/或框图中的一个框或多个框中指明的功能/动作的过程。
附图中的流程图和框图示出根据本申请的多个实施例的系统、方法和计算机程序产品的可能实现的体系结构、功能和操作。在这点上,流程图或框图中的每个框可表示一个模块、区段或代码的一部分,其包括一个或多个用于实现特定逻辑功能的可执行指令。还应注意,在一些可替代性实施中,框中标注的功能可以不按照附图中标注的顺序发生。例如,根据所涉及的功能性,连续示出的两个框实际上可大致同时地执行,或者这些框有时以相反的顺序执行。还可注意到,可由执行特定功能或动作的专用目的的基于硬件的系统、或专用目的硬件与计算机指令的组合来实现框图和/或流程图示图中的每个框、以及框图和/或流程图示图中的多个框的组合。
虽然以上的叙述包括很多特定布置和参数,但需要注意的是,这些特定布置和参数仅仅用于说明本申请的一个实施方式。这不应该作为对本申请范围的限制。本领域技术人员可以理解,在不脱离本申请范围和精神的情况下,可对其进行各种修改、增加和替换。因此,本申请的范围应该基于所述权利要求来解释。