掌桥专利:专业的专利平台
掌桥专利
首页

定位方法和定位装置

文献发布时间:2023-06-19 13:26:15


定位方法和定位装置

技术领域

本申请涉及定位技术领域,具体可以应用于人工驾驶、智能驾驶、自动驾驶或者无人驾驶等,并且更具体地,涉及一种定位方法和定位装置。

背景技术

自动驾驶技术依靠计算机视觉、雷达、监控装置和全球导航卫星系统等协同合作,让机动车辆可以在不需要人类主动操作下,实现自动驾驶。车辆自身的精确定位是实现安全稳定驾驶的前提。高精度定位可以帮助决策系统实时规划行驶路径,选择合适的车道,处理各种交通状况,有效提高行驶质量,增强行车的安全性和智能性。如果车辆感知的自车位置与真实位置偏差较大的话,车辆按照基于定位所规划的路径行驶时,可能会与障碍物发生碰撞,从而带来较为严重的安全问题。

目前多采用组合定位技术(或称多传感器融合技术)对车辆进行定位,即组合使用卫星定位、惯性定位、无线电定位、视觉定位等技术中的至少两种,得到车辆的绝对定位和/或相对定位。

然而不同传感器的特性差异显著,例如用于卫星定位的卫星导航接收机连续性差,用于惯性定位的惯性测量单元误差随时间累积,用于无线电定位的雷达与用于视觉定位的视觉传感器实时性差等。特别是在城市复杂环境下,传感器易受实际工况下的环境(例如地下车库卫星导航信息弱、建筑物遮挡、光线变化、雨雾天气等)的影响,导致定位出现较大误差或定位信息缺失,从而导致组合定位精度不高甚至定位失效。

发明内容

本申请提供一种定位方法和定位装置,能够实现车辆的精确、稳定、可靠定位,提高行车安全性。

第一方面,提供了一种定位方法,包括:获取第一定位信息、第二定位信息和第三定位信息,其中,所述第一定位信息是基于惯性导航数据得到的,所述第二定位信息是基于卫星定位数据得到的,所述第三定位信息是基于视觉定位数据得到的;当车辆在第一环境中行驶时,对所述第一定位信息和所述第二定位信息进行第一融合处理,获取第一定位结果,其中所述第一环境的卫星信号质量满足预设质量要求;或者,当车辆在第二环境中行驶时,对所述第一定位信息和所述第三定位信息进行第二融合处理,获取第二定位结果,其中所述第二环境的卫星信号质量不满足所述预设质量要求。

本申请实施例中,当车辆在不同的环境中行驶时,可以采用不同的组合定位方法。在卫星信号良好的环境下,可以采用包括卫星定位和惯性定位的组合定位方式;在卫星信号较差的环境(例如隧道、城市峡谷、高架桥下等卫星信号遮挡严重、多路径区域场景)下,可以采用惯性定位和视觉定位的组合定位方式。这样在卫星信号较差的情况下,依然能够稳定、可靠、准确的对车辆进行定位,提高车辆行驶的安全性。

结合第一方面,在一种可能的实现方式中,所述获取第一定位信息包括:根据第一零偏对所述惯性导航数据进行补偿,得到补偿后的惯性传感器数据,其中所述惯性导航数据为惯性传感器输出的原始数据;根据所述补偿后的惯性传感器数据获取所述第一定位信息。

本申请实施例中,在获取第一定位信息之前,可以先对惯性传感器输出的原始数据进行实时、动态补偿,以消除部分因素引起的零偏。这样可以降低零偏对定位的影响,提高获取第一定位信息的数据的精度,相应提高基于惯性导航数据进行定位的定位精度。

结合第一方面,在一种可能的实现方式中,所述第一零偏是根据所述惯性传感器输出所述惯性导航数据时的温度和计算系数得到的;其中,所述计算系数是通过对所述惯性传感器在第一时间段内输出的角速度和温度进行最小二乘法拟合得到的,其中所述车辆在所述第一时间段内处于非运行状态;或者,所述计算系数为出厂默认值。

结合第一方面,在一种可能的实现方式中,所述第一零偏通过以下公式得到:

其中所述T

第一零偏可以是由温度变化产生的零偏。

结合第一方面,在一种可能的实现方式中,所述第一零偏为所述惯性传感器在第一时间段内输出的角速度的平均值,其中所述车辆在所述第一时间段内处于非运行状态。

理论上,车辆处于非运行状态(如静止状态)时,惯性传感器输出应为0。但由于惯性传感器存在零偏,在车辆处于非运行状态时,惯性传感器会产生角速度和/或加速度的输出。因此可以采集车辆在第一时间段内输出的原始数据,求其平均值作为第一零偏。

结合第一方面,在一种可能的实现方式中,所述惯性传感器包括陀螺仪和加速度计,其中所述车辆在所述第一时间段内处于非运行状态时,满足如下条件:所述陀螺仪在所述第一时间段内输出的角速度的均方差小于第一阈值;所述加速度计在所述第一时间段内输出的加速度的均方差小于第二阈值;以及所述车辆在所述第一时间段内的速度小于第三阈值。

理论上,车辆处于非运行状态(如静止状态)时,车速应为0,惯性传感器输出应为0。但车辆可能受到外界天气(例如风、雨)等因素的影响,产生轻微晃动,也就是说车辆停止不动的时候,并不是处于绝对静止状态。本申请实施例中,车辆满足如上条件,就可以认为车辆处于静止状态。

结合第一方面,在一种可能的实现方式中,所述第一零偏包括恒定的零偏误差、比例因子误差、温度误差、不重合及非正交误差、非线性误差中的至少一项。

一般引起惯性传感器零偏的因素很多,例如地球自转、惯性传感器自身的工艺误差、温度变化、噪声影响等。第一零偏可能是其中部分因素导致的,当用第一零偏去补偿惯性传感器输出的原始数据时,可以消除部分因素的影响。

结合第一方面,在一种可能的实现方式中,所述获取第一定位信息包括:基于捷联惯导算法,对惯性传感器对应的惯性数据进行数值积分和姿态解算处理,求解所述车辆的姿态、速度和位置,得到所述第一定位信息;或者,基于航位推算法,对惯性传感器对应的惯性数据和所述车辆对应的速度数据进行处理,获得所述车辆的行驶方向和行驶距离,并累加于初始位置,得到所述第一定位信息;其中,所述惯性传感器对应的惯性数据为所述惯性导航数据或所述惯性导航数据经过补偿后的数据。

结合第一方面,在一种可能的实现方式中,所述对所述第一定位信息和所述第二定位信息进行第一融合处理,获取第一定位结果,包括:基于状态转移方程、第一量测方程和第二量测方程,对所述第一定位信息和所述第二定位信息进行扩展卡尔曼滤波EKF处理,获取所述第一定位结果;所述对所述第一定位信息和所述第三定位信息进行第二融合处理,获取第二定位结果,包括:基于状态转移方程、第一量测方程和第三量测方程,对所述第一定位信息和所述第三定位信息进行扩展卡尔曼滤波EKF处理,获取所述第二定位结果;其中,所述第一量测方程的观测数据源于惯性传感器,所述第二量测方程中的观测数据源于全球导航卫星系统,所述第三量测方程中的观测数据源于视觉传感器。

本申请实施例中,可以设置分别与惯性定位、卫星定位和视觉定位对应的量测方程,在进行融合处理的时候,可以根据车辆的行驶环境选择、切换不同的量测方程,得到融合后的定位。

结合第一方面,在一种可能的实现方式中,基于状态转移方程、第一量测方程和第二量测方程,对所述第一定位信息和所述第二定位信息进行扩展卡尔曼滤波EKF处理,获取所述第一定位结果,包括:根据所述状态转移方程进行状态估计,获取预测的定位结果;根据所述第一量测方程和所述第一定位信息获得所述惯性传感器量测的定位结果;根据所述第二量测方程和所述第二定位信息获得所述全球导航卫星系统量测的定位结果;根据所述惯性传感器量测的定位结果和所述全球导航卫星系统量测的定位结果对所述预测的定位结果进行修正,得到所述第一定位结果;

基于状态转移方程、第一量测方程和第三量测方程,对所述第一定位信息和所述第三定位信息进行扩展卡尔曼滤波EKF处理,获取所述第二定位结果,包括:根据所述状态转移方程进行状态估计,获取预测的定位结果;根据所述第一量测方程和所述第一定位信息获得所述惯性传感器量测的定位结果;根据所述第三量测方程和所述第三定位信息获得所述视觉传感器量测的定位结果;根据所述惯性传感器量测的定位结果和所述视觉传感器量测的定位结果对所述预测的定位结果进行修正,得到所述第二定位结果。

在进行融合定位时,利用传感器能够量测出来的定位结果对预测的定位结果进行修正,可以得到车辆更为精确的定位。

结合第一方面,在一种可能的实现方式中,所述方法还包括:经所述EKF处理后,获取至少一个参数的误差估计,所述至少一个参数的误差估计用于对所述至少一个参数的值进行校正;其中,所述至少一个参数包括北向位置、东向位置、横滚角、俯仰角、偏航角、陀螺仪输出的角速度和速度标度因数中的一个或多个。

这里,至少一个参数的误差估计可以包括北向位置误差、东向位置误差、横滚角误差、俯仰角误差、偏航角误差、陀螺仪零偏和速度标度因数误差中的一个或多个。

结合第一方面,在一种可能的实现方式中,所述至少一个参数包括速度标度因数,所述至少一个参数的误差估计包括速度标度因数误差,所述方法还包括:根据所述速度标度因数误差对所述速度标度因数进行校正,得到校正后的速度标度因数;根据所述校正后的速度标度因数,获取所述车辆的速度。

速度标度因数误差用于对速度标度因数进行校正,可以提高车辆速度的测量精度。

结合第一方面,在一种可能的实现方式中,所述第一定位结果或所述第二定位结果包括所述车辆的速度和俯仰角,所述方法还包括:根据所述车辆的速度和行驶时间,确定所述车辆在所述行驶时间内的位移量;根据所述俯仰角和所述位移量,确定所述车辆在所述行驶时间内的高程变化量。

融合处理后可以输出速度和俯仰角,进而通过速度、俯仰角和行驶时间估算坡道角度和车辆的纵向高度,从而识别出车辆在高程上的位置。这样在卫星信号不好的地方,也可以准确识别出车辆在不同高程位置之间是否进行切换以及如何进行切换,可以提高车辆的定位精度,增强车辆行驶的安全性。

结合第一方面,在一种可能的实现方式中,所述预设质量要求包括以下至少一个:卫星处于有效定位状态;卫星的水平精度因子小于或者等于预设的精度阈值;处于有效定位状态的卫星数目大于或者等于预设的第一数目阈值;信号强度大于或者等于预设的第一强度阈值的卫星数目大于或者等于预设的第二数目阈值;所述车辆接收的卫星信号强度大于或者等于预设的第二强度阈值;所述车辆的信噪比大于或等于预设的信噪比阈值。

