HI,欢迎来到起点商标网!
24小时服务QQ:2880605093

用于自主驾驶平台的开放和安全监视系统的制作方法

2021-02-03 16:02:08|356|起点商标网
用于自主驾驶平台的开放和安全监视系统的制作方法

[0001]
本公开的实施例一般涉及操作自主车辆。更具体地,本公开的实施例涉及用于自主驾驶平台的监视系统。


背景技术:

[0002]
以自主模式(例如,无人驾驶)操作的车辆可以减轻乘坐者(尤其是驾驶员)免于一些与驾驶有关的责任。当在自主模式下操作时,车辆可以使用车载传感器导航到各种位置,从而允许车辆以最小的人机交互或者在没有任何乘客的一些情况下行驶。
[0003]
对于自主驾驶平台,传感器和其他硬件组件的状态需要被收集和报告用于系统操作和安全目的。此外,监视机制需要足够开放以允许组件被插入和播放,需要是可靠的以满足功能性安全要求,并且为软件通信协议和应用提供更多灵活性。缺乏用于自主驾驶平台的有效监视机制。


技术实现要素:

[0004]
本公开的一个方面提供了一种用于操作自主驾驶车辆(adv)的系统,系统包括:多个模块,包括感知adv周围的驾驶环境的感知模块和规划路径以控制adv导航通过驾驶环境的规划模块;耦合到多个模块的总线;以及耦合到总线的传感器处理模块,其中传感器处理模块包括:耦合到总线的总线接口,将被耦合到安装在adv上的第一组一个或多个传感器的传感器接口,存储由传感器发布的多个消息的消息队列,以及管理存储在消息队列中的消息的消息处理器,消息由模块中的至少一个订阅以允许模块监视传感器的操作。
[0005]
本公开的另一个方面提供了一种用于操作自主驾驶车辆(adv)的计算机实现的方法,方法包括:在传感器处理模块内维持消息队列以存储由安装在adv上的第一组一个或多个传感器发布的多个消息,其中传感器处理模块包括耦合到第一组传感器的传感器接口和耦合到总线的总线接口;以及管理存储在消息队列中的消息,其中消息由多个模块订阅以允许模块监视传感器的操作,其中多个模块通过总线耦合到传感器处理模块,以及其中多个模块包括感知adv周围的驾驶环境的感知模块和规划路径以控制adv导航通过驾驶环境的规划模块。
[0006]
本公开的另一个方面还提供了一种传感器处理模块,包括:传感器接口,将被耦合到安装在自主驾驶车辆(adv)上的多个传感器;总线接口,将被耦合到执行一个或多个自主驾驶模块的主机处理器,自主驾驶模块包括感知adv周围的驾驶环境的感知模块和规划路径以控制adv导航通过驾驶环境的规划模块;基于消息的监视模块,耦合到传感器接口和总线接口,其中基于消息的监视模块被配置为:维持消息队列以存储由传感器发布的多个消息,以及管理存储在消息队列中的消息,其中消息由自主驾驶模块订阅以允许自主驾驶模块监视传感器的操作。
[0007]
根据本公开,利用监视系统通过可用的符合汽车标准的协议以各种方式主动地收集传感器信息、集成即插即用分布式组件、并且与灵活的软件应用客户端通信以实现开放
和安全的监视机制。
附图说明
[0008]
本公开的实施例通过示例的方式示出并且不限于附图中的图,在附图中相同的附图标记表示相似的元件。
[0009]
图1是示出根据一个实施例的联网系统的框图。
[0010]
图2是示出根据一个实施例的自主车辆的示例的框图。
[0011]
图3a-3b是示出根据一个实施例的与自主车辆一起使用的感知和规划系统的示例的框图。
[0012]
图4是示出根据一个实施例的自主驾驶系统的架构的框图。
[0013]
图5a和5b是示出根据一个实施例的传感器单元的示例的框图。
[0014]
图6是示出根据一个实施例的用于自主驾驶的基于消息的监视架构的示例的框图。
[0015]
图7是示出根据一个实施例的用于自主驾驶的基于消息的监视系统的示例的框图。
[0016]
图8是示出根据一个实施例的用于自主驾驶的基于消息的监视系统的过程的示例的流程图。
具体实施方式
[0017]
将参考以下讨论的细节描述本公开的各种实施例和方面,并且附图将示出各种实施例。以下描述和附图是本公开的说明并且不应被解释为限制本公开。描述了许多具体细节以提供对本公开的各种实施例的全面理解。然而,在某些情况下,为了提供对本公开的实施例的简要讨论,没有描述公知或常规的细节。
[0018]
说明书中对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性可以包括在本公开的至少一个实施例中。在说明书中的各个地方出现的短语“在一个实施例中”不一定都指同一实施例。
[0019]
根据一些实施例,利用监视系统通过可用的符合汽车标准的协议以各种方式主动地收集传感器信息、集成即插即用分布式组件、并且与灵活的软件应用客户端通信以实现开放和安全的监视机制。这可以服务于单个芯片和传感器架构,或者异构集成计算和传感器系统。监视系统基于发布者/订阅者消息系统,以允许所涉及的组件关于操作状态或控制自由地彼此通信。
[0020]
根据一个方面,一种用于操作自主驾驶车辆(adv)的系统包括多个模块。这些模块包括感知adv周围的驾驶环境的至少感知模块和规划路径以驱动adv导航通过驾驶环境的规划模块。系统还包括耦合到模块的总线和通过总线通信地耦合到模块的传感器处理模块。传感器处理模块包括耦合到总线的总线接口、将被耦合到安装在adv上的第一组一个或多个传感器的传感器接口、存储由传感器发布的消息队列、以及管理存储在消息队列中的消息的消息处理器。消息可以由模块中的至少一个订阅以允许模块监视传感器的操作。
[0021]
在一个实施例中,消息队列包括多个消息缓冲器,每个消息缓冲器对应于传感器中的一个,以存储由传感器发布或订阅的消息。在一个实施例中,响应于经由传感器接口从
作为发布者的第一传感器接收的第一消息,消息处理器被配置为将第一格式的第一消息转换为第二格式的第二消息,将第二消息存储在消息队列中,并且经由总线接口通知被注册为订阅者的模块中的第一模块以允许第一模块接收第二消息。第一格式根据第一传感器的设计规范指定。第二格式是能够由模块处理的预定格式。响应于经由传感器接口从第二传感器接收的第三消息,消息处理器被配置为将第三格式的第三消息转换为第四格式的第四消息,以及将第四消息存储于消息队列中。第三格式根据第二传感器的设计规范指定。第一传感器和第二传感器可以是来自不同传感器提供商的不同传感器。
[0022]
根据一个实施例,响应于经由总线接口从耦合到总线的第二组一个或多个传感器中的第三传感器接收的第三消息,消息处理器被配置为将第三格式的第三消息转换为第二格式的第四消息,以及将第四消息存储在消息队列中。在一个实施例中,消息处理器还确定模块中的第二模块已经注册以订阅由第二传感器发布的消息。作为响应,消息处理器经由总线接口通知第二模块以允许第二模块访问存储在消息队列中的第四消息。
[0023]
根据一个实施例,响应于经由总线接口从第二模块接收第二格式的第三消息,消息处理器确定第三消息已经被第一组中的第二传感器订阅。消息处理器还将第三消息从第二格式转换为第三格式,以及经由传感器接口将第三格式的第三消息发送到第二传感器。第一组的传感器可以包括lidar设备、radar设备或相机中的至少一个。总线可以是外围组件快速互连(pcie)总线或以太网连接。
[0024]
根据另一方面,传感器处理模块包括传感器接口和总线接口,传感器接口将被耦合到安装在自主驾驶车辆(adv)上的传感器,总线接口将被耦合到执行一个或多个自主驾驶模块的主机处理器。自主驾驶模块包括感知adv周围的驾驶环境的感知模块和规划路径以控制adv导航通过驾驶环境的规划模块。传感器处理模块还包括被耦合到传感器接口和总线接口的基于消息的监视模块。基于消息的监视模块被配置为维持消息队列以存储由传感器发布的多个消息,以及管理存储在消息队列中的消息,其中消息被自主驾驶模块订阅以允许自主驾驶模块监视传感器的操作。
[0025]
图1是示出根据本公开的一个实施例的自主车辆网络配置的框图。参考图1,网络配置100包括自主车辆101,自主车辆101可以通过网络102通信地耦合到一个或多个服务器103-104。尽管示出一个自主车辆,但是多个自主车辆可以通过网络102彼此耦合和/或耦合到服务器103-104。网络102可以是任何类型的网络,诸如局域网(lan)、广域网(wan)(诸如因特网)、蜂窝网络、卫星网络、或其组合,有线或无线的网络。服务器103-104可以是任何类型的服务器或服务器群集,诸如web或云服务器、应用服务器、后端服务器或其组合。服务器103-104可以是数据分析服务器、内容服务器、交通信息服务器、地图和兴趣点(mpoi)服务器或位置服务器等。
[0026]
自主车辆指的是能够被配置为处于自主模式的车辆,在自主模式中,车辆在驾驶员很少或没有输入的情况下导航通过环境。这种自主车辆可以包括具有一个或多个传感器的传感器系统,一个或多个传感器被配置为检测关于车辆在其中操作的环境的信息。车辆及其相关联的控制器使用检测的信息导航通过环境。自主车辆101可以以手动模式、完全自主模式或部分自主模式操作。
[0027]
在一个实施例中,自主车辆101包括但不限于感知和规划系统110、车辆控制系统111、无线通信系统112、用户接口系统113、信息娱乐系统114和传感器系统115。自主车辆
101还可以包括在普通车辆中包括的某些通用组件,诸如引擎、车轮、转向盘、变速器等,这些组件可以被车辆控制系统111和/或感知和规划系统110使用各种通信信号和/或命令(诸如,例如加速信号或命令、减速信号或命令、转向信号或命令、制动信号或命令等)来控制。
[0028]
组件110-115可以经由互连、总线、网络或其组合彼此通信地耦合。例如,组件110-115可以经由控制器局域网(can)总线彼此通信地耦合。can总线是一种车辆总线标准,其被设计为允许微控制器和设备在没有主机的应用中彼此通信。它是一种基于消息的协议,最初被设计用于汽车内的多路复用电气布线,但是也用于许多其它环境中。
[0029]
现在参考图2,在一个实施例中,传感器系统115包括但不限于一个或多个相机211、全球定位系统(gps)单元212、惯性测量单元(imu)213、雷达单元214、以及光检测和射程(lidar)单元215。gps系统212可以包括可操作以提供关于自主车辆的位置的信息的收发器。imu单元213可以基于惯性加速度感测自主车辆的位置和朝向变化。雷达单元214可以表示使用无线电信号感测自主车辆的局部环境内的对象的系统。在一些实施例中,除了感测对象之外,雷达单元214可以额外地感测对象的速度和/或前进方向。lidar单元215可以使用激光感测自主车辆所处的环境中的对象。lidar单元215可以包括一个或多个激光源、激光扫描器以及一个或多个检测器,以及其他系统组件。相机211可以包括一个或多个设备以捕获自主车辆周围的环境的图像。相机211可以是静态相机和/或摄影机。相机可以是可机械移动的,例如通过将相机安装在旋转和/或倾斜的平台上。
[0030]
传感器系统115还可以包括其它传感器,诸如声纳传感器、红外传感器、转向传感器、油门传感器、制动传感器和音频传感器(例如麦克风)。音频传感器可以被配置为捕获来自自主车辆周围的环境的声音。转向传感器可以被配置为感测转向盘、车辆的车轮或其组合的转向角。油门传感器和制动传感器分别感测车辆的油门位置和制动位置。在一些情况下,油门传感器和制动传感器可以集成为集成的油门/制动传感器。
[0031]
在一个实施例中,车辆控制系统111包括但不限于转向单元201、油门单元202(也称为加速单元)和制动单元203。转向单元201调节车辆的方向或前进方向。油门单元202控制马达或引擎的速度,马达或引擎的速度又控制车辆的速度和加速度。制动单元203通过提供摩擦力以使车辆的车轮或轮胎变慢来使车辆减速。注意,图2所示的组件可以以硬件、软件或其组合实现。
[0032]
再次参考图1,无线通信系统112允许在自主车辆101和外部系统(诸如设备、传感器、其他车辆等)之间的通信。例如,无线通信系统112可以直接或经由通信网络与一个或多个设备(诸如通过网络102的服务器103-104)进行无线通信。无线通信系统112可以使用任何蜂窝通信网络或无线局域网(wlan),例如使用wifi与另一组件或系统通信。无线通信系统112可以例如使用红外链路、蓝牙等直接与设备(例如,乘客的移动设备、显示设备、车辆101内的扬声器)通信。用户接口系统113可以是在车辆101内实现的外围设备的部分,包括例如键盘、触摸屏显示设备、麦克风和扬声器等。
[0033]
自主车辆101的一些或所有功能可以由感知和规划系统110控制或管理,尤其是当在自主驾驶模式下操作时。感知和规划系统110包括必要的硬件(例如,(一个或多个)处理器、存储器、存储设备)和软件(例如,操作系统、规划和路由程序),以从传感器系统115、控制系统111、无线通信系统112和/或用户接口系统113接收信息、处理接收的信息、规划从起点到目的地点的路线或路径,然后基于规划和控制信息驾驶车辆101。可替换地,感知和规
划系统110可以与车辆控制系统111集成。
[0034]
例如,作为乘客的用户可以例如经由用户接口指定行程的起始位置和目的地。感知和规划系统110获得与行程有关的数据。例如,感知和规划系统110可以从mpoi服务器获得位置和路线信息,mpoi服务器可以是服务器103-104的一部分。位置服务器提供位置服务,以及mpoi服务器提供地图服务和某些位置的poi。可替换地,这种位置和mpoi信息可以本地缓存在感知和规划系统110的永久存储设备中。
[0035]
当自主车辆101沿着路线移动时,感知和规划系统110还可以从交通信息系统或服务器(tis)获得实时交通信息。注意,服务器103-104可以由第三方实体操作。可替换地,服务器103-104的功能可以与感知和规划系统110集成。基于实时交通信息、mpoi信息和位置信息,以及由传感器系统115检测或感测的实时局部环境数据(例如,障碍物、对象、附近车辆),感知和规划系统110可以规划最佳路线,并且例如经由控制系统111根据规划路线驾驶车辆101,以安全且高效地到达指定目的地。
[0036]
服务器103可以是数据分析系统,以执行用于各种客户端的数据分析服务。在一个实施例中,数据分析系统103包括数据收集器121和机器学习引擎122。数据收集器121从各种车辆(自主车辆或者是由人类驾驶员驾驶的常规车辆)收集驾驶统计123。驾驶统计123包括指示发出的驾驶命令(例如,油门、制动、转向命令)和由车辆的传感器在不同时间点捕获的车辆的响应(例如,速度、加速度、减速度、方向)的信息。驾驶统计123还可以包括描述不同时间点的驾驶环境的信息,诸如,例如路线(包括起始位置和目的地位置)、mpoi、道路状况、天气状况等。
[0037]
基于驾驶统计123,机器学习引擎122出于各种目的生成或训练一组规则、算法和/或预测模型124。在一个实施例中,算法124可以包括感知、预测和规划规则或方法以自主地驾驶车辆。然后,算法124可以被上载到adv上,以便在自主驾驶期间被实时使用。
[0038]
图3a和3b是示出根据一个实施例的与自主车辆一起使用的感知和规划系统的示例的框图。系统300可以被实现为图1的自主车辆101的部分,包括但不限于感知和规划系统110、控制系统111和传感器系统115。参考图3a-3b,感知和规划系统110包括但不限于定位模块301、感知模块302、预测模块303、决策模块304、规划模块305、控制模块306和路由模块307。
[0039]
模块301-307中的一些或全部可以以软件、硬件或其组合实现。例如,这些模块可以安装在永久存储设备352中、加载到存储器351中,以及由一个或多个处理器(未示出)执行。注意,这些模块中的一些或全部可以通信地耦合到图2的车辆控制系统111的一些或全部模块或与图2的车辆控制系统111的一些或全部模块集成。模块301-307中的一些可以被集成在一起作为集成模块。
[0040]
定位模块301确定自主车辆300的当前位置(例如,使用gps单元212)并且管理与用户的行程或路线有关的任何数据。定位模块301(也称为地图和路线模块)管理与用户的行程或路线有关的任何数据。用户可以例如经由用户接口登录并指定行程的起始位置和目的地。定位模块301与自主车辆300的其他组件(诸如地图和路线信息311)通信,以获得与行程有关的数据。例如,定位模块301可以从位置服务器和地图与poi(mpoi)服务器获得位置和路线信息。位置服务器提供位置服务,以及mpoi服务器提供地图服务和某些位置的poi,它们可作为地图和路线信息311的一部分被缓存。当自主车辆300沿着路线移动时,定位模块
301还可以从交通信息系统或服务器获得实时交通信息。
[0041]
基于由传感器系统115提供的传感器数据和由定位模块301获得的定位信息,由感知模块302确定对周围环境的感知。感知信息可以表示普通驾驶员将感知到的驾驶员正在驾驶的车辆周围的情况。感知可以包括车道配置、交通灯信号、例如以对象形式的另一车辆、行人、建筑物、人行横道或其它与交通有关的标志(例如,停止标志、让步标志)等的相对位置。车道配置包括描述一个或多个车道的信息,诸如,例如车道的形状(例如,直的或弯曲的)、车道的宽度、道路中的车道数量、单向或双向车道、合并或分离车道、驶离车道等。
[0042]
感知模块302可以包括计算机视觉系统或计算机视觉系统的功能,以处理和分析由一个或多个相机捕获的图像,以便识别自主车辆的环境中的对象和/或特征。对象可以包括交通信号、车行道边界、其他车辆、行人和/或障碍物等。计算机视觉系统可以使用对象识别算法、视频跟踪和其它计算机视觉技术。在一些实施例中,计算机视觉系统可以映射环境、跟踪对象、以及估计对象的速度等。感知模块302还可以基于由诸如雷达和/或lidar的其他传感器提供的其他传感器数据检测对象。
[0043]
对于每个对象,预测模块303预测在这种情况下对象将表现的东西。根据一组地图/路线信息311和交通规则312,基于感知在该时间点的驾驶环境的感知数据执行预测。例如,如果对象是在相反方向上的车辆并且当前驾驶环境包括十字路口,则预测模块303将预测车辆将可能直线向前移动还是转弯。如果感知数据指示交叉路口没有交通灯,则预测模块303可以预测车辆在进入交叉路口之前可能必须完全停止。如果感知数据指示车辆当前处于仅向左转弯的车道或仅向右转弯的车道,则预测模块303可以预测车辆将更可能分别进行左转弯或右转弯。
[0044]
对于每个对象,决策模块304关于如何处理该对象做出决策。例如,对于特定对象(例如,在交叉路线中的另一车辆)以及描述该对象的元数据(例如,速度、方向、转向角),决策模块304决定如何遇到该对象(例如,超车、让行、停止、通过)。决策模块304可以根据一组规则(诸如交通规则或驾驶规则312)作出这些决策,这组规则可以存储于永久存储设备352中。
[0045]
路由模块307被配置为提供从起点到目的地点的一条或多条路线或路径。对于例如从用户接收到的从起始位置到目的地位置的给定行程,路由模块307获得路线和地图信息311并且确定从起始位置用以到达目的地位置的所有可能的路线或路径。路由模块307可以为其确定的从起始位置用以到达目的地位置的每条路线生成以地形图形式的参考线。参考线是指没有来自其它(诸如其它车辆、障碍物或交通状况)的任何干扰的理想路线或路径。也就是说,如果在道路上没有其它车辆、行人或障碍物,则adv应该精确地或紧密地跟随参考线。然后,地形图被提供给决策模块304和/或规划模块305。决策模块304和/或规划模块305检查所有可能的路线,以鉴于由其它模块提供的其它数据(诸如来自定位模块301的交通状况、由感知模块302感知的驾驶环境和由预测模块303预测的交通状况)而选择和修改最佳路线中的一个。取决于在时间点处的特定驾驶环境,用于控制adv的实际路径或路线可以接近或不同于由路由模块307提供的参考线。
[0046]
基于对于每个感知的对象的决策,规划模块305使用由路线模块307提供的参考线作为基础规划用于自主车辆的路径或路线以及驾驶参数(例如,距离、速度和/或转向角)。也就是说,对于给定对象,决策模块304决策对该对象做什么,而规划模块305确定如何做。
例如,对于给定对象,决策模块304可以决策经过对象,而规划模块305可以确定是在对象的左侧还是右侧经过。规划和控制数据由规划模块305生成,包括描述车辆300在下一个移动周期(例如,下一个路线/路径段)中将如何移动的信息。例如,规划和控制数据可以指示车辆300以30英里每小时(mph)的速度移动10米,然后以25mph的速度改变到右车道。
[0047]
基于规划和控制数据,控制模块306通过根据由规划和控制数据限定的路线或路径向车辆控制系统111发送适当的命令或信号控制和驾驶自主车辆。规划和控制数据包括足够的信息以沿着路径或路线在不同时间点使用适当的车辆设置或驾驶参数(例如,油门、制动、转向命令)将车辆从路线或路径的第一点驾驶到第二点。
[0048]
在一个实施例中,规划阶段在多个规划周期(也称为驾驶周期,诸如,例如在100毫秒(ms)的每个时间间隔内)内执行。对于每个规划周期或驾驶周期,将基于规划和控制数据发出一个或多个控制命令。也就是说,对于每100ms,规划模块305规划下一个路线段或路径段,例如包括目标位置和adv到达目标位置所需的时间。可替换地,规划模块305还可以指定具体速度、方向和/或转向角等。在一个实施例中,规划模块305为下一预定的时间段(诸如5秒)规划路线段或路径段。对于每个规划周期,规划模块305基于在先前周期中规划的目标位置规划用于当前周期(例如,下一个5秒)的目标位置。然后控制模块306基于当前周期的规划和控制数据生成一个或多个控制命令(例如,油门、制动、转向控制命令)。
[0049]
注意,决策模块304和规划模块305可以集成为集成模块。决策模块304/规划模块305可以包括导航系统或导航系统的功能,以确定用于自主车辆的驾驶路径。例如,导航系统可以确定一系列速度和定向的前进方向,以影响自主车辆沿着基本上避开感知的障碍物的路径的移动,同时大体上使自主车辆沿着通向最终目的地的基于车行道的路径前进。目的地可以根据经由用户接口系统113的用户输入设置。当自主车辆在操作时,导航系统可以动态地更新驾驶路径。导航系统可以并入来自gps系统的数据和一个或多个地图,以便确定用于自主车辆的驾驶路径。
[0050]
如图3a-3b所示的模块被称为自主驾驶模块。根据一个实施例,这些模块可以经由消息化的监视系统与传感器系统115和控制系统111通信,用于在自主驾驶期间交换操作状态,这将在下面进一步详细描述。
[0051]
图4是示出根据一个实施例的用于自主驾驶的系统架构的框图。系统架构400可以表示如图3a和3b所示的自主驾驶系统的系统架构。参考图4,系统架构400包括但不限于应用层401、规划和控制(pnc)层402、感知层403、驱动器层404、固件层405和硬件层406。应用层401可以包括与自主驾驶车辆的用户或乘客交互的用户接口或配置应用,诸如例如与用户接口系统113相关联的功能。pnc层402可以包括至少规划模块305和控制模块306的功能。感知层403可以包括至少感知模块302的功能。在一个实施例中,存在包括预测模块303和/或决策模块304的功能的附加层。可替换地,这样的功能可以被包括在pnc层402和/或感知层403中。系统架构400还包括驱动器层404、固件层405和硬件层406。固件层405可以至少表示传感器系统115的功能,传感器系统115可以以现场可编程门阵列(fpga)的形式被实现。硬件层406可以表示自主驾驶车辆的硬件,诸如控制系统111。层401-403可以经由设备驱动器层404与固件层405和硬件层406通信。
[0052]
图5a是示出根据本发明一个实施例的传感器系统的示例的框图。参考图5a,传感器系统115包括多个传感器510和耦合到主机系统110的传感器单元500。主机系统110表示
如上所述的规划和控制系统,其可以包括如图3a和3b所示的至少一些模块。传感器单元500可以以fpga器件或asic(专用集成电路)器件的形式实现。在一个实施例中,传感器单元500,除其他以外,包括一个或多个传感器数据处理模块501(也简称为传感器处理模块)、数据传送模块502和传感器控制模块或逻辑503等。模块501-503可以经由传感器接口504与传感器510通信,并且经由主机接口505与主机系统110通信。可选地,内部或外部缓冲器506可以用于缓冲数据用于处理。
[0053]
在一个实施例中,对于接收路径或上游方向,传感器处理模块501被配置为经由传感器接口504从传感器接收传感器数据,并且处理传感器数据(例如,格式转换、错误检查),传感器数据可以被临时存储在缓冲器506中。数据传送模块502被配置为使用与主机接口505兼容的通信协议将经处理的数据传送到主机系统110。类似地,对于发送路径或下游方向,数据传送模块502被配置为从主机系统110接收数据或命令。然后,传感器处理模块501将数据处理为与对应的传感器兼容的格式。然后,将经处理的数据发送到传感器。
[0054]
在一个实施例中,传感器控制模块或逻辑503被配置为响应于经由主机接口505从主机系统(例如,感知模块302)接收的命令,控制传感器510的某些操作,诸如,例如捕获传感器数据的激活的定时。主机系统110可以配置传感器510以协作和/或同步的方式捕获传感器数据,使得传感器数据可以被用于感知在任何时间点处车辆周围的驾驶环境。
[0055]
传感器接口504可以包括以太网、usb(通用串行总线)、lte(长期演进)或蜂窝、wifi、gps、相机、can、串行(例如,通用异步接收器发送器或uart)、sim(订阅者识别模块)卡和其他通用输入/输出(gpio)接口中的一个或多个。主机接口505可以是任何高速或高带宽接口,诸如pcie(外围组件互连或高速pci)接口。传感器510可以包括在自主驾驶车辆中使用的各种传感器,诸如,例如相机、lidar设备、radar设备、gps接收器、imu、超声传感器、gnss(全球导航卫星系统)接收器、lte或蜂窝sim卡、车辆传感器(例如,油门、制动、转向传感器)和系统传感器(例如,温度、湿度、压力传感器)等。
[0056]
例如,相机可以经由以太网或gpio接口耦合。gps传感器可以经由usb或特定的gps接口耦合。车辆传感器可以通过can接口耦合。radar传感器或超声传感器可以经由gpio接口耦合。lidar设备可以经由以太网接口耦合。外部sim模块可以经由lte接口耦合。类似地,内部sim模块可以插入到传感器单元500的sim插口上。诸如uart的串行接口出于调试目的可以与控制台系统耦合。
[0057]
注意,传感器510可以是任何种类的传感器,并且由各个供应商或供货商提供。传感器处理模块501被配置为处理不同类型的传感器及其相应的数据格式和通信协议。根据一个实施例,传感器510中的每个与用于处理传感器数据并且在主机系统110和对应的传感器之间传送经处理的传感器数据的特定的通道相关联。每个通道包括特定的传感器处理模块和特定的数据传送模块,它们被配置或编程为处理对应的传感器数据和协议,如图5b所示。
[0058]
现在参考图5b,传感器处理模块501a-501c被具体配置为处理分别从传感器510a-510c获得的传感器数据。注意,传感器510a-510c可以是相同或不同类型的传感器。传感器处理模块501a-501c可以被配置(例如,软件可配置)为处理用于不同类型的传感器的不同传感器过程。例如,如果传感器510a是相机,则处理模块501a可以被配置为处理对表示由相机510a捕获的图像的特定的像素数据的像素处理操作。类似地,如果传感器510a是lidar设
备,则处理模块501a被配置为具体地处理lidar数据。也就是说,根据一个实施例,取决于特殊的传感器的特定的类型,其对应的处理模块可以被配置为使用与传感器数据的类型对应的特定的过程或方法处理对应的传感器数据。
[0059]
类似地,数据传送模块502a-502c可以被配置为在不同的模式下操作,因为不同类型的传感器数据可以具有不同的大小或灵敏度,这需要不同的速度或定时要求。根据一个实施例,数据传送模块502a-502c中的每个可以被配置为在低延迟模式、高带宽模式和存储器模式(也称为固定存储器模式)中的一个中操作。
[0060]
根据一个实施例,当在低延迟模式中操作时,数据传送模块(例如,数据传送模块502)被配置为在没有延迟或具有最小延迟的情况下尽快将从传感器接收到的传感器数据发送到主机系统。传感器数据中的一些在定时方面非常敏感,需要尽快处理。这种传感器数据的示例包括车辆状态,诸如车辆速度、加速度、转向角等。
[0061]
根据一个实施例,当在高带宽模式下操作时,数据传送模块(例如,数据传送模块502)被配置为累积从传感器接收的传感器数据达到预定量,但是仍然在数据传送模块和主机系统110之间的连接的带宽内。然后,将累积的传感器数据成批地传送到主机系统110,以使数据传送模块和主机系统110之间的连接的带宽最大。通常,高带宽模式用于产生大量传感器数据的传感器。这种传感器数据的示例包括相机像素数据。
[0062]
根据一个实施例,当在存储器模式中操作时,数据传送模块被配置为将从传感器接收的传感器数据直接写入到主机系统110的经映射的存储器的存储器位置,类似于共享存储器页。使用存储器模式传送的传感器数据的示例包括系统状态数据,诸如温度、风扇速度等。
[0063]
图6是示出根据一个实施例的用于自主驾驶的基于消息的监视系统的示例的框图。参考图6,监视系统600包括消息发布者和订阅者610、630,消息发布者和订阅者610、630经由基于消息的监视机制620彼此通信。涉及的组件或模块的每个可以是消息发布者、消息订阅者、或消息发布者和订阅者两者,例如,在由监视机制620维持的消息注册器633中注册其自身。
[0064]
发布者/订阅者610包括自主驾驶模块601、其他软件组件602(例如,操作系统、其他应用)和自主驾驶加速器603(例如,通用处理器或gpu)。自主驾驶模块601可以是如图3a-3b所示的模块中的任一个。自主驾驶加速器603可以是具体地被配置为执行特定的任务的fpga或asic,诸如运行用于对象检测或预测的神经网络模型的人工智能(ai)处理器。发布者/订阅者630包括传感器604、诸如can总线的车辆平台605、以及传感器处理模块606。传感器604可以是如图2所示的传感器中的任一个。传感器处理模块606可以是如图5a-5b所示的传感器单元中的任一个。
[0065]
发布者/订阅者610和630的每个可以在注册表633中注册为发布者和/或订阅者。基于消息的监视机制620包括一个或多个消息队列631,以存储由发布者发布和由订阅者订阅的消息。消息处理器632被配置为管理存储在消息队列631中的消息,包括向消息订阅者通知关于新发布的消息。根据一个实施例,基于消息的监视机制620可以以分布式方式实现。例如,它可以在传感器处理模块606内被实现以管理由传感器604发布/订阅的消息。
[0066]
图7是示出根据一个实施例的自主驾驶系统架构的框图。参考图7,系统架构700包括执行软件组件的中央处理单元(cpu)601(诸如通信地耦合到诸如传感器604a-604b的其
他组件的自主驱动模块601)、通过切换设备(例如,以太网交换机)的车辆平台/can总线605以及通过切换设备703(例如,pcie交换机)的gpu603。至少一个传感器处理模块606被定位在传感器604b和切换设备702之间。如图7所示,根据一个实施例,基于消息的监视机制/模块620a-620d以分布式方式设计和实现。
[0067]
例如,基于消息的监视模块620a负责处理由其客户端(诸如自主驾驶模块601)发布的消息。类似地,基于消息的监视模块620b-620d负责处理分别由它们的客户端604a和微控制器单元(mcu)704、gpu603和传感器604b发布的消息。在一个实施例中,当客户端601(例如,感知模块302)向传感器604b中的一个发布消息(例如,对传感器状态的查询)时,消息由监视模块620a处理并且存储在与监视模块620a相关联的消息队列或缓冲器中。由客户端601发布的消息可以是与作为发布者的客户端601兼容的格式。在由监视模块620a存储在消息队列中之前,消息可以被转换为与作为订阅者的客户端604b兼容的格式。可替换地,可以基于与监视模块620a相关联的订阅注册表发送消息,并且将该消息存储在与监视模块620d相关联的消息队列中。消息可以由监视模块620d转换为与订阅客户端604b兼容的格式。
[0068]
类似地,其他监视模块620b-620d以类似的方式操作,用于处理由它们相应的客户端或由远程客户端(例如,客户端601)发布的消息。在一个实施例中,所有自主驾驶模块601可以以通用格式发布和接收消息,而传感器604a-604b、can605和gpu 603可以具有不同的消息格式,因为它们可以由不同的提供商或制造商提供。监视模块620a-620d负责在它们的发布客户端和订阅客户端之间转换或转化消息,使得任何客户端可以简单地插入自主驾驶系统中并在其中播放。
[0069]
根据一个实施例,传感器处理模块可以表示图5a-5b所示的传感器单元中的任一个。监视模块620d可以在耦合到传感器604b的传感器接口与耦合到与切换装置702连接的总线接口之间实现。在一个实施例中,监视模块620b可以是可选的,其中监视模块620d负责处理由传感器604a发布和订阅的消息。类似地,监视模块620c可以是可选的,其中监视模块620d可以负责处理由gpu 603发布和订阅的消息。在一个实施例中,当传感器604a发布消息时,消息经由切换设备702和传感器处理模块606的总线接口被发送到监视模块620d。类似地,根据一个实施例,当gpu 603发布消息时,消息从gpu 603经由切换设备702-703被路由到传感器处理模块606的总线接口。在该示例中,监视模块620d负责将传感器604a-604b和gpu 603的不同消息格式转化为与自主驾驶模块601相关联的通用消息格式,反之亦然。在一个实施例中,每个监视模块维持特定的消息队列以存储用于其客户端中的每个的消息。
[0070]
在一个实施例中,消息可以与诸如相机、lidar设备、radar设备等传感器的操作状态有关,如图2所示。消息可以包括来自自主驾驶模块的查询,以查询具体传感器的状态。返回消息可以包括查询到的状态,诸如对应的传感器的错误代码。消息可以包括识别传感器的传感器id、识别具体错误或错误类型的错误代码、错误的级别(例如,信息、警告、慢速制动、紧急)以及错误发生时的时间戳。
[0071]
图8是示出根据一个实施例的用于监视自主驾驶操作的过程的示例的流程图。过程800可以由可以包括软件、硬件或其组合的处理逻辑执行。例如,过程800可以由传感器处理模块606执行。参考图8,在框801处,在传感器处理模块内维持消息队列,以存储由安装在adv上的一组传感器发布的消息。传感器处理模块包括耦合到传感器的传感器接口和耦合到总线的总线接口。在框802处,存储在消息队列中的消息由传感器处理模块管理,以允许
各种模块(例如,诸如感知模块302或规划模块305的自主驾驶模块)监视传感器的操作,诸如传感器的状态。响应于经由传感器接口从作为发布者的第一传感器接收的消息,在框803处,处理逻辑将第一格式的消息转换为第二格式的第二消息。在框804处,第二消息被存储在与传感器相关联的消息队列中。在框805处,向已经订阅由传感器发布的消息的第一模块通知关于消息的可用性。结果是,模块可以接收消息。
[0072]
注意,如上所示和所述的一些或所有组件可以用软件、硬件或其组合实现。例如,这些组件可以被实现为安装并存储在永久存储设备中的软件,该软件可以由处理器(未示出)加载并执行在存储器中以执行贯穿本申请所述的过程或操作。可替换地,这些组件可以被实现为编程或嵌入到专用硬件中的可执行代码,该专用硬件诸如集成电路(例如,专用ic或asic)、数字信号处理器(dsp)或现场可编程门阵列(fpga),该可执行代码可以经由对应的驱动器和/或来自应用的操作系统访问。此外,这些组件可以被实现为处理器或处理器内核中的特定硬件逻辑,作为软件组件经由一个或多个特定指令可访问的指令集的一部分。
[0073]
已经在对计算机存储器内的数据位的操作的算法和符号表示方面呈现了前述详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用来最有效地将他们的工作实质传达给本领域的其他技术人员的方式。算法在这里并且通常被认为是导致期望结果的自相容操作序列。这些操作是需要对物理量进行物理操纵的那些操作。
[0074]
然而,应当记住的是,所有这些和类似的术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便的标记。除非特别声明,否则从以上讨论中显而易见的是,应当理解的是,在整个说明书中,使用诸如所附权利要求书中所阐述的术语的讨论指的是计算机系统或类似电子计算设备的动作和处理,所述计算机系统或类似电子计算设备将计算机系统的寄存器和存储器内表示为物理(电子)量的数据操纵和变换成计算机系统存储器或寄存器或其它这样的信息存储、传输或显示设备内的类似地表示为物理量的其它数据。
[0075]
本公开的实施例还涉及用于执行本文的操作的装置。这种计算机程序存储在非暂时性计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储介质、光存储介质、闪存设备)。
[0076]
在前述附图中描述的过程或方法可以由包括硬件(例如,电路、专用逻辑等)、软件(例如,体现在非暂时性计算机可读介质上)或两者的组合的处理逻辑来执行。尽管以上在一些顺序操作方面描述了过程或方法,但是应当理解的是,可以以不同的顺序执行所述的一些操作。此外,一些操作可以并行地而不是顺序地执行。
[0077]
本公开的实施例不是参考任何特定编程语言描述的。将理解的是,可以使用各种编程语言实现如本文所述的本公开的实施例的教导。
[0078]
在前述说明书中,已经参考本公开的具体示例性实施例描述了本公开的实施例。显然,在不背离如所附权利要求书中所阐述的本公开的更宽的精神和范围的情况下,可以对其进行各种修改。因此,说明书和附图应被认为是说明性的而不是限制性的。

起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。

此文章来源于网络,如有侵权,请联系删除

tips