用于自主驾驶卡车的基于两个惯性测量单元和GPS的定位系统的制作方法

文档序号:22113226发布日期:2020-09-04 15:17阅读:280来源:国知局
用于自主驾驶卡车的基于两个惯性测量单元和GPS的定位系统的制作方法

本公开的实施例总体上涉及操作自主车辆。更具体而言,本公开的实施例涉及操作自主驾驶卡车。



背景技术:

以自主模式(例如,无人驾驶)操作的车辆可以减轻乘坐者,尤其是驾驶员的一些驾驶相关责任。当在自主模式下操作时,车辆可以使用车载传感器导航到各种位置,从而允许车辆以最小的人为交互或者在一些情况下没有任何乘客的情况下行驶。

运动计划和控制是自主驾驶中的关键操作。然而,传统的运动规划操作主要根据给定路径的曲率和速度估计完成给定路径的难度,而不考虑不同类型车辆的特征的差异。相同的运动规划和控制应用于所有类型的车辆,这在某些情况下可能不是精确和平滑的。

诸如卡车的车辆具有非常强的悬挂系统,其与客车的悬挂系统非常不同。在一种情况下,诸如惯性测量单元和全球定位系统的传感器可以安装在卡车的驾驶室上。然而,由于卡车的强悬挂,卡车的驾驶室可能相对于卡车的车身不期望地滚动和/或俯仰,尤其是当在道路上突然转弯或从相对高的速度突然停止时。在这种情况下,驾驶室上的传感器可能提供可能与需要控制(例如,在转弯操作期间)的卡车的车身的位置/定位不精确地一致的位置数据。例如,当卡车向右转弯时,驾驶室可能向左侧摆动,但卡车的车身在车道的中间。如果惯性测量单元和全球定位系统安装在驾驶室上,则自主驾驶系统将认为卡车具有向左的误差,并将其校正到可能不期望的相反方式。



技术实现要素:

在第一方面中,本公开提供了一种用于操作自主驾驶卡车的计算机实现的方法,所述方法包括:

基于从第一惯性测量单元(imu)和第一全球定位系统(gps)单元接收的传感器数据生成第一位置数据,其中所述第一imu和所述第一gps单元安装在所述自主驾驶卡车的第一位置上;

基于从第二imu和第二gps单元接收的传感器数据生成第二位置数据,其中所述第二imu和所述第二gps单元安装在所述自主驾驶卡车的第二位置上;

基于所述第一位置数据和所述第二位置数据规划轨迹,生成规划和控制数据;以及

根据所述轨迹控制所述自主驾驶卡车,包括根据所述第二位置数据基于所述规划和控制数据发出控制命令。

在第二方面中,本公开提供了一种非暂时性机器可读介质,其中存储有指令,当由处理器执行时,所述指令使所述处理器执行如第一方面所述的操作。

在第三方面中,本公开提供了一种数据处理系统,包括:

处理器;以及

耦合到所述处理器以存储指令的存储器,所述指令在由所述处理器执行时使所述处理器执行如第一方面所述的操作。

附图说明

本公开的实施例通过示例的方式示出并且不限于附图中的图,在附图中相同的附图标记表示相似的元件。

图1是示出根据一个实施例的联网系统的框图。

图2是示出根据一个实施例的自主车辆的示例的框图。

图3a-3b是示出根据一个实施例的与自主车辆一起使用的感知和规划系统的示例的框图。

图4a是根据一个实施例的具有一组imu和gps的自主驾驶卡车的侧视图。

图4b是图4a所示的具有一组imu和gps的自主驾驶卡车的俯视图。

图5是根据一个实施例的从一组imu/gps单元接收位置数据的定位模块的框图。

图6是根据一个实施例的操作自主驾驶卡车的过程的流程图。

图7是示出根据一个实施例的数据处理系统的框图。

具体实施方式

将参考以下讨论的细节描述本公开的各个实施例和方面,并且附图将示出各个实施例。以下描述和附图是本公开的说明并且不应被解释为限制本公开。描述了许多具体细节以提供对本公开的各种实施例的全面理解。然而,在某些情况下,为了提供对本公开的实施例的简要讨论,没有描述公知或常规的细节。

说明书中对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性可包括在本公开的至少一个实施例中。在说明书中的各个地方出现的短语“在一个实施例中”不一定都指同一实施例。

根据一些实施例,一种用于操作自主驾驶卡车的计算机实现的方法包括在自主驾驶卡车的规划模块处接收来自第一惯性测量单元、第一全球定位系统、第二惯性测量单元和第二全球定位系统的位置数据。第一惯性测量单元和第一全球定位系统被附接到自主驾驶卡车的驾驶室,以及第二惯性测量单元和第二全球定位系统被附接到自主驾驶卡车的车身结构,其中车身结构远离驾驶室延伸。方法还包括在自主驾驶卡车的控制模块处从第二惯性测量单元和第二全球定位系统接收位置数据,以及在规划和控制模块处基于接收的位置数据控制自主驾驶卡车。