第二方面,提供了一种定位装置,包括:第一定位模块,用于获取第一定位信息,所述第一定位信息是基于惯性导航数据得到的;第二定位模块,用于获取第二定位信息,所述第二定位信息是基于卫星定位数据得到的;第三定位模块,用于输出第三定位信息,所述第三定位信息是基于视觉定位数据得到的;融合定位模块,用于当车辆在第一环境中行驶时,对所述第一定位信息和所述第二定位信息进行第一融合处理,获取第一定位结果,其中所述第一环境的卫星信号质量满足预设质量要求;或者,所述融合定位模块,用于当车辆在第二环境中行驶时,对所述第一定位信息和所述第三定位信息进行第二融合处理,获取第二定位结果,其中所述第二环境的卫星信号质量不满足所述预设质量要求。

结合第二方面,在一种可能的实现方式中,第一定位模块具体用于:根据第一零偏对所述惯性导航数据进行补偿,得到补偿后的惯性传感器数据,其中所述惯性导航数据为惯性传感器输出的原始数据;根据所述补偿后的惯性传感器数据获取所述第一定位信息。

结合第二方面,在一种可能的实现方式中,所述第一零偏是根据所述惯性传感器输出所述惯性导航数据时的温度和计算系数得到的;其中,所述计算系数是通过对所述惯性传感器在第一时间段内输出的角速度和温度进行最小二乘法拟合得到的,其中所述车辆在所述第一时间段内处于非运行状态;或者,所述计算系数为出厂默认值。

结合第二方面,在一种可能的实现方式中,所述第一零偏通过以下公式得到:

其中所述T

结合第二方面,在一种可能的实现方式中,所述第一零偏为所述惯性传感器在第一时间段内输出的角速度的平均值,其中所述车辆在所述第一时间段内处于非运行状态。

结合第二方面,在一种可能的实现方式中,所述惯性传感器包括陀螺仪和加速度计,其中所述车辆在所述第一时间段内处于非运行状态时,满足如下条件:所述陀螺仪在所述第一时间段内输出的角速度的均方差小于第一阈值;所述加速度计在所述第一时间段内输出的加速度的均方差小于第二阈值;以及所述车辆在所述第一时间段内的速度小于第三阈值。

结合第二方面,在一种可能的实现方式中,所述第一零偏包括恒定的零偏误差、比例因子误差、温度误差、不重合及非正交误差、非线性误差中的至少一项。

结合第二方面,在一种可能的实现方式中,所述第一定位模块具体用于:基于捷联惯导算法,对惯性传感器对应的惯性数据进行数值积分和姿态解算处理,求解所述车辆的姿态、速度和位置,得到所述第一定位信息;或者,基于航位推算法,对惯性传感器对应的惯性数据和所述车辆对应的速度数据进行处理,获得所述车辆的行驶方向和行驶距离,并累加于初始位置,得到所述第一定位信息;其中,所述惯性传感器对应的惯性数据为所述惯性导航数据或所述惯性导航数据经过补偿后的数据。

结合第二方面,在一种可能的实现方式中,所述融合定位模块具体用于:基于状态转移方程、第一量测方程和第二量测方程,对所述第一定位信息和所述第二定位信息进行扩展卡尔曼滤波EKF处理,获取所述第一定位结果;或者,基于状态转移方程、第一量测方程和第三量测方程,对所述第一定位信息和所述第三定位信息进行扩展卡尔曼滤波EKF处理,获取所述第二定位结果;其中,所述第一量测方程的观测数据源于惯性传感器,所述第二量测方程中的观测数据源于全球导航卫星系统,所述第三量测方程中的观测数据源于视觉传感器。

结合第二方面,在一种可能的实现方式中,所述融合定位模块具体用于:根据所述状态转移方程进行状态估计,获取预测的定位结果;根据所述第一量测方程和所述第一定位信息获得所述惯性传感器量测的定位结果;根据所述第二量测方程和所述第二定位信息获得所述全球导航卫星系统量测的定位结果;根据所述惯性传感器量测的定位结果和所述全球导航卫星系统量测的定位结果对所述预测的定位结果进行修正,得到所述第一定位结果;或者,所述融合定位模块具体用于:根据所述状态转移方程进行状态估计,获取预测的定位结果;根据所述第一量测方程和所述第一定位信息获得所述惯性传感器量测的定位结果;根据所述第三量测方程和所述第三定位信息获得所述视觉传感器量测的定位结果;根据所述惯性传感器量测的定位结果和所述视觉传感器量测的定位结果对所述预测的定位结果进行修正,得到所述第二定位结果。

结合第二方面,在一种可能的实现方式中,所述融合定位模块还用于:经所述EKF处理后,获取至少一个参数的误差估计,所述至少一个参数的误差估计用于对所述至少一个参数的值进行校正;其中,所述至少一个参数包括北向位置、东向位置、横滚角、俯仰角、偏航角、陀螺仪输出的角速度和速度标度因数中的一个或多个。

结合第二方面,在一种可能的实现方式中,所述至少一个参数包括速度标度因数,所述至少一个参数的误差估计包括速度标度因数误差,所述融合定位模块还用于:根据所述速度标度因数误差对所述速度标度因数进行校正,得到校正后的速度标度因数;根据所述校正后的速度标度因数,获取所述车辆的速度。

结合第二方面,在一种可能的实现方式中,所述第一定位结果或所述第二定位结果包括所述车辆的速度和俯仰角,所述融合定位模块还用于:根据所述车辆的速度和行驶时间,确定所述车辆在所述行驶时间内的位移量;根据所述俯仰角和所述位移量,确定所述车辆在所述行驶时间内的高程变化量。

结合第二方面,在一种可能的实现方式中,所述预设质量要求包括以下至少一个:卫星处于有效定位状态;卫星的水平精度因子小于或者等于预设的精度阈值;处于有效定位状态的卫星数目大于或者等于预设的第一数目阈值;信号强度大于或者等于预设的第一强度阈值的卫星数目大于或者等于预设的第二数目阈值;所述车辆接收的卫星信号强度大于或者等于预设的第二强度阈值;所述车辆的信噪比大于或等于预设的信噪比阈值。

其中第二方面所述装置的有益效果可以参考第一方面方法的有益效果,在此不再赘述。

第三方面,提供一种定位装置,包括至少一个存储器和至少一个处理器,所述至少一个存储器用于存储程序,所述至少一个处理器用于运行所述程序,以实现第一方面以及第一方面中各种实现方式中的任意一种实现方式中所述的定位方法。

第四方面,提供一种芯片,包括至少一个处理器和接口电路,所述接口电路用于为所述至少一个处理器提供程序指令或者数据,所述至少一个处理器用于执行所述程序指令,以实现第一方面以及第一方面中各种实现方式中的任意一种实现方式中所述的定位方法。

第五方面,本申请提供了一种芯片系统,该芯片系统包括至少一个处理器,用于支持实现上述第一方面以及第一方面中各种实现方式中的任意一种实现方式中所涉及的功能,例如,例如接收或处理上述方法中所涉及的数据和/或信息。

在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存程序指令和数据,存储器位于处理器之内或处理器之外。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。

第六方面,提供一种计算机可读存储介质,所述计算机可读存储介质储有计算机程序,当所述计算机程序被计算机运行时,使得所述计算机实现第一方面以及第一方面中各种实现方式中的任意一种实现方式中所述的定位方法。

第七方面,提供一种计算机程序产品,所述计算机程序产品包括计算机程序,当所述计算机程序产品被计算机执行时,使得所述计算机执行前述第一方面以及第一方面中各种实现方式中的任意一种实现方式中所述的定位方法。

第八方面,提供一种车辆,包括传感器和上述第二方面以及第二方面中各种实现方式中的任意一种实现方式中所述的定位装置,或包括传感器和第三方面所述的定位装置。

进一步,该车辆可以为智能驾驶车辆、自动驾驶车辆、辅助驾驶车辆、无人驾驶车辆等。示例性的,该车辆例如可以是自动导引运输车(automated guided vehicle,AGV)、或无人运输车。

传感器可以包括惯性传感器、全球导航卫星系统和视觉传感器。

第九方面,提供一种服务器,包括处理器和上述第二方面以及第二方面中各种实现方式中的任意一种实现方式中所述的定位装置,或包括处理器和第三方面所述的定位装置。

示例性的,该服务器可以为云服务器。

第十方面,提供一种系统,包括目标车辆和服务器,所述目标车辆和所述服务器用于执行如第一方面所述的定位方法。具体地,所述目标车辆用于获取第一定位信息、第二定位信息和第三定位信息,其中所述第一定位信息是基于惯性导航数据得到的,所述第二定位信息是基于卫星定位数据得到的,所述第三定位信息是基于视觉定位数据得到的。所述服务器用于当所述目标车辆在第一环境中行驶时,对所述第一定位信息和所述第二定位信息进行第一融合处理,获取第一定位结果,其中所述第一环境的卫星信号质量满足预设质量要求。或者,所述服务器用于当所述目标车辆在第二环境中行驶时,对所述第一定位信息和所述第三定位信息进行第二融合处理,获取第二定位结果,其中所述第二环境的卫星信号质量不满足所述预设质量要求。

附图说明

图1是本申请实施例适用的一种车辆的功能框图。

图2是本申请实施例适用的一种系统的示意图。

图3是本申请实施例适用的一种自动驾驶系统的示意图。

图4是本申请实施例提供的一种定位方法的示意性流程图。

图5是本申请实施例提供的一种应用场景示意图。

图6是本申请实施例提供的一种定位方法的示意性流程框图。

图7是本申请实施例提供的航位推算的示意图。

图8是本申请实施例提供的一种校正惯性传感器原始数据的方法的示意性流程图。

图9是车辆处于非运行状态时陀螺仪输出的原始数据和经第一零偏补偿后的数据的分布示意图。

图10是本申请实施例提供的一种定位装置的示意性结构图。

图11是本申请实施例提供的另一种定位装置的示意性结构图。

具体实施方式

本申请实施例所提供的定位方法和/或定位装置可以应用于各类驾驶装置,例如车辆,也可以应用于各类云侧计算装置,例如服务器。这些方法和/或装置既可以应用于人工驾驶,又可以应用于辅助驾驶,还可以应用于自动驾驶或无人驾驶。下面将结合附图,对本申请中的技术方案进行描述。

图1是本申请实施例适用的一种车辆的功能框图。其中,车辆100可以是人工驾驶车辆,或者可以将车辆100配置可以为完全或部分地自动驾驶模式。

在一个示例中,车辆100可以在处于自动驾驶模式中的同时控制自身,并且可通过人为操作来确定车辆及其周边环境的当前状态,确定周边环境中的至少一个其他车辆的可能行为,并确定其他车辆执行可能行为的可能性相对应的置信水平,基于所确定的信息来控制车辆100。在车辆100处于自动驾驶模式中时,可以将车辆100置为在没有和人交互的情况下操作。

车辆100可以包括各种子系统,例如,行进系统110、传感系统120、控制系统130、一个或多个外围设备140以及计算机系统150、电源160和用户接口170。

可选地,车辆100可以包括更多或更少的子系统,并且每个子系统可包括多个元件。另外,车辆100的每个子系统和元件可以通过有线或者无线互连。

