用于确定无人驾驶车辆的偏航角的方法和装置与流程

文档序号:11689892阅读:350来源:国知局
用于确定无人驾驶车辆的偏航角的方法和装置与流程

本申请涉及机动车技术领域,具体涉及无人驾驶车辆技术领域,尤其涉及用于确定无人驾驶车辆的偏航角的方法和装置。



背景技术:

随着科技的发展和进步,通过自动控制系统控制的无人驾驶车辆能够给人们的出行带来便利并提高人们的生活质量。无人驾驶车辆的自动控制系统会根据不同的路况按照预期行驶路径自动驾驶无人驾驶车辆。

定位系统在无人驾驶车辆中起着重要作用。基于激光点云的无人驾驶车辆定位技术已取得了成功应用。然而,基于激光点云的定位技术一般都依赖于高精度的惯性导航系统来提供无人驾驶车辆精确的滚转角、俯仰角、偏航角等姿态信息,但是,当使用低精度惯性导航系统时,滚转角、俯仰角及偏航角也存在一定的误差,尤其是偏航角的误差,对定位精度的影响是非常大的。从而,现有的无人驾驶车辆的定位系统存在定位精度较低的问题。



技术实现要素:

本申请的目的在于提出一种改进的用于确定无人驾驶车辆的偏航角的方法和装置,来解决以上背景技术部分提到的技术问题。

第一方面,本申请实施例提供了一种用于确定无人驾驶车辆的偏航角的方法,上述无人驾驶车辆设置有激光雷达以及惯性导航系统,该方法包括:实时获取上述激光雷达采集的上述无人驾驶车辆的激光点云数据和上述惯性导航系统采集的上述无人驾驶车辆的位姿信息,其中,上述激光点云数据中的每个激光点数据包括坐标和反射值,上述位姿信息包括坐标和偏航角;根据上述激光点云数据和上述位姿信息,生成与上述激光点云数据对应的反射值图像;根据上述反射值图像和上述位姿信息,从预设的地图中确定与上述反射值图像中各个像素点的坐标对应的预设地图中的地图坐标;根据上述反射值图像的每个像素点的坐标和上述预设地图中与该像素点的坐标对应的地图坐标处的像素值,生成与上述反射值图像对应的反射值地图图像;采用图像对齐算法,确定从上述反射值图像对齐到上述反射值地图图像的旋转角度;根据上述旋转角度和上述位姿信息中的偏航角,确定上述无人驾驶车辆的偏航角。

在一些实施例中,上述根据上述激光点云数据和上述位姿信息,生成与上述激光点云数据对应的反射值图像,包括:获取待生成反射值图像的相关信息,上述相关信息包括上述待生成反射值图像的横向像素数和纵向像素数以及单位像素长度,其中,上述单位像素长度用于表征上述待生成反射值图像中一个像素点所表征的物理长度;生成m×n的待生成反射值图像,其中,上述m为上述横向像素数,上述n为上述纵向像素数;根据上述位姿信息和上述相关信息,将上述激光点云数据中的每个激光点数据映射至上述待生成反射值图像中以生成与上述激光点云数据对应的反射值图像,其中,上述反射值图像的每个像素点的像素值基于映射至该像素点的各激光点数据的反射值的平均值确定。

在一些实施例中,上述激光点数据中的坐标为车体坐标系中的坐标,上述位姿信息中的坐标为世界坐标系中的坐标;以及上述根据上述位姿信息和上述相关信息,将上述激光点云数据中的每个激光点数据映射至上述待生成反射值图像中以生成与上述激光点云数据对应的反射值图像,包括:根据上述位姿信息,确定上述待生成反射值图像的坐标原点在上述世界坐标系中的坐标;对于上述激光点云数据中的每个激光点数据,根据上述位姿信息确定该激光点数据在上述世界坐标系中的世界坐标系坐标,并根据所确定的世界坐标系坐标,确定该激光点数据在上述待生成反射值图像中的反射值图像坐标,并将该激光点数据映射至上述待生成反射值图像中上述反射值图像坐标中。

在一些实施例中,上述根据上述位姿信息确定该激光点数据在上述世界坐标系中的世界坐标系坐标,包括:按照如下公式,计算该激光点数据在上述世界坐标系中的世界坐标系坐标:

[x’,y’]t=r×[x,y,z]t+[x0,y0]t

其中,r是由上述位姿信息确定的2×3的坐标变换矩阵,x、y和z分别是该激光点数据中坐标的x轴坐标、y轴坐标和z轴坐标,x0和y0分别是上述位姿信息中坐标的x轴坐标和y轴坐标,x’和y’分别是计算得到的该激光点数据在上述世界坐标系中的世界坐标系坐标的x轴坐标和y轴坐标。

在一些实施例中,上述根据所确定的世界坐标系坐标,确定该激光点数据在上述待生成反射值图像中的反射值图像坐标,包括:按照如下公式,计算该激光点数据在上述待生成反射值图像中的反射值图像坐标:

i=int((x’–xorigin)÷dispix)

j=int((y’–yorigin)÷dispix)

其中,i和j分别是计算所得的该激光点数据在上述待生成反射值图像中的反射值图像坐标的x轴坐标和y轴坐标,int表示取整操作,x’和y’分别是所确定的该激光点数据在上述世界坐标系中的世界坐标系坐标的x轴坐标和y轴坐标,xorigin和yorigin分别是所确定的上述待生成反射值图像的坐标原点在上述世界坐标系中的x轴坐标和y轴坐标,dispix是上述单位像素长度。

