本公开涉及一种环境感测领域,特别涉及环境感测系统、控制装置以及环境感测数据融合装置。
背景技术:
在许多领域,特别是无人驾驶领域,例如用于道路行驶的无人驾驶车辆或用于智能物流的自动驾驶无人车,均需要配置环境感知设备。经常使用的无人驾驶环境感知设备的例子有激光雷达(lidar)和摄像头(camera)。
作为环境感知设备,激光雷达和摄像头各有优缺点。
摄像头的优点是成本低廉,而且用摄像头做算法开发的人员也比较多,技术相对比较成熟。
然而,摄像头的劣势也有多方面。
首先,使用摄像头难以获取准确三维信息。使用单目摄像头几乎不可能获取准确三维信息。有人提出双目或三目摄像头来获取准确三维信息。但是实现仍然比较困难。
另一个缺点是摄像头受环境光的限制比较大。
激光雷达的优点在于,其探测距离较远,而且能够准确获取物体的三维信息。另外,它的稳定性相当高,鲁棒性好。
但是,目前激光雷达成本较高,而且产品的最终形态也还未确定。
另外,激光雷达也比较难以识别色彩等元素。
因此,为了实现准确、精细的深度与颜色感知,进而辅助识别车道线、路牙、路障并做出预测和响应,就需要结合使用激光雷达与摄像头。
目前的激光雷达主要有机械旋转和相位控制两种,都是对某一视场角范围内进行垂直和/或水平两个方向的扫描,可以认为是旋转式扫描。
而摄像头则是固定在车辆前后左右等一个或多个固定位置处。
这样,就会存在同一时刻摄像头拍摄的视场角中心无法与激光雷达的扫描位置重合的情况,这样的情况会造成后续激光雷达与摄像头数据融合时的不一致,如运动物体在激光雷达与摄像头中的位置不一致,可能被识别成不同物体,这就对数据融合带来挑战,增加了环境感知的难度,降低了物体识别、分类的精度。
因此,需要在数据融合前,精准控制摄像头的曝光时刻,以使曝光时刻的摄像头视场角中心线与激光雷达激光脉冲发射方向重合。
技术实现要素:
本公开要解决的一个技术问题是提供一种环境感测控制方案,其能够方便地实现摄像装置和激光雷达之间的同步控制。
根据申请的第一个方面,提供了一种环境感测系统,包括:激光雷达,用于发射激光脉冲,感测反射回的激光脉冲,并生成对应于激光脉冲的数据包,激光雷达的激光脉冲发射方向绕转轴旋转,数据包中包括相应激光脉冲被发射时激光脉冲发射方向的方位角;以及控制装置,接收来自激光雷达的数据包,响应于从数据包得到的方位角为第一方位角,向摄像装置发送拍摄触发信号;摄像装置,响应于拍摄触发信号拍摄图像,摄像装置的视场角中心线对应于激光脉冲发射方向的第二方位角,其中,激光脉冲发射方向从第一方位角旋转到第二方位角所需时间基本上等于从激光脉冲发射方向处于第一方位角的时刻到摄像装置受控制装置发送的拍摄触发信号触发而曝光所需的延时。
可选地,延时包括下述至少一项:从激光雷达发出激光脉冲到控制装置从对应于激光脉冲的数据包中解析出方位角所需的延时;控制装置生成拍摄触发信号所需的延时;摄像装置驱动曝光所需的延时;以及摄像装置曝光时间的一半。
可选地,从激光雷达发出激光脉冲到控制装置从对应于激光脉冲的数据包中解析出方位角所需的延时包括下述至少一项:从激光雷达发出激光脉冲到生成激光脉冲对应的数据包所需的延时;激光雷达将数据包传输到控制装置所需的延时;以及控制装置从数据包中解析出方位角所需的延时。
可选地,数据包对应于至少一个激光脉冲,数据包中包括至少一个激光脉冲中的第一个激光脉冲的激光脉冲发射方向的方位角。
可选地,从激光雷达发出激光脉冲到生成激光脉冲对应的数据包所需的延时包括:激光雷达发射至少一个激光脉冲所需的时间段;以及激光雷达打包生成数据包所需的延时。
可选地,数据包中还包括发射激光脉冲时的时间,从激光雷达发出激光脉冲到控制装置从对应于激光脉冲的数据包中解析出方位角所需的延时是基于从数据包中解析出方位角的第二时间与数据包中所包括的第一时间确定的。
可选地,该环境感测系统还可以包括:时钟源,用于向激光雷达和控制装置提供统一的时钟信号。
可选地,时钟源为gps接收器。
可选地,控制装置还用于使摄像装置所拍摄的图像和激光雷达的测量数据同步,并融合图像和测量数据。
可选地,摄像装置的视场角中心线或其反向延长线与激光雷达的转轴相交。
可选地,控制装置根据激光雷达的测量数据确定是否开启摄像装置。
可选地,控制装置根据对摄像装置所拍摄的图像的分析结果,确定是否开启激光雷达,并且/或者确定激光雷达的扫射范围。
根据申请的第二个方面,提供了一种环境感测系统,包括:激光雷达,用于发射激光脉冲,感测反射回的激光脉冲,以得到测量数据;摄像装置,用于拍摄图像;以及控制装置,连接到激光雷达和摄像装置,接收来自激光雷达的测量数据,并根据激光雷达的测量数据确定是否开启摄像装置。
可选地,在根据激光雷达的测量数据确定在预定方位角范围内并且/或者在预定距离范围内存在检测对象时,控制装置向摄像装置发送第一开启信号。
可选地,控制装置将激光雷达的测量数据发送给外部设备,并从外部设备接收是否在预定方位角范围内并且/或者在预定距离范围内存在检测对象的分析结果。
可选地,控制装置可以根据激光雷达的测量数据,确定摄像装置的成像参数,并基于成像参数向摄像装置发送控制指令。
可选地,成像参数可以包括下述至少一项:焦距、对焦点位置、景深、拍摄范围。
根据本申请的第三个方面,提供了一种环境感测系统,包括:激光雷达,用于发射激光脉冲,感测反射回的激光脉冲,以得到测量数据;摄像装置,用于拍摄图像;以及控制装置,连接到激光雷达和摄像装置,接收来自摄像装置的图像数据,并根据对图像数据的分析结果确定是否开启激光雷达,并且/或者确定激光雷达的扫射范围。
可选地,在根据对摄像装置所拍摄的图像的分析结果确定,在预定方位角范围内,并且/或者在预定距离范围内,存在检测对象时,控制装置向激光雷达发送第二开启信号。
可选地,根据对摄像装置所拍摄的图像的分析结果确定检测对象的位置,并基于检测对象的位置确定激光雷达的扫射范围。
可选地,控制装置将来自摄像装置的图像数据发送给外部设备,并从外部设备接收是否对图像的分析结果。
根据申请的第四个方面,提供了一种用于环境感测系统的控制装置,包括:第一接口,用于接收来自激光雷达的数据包,激光雷达的激光脉冲发射方向绕转轴旋转,数据包中包括数据包所对应的激光脉冲被发射时激光脉冲发射方向的方位角;第二接口,连接到摄像装置;数据包解析模块,用于从数据包解析其所包括的方位角;以及拍摄触发模块,响应于数据包解析模块解析得到的方位角为第一方位角,经由第二接口向摄像装置发送拍摄触发信号,其中,激光脉冲发射方向从第一方位角旋转到第二方位角所需时间基本上等于从激光脉冲发射方向处于第一方位角的时刻到摄像装置受控制装置发送的拍摄触发信号触发而曝光所需的延时,第二方位角是摄像装置的视场角中心线对应的方位角。
可选地,该控制装置还可以包括:第三接口,用于从时钟源接收时钟信号,时钟源还向激光雷达提供时钟信号,来自激光雷达的数据包中还包括所对应的激光脉冲被发射时的时间信息。
可选地,该控制装置还可以包括:图像处理模块,用于根据时钟信号给所接收的图像添加拍摄时间信息。
可选地,第一接口是以太网接口;并且/或者第二接口是csi接口;并且/或者第三接口是串口。
可选地,该控制装置还可以包括第一控制模块,根据激光雷达的测量数据确定是否开启摄像装置。
可选地,该控制装置还可以第二控制模块,根据对摄像装置所拍摄的图像的分析结果,确定是否开启激光雷达,并且/或者确定激光雷达的扫射范围。
根据申请的第五个方面,提供了一种环境感测数据融合装置,包括:第一接口,用于接收来自激光雷达的数据包,激光雷达的激光脉冲发射方向绕转轴旋转,数据包中包括数据包所对应的激光脉冲被发射时激光脉冲发射方向的方位角;第二接口,用于接收摄像装置拍摄的图像数据;数据包解析模块,用于从数据包解析其所包括的方位角;拍摄触发模块,响应于数据包解析模块解析得到的方位角为第一方位角,经由第二接口向摄像装置发送拍摄触发信号;以及数据融合模块,用于融合来自激光雷达的测量数据和来自摄像装置的图像数据,使得激光雷达在摄像装置拍摄图像的时刻发射的激光脉冲对应的数据包的测量数据与图像数据的图像中心线对齐,图像中心线与激光雷达的转动方向垂直,其中,激光脉冲发射方向从第一方位角旋转到第二方位角所需时间基本上等于从激光脉冲发射方向处于第一方位角的时刻到摄像装置受控制装置发送的拍摄触发信号触发而曝光所需的延时,第二方位角是摄像装置的视场角中心线对应的方位角。
根据申请的第六个方面,提供了一种控制装置,包括:第一接口,连接到激光雷达,接收来自激光雷达的测量数据;第二接口,连接到摄像装置;以及第一控制模块,根据激光雷达的测量数据确定是否开启摄像装置。
根据申请的第七个方面,提供了一种控制装置,包括:第一接口,连接到激光雷达;第二接口,连接到摄像装置,接收来自摄像装置的图像数据;以及第二控制模块,根据对图像数据的分析结果确定是否开启激光雷达,并且/或者确定激光雷达的扫射范围。
由此,在一些实施例中,基于激光雷达的旋转来控制摄像装置触发。例如,在实施例中,利用时延相对固定且极低的fpga设备对摄像装置进行准确触发,方便地实现了摄像装置的图像数据与激光雷达的点云数据在时间上高度同步,降低了误差。
在另一些实施例中,根据激光雷达的测量数据确定对摄像装置的控制,或者根据对图像数据的分析结果确定对激光雷达的控制,能够提高设备利用效率。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示意性地示出了在车辆应用场景下应用环境感测系统的情形。
图2示出了激光雷达和4个摄像装置的示例布置方案。
图3示意性地示出了根据本申请一个实施例的环境感测系统。
图4示出了作为示例的一种现有激光雷达的激光脉冲发射时序图。
图5示出了根据本申请的控制装置400的示意性框图。
图6示意性地示出了基于方位角α触发拍摄的示意图。
图7示意性地示出了上述从第一方位角α0到第二方位角α2整个过程中的各段延时的示例。
图8示意性地示出了数据融合模块。
图9示意性地示出了根据本申请另一个实施例的环境感测系统。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图1示意性地示出了在车辆应用场景下(例如自动驾驶、导航等),应用环境感测系统的情形。
例如在车顶中央设置了激光雷达。激光雷达旋转,使得其激光脉冲发射方向绕着竖直方向的转轴,例如从俯视图看沿顺时针方向旋转。
车身上还安装有摄像装置,例如摄像头。摄像装置的数量可以根据需要来设定。例如可以朝着车辆前后左右4个方向各设置1个摄像装置,合计设置4个摄像装置。
可以定义激光雷达的方位角(azimuth),即从俯视图来看激光雷达的激光脉冲发射方向目前旋转到的角度。可以将某个方向定义为方位角计算起始方向,即0°方位角。例如可以将一个摄像装置的视场中心线对应的方向定义为0°方位角。或者,也可以将车辆正前方对应的方向定义为0°方位角。这里,可以用从上述起始方向沿转动方向转动到某个方向的方位角来表示这个方向,例如0°方位角可以用来指代上述起始方向。而90°方位角、180°方位角,270°方位角可以分别用来指代从0°方位角顺时针(转动方向)转动90°、180°、270°的方向。
各摄像装置的视场角中心线或其反向延长线可以设置为与激光雷达的转轴相交。这样,各摄像装置的视场中心线可以分别对应于激光雷达的一个方位角。当激光雷达的激光脉冲发射方向转动到这个方位角时,激光脉冲的发射方向与摄像装置所拍摄的图像的中心线基本上重合。这里的图像中心线与激光雷达的转动方向垂直。在例如激光雷达的转轴为竖直方向的情况下,图像中心线可以是图像中水平方向的中心位置处竖直方向的中心线。
一般地,各摄像装置的视场中心线相对于0°方位角具有一个角度,可以称为“偏航角(yaw)”。若视场中心线方向在转动方向上在0°方位角之前,则偏航角为负值。若视场中心线方向在转动方向上在0°方位角之后,则偏航角为正值。
方便起见,可以将一个摄像装置的视场中心线设置为0°方位角,即偏航角为0°。在如上所述朝着前后左右4个方向各设置有1个摄像装置的情况下,这4个摄像装置的视场中心线的偏航角可以分别为90°、180°、270°。
图2示出了4个摄像装置相对于激光雷达0°方位角的偏航角分别为0°、90°、180°、270°的示例布置俯视图。其中,激光脉冲发射方向沿顺时针方向旋转。
应当明白,也可以设置为任何一个摄像装置的视场中心线均不在0°方位角。
环境感测系统需要将激光雷达的测量数据与摄像装置拍摄的图像数据融合,以得到相应的环境感测结果。考虑到现实环境中,感测对象,例如道路上的车辆等,往往都在运动中,因此需要使通过这两种方式获取的数据同步。
因此,优选地,摄像装置拍摄图像时,激光雷达的激光脉冲发射方向正好差不多在摄像装置的视场中心线方向上。这样,在这一段时间(例如摄像装置的成像时间段),激光雷达的测量对象和摄像装置的拍摄对象基本上对应,分别获取的测量数据和图像数据基本上同步。
下面进一步描述本申请实现上述同步的技术方案。
图3示意性地示出了根据本申请一个实施例的环境感测系统。
如图3所示根据本申请的环境感测系统除了上述激光雷达200和摄像装置300之外,还可以进一步设置控制装置400,以实现对激光雷达200的测量数据和摄像装置300的拍摄图像的同步控制。
另外,还可以进一步包括时钟源100,以便为激光雷达200和控制装置300提供时钟信号。
下面逐个描述这些部件。
【时钟源】
可以使用各种时钟发生器作为时钟源100。
随着gps技术的普及,特别是在使用环境感测系统的应用场景,例如自动驾驶或导航场景中,往往还会用到gps定位信号,所以采用gps接收机来作为时钟源100往往是非常便利而精确的。
gps接收机可以提供gprmc数据,其中包括精确的utc时间信息等。
除了提供精确的时间信息,gps接收机例如还可以产生pps脉冲信号,即每1秒钟1个脉冲的脉冲信号pps(pulsepersecond)。可以基于该pps脉冲信号来对激光雷达200的运行进行控制。
时钟源100可以向激光雷达200和控制装置400发送pps信号和gprmc数据。
【激光雷达】
激光雷达(lidar)200通过激光脉冲的垂直以及水平扫描来产生三维空间点云数据。激光雷达200可以连接到时钟源100,从时钟源100获取时间信息以及上述pps脉冲信号。
激光雷达200可以具有旋转装置例如马达等,用于带动激光脉冲的发射方向旋转。激光脉冲发射方向的每分钟旋转圈数(rpm,roundsperminute)可以具有设定值,或者也可以根据需要由用户设定。作为示例,一些激光雷达的rpm默认值是600,即1分钟旋转600圈,换言之每秒旋转10圈,1圈100ms。
如上文所述,可以将从俯视图来看激光雷达200的激光脉冲发射方向目前旋转到的角度(即相对于所定义的旋转起始方向,0°方位角,的角度)称为激光雷达200的“方位角(azimuth)”。
旋转装置一般会有一些转速精度方面的误差。当长时间运转后,误差累积会造成较大的不可忽略的误差。
因此,一些激光雷达具有相位锁定(phaselock)的功能,即可以配置某个方位角α,每当有来自时钟源100的pps信号输入时,保证pps上升沿到来时,激光雷达200的激光脉冲发射方向的方位角为α。这样,可以基于精确的pps信号,随时校准激光雷达200的激光脉冲发射方向旋转方位。
在工作过程中,激光雷达200将基于反射回的激光脉冲得到的测量数据例如通过以太网接口发送给外界设备,可以称为“点云数据”。在本申请的方案中,可以发送给例如由fpga板卡实现的控制装置。
从某个方位角开始到下一个相同方位角,激光雷达200的激光脉冲发射方向每旋转一圈形成一个点云数据构成一个点云数据帧flidar。
图4示出了作为示例的一种现有激光雷达的激光脉冲发射时序图。
该激光雷达具有32个激光器。每个激光器都每55.296μs完成一次发射和充电循环。
这些激光器依次成对发射,即每次有一对激光器同时发射。这样,在图4所示脉冲时序图中,有16个脉冲,即在16个子时间段内分别有一对激光器发射激光脉冲。所有32个激光器从一个发射循环(一组脉冲)中第一个脉冲到下个发射循环(下一组脉冲)中第一个脉冲的时间周期为55.296μs。
从一对激光器开始发射到下一堆激光器开始发射的时间间隔是2.304μs。这样,16个脉冲后会有18.432μs的间隔,然后进入下一组脉冲的发射。
激光雷达200可以将若干个发射循环对应的点云数据(脉冲测量数据)打成一个数据包,然后将数据包发送给外界设备,例如本申请的控制装置。
这里,一个数据包对应的发射循环数量可以根据激光雷达的不同设置而不同,也可以由用户自行设置。
例如,在一种激光雷达中,每12个发射循环对应的点云数据打包到一个数据包中。
这样,从一个数据包对应的第一个激光脉冲开始发射(时序图中上升沿)到该数据包对应的最后一个激光脉冲发射完毕,需要经过若干个(例如12个)发射循环。因此,在开始生成数据包之前,其所对应的第一个激光脉冲之后已经经过了55.296μs×12=663.552μs的延时。
另外,数据打包也需要若干μs的打包延时。根据激光雷达的实际设置情形,这个打包延时时长基本上可以是固定的,或者在本申请所需要的精度范围内,可以认为其变化差异可忽略不计。
另外,数据包从激光雷达200通过以太网接口传输到本申请的控制装置也需要若干μs的以太网传输延时。类似地,根据传输接口及线路等实际设置情形,这个以太网传输延时时长也基本上可以是固定的,或者在本申请所需要的精度范围内,可以认为其变化差异可忽略不计。
数据包中可以包括其所对应的激光脉冲发射方向的方位角。例如,可以在数据包中仅添加其所对应的第一个发射循环中第一个激光脉冲的发射方向的方位角。如果需要,其它激光脉冲的方位角可以基于第一个激光脉冲的方位角,结合激光雷达200的转速计算得到。
另外,数据包中还可以包括其所对应的激光脉冲的发射时间(时间戳)。同样地,可以在数据包中仅添加其所对应的第一个发射循环中第一个激光脉冲的发射时间。如果需要,其它激光脉冲的发射时间可以基于第一个激光脉冲的发射时间和上述激光脉冲发射时序设置来推算。
【摄像装置】
摄像装置300(例如可以是摄像头)响应于来自控制装置的拍摄触发信号,对所要感测的环境空间拍摄图像,并将拍摄得到的图像数据传送回到控制装置。
摄像装置300的设置可以如上文参考图1和图2所述。
如上文所述,摄像装置300的视场角中心线对应于激光脉冲发射方向的第二方位角。各摄像装置300的视场角中心线或其反向延长线可以设置为与激光雷达200的转轴相交。
如上文所述,在设置有多个摄像装置300的情况下,每个摄像装置300可以具有不同的偏航角。可以通过使用摄像装置300和激光雷达200进行联合标定,来获取摄像装置300相对于激光雷达200的0°方位角的偏航角yaw。
摄像装置300从收到拍摄触发信号到开始曝光(即开始接收到第一个像素)需要一个驱动延时tcam。例如,对于200万像素、帧频为20fps(帧每秒)的摄像头,tcam为1.2ms;对于100万像素、帧频为30fps(帧每秒)的摄像头,tcam为2.1ms。
一般地,可以查阅摄像装置的手册来获取摄像装置300的驱动延时信息tcam。
如果无法获取通过查阅手册来获取tcam,可选地,还可以通过示波器来实际测量得到tcam。
另外,不论摄像装置300采用卷帘快门(rollingshutter)还是全局快门(globalshutter),整体上都会存在一个曝光持续时间(或称为“曝光时间”)。曝光持续时间可以根据需要设置,或者由摄像装置300自动设置或固定设置。在由摄像装置300自动设置或固定设置的情况下,也是可以通过查阅手册或测量来获知曝光持续时间的。
相比而言,采用全局快门更加容易进行激光雷达200与摄像装置300之间的同步控制。
关于卷帘快门和全局快门的曝光原理,在此不再赘述。
如上文所述,激光雷达200的激光脉冲发射方向可以具有固定或设定的转速,例如1分钟600圈,即一秒钟10圈,一圈100ms。
期望每当激光雷达200的激光脉冲发射方向转动到对应于摄像装置300的视场中心线时,摄像装置300拍摄图像,即使激光雷达200与摄像装置300同步。因此,摄像装置300的拍摄频率应当与激光雷达200的转速对应。例如,在转速为1分钟600圈的情况下,拍摄频率为10hz。
下面描述本申请通过控制装置400实现摄像装置300与激光雷达200的同步方案。
【控制装置】
图5示出了根据本申请的控制装置400的示意性框图。
可以采用fpga(现场可编程逻辑门阵列,fieldprogrammablegatearrays)来实现本申请的控制装置400。
下文中以fpga板卡作为控制装置的示例进行描述。
如图5所示,fpga板卡400上可以具有第一接口402、第二接口404、第三接口406。
激光雷达200、摄像装置300、时钟源100可以分别通过第一接口402、第二接口404、第三接口406接入fpga板卡。
第一接口例如可以是以太网接口(ethernet)。
第二接口例如可以是相机串行接口(csi,cmossensorinterface)。
第三接口例如可以是串行接口(si,serialinterface)。
控制装置400经由第三接口406从时钟源100接收pps信号和gprmc数据。
例如通过uart解码器410和gprmc解码器412,可以获取gprmc数据中包含的各种数据,例如utc时间信息等。
控制装置400经由第一接口402从激光雷达200接收数据包。
如上文所述,数据包中可以包括若干个发射循环中得到的测量数据、激光脉冲发射方向的方位角、以及时间戳。方位角和时间戳例如可以是若干个发射循环中第一个发射循环中第一个激光脉冲的方位角和发射时间。
经以太网解码器420解码的数据包送到数据包解析模块422,对数据包进行解析,可以得到其中包括的方位角α和时间戳ts。
再经过以太网编码器424,可以向后续数据处理过程提供数据融合所需要的点云数据。
控制装置400经由第二接口404从摄像装置300接收原始图像数据。经midi解码器430解码,在图像dma(directmemoryaccess,直接内存存取)434(也可以称为图像处理模块)基于utc时间打上时间戳,向后续数据融合处理提供图像数数据。
控制装置400和激光雷达200从同一时钟源100接收时间信息,保证了utc(协调世界时)时间是同源的。这样,来自激光雷达200的点云数据和来自摄像装置300的图像数据可以在时间方面对齐。
另外,控制装置400基于数据包解析模块422解析得到的方位角α,来生成拍摄触发信号。
具体说来,在解析得到的方位角α为特定方位角α0(也可以称为“触发方位角”,更一般地,仅作为指代,可以称为“第一方位角”)时,由拍摄触发模块432生成拍摄触发信号,并经由第二接口404向摄像装置300提供拍摄触发信号,触发摄像装置300拍摄图像,从而实现摄像装置300和激光雷达200之间的同步。
设摄像装置300的视场角中心线对应于激光雷达200的激光脉冲发射方向的第二方位角α2。
在设置有多个摄像装置300的情况下,可以分别设置相应的方位角α0,生成相应的拍摄触发信号。
可以在控制装置400中存储第一方位角α0。当从数据包中解析得到对应的方位角α时,将所得到的方位角α与所存储的第一方位角α0进行比较,以确定是否需要由拍摄触发模块432生成拍摄触发信号。
这里,第一方位角α0可以设置为,激光雷达200的激光脉冲发射方向从第一方位角α0旋转到第二方位角α2所需时间基本上等于从激光脉冲发射方向处于第一方位角α0的时刻到摄像装置300受控制装置400发送的拍摄触发信号触发而曝光所需的延时。
换言之,确定一个第一方位角α0,如果激光雷达200在该方位角处发射激光脉冲得到的对应数据包被控制装置400解析,并相应用来触发拍摄装置300拍摄图像,则使得激光雷达200的激光脉冲发射方向旋转到摄像装置300的视场中心线时,拍摄装置300拍摄图像。
这样,可以通过判断数据包中所包含的方位角是否等于该第一方位角α0,来确定是否要触发拍摄。并在解析到方位角α为第一方位角α0时,触发摄像装置300拍摄图像。
下面简要描述本申请基于方位角α来对摄像装置300进行拍摄触发的原理。
图6示意性地示出了基于方位角α触发拍摄的示意图。
设t0时刻,激光雷达200的激光脉冲发射方向处于第一方位角α0。相应的数据包发送到控制装置400。
在t1时刻,控制装置400对数据包进行解析得到其中包括的方位角α0。此时,激光雷达200的激光脉冲发射方向已旋转到方位角α1处。
于是,控制装置400向摄像装置300发出拍摄触发信号。
在t2时刻,摄像装置300响应于拍摄触发信号而开始曝光。此时,激光雷达200进一步旋转到方位角α2处。
通过选择合适的α0,可以使得t2时刻激光雷达200的激光脉冲发射方向的方位角α2恰为摄像装置的视场中心线对应的第二方位角。
激光雷达200的转速已知。通过选择合适的第一方位角α0,可以使得激光雷达200的激光脉冲发射方向从方位角α0转动到方位角α2所需时间,与从激光脉冲发射方向处于第一方位角α0的时刻t0到控制装置400解析出数据包中的方位角为α0的时刻t1,再到摄像装置300受控制装置400发送的拍摄触发信号触发而曝光的时刻t2,所需的总延时(t2-t1)相等。这样,即可以实现激光雷达200与摄像装置300之间的同步。
例如,设摄像装置300的视场中心线相对于0°方位角具有偏航角yaw。这样,第二方位角α2为yaw。若yaw小于0,或者yaw较小,可以记第二方位角α2为360°+yaw。
可以通过下式计算α0:
α0=α2-(t2-t0)×ω
其中,ω为激光雷达200的激光脉冲发射方向的旋转角速度。在1分钟600圈的情况下,ω=3.6°/ms。
图7示意性地示出了上述从第一方位角α0到第二方位角α2整个过程中的各段延时的示例。
如前所述,一个数据包对应的12组激光脉冲总计耗时为663.52μs,即激光雷达200发射一个数据包对应的至少一个激光脉冲所需要的时延。如上文所述,数据包中可以包括上述至少一个激光脉冲中第一个激光脉冲对应的方位角。
udp数据打包需要若干μs延时,即激光雷达打包生成所述数据包所需的延时。
数据包从激光雷达200到控制装置400的以太网传输也需要若干μs延时。
控制装置400(例如fpga板卡)从数据包解析得到数据包中包括的方位角信息也需要大约15μs的时延。
上述这些都是与激光雷达相关的时延,对应于图6中从t0到t1的时延,也即从激光雷达发出激光脉冲到控制装置从对应于所述激光脉冲的数据包中解析出方位角所需的延时。
上述时延数据是作为示例给出的。应当明白,基于实际采用的硬件性能以及相应设置,各个时延数据会有所变化。但是应当理解,对于具体设置好的激光雷达200和控制装置400(例如fpga板卡),这些时延都具有相对固定的数值。
上述从激光雷达200发出激光脉冲到控制装置400从对应于所述激光脉冲的数据包中解析出方位角所需的延时,也即图2所示t1-t0,也可以通过解析数据包中的时间来确定。
例如,数据包中还可以包括发射激光脉冲时的时间(下面称为“第一时间”)。例如,可以包括发射数据包对应的至少一个激光脉冲中第一个激光脉冲的第一时间(即t0)。
另外,从数据包中解析出方位角时,可以确定当时的第二时间(即t1)。由于激光雷达200和控制装置400可以连接到同一个时钟源,从而可以获得统一的时钟信号,两者的时间信息是统一的。
因此,基于第二时间t1和数据包中所包括的第一时间t0,即可确定从激光雷达200发出激光脉冲到控制装置400从对应于所述激光脉冲的数据包中解析出方位角所需的延时,例如,两者相减即可,即t1-t0。
从t1到t2,还包括驱动摄像装置300曝光所需的时间,例如包括控制装置400生成拍摄触发信号所需的延时、摄像装置300驱动曝光所需的延时。
在一些情况下,例如作为控制装置400的fpga在解析出相应的第一方位角α0之后生成拍摄触发信号所需的时间非常短,可以忽略不计。
摄像装置300驱动曝光所需的延时可以包括从控制装置400发出/摄像装置300收到拍摄触发信号,到收到第一个像素,所耗费的延时。
例如,对于某种200万像素的摄像头,帧频为20fps的情况下,这个驱动延时大约为1.2ms。对于某种100万像素摄像头,帧频为30fps,这个驱动延时大约为2.1ms。
另外,考虑到摄像装置300还需要若干ms的曝光时间,为了更好地使激光雷达200的激光脉冲与摄像装置300拍摄的图像数据对齐,优选地,还可以考虑加上例如曝光时间的一半的延时。例如,曝光时间可以预估为2ms,那么这段延时可以预估为1ms。应当理解,曝光时间与摄像装置300的具体设置相关。
这样,可以确定从激光雷达200在相应第一方位角α0处发出激光脉冲(t0),到控制装置400从数据包中解析到该激光脉冲对应的方位角为第一方位角α0(t1),于是生成拍摄触发信号,驱动摄像装置300曝光到曝光时间的一半(t2)总共所需的时间。
基于所确定的总时间和激光雷达200的激光脉冲发射方向的旋转角速度ω,例如ω=3.6°/ms,可以确定从第一方位角α0到摄像装置300的视场中心线对应的第二方位角α2的夹角δα。
然后,由于第二方位角α2可以根据摄像装置300相对于激光雷达200的设置方位而预先确定,所以可以基于α2和夹角δα推算出第一方位角α0。
即上述公式:
α0=α2-(t2-t0)×ω
由此,确定了摄像装置300所对应的第一方位角α0。
于是,控制装置400可以解析来自激光雷达200的数据包,得到其中包含的方位角信息。在解析得到的方位角为如上所述确定的第一方位角α0的情况下,生成拍摄触发信号,触发摄像装置300进行拍摄。
应当理解,如上所述,对于相邻两个数据包,第一个数据包对应的多个激光脉冲中的第一激光脉冲与第二个对应的多个激光脉冲中的第一激光脉冲的发射时间之间会有例如663.52μs的间隔。在旋转角速度为ω=3.6°/ms,从相邻数据包中解析到的方位角α之间的间隔约为2.4度。这样,所检测到的方位角α可能不能精确地等于所确定的第一方位角α0。可以在方位角α最接近第一方位角α0的情况下,视为检测到方位角为第一方位角α0。
如此,方便而又精确地实现了摄像装置300和激光雷达200的同步。
可以认为,在激光雷达200和控制装置400的配合下,将时钟源100的pps信号倍频,生成了与激光雷达200的转速对应的拍摄触发信号。
例如,激光雷达200的转速为10圈/s。如上所述,激光雷达200基于来自时钟源100的pps信号,每秒钟校准一次激光雷达200的激光脉冲发射方向旋转方位。
每当激光雷达200的激光脉冲发射方向旋转到第一方位角α0,就导致生成一个拍摄触发信号。即相当于生成了10hz的拍摄触发信号,也可以称为“同步信号”。而拍摄触发信号是基于激光雷达200的激光脉冲发射方向生成的,使得摄像装置300和激光雷达200的动作之间能够精确地同步。
【数据融合模块】
由此,得到了摄像装置300的图像数据和激光雷达200的测量数据,并且两者之间实现了同步。
例如,对于每个激光雷达200,可以将其激光脉冲发射方向旋转一周得到的数据视为一帧数据,例如可以称为“点云帧”flidar。
例如,可以将激光雷达200的激光脉冲发射方向转到某个方位角,例如方位角0°时的时间记为整个帧的时间戳。例如,一个点云帧可以包括从激光脉冲发射方向到该方位角开始到再次转到该方位角的一圈时间内获得的数据(点云数据)。
如上所述,控制装置400在接收到摄像装置300拍摄的图像数据时,会给图像数据打上时间戳,表示图像拍摄时间。
可以将图像拍摄时间在一个点云帧对应的时间段内(例如相邻点云帧时间戳之间的时间段内)的图像数据视为与该点云帧fildar匹配。
如图8所示,可以将utc时间戳、将从激光雷达200获得的一帧(圈)点云帧数据flidar和摄像装置300拍摄的匹配图像数据打包发送给数据融合模块500,以进行3d点云数据到图像的2d映射,从而得到融合了来自激光雷达200的点云数据和来自摄像装置300的图像数据的环境融合数据。
应当理解,数据融合模块500可以是独立于控制装置400的模块或设备,例如计算机、服务器等。或者,数据融合模块500也可以包含于控制装置400中,例如也通过fpga来实现。
由此,本申请基于激光雷达200的旋转来控制摄像装置300触发。也即利用时延相对固定且极低的fpga设备对摄像装置300进行准确触发,方便地实现了摄像装置300的图像数据与激光雷达200的点云数据在时间上高度同步,降低了误差。
在一些实施例中,采用单个fpga芯片作为控制装置400接入所有传感器如激光雷达200和摄像装置300,不需要其它处理器进行辅助。
在一些实施例中,可以实现对以太网包的低延时解包。理论上支持对分别对应于任意多个方位角的任意多个摄像装置的触发。并且,摄像装置的触发时序是根据激光雷达的实时位置(激光脉冲发射方向)确定的,而不是靠延时、相位锁定(phaselock)等方式“估计”出来,触发时刻更精确。
另外,在一些实施例中,克服了激光雷达旋转的不规律性,即使旋转速度变化很大,由于是基于激光雷达的实时位置(激光脉冲发射方向)触发摄像装置,所以也可以尽可能降低不确定性。
下面在导航或自动驾驶的应用场景下,以视场中心线指向车辆前方的摄像装置与车顶的激光雷达为例,进行说明。
例如,车辆由北向南行驶遇红灯停于十字路口,另一辆汽车自动向西行驶。摄像装置拍摄到一帧帧图像,每一张图像中,另一辆汽车的汽车图像位置不同。当着一帧帧图像连续播放时,呈现汽车行驶的动画。
激光雷达每转动一圈生成一帧点云帧数据。
由于如上所述,基于激光雷达的转动来触发摄像装置的拍摄操作,两者被同步,相应地,能够将激光雷达测量得到的点云数据映射到摄像装置拍摄的图像上。在每一帧图像中,每一帧的点云帧数据中对应于另一辆汽车的点云数据都能够准确地映射到图像上对应的位置处。
另外,控制装置400还可以根据激光雷达200的测量数据来确定是否开启摄像装置300,或者根据摄像装置300拍摄的图像来确定是否开启据激光雷达200。
图9示意性地示出了根据本申请另一个实施例的环境感测系统。
如图9所示,控制装置400还可以包括第一控制模块440和/或第二控制模块442。
第一控制模块440用于在单独开启了激光雷达200的情况下,确定是否需要进一步开启摄像装置300。
第二控制模块442用于在单独开启了摄像装置300的情况下,确定是否需要进一步开启激光雷达200。
控制装置400,可以通过第一接口402接收来自激光雷达的测量数据,并且例如可以通过第一控制模块440,根据激光雷达200的测量数据确定是否开启摄像装置300。
例如,在根据激光雷达200的测量数据确定在预定方位角范围内并且/或者在预定距离范围内,存在检测对象时,控制装置400可以通过第二接口404向摄像装置300发送第一开启信号。
检测对象,也可以称为“感测对象”或“检测对象”,例如可以是车辆、行人、道路设施等。
控制装置400可以将激光雷达的测量数据发送给外部设备(图中未示出),并从外部设备接收是否在预定方位角范围内并且/或者在预定距离范围内存在检测对象的分析结果。
这样,可以仅在基于激光雷达200的测量数据判定有必要时,才开启摄像装置300。相应地,可以在关联的显示屏上开始显示摄像装置300拍摄的图像。并且可以相应地进行后续的数据融合操作。
而在基于激光雷达300的测量数据判定没有必要开启摄像装置300时,可以不必开启摄像装置300。相应地,关联显示屏上也可以不必显示图像。同样地,后续的数据融合操作也不必进行。
进一步地,控制装置400,例如可以通过第一控制模块440,根据激光雷达200的测量数据,确定摄像装置300的成像参数,并基于成像参数向摄像装置发送控制指令。
成像参数例如可以包括焦距、对焦点位置、景深、拍摄范围等中的至少一项。
例如,可以根据激光雷达200的测量数据,确定检测对象例如车辆、行人等相对于车辆(激光雷达200)的距离、方位等,从而可以确定摄像装置300的优选成像参数,以便获得针对检测对象更好的图像。
另一方面,控制装置400,可以通过第二接口404接收来自摄像装置30的图像数据,并且例如可以通过第二控制模块442,根据对摄像装置300所拍摄的图像的分析结果,确定是否开启激光雷达200,并且/或者确定激光雷达200的扫射范围。
例如,在根据对摄像装置300所拍摄的图像的分析结果确定,在预定方位角范围内,并且/或者在预定距离范围内,存在检测对象时,控制装置可以通过接口402向激光雷达发送第二开启信号。
这样,可以仅在基于对摄像装置300所拍摄的图像的分析结果判定有必要时,才开启激光雷达200。相应地,可以在关联的显示屏上开始显示摄像装置300拍摄的图像。并且可以相应地进行后续的数据融合操作。
而在基于对摄像装置300所拍摄的图像的分析结果判定没有必要开启激光雷达200时,可以不必开启激光雷达200。相应地,后续的数据融合操作也不必进行。
第一控制模块440和第二控制模块442可以对激光雷达200的测量数据或摄像装置300所拍摄的图像自行进行分析以进行判断,或者也可以接收外部设备对激光雷达200的测量数据或摄像装置300所拍摄的图像的分析结果以进行判断,或者也可以直接从外部设备接收判断结果。
这样,可以通过激光雷达200或摄像装置300中一个的感测结果来决定是否开启另一个,能够提高设备利用效率。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。