示例性地,行进系统110可以包括用于向车辆100提供动力运动的组件。在一个实施例中,行进系统110可以包括引擎111、传动装置112、能量源113和车轮114(或轮胎)。其中,引擎111可以是内燃引擎、电动机、空气压缩引擎或其他类型的引擎组合,例如,汽油发动机和电动机组成的混动引擎,内燃引擎和空气压缩引擎组成的混动引擎。引擎111可以将能量源113转换成机械能量。

示例性地,能量源113可以包括汽油、柴油、其他基于石油的燃料、丙烷、其他基于压缩气体的燃料、乙醇、太阳能电池板、电池和其他电力来源。能量源113也可以为车辆100的其他系统提供能量。

示例性地,传动装置112可以包括变速箱、差速器和驱动轴;其中,传动装置112可以将来自引擎111的机械动力传送到车轮114。

在一个实施例中,传动装置112还可以包括其他器件,比如离合器。其中,驱动轴可以包括可耦合到一个或多个车轮114的一个或多个轴。

示例性地,传感系统120可以包括感测关于车辆100周边的环境的信息的若干个传感器。

例如,传感系统120可以包括定位系统121、惯性测量单元(inertial measurementunit,IMU)122、雷达123、激光测距仪124、相机125以及车速传感器126。传感系统120还可以包括被监视车辆100的内部系统的传感器(例如,车内空气质量监测器、燃油量表、机油温度表等)。来自这些传感器中的一个或多个的传感器数据可用于检测对象及其相应特性(位置、形状、方向、速度等)。这种检测和识别是自主车辆100的安全操作的关键功能。

其中,定位系统121可以用于估计车辆100的地理位置。定位系统121可以是全球导航卫星系统(global navigation satellite system,GNSS),GNSS具体可以包括全球的卫星导航系统(例如美国的全球定位系统(global positioning system,GPS)、俄罗斯的格洛纳斯卫星导航系统、欧洲的伽利略卫星定位系统(galileo satellite navigationsystem)、中国的北斗卫星导航系统(beidou navigation satellite system,BDS))、区域的卫星导航系统(例如日本的准天顶卫星系统(quasi-zenith satellite system,QZSS)、印度的印度区域导航卫星系统(indian regional navigation satellite system,IRNSS))、增强的卫星导航系统(例如美国的广域增强系统(wide area augmentationsystem,WAAS)、欧洲的欧洲静地导航重叠系统(european geostationary navigationoverlay service,EGNOS)、日本的多功能运输卫星增强系统(multi-functionalsatellite augmentation system,MSAS))等。GNSS能在地球表面或近地空间的任何地点为用户(例如车辆100)提供全天候、高精度的位置(例如三维坐标,或经纬度坐标和大地高程)、速度以及时间信息,因此又称为天基定位、导航和授时(positioning,navigation andtiming,PNT))系统。GNSS提供的位置为用户(例如车辆100)在基于大地的世界坐标系下的绝对位置,例如在1984年世界大地坐标系统(world geodetic system-1984coordinatesystem,WGS-84)下以大地经度、大地纬度、大地高程来描述的位置,或者在通用横轴横墨卡托(universal transverse mercartor,UTM)坐标系统下以三维直角坐标描述的位置。本申请实施例中,使用定位系统123进行定位的技术属于卫星定位技术。

IMU 122可以用于基于惯性加速度来感测车辆100的位置和朝向变化。在一个实施例中,IMU 122可以是加速度计和陀螺仪的组合。具体地,IMU 122可以包括三个单轴的加速度计和三个单轴的陀螺仪,其中加速度计用于检测车辆100在载体坐标系统下独立三轴的加速度信号,陀螺仪用于检测载体(即车辆100)相对于导航坐标系的角速度(或姿态角)信号,也就是说,IMU 122可以测量车辆100在三维空间中的旋转角速率和线性加速度。基于这些信号可以解算出车辆100的姿态、速度和位移等信息。具体地,依靠IMU122,可以根据车辆100在上一时刻的位置和方位,推断出在当前时刻的位置和方位。IMU122用于测量相对于起点车辆100所运动的路线,因此IMU 122提供的是一个相对的定位信息。这里载体坐标系是以载体为中心,用于描述车辆100周边物体与车辆100的关系的坐标系,其原点与载体固连。导航坐标系可以是地固坐标系、地理坐标系(也称当地水平坐标系)等,其中通常使用的地理坐标系有“东北天”坐标系和“北东地”坐标系。载体的姿态角包括横滚角(roll)、俯仰角(pitch)和偏航角(yaw),它们均定义在地理坐标系下。应理解,不同坐标系之间具有确定联系,一个坐标系可以通过一系列的旋转和平移变化,能够变成另一个坐标系,在此不再详述。本申请实施例中,基于IMU 122测量的数据进行定位的技术属于惯性定位技术。

示例性地,雷达123可以利用无线电信息来感测车辆100的周边环境内的物体。在一些实施例中,除了感测物体以外,雷达123还可用于感测物体的速度和/或前进方向。示例性的,雷达123可以发射超声波,并接收障碍物反射的超声波,最终可以获取周围环境的点云数据(point cloud data),其中点云数据中的每个点都具备空间坐标信息,有些点还可以包括颜色信息或反射强度信息。利用重定位算法,例如即时定位与地图构建(simultaneous localization and mapping,SLAM),对点云数据进行处理,例如通过对不同时刻两片点云的匹配与比对,计算雷达123相对运动的距离和姿态的改变,也就可以获得车辆100的相对位置、速度、偏航角信息等,从而实现对车辆100自身的定位。本申请实施例中,利用雷达123进行定位的技术属于无线电定位技术。

示例性地,激光测距仪124可以利用激光来感测车辆100所位于的环境中的物体。在一些实施例中,激光测距仪124可以包括一个或多个激光源、激光扫描器以及一个或多个检测器,以及其他系统组件。

示例性地,相机125可以用于捕捉车辆100的周边环境的多个图像。例如,相机125可以是静态相机或视频相机。

示例性地,车速传感器126可以用于测量车辆100的速度。例如,可以对车辆进行实时测速。测得的车速可以传送给控制系统130以实现对车辆的控制。

如图1所示,控制系统130可以控制车辆100及其组件的操作。控制系统130可以包括各种元件,比如可以包括转向系统131、油门132、制动单元133、计算机视觉系统134、路线控制系统135以及障碍规避系统136。

示例性地,转向系统131可以操作来调整车辆100的前进方向。例如,在一个实施例中可以为方向盘系统。油门132可以用于控制引擎111的操作速度并进而控制车辆100的速度。

示例性地,制动单元133可以用于控制车辆100减速;制动单元133可以使用摩擦力来减慢车轮114。在其他实施例中,制动单元133可以将车轮114的动能转换为电流。制动单元133也可以采取其他形式来减慢车轮114的转速从而控制车辆100的速度。

如图1所示,计算机视觉系统134可以操作来处理和分析由相机125捕捉的图像以便识别车辆100周边环境中的物体和/或特征。上述物体和/或特征可以包括交通信息、道路边界和障碍物。计算机视觉系统134可以使用物体识别算法、运动中恢复结构(structurefrom motion,SFM)算法、视频跟踪和其他计算机视觉技术。在一些实施例中,计算机视觉系统134可以用于为环境绘制地图、跟踪物体、估计物体的速度等等。在一些实施例中,计算机视觉系统134可以使用重定位算法,例如SLAM,对相机125捕捉的图像进行处理,识别相机125的位置和估计相机125的位姿,也就可以获得车辆100的相对位置、速度、偏航角信息等,从而实现对车辆100自身的定位。本申请实施例中,利用计算机视觉系统134进行定位的技术属于视觉定位技术。

示例性地,路线控制系统135可以用于确定或规划车辆100的行驶路线。在一些实施例中,路线控制系统135可结合来自传感器、GNSS和一个或多个预定地图的数据以为车辆100确定行驶路线。

如图1所示,障碍规避系统136可以用于识别、评估和避免或者以其他方式越过车辆100的环境中的潜在障碍物。

在一个实例中,控制系统130可以增加或替换地包括除了所示出和描述的那些以外的组件,或者也可以减少一部分上述示出的组件。

如图1所示,车辆100可以通过外围设备140与外部传感器、其他车辆、其他计算机系统或用户之间进行交互。其中,外围设备140可包括无线通信系统141、车载电脑142、麦克风143和/或扬声器144。

在一些实施例中,外围设备140可以提供车辆100与用户接口170交互的手段。例如,车载电脑142可以向车辆100的用户提供信息。用户接口170还可操作车载电脑142来接收用户的输入;车载电脑142可以通过触摸屏进行操作。在其他情况中,外围设备140可以提供用于车辆100与位于车内的其它设备通信的手段。例如,麦克风143可以从车辆100的用户接收音频(例如,语音命令或其他音频输入)。类似地,扬声器144可以向车辆100的用户输出音频。

如图1所述,无线通信系统141可以直接地或者经由通信网络来与一个或多个设备无线通信。例如,无线通信系统141可以使用4G蜂窝通信,例如长期演进(long termevolution,LTE);或者5G蜂窝通信,例如新无线(new radio,NR)系统。无线通信系统141可以利用无线上网(WiFi)与无线局域网(wireless local area network,WLAN)通信。

在一些实施例中,无线通信系统141可以利用红外链路、蓝牙或者紫蜂协议(ZigBee)与设备直接通信;或者可以利用其他无线协议,例如各种车辆通信系统进行通信。示例性的,无线通信系统141可以包括一个或多个专用短程通信(dedicated short rangecommunications,DSRC)设备,这些设备可包括车辆和/或路边台站之间的公共和/或私有数据通信。

如图1所示,电源160可以向车辆100的各种组件提供电力。在一个实施例中,电源160可以为可再充电锂离子电池或铅酸电池。这种电池的一个或多个电池组可被配置为电源为车辆100的各种组件提供电力。在一些实施例中,电源160和能量源113可一起实现,例如一些全电动车中那样。

示例性地,车辆100的部分或所有功能可以受计算机系统150控制,其中,计算机系统150可以包括至少一个处理器151,处理器151执行存储在例如存储器152中的非暂态计算机可读介质中的指令153。计算机系统150还可以是采用分布式方式控制车辆100的个体组件或子系统的多个计算设备。

例如,处理器151可以是任何常规的处理器,诸如中央处理器(centralprocessing unit,CPU)。

可选地,该处理器151可以是诸如专用集成电路(application specificintegrated circuit,ASIC)或其它基于硬件的处理器的专用设备。尽管图1功能性地图示了处理器、存储器、和在相同块中的计算机的其它元件,但是本领域的普通技术人员应该理解该处理器、计算机、或存储器实际上可以包括可存储于或可不存储于相同的物理外壳内的多个处理器、计算机或存储器。例如,存储器可以是硬盘驱动器或位于不同于计算机的外壳内的其它存储介质。因此,对处理器或计算机的引用将被理解为包括对可以并行操作或可以不并行操作的处理器或计算机或存储器的集合的引用。不同于使用单一的处理器来执行此处所描述的步骤,诸如转向组件和减速组件的一些组件每个都可以具有其自己的处理器,所述处理器只执行与特定于组件的功能相关的计算。