在一些实施例中,上述预设地图是基于上述世界坐标系的地图;以及上述根据上述反射值图像和上述位姿信息,从预设的地图中确定与上述反射值图像中各个像素点的坐标对应的预设地图中的地图坐标,包括:按照如下公式,计算与上述反射值图像中各个像素点的坐标对应的预设地图中的地图坐标:

xutm=(i+k)×dispix+xorigin

yutm=(j+k)×dispix+yorigin

其中,i和j分别是上述反射值图像中像素点的x轴坐标和y轴坐标,xutm和yutm分别是计算所得的与上述反射值图像中x轴坐标为i且y轴坐标为j的像素点的坐标对应的预设地图中的地图坐标的x轴坐标和y轴坐标,k为-1到1之间的常数,xorigin和yorigin分别是上述反射值图像的坐标原点在上述世界坐标系中的x轴坐标和y轴坐标,dispix是上述单位像素长度。

在一些实施例中,上述图像对齐算法为lucas-kanade前向算法。

在一些实施例中,上述根据上述旋转角度和上述位姿信息中的偏航角,确定上述无人驾驶车辆的偏航角,包括:根据上述旋转角度确定上述位姿信息中的偏航角的误差;计算上述位姿信息中的偏航角加上上述误差的角度和;将计算所得的角度和确定为上述无人驾驶车辆的偏航角。

第二方面,本申请实施例提供了一种用于确定无人驾驶车辆的偏航角的装置,上述无人驾驶车辆设置有激光雷达以及惯性导航系统,该装置包括:获取单元,配置用于实时获取上述激光雷达采集的上述无人驾驶车辆的激光点云数据和上述惯性导航系统采集的上述无人驾驶车辆的位姿信息,其中,上述激光点云数据中的每个激光点数据包括坐标和反射值,上述位姿信息包括坐标和偏航角;第一生成单元,配置用于根据上述激光点云数据和上述位姿信息,生成与上述激光点云数据对应的反射值图像;第一确定单元,配置用于根据上述反射值图像和上述位姿信息,从预设的地图中确定与上述反射值图像中各个像素点的坐标对应的预设地图中的地图坐标;第二生成单元,配置用于根据上述反射值图像的每个像素点的坐标和上述预设地图中与该像素点的坐标对应的地图坐标处的像素值,生成与上述反射值图像对应的反射值地图图像;第二确定单元,配置用于采用图像对齐算法,确定从上述反射值图像对齐到上述反射值地图图像的旋转角度;第三确定单元,配置用于根据上述旋转角度和上述位姿信息中的偏航角,确定上述无人驾驶车辆的偏航角。

在一些实施例中,上述第一生成单元包括:获取模块,配置用于获取待生成反射值图像的相关信息,上述相关信息包括上述待生成反射值图像的横向像素数和纵向像素数以及单位像素长度,其中,上述单位像素长度用于表征上述待生成反射值图像中一个像素点所表征的物理长度;生成模块,配置用于生成m×n的待生成反射值图像,其中,上述m为上述横向像素数,上述n为上述纵向像素数;映射模块,配置用于根据上述位姿信息和上述相关信息,将上述激光点云数据中的每个激光点数据映射至上述待生成反射值图像中以生成与上述激光点云数据对应的反射值图像,其中,上述反射值图像的每个像素点的像素值基于映射至该像素点的各激光点数据的反射值的平均值确定。

在一些实施例中,上述激光点数据中的坐标为车体坐标系中的坐标,上述位姿信息中的坐标为世界坐标系中的坐标;以及上述映射模块进一步配置用于:根据上述位姿信息,确定上述待生成反射值图像的坐标原点在上述世界坐标系中的坐标;对于上述激光点云数据中的每个激光点数据,根据上述位姿信息确定该激光点数据在上述世界坐标系中的世界坐标系坐标,并根据所确定的世界坐标系坐标,确定该激光点数据在上述待生成反射值图像中的反射值图像坐标,并将该激光点数据映射至上述待生成反射值图像中上述反射值图像坐标中。

在一些实施例中,上述映射模块进一步配置用于:按照如下公式,计算该激光点数据在上述世界坐标系中的世界坐标系坐标:

[x’,y’]t=r×[x,y,z]t+[x0,y0]t

其中,r是由上述位姿信息确定的2×3的坐标变换矩阵,x、y和z分别是该激光点数据中坐标的x轴坐标、y轴坐标和z轴坐标,x0和y0分别是上述位姿信息中坐标的x轴坐标和y轴坐标,x’和y’分别是计算得到的该激光点数据在上述世界坐标系中的世界坐标系坐标的x轴坐标和y轴坐标。

在一些实施例中,上述映射模块进一步配置用于:按照如下公式,计算该激光点数据在上述待生成反射值图像中的反射值图像坐标:

i=int((x’–xorigin)÷dispix)

j=int((y’–yorigin)÷dispix)

其中,i和j分别是计算所得的该激光点数据在上述待生成反射值图像中的反射值图像坐标的x轴坐标和y轴坐标,int表示取整操作,x’和y’分别是所确定的该激光点数据在上述世界坐标系中的世界坐标系坐标的x轴坐标和y轴坐标,xorigin和yorigin分别是所确定的上述待生成反射值图像的坐标原点在上述世界坐标系中的x轴坐标和y轴坐标,dispix是上述单位像素长度。

在一些实施例中,上述预设地图是基于上述世界坐标系的地图;以及上述第一确定单元进一步配置用于:按照如下公式,计算与上述反射值图像中各个像素点的坐标对应的预设地图中的地图坐标:

xutm=(i+k)×dispix+xorigin

yutm=(j+k)×dispix+yorigin

其中,i和j分别是上述反射值图像中像素点的x轴坐标和y轴坐标,xutm和yutm分别是计算所得的与上述反射值图像中x轴坐标为i且y轴坐标为j的像素点的坐标对应的预设地图中的地图坐标的x轴坐标和y轴坐标,k为-1到1之间的常数,xorigin和yorigin分别是上述反射值图像的坐标原点在上述世界坐标系中的x轴坐标和y轴坐标,dispix是上述单位像素长度。

在一些实施例中,上述图像对齐算法为lucas-kanade前向算法。

在一些实施例中,上述第三确定单元进一步配置用于:根据上述旋转角度确定上述位姿信息中的偏航角的误差;计算上述位姿信息中的偏航角加上上述误差的角度和;将计算所得的角度和确定为上述无人驾驶车辆的偏航角。

第三方面,本申请实施例提供了一种无人驾驶车辆,该无人驾驶车辆包括:激光雷达,用于采集激光点云数据;惯性导航系统,用于采集位姿信息;一个或多个处理器;存储装置,用于存储一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如第一方面中任一实现方式描述的方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如第一方面中任一实现方式描述的方法。

本申请实施例提供的用于确定无人驾驶车辆的偏航角的方法和装置,通过根据激光雷达采集的激光点云数据和惯性导航系统采集的位姿信息,生成与激光点云数据对应的反射值图像,再根据上述反射值图像和上述位姿信息,生成与上述反射值图像对应的反射值地图图像,接着,采用图像对齐算法,确定从上述反射值图像对齐到上述反射值地图图像的旋转角度,最后根据上述旋转角度和上述位姿信息中的偏航角,确定上述无人驾驶车辆的偏航角,从而提高了确定无人驾驶车辆的偏航角的精度,并继而提高了无人驾驶车辆的定位精度。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是本申请可以应用于其中的示例性系统架构图;

图2a是根据本申请的用于确定无人驾驶车辆的偏航角的方法的一个实施例的流程图;

图2b是根据本申请的用于确定无人驾驶车辆的偏航角的方法的一个实施例中子步骤202的分解流程图;

图3是根据本申请的用于确定无人驾驶车辆的偏航角的方法的一个应用场景的示意图;

图4是根据本申请的用于确定无人驾驶车辆的偏航角的方法的又一个实施例的流程图;

图5是根据本申请的用于确定无人驾驶车辆的偏航角的装置的一个实施例的结构示意图;

图6是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

图1示出了可以应用本申请的用于确定无人驾驶车辆的偏航角的方法或用于确定无人驾驶车辆的偏航角的装置的实施例的示例性系统架构100。

如图1所示,系统架构100可以包括无人驾驶车辆101。无人驾驶车辆101上可以安装有驾驶控制设备1011、网络1012、激光雷达1013和惯性导航系统1014。网络1012用以在驾驶控制设备1011和激光雷达1013之间,以及驾驶控制设备1011与惯性导航系统1014之间提供通信链路的介质。网络1012可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

驾驶控制设备(又称为车载大脑)1011负责无人驾驶车辆的智能控制。驾驶控制设备1011可以是单独设置的控制器,例如可编程逻辑控制器(programmablelogiccontroller,plc)、单片机、工业控制机等;也可以是由其他具有输入/输出端口,并具有运算控制功能的电子器件组成的设备;还可以是安装有车辆驾驶控制类应用的计算机设备。

需要说明的是,本申请实施例所提供的用于确定无人驾驶车辆的偏航角的方法一般由驾驶控制设备1011执行,相应地,用于确定无人驾驶车辆的偏航角的装置一般设置于驾驶控制设备1011中。

应该理解,图1中的驾驶控制设备、激光雷达和惯性导航系统的的数目仅仅是示意性的。根据实现需要,可以具有任意数目的驾驶控制设备、激光雷达和惯性导航系统。

继续参考图2a,其示出了根据本申请的用于确定无人驾驶车辆的偏航角的方法的一个实施例的流程200。该用于确定无人驾驶车辆的偏航角的方法,包括以下步骤:

步骤201,实时获取激光雷达采集的无人驾驶车辆的激光点云数据和惯性导航系统采集的无人驾驶车辆的位姿信息。

在本实施例中,用于确定无人驾驶车辆的偏航角的方法运行于其上的电子设备(例如图1所示的驾驶控制设备)可以通过有线连接方式或者无线连接方式从激光雷达实时获取激光雷达采集的无人驾驶车辆的激光点云数据,以及从惯性导航系统实时获取惯性导航系统采集的无人驾驶车辆的位姿信息。其中,上述激光点云数据可以包括至少一个激光点数据,每个激光点数据可以包括坐标和反射值。上述位姿信息可以包括位置信息和姿态信息,其中,位置信息可以包括坐标,姿态信息可以包括偏航角。

可选地,姿态信息还可以包括俯仰角和滚转角。

需要指出的是,上述无线连接方式可以包括但不限于3g/4g连接、wifi连接、蓝牙连接、wimax连接、zigbee连接、uwb(ultrawideband)连接、以及其他现在已知或将来开发的无线连接方式。

步骤202,根据激光点云数据和位姿信息,生成与激光点云数据对应的反射值图像。