根据本发明的一个实施例,基于从安装在自主驾驶卡车的第一位置上的第一惯性测量单元(imu)和第一全球定位系统(gps)单元获得的传感器数据生成第一位置数据。基于从安装在自主驾驶卡车上的第二位置上的第二imu和第二gps单元获得的传感器数据生成第二位置数据。第一位置和第二位置不同。基于第一位置数据和第二位置数据规划轨迹。结果生成表示轨迹的规划和控制数据。根据轨迹控制自主驾驶卡车,包括基于规划和控制数据以及进一步根据第二位置数据发出各种控制命令(例如,油门、制动、转向控制命令)。

在一个实施例中,第一imu和第一gps单元被附接到卡车的驾驶室,并且第二imu和第二gps单元被附接到卡车的车身结构。具体地,例如,第一imu和第一gps单元安装在驾驶室的顶部上,而第二imu和第二gps单元安装在卡车的基础平台上。执行感知过程以基于从诸如lidar设备、相机和/或radar设备的各种传感器获得的传感器数据感知卡车周围的驾驶环境,包括感知一个或多个障碍物。对于障碍物中的每一个,基于基于第一imu和第一gps单元的第一位置数据确定障碍物相对于卡车的相对位置。根据障碍物的位置而生成轨迹。

图1是示出根据本公开的一个实施例的自主车辆网络配置的框图。参考图1,网络配置100包括自主车辆101(例如,将在下面更详细描述的自主驾驶卡车),其可以通过网络102通信地耦合到一个或多个服务器103-104。尽管示出一个自主车辆,但是多个自主车辆可以彼此耦合和/或通过网络102耦合到服务器103-104。网络102可以是任何类型的网络,诸如局域网(lan)、诸如因特网的广域网(wan)、蜂窝网络、卫星网络、或其组合,有线或无线网络。服务器103-104可以是任何类型的服务器或服务器群集,诸如web或云服务器、应用服务器、后端服务器或其组合。服务器103-104可以是数据分析服务器、内容服务器、交通信息服务器、地图和兴趣点(mpoi)服务器或位置服务器等。

自主车辆指的是能够被配置为处于自主模式的车辆,在自主模式中,车辆在驾驶员很少或没有输入的情况下导航通过环境。这种自主车辆可包括具有一个或多个传感器的传感器系统,传感器被配置为检测关于车辆运行的环境的信息。车辆及其相关联的控制器使用检测的信息导航通过环境。自主车辆101可以以手动模式、全自主模式或部分自主模式操作。

在一个实施例中,自主车辆101包括但不限于感知和规划系统110、车辆控制系统111、无线通信系统112、用户接口系统113、信息娱乐系统114和传感器系统115。自主车辆101还可包括普通车辆中包括的某些通用组件,例如引擎、车轮、转向盘、变速器等,其可以由车辆控制系统111和/或感知和规划系统110使用各种通信信号和/或命令(例如加速信号或命令、减速信号或命令、转向信号或命令、制动信号或命令等)控制。

组件110-115可以经由互连、总线、网络或其组合彼此通信地耦合。例如,组件110-115可以经由控制器局域网(can)总线彼此通信地耦合。can总线是一种车辆总线标准,其被设计为允许微控制器和设备在没有主机的情况下在应用中彼此通信。它是基于消息的协议,最初被设计用于汽车内的多路电线,但是也用于许多其它环境中。

现在参考图2,在一个实施例中,传感器系统115包括但不限于一个或多个相机211、第一全球定位系统(gps)单元212、第一惯性测量单元(imu)213、雷达单元214、光检测和测距(lidar)单元215、第二gps单元216和第二imu217。gps系统212、216可以各自包括可操作以提供关于自主车辆的定位的信息的收发器。imu单元213、217可以基于惯性加速度感测自主车辆的定位和方向变化。雷达单元214可以表示利用无线电信号感测自主车辆的本地环境内的对象的系统。在一些实施例中,除了感测对象之外,雷达单元214可以另外感测对象的速度和/或航向。lidar单元215可以使用激光感测自主车辆所处的环境中的对象。lidar单元215可包括一个或多个激光源、激光扫描器以及一个或多个检测器,以及其他系统组件。相机211可包括一个或多个设备以捕获自主车辆周围的环境的图像。相机211可以是静态相机和/或摄像机。相机可以是机械可移动的,例如通过将相机安装在旋转和/或倾斜的平台上。

传感器系统115还可包括其它传感器,例如声纳传感器、红外传感器、转向传感器、油门传感器、制动传感器和音频传感器(例如麦克风)。音频传感器可以被配置为捕获来自自主车辆周围的环境的声音。转向传感器可以被配置为感测方向盘、车辆的车轮或其组合的转向角。油门传感器和制动传感器分别感测车辆的油门定位和制动定位。在一些情况下,油门传感器和制动传感器可以集成为集成的油门/制动传感器。

在一个实施例中,车辆控制系统111包括但不限于转向单元201、油门单元202(也称为加速单元)和制动单元203。转向单元201用于调节车辆的方向或航向。油门单元202用于控制电动机或引擎的速度,电动机或引擎的速度又控制车辆的速度和加速度。制动单元203通过提供摩擦力以使车辆的车轮或轮胎减速而使车辆减速。注意,图2所示的组件可以用硬件、软件或其组合实现。