在此处所描述的各个方面中,处理器151可以位于远离该车辆100的其他装置上并且与该车辆100进行无线通信。在其它方面中,此处所描述的过程中的一些在布置于车辆内的处理器上执行而其它则由远程处理器执行,包括采取执行单一操作的必要步骤。

在一些实施例中,存储器152可包含指令153(例如,程序逻辑),指令153可以被处理器151来执行车辆100的各种功能,包括以上所描述的功能。存储器152也可包括额外的指令,比如包括向行进系统110、传感系统120、控制系统130和外围设备140中的一个或多个发送数据、从其接收数据、与其交互和/或对其进行控制的指令。

示例性地,除了指令153以外,存储器152还可存储数据,例如,道路地图、路线信息,车辆的位置、方向、速度以及其它的车辆数据,还有其他信息等。这种信息可在车辆100在自主、半自主和/或手动模式下处于操作期间而被车辆100和计算机系统150使用。

如图1所示,用户接口170可以用于向车辆100的用户提供信息或从其接收信息。可选地,用户接口170可以包括在外围设备140的集合内的一个或多个输入/输出设备,例如,无线通信系统141、车载电脑142、麦克风143和扬声器144。

在本申请的实施例中,计算机系统150可以基于从各种子系统(例如,行进系统110、传感系统120和控制系统130)以及从用户接口170接收的输入来控制车辆100的功能。例如,计算机系统150可以利用来自控制系统130的输入以便控制制动单元133来避免由传感系统120和障碍规避系统136检测到的障碍物。在一些实施例中,计算机系统150可操作来对车辆100及其子系统的许多方面提供控制。

可选地,上述这些组件中的一个或多个可与车辆100分开安装或关联。例如,存储器152可以部分或完全地与车辆100分开存在。上述组件可以按有线和/或无线方式来通信地耦合在一起。

可选地,上述组件只是一个示例,实际应用中,上述各个模块中的组件有可能根据实际需要增添或者删除,图1不应理解为对本申请实施例的限制。

可选地,车辆100可以是在道路行进的自动驾驶汽车,可以识别其周围环境内的物体以确定对当前速度的调整。物体可以是其它车辆、行人、交通控制设备、或者其它类型的物体等。在一些示例中,可以独立地考虑每个识别的物体,并且基于物体的各自的特性,诸如它的当前速度、加速度、与车辆的间距等,以用来确定自动驾驶汽车所要调整的速度。

可选地,车辆100或者与车辆100相关联的计算设备(如图1的计算机系统150、计算机视觉系统134、存储器152)可以基于所识别的物体的特性和周围环境的状态(例如,交通、雨、道路上的冰等等)来预测所述识别的物体的行为。

可选地,每一个所识别的物体都依赖于彼此的行为,因此,还可以将所识别的所有物体全部一起考虑来预测单个识别的物体的行为。车辆100能够基于预测的所述识别的物体的行为来调整它的速度。换句话说,自动驾驶汽车能够基于所预测的物体的行为来确定车辆将需要调整到(例如,加速、减速、或者停止)稳定状态。在这个过程中,也可以考虑其它因素来确定车辆100的速度,诸如,车辆100在行驶的道路中的横向位置、道路的曲率、静态和动态物体的接近度等等。

除了提供调整自动驾驶汽车的速度的指令之外,计算设备还可以提供修改车辆100的转向角的指令,以使得自动驾驶汽车遵循给定的轨迹和/或维持与自动驾驶汽车附近的物体(例如,道路上的相邻车道中的车辆)的安全横向和纵向距离。

在一个示例中,图1所示的计算机系统150还可以从其它计算机系统接收信息或转移信息到其它计算机系统。或者,从车辆100的传感系统120收集的传感器数据可以被转移到另一个计算机对此数据进行处理。

示例性的,图2示出了本申请实施例适用的一种系统的示意图,该系统包括车辆100和服务器200。如图2所示,车辆100可以从服务器200接收信息,车辆100也可以将获取的信息转移至服务器200。来自车辆100(具体可以为计算机系统150)的信息(例如各种数据)可以经由网络被传送到服务器200,用于进一步的处理或用于存储。网络以及中间节点可以包括各种配置和协议,包括因特网、万维网、内联网、虚拟专用网络、广域网、局域网、使用一个或多个专有通信协议的专用网络、以太网、无线保真(wireless fidelity,WiFi)和超文本传输协议(hypertext transfer protocol,HTTP)以及前述的各种组合。这种通信可以由能够传送数据到其它计算机和从其它计算机传送数据的任何设备,诸如调制解调器和无线接口。

在一个示例中,服务器200可以为包括多个计算机的服务器,例如负载均衡服务器群。为了从计算机系统150接收、处理并传送数据,服务器200可以与网络的不同节点交换信息。服务器200可以具有与计算机系统150类似的配置,如图1所示,服务器200包括处理器210和存储器220,其中存储器220用于存储指令221和/或数据222。

示例性地,服务器200存储的数据222可以包括车辆自身状态的相关信息,例如车辆的位置、速度、灯光、姿态、声音等信息;可以包括车辆周围道路情况的相关信息,例如地图数据,道路类型、交通标志、交通标线等信息,车辆周围的行人、其他车辆和障碍物信息等;可以包括动态环境的相关信息,例如天气、光照强度、能见度信息等。例如,服务器200可以接收、检测、存储、更新、以及传送与车辆自身状态的相关信息、与车辆道路情况相关的信息、动态环境的相关信息等。

示例性,服务器200存储的指令221被执行时,服务器200可以实现本申请实施例提供的定位方法,以对车辆100进行定位。

应理解,服务器200只是与车辆100进行信息交互的设备的一种示例,图1中所示的服务器200的结构框图也仅仅是一种示例性功能框图。车辆100还可以与其他类型的云设备例如云侧计算装置、云侧存储装置、云服务中心等进行交互,本申请实施例对此不作特别的限定。

以车辆100与云服务中心交互为例,云服务中心可以经诸如无线通信网络的网络,从其操作环境内的车辆100接收信息(诸如车辆100传感器收集到数据或者其它信息)。云服务中心根据接收到的数据,运行其存储的控制汽车自动驾驶相关的程序对车辆100(例如为自动驾驶车辆)进行控制。控制汽车自动驾驶相关的程序可以为,管理自动驾驶的汽车和路上障碍物交互的程序,控制自动驾驶汽车路线或者速度的程序,控制自动驾驶汽车和路上其他自动驾驶汽车交互的程序等。

在一些示例中,云服务中心向车辆100发送对于关于环境内可能的驾驶情况所建议的解决方案(如,告知前方障碍物,并告知如何绕开它)。例如,云服务中心可以辅助车辆100确定当面对环境内的特定障碍时如何行进。云服务中心向车辆100发送指示该车辆应当在给定场景中如何行进的响应。例如,云服务中心基于收集到的传感器数据,可以确认道路前方具有临时停车标志的存在,并基于该车道上的“车道封闭”标志和施工车辆的传感器数据,确定该车道由于施工而被封闭。相应地,云服务中心发送用于车辆100通过障碍的建议操作模式(例如:指示车辆100变道另一条道路上)。云服务中心观察其操作环境内的视频流并且已确认车辆100能安全并成功地穿过障碍时,对车辆100所使用操作步骤可以被添加到驾驶信息地图中。相应地,这一信息可以发送到该区域内可能遇到相同障碍的其它车辆,以便辅助其它车辆不仅识别出封闭的车道还知道如何通过。

在一些实施例中,云服务中心可以根据接收到的数据,运行其存储的定位的指令或程序,从而对车辆100进行定位,例如输出车辆100的位置、速度、姿态等信息。

应理解,上述车辆100可以为轿车、卡车、摩托车、公共汽车、船、飞机、直升飞机、割草机、娱乐车、游乐场车辆、施工设备、电车、高尔夫球车、火车和手推车等,本申请实施例不做特别的限定。

在一种可能的实现方式中,上述图1所示的车辆100可以是自动驾驶车辆,下面结合图3对自动驾驶系统的进行详细描述。

图3是本申请实施例适用的一种自动驾驶系统的示意图。如图3所示的自动驾驶系统(autonomous driving system,ADS)300包括计算机系统301,其中,计算机系统301包括处理器303,处理器303和系统总线305耦合。处理器303可以是一个或者多个处理器,其中,每个处理器都可以包括一个或多个处理器核。显示适配器(video adapter)307可以驱动显示器309,显示器309和系统总线305耦合。系统总线305可以通过总线桥311和输入输出(I/O)总线313耦合,I/O接口315和I/O总线313耦合。I/O接口315和多种I/O设备进行通信,比如,输入设备317(如:键盘,鼠标,触摸屏等),媒体盘(media tray)321,(例如,只读光盘(compact disc read-only memory,CD-ROM),多媒体接口等),收发器323,传感器353,摄像头355等。收发器323可以发送和/或接受无线电通信信息。传感器353可以与计算机系统301关联,传感器353可以用于探测计算机系统301周围的环境。可选地,如果计算机系统301位于自动驾驶的汽车上,传感器353可以包括摄像头、红外线感应器、GPS、激光雷达、毫米波雷达、超声波传感器、化学检测器、生物电传感器、麦克风等的一个或多个。摄像头355可以捕捉静态和动态数字视频图像。其中,和I/O接口315相连接的接口可以是通用串行总线(universal serial bus,USB)端口325。

其中,处理器303可以是任何传统处理器,比如,精简指令集计算(reducedinstruction set computer,RISC)处理器、复杂指令集计算(complex instruction setcomputer,CISC)处理器或上述的组合。

可选地,处理器303可以是诸如专用集成电路(application specificintegrated circuit,ASIC)的专用装置;处理器303可以是神经网络处理器,或者是神经网络处理器和上述传统处理器的组合。

可选地,在一些实施例中,计算机系统301可位于远离自动驾驶车辆的地方,并且可与自动驾驶车辆无线通信。在其它方面,本申请所述的一些过程在设置在自动驾驶车辆内的处理器上执行,其它由远程处理器(例如图1所示的服务器200中的处理器210)执行,包括采取执行单个操作所需的动作。

计算机系统301可以通过网络接口329和软件部署服务器349通信。网络接口329可以是硬件网络接口,例如网卡。网络327可以是外部网络,例如因特网,也可以是内部网络,例如以太网或者虚拟私人网络(virtual private network,VPN)。可选地,网络327还可以是无线网络,比如WiFi网络,蜂窝网络等。