在本实施例中,上述电子设备(例如图1所示的驾驶控制设备)可以根据步骤201中得到的激光点云数据和位姿信息,生成与激光点云数据对应的反射值图像。可以理解的是,激光点云数据是由无人驾驶车辆上设置的激光雷达对车辆的周围环境进行扫描所得到的包括坐标和反射值的大量激光点数据,其体现了无人驾驶车辆周围环境相对于无人驾驶车辆的位置信息和反射值信息,也就是,说激光点数据的位置信息是基于车体坐标系的位置信息。而位姿信息是由无人驾驶车辆上设置的惯性导航系统给出的关于车辆的当前所在位置和车辆的当前姿态(例如,偏航角)在世界坐标系中的信息,其体现了无人驾驶车辆本身的信息。因此,上述电子设备可以首先根据位姿信息确定待生成的反射值图像在世界坐标系中的坐标原点,再将激光点云数据的坐标变换到与位姿信息相同的世界坐标系中的坐标,然后,可以根据所得到的激光点云数据在世界坐标系中的坐标,生成与激光点云数据对应的反射值图像。

步骤203,根据反射值图像和位姿信息,从预设的地图中确定与反射值图像中各个像素点的坐标对应的预设地图中的地图坐标。

在本实施例中,用于确定无人驾驶车辆的偏航角的方法运行于其上的电子设备上可以在步骤202中生成与激光点云数据对应的反射值图像后,根据所生成的反射值图像和步骤201中所获取的位姿信息,从预设的地图中确定与反射值图像中各个像素点的坐标对应的预设地图中的地图坐标。

步骤204,根据反射值图像的每个像素点的坐标和预设的地图中与该像素点的坐标对应的地图坐标处的像素值,生成与反射值图像对应的反射值地图图像。

在本实施例中,步骤204可以如下进行:

首先,可以生成与反射值图像同样大小的待生成反射值地图图像。

然后,可以对所生成的待生成反射值地图图像中的每个像素点,获取步骤203中所确定的与反射值图像中与该像素点的坐标相同的坐标对应的地图坐标,并获取上述预设的地图中上述地图坐标处的像素值,将所获取的像素值确定为该像素点的像素值。

最后,可以将所生成的待生成反射值地图图像确定为与反射值图像对应的反射值地图图像。

步骤205,采用图像对齐算法,确定从反射值图像对齐到反射值地图图像的旋转角度。

在本实施例中,上述电子设备可以在生成反射值图像和反射值地图图像后,采用图像对齐算法,确定从反射值图像对齐到反射值地图图像的旋转角度。这里,图像对齐算法,是用于确定从一幅图像变换到另一幅图像到的变换的算法。其中,变换可以包括旋转变换。

作为示例,图像对齐算法可以是反向合成图像对齐算法、baker-matthews算法(反向组合算法)等等。

可选的,上述变换还包括以下至少一项:平移变换和尺度变换。

步骤206,根据旋转角度和位姿信息中的偏航角,确定无人驾驶车辆的偏航角。

在本实施例中,上述电子设备可以在确定从反射值图像对齐到反射值地图图像的旋转角度后,采取各种方法,根据所确定的旋转角度和位姿信息中的偏航角,确定无人驾驶车辆的偏航角。

在本实施例的一些可选的实现方式中,步骤206可以如下进行:

首先,可以根据旋转角度确定位姿信息中的偏航角的误差。

可选地,可以直接将旋转角度确定为位姿信息中的偏航角的误差。

可选地,也可以将旋转角度乘以预设的误差系数的结果确定为位姿信息中的偏航角的误差。

然后,可以计算位姿信息中的偏航角加上误差的角度和。

最后,可以将计算所得的角度和确定为无人驾驶车辆的偏航角。

在本实施例的一些可选的实现方式中,如图2b所示,步骤202可以包括如下子步骤:

子步骤2021,获取待生成反射值图像的相关信息。

在本实现方式中,上述电子设备可以获取待生成反射值图像的相关信息。这里,上述相关信息可以包括待生成反射值图像的横向像素数和纵向像素数以及单位像素长度。其中,待生成反射值图像的横向像素数用于表征待生成反射值图像在像素坐标系中所具有的像素点的列数,待生成反射值图像的纵向像素数用于表征待生成反射值图像在像素坐标系中所具有的像素点的行数。这里,像素坐标系的单位是像素,图像中的像素点在像素坐标系中的坐标(i,j)表示该像素点位于像素坐标系中第i行第j列。通常来说,像素坐标系的坐标原点在图像的左上角像素点。例如,对于一幅1024×768的图像,该图像的横向像素数为1024,纵向像素数为768。待生成反射值图像中的一个像素点用于表征一个正方形区域,待生成反射值图像的单位像素长度用于表征待生成反射值图像中一个像素点所表征的正方形区域的边长。例如,单位像素长度可以为5米,即,待生成反射值图像中一个像素点用于表征5米×5米的正方形区域。

子步骤2022,生成m×n的待生成反射值图像。

在本实现方式中,上述电子设备可以生成m×n的待生成反射值图像,其中,m为上述横向像素数,n为上述纵向像素数。例如,待生成反射值图像的横向像素数为1024,待生成反射值图像的纵向像素数为768,m可以1024,n为768,则所生成的待生成反射值图像为1024×768的图像。

子步骤2023,根据位姿信息和相关信息,将激光点云数据中的每个激光点数据映射至待生成反射值图像中以生成与激光点云数据对应的反射值图像。

