一种自动驾驶中间件适配方法及机器可读存储介质组成比例

技术编号:36870515 阅读:12 留言:0更新日期:2023-03-15 19:48
本发明专利技术提供了一种自动驾驶中间件适配方法及机器可读存储介质,属于自动驾驶中间件技术领域。该自动驾驶中间件适配方法包括:利用预先定义的消息接口程序对不同的自动驾驶中间件生成相应的封装层代码,以便应用层软件通过一致的方式调用各个自动驾驶中间件,其中,所述消息接口程序中设有不同的固定模板,每一所述固定模板对应于一个所述自动驾驶中间件,每一所述固定模板用于引用其所对应的所述自动驾驶中间件生成的接口文件,并使用指定的名称空间指代不同名称空间的对象。本发明专利技术的自动驾驶中间件适配方法能够实现上层应用可以通过相同的文件名和名称空间访问各个自动驾驶中间件的不同名称空间的对象。中间件的不同名称空间的对象。中间件的不同名称空间的对象。

【技术实现步骤摘要】
一种自动驾驶中间件适配方法及机器可读存储介质


[0001]本专利技术涉及自动驾驶中间件
,特别是涉及一种自动驾驶中间件适配方法及机器可读存储介质。

技术介绍

[0002]自动驾驶中间件本质上是介于上层应用和底层系统之间的一套软件框架,是对软硬件资源进行管理、分配和调度的平台,充当着软件和硬件解耦的关键角色。它为上层的应用软件提供开发和运行所需的环境,方便开发者快速、高效、灵活地开发和集成自动驾驶软件。
[0003]目前主流的自动驾驶中间件有ROS,ROS2,cyber RT,Adaptive Autosar。ROS(Robot Operating System)的初衷是为了给科研机器人提供一个开发环境和相应的工具,自动驾驶本质上是机器人研究的一个应用领域,因为在实时性、可靠性、伸缩性、嵌入式移植等方面存在缺陷,一般只在产品原型快速开发的过程中通常会采用ROS。ROS2是ROS的升级版本,免费开源,目前量产应用较少,在安全支持、技术成熟度和实时域方面尚有欠缺。Cyber RT是百度Apollo开发的中间件,专为无人驾驶设计,基于无人驾驶业务现状深度定制,目前百度已将Cyber RT开源供自动驾驶团队使用。AutoSAR标准定义了模型、组件、接口的标准描述(ARXML文件),软件供应商根据AUTOSAR标准提供实现。Adaptive Autosar基于C++语言面向对象开发,提供对大规模编程与封装的良好支持。
[0004]在自动驾驶项目的不同开发阶段,可能会用到不同的中间件软件。在项目开始阶段,大都通过模拟器进行仿真测试和方案验证,这时候一般使用免费开源中间件ROS。随着项目进行,方案测试从模拟器到实车,考虑量产需求,中间件需要切换到可以达到量产要求的软件,所以中间件上层的应用软件如果能够适配不同中间件系统,将会节省上层应用软件的变动需求。
[0005]目前尚无能够适配不同中间件的软件适配层,需要根据不同的中间件,在版本迭代中做不同的适配需求,例如存在着上层应用无法对不同的中间件以相同的文件名和名称空间进行访问的问题。

技术实现思路