如图3所示,硬盘驱动接口331和系统总线305耦合,硬件驱动器接口331可以与硬盘驱动器333相连接,系统内存335和系统总线305耦合。运行在系统内存335的数据可以包括操作系统337和应用程序343。其中,操作系统337可以包括解析器(shell)339和内核(kernel)341。解析器339是介于使用者和操作系统内核(kernel)341之间的一个接口。解析器339可以是操作系统337最外面的一层;解析器339可以管理使用者与操作系统337之间的交互,比如,等待使用者的输入,向操作系统337解释使用者的输入,处理各种各样的操作系统337的输出结果等。内核341可以由操作系统337中用于管理存储器、文件、外设和系统资源的那些部分组成,内核341可以直接与硬件交互。操作系统内核341通常运行进程,并提供进程间的通信,提供CPU时间片管理、中断、内存管理、IO管理等等。应用程序343包括控制汽车自动驾驶相关的程序,比如,管理自动驾驶的汽车和路上障碍物交互的程序,控制自动驾驶汽车路线或者速度的程序,控制自动驾驶汽车和路上其他自动驾驶汽车交互的程序。应用程序343也存在于软件部署服务器349的系统上。在一个实施例中,在需要执行自动驾驶相关程序347时,计算机系统301可以从软件部署服务器349下载应用程序。

例如,应用程序343还可以是自动驾驶汽车和路上车道线交互的程序,也就是说可以实时跟踪车道线的程序。

例如,应用程序343还可以是控制自动驾驶车辆进行自动泊车的程序。

在执行应用程序343过程中,计算机系统301需要获取周围的环境信息。示例性地,传感器353可以用于探测计算机系统301周围的环境。

举例来说,传感器353可以探测路上的车道,比如可以探测到车道线,并能够在车辆移动(如正在行驶)过程中实时跟踪到车辆前方一定范围内的车道线变化。又例如,传感器353可以探测动物(例如行人)、汽车、障碍物和人行横道等,进一步传感器353还可以探测上述动物、汽车、障碍物和人行横道等物体周围的环境,比如动物周围的环境、动物周围出现的其他动物、天气条件、周围环境的光亮度等。

示例性地,在车道线跟踪的场景中,传感器353可以用于探测车辆前方的车道线,从而使得车辆能够感知在行进过程中车道的变化,以据此对车辆的行驶进行实时规划和调整。

示例性地,在自动泊车的场景中,传感器353可以用于探测车辆周围的库位和周边障碍物的尺寸或者位置,从而使得车辆能够感知库位和周边障碍物的距离,在泊车时进行碰撞检测,防止车辆与障碍物发生碰撞。

在一些实施例中,传感器353还可以感知车辆自身的相关信息。例如传感器353可以感知车辆自身的位置、姿态、速度、转角等信息,从而使得车辆能够准确判断自身与周围其他物体例如行人、障碍物、其他车辆之间的相位对位置或距离,即对车辆自身进行定位并对周围环境相对位置进行认知,以据此对车辆的行为进行实时调整和规划。

对于自动驾驶汽车来说,车辆自身的精确定位(例如自动驾驶中需实现厘米级定位)是安全稳定驾驶的前提。高精度定位可以帮助决策系统实时规划行驶路径,选择合适的车道,处理各种交通状况,有效提高行驶质量,增强行车的安全性和智能性。如果车辆感知的自车位置与真实位置偏差较大的话,车辆按照基于定位所规划的路径行驶时,可能会与障碍物发生碰撞,从而带来较为严重的安全问题。

传统的定位技术主要包括卫星定位、惯性定位、无线电定位、视觉定位以及其他有源或无源定位手段,在实际应用中,利用高精度卫星导航接收机、惯性测量单元、雷达、视觉等传感器可以实现绝对定位或相对定位。然而不同传感器的特性差异显著,例如卫星导航接收机连续性差,惯性测量单元误差随时间累积,雷达与视觉传感器实时性差等,依靠单一的传感器很难达到理想的定位效果,特别是在城市复杂环境下,传感器易受实际工况下的环境(例如地下车库卫星导航信息弱、建筑物遮挡、光线变化、雨雾天气等)的影响,导致定位出现很大误差或定位信息缺失。

因此,多传感器融合技术(或称组合定位技术)是实现自动驾驶车辆精确、稳定、可靠定位的有效方法。下面对现有的几种典型的融合定位技术进行简要介绍。

(一)GNSS/IMU融合定位技术

GNSS/IMU融合定位技术是将GNSS的定位结果和IMU的定位结果进行融合计算,得到融合后的定位结果。这种融合定位技术在卫星通视条件良好的情况下,可以达到厘米级定位精度,但在卫星通视条件不成立的情况下,例如由于建筑物的遮挡而引起多路径效应或者地下车库长时间无卫星信号等,则容易引起系统惯性误差的积累,进而导致在地下车库、隧道、高楼区域等城市复杂环境下无法达到厘米级定位精度或无法定位车辆。

这是因为,IMU中的加速度计和陀螺仪存在零偏(也称偏移误差),即使在没有加速或旋转的情况下加速度计和陀螺仪也会有非零的数据输出。而位移数据是通过对加速度计和陀螺仪的输出数据进行积分得到的,零偏在积分过程中会被放大,随着时间的推进,积分的累积误差会不断积累。GNSS/IMU融合定位技术中,在GNSS信号良好的情况下,可以利用融合计算得到的零偏估计值持续地对加速度计和陀螺仪的零偏进行校正。因此即使在短暂丢失GNSS信号时,GNSS/IMU还可以持续进行准确位置的输出。但在长时间无GNSS信号的情况下(例如在车库中),加速度计和陀螺仪的零偏(也可以统称为IMU的零偏)得不到实时校正,零偏漂移会持续恶化定位结果,使得定位持续发散,最终导致定位失效。

(二)视觉系统/IMU融合定位技术

视觉系统/IMU融合定位技术是将视觉系统输出的重定位结果和IMU的定位结果进行融合计算,得到融合后的定位结果,并利用融合计算得到的零偏估计值持续地对加速度计和陀螺仪的零偏进行校正。

这种融合定位技术中,视觉系统的重定位比较脆弱,容易受到外部光环境的干扰和污染,导致重定位失效。如果视觉系统无法输出定位结果或者输出的定位不准,则无法对IMU的零偏进行实时校正,随着时间的推进,IMU的零偏漂移会持续恶化定位结果,使得定位持续发散,最终导致定位失效。

(三)GNSS/雷达融合定位技术

GNSS/雷达融合定位技术是将GNSS的定位结果和雷达输出的重定位结果进行融合计算,得到融合后的定位结果。

这种融合定位技术一般适用于低速车辆(例如特种低速园区功能车辆)定位,对于一些动态性大的场景则无法胜任。这是因为雷达的输出频率低,且产生的是点云数据,在运动过程中,点云的位置会与真实的位置存在偏差,并且容易丢失关键定位信息,导致定位精度不高、可靠性低。另外,雷达的采购成本和维护成本很高,难以实现广泛应用。

上面介绍的几种多传感器融合技术在车辆定位时存在着定位精度不高甚至定位失效的问题,因此本申请实施例提供一种定位方法,能够实现车辆的精确、稳定、可靠定位,提高行车安全性。下面结合图4至图9进行详细介绍。

为方便理解,下面先对本申请中涉及的技术术语进行解释和说明。

惯性定位技术,是指测量载体(例如车辆)相对于惯性坐标系的加速度和角速度,并通过积分计算,获取载体的定位信息,例如位置、速度、姿态等。惯性定位技术一般通过惯性传感器(包括陀螺仪和加速度计)测量载体的运动参数。惯性传感器可以固联在载体上,陀螺仪用于测量载体相对于惯性坐标系的旋转角速度,加速度计用于测量载体相对于惯性坐标系的加速度。依据初始时刻载体的位置、速度和姿态,计算出载体坐标系相对于惯性坐标系的姿态角、加速度,对加速度进行一次积分可以得到速度,对加速度进行二次积分可以得到位置。惯性定位能够依靠自身测量的信息进行连续定位,无需接收外部信息,不受外界干扰。本申请实施例中,将基于惯性传感器测量的数据(即惯性导航数据)进行定位的方式,统称为惯性定位技术。

惯性坐标系,是指牛顿运动定律成立的参考系,也可称为惯性参考系或惯性系。本申请实施例可采用地心惯性系,即以地球中心为坐标原点,一根坐标轴沿地球的极轴(自转轴),另外两根坐标轴在地球的赤道平面内,三根轴正交并分别指向宇宙空间的三个恒星。惯性器件(陀螺仪和加速度计)测量得到的物理量是相对于惯性系的,例如,陀螺仪输出的是载体坐标系相对于惯性坐标系的角速度。

载体坐标系,与载体固连,坐标原点是载体质心。第一根轴(也称纵轴)与载体的纵向对称轴重合,指向前方为正;第二根轴(也称竖轴或立轴)在载体的纵向对称平面内与纵轴垂直,指向上方为正;第三根轴(也称横轴)垂直于载体的纵向对称平面,指向按右手系的规定确定。

卫星定位技术,是指使用卫星进行准确定位,可以获得物体的位置、速度、姿态。

视觉定位技术,是指使用视觉传感器例如摄像头,获取周围环境信息,经过处理后获得定位信息,例如位置、速度、姿态等。视觉定位技术也可称为环境特征匹配定位技术。

卡尔曼滤波(kalman filtering,KF),是一种利用线性系统状态方程(或称状态转移方程),通过系统输入输出观测数据,对系统状态进行最优估计的算法。由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。

扩展卡尔曼滤波(extended kalman filter,EKF)是标准卡尔曼滤波在非线性情形下的一种扩展形式,基本思想是利用泰勒级数展开将非线性系统线性化,然后采用卡尔曼滤波获得状态估计。

需要说明的是,本申请实施例所涉及的“位置信息”(例如第一位置信息,第二位置信息、第三位置信息)或“位置”(例如第一融合位置、第二融合位置),包括但不限于车辆在世界坐标系下的三维位置坐标、高程信息或经纬度信息,以及车辆在道路坐标系下的三维位置坐标、高程信息或经纬度信息等。

本申请实施例所涉及的“姿态信息”(例如第一姿态信息,第二姿态信息、第三姿态信息)或“姿态”(例如第一融合姿态、第二融合姿态),包括但不限于车辆的偏航角、俯仰角、横滚角或四元数等信息。

本申请实施例所涉及的“速度信息”(例如第一速度信息,第二速度信息、第三速度信息)或“速度”(例如第一融合速度、第二融合速度),包括但不限于车辆的线速度、线加速度、角速度、角加速度等信息。上述各种速度可以是在世界坐标系下的取值,也可以是在车辆的自车坐标系下的取值,本申请实施例对此不作限定。

图4示出了本申请实施例提供的一种定位方法的示意性流程图。该方法可以由驾驶装置执行,例如由图1所示的车辆100或位于车辆100上的装置执行;也可以由云侧计算装置执行,例如由图2所示的服务器200或位于服务器200上的装置执行;也可以由驾驶装置和云侧计算装置组合执行,例如由图1所示的包括车辆100和图2所示的服务器200的系统执行,本申请实施例对此不作限定。图4所示的方法400包括步骤S410至步骤S420。

在步骤S410,获取第一定位信息、第二定位信息和第三定位信息。

第一定位信息是基于惯性导航数据得到的。这里,惯性导航数据指的是惯性传感器(例如IMU)测量得到的数据。第一定位信息可以包括第一位置信息、第一速度信息、第一姿态信息。其中第一位置信息用于描述车辆的相对位置,例如当前时刻相对于上一时刻或初始时刻的位置。