在本实现方式中,上述电子设备可以根据步骤201中所获取的位姿信息和子步骤2022中所获取的相关信息,将激光点云数据中的每个激光点数据映射至待生成反射值图像中以生成与激光点云数据对应的反射值图像。其中,反射值图像的每个像素点的像素值基于映射至该像素点的各激光点数据的反射值的平均值确定。作为示例,激光点数据的反射值可以为单通道的取值范围为0-255之间的整数,则可以将反射值图像中的像素点的像素值直接设置为映射至该像素点的各激光点数据的反射值的平均值所表征的灰度值。

可选地,上述激光点数据中的坐标可以为车体坐标系中的坐标,上述位姿信息中的坐标可以为世界坐标系中的坐标。其中,车体坐标系可以是用于表征无人驾驶车辆以外的物体相对于无人驾驶车辆本身的位置关系的坐标系。作为示例,可以以无人驾驶车辆中设置的激光雷达的安装位置作为车体坐标系的坐标原点,x轴在无人驾驶车辆的对称平面内并平行于无人驾驶车辆的设计轴线指向无人驾驶车辆的车头,y轴垂直于无人驾驶车辆对称平面指向无人驾驶车辆右方,z轴在无人驾驶车辆对称平面内,与x轴垂直并指向无人驾驶车辆的车身下方。作为示例,世界坐标系可以为utm(universaltransversemercartor,通用横墨卡托)世界坐标系。这样,子步骤2023可以包括如下子步骤:

子步骤20231,根据位姿信息,确定待生成反射值图像的坐标原点在世界坐标系中的坐标。

由于位姿信息是基于世界坐标系的用于对无人驾驶车辆的位置和姿态进行表征的信息,而激光点云数据中的坐标是基于车体坐标系的用于对车辆以外的物体相对于车辆的位置进行表征的坐标,因此,可以在生成待生成反射值图像之前,根据位姿信息,确定待生成反射值图像的坐标原点在世界坐标系中的坐标。

作为示例,下面给出一种根据位姿信息,确定待生成反射值图像的坐标原点在世界坐标系中的坐标的具体实现方式:

可以按照如下公式,计算待生成反射值图像的坐标原点在世界坐标系中的坐标:

xorigin=x0–(0.5×m×dispix)(公式1)

yorigin=y0–(0.5×n×dispix)(公式2)

其中:

m,n和dispix分别为子步骤2021中获取的待生成反射值图像的相关信息中的横向像素数、纵向像素数和单位像素长度。

x0和y0分别是步骤201中获取的位姿信息中的坐标的x轴坐标和y轴坐标。

这里,位姿信息中的坐标x0和y0基于世界坐标系的,表征的是无人驾驶车辆在世界坐标系中的位置。(0.5×m×dispix)计算所得的结果是待生成反射值图像的m个像素点所表征的物理长度的一半。(0.5×n×dispix)计算所得的结果是待生成反射值图像的n个像素点所表征的物理长度的一半。而用x0–(0.5×m×dispix)计算待生成反射值图像的坐标原点在世界坐标系中的x轴坐标,用y0–(0.5×m×dispix)计算待生成反射值图像的坐标原点在世界坐标系中的y轴坐标,则是假设无人驾驶车辆在世界坐标系中的坐标是待生成反射值图像的垂直中轴线和水平中轴线的交叉点在世界坐标系中的坐标,并假设待生成反射值图像的坐标原点位于左上角。

子步骤20232,对于激光点云数据中的每个激光点数据,根据位姿信息确定该激光点数据在世界坐标系中的世界坐标系坐标,并根据所确定的世界坐标系坐标,确定该激光点数据在待生成反射值图像中的反射值图像坐标,并将该激光点数据映射至待生成反射值图像中的反射值图像坐标中。

在本实现方式中,由于已经在子步骤20231中确定了待生成反射值图像的坐标原点在世界坐标系中的坐标,为了将激光点云数据中的每个激光点数据映射到待生成反射值图像中,首先可以根据位姿信息确定该激光点数据在世界坐标系中的世界坐标系坐标,然后可以根据所确定的世界坐标系坐标,确定该激光点数据在待生成反射值图像中的反射值图像坐标,最后可以将该激光点数据映射至待生成反射值图像中的反射值图像坐标中。

可选地,可以按照如下公式,根据位姿信息计算该激光点数据在世界坐标系中的世界坐标系坐标:

[x’,y’]t=r×[x,y,z]t+[x0,y0]t(公式3)

其中:

r是由位姿信息确定的2×3的坐标变换矩阵;

x、y和z分别是该激光点数据中坐标的x轴坐标、y轴坐标和z轴坐标;

x0和y0分别是位姿信息中坐标的x轴坐标和y轴坐标;

x’和y’分别是计算得到的该激光点数据在世界坐标系中的世界坐标系坐标的x轴坐标和y轴坐标。

作为示例,下面给出当位姿信息中包括偏航角时,r的一种具体实现方式:

其中:

yaw是位姿信息中的偏航角。

作为示例,下面给出当位姿信息中包括偏航角、俯仰角和滚转角时,r的另一种具体实现方式:

r=rz·rx·ry(公式8)

其中:

yaw、roll和pitch分别为位姿信息中的偏航角、滚转角和俯仰角。

可选地,可以按照如下公式,根据所确定的世界坐标系坐标,计算该激光点数据在待生成反射值图像中的反射值图像坐标:

i=int((x’–xorigin)÷dispix)(公式9)

j=int((y’–yorigin)÷dispix)(公式10)

其中:

i和j分别是计算所得的该激光点数据在待生成反射值图像中的反射值图像坐标的x轴坐标和y轴坐标;

int表示取整操作;

x’和y’分别是所确定的该激光点数据在世界坐标系中的世界坐标系坐标的x轴坐标和y轴坐标;