[0006]本专利技术第一方面的一个目的是要提供一种自动驾驶中间件适配方法,能够实现上层应用可以通过相同的文件名和名称空间访问各个自动驾驶中间件的不同名称空间的对象。
[0007]本专利技术的进一步的一个目的是要解决消息转换过程中不同的自动驾驶中间件获取的消息时间的代码不一致的问题。
[0008]本专利技术的另一个目的是要实现不同类型的自动驾驶中间件的接口的统一,从而可以应用到适配层代码框架中。
[0009]本专利技术第二方面的一个目的是要提供一种用于实现上述自动驾驶中间件适配方
法的机器可读存储介质。
[0010]特别地,本专利技术提供了一种自动驾驶中间件适配方法,包括:
[0011]利用预先定义的消息接口程序对不同的自动驾驶中间件生成相应的封装层代码,以便应用层软件通过一致的方式调用各个自动驾驶中间件,其中,
[0012]所述消息接口程序中设有不同的固定模板,每一所述固定模板对应于一个所述自动驾驶中间件,每一所述固定模板用于引用其所对应的所述自动驾驶中间件生成的接口文件,并使用指定的名称空间指代不同名称空间的对象。
[0013]可选地,自动驾驶中间件适配方法还包括:
[0014]利用预先定义的消息转换接口程序将不同的所述自动驾驶中间件的消息转换成中间件无关的消息。
[0015]可选地,利用预先定义的消息转换接口程序将不同的所述自动驾驶中间件的消息转换成中间件无关的消息的步骤包括:
[0016]获取不同的所述自动驾驶中间件的时间信息;其中,
[0017]所述消息转换接口程序用于根据所述自动驾驶中间件的目的对象是否包含目标字段返回不同的纳秒字段。
[0018]可选地,所述消息转换接口程序包括多个同名的模板方法,每一所述模板方法对应于一个所述自动驾驶中间件,且用于根据其所对应的所述自动驾驶中间件的所述目的对象所包含所述目标字段返回相应的纳秒字段。
[0019]可选地,自动驾驶中间件适配方法还包括:
[0020]接收自动驾驶应用系统中的业务模块的目标待发布消息,所述目标待发布消息的类型为中间件无关的消息;
[0021]将所述目标待发布消息通过所述消息转换接口程序转换成目标自动驾驶中间件的中间件目标待发布消息;
[0022]通过所述消息转换接口程序将所述中间件目标待发布消息转换成中间件无关的中间件无关目标待发布消息,以便订阅所述目标待发布消息的各个业务模型接收所述中间件无关目标待发布消息。
[0023]可选地,自动驾驶中间件适配方法还包括:
[0024]定义参数接口类,所述参数接口类用于提供设定自动驾驶的标定参数的接口、获取自动驾驶参数的接口和监听所述自动驾驶参数变化的接口;
[0025]各个自动驾驶中间件继承所述参数接口类,以便实现相应的接口功能。
[0026]可选地,自动驾驶中间件适配方法还包括:
[0027]定义日志接口类,所述日志接口类用于提供记录程序运行日志的接口;
[0028]各个自动驾驶中间件继承所述日志接口类,以便实现相应的接口功能。
[0029]可选地,自动驾驶中间件适配方法还包括:
[0030]定义时钟接口类,所述时钟接口类用于提供获取当前时间和时间转换的接口;
[0031]各个自动驾驶中间件继承所述时钟接口类,以便实现相应的接口功能。
[0032]可选地,定义通用的驱动接口类,用于驱动各个应用类按照预设频率执行,每一所述应用类对应一个自动驾驶的可执行程序;
[0033]各个自动驾驶中间件继承所述驱动接口类,以便实现相应的接口功能。
[0034]特别地,本专利技术还提供了一种机器可读存储介质,其上存储有机器可执行程序,所述机器可执行程序被处理器执行时实现根据上述任一项所述的自动驾驶中间件适配方法。
[0035]根据本专利技术的一个实施例,针对不同的自动驾驶中间件生成的接口文件的文件名不一致和对象名称空间不一致的问题,通过设置固定模板生成对应于不同的自动驾驶中间件封装层代码,使得上层应用可以通过相同的文件名和名称空间访问各个自动驾驶中间件的不同名称空间的对象。
[0036]根据本专利技术的一个实施例,通过根据自动驾驶中间件的目的对象是否包含目标字段返回不同的纳秒字段,可以解决消息转换过程中不同的自动驾驶中间件获取的消息时间的代码不一致的问题。
[0037]根据本专利技术的一个实施例,提供了各个自动驾驶中间件与自动驾驶应用系统之间的消息转换方式,通过将消息从特定的中间件消息类型与中间件无关的消息类型之间进行转换,基于发布订阅模式来进行消息的交互,能够使得消息在自动驾驶应用系统与自动驾驶中间件中实现消息的转换和传递。
[0038]根据本专利技术的一个实施例,针对某些自动驾驶中间件和其他中间件的API不一致的问题,定义了一套统一的接口,以实现不同类型的自动本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种自动驾驶中间件适配方法,其特征在于,包括:利用预先定义的消息接口程序对不同的自动驾驶中间件生成相应的封装层代码,以便应用层软件通过一致的方式调用各个自动驾驶中间件,其中,所述消息接口程序中设有不同的固定模板,每一所述固定模板对应于一个所述自动驾驶中间件,每一所述固定模板用于引用其所对应的所述自动驾驶中间件生成的接口文件,并使用指定的名称空间指代不同名称空间的对象。2.根据权利要求1所述的自动驾驶中间件适配方法,其特征在于,还包括:利用预先定义的消息转换接口程序将不同的所述自动驾驶中间件的消息转换成中间件无关的消息。3.根据权利要求2所述的自动驾驶中间件适配方法,其特征在于,利用预先定义的消息转换接口程序将不同的所述自动驾驶中间件的消息转换成中间件无关的消息的步骤包括:获取不同的所述自动驾驶中间件的时间信息;其中,所述消息转换接口程序用于根据所述自动驾驶中间件的目的对象是否包含目标字段返回不同的纳秒字段。4.根据权利要求3所述的自动驾驶中间件适配方法,其特征在于,所述消息转换接口程序包括多个同名的模板方法,每一所述模板方法对应于一个所述自动驾驶中间件,且用于根据其所对应的所述自动驾驶中间件的所述目的对象所包含所述目标字段返回相应的纳秒字段。5.根据权利要求2

4中任一项所述的自动驾驶中间件适配方法,其特征在于,还包括:接收自动驾驶应用系统中的业务模块的目标待发布消息,所述目标待发布消息的类型为中间件无关的消息;将所述目标待发布消...

【专利技术属性】
技术研发人员:蔡闻兵王小耘黄斌陈大宇
申请(专利权)人:智马达上海机器人科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1