获取第一定位信息的方式可以有多种,可以只利用惯性导航数据获取,也可以结合惯性导航数据和其他传感器数据获取,本申请实施例对此不作限定。

作为一个示例,可以基于捷联惯导算法获取第一定位信息。

具体地,基于捷联惯导算法,对惯性传感器对应的惯性数据进行数值积分和姿态解算处理,求解车辆的姿态、速度和位置,得到第一定位信息。

惯性传感器包括陀螺仪和加速度计,分别用于测量车辆的角速度和加速度。捷联惯导算法中,陀螺仪和加速度计固连在车辆上,计算装置采集惯性传感器的输出信息并进行数值积分和姿态解算,求解出车辆的位置、速度、姿态等定位参数,即可以获得第一定位信息。例如对加速度进行一次积分可以得到速度,进行二次积分可以得到位置,对角速度进行姿态计算可以得到姿态等。

捷联惯导算法中可以只利用惯性传感器对应的惯性数据来获取第一定位信息,其具体计算过程与现有方案一致,为简洁,在此不作过多描述。

作为另一个示例,可以基于航位推算(dead reckoning,DR)法获取第一定位信息。

具体地,基于航位推算法,对惯性传感器对应的惯性数据和车辆对应的速度数据进行处理,获得车辆的行驶方向和行驶距离,并累加于初始位置,得到第一定位信息。

这里初始位置指的是上一时刻的定位。航位推算法中,已知上一时刻的定位信息(姿态、速度和位置),根据惯性传感器的输出信息和车辆的速度数据,测量出移动的距离和方位,可以推算下一时刻的定位信息。例如惯性传感器对应的惯性数据经过积分计算可以得到位置信息,速度数据经过处理可以获得相对于上一时刻的状态改变量。通过在初始位置上累加位移矢量可以计算出当前位置。

本申请实施例中,车辆对应的速度数据可以通过车速传感器或里程仪获得。在航位推算法中,利用惯性传感器对应的惯性数据和速度数据来获取第一定位信息,其具体计算过程与现有方案一致,为简洁,在此不作过多描述。

上述给出的示例中,惯性传感器对应的数据可以是惯性传感器输出的原始数据(即上文提到的惯性导航数据),也可以是惯性传感器输出的原始数据经补偿后得到的数据(即惯性导航数据经过补偿后的数据)。

作为示例而非限定,可以根据第一零偏对惯性导航数据(即惯性传感器输出的原始数据)进行补偿,得到补偿后的惯性传感器数据。然后根据补偿后的惯性传感器数据获取第一定位信息。

在一些实施例中,第一零偏是根据惯性传感器输出原始数据时的温度和计算系数得到的。这里,惯性传感器输出的每个原始数据都可以对应一个第一零偏。每个原始数据对应的第一零偏用于对该原始数据进行补偿。

作为示例而非限定,第一零偏可以通过以下公式1-1得到:

其中T

具体而言,公式1-1可以展开为如下公式1-2:

惯性传感器输出的原始数据包括惯性传感器在时刻0、1…n获取的数据,T

上述公式1-1和1-2中涉及到的计算系数A和B可以通过如下方式获取。

在一个示例中,计算系数A和B可以通过对惯性传感器在第一时间段内输出的原始数据(例如角速度和/或加速度)和温度进行最小二乘法拟合得到,其中车辆在第一时间段内处于非运行状态。

这里,车辆处于非运行状态可以理解为对车辆没有操作,处于停止不动的状态。在一些实施例中,车辆处于非运行状态可以理解为车辆处于静止状态,这里的“静止状态”指的是车辆满足一定条件时所处的状态,即静止或近似静止。

换言之,当车辆在非运行状态状态时,可以采集惯性传感器在第一时间段内输出的原始数据和温度,然后进行最小二乘法拟合,以得到计算系数A和B。具体地,最小二乘拟合公式如下公式1-3所示:

Bias=A·T+B (1-3)

其中,Bias为惯性传感器在第一时间段内输出的原始数据,例如为陀螺仪输出的角速度或为加速度计输出的加速度;T为惯性传感器第一时间段内输出的温度;A和B为待求的计算系数。

本申请实施例中,随着时间推移,车辆可能在多个第一时间段内均处于非运行状态状态,则可以不断采集惯性传感器在最新的第一时间段内输出的原始数据和温度,并利用拟合公式1-3更新计算系数A和B。

本申请实施例中,可以定期保存或实时保存经公式1-3计算得到的计算系数A、B,或者保存最新的计算系数A、B,以供系统(即对车辆进行定位的系统)下次开机时使用。

在另一个示例中,计算系数A和B可以是出厂默认值。例如在系统第一次初始化时即需要对惯性传感器的原始数据进行补偿,这时可以使用出厂默认参数A和B,用于公式1-1或1-2。

也就是说,计算系数可以通过对惯性传感器在第一时间段内输出的角速度和温度进行最小二乘法拟合得到,其中车辆在第一时间段内处于非运行状态。或者,计算系数采用出厂默认值。

在一些实施例中,第一零偏可以为惯性传感器在第一时间段内输出的原始数据的平均值(例如角速度的平均值和/或加速度的平均值),其中车辆在第一时间段内处于非运行状态。例如,在系统刚开机阶段,车辆处于非运行状态,但不满足最小二乘方式计算公式1-1中的计算系数A和B。理论上,车辆处于非运行状态时,惯性传感器输出应为0。但由于惯性传感器存在零偏,在车辆处于非运行状态时,惯性传感器会产生角速度和/或加速度的输出。因此可以采集车辆在第一时间段内输出的原始数据,求其平均值作为第一零偏。

应理解,上述示例中所涉及的零偏(即第一零偏)与惯性传感器输出的原始数据类型相对应,用于对相应类型的原始数据进行补偿。例如陀螺仪输出角速度,则陀螺仪的零偏为角速度的误差,用于对陀螺仪输出的角速度进行补偿。例如加速度计输出加速度,则加速度计的零偏为加速度的误差,用于对加速度计输出的加速度进行补偿。

上述示例中,在求取计算系数A、B以及求取惯性传感器在第一时间段内输出的原始数据的平均值时,前提条件均包括车辆在第一时间段内处于非运行状态。

作为一个示例,可以通过如下条件判断车辆在第一时间段内处于非运行状态:

陀螺仪在第一时间段内输出的角速度的均方差小于第一阈值;

加速度计在第一时间段内输出的加速度的均方差小于第二阈值;以及

车辆在第一时间段内的速度小于第三阈值。

这里,第一阈值、第二阈值和第三阈值可以结合实际场景确定,本申请实施例对此不作限定。

作为另一个示例,可以通过如下条件判断车辆在第一时间段内处于非运行状态:

视觉传感器在第一段时间内获取多张图像,该多张图像中均包括第一物体,且第一物体相对于车辆的位置未发生变化。

一般引起惯性传感器零偏的因素很多,例如地球自转、惯性传感器自身的工艺误差、温度变化、噪声影响等。本申请实施例中,第一零偏可以包括恒定的零偏误差、比例因子误差、温度误差、不重合及非正交误差、非线性误差中的至少一项。其中恒定的零偏误差是指开机后恒定的误差,一般在一次启动的整个工作过程中都保持不变,可以通过在开机后静止一段时间比较准确地测量。比例因子误差是由比例因子变化引起的误差。温度误差是由温度变化引起的误差。不重合及非正交误差是由惯性传感器本身结构存在一定非正交性所引起的误差。非线性误差为由比例因子非线性导致的误差。

本申请实施例中,在获取第一定位信息之前,可以先对惯性传感器输出的原始数据进行补偿,以消除部分因素引起的零偏。这样用于获取第一定位信息的数据的精度得以提高,可以相应提高基于惯性定位的定位精度。

第二定位信息是基于卫星定位数据得到的。卫星定位数据是通过全球导航卫星系统测量得到的数据。第二定位信息可以包括第二位置信息、第二速度信息、第二姿态信息。第二位置信息用于描述车辆的绝对位置,即基于大地的世界坐标系下的位置。

本申请实施例中,第二定位信息可以通过GNSS,例如GPS、格洛纳斯卫星导航系统、伽利略卫星定位系统、北斗卫星导航系统等,对车辆进行卫星定位得到。

第三定位信息是基于视觉定位数据得到的。视觉定位数据是通过视觉传感器(如摄像头)测量得到的数据,在一些实施例中,视觉定位数据也可以称为图像数据。第三定位信息可以包括第三位置信息、第三速度信息、第三姿态信息。第三位置信息可用于描述车辆的相对位置。

在步骤S420,当车辆在第一环境中行驶时,对第一定位信息和第二定位信息进行第一融合处理,获取第一定位结果;或者,当车辆在第二环境中行驶时,对第一定位信息和第三定位信息进行第二融合处理,获取第二定位结果。

第一环境的卫星信号质量满足预设质量要求,第二环境的卫星信号质量不满足所述预设质量要求。本申请实施例中,预设质量要求可以包括以下至少一项:

卫星处于有效定位状态;

卫星的水平精度因子(dilution of precision,DOP)小于或者等于预设的精度阈值;

处于有效定位状态的卫星数目大于或者等于预设的第一数目阈值;

信号强度大于或者等于预设的第一强度阈值的卫星数目大于或者等于预设的第二数目阈值;

车辆接收的卫星信号强度大于或者等于预设的第二强度阈值;

车辆的信噪比(signal-to-noise ratio,SNR)大于或等于预设的信噪比阈值。

上述涉及预设的精度阈值、第一数目阈值、第二数目阈值、第一强度阈值、第二强度阈值、信噪比阈值可以根据实际需要确定,本申请实施例对此不作特殊限定。

当车辆在第一环境中行驶时,由于第一环境中的卫星信号较好,可以将基于惯性导航数据获得的第一定位信息与基于卫星定位数据获得的第二定位信息进行融合处理,得到融合后的定位信息,即第一定位结果。这里第一定位结果可以包括经第一融合处理得到的第一融合位置、第一融合速度、第一融合姿态。

当车辆在第二环境中行驶时,由于第二环境中的卫星信号较差,可以将基于惯性导航数据获得的第一定位信息与基于视觉定位数据获得的第三定位信息进行融合处理,得到融合后的定位信息,即第二定位结果。这里第二定位结果可以包括经第二融合处理得到的第二融合位置、第二融合速度、第二融合姿态。

示例性的,步骤S420具体可以包括:

当车辆在第一环境中行驶时,基于状态转移方程、第一量测方程和第二量测方程,对第一定位信息和第二定位信息进行扩展卡尔曼滤波处理,获取第一定位结果;或者,

当车辆在第二环境中行驶时,基于状态转移方程、第一量测方程和第三量测方程,对第一定位信息和第三定位信息进行扩展卡尔曼滤波EKF处理,获取第二定位结果。

第一量测方程的观测数据源于惯性传感器,第二量测方程中的观测数据源于全球导航卫星系统,第三量测方程中的观测数据源于视觉传感器。

具体地,当车辆在第一环境中行驶时,对第一定位信息和第二定位信息进行扩展卡尔曼滤波处理的过程可以包括:

根据状态转移方程进行状态估计,获取预测的定位结果;