xorigin和yorigin分别是子步骤20231中所确定的待生成反射值图像的坐标原点在世界坐标系中的x轴坐标和y轴坐标;

dispix是子步骤2021中获取的待生成反射值图像的相关信息中的单位像素长度。

在本实施例的一些可选的实现方式中,预设的地图可以是基于上述世界坐标系的地图,这样,上述电子设备可以按照如下公式,根据反射值图像和位姿信息,计算与反射值图像中各个像素点的坐标对应的预设地图中的地图坐标:

xutm=(i+k)×dispix+xorigin(公式11)

yutm=(j+k)×dispix+yorigin(公式12)

其中:

i和j分别是反射值图像中像素点的x轴坐标和y轴坐标;

xutm和yutm分别是计算所得的与反射值图像中x轴坐标为i且y轴坐标为j的像素点的坐标对应的预设地图中的地图坐标的x轴坐标和y轴坐标;

k为-1到1之间的常数;

xorigin和yorigin分别是反射值图像的坐标原点在上述世界坐标系中的x轴坐标和y轴坐标;

dispix是上述单位像素长度。

继续参见图3,图3是根据本实施例的用于确定无人驾驶车辆的偏航角的方法的应用场景的一个示意图。在图3的应用场景中,如图3中图标301所示,无人驾驶车辆的驾驶控制设备从激光雷达获取激光点云数据以及从惯性导航系统获取位姿信息。然后驾驶控制设备根据所获取的激光点云数据和位姿信息生成了反射值图像和反射值地图图像,并采用图像对齐算法确定了旋转角度,再根据旋转角度对所获取的位姿信息中的偏航角进行校正,最后如图3中图标302所示,驾驶控制设备将校正后的偏航角输出给定位系统,其中,定位系统可以是不同于驾驶控制设备的其他电子设备,定位系统也可以是驾驶控制设备上安装的定位类应用。

本申请的上述实施例提供的方法通过根据从激光雷达获取的激光点云数据以及从惯性导航系统获取的位姿信息,对所获取的位姿信息中的偏航角进行校正,从而提高了确定无人驾驶车辆的偏航角的精度,并继而提高了无人驾驶车辆的定位精度。

进一步参考图4,其示出了用于确定无人驾驶车辆的偏航角的方法的又一个实施例的流程400。该用于确定无人驾驶车辆的偏航角的方法的流程400,包括以下步骤:

步骤401,实时获取激光雷达采集的无人驾驶车辆的激光点云数据和惯性导航系统采集的无人驾驶车辆的位姿信息。

步骤402,根据激光点云数据和位姿信息,生成与激光点云数据对应的反射值图像。

步骤403,根据反射值图像和位姿信息,从预设的地图中确定与反射值图像中各个像素点的坐标对应的预设地图中的地图坐标。

步骤404,根据反射值图像的每个像素点的坐标和预设的地图中与该像素点的坐标对应的地图坐标处的像素值,生成与反射值图像对应的反射值地图图像。

在本实施例中,步骤401、步骤402、步骤403和步骤404的具体操作与图2a所示的实施例中步骤201、步骤202、步骤203和步骤204的操作基本相同,在此不再赘述。

步骤405,采用lucas-kanade前向算法,确定从反射值图像对齐到反射值地图图像的旋转角度。

在本实施例中,用于确定无人驾驶车辆的偏航角的方法运行于其上的电子设备(例如图1所示的驾驶控制设备)可以采用lucas-kanade前向算法,确定从反射值图像对齐到反射值地图图像的旋转角度。

作为示例,将反射值图像记为图像t,将反射值地图图像记为图像i,假设从图像t到图像i之间的变换为包括平面转旋转角度为wz和平面内平移为(tx,ty)的二维变换,该二维变换可以用变换矩阵表示,可见二维变换w是由一个参数向量p=(wz,tx,ty)决定的,其中,wz为旋转变量,tx和ty分别为x轴和y轴的平移变量。为了确定从反射值图像对齐到反射值地图图像的旋转角度,就是求得从图像t变换到图像i的变换矩阵w中的旋转变量wz,下面给出一种具体求解过程:

第一步,设置参数向量p的当前值,并将由所设置的参数向量p的当前值得到的二维变换w作为当前二维变换w。

第二步,生成图像i的梯度图像

这里,所生成的梯度图像可以为与图像i的大小相同的图像。生成梯度图像的方法是目前广泛研究和应用的公知技术,在此不再赘述。

作为示例,梯度图像可以包括x轴方向的梯度图像和y轴方向的梯度图像其中,梯度图像和梯度图像都是与图像i的大小相同的图像,梯度图像和梯度图像中坐标为(i,j)的像素点的像素值可以是通过如下公式计算得到的:

其中:

是计算所得的梯度图像的坐标为(i,j)的像素点的像素值;

i(i+1,j)是图像i中坐标为(i+1,j)的像素点的像素值;

i(i,j)是图像i中坐标为(i,j)的像素点的像素值;

i(i,j+1)是图像i中坐标为(i,j+1)的像素点的像素值;

是计算所得的梯度图像的坐标为(i,j)的像素点的像素值。

第三步,对图像t中的每个坐标为(i,j)的像素点,按照如下公式计算按照当前二维变换w进行变换后的变换坐标(i',j')。

i'=i-wz·j+tx(公式16)

j'=wz·i+j+ty(公式17)

第四步,代入向量p的当前取值,计算雅克比矩阵

这里,等于图像t中各个坐标为(i,j)的像素点对应的矩阵:对wz的雅克比矩阵。所生成的雅克比矩阵为3×3的矩阵。

