应用于自动驾驶平台的配置管理方法、装置及相关设备与流程

文档序号:32061002发布日期:2022-11-04 23:09阅读:29来源:国知局
应用于自动驾驶平台的配置管理方法、装置及相关设备与流程

1.本技术涉及自动驾驶技术领域,更具体地说,是涉及一种应用于自动驾驶平台的配置管理方法、装置及相关设备。


背景技术:

2.自动驾驶车辆平台具有庞大且复杂的软硬件综合体系,其中软件体系包括人工智能模型、自动驾驶框架等等,硬件体系则包含如摄像头、激光雷达在内的各种传感器以及自动驾驶平台主机等等。这些复杂的软硬件体系互相作用,共同使得自动驾驶可以精准平稳地运行。
3.由于整个系统的复杂性,自动驾驶平台拥有繁多且复杂的配置。在目前的实际应用中,需要对各个模块进行单独配置,如通过bash命令对某一模块进行配置,或通过修改某一模块的配置文件来更改该模块的配置。如此一来,导致各配置项难以统一配置、难以保留配置历史,不利于对各配置项的管理维护。


技术实现要素:

4.有鉴于此,本技术提供了一种应用于自动驾驶平台的配置管理方法、装置及相关设备,以实现对自动驾驶平台上各模块的统一配置管理。
5.为实现上述目的,本技术第一方面提供了一种应用于自动驾驶平台的配置管理方法,包括:
6.获取目标配置项和目标属性值;
7.获取对应于所述目标配置项的配置程序和配置规则,所述配置程序为预先设置好的、用于修改所述目标配置项的可执行程序;
8.基于所述配置规则判断所述目标属性值是否合法;
9.若是,利用所述配置程序将所述目标配置项的属性值设定为所述目标属性值,并根据所述目标配置项和所述目标属性值更新系统的配置文件,所述配置文件记载有各模块中的各配置项的属性值。
10.优选地,获取对应于所述目标配置项的配置程序和配置规则的过程,包括:
11.基于预设的配置树,获取对应于所述目标配置项的配置程序和配置规则;
12.所述配置树采用树形结构记载有各模块中的各配置项的配置程序和配置规则。
13.优选地,所述配置树还记载有各模块的配置信息;利用所述配置程序将所述目标配置项的属性值设定为所述目标属性值的过程,包括:
14.基于预设的配置树,获取对应于所述目标配置项的配置信息;
15.利用所述目标配置项及所述目标属性值,更新所述配置信息,得到目标配置信息;
16.基于所述目标配置信息,利用所述配置程序更新所述目标配置项所属的模块的各配置项的属性值。
17.优选地,获取目标配置项和目标属性值的过程,包括:
18.获取用户输入的配置命令语句,并对所述配置命令语句进行解析,得到目标配置项和目标属性值;
19.或者,
20.获取用户导入的目标配置文件,并对所述目标配置文件进行解析,得到目标配置项和目标属性值。
21.优选地,获取用户输入的配置命令语句之前,还包括:
22.基于用户输入的配置命令的片段,从预设的字典树中查找与所述片段匹配的候选配置命令,并展示所述候选配置命令,所述候选配置命令为完整的配置命令。
23.优选地,在获取用户输入的配置命令语句之后,还包括:
24.将用户输入的配置命令语句发送给服务器;
25.在根据所述目标配置项和所述目标属性值更新系统的配置文件之后,还包括:
26.导出更新后的配置文件,并将所述更新后的配置文件发送给服务器。
27.优选地,还包括:
28.获取用户输入的非配置命令语句,并对所述非配置命令语句进行解析,得到目标指令;
29.基于所述目标指令以及预设的黑名单,判断所述用户是否具有执行所述目标指令的权限;
30.若是,执行所述目标指令。
31.本技术第二方面提供了一种应用于自动驾驶平台的配置管理装置,包括:
32.命令获取单元,用于获取目标配置项和目标属性值;
33.实体获取单元,用于获取对应于所述目标配置项的配置程序和配置规则,所述配置程序为预先设置好的、用于修改所述目标配置项的可执行程序;
34.合法检查单元,用于基于所述配置规则判断所述目标属性值是否合法;
35.命令执行单元,用于当所述合法检查单元确定合法时,利用所述配置程序将所述目标配置项的属性值设定为所述目标属性值,并根据所述目标配置项和所述目标属性值更新系统的配置文件,所述配置文件记载有各模块中的各配置项的属性值。
36.本技术第三方面提供了一种应用于自动驾驶平台的配置管理设备,包括:存储器和处理器;
37.所述存储器,用于存储程序;
38.所述处理器,用于执行所述程序,实现上述的应用于自动驾驶平台的配置管理方法的各个步骤。
39.本技术第四方面提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述的应用于自动驾驶平台的配置管理方法的各个步骤。
40.经由上述的技术方案可知,本技术首先获取目标配置项和目标属性值。然后,获取对应于所述目标配置项的配置程序和配置规则,其中,所述配置程序为预先设置好的,可以理解的是,自动驾驶平台中的各模块中的每一配置项均对应有一配置程序,通过这些配置程序,可以对各模块中的各配置项进行配置,从而实现对各模块的统一配置。接着,基于所述配置规则判断所述目标属性值是否合法。当确定所述目标属性值合法时,利用所述配置程序将所述目标配置项的属性值设定为所述目标属性值。同时,根据所述目标配置项和所
述目标属性值更新系统的配置文件。其中,所述配置文件记载有各模块中的各配置项的属性值,配置文件的每一次更新可以形成一个新的版本,各版本的配置文件反映了配置历史,有利于对各配置项的管理维护。
附图说明
41.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
42.图1为本技术实施例公开的对于配置命令的处理方法的示意图;
43.图2为本技术实施例公开的应用于自动驾驶平台的配置管理方法的整体示意图;
44.图3为本技术实施例公开的配置树的示意图;
45.图4为本技术实施例公开的配置树的另一示意图;
46.图5为本技术实施例公开的对于非配置命令的处理方法的示意图;
47.图6为本技术实施例公开的应用于自动驾驶平台的配置管理装置的示意图;
48.图7为本技术实施例公开的应用于自动驾驶平台的配置管理设备的示意图。
具体实施方式
49.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
50.下面介绍本技术实施例提供的应用于自动驾驶平台的配置管理方法。请同时参阅图1和图2,本技术实施例提供的应用于自动驾驶平台的配置管理方法可以包括如下步骤:
51.步骤s101,获取目标配置项和目标属性值。
52.其中,目标配置项是待配置的配置项,如摄像头的角度、摄像头的拍摄像素等。目标属性值是对应于目标配置项的属性的值,如,对于摄像头的角度这一目标配置项,其目标属性值可以是具体的角度值;对于摄像头的拍摄像素这一目标配置项,其目标属性值可以是具体的像素值。
53.可以理解的是,自动假设平台中的每一模块可以对应有多个配置项,例如,对于摄像头模块,可以对应有角度、拍摄像素这些配置项;对于自动驾驶平台主机(模块),可以对应有接口ip、接口通信协议等配置项。
54.步骤s102,获取对应于目标配置项的配置程序和配置规则。
55.其中,该配置程序为预先设置好的、用于修改该目标配置项的可执行程序。示例性地,可以针对各个异构模块提供的配置入口,为每一模块编写相应的配置函数,以生成配置程序,该配置程序直接对相应的模块进行配置。
56.配置规则描述了配置项的属性值的格式、范围和默认值等信息。示例性地,对于摄像头的角度这一配置项,其配置规则可以包括:数值格式为整型,数值范围为0~180
°
,默认值为90
°