返回参考图1,无线通信系统112允许自主车辆101和外部系统(例如设备、传感器、其他车辆等)之间的通信。例如,无线通信系统112可以直接或经由通信网络与一个或多个设备无线通信,诸如通过网络102与服务器103-104通信。无线通信系统112可以使用任何蜂窝通信网络或无线局域网(wlan),例如使用wifi与另一组件或系统通信。无线通信系统112可以例如使用红外链路、蓝牙等直接与设备(例如,乘客的移动设备、显示设备、车辆101内的扬声器)通信。用户接口系统113可以是在车辆101内实现的外围设备的一部分,包括例如键盘、触摸屏显示器设备、麦克风和扬声器等。

自主车辆101的一些或所有功能可以由感知和规划系统110控制或管理,尤其是当在自主驾驶模式下操作时。感知和规划系统110包括必要的硬件(例如,处理器、存储器、存储设备)和软件(例如,操作系统、规划和路由程序),以从传感器系统115、控制系统111、无线通信系统112和/或用户接口系统113接收信息,处理接收的信息,规划从起点到目的地点的路线或路径,然后基于规划和控制信息驱动车辆101。可替换地,感知和规划系统110可以与车辆控制系统111集成。

例如,作为乘客的用户可以例如经由用户界面指定旅程的起始位置和目的地。感知和规划系统110获得旅程有关的数据。例如,感知和规划系统110可以从mpoi服务器获得位置和路线信息,mpoi服务器可以是服务器103-104的一部分。位置服务器提供位置服务,mpoi服务器提供地图服务和某些位置的poi。可替换地,这种位置和mpoi信息可本地高速缓存在感知和规划系统110的永久存储设备中。

当自主车辆101沿着路线移动时,感知和规划系统110还可以从交通信息系统或服务器(tis)获得实时交通信息。注意,服务器103-104可以由第三方实体操作。可替换地,服务器103-104的功能可以与感知和规划系统110集成。基于实时交通信息、mpoi信息和位置信息、以及由传感器系统115检测或感测的实时局部环境数据(例如,障碍物、对象、附近车辆),感知和规划系统110可规划最佳路线,并例如经由控制系统111根据规划路线驾驶车辆101,以安全且高效地到达指定目的地。

服务器103可以是数据分析系统,以执行用于各种客户端的数据分析服务。在一个实施例中,数据分析系统103包括数据收集器121和机器学习引擎122。数据收集器121从各种车辆(自主车辆或者是由人类驾驶员驾驶的常规车辆)收集驾驶统计123。驾驶统计123包括指示发出的驾驶命令(例如,油门、制动、转向命令)和由车辆的传感器在不同时间点捕获的车辆响应(例如,速度、加速度、减速度、方向)的信息。驾驶统计123可进一步包括描述不同时间点的驾驶环境的信息,诸如路线(包括开始位置和目的地位置)、mpoi、道路条件、天气条件等。

基于驾驶统计123,机器学习引擎122为各种目的生成或训练一组规则、算法和/或预测模型124。算法124可包括为诸如感知、规划和控制阶段的不同目的而组合和利用双imu和gps单元的算法。然后,算法124可以被上载到adv上,以便在自主驾驶期间实时使用。

图3a和3b是示出根据一个实施例的与自主车辆一起使用的感知和规划系统的示例的框图。系统300可以被实现为图1的自主车辆101的一部分,包括但不限于感知和规划系统110、控制系统111和传感器系统115。参考图3a-3b,感知和规划系统110包括但不限于定位模块301、感知模块302、预测模块303、决策模块304、规划模块305、控制模块306和路由模块307。

模块301-307中的一些或全部可以以软件、硬件或其组合实现。例如,这些模块可以安装在永久存储设备352中,加载到存储器351中,并由一个或多个处理器(未示出)执行。注意,这些模块中的一些或全部可以通信地耦合到图2的车辆控制系统111的一些或全部模块或与之集成。模块301-307中的一些可以被集成在一起作为集成模块。

定位模块301确定自主车辆300的当前位置(例如,利用gps单元212、216)并管理与用户的旅程或路线有关的任何数据。定位模块301(也称为地图和路线模块)管理与用户的旅程或路线有关的任何数据。用户可以例如经由用户界面登录并指定旅程的起始位置和目的地。定位模块301与自主车辆300的其他部件(例如地图和路线信息311)通信,以获得与旅程有关的数据。例如,定位模块301可以从位置服务器和地图与poi(mpoi)服务器获得位置和路线信息。位置服务器提供位置服务,mpoi服务器提供地图服务和某些位置的poi,它们可作为地图和路线信息311的一部分被高速缓存。当自主车辆300沿着路线移动时,定位模块301还可以从交通信息系统或服务器获得实时交通信息。