根据第一量测方程和第一定位信息获得惯性传感器量测的定位结果;

根据第二量测方程和第二定位信息获得全球导航卫星系统量测的定位结果;

根据惯性传感器量测的定位结果和全球导航卫星系统量测的定位结果对预测的定位结果进行修正,得到第一定位结果。

具体地,当车辆在第二环境中行驶时,对第一定位信息和第三定位信息进行扩展卡尔曼滤波处理的过程可以包括:

根据状态转移方程进行状态估计,获取预测的定位结果;

根据第一量测方程和第一定位信息获得惯性传感器量测的定位结果;

根据第三量测方程和第三定位信息获得视觉传感器量测的定位结果;

根据惯性传感器量测的定位结果和视觉传感器量测的定位结果对预测的定位结果进行修正,得到第二定位结果。

换句话说,在对不同的定位方式所获得的定位信息进行融合处理时,实际上是利用至少两种传感器量测得到的定位结果对预测的定位结果进行修正,从而得到更为准确的定位结果。

在一个实施例中,状态转移方程为:

其中,

系统状态量δx可以通过如下矩阵表示:

其中δp

相应地,控制噪声w中可以包括系统状态量对应的误差,例如北向位置误差,东向位置误差,车速标度因数误差,横滚角误差,俯仰角误差或偏航角误差等。

系统状态矩阵F的分量形式如下:

其中,

方向余弦矩阵

在该矩阵中,第i行、j列的元素

例如,载体坐标系为“右-前-上”坐标系,参考坐标系为“东-北-天”坐标系,欧拉角定义为3-1-2(航向角-俯仰角-横滚角)旋转,其中航向角北偏西为正。在“东-北-天312”欧拉角定义下,可得从地理坐标系(选为导航系,n系)到载体坐标系(b系)得方向余弦矩阵为:

其中,γ为横滚角,θ为俯仰角,ψ为偏航角。

F1为1×3阶矩阵,F2为3×3阶矩阵,F1、F2的分量形式如下:

其中,R

系统状态矩阵F中的F1(3,1)为矩阵F1的第3行第1列的分量。系统状态矩阵F中的F2(2,2)为矩阵F2的第2行第2列的分量。其他类似,不再赘述。

本申请实施例中,第一量测方程、第二量测方程和第三量测方程的基本公式可以是相同的,只是公式中的参数取值根据观测数据来源不同而不同。基本公式可以为:

δ

其中,δ

在一个实施例中,第一量测方程中的数据源于惯性传感器。第一量测方程为:

其中,δ

相应地,加速度计模型的观测噪声η

系统量测矩阵H

其中,θ为俯仰角,ψ为偏航角。

加速度计推算出来的横滚角φ

其中,f

在一个实施例中,第二量测方程中的数据源于全球导航卫星系统。第二量测方程为:

其中,δ

相应地,全球导航卫星系统模型的观测噪声η

系统量测矩阵H

其中,u

GNSS测量出来的位置p

p

其中,p

DR推算出来的速度v

v

其中,s为速度标度因数,u

同时,位置还可以通过其他数据计算出来,例如位置可以表示为:

其中,

在一个实施例中,第三量测方程中的数据源于视觉传感器。第三量测方程为:

其中,δ

相应地,摄像头模型模型的观测噪声η

系统量测矩阵H

其中,θ为俯仰角,ψ为偏航角,I为单位矩阵。

摄像头测量出来的位置p

p

其中,p

同时,位置还可以通过其他数据计算出来,例如位置的估计值可以表示为:

其中,

需要说明的是,本申请实施例提供的状态转移方程、第一量测方程、第二量测方程和第三量测方程在用于扩展卡尔曼滤波时,状态转移方程所估计的量是固定的,量测方程所量测的状态量会因测量方法的不同而有所不同。另外,本申请实施例提供的方法中,估计或量测的状态量相比现有方案而言有所不同,而具体的应用或计算方式可以参考常规方式或现有方案进行,在此不再详细介绍。

在其他一些实施例中,步骤S420中所使用的第一融合处理和第二融合处理,也可以采用其他方式,例如卡尔曼滤波、无迹卡尔曼滤波等。

在一些实施例中,在步骤S420中,当车辆在第一环境或第二环境中行驶,经扩展卡尔曼滤波EKF处理后,获取至少一个参数的误差估计,该至少一个参数的误差估计用于对至少一个参数的值进行校正。

该至少一个参数可以包括北向位置、东向位置、速度标度因数、速度、横滚角、俯仰角、偏航角、陀螺仪输出角速度等中的一个或多个。

相应地,该至少一个参数的误差估计可以包括北向位置误差、东向位置误差、速度标度因数误差、横滚角误差、俯仰角误差、偏航角误差、陀螺仪零偏等中的一个或多个。

在一些实施例中,该至少一个参数包括速度标度因数,该至少一个参数的误差估计包括速度标度因数误差。这样,在步骤S420之后,可以根据速度标度因数误差对速度标度因数进行校正,得到校正后的速度标度因数;然后根据校正后的速度标度因数,获取车辆的速度。如此,完成了车辆速度的校正,可以得到更为准确的速度。该速度在后续用于航位推算法获取定位信息时,可以提高惯性定位的精度,进而提高融合计算中所获得的最终定位结果。在一些实施例中,该至少一个参数的误差估计包括第二零偏,该第二零偏用于对惯性传感器输出的原始数进行校正。这里,第二零偏可以包括随机误差。

示例性的,该第二零偏包括陀螺仪的零偏,陀螺仪的零偏用于对陀螺仪输出的角速度进行校正。其他参数的校正过程类似,在此不再一一详述。

在一些实施例中,第一定位结果或第二定位结果包括车辆的速度(例如前述第一融合速度或第二融合速度)和姿态(例如前述第一融合姿态或第二融合姿态)。其中姿态包括俯仰角。

相应地,在步骤S420之后,方法400还包括:根据车辆的速度和行驶时间,确定车辆在行驶时间内的位移量;根据俯仰角和位移量,确定车辆在行驶时间内的高程变化量。

根据车辆的俯仰角可以判断车辆是处于上坡状态还是下坡状态,根据高程变化量可以确定车辆相对于初始位置的纵向高度。这样在卫星信号不好的场景,例如地下车库、城市峡谷、高架桥下方、隧道等,可以根据该方法准确识别出车辆在不同高度的位置进行切换,例如在地下车库时可以判断车辆上了一层车库还是下了一层车库,在高架桥时可以判断车辆时上高架桥还是下高架桥。

为方便理解,下面结合图5进行解释和说明。如图5所示,以车辆100在多层车库为例,若车库内卫星信号弱,则在步骤S420中对基于惯性导航数据得到的第一定位信息和基于视觉定位数据得到的第三定位信息进行第二融合处理,获得车辆100的第二定位结果。第二定位结果包括车辆100的速度、姿态、位置。车辆100从P位置运动到Q位置的过程中,可以获得不同位置对应的速度、姿态、位置。

根据车辆的俯仰角θ可以判断车辆100是上坡还是下坡,例如,俯仰角θ大于0表示上坡,俯仰角θ小于表示下坡。俯仰角θ可以认为是车辆100所在位置的坡道角度。

根据车辆100的速度和车辆100从P位置运动到Q位置的行驶时间,可以确定车辆100从P位置到Q位置的位移量。若车辆100的速度时均匀的,则车辆100的位移量可以通过速度与行驶时间相乘获得。若车辆100在不同位置的速度不同,则相邻两个轨迹点之间的位移量可以通过速度与采样间隔相乘获得,而车辆从P位置到Q位置的位移量可以通过将车辆在相邻轨迹点之间的位移量全部累加获得。

根据车辆的俯仰角θ和车辆100从P位置到Q位置的位移量,可以确定车辆100从P位置到Q位置的纵向高度(即高程变化量)。若车辆的俯仰角θ恒定,则车辆100的高程变化量可以通过(位移量·sinθ)获得。若车辆100在不同的位置的俯仰角θ不同,则相邻两个轨迹点之间的高程变化量可以通过(相邻轨迹点之间的位移量·sinθ),而车辆从P位置到Q位置的纵向高度可以通过将车辆在相邻轨迹点之间的高程变化量全部累加获得。

应理解,确定车辆100从P位置到Q位置的纵向高度还可以有其他方式,例如将上述相邻轨迹点相关的参数计算改为计算间隔3个、5个或8个轨迹点的相关参数,也可以确定车辆100的高程变化量,本申请实施例对此不作特殊限定。

根据车辆100从P位置到Q位置的纵向高度,可以确定车辆100的上了一层车库,还是下了一层车库,从而可以确定车辆100是否在不同高度的层之间切换,还可以确定车辆100具体位于多层车库中的哪一层。

这样,将基于惯性导航数据得到的定位信息和基于视觉定位数据得到的定位信息进行融合处理,可以输出速度和俯仰角,进而通过速度、俯仰角和行驶时间估算坡道角度和车辆100的纵向高度,从而识别出车辆100在高程上的位置。这样在卫星信号不好的地方,也可以准确识别出车辆在不同高程位置之间是否进行切换以及如何进行切换,可以提高车辆的定位精度,增强车辆行驶的安全性。

上文中提到的EKF状态转移方程相比现有方案可以增加速度标度因数误差项,从而可以估计速度标度因数误差。该速度标度因数误差用于对速度标度因数进行校正,可以提高车辆速度的测量精度。

本申请实施例中,当车辆在不同的环境中行驶时,可以采用不同的组合定位方法。在卫星信号良好的环境下,可以采用包括卫星定位和惯性定位的组合定位方式;在卫星信号较差的环境(例如隧道、城市峡谷、高架桥下等卫星信号遮挡严重、多路径区域场景)下,可以采用惯性定位和视觉定位的组合定位方式。这样在卫星信号较差的情况下,依然能够稳定、可靠、准确的对车辆进行定位,提高车辆行驶的安全性。

具体的,可以设置分别与惯性定位、卫星定位和视觉定位对应的量测方程,在进行融合处理的时候,可以根据车辆的行驶环境选择、切换不同的量测方程,得到融合后的定位。

本申请实施例中,可以对惯性传感器输出的原始数据进行实时、动态补偿,可以降低零偏对定位的影响,提升定位性能和定位精度。

为了更好地理解本申请,以下结合图6和图7描述一个具体地非限制性的例子,描述本申请实施例提供的一种定位方法。

图6示出了本申请实施例提供的一种定位方法的示意性流程框图。示例性的,图6中通过惯性测量单元(inertial measurement unit,IMU)610和车速传感器620来获取惯性定位所需的相关数据,通过全球导航卫星系统GNSS 630来获取卫星定位所需的相关数据,通过摄像头640来获取视觉定位所需的相关数据。

如图6所示,IMU 610在步骤S601中输出俯仰角、横滚角和偏航角,其中IMU 610输出的原始数据已经过第一零偏的实时动态补偿。相应地,车速传感器620在步骤S602中输出车辆的速度。在步骤S603中,对IMU 610和车速传感器620输出的数据进行航位推算DR处理,在步骤S604中输出第一定位信息,该第一定位信息包括第一位置、第一速度、第一姿态。