57.步骤s103,基于该配置规则判断目标属性值是否合法。若是,执行步骤s104。
58.步骤s104,利用该配置程序将目标配置项的属性值设定为目标属性值,并根据目标配置项和目标属性值更新系统的配置文件。
59.其中,该配置文件记载有自动驾驶平台中各模块的各配置项的属性值。亦即,自动驾驶平台中的所有模块的所有配置信息都记载在该配置文件中。可以理解的是,由于任何一个配置项的变更都会更新到该配置文件中,通过保留各个版本的配置文件,可以清楚地反映各配置项的历史变动情况。其中,配置文件的版本管理可以通过现有的版本管理工具来实现,本技术不对此进行限定。
60.本技术首先获取目标配置项和目标属性值。然后,获取对应于所述目标配置项的配置程序和配置规则,其中,所述配置程序为预先设置好的,可以理解的是,自动驾驶平台中的各模块中的每一配置项均对应有一配置程序,通过这些配置程序,可以对各模块中的各配置项进行配置,从而实现对各模块的统一配置。接着,基于所述配置规则判断所述目标属性值是否合法。当确定所述目标属性值合法时,利用所述配置程序将所述目标配置项的属性值设定为所述目标属性值。同时,根据所述目标配置项和所述目标属性值更新系统的配置文件。其中,所述配置文件记载有各模块中的各配置项的属性值,配置文件的每一次更新可以形成一个新的版本,各版本的配置文件反映了配置历史,有利于对各配置项的管理维护。
61.在本技术的一些实施例中,上述步骤s101获取目标配置项和目标属性值的过程,可以包括:
62.方式1:获取用户输入的配置命令语句,并对该配置命令语句进行解析,得到目标配置项和目标属性值。
63.或者,
64.方式2:获取用户导入的目标配置文件,并对该目标配置文件进行解析,得到目标配置项和目标属性值。
65.其中,对各模块中的各配置项的配置命令采用统一的命令格式,以便命令解析器能够正确识别各配置命令,同时,也降低用户的学习成本。
66.可以理解的是,目标配置文件可以包含对多个模块中的多个配置项的配置信息,因此,对目标配置文件进行解析后可以得到多组一一对应的目标配置项和目标属性值,后续可以逐一地对每个目标配置项进行合法性检查及配置。
67.需要注明的是,用户在输入配置命令语句或导入目标配置文件时,可以通过键盘直接接入车辆的自动驾驶平台,从而进行配置命令语句的输入,或者进行目标配置文件的导入。此外,用户还可以通过网络远程接入车辆的自动驾驶平台,示例性地,通过ssh(secure shell)远程接入车辆的自动驾驶平台,或者,通过网页端接入服务器,再由服务器连接车辆的自动驾驶平台。
68.在本技术的一些实施例中,在上述方式1获取用户输入的配置命令语句之前,还可以包括:
69.基于用户输入的配置命令的片段,从预设的字典树中查找与该片段匹配的候选配置命令,并展示该候选配置命令。其中,该候选配置命令为完整的配置命令。
70.具体地,字典树中记载有所有的配置命令,这些配置命令以字典顺序记录在字典
树中。通过字典树,可以快速地根据用户输入的配置命令片段,查找出与该片段匹配的候选配置命令,需要注明的是,对于某一配置命令片段,与其匹配的候选配置命令可以有不止一条,当在屏幕中展示这些候选配置命令时,可以根据相似程度对这些候选配置命令进行排序,使得用户可以更快地定位到目标配置命令。
71.在本技术的一些实施例中,在上述方式1获取用户输入的配置命令语句之后,还可以包括:
72.将用户输入的配置命令语句发送给服务器。
73.通过将用户输入的配置命令语句发送给服务器,可以在服务器中保留配置命令历史,以便于后续对此进行查询。
74.需要注明的是,除了向服务器备份配置命令语句之外,还可以在车辆的自动驾驶平台本地对所有的配置命令语句进行记录,以形成本地的配置命令语句历史数据备份。
75.在本技术的一些实施例中,上述步骤s102获取对应于目标配置项的配置程序和配置规则的过程,可以包括:
76.基于预设的配置树,获取对应于目标配置项的配置程序和配置规则。
77.其中,该配置树采用树形结构记载有各模块中的各配置项的配置程序和配置规则。示例性地,该配置树的结构可以是如图3所示,根节点的子节点为各个模块,每一模块的子节点为该模块的配置程序和配置规则。
78.通过以树形结构的方式来记录各模块中的各配置项的配置程序和配置规则,便于快速地定位到待配置的模块,并通过该模块链接到对应的配置程序和配置规则。
79.在本技术的一些实施例中,请参阅图4,该配置树还可以记载有各模块的配置信息。需要注明的是,该配置树存储于自动驾驶平台的共享内存(shared memory)中,因此,该配置树是全局的,可以推导出该配置信息也是全局的,这样可以使得不同用户之间对于自动驾驶系统中各模块的配置修改能够统一信息。
80.具体地,以网络模块为例,其配置信息(protobuf)的数据结构可以包括:
[0081][0082]
基于此,上述步骤s104利用配置程序将目标配置项的属性值设定为目标属性值的过程,可以包括:
[0083]
s1,基于预设的配置树,获取对应于目标配置项的配置信息。
[0084]
s2,利用目标配置项及目标属性值,更新该配置信息,得到目标配置信息。
[0085]
示例性地,对于上述的网络模块,假设用户输入配置命令语句,期望更改网卡ip,
那么,依据用户输入的网卡ip的目标属性值更新网络模块的配置信息。
[0086]
s3,基于目标配置信息,利用配置程序更新目标配置项所属的模块的各配置项的属性值。
[0087]
可以理解的是,该配置程序在执行具体的配置时,其执行粒度为模块层面,而不是配置项层面,即使仅仅更改模块下面某一配置项的属性值,也会对整个模块执行配置更新,其中,对于不需要进行实质性配置更改的其他配置项,可以采用这些配置项的原有的属性值进行配置项更新。
[0088]
在本技术的一些实施例中,在上述步骤s104根据目标配置项和目标属性值更新系统的配置文件之后,还可以包括:
[0089]
导出更新后的配置文件,并将该更新后的配置文件发送给服务器。
[0090]
由于配置文件包含了自动驾驶平台中所有模块的配置信息,通过将每次更新后的配置文件发送给服务器,可以形成历史记录,清楚地反映各配置项的历史变动情况。
[0091]
可以理解的是,由于所有模块的配置信息都能够很方便的通过配置文件进行导入与导出,因此我们通过配置文件能够很方便的进行自动驾驶系统整体配置的一键导出、备份、和历史管理等工作。所有的配置文件通过线上服务器进行管理,能够对于各个车辆的配置进行大规模统一管理操作,例如,将一辆车的配置拷贝至另一辆车,或者将某一车辆的配置还原至某一版本。
[0092]
上述各实施例对配置命令进行了描述,事实上,自动驾驶平台的命令除了配置命令还有非配置命令,如启动、关机、重启、软件更新、系统软件安装等等。在现有技术中,主要通过默认的bash命令行工具与自动驾驶主机进行交互。这就造成了命令权限难以管理等问题。如果在自动驾驶行进过程中执行一些较为危险的命令(例如关机),可能会对自动驾驶的车辆造成毁灭性的灾难。
[0093]
基于此,在本技术的一些实施例中,请同时参阅图2和图5,该应用于自动驾驶平台的配置管理方法还可以包括:
[0094]
步骤s105,获取用户输入的非配置命令语句,并对该非配置命令语句进行解析,得到目标指令。
[0095]
步骤s106,基于目标指令以及预设的黑名单,判断该用户是否具有执行该目标指令的权限。若是,执行步骤s107。
[0096]
步骤s107,执行该目标指令。
[0097]
其中,该预设的黑名单可以包括全时刻的黑名单和自动驾驶模式中的黑名单,其中,全时刻的黑名单在任何时间均有效,自动驾驶模式中的黑名单仅在车辆处于自动驾驶模式中时有效,定义了不同状态下的用户权限,以更精确地管理各种命令的权限,同时也阻止了用户通过bash等方式执行难以掌握的配置修改行为。
[0098]
下面对本技术实施例提供的应用于自动驾驶平台的配置管理装置进行描述,下文描述的应用于自动驾驶平台的配置管理装置与上文描述的应用于自动驾驶平台的配置管理方法可相互对应参照。
[0099]
请参见图6,本技术实施例提供的应用于自动驾驶平台的配置管理装置,可以包括:
[0100]
命令获取单元21,用于获取目标配置项和目标属性值;
[0101]
实体获取单元22,用于获取对应于所述目标配置项的配置程序和配置规则,所述配置程序为预先设置好的、用于修改所述目标配置项的可执行程序;
[0102]
合法检查单元23,用于基于所述配置规则判断所述目标属性值是否合法;
[0103]
命令执行单元24,用于当所述合法检查单元确定合法时,利用所述配置程序将所述目标配置项的属性值设定为所述目标属性值,并根据所述目标配置项和所述目标属性值更新系统的配置文件,所述配置文件记载有各模块中的各配置项的属性值。
[0104]
在本技术的一些实施例中,命令获取单元21获取目标配置项和目标属性值的过程,可以包括:
[0105]
获取用户输入的配置命令语句,并对所述配置命令语句进行解析,得到目标配置项和目标属性值;
[0106]
或者,
[0107]
获取用户导入的目标配置文件,并对所述目标配置文件进行解析,得到目标配置项和目标属性值。
[0108]
在本技术的一些实施例中,在命令获取单元21获取用户输入的配置命令语句之前,还可以包括:
[0109]
基于用户输入的配置命令的片段,从预设的字典树中查找与所述片段匹配的候选配置命令,并展示所述候选配置命令,所述候选配置命令为完整的配置命令。
[0110]
在本技术的一些实施例中,在命令获取单元21获取用户输入的配置命令语句之后,还可以包括:
[0111]
将用户输入的配置命令语句发送给服务器;
[0112]
在根据所述目标配置项和所述目标属性值更新系统的配置文件之后,还包括:
[0113]
导出更新后的配置文件,并将所述更新后的配置文件发送给服务器。
[0114]
在本技术的一些实施例中,实体获取单元22获取对应于所述目标配置项的配置程序和配置规则的过程,可以包括:
[0115]
基于预设的配置树,获取对应于所述目标配置项的配置程序和配置规则;
[0116]
所述配置树采用树形结构记载有各模块中的各配置项的配置程序和配置规则。
[0117]
在本技术的一些实施例中,所述配置树还记载有各模块的配置信息;命令执行单元24利用所述配置程序将所述目标配置项的属性值设定为所述目标属性值的过程,可以包括:
[0118]
基于预设的配置树,获取对应于所述目标配置项的配置信息;
[0119]
利用所述目标配置项及所述目标属性值,更新所述配置信息,得到目标配置信息;
[0120]
基于所述目标配置信息,利用所述配置程序更新所述目标配置项所属的模块的各配置项的属性值。
[0121]
在本技术的一些实施例中,所述应用于自动驾驶平台的配置管理装置还可以包括非配置命令处理单元,用于:
[0122]
获取用户输入的非配置命令语句,并对所述非配置命令语句进行解析,得到目标指令;
[0123]
基于所述目标指令以及预设的黑名单,判断所述用户是否具有执行所述目标指令的权限;
[0124]
若是,执行所述目标指令。
[0125]
本技术实施例提供的应用于自动驾驶平台的配置管理装置可安装于应用于自动驾驶平台的配置管理设备,如车载计算机等。可选的,图7示出了应用于自动驾驶平台的配置管理设备的硬件结构框图,参照图7,应用于自动驾驶平台的配置管理设备的硬件结构可以包括:至少一个处理器31,至少一个通信接口32,至少一个存储器33和至少一个通信总线34。
[0126]
在本技术实施例中,处理器31、通信接口32、存储器33、通信总线34的数量为至少一个,且处理器31、通信接口32、存储器33通过通信总线34完成相互间的通信;
[0127]
处理器31可能是一个中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本技术实施例的一个或多个集成电路等;
[0128]
存储器33可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory)等,例如至少一个磁盘存储器;
[0129]
其中,存储器33存储有程序,处理器31可调用存储器33存储的程序,所述程序用于:
[0130]
获取目标配置项和目标属性值;
[0131]
获取对应于所述目标配置项的配置程序和配置规则,所述配置程序为预先设置好的、用于修改所述目标配置项的可执行程序;
[0132]
基于所述配置规则判断所述目标属性值是否合法;
[0133]
若是,利用所述配置程序将所述目标配置项的属性值设定为所述目标属性值,并根据所述目标配置项和所述目标属性值更新系统的配置文件,所述配置文件记载有各模块中的各配置项的属性值。
[0134]
可选的,所述程序的细化功能和扩展功能可参照上文描述。
[0135]
本技术实施例还提供一种存储介质,该存储介质可存储有适于处理器执行的程序,所述程序用于:
[0136]
获取目标配置项和目标属性值;
[0137]
获取对应于所述目标配置项的配置程序和配置规则,所述配置程序为预先设置好的、用于修改所述目标配置项的可执行程序;
[0138]
基于所述配置规则判断所述目标属性值是否合法;
[0139]
若是,利用所述配置程序将所述目标配置项的属性值设定为所述目标属性值,并根据所述目标配置项和所述目标属性值更新系统的配置文件,所述配置文件记载有各模块中的各配置项的属性值。
[0140]
可选的,所述程序的细化功能和扩展功能可参照上文描述。
[0141]
综上所述:
[0142]
本技术首先获取目标配置项和目标属性值。然后,获取对应于所述目标配置项的配置程序和配置规则,其中,所述配置程序为预先设置好的,可以理解的是,自动驾驶平台中的各模块中的每一配置项均对应有一配置程序,通过这些配置程序,可以对各模块中的各配置项进行配置,从而实现对各模块的统一配置。接着,基于所述配置规则判断所述目标属性值是否合法。当确定所述目标属性值合法时,利用所述配置程序将所述目标配置项的
属性值设定为所述目标属性值。同时,根据所述目标配置项和所述目标属性值更新系统的配置文件。其中,所述配置文件记载有各模块中的各配置项的属性值,配置文件的每一次更新可以形成一个新的版本,各版本的配置文件反映了配置历史,有利于对各配置项的管理维护。
[0143]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0144]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
[0145]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1