基于由传感器系统115提供的传感器数据和由定位模块301获得的定位信息,由感知模块302确定对周围环境的感知。感知信息可以表示普通驾驶员将感知到的驾驶员正在驾驶的车辆周围的情况。感知可包括车道配置,交通灯信号,另一车辆、行人、建筑物、人行横道或例如以对象形式的其它交通相关标志(例如,停止标志、让步标志)等的相对定位。车道配置包括描述一个或多个车道的信息,诸如,例如车道的形状(例如,直的或弯曲的)、车道的宽度、道路中的车道数量、单向或双向车道、合并或分离车道、离开车道等。

感知模块302可包括计算机视觉系统或计算机视觉系统的功能,以处理和分析由一个或多个相机捕获的图像,以便识别自主车辆的环境中的对象和/或特征。对象可包括交通信号、车道边界、其他车辆、行人和/或障碍物等。计算机视觉系统可使用对象识别算法、视频跟踪和其它计算机视觉技术。在一些实施例中,计算机视觉系统可以绘制环境、跟踪对象、以及估计对象的速度等。感知模块302还可以基于由诸如雷达和/或lidar的其他传感器提供的其他传感器数据检测对象。

对于每个对象,预测模块303预测对象将在环境下表现什么。基于根据一组地图/路线信息311和交通规则312感知时间点处的驾驶环境的感知数据执行预测。例如,如果对象是在相反方向上的车辆并且当前驾驶环境包括十字路口,则预测模块303将预测车辆将可能直线向前移动还是转弯。如果感知数据指示交叉路口没有交通灯,则预测模块303可以预测车辆在进入交叉路口之前可能必须完全停止。如果感知数据指示车辆当前处于仅左转弯车道或仅右转弯车道,则预测模块303可预测车辆将更可能分别进行左转弯或右转弯。

对于每个对象,决策模块304作出关于如何处理该对象的决策。例如,对于特定对象(例如,在交叉路线中的另一车辆)以及描述该对象的元数据(例如,速度、方向、转向角),判定模块304判定如何遇到该对象(例如,超车、让行、停止、通过)。决策模块304可根据一组规则,诸如交通规则或驾驶规则312,作出这些决策,这组规则可存储于永久存储设备352中。

路由模块307被配置为提供从起点到目的地点的一条或多条路线或路径。对于例如从用户接收的从起始位置到目的地位置的给定旅程,路由模块307获得路线和地图信息311并且确定从起始位置到达目的地位置的所有可能的路线或路径。路由模块307可以为其从起始位置到达目的地位置确定的每条路线生成地形图形式的参考线。参考线是指没有来自诸如其它车辆、障碍物或交通状况的其它的任何干扰的理想路线或路径。也就是说,如果在道路上没有其它车辆、行人或障碍物,则adv应该精确地或紧密地跟随参考线。然后,地形图被提供给决策模块304和/或规划模块305。决策模块304和/或规划模块305检查所有可能的路线,以根据由其它模块提供的其它数据(诸如来自定位模块301的交通状况、由感知模块302感知的驾驶环境和由预测模块303预测的交通状况)选择和修改最佳路线中的一个。取决于时间点处的特定驾驶环境,用于控制adv的实际路径或路线可以接近或不同于由路由模块307提供的参考线。

基于对每个感知到的对象的决策,规划模块305使用由路由模块307提供的参考线作为基础,规划用于自主车辆的路径或路线以及驾驶参数(例如,距离、速度和/或转向角)。也就是说,对于给定对象,决策模块304决定对对象做什么,而规划模块305确定如何做。例如,对于给定对象,决策模块304可以决定通过对象,而规划模块305可以确定是在对象的左侧还是右侧通过。规划和控制数据由规划模块305生成,包括描述车辆300在下一个移动周期(例如,下一个路线/路径段)中将如何移动的信息。例如,规划和控制数据可指示车辆300以30英里每小时(mph)的速度移动10米,然后以25mph的速度改变到右车道。

基于规划和控制数据,控制模块306通过根据由规划和控制数据定义的路线或路径向车辆控制系统111发送合适的命令或信号而控制和驾驶自主车辆。规划和控制数据包括足够的信息以在沿着路径或路线的不同时间点使用合适的车辆设置或驾驶参数(例如,油门、制动、转向命令)将车辆从路线或路径的第一点驾驶到第二点。

在一个实施例中,规划阶段在多个规划周期内执行,规划周期也称为驾驶周期,诸如在100毫秒(ms)的每个时间间隔内执行。对于每个规划周期或驾驶周期,将基于规划和控制数据发出一个或多个控制命令。也就是说,对于每100ms,规划模块305规划下一个路线段或路径段,例如包括目标定位和adv到达目标定位所需的时间。可替换地,规划模块305还可指定特定速度、方向和/或转向角等。在一个实施例中,规划模块305为下一预定的时间段,诸如5秒,规划路线段或路径段。对于每个规划周期,规划模块305基于在先前周期规划的目标定位而规划用于当前周期(例如,下一个5秒)的目标定位。然后控制模块306基于当前周期的规划和控制数据生成一个或多个控制命令(例如,油门、制动、转向控制命令)。