第五步,生成最快下降图

首先,生成与图像t大小相同的待生成最快下降图中每个像素点包含三个方向的取值,即在x轴方向、y轴方向和wz方向的取值。

然后,对所生成的待生成最快下降图中坐标为(i,j)的像素点,按照如下公式计算该像素点在x轴方向、y轴方向和wz方向的取值:

其中,(i,j)为中像素点的坐标;

(i',j')是第三步中计算的对图像t中坐标为(i,j)的像素点,按照当前二维变换w进行变换后的变换坐标(i',j');

是第二步中计算的图像i的梯度图像的坐标为(i',j')的像素点的像素值;

是第二步中计算的图像i的梯度图像的坐标为(i',j')的像素点的像素值;

即,对中每个坐标为(i,j)的像素点都可以求得该点在三个方向上的向量

第六步,计算参数向量p的增量

其中:

t(i,j)是图像t中坐标为(i,j)的像素点的像素值;

i(i',j')是图像i中坐标为(i',j')的像素点的像素值;

其他参数的含义可参见上述各步中相关说明,在此不再赘述。

第七步,判断参数向量p的增量的绝对值是否小于预设阈值,如果不小于,则利用参数向量p的增量更新当前参数向量p,并将更新后的当前参数向量p更新当前二维变换w,再转到第三步继续执行。如果小于,则将向量p中wz的取值确定为从反射值图像对齐到反射值地图图像的旋转角度,并结束。

步骤406,根据旋转角度和位姿信息中的偏航角,确定无人驾驶车辆的偏航角。

在本实施例中,步骤406的具体操作与图2a所示的实施例中步骤206的操作基本相同,在此不再赘述。

从图4中可以看出,与图2对应的实施例相比,本实施例中的用于确定无人驾驶车辆的偏航角的方法的流程400突出了采用lucas-kanade前向算法确定旋转角度,从而可以加快图像对齐的速度,继而提高定位的精度和速度。

进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种用于确定无人驾驶车辆的偏航角的装置的一个实施例,其中,无人驾驶车辆设置有激光雷达以及惯性导航系统。该装置实施例与图2a所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。

如图5所示,本实施例的用于确定无人驾驶车辆的偏航角的装置500包括:获取单元501、第一生成单元502、第一确定单元503、第二生成单元504、第二确定单元505和第三确定单元506。其中,获取单元501,配置用于实时获取上述激光雷达采集的上述无人驾驶车辆的激光点云数据和上述惯性导航系统采集的上述无人驾驶车辆的位姿信息,其中,上述激光点云数据中的每个激光点数据包括坐标和反射值,上述位姿信息包括坐标和偏航角;第一生成单元502,配置用于根据上述激光点云数据和上述位姿信息,生成与上述激光点云数据对应的反射值图像;第一确定单元503,配置用于根据上述反射值图像和上述位姿信息,从预设的地图中确定与上述反射值图像中各个像素点的坐标对应的预设地图中的地图坐标;第二生成单元504,配置用于根据上述反射值图像的每个像素点的坐标和上述预设地图中与该像素点的坐标对应的地图坐标处的像素值,生成与上述反射值图像对应的反射值地图图像;第二确定单元505,配置用于采用图像对齐算法,确定从上述反射值图像对齐到上述反射值地图图像的旋转角度;第三确定单元506,配置用于根据上述旋转角度和上述位姿信息中的偏航角,确定上述无人驾驶车辆的偏航角。

在本实施例中,用于确定无人驾驶车辆的偏航角的装置500的获取单元501、第一生成单元502、第一确定单元503、第二生成单元504、第二确定单元505和第三确定单元506的具体处理及其所带来的技术效果可分别参考图2对应实施例中步骤201、步骤202、步骤203、步骤204、步骤205和步骤206的相关说明,在此不再赘述。

在本实施例的一些可选的实现方式中,上述第一生成单元502可以包括:获取模块5021,配置用于获取待生成反射值图像的相关信息,上述相关信息包括上述待生成反射值图像的横向像素数和纵向像素数以及单位像素长度,其中,上述单位像素长度用于表征上述待生成反射值图像中一个像素点所表征的物理长度;生成模块5022,配置用于生成m×n的待生成反射值图像,其中,上述m为上述横向像素数,上述n为上述纵向像素数;映射模块5023,配置用于根据上述位姿信息和上述相关信息,将上述激光点云数据中的每个激光点数据映射至上述待生成反射值图像中以生成与上述激光点云数据对应的反射值图像,其中,上述反射值图像的每个像素点的像素值基于映射至该像素点的各激光点数据的反射值的平均值确定。获取模块5021、生成模块5022和映射模块5023的具体处理及其所带来的技术效果可分别参考图2a对应实施例中子步骤2021、子步骤2022和子步骤2023的相关说明,在此不再赘述。

在本实施例的一些可选的实现方式中,上述激光点数据中的坐标可以为车体坐标系中的坐标,上述位姿信息中的坐标可以为世界坐标系中的坐标;以及上述映射模块5023可以进一步配置用于:根据上述位姿信息,确定上述待生成反射值图像的坐标原点在上述世界坐标系中的坐标;对于上述激光点云数据中的每个激光点数据,根据上述位姿信息确定该激光点数据在上述世界坐标系中的世界坐标系坐标,并根据所确定的世界坐标系坐标,确定该激光点数据在上述待生成反射值图像中的反射值图像坐标,并将该激光点数据映射至上述待生成反射值图像中上述反射值图像坐标中。映射模块5023的具体处理及其所带来的技术效果可参考图2a对应实施例中步骤2023的相关说明,在此不再赘述。