作为示例而非限定,步骤S603的DR推算的实现方法如图7中所示。步骤S601中获取的车辆在时刻n的偏航角为ψ

x

y

ψ

其中,公式7-1和7-2用于计算车辆在时刻n+1的位置(x

当车辆在第一环境中行驶时,例如GNSS可用,GNSS 630在步骤S605中输出第二定位信息,该第二定位信息包括第二位置、第二速度、第二姿态。然后在步骤S608中将步骤S604中输出的第一定位信息和步骤S605中输出的第二定位信息进行EKF处理,输出第一定位结果,该第一定位结果包括第一融合位置、第一融合速度、第一融合姿态。

当车辆在第二环境中行驶时,例如GNSS不可用,在步骤S606中对摄像头640获取的图像数据进行重定位处理,在步骤S607中输出第三定位信息,该第三定位信息包括第三位置、第三速度、第三姿态。然后在步骤S608中将步骤S604中输出的第一定位信息和步骤S607中输出的第三定位信息进行EKF处理,在步骤S609输出第二定位结果,该第二定位结果包括第二融合位置、第二融合速度、第二融合姿态。

不论车辆在第一环境中行驶还是在第二环境中行驶,在步骤S608中还可以输出第二零偏,该第二零偏可用于在步骤S611中对IMU 610输出的数据进行校正。在步骤S608中还可以输出速度标度因数误差,该速度标度因数误差用于在步骤S612中对车速传感器620输出的数据进行校正。

应理解,图6中示出的步骤编号仅用于表示不同的步骤,对步骤执行的先后顺序不造成限定。例如步骤S601和S602可以同时执行或者先后执行,步骤S604、S605、S607可以同时执行或者先后执行。

本申请实施例中,判断GNSS 630是否可用的操作可以在步骤S608之前的任意步骤执行。例如可以在获取到第一定位信息、第二定位信息和第三定位信息之后,判断车辆的行驶环境(即GNSS是否可用,或者卫星信号质量是否满足预设质量要求),然后根据车辆的行驶环境确定将哪两种定位方式组合。或者可以在执行图5所示方法之前,先判断车辆的行驶环境,再根据车辆的行驶环境确定将哪两种定位方式组合,以及获取对应的定位信息。

本申请实施例中,不论车辆在第一环境中行驶还是在第二环境中行驶,均可以利用第一零偏对IMU 610输出的数据进行实时校正,从而实现持续稳定定位。第一零偏的获取方式可以为图4中所述的方法,即通过公式1-1或1-2获取,或者将惯性传感器在第一时间段内输出的原始数据的平均值作为第一零偏。在不同场景下,可以采用不同的方式获取第一零偏。

图8示出了本申请实施例提供的一种校正惯性传感器原始数据的方法的示意性流程图。下面结合图8对获取第一零偏的方式进行介绍。

在步骤S801,判断系统是否为第一次初始化。

若是,则执行步骤S802,根据出厂默认的计算系数A和B计算第一零偏。即,将出厂默认的计算系数A和B带入公式1-1或1-2中,计算第一零偏。

若否,则执行步骤S803,获取惯性传感器在第一时间段内输出的原始数据。

步骤S804,判断车辆是否处于非运行状态。

若否,则返回上一步骤,例如重复执行步骤S803。

若是,则执行步骤805,判断是否满足最小二乘方法要求。

若否,则执行步骤S806,计算惯性传感器在第一时间段内输出的原始数据的平均值,作为第一零偏。应理解,这里所涉及的原始数据的平均值,指的是对于同一类型或同一传感器的原始数据求平均值。例如对陀螺仪输出的是角速度求平均值,作为陀螺仪的第一零偏;例如对加速度计输出的加速度求平均值,作为加速度计的第一零偏。

若是,则执行步骤S807,对惯性传感器在第一时间段内输出的原始数据进行最小二乘法拟合,获取计算系数A和B,根据计算系数A和B计算第一零偏。例如,步骤S807可以按照公式1-3进行拟合,以求取计算系数A和B。

在获取第一零偏后,即步骤S802、S806或S807之后,执行步骤S808,根据第一零偏对惯性传感器输出的原始数据实时校正。应理解,这里所涉及的“惯性传感器输出的原始数据”指的是进行定位时所用的数据,而步骤S803中涉及的“惯性传感器在第一时间段内输出的原始数据”指的是在进行定位之前,车辆处于非运行状态时,用于获取第一零偏所用的数据。

在一些实施例中,在步骤S807之后还可以执行步骤S809,保存计算系数A和B。该计算系数A和B可用于下次开机阶段使用。

需要说明的是,图8中示出的步骤编号仅用于表示不同的步骤,对步骤执行的先后顺序不造成限定。例如步骤S804和S805可以同时执行或者先后执行,步骤S801、S804、S805可以同时执行或者先后执行。

利用第一零偏对惯性传感器输出的原始数据进行校正,能够从源头上去除部分因素例如温度对惯性传感器输出数据(例如陀螺仪输出角速度)的影响。示例性的,图9示出了车辆处于静止状态时陀螺仪输出的原始数据和经第一零偏补偿后的数据的分布示意图,其中横坐标为距离,纵坐标为误差。如图9所示,位于上方区域的数据点为陀螺仪输出的原始数据,即未校正的数据,位于下方区域的数据点为经第一零偏补偿后的数据,即校正后的数据。理论上,车辆处于非运行状态(例如静止)时,陀螺仪输出的角速度应为0,也不会产生角度。实际上由于陀螺仪的固有的温度零偏属性,当车辆静止时,陀螺仪也会因温度变化而产生角速度的输出。从图中可以看出,未校正的数据(即陀螺仪输出的角速度)随时间增长而逐渐增大,对陀螺仪输出的角速度进行积分计算,可以得到角度的误差。校正后的数据始终在0值上下浮动,并未随时间增长而增大。

因此,本申请实施例中采用第一零偏实时动态补偿惯性传感器输出的原始数据,在车辆行驶过程中,能够实时降低因零偏重复性、温度零偏、常值零偏误差等带来的角度累积误差。

上文结合图1至图9详细的描述了本申请实施例的方法实施例,下面结合图10至图11,详细描述本申请实施例的装置实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。

图10是本申请实施例提供的一种定位装置的示意图。图10所示的装置1000可以是图1所示的车辆100上的装置,或者是图2所示的云服务器200上的装置,或者是其他驾驶装置或云计算装置上的装置。装置1000包括第一定位模块1010、第二定位模块1020、第三定位模块1030、融合定位模块1040。装置1000可用于执行本申请实施例提供的定位方法。

例如,第一定位模块1010、第二定位模块1020、第三定位模块1030可以用于执行图4所示方法中的步骤S410,融合定位模块1040可以用于执行图4所示方法中的步骤S420。又如,装置1000还可以用于执行图6所示的定位方法,其中,第一定位模块1010可以用于执行获取第一定位信息的步骤,例如执行图6所示方法中的步骤S601、S602、S603、S604,第二定位模块1020可以用于执行获取第二定位信息的步骤,例如执行图6所示方法中的步骤S605,第三定位模块1030用于执行获取第三定位信息的步骤,例如执行图6所示方法中的步骤S606、S607,融合定位模块1040用于执行融合处理获取第一定位结果或第二定位结果的步骤,例如执行图6所示方法中的步骤S608、S609。

可选地,装置1000可以对应于图6示出的硬件,其中,第一定位模块1010可以对应于IMU 610和/或用于执行步骤S603的功能模块,第二定位模块1020可以对应于GNSS630,第三定位模块1030可以对应于用于执行步骤S606和S607的功能模块,融合定位模块1040可以对应于用于执行步骤S608的功能模块。

图11是本申请实施例提供的一种定位装置的硬件结构示意图。该装置1100包括存储器1101、处理器1102、通信接口1103以及总线1104。其中,存储器1101、处理器1102、通信接口1103通过总线1104实现彼此之间的通信连接。

装置1100可以用于执行上文定位方法的各个步骤。

可选地,存储器1101可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。存储器1101可以存储程序,当存储器1101中存储的程序被处理器1102执行时,处理器1102和通信接口1103用于执行本申请实施例的定位方法的各个步骤。

可选地,存储器1101可以具有图1所示存储器152的功能或者具有图3所示系统内存335的功能,以实现上述存储程序的功能。可选地,处理器1102可以采用通用的CPU,微处理器,ASIC或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的车辆通信装置中的单元所需执行的功能,或者执行本申请实施例的定位方法的各个步骤。

可选地,处理器1102可以具有图1所示处理器151的功能或者具有图3所示处理器303的功能,以实现上述执行相关程序的功能。

可选地,处理器1102还可以是一种集成电路芯片,具有信息的处理能力。在实现过程中,本申请实施例的定位方法的各个步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。

可选地,上述处理器1102还可以是通用处理器、数字信息处理器(digital signalprocessing,DSP)、ASIC、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成本申请实施例的车辆通信装置中包括的单元所需执行的功能,或者执行本申请实施例的定位方法的各个步骤。

可选地,通信接口1103可以使用例如但不限于收发器一类的收发装置,来实现装置与其他设备或通信网络之间的通信。

总线1104可包括在装置各个部件(例如,存储器、处理器、通信接口)之间传送信息的通路。

本申请实施例还提供一种车辆,包括传感器和图10或图11所示的定位装置。定位装置可以执行方法实施例中所描述的定位方法。传感器可以包括惯性传感器、全球导航卫星系统和视觉传感器。惯性传感器可以为惯性测量单元IMU,用于获取惯性导航数据。全球导航卫星系统可以为GPS,用于获取卫星定位数据。视觉传感器可以为摄像头,用于测获取视觉定位数据,例如图像数据等。

本申请实施例还提供一种服务器,包括处理器和图10或图11所示的定位装置,用于执行方法实施例中所描述的定位方法。

本申请实施例还提供一种系统,包括目标车辆和服务器,目标车辆和服务器用于执行方法实施例中所描述的定位方法。具体地,目标车辆可以执行图4所示方法中的步骤S410,即获取第一定位信息、第二定位信息和第三定位信息。服务器可以执行图4所示方法中的步骤S420,即当目标车辆在第一环境中行驶时,对第一定位信息和第二定位信息进行第一融合处理,获取第一定位结果;或者,当目标车辆在第二环境中行驶时,对第一定位信息和第三定位信息进行第二融合处理,获取第二定位结果。目标车辆还可以用于执行图6所示方法中的步骤S601至S607,服务器可以用于执行图6所示方法中的步骤S608、S609。

也就是说,目标车辆获取各种定位信息,服务器进行融合计算,得到最终定位结果。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质储有计算机程序,当该计算机程序被计算机运行时,使得计算机执行方法实施例中所描述的定位方法。

本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,当计算机程序产品被计算机运行时,使得计算机执行方法实施例中所描述的定位方法。

在本申请实施例中,“第一”、“第二”以及各种数字编号仅为描述方便进行的区分,并不用来限制本申请实施例的范围。例如,区分不同的时间点等。

应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

在本说明书中使用的术语“部件”、“模块”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在2个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

技术分类

06120113674466