注意,决策模块304和规划模块305可以集成为集成模块。决策模块304/规划模块305可包括导航系统或导航系统的功能,以确定用于自主车辆的驾驶路径。例如,导航系统可以确定一系列速度和方向航向,以影响自主车辆沿着基本上避开感知的障碍物的路径的移动,同时通常使自主车辆沿着通向最终目的地的基于车道的路径前进。目的地可以根据经由用户接口系统113的用户输入设置。当自主车辆在操作时,导航系统可以动态地更新驾驶路径。导航系统可以合并来自gps系统的数据和一个或多个地图,以便确定用于自主车辆的驾驶路径。

多项式优化或多项式拟合的项是指由多项式函数(例如,五次或四次多项式函数)表示的曲线(在该示例中,轨迹)的形状的优化,使得曲线沿着曲线是连续的(例如,可获得两个相邻段处的接合处的导数)。在自主驾驶领域中,从起点到终点的多项式曲线被分成多个段(或块),每个段对应于控制点(或参考点)。这种分段多项式曲线被称为分段多项式。当优化分段多项式时,除了一组初始状态约束和结束状态约束之外,还必须满足两个相邻段之间的一组联合约束和一组边界约束。

该组联合约束包括相邻段的定位(x,y)、速度、航向和加速度必须相同。例如,第一段(例如,引导段)的结束定位和第二段(例如,跟随段)的开始定位必须相同或在预定的邻近内。第一段的结束定位的速度、航向和加速度以及第二段的开始定位的对应的速度、航向和加速度必须相同或在预定范围内。此外,每个控制点与预定边界(例如,围绕控制点的左右0.2米)相关联。多项式曲线必须通过其对应的边界内的每个控制点。当在优化期间满足这两组约束时,表示轨迹的多项式曲线应该是平滑和连续的。

图4a和4b分别示出根据一个实施例的自主驾驶卡车400的侧视图和俯视图。自主驾驶卡车400包括驾驶室402、从驾驶室402大致水平地向外延伸的车身结构404、以及附接到车身结构404的货物集装箱(未示出)。自主驾驶卡车400还包括附接(“安装”)到驾驶室402的第一惯性测量单元(imu)408、也附接到驾驶室402的第一全球定位系统(gps)406(例如,如图4b所示的两个gps传感器)、附接到车身结构404(例如,底板或车辆基础平台)的第二惯性测量单元412、以及也附接到车身结构404的第二全球定位系统410。

在一个实施例中,第一gps406被定位为高于第一imu408,如图4a所示。在一个实施例中,第一gps406附接到上部或顶部,诸如驾驶室402的顶板,第一imu408通常附接在驾驶室的背部的中部,如图4a和4b所示。在一个实施例中,第二gps410经由杆或其它合适的支撑结构附接到车身结构404。在一个实施例中,第二imu412在靠近车身结构的邻近驾驶室402的端部处附接到车身结构404。

如图4a所示,第一和第二gps单元都被定位为高于第一和第二imu单元,以允许从例如卫星或其它网络设备更好地接收gps信号。第一imu408和第一gps406可以分别对应于imu213和gps212,如图2所示。第二imu412和第二gps410可以分别对应于imu217和gps216,也如图2所示。根据本公开的一个方面,第一组定位(“位置”)传感器(例如,第一imu408和第一gps406)和第二组定位传感器(例如,第二imu412和第二gps410)获得自主驾驶卡车的驾驶室和车身结构的定位,这允许各种模块(例如,如图3a-3b所示的定位模块301、规划模块305和控制模块306)基于它们的特定模块要求使用从这些传感器获得的定位/位置数据。

在一个实施例中,从第一imu408和第一gps单元406获得的传感器数据可由感知模块用于感知卡车周围的驾驶环境。从第一imu、第二imu、第一gps单元和第二gps单元获得的传感器数据可被规划模块用于基于从感知模块接收的感知信息规划轨迹,生成表示轨迹的规划和控制数据。控制模块基于规划和控制数据,进一步根据基于从第二imu和第二gps单元获得的传感器数据确定的位置数据,处理和发出控制命令。

例如,规划模块和控制模块,诸如图3a-3b中所示的规划模块305和控制模块306,可以使用来自第二组定位传感器的位置数据作为自主驾驶卡车的实际定位,因为它是实际上正被控制的车身结构(例如,车身结构404),并且驾驶室(例如,驾驶室402)的移动通常可以被自主驾驶系统忽略。在另一示例中,控制模块(例如控制模块306)可以使用仅来自第二组定位传感器的位置数据控制自主驾驶卡车的转向。换句话说,来自第一组定位传感器的位置数据不被控制模块用于控制自主驾驶卡车的转向,因为当自主驾驶卡车在道路上转弯操作时,由于自主驾驶卡车的悬挂系统,驾驶室可能相对于车身结构过度地侧倾和/或俯仰。

根据本公开的另一方面,规划模块(例如,规划模块305)可以使用来自第一和第二组定位传感器的位置数据规划驾驶室和车身结构如何一起移动。例如,计算从驾驶室和车身结构两者的障碍物距离是有用的。而且,使用来自第一和第二组定位传感器的位置数据允许确定自主驾驶卡车的更精确的定位,这改进了规划模块的规划功能。规划模块还可以使用第一组定位传感器中的一个或多个(例如,第一imu408)以控制自主驾驶卡车的驾驶室中的舒适度。诸如感知模块(例如,图3a中所示的感知模块302)的其它模块和驾驶员操作系统可使用来自第一和第二组定位传感器中的一组或两组的位置数据。