在本实施例的一些可选的实现方式中,上述映射模块5023还可以进一步配置用于:按照如下公式,计算该激光点数据在上述世界坐标系中的世界坐标系坐标:

[x’,y’]t=r×[x,y,z]t+[x0,y0]t

其中,r是由上述位姿信息确定的2×3的坐标变换矩阵,x、y和z分别是该激光点数据中坐标的x轴坐标、y轴坐标和z轴坐标,x0和y0分别是上述位姿信息中坐标的x轴坐标和y轴坐标,x’和y’分别是计算得到的该激光点数据在上述世界坐标系中的世界坐标系坐标的x轴坐标和y轴坐标。映射模块5023的具体处理及其所带来的技术效果可参考图2a对应实施例中步骤2023的相关说明,在此不再赘述。

在本实施例的一些可选的实现方式中,上述映射模块5023还可以进一步配置用于:按照如下公式,计算该激光点数据在上述待生成反射值图像中的反射值图像坐标:

i=int((x’–xorigin)÷dispix)

j=int((y’–yorigin)÷dispix)

其中,i和j分别是计算所得的该激光点数据在上述待生成反射值图像中的反射值图像坐标的x轴坐标和y轴坐标,int表示取整操作,x’和y’分别是所确定的该激光点数据在上述世界坐标系中的世界坐标系坐标的x轴坐标和y轴坐标,xorigin和yorigin分别是所确定的上述待生成反射值图像的坐标原点在上述世界坐标系中的x轴坐标和y轴坐标,dispix是上述单位像素长度。映射模块5023的具体处理及其所带来的技术效果可参考图2a对应实施例中步骤2023的相关说明,在此不再赘述。

在本实施例的一些可选的实现方式中,上述预设地图可以是基于上述世界坐标系的地图;以及上述第一确定单元503可以进一步配置用于:按照如下公式,计算与上述反射值图像中各个像素点的坐标对应的预设地图中的地图坐标:

xutm=(i+k)×dispix+xorigin

yutm=(j+k)×dispix+yorigin

其中,i和j分别是上述反射值图像中像素点的x轴坐标和y轴坐标,xutm和yutm分别是计算所得的与上述反射值图像中x轴坐标为i且y轴坐标为j的像素点的坐标对应的预设地图中的地图坐标的x轴坐标和y轴坐标,k为-1到1之间的常数,xorigin和yorigin分别是上述反射值图像的坐标原点在上述世界坐标系中的x轴坐标和y轴坐标,dispix是上述单位像素长度。第一确定单元503的具体处理及其所带来的技术效果可参考图2a对应实施例中步骤203的相关说明,在此不再赘述。

在本实施例的一些可选的实现方式中,上述图像对齐算法可以为lucas-kanade前向算法。lucas-kanade前向算法的具体处理及其所带来的技术效果可参考图4对应实施例中步骤405的相关说明,在此不再赘述。

在本实施例的一些可选的实现方式中,上述第三确定单元506可以进一步配置用于:根据上述旋转角度确定上述位姿信息中的偏航角的误差;计算上述位姿信息中的偏航角加上上述误差的角度和;将计算所得的角度和确定为上述无人驾驶车辆的偏航角。第三确定单元506的具体处理及其所带来的技术效果可参考图2a对应实施例中步骤206的相关说明,在此不再赘述。

下面参考图6,其示出了适于用来实现本申请实施例的电子设备的计算机系统600的结构示意图。图6示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图6所示,计算机系统600包括中央处理单元(cpu,centralprocessingunit)601,其可以根据存储在只读存储器(rom,readonlymemory)602中的程序或者从存储部分606加载到随机访问存储器(ram,randomaccessmemory)603中的程序而执行各种适当的动作和处理。在ram603中,还存储有系统600操作所需的各种程序和数据。cpu601、rom602以及ram603通过总线604彼此相连。输入/输出(i/o,input/output)接口605也连接至总线604。

以下部件连接至i/o接口605:包括硬盘等的存储部分606;以及包括诸如lan(局域网,localareanetwork)卡、调制解调器等的网络接口卡的通信部分607。通信部分607经由诸如因特网的网络执行通信处理。驱动器608也根据需要连接至i/o接口605。可拆卸介质609,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器608上,以便于从其上读出的计算机程序根据需要被安装入存储部分606。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分607从网络上被下载和安装,和/或从可拆卸介质609被安装。在该计算机程序被中央处理单元(cpu)601执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括获取单元、第一生成单元、第一确定单元、第二生成单元、第二确定单元和第三确定单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一生成单元还可以被描述为“生成反射值图像的单元”。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:实时获取激光雷达采集的无人驾驶车辆的激光点云数据和惯性导航系统采集的无人驾驶车辆的位姿信息,其中,激光点云数据中的每个激光点数据包括坐标和反射值,位姿信息包括坐标和偏航角;根据激光点云数据和位姿信息,生成与激光点云数据对应的反射值图像;根据反射值图像和位姿信息,从预设的地图中确定与反射值图像中各个像素点的坐标对应的预设地图中的地图坐标;根据反射值图像的每个像素点的坐标和预设地图中与该像素点的坐标对应的地图坐标处的像素值,生成与反射值图像对应的反射值地图图像;采用图像对齐算法,确定从反射值图像对齐到反射值地图图像的旋转角度;根据旋转角度和位姿信息中的偏航角,确定无人驾驶车辆的偏航角。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1