图5是根据一个实施例的从两组imu/gps单元接收位置数据的定位模块的框图。imu1和gps1形成imu/gps单元的第一组502,imu2和gps2形成imu/gps单元的第二组504。imu1可以对应于第一imu408,gps1可以对应于第一gps406,如图4a和4b所示。另外,imu2可以对应于第二imu412,gps2可以对应于第二gps410,也如图4a和4b所示。定位模块506可对应于如图3a所示的定位模块301。第一组502、第二组504和定位模块506中的每一个可以在合适的频率下操作,例如100hz。来自第一组502的位置数据508和来自第二组504的位置数据510可不同时被定位模块506接收。例如,来自第一组502的imu/gps单元的位置数据508可以在时间t1(例如,5ms)在定位模块506处被接收,而来自第二组504的imu/gps单元的位置数据510可以在时间t2(例如,8ms)在定位模块506处被接收。因此,来自两组502和504的位置数据需要由定位模块506在时间t3处对准并且组合,以同时在时间t3处将位置数据发送到其他模块(例如,规划模块305和/或控制模块306)。在一个实施例中,来自imu1的位置数据、来自gps1的位置数据、来自imu2的位置数据和来自gps2的位置数据都可以在限定的时间(例如,时间t3)由定位模块506对准,并且对准的位置数据在时间t3处被发送到规划模块305。在另一实施例中,来自imu2的位置数据和来自gps2的位置数据可由定位模块506在另一限定的时间(例如,时间t4)对准,并且对准的位置数据在时间t4处发送到控制模块306。然后,其它模块(例如,规划模块305和控制模块306)可以使用从如上所述的定位模块接收的位置数据。位置数据的对准可以由定位模块使用合适的技术实现,例如,通过使用内插技术。在本公开的一个方面,来自第一组502、第二组504和定位模块506的每个消息可包括时间戳。

图6是根据一个实施例的操作自主驾驶卡车400(见图4a、4b)的过程600的流程图。处理600可以由可包括软件、硬件或其组合的处理逻辑执行。例如,过程600可以由图3a中所示的感知和规划系统110执行。参考图6,在操作602中,处理逻辑被配置为在自主驾驶卡车的规划模块(例如,规划模块305)处接收来自第一惯性测量单元(例如,第一imu408)、第一全球定位系统(例如,第一gps406)、第二惯性测量单元(例如,第二imu412)和第二全球定位系统(例如,第二gps410)的位置数据。在一个实施例中,第一惯性测量单元和第一全球定位系统被附接到自主驾驶卡车的驾驶室,并且第二惯性测量单元和第二全球定位系统被附接到自主驾驶卡车的车身结构,其中车身结构远离驾驶室延伸。过程还包括,在操作604处,在自主驾驶卡车的控制模块(例如,控制模块306)处从第二惯性测量单元和第二全球定位系统接收位置数据,以及在操作606处,在规划和控制模块处基于接收的位置数据控制自主驾驶卡车。

在一个实施例中,过程600可包括在规划和控制模块处接收位置数据之前,最初在自主驾驶卡车的定位模块处从第一和第二惯性测量单元以及第一和第二全球定位系统接收位置数据。在一个实施例中,过程600还可包括在定位模块处对准从第一和第二惯性测量单元以及第一和第二全球定位系统中的每一个分别接收的位置数据。在一个实施例中,对准的位置数据可以同时从定位模块发送到自主驾驶卡车中的其它模块,例如规划和/或控制模块。在一个实施例中,过程600可进一步包括在自主驾驶卡车的控制模块处仅从第二惯性测量单元和第二全球定位系统接收位置数据。

根据本公开的一个方面,传感器预处理(例如lidar)操作可包括将主车辆(例如,自主驾驶卡车400)从扫描的障碍物移除的掩蔽操作。在一个实施例中,过程600可进一步包括基于来自第一惯性测量单元和第一全球定位系统的位置数据形成驾驶室的掩蔽,基于来自第二惯性测量单元和第二全球定位系统的位置数据形成车身结构的掩蔽,以及组合掩蔽以生成自主驾驶卡车的最终掩蔽。最终掩蔽可由上述传感器预处理操作使用,以从使用lidar扫描的障碍物中移除自主驾驶卡车。这种掩蔽操作可以通过感知模块(例如,图3a中所示的感知模块302)的预处理操作执行。与感知模块相关联的传感器(例如lidar、雷达、相机)可以安装在自主驾驶卡车的驾驶室上,并且当自主驾驶卡车在道路上移动时,这些传感器与第一imu和第一gps一起移动。因此,由感知模块观察到的所有障碍物将使用来自第一imu和第一gps单元的位置数据在全球坐标系下被平移。

注意,如上所示和所述的一些或所有组件可以用软件、硬件或其组合实现。例如,这些组件可以被实现为安装并存储在永久存储设备中的软件,软件可以由处理器(未示出)加载并执行在存储器中以执行贯穿本申请所述的过程或操作。可替换地,这些组件可被实现为编程或嵌入到专用硬件中的可执行代码,专用硬件诸如集成电路(例如,特定用途ic或asic)、数字信号处理器(dsp)或现场可编程门阵列(fpga),其可经由来自应用的相应驾驶员和/或操作系统访问。此外,这些组件可以被实现为处理器或处理器内核中的特定硬件逻辑,作为软件组件经由一个或多个特定指令可访问的指令集的一部分。

图7是示出可与本公开的一个实施例一起使用的数据处理系统的示例的框图。例如,系统1500可以表示执行上述任何过程或方法的上述任何数据处理系统,诸如,例如感知和规划系统110或图1的服务器103-104中的任何一个。系统1500可包括许多不同的组件。这些组件可以被实现为集成电路(ic)、其部分、分立电子设备、或适用于诸如计算机系统的主板或内插式卡的电路板的其它模块、或被实现为以其它方式并入计算机系统的机箱内的组件。

还应当注意,系统1500旨在示出计算机系统的许多组件的高级视图。然而,应当理解的是,在某些实施方式中可以存在额外的组件,并且此外,在其他实施方式中可以出现所示组件的不同布置。系统1500可以表示台式机、笔记本电脑、平板计算机、服务器、移动电话、媒体播放器、个人数字助理(pda)、智能手表、个人通信器、游戏设备、网络路由器或集线器、无线接入点(ap)或中继器、机顶盒或其组合。此外,虽然仅示出单个机器或系统,但是术语“机器”或“系统”还应当被认为包括单独地或联合地执行一组(或多组)指令以执行本文所讨论的方法中的任何一个或多个的机器或系统的任何集合。

在一个实施例中,系统1500包括经由总线或互连1510连接的处理器1501、存储器1503和设备1505-1508。处理器1501可以表示单个处理器或其中包括单个处理器核或多个处理器核的多个处理器。处理器1501可表示一个或多个通用处理器,诸如微处理器、中央处理单元(cpu)等。更特别地,处理器1501可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器、或实现其它指令集的处理器、或实现指令集的组合的处理器。处理器1501还可以是一个或多个专用处理器,诸如专用集成电路(asic)、蜂窝或基带处理器、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器、图形处理器、通信处理器、密码处理器、协处理器、嵌入式处理器或能够处理指令的任何其它类型的逻辑。

处理器1501可以是低功率多核处理器插槽,诸如超低电压处理器,其可以充当主处理单元和中央集线器,用于与系统的各种组件通信。这种处理器可以实现为片上系统(soc)。处理器1501被配置为执行用于执行本文所讨论的操作和步骤的指令。系统1500可进一步包括与可选图形子系统1504通信的图形接口,可选图形子系统1504可包括显示控制器、图形处理器和/或显示设备。

处理器1501可与存储器1503通信,在一个实施例中,存储器1503可经由多个存储器设备实现以提供给定量的系统存储器。存储器1503可包括一个或多个易失性存储(或存储器)设备,诸如随机存取存储器(ram)、动态ram(dram)、同步dram(sdram)、静态ram(sram)或其他类型的存储设备。存储器1503可以存储包括由处理器1501或任何其它设备执行的指令序列的信息。例如,各种操作系统、设备驱动程序、固件(例如,输入输出基本系统或bios)和/或应用程序的可执行代码和/或数据可以被加载到存储器1503中,并由处理器1501执行。操作系统可以是任何类型的操作系统,诸如,例如机器人操作系统(ros)、来自微软操作系统、来自苹果(apple)的来自linux、unix或其它实时或嵌入式操作系统。

系统1500还可包括io设备,诸如设备1505-1508,包括(一个或多个)网络接口设备1505、(一个或多个)可选输入设备1506和(一个或多个)其它可选io设备1507。网络接口设备1505可包括无线收发器和/或网络接口卡(nic)。无线收发器可以是wifi收发器、红外收发器、蓝牙收发器、wimax收发器、无线蜂窝电话收发器、卫星收发器(例如,全球定位系统(gps)收发器)或其它射频(rf)收发器,或其组合。nic可以是以太网卡。

输入设备1506可包括鼠标、触摸板、触敏屏(其可与显示设备1504集成)、诸如指示笔的定点设备、和/或键盘(例如,作为触敏屏的一部分显示的物理键盘或虚拟键盘)。例如,输入设备1506可包括耦合到触摸屏的触摸屏控制器。触摸屏和触摸屏控制器可以例如使用多种触摸灵敏度技术中的任何一种检测接触和移动或其中断,多种触摸灵敏度技术包括但不限于电容性、电阻性、红外和表面声波技术,以及用于确定与触摸屏的一个或多个接触点的其它接近传感器阵列或其它元件。

io设备1507可包括音频设备。音频设备可包括扬声器和/或麦克风,以促进语音使能功能,诸如语音识别、语音复制、数字记录和/或电话功能。其它io设备1507还可包括通用串行总线(usb)端口、并行端口、串行端口、打印机、网络接口、总线桥(例如pci-pci桥)、传感器(例如,诸如加速度计、陀螺仪、磁力计、光传感器、罗盘、接近传感器等的运动传感器)或其组合。设备1507可以进一步包括成像处理子系统(例如,相机),其可包括光学传感器,诸如电荷耦合器件(ccd)或互补金属氧化物半导体(cmos)光学传感器,用于促进相机功能,诸如记录照片和视频剪辑。某些传感器可以经由传感器集线器(未示出)耦合到互连1510,而诸如键盘或热传感器的其它设备可以由嵌入式控制器(未示出)控制,这取决于系统1500的具体配置或设计。

为了提供诸如数据、应用程序、一个或多个操作系统等信息的持久存储,大容量存储器(未图示)也可耦合到处理器1501。在各种实施例中,为了使能更薄和更轻的系统设计以及改进系统响应性,该大容量存储器可经由固态装置(ssd)实现。然而,在其它实施例中,大容量存储可主要使用具有较少量ssd存储以充当ssd高速缓存的硬盘驱动器(hdd)实现,以在断电事件期间启用上下文状态和其它此类信息的非易失性存储,使得在系统活动的重新启动时可发生快速加电。此外,闪存设备可以例如经由串行外围接口(spi)耦合到处理器1501。该闪存设备可以提供系统软件的非易失性存储,包括bios以及系统的其它固件。

存储设备1508可包括计算机可访问存储介质1509(也称为机器可读存储介质或计算机可读介质),在其上存储体现本文所述的方法或功能中的任何一个或多个的一组或多组指令或软件(例如,模块、单元和/或逻辑1528)。处理模块/单元/逻辑1528可以表示上述组件中的任何一个,诸如,例如规划模块305、控制模块306和定位模块301。在由数据处理系统1500执行处理模块/单元/逻辑1528期间,处理模块/单元/逻辑1528还可以完全或至少部分地驻留在存储器1503内和/或处理器1501内,存储器1503和处理器1501也构成机器可访问存储介质。处理模块/单元/逻辑1528还可以经由网络接口设备1505通过网络被发送或接收。

计算机可读存储介质1509还可用于持久地存储上述某些软件功能。尽管在示例性实施例中将计算机可读存储介质1509示出为单个介质,但是术语“计算机可读存储介质”应当被理解为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的高速缓存和服务器)。术语“计算机可读存储介质”还应当被理解为包括能够存储或编码用于由机器执行的指令集并且使得机器执行本公开的方法中的任何一个或多个的任何介质。术语“计算机可读存储介质”因此应被理解为包括但不限于固态存储器、光和磁介质、或任何其它非瞬态机器可读介质。

处理模块/单元/逻辑1528、组件和本文所述的其他特征可以被实现为分立硬件组件或者被集成在诸如asic、fpga、dsp或类似设备之类的硬件组件的功能中。另外,处理模块/单元/逻辑1528可以被实现为硬件设备内的固件或功能电路。此外,处理模块/单元/逻辑1528可以以硬件设备和软件组件的任何组合实现。

注意,尽管系统1500是使用数据处理系统的各种组件示出,但它不旨在表示互连组件的任何特别体系结构或方式;因为这些细节与本公开的实施例没有密切关系。还将理解的是,具有更少组件或可能更多组件的网络计算机、手持式计算机、移动电话、服务器和/或其它数据处理系统也可与本公开的实施例一起使用。

已经根据对计算机存储器内的数据位的操作的算法和符号表示呈现了前述详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用来最有效地将他们的工作实质传达给本领域的其他技术人员的方式。算法在这里并且通常被认为是导致期望结果的自相容操作序列。这些操作是需要对物理量进行物理操作的那些操作。

然而,应当记住的是,所有这些和类似的术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便的标记。除非特别声明,否则从以上讨论中显而易见的是,应当理解的是,在整个说明书中,使用诸如所附权利要求书中所阐述的术语的讨论指的是计算机系统或类似电子计算设备的动作和处理,所述计算机系统或类似电子计算设备将计算机系统的寄存器和存储器内表示为物理(电子)量的数据操纵和变换成计算机系统存储器或寄存器或其它这样的信息存储、传输或显示设备内类似地表示为物理量的其它数据。

本公开的实施例还涉及用于执行本文的操作的装置。这种计算机程序存储在非瞬态计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储介质、光存储介质、闪存设备)。

在前述附图中描述的过程或方法可以由包括硬件(例如,电路、专用逻辑等)、软件(例如,包括在非暂时性计算机可读介质上)或两者的组合的处理逻辑来执行。尽管以上根据一些顺序操作描述了过程或方法,但是应当理解的是,可以以不同的顺序执行所述的一些操作。此外,一些操作可以并行地而不是顺序地执行。

本公开的实施例不是参考任何特定编程语言描述的。将了解,可使用各种编程语言实施如本文所述的本发明的实施例的教示。

在前述说明书中,已经参考本公开的具体示例性实施例描述了本公开的实施例。显然,在不背离如所附权利要求书中所阐述的本公开的更宽的精神和范围的情况下,可以对其进行各种修改。因此,说明书和附图应被认为是说明性的而不是限制性的。

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