CN116795393A - 自动驾驶车载系统的升级方法、装置和终端设备 - Google Patents

自动驾驶车载系统的升级方法、装置和终端设备 Download PDF

Info

Publication number
CN116795393A
CN116795393A CN202310393710.4A CN202310393710A CN116795393A CN 116795393 A CN116795393 A CN 116795393A CN 202310393710 A CN202310393710 A CN 202310393710A CN 116795393 A CN116795393 A CN 116795393A
Authority
CN
China
Prior art keywords
vehicle
upgrade
component
package
upgrading
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310393710.4A
Other languages
English (en)
Inventor
江卓燊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Weride Technology Co Ltd
Original Assignee
Guangzhou Weride Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Weride Technology Co Ltd filed Critical Guangzhou Weride Technology Co Ltd
Priority to CN202310393710.4A priority Critical patent/CN116795393A/zh
Publication of CN116795393A publication Critical patent/CN116795393A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供了一种自动驾驶车载系统的升级方法、装置和终端设备,获取至少一个需要升级的组件差分包;其中,组件差分包是基于终端设备中使用的当前车载系统与指定版本的车载系统的组件差异信息而确定的;将各组件差分包与对应的当前组件安装包进行组合,以形成各组件升级包;在自动驾驶车辆处于非自动驾驶状态,且各组件升级包验证通过时,将各组件升级包安装在第二系统分区或数据分区,以完成对车载系统升级。该升级方法只需要获取需要升级的差分包,避免重复下载冗余的数据;采用组件差分包和旧版组件安装包形成组件升级包来完成对组件的升级,不安装不需要的软件,避免造成软件之间的不兼容以及存储空间的浪费。

Description

自动驾驶车载系统的升级方法、装置和终端设备
技术领域
本申请涉及自动驾驶技术领域,具体涉及一种自动驾驶车载系统的升级方法、装置和终端设备。
背景技术
随着人工智能的发展,自动驾驶车辆应运而生,而自动驾驶车载系统是自动驾驶车辆运行的关键。自动驾驶车载系统常常会跟随项目的需求不断进行升级更新,目前通常是通过下载全量驾驶系统包进行安装。具体过程为:进入升级模式,获取当前车载系统所在的存储区,并把指定升级的车载系统拷贝至另外一个存储区,然后对指定升级的车载系统的安装包进行安装以完成车载系统的升级。该升级方式需要下载完整的升级包一方面会占用大量的网络带宽,在网络发生中断时会造成下载中的文件出错;另一方面自动驾驶车有很多种车型,每种车型的硬件配置都不尽相同,若简单的固定好将某些软件或者设备模块进行安装会造成软硬件不兼容的问题,同时将不需要的软件会全部安装到系统中,造成存储空间的浪费;并且在安装时出现某些异常则需要对所有组件进行版本回退。
发明内容
有鉴于此,本申请实施例中提供了一种自动驾驶车载系统的升级方法、装置和终端设备,以克服现有的车载系统升级方法占用大量带宽,下载文件容易出错,且造成资源浪费的问题。
第一方面,本申请实施例提供了一种自动驾驶车载系统的升级方法,所述方法应用于自动驾驶车辆的终端设备;所述方法包括:
获取至少一个需要升级的组件差分包;其中,所述组件差分包是基于所述终端设备中使用的当前车载系统与指定版本的车载系统的组件差异信息而确定的;
将各所述组件差分包与对应的当前组件安装包进行组合,以形成各组件升级包;
在所述自动驾驶车辆处于非自动驾驶状态,且各所述组件升级包验证通过时,将各所述组件升级包安装在第二系统分区或数据分区,以完成对车载系统升级;
其中,所述终端设备包括第一系统分区、第二系统分区和数据分区;第一系统分区用于安装所述当前车载系统。
第二方面,本申请实施例提供了一种自动驾驶车载系统的升级装置,所述装置应用于自动驾驶车辆的终端设备;所述装置包括:
差分包获取模块,用于获取至少一个需要升级的组件差分包;其中,所述组件差分包是基于所述终端设备中使用的当前车载系统与指定版本的车载系统的组件差异信息而确定的;
升级包形成模块,用于将各所述组件差分包与对应的当前组件安装包进行组合,以形成各组件升级包;
系统升级模块,用于在所述自动驾驶车辆处于非自动驾驶状态,且各所述组件升级包验证通过时,将各所述组件升级包安装在第二系统分区或数据分区,以完成对车载系统升级;
其中,所述终端设备包括第一系统分区、第二系统分区和数据分区;第一系统分区用于安装所述当前车载系统。
第三方面,本申请实施例提供了一种终端设备,包括:存储器;一个或多个处理器,与所述存储器耦接;一个或多个应用程序,其中,一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个应用程序配置用于执行上述第一方面提供的自动驾驶车载系统的升级方法。
第四方面,本申请实施例提供了一种计算机可读取存储介质,计算机可读取存储介质中存储有程序代码,程序代码可被处理器调用执行上述第一方面提供的自动驾驶车载系统的升级方法。
本申请实施例提供的自动驾驶车载系统的升级方法、装置和终端设备,首先获取至少一个需要升级的组件差分包;其中,组件差分包是基于终端设备中使用的当前车载系统与指定版本的车载系统的组件差异信息而确定的;然后将各组件差分包与对应的当前组件安装包进行组合,以形成各组件升级包;在自动驾驶车辆处于非自动驾驶状态,且各组件升级包验证通过时,将各组件升级包安装在第二系统分区或数据分区,以完成对车载系统升级;其中,终端设备包括第一系统分区、第二系统分区和数据分区;第一系统分区用于安装当前车载系统。
本申请实施例中的自动驾驶车载系统的升级方法将车载系统分成不同组件,在需要升级时按照需要生成对应的组件差分包,在将组件差分包当前组件安装包(升级时所有的当前车载系统的旧版组件安装包)组合形成各组件升级版,在安装组件升级版,从而完成对车载系统升级。该升级方法只需要获取需要升级的差分包,避免重复下载冗余的数据;采用组件差分包和旧版组件安装包形成组件升级包来完成对对应组件的升级,不安装不需要的软件,避免造成软件之间的不兼容以及存储空间的浪费。此外,采用结构化管理策略将终端设备分成第一系统分区、第二系统分区和数据分区,可以将各部分组件隔离出来,针对性进行系统升级,当升级时出现错误可以有效地定位出问题原因。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的自动驾驶车载系统的升级方法的应用场景示意图;
图2为本申请一个实施例提供的自动驾驶车载系统的升级方法的流程示意图;
图3为本申请一个实施例提供的终端设备结构化管理的示意图;
图4为本申请又一个实施例提供的自动驾驶车载系统的升级方法的流程示意图;
图5为本申请一个实施例中提供的自动驾驶车载系统的升级装置的结构示意图;
图6为本申请一个实施例中提供的终端设备的结构示意图;
图7为本申请一个实施例中提供的计算机可读存储介质的结构示意图。
具体实施方式
下面将对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了更详细说明本申请,下面结合附图对本申请提供的一种自动驾驶车载系统的升级方法、装置、终端设备和计算机可读存储介质,进行具体地描述。
请参考图1,图1示出了本申请实施例提供的自动驾驶车载系统的升级方法的应用场景的示意图,该应用场景包括本申请实施例提供的该应用场景包括本申请实施例提供的终端设备100和自动驾驶车辆200,其中自动驾驶车辆200可以与终端设备100进行通信,其中终端设备100可以是安装在自动驾驶车辆200上的车载终端设备。其中终端设备上安装有自动驾驶车载系统,该系统可以给出指令控制自动驾驶车辆200在路面上运行。例如自动驾驶车辆200在路面运行时可以实时采集路面情况以及自身运行情况(例如运行车速等),并将采集到的路面情况和自身运行情况发生至终端设备100,终端设备100对路面情况和车辆自身运行情况进行分析,从而给出指令来控制自动驾驶车辆200的运行,例如加速、减速、刹车、路线规划等。
首先,终端设备100可以是具有显示屏的各种电子设备,包括但不限于智能手机和计算机设备,其中计算机设备可以是台式计算机、便携式计算机、膝上型计算机、平板电脑等设备中的至少一种。其次,终端设备100可以泛指多个终端设备中的一个,本实施例仅以终端设备100来举例说明。本领域技术人员可以知晓,上述终端设备的数量可以更多或更少。比如上述终端设备可以仅为几个,或者上述终端设备为几十个或几百个,或者更多数量,本申请实施例对终端设备的数量和类型不加以限定。终端设备100可以用来执行本申请实施例中提供的一种自动驾驶车辆变加速度的确定方法。
在一种可选的实施方式中,该应用场景包括本申请实施例提供的终端设备100、自动驾驶车辆200之外,还可以包括服务器,服务器可以是云服务器,主要用于存储需要升级的组件差分包,以供终端设备下载。此外,服务器还可以接受组件升级版升级失败后形成的系统升级失败日志等。另外,服务器与终端设备之间设置有网络。网络用于在终端设备和服务器之间提供通信链路的介质。网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
基于此,本申请实施例中提供了一种自动驾驶车载系统的升级方法。请参阅图2,图2示出了本申请实施例提供的一种自动驾驶车载系统的升级方法的流程示意图,以该方法应用于图1中的终端设备为例进行说明,包括以下步骤:
步骤S110,获取至少一个需要升级的组件差分包。
其中,组件差分包是基于终端设备中使用的当前车载系统与指定版本的车载系统的组件差异信息而确定的。
在终端设备中安装并运行有当前车载系统,车载系统升级就是将当前车载系统升级到指定版本的车载系统。例如当前车载系统的版本是V1,指定版本的车载系统为V2,系统升级就是将V1升级到V2。
车载系统通常包含多个功能模块,那么可以按照功能模块可以将车载系统分成不同的组件,包括但不限于内核系统、设备模块、文件系统、车载软件和车载配置文件等;其中设备模块包括设备驱动内核模块(如网卡驱动i40e)、用于捕捉系统参数的自定义内核模块(如捕捉触发major page fault的函数或者对应的事件)等。
组件差分包是指当前车载系统与指定版本的车载系统的同一组件之间的差异信息而形成的文件包,当哪一个组件需要升级就对应形成对应的差分包。例如需要升级系统内核则就对应生成系统内核升级包。组件差分包可以包括但不限于内核系统差分包、设备模块差分包、文件系统差分包、车载软件差分包和车载配置文件差分包。
在一个实施例中,在执行步骤S110,获取至少一个需要升级的组件差分包,包括:采用断点续传技术来下载至少一个需要升级的组件差分包;其中,在下载组件差分包时,将文件大小大于或等于预设阈值的组件差分包拆分成多个子差分包分别进行下载。
由于当自动驾驶车辆在户外时,网络资源十分昂贵,缺信号会出现不稳定现象。如果需要对车载系统进行更新时,采用下载差分包的方式可以减少占用网络资源。并且当下载差分包时出现网络中断时,可以通过断点续传方式可以使被中断下载的包继续下载。
另外,对于文件量或数据过大的差分包可以将其先拆分成多个不同的子差分包分别进行下载,从而提高数据下载速率;当下载的差分包出现错误时,只需要重新下载对应的子差分包即可,操作非常方便也可以避免重复下载冗余的数据。具体过程为可以将文件大小大于或等于预设阈值(例如100MB)的组件差分包拆分成多个子差分包,并对这些子差分包进行编号,当下载全部块文件后再进行组合。
其中在对子差分包进行编号时可以采用组件差分包名称+特定序号方式,例如组件差分包名字为xxx.abc,其大小大于300MB小于400MB,则将其按顺序拆分成名称分别为xxx.abc.v0、xxx.abc.v1、xxx.abc.2、xxx.abc.v3的子差分包。采用该方式能快速识别出组件差分包拆分后形成的子差分包,一方面在出现下载错误时方便快速查找错误的子差分包;另一方面方便将形成子差分包组合形成组件差分包。
需要说明的是,需要升级的组件差分包的数量可以是一个或多个,具体根据实际需要升级的组件个数以及种类确定。
步骤S120,将各组件差分包与对应的当前组件安装包进行组合,以形成各组件升级包。
在获得组件差分包后,可以将其与对应的当前组件安装包进行组合,从而形成组件升级包,例如将系统内核差分包与当前系统内核安装包(即旧版系统内核安装包)进行组合形成系统内核升级包。其中当前组件安装包是指当前车载系统中使用的组件安装包(即旧版安装包)。
步骤S130,在自动驾驶车辆处于非自动驾驶状态,且各组件升级包验证通过时,将各组件升级包安装在第二系统分区或数据分区,以完成对车载系统升级。
其中,终端设备包括第一系统分区、第二系统分区和数据分区;第一系统分区用于安装当前车载系统。
在一个实施例中,系统升级方法还包括:验证各组件升级包的校验值;在校验值验证通过时,判定组件升级包验证通过。
具体来说,为了方便进行系统升级,提出一种新的结构化管理策略。请参照图3所示,可以将终端设备分成第一分区系统、第二分区系统和数据分区,其中第一系统分区又可以成为当前系统分区为“/”,主要用于安装或运行当前车载系统;而第二个系统分区为“/backup”,数据分区为“/data;其中第二系统分区、数据分区主要用来安装组件升级包,从而完成对车载系统升级。
当有多个组件升级包需要安装时,首先要验证组件升级包,只有验证通过的组件升级包才能安装。具体地可以验证组件升级包的校验值,从而来判断组件升级包是否通过验证。可选地,校验值可以是MD5、MD4、SHA中的一个或多个。采用上述验证方式可以避免组件差分包在下载时被篡改,从而确保组件升级包的正确性。
在组件升级包验证通过后,需要判断自动驾驶车辆是否处于自动驾驶状态,当其处于自动驾驶状态时说明当前车载系统正在运行,此时不能进行系统升级;当当前车载系统没有运行时,才能对其进行升级。因此,在本申请实施例中,在在组件升级包验证通过后以及自动驾驶车辆也处于非自动驾驶状态时,可以根据各组件升级版的功能或各自特性,将其分别安装的第二分区或数据分区。
采用该结构化管理策略可以将车载系统中各部分组件分开管理起来,并对其各自独立安装,即针对性进行系统升级,当升级时出现错误可以有效地定位出问题原因。
另外,在完成对车载系统升级后,可以运行升级完成后的车载系统,从而对其进行安全性验证。当安全性验证通过时,表示系统升级成功,反之则系统升级失败,则可以退回到旧版车载系统。
本申请实施例中的自动驾驶车载系统的升级方法,将车载系统分成不同组件,在需要升级时按照需要生成对应的组件差分包,在将组件差分包当前组件安装包(升级时所有的当前车载系统的旧版组件安装包)组合形成各组件升级版,在安装组件升级版,从而完成对车载系统升级。该升级方法只需要获取需要升级的差分包,避免重复下载冗余的数据;采用组件差分包和旧版组件安装包形成组件升级包来完成对对应组件的升级,不安装不需要的软件,避免造成软件之间的不兼容以及存储空间的浪费。此外,采用结构化管理策略将终端设备分成第一系统分区、第二系统分区和数据分区,可以将各部分组件隔离出来,针对性进行系统升级,当升级时出现错误可以有效地定位出问题原因。
进一步地,给出了几种不同组件升级的实施方式,详细描述如下:
第一种组件升级方式
在一个实施例中,组件升级包包括系统内核升级包和/或文件系统升级包;车载系统包括系统内核和/或文件系统;将各组件升级包安装在第二系统分区,以完成对车载系统升级,包括:将系统内核升级包和/或文件系统升级包分别安装在第二系统分区,以完成对系统内核和/或文件系统升级;
其中,先安装其中一个升级包,在安装完成后再安装剩余的另一个升级包。
具体而言,组件升级包可以包括系统内核升级包、文件系统升级包。当需要对内核系统、文件系统进行升级时,可以将内核系统和文件系统安装在第二系统分区。
需要说明的是系统内核升级包和文件系统升级包不能同时进行安装,需要等一个安装完成之后才能进行第二个安装。这两个升级包的安装顺序没有限制,可以选择任意一个升级包先行安装。如果只有其中一个需要升级,要就选择对应的组件升级包进行安装即可。
第二种组件升级方式
在一个实施例中,组件升级包包括设备模块升级包;车载系统包括设备模块;将各组件升级包安装在第二系统分区对车载系统升级,包括:在不需要对系统内核升级时,或在完成对系统内核升级时,将设备模块升级包安装在第二系统分区,以完成对设备模块升级。
具体地,设备模块升级需要在系统内核升级之后,因此只有在系统内核不需要升级或在系统内核升级完成后,才可以对设备模块进行升级。其中设备模块也是安装在第二系统分区。
需要说明的是,设备模块升级与文件系统升级没有顺序限制,因此对设备模块升级可以在文件系统升级之后或之前都可以。
第三种组件升级方式
在一个实施例中,组件升级包包括车载软件升级包;车载系统包括车载软件;将各组件升级包安装在数据分区,以完成对车载系统升级,包括:在不需要对系统内核、文件系统和设备模块进行升级时,或在需要对系统内核、文件系统和设备模块中的一个或多个进行升级,且完成相应的升级时,将车载软件升级包安装在数据分区,以完成对车载软件升级。
具体来说,车载系统升级需要在系统内核、文件系统和设备模块升级之后,那么只有在系统内核、文件系统和设备模块不需要升级,或者是在系统内核、文件系统和设备模块需要升级且在升级完成后,才可以对车载软件升级。
其中,在系统内核、文件系统和设备模块需要升级中可以包括其中一个、两个或三个都需要升级的情况,在每一种情况中只有当对应的需要升级的组件完成升级时,才可以对车载软件进行升级。车载系统是安装在数据分区。
另外,需要说明的是,通常情况下,各组件的升级是相互独立的,各自之间没有相互依赖关系,即各组件可以进行独立升级,例如系统内核升级,其他组件(例如文件系统、设备模块等)可以不升级也不需要进行重新安装;但是有一个例外,由于车载软件与文件系统有依赖关系,那么当只对文件系统进行升级时,在其升级完成后,即便车载软件不需要进行升级,那么也需要重新安装车载软件。
可选地,当只有文件系统需要升级时,完成对其进行升级后,从数据分区中获取备份的车载软件安装包(即当前车载软件安装包)安装在数据分区,以完成车载软件的安装。
第四种组件升级方式
在一个实施例中,组件升级包包括配置文件升级版包;车载系统包括配置文件;将各组件升级包安装在数据分区,以完成对车载系统升级,包括:在不需要对系统内核、文件系统、设备模块以及车载软件进行升级时,或在需要对系统内核、文件系统、设备模块以及车载软件中的一个或多个进行升级,且完成相应的升级时,将配置文件升级版包安装在数据分区;验证配置文件,在验证通过时,完成对配置文件升级。
具体地,配置文件升级需要在系统内核、文件系统、设备模块、车载软件升级之后,那么只有在系统内核、文件系统、设备模块、车载软件不需要升级,或者是在系统内核、文件系统、设备模块、车载软件需要升级且在升级完成后,才可以对车载软件升级。
其中,在系统内核、文件系统、设备模块以及车载软件需要升级中可以包括其中一个、两个、三个或四个都需要升级的情况,在每一种情况中只有当对应的需要升级的组件完成升级时,才可以对车载软件进行升级。配置文件系统是安装在数据分区。
另外,配置文件是指车载系统中需要用到的相关配置参数等。
采用上述的系统升级方式,可以根据需要升级的组件类型按照一定的规律进行升级,可以将各部分组件隔离出来,针对性进行系统升级,一方面大大提高了组件升级效率;另一方面可以在升级出现错误时有效地查找出升级失败的原因。
接下来,还给出了一种配置信息安装的实施方式,详细描述如下:
在一个实施例中,将各组件升级包安装在第二系统分区或数据分区之前,还包括:将当前车载系统中预先设置的配置信息在数据分区中进行备份;在需要对系统内核、文件系统、设备模块、车载软件以及配置文件中的一个或多个进行升级,且完成相应的升级时,将预先设置的配置信息发送至第二系统分区并进行安装。
其中,车载系统运行时常常会用到一些特定的个性化的配置信息(即预先设置的配置信息),例如车号、车型、城市、车唯一标识等,这些信息一般不需要升级。因此,在系统升级之前,可以将其先备份在数据分区。在完成对系统内核、文件系统、设备模块、车载软件以及配置文件升级后,将其发生至第二系统分区进行安装。
需要说明的是在系统内核、文件系统、设备模块、车载软件、配置文件需要升级中可以包括其中一个、两个、三个、四个和五个都需要升级的情况,在每一种情况中只有当对应的需要升级的组件完成升级时,将预先设置的配置信息发送至第二系统分区并进行安装。
接下来,还给出了几种停止系统升级的实施方式,详细描述如下:
第一种方式
在一个实施例中,系统升级方法还包括:在系统内核或设备模块的升级失败时,或各组件升级包验证未通过时,或在自动驾驶车辆处于自动驾驶状态时,终止对车载系统升级,并保存或上传系统升级失败日志。
具体地,在系统内核或设备模块的升级失败时说明指定升级的车载系统的核心组件出现问题,其他组件是无法完成升级的,此时可以终止对整个车载系统升级。
在升级包验证未通过说明组件升级包出现错误以及在自动驾驶车辆处于自动驾驶状态时都无法进行系统升级;此时可以终止对整个车载系统升级。
在终止系统升级时可以保持或上传系统升级失败日志,以便系统维护人员及时分析确定系统升级失败原因。可选地,上传日志时,检测当前网络状态,若能联网则上传到云服务器,若失败则保存到磁盘中。
另外,在自动驾驶过程中内核出现异常时,车载系统会发送终止此版本升级的信号到服务器(通常是云服务器)上,等待工程师进行修复,其他未升级的自动驾驶汽车会暂时升级此版本,若已升级的自动驾驶汽车会进行系统的回退。若升级完的系统在运行时出现异常,会首先回退到原来的系统版本,并重新进行此版本的升级,若再次升级完的系统启动时出现异常,将再次回退到原来的系统版本并发送终止此版本升级的信号到服务器上,等待工程师进行修复,其他未升级的自动驾驶汽车会暂时升级此版本,若已升级的自动驾驶汽车会进行系统的回退。
第二种方式
在一个实施例中,系统升级方法还包括:
在文件系统升级失败时,则退回至当前车载系统中的当前文件系统;和/或在车载软件升级失败时,则退回至当前车载系统中的当前车载软件;和/或在配置文件升级失败时,则退回至当前车载系统中的当前配置文件。
具体来说,在文件系统、车载软件和配置文件中任一个或几个升级失败时,可以退回当前文件系统(即旧版文件系统)、当前车载软件(即旧版车载软件)和当前配置文件(即旧版配置文件)。
可选地,退回的方法可以是采用备份的当前文件系统安装包、当前车载软件安装包和当前配置文件安装包来在第二系统分区进行安装,从而达到退回到退回当前文件系统、当前车载软件和当前配置文件的目的。
退回的方法也可以是退回到第一系统分区进行运行,由于在第一系统分区中运行有当前车载系统,当前车载系统中运行有当前文件系统、当前车载软件和当前配置文件,那么退回到第一系统分区即可完成退回到当前文件系统、当前车载软件和当前配置文件。
采用上述的方式在某一个或几个组件升级失败时,将升级失败组件退回到当前版本或旧版本,以方便其后续可以升级的组件继续完成相关升级,避免了因一个组件升级失败导致其他组件都无法进行升级。
在一个实施例中,系统升级方法还包括:在文件系统升级失败时,保存或上传文件系统升级失败日志;和/或在车载软件升级失败时,保存或上传车载软件升级失败日志;和/或在配置文件升级失败时,保存或上传配置文件升级失败日志。
具体地,在文件系统、车载软件和配置文件中任一个或几个升级失败时,还可以保存或上传其各组件(例如文件系统、车载软件和配置文件)升级失败日志,以便系统维护人员及时分析确定各组件(例如文件系统、车载软件和配置文件)升级失败原因。可选地,上传日志时,检测当前网络状态,若能联网则上传到云服务器,若失败则保存到磁盘中。
采用上述的方式在某一个或几个组件升级失败时,保持或上传系统升级失败日志,以便系统维护人员及时分析确定系统升级失败原因。
在一个实施例中,系统升级方法还包括:在退回至当前车载系统中的当前文件系统后,且需要对车载软件进行升级时,将车载软件升级包安装在数据分区,以完成对车载软件升级。
具体而言,在文件系统升级失败时,则退回至当前车载系统中的当前文件系统;此时若车载软件需要升级,也可以对车载软件进行升级。具体过程为:在退回至当前车载系统中的当前文件系统后,将车载软件升级包安装在数据分区,以完成对车载软件升级。
采用上述的方式在文件系统升级失败时,将文件系统退回到当前版本或旧版本,以方便其后续车载软件继续完成相关升级,避免了因文件系统升级失败导致车载软件无法进行升级。
在一个实施例中,系统升级方法还包括:在退回至当前车载系统中的当前车载软件时,则退回至当前车载系统中的当前配置文件。
具体来说,在车载软件升级失败时,则退回至当前车载系统中的当前车载软件;此时即便需要对配置文件需要升级,也无法对配置文件进行升级,因此需要退回到当前车载系统中的当前配置文件(即旧版配置文件)。可选地,退回到当前车载系统中的当前配置文件可以是采用备份的当前配置文件安装包来在第二系统分区进行安装,从而达到退回当前配置文件的目的。
退回的方法也可以是退回到第一系统分区进行运行,由于在第一系统分区中运行有当前配置文件,那么退回到第一系统分区即可完成退回到当前配置文件。
为了便于理解本申请实施例中提供的自动驾驶车载系统的升级方法,给出了一个具体的实施例。请参照图4所示,自动驾驶车载系统的升级方法包括以下步骤:
S1:启动车载系统;
S2:下载各种需要升级的差分包(即组件差分包)并备份车载配置(即预先设置的配置信息);其中在下载差分包时若某组件差分包大于100MB时,对这些差分包进行拆分成不大于100MB的块文件,并以编号为后缀进行记录,当下载完后再拼接再一起;
S3:检查是否为自动驾驶状态;
S4:若不是则组合各种需要升级的升级包,对这些升级包MD5进行验证;
S5:检查是否需要对系统内核进行升级。若不需要升级则继续S7;否则将新版本内核安装到第二个系统分区。若升级成功则设置第二个系统分区作为启动项并继续S7,否则执行S15;
S6:检查是否需要对设备模进行升级,需要则对设备模块进行升级,若升级成功则继续S7,否则执行S15;
S7:检查是否需要对文件系统进行升级。若不需要升级则继续第S9;否则将新版本的文件系统安装到第二个系统分区。若升级成功则继续第S9,否则继续S8;
S8:安装旧版本的文件系统并上传升级失败日志,并继续S9;
S9:检查是否需要对车载软件进行升级。若不需要升级则继续S11步;否则将新版本的车载软件安装到数据分区。若升级成功则继续S11,否则继续第S10;
S10:安装旧版本的车载软件并上传升级失败日志,并继续S12;
S11:升级车载配置文件并验证配置正确性。若升级成功则继续S13,否则继续S12;
S12:安装旧版本的车载配置文件。然后继续S13;
S13:运行升级完的车载系统并进行安全性验证。若升级成功则继续S14步,否则继续S15;
S14:升级完成;
S15:升级异常,需要回退旧版本的系统和车载软件,并上传升级失败日志;其中上传日志时,检测当前网络状态,若能联网则上传到云服务器,若失败则保存到磁盘中。
应该理解的是,虽然图2以及图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且图2以及图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
上述本申请公开的实施例中详细描述了一种自动驾驶车载系统的升级方法,对于本申请公开的上述方法可采用多种形式的设备实现,因此本申请还公开了对应上述方法的自动驾驶车载系统的升级装置,下面给出具体的实施例进行详细说明。
请参阅图5,为本申请实施例公开的一种自动驾驶车载系统的升级装置,装置应用于自动驾驶车辆的终端设备;装置包括:
差分包获取模块510,用于获取至少一个需要升级的组件差分包;其中,组件差分包是基于终端设备中使用的当前车载系统与指定版本的车载系统的组件差异信息而确定的;
升级包形成模块520,用于将各组件差分包与对应的当前组件安装包进行组合,以形成各组件升级包;
系统升级模块530,用于在自动驾驶车辆处于非自动驾驶状态,且各组件升级包验证通过时,将各组件升级包安装在第二系统分区或数据分区,以完成对车载系统升级;其中,终端设备包括第一系统分区、第二系统分区和数据分区;第一系统分区用于安装当前车载系统。
在一个实施例中,差分包获取模块510,用于采用断点续传技术来下载至少一个需要升级的组件差分包;其中,在下载组件差分包时,将文件大小大于或等于预设阈值的组件差分包拆分成多个子差分包分别进行下载。
在一个实施例中,装置还包括:验证模块,用于验证各组件升级包的校验值;在校验值验证通过时,判定组件升级包验证通过。
在一个实施例中,组件升级包包括系统内核升级包和/或文件系统升级包;车载系统包括系统内核和/或文件系统;系统升级模块530,用于将系统内核升级包和/或文件系统升级包分别安装在第二系统分区,以完成对系统内核和/或文件系统升级;其中,当系统内核升级包和文件系统升级包都需要进行安装时,先安装其中一个升级包,在安装完成后再安装剩余的另一个升级包。
在一个实施例中,组件升级包包括设备模块升级包;车载系统包括设备模块;系统升级模块530,用于在不需要对系统内核升级时,或在完成对系统内核升级时,将设备模块升级包安装在第二系统分区,以完成对设备模块升级。
在一个实施例中,组件升级包包括车载软件升级包;车载系统包括车载软件;系统升级模块530,用于在不需要对系统内核、文件系统和设备模块进行升级时,或在需要对系统内核、文件系统和设备模块中的一个或多个进行升级,且完成相应的升级时,将车载软件升级包安装在数据分区,以完成对车载软件升级。
在一个实施例中,组件升级包包括配置文件升级版包;车载系统包括配置文件;系统升级模块530,用于在不需要对系统内核、文件系统、设备模块以及车载软件进行升级时,或在需要对系统内核、文件系统、设备模块以及车载软件中的一个或多个进行升级,且完成相应的升级时,将配置文件升级版包安装在数据分区;验证配置文件,在验证通过时,完成对配置文件升级。
在一个实施例中,装置还包括:配置信息安装模块,用于将当前车载系统中预先设置的配置信息在数据分区中进行备份;在需要对系统内核、文件系统、设备模块、车载软件以及配置文件中的一个或多个进升级,且完成相应的升级时,将预先设置的配置信息发送至第二系统分区并进行安装。
在一个实施例中,装置还包括:终止升级模块,用于在系统内核或设备模块的升级失败时,或各组件升级包验证未通过时,或在自动驾驶车辆处于自动驾驶状态时,终止对车载系统升级,并保存或上传系统升级失败日志。
在一个实施例中,装置还包括:系统退回模块,用于在文件系统升级失败时,则退回至当前车载系统中的当前文件系统;和/或在车载软件升级失败时,则退回至当前车载系统中的当前车载软件;和/或在配置文件升级失败时,则退回至当前车载系统中的当前配置文件。
在一个实施例中,装置还包括:日志存储模块,用于在文件系统升级失败时,保存或上传文件系统升级失败日志;和/或在车载软件升级失败时,保存或上传车载软件升级失败日志;和/或在配置文件升级失败时,保存或上传配置文件升级失败日志。
在一个实施例中,系统升级模块530,用于在退回至当前车载系统中的当前文件系统,且需要对车载软件进行升级时,将车载软件升级包安装在数据分区,以完成对车载软件升级。
在一个实施例中,装置法还包括:配置文件退回模块,用于在退回至当前车载系统中的当前车载软件时,则退回至当前车载系统中的当前配置文件。
关于自动驾驶车载系统的升级装置的具体限定可以参见上文中对于方法的限定,在此不再赘述。上述装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于终端设备中的处理器中,也可以以软件形式存储于终端设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
请参考图5,图5其示出了本申请实施例提供的一种终端设备的结构框图。该终端设备50可以是计算机设备。本申请中的终端设备50可以包括一个或多个如下部件:处理器52、存储器54以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器54中并被配置为由一个或多个处理器52执行,一个或多个应用程序配置用于执行上述应用于自动驾驶车载系统的升级方法实施例中所描述的方法。
处理器52可以包括一个或者多个处理核。处理器52利用各种接口和线路连接整个终端设备50内的各个部分,通过运行或执行存储在存储器54内的指令、程序、代码集或指令集,以及调用存储在存储器54内的数据,执行终端设备50的各种功能和处理数据。可选地,处理器52可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器52可集成中央处理器(Central ProcessingUnit,CPU)、图形处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器52中,单独通过一块通信芯片进行实现。
存储器54可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器54可用于存储指令、程序、代码、代码集或指令集。存储器54可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端设备50在使用中所创建的数据等。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端设备的限定,具体的终端设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
综上,本申请实施例提供的终端设备用于实现前述方法实施例中相应的自动驾驶车载系统的升级方法,并具有相应的方法实施例的有益效果,在此不再赘述。
请参阅图6,其示出了本申请实施例提供的一种计算机可读取存储介质的结构框图。该计算机可读取存储介质60中存储有程序代码,程序代码可被处理器调用执行上述自动驾驶车载系统的升级方法实施例中所描述的方法。
计算机可读取存储介质60可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读取存储介质60包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读取存储介质60具有执行上述方法中的任何方法步骤的程序代码62的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码62可以例如以适当形式进行压缩。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (16)

1.一种自动驾驶车载系统的升级方法,其特征在于,所述方法应用于自动驾驶车辆的终端设备;所述方法包括:
获取至少一个需要升级的组件差分包;其中,所述组件差分包是基于所述终端设备中使用的当前车载系统与指定版本的车载系统的组件差异信息而确定的;
将各所述组件差分包与对应的当前组件安装包进行组合,以形成各组件升级包;
在所述自动驾驶车辆处于非自动驾驶状态,且各所述组件升级包验证通过时,将各所述组件升级包安装在第二系统分区或数据分区,以完成对车载系统升级;
其中,所述终端设备包括第一系统分区、第二系统分区和数据分区;第一系统分区用于安装所述当前车载系统。
2.根据权利要求1所述的方法,其特征在于,所述获取至少一个需要升级的组件差分包,包括:
采用断点续传技术来下载至少一个需要升级的组件差分包;其中,在下载组件差分包时,将文件大小大于或等于预设阈值的组件差分包拆分成多个子差分包分别进行下载。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
验证各所述组件升级包的校验值;
在所述校验值验证通过时,判定所述组件升级包验证通过。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述组件升级包包括系统内核升级包和/或文件系统升级包;所述车载系统包括系统内核和/或文件系统;所述将各所述组件升级包安装在第二系统分区,以完成对车载系统升级,包括:
将所述系统内核升级包和/或文件系统升级包分别安装在所述第二系统分区,以完成对所述系统内核和/或文件系统升级;
其中,当所述系统内核升级包和所述文件系统升级包都需要进行安装时,先安装其中一个升级包,在安装完成后再安装剩余的另一个升级包。
5.根据权利要求4所述的方法,其特征在于,所述组件升级包包括设备模块升级包;所述车载系统包括设备模块;所述将各所述组件升级包安装在第二系统分区对车载系统升级,包括:
在不需要对所述系统内核升级时,或在完成对所述系统内核升级时,将所述设备模块升级包安装在所述第二系统分区,以完成对所述设备模块升级。
6.根据权利要求5所述的方法,其特征在于,所述组件升级包包括车载软件升级包;所述车载系统包括车载软件;将各所述组件升级包安装在数据分区,以完成对车载系统升级,包括:
在不需要对所述系统内核、所述文件系统和所述设备模块进行升级时,或在需要对所述系统内核、所述文件系统和所述设备模块中的一个或多个进行升级,且完成相应的升级时,将所述车载软件升级包安装在所述数据分区,以完成对所述车载软件升级。
7.根据权利要求6所述的方法,其特征在于,所述组件升级包包括配置文件升级版包;所述车载系统包括配置文件;将各所述组件升级包安装在数据分区,以完成对车载系统升级,包括:
在不需要对所述系统内核、所述文件系统、所述设备模块以及所述车载软件进行升级时,或在需要对所述系统内核、所述文件系统、所述设备模块以及所述车载软件中的一个或多个进行升级,且完成相应的升级时,将所述配置文件升级版包安装在所述数据分区;
验证配置文件,在验证通过时,完成对所述配置文件升级。
8.根据权利要求6所述的方法,其特征在于,所述将各所述组件升级包安装在第二系统分区或数据分区之前,还包括:
将当前车载系统中预先设置的配置信息在数据分区中进行备份;
在需要对系统内核、文件系统、设备模块、车载软件以及配置文件中的一个或多个进行升级,且完成相应的升级时,将所述预先设置的配置信息发送至所述第二系统分区并进行安装。
9.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在所述系统内核或设备模块的升级失败时,或各所述组件升级包验证未通过时,或在所述自动驾驶车辆处于自动驾驶状态时,终止对车载系统升级,并保存或上传系统升级失败日志。
10.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在所述文件系统升级失败时,则退回至当前车载系统中的当前文件系统;
和/或
在所述车载软件升级失败时,则退回至当前车载系统中的当前车载软件;
和/或
在所述配置文件升级失败时,则退回至当前车载系统中的当前配置文件。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
在所述文件系统升级失败时,保存或上传文件系统升级失败日志;
和/或
在所述车载软件升级失败时,保存或上传车载软件升级失败日志;
和/或
在所述配置文件升级失败时,保存或上传配置文件升级失败日志。
12.根据权利要求10所述的方法,其特征在于,所述方法还包括:
在退回至当前车载系统中的当前文件系统,且需要对车载软件进行升级时,将所述车载软件升级包安装在所述数据分区,以完成对所述车载软件升级。
13.根据权利要求10所述的方法,其特征在于,所述方法还包括:
在退回至当前车载系统中的当前车载软件时,则退回至当前车载系统中的当前配置文件。
14.一种自动驾驶车载系统的升级装置,其特征在于,所述装置应用于自动驾驶车辆的终端设备;所述装置包括:
差分包获取模块,用于获取至少一个需要升级的组件差分包;其中,所述组件差分包是基于所述终端设备中使用的当前车载系统与指定版本的车载系统的组件差异信息而确定的;
升级包形成模块,用于将各所述组件差分包与对应的当前组件安装包进行组合,以形成各组件升级包;
系统升级模块,用于在所述自动驾驶车辆处于非自动驾驶状态,且各所述组件升级包验证通过时,将各所述组件升级包安装在第二系统分区或数据分区,以完成对车载系统升级;
其中,所述终端设备包括第一系统分区、第二系统分区和数据分区;第一系统分区用于安装所述当前车载系统。
15.一种自动驾驶车辆的终端设备,其特征在于,包括:
存储器;一个或多个处理器,与所述存储器耦接;一个或多个应用程序,其中,一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个应用程序配置用于执行如权利要求1-13任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-13任一项所述的方法。
CN202310393710.4A 2023-04-12 2023-04-12 自动驾驶车载系统的升级方法、装置和终端设备 Pending CN116795393A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310393710.4A CN116795393A (zh) 2023-04-12 2023-04-12 自动驾驶车载系统的升级方法、装置和终端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310393710.4A CN116795393A (zh) 2023-04-12 2023-04-12 自动驾驶车载系统的升级方法、装置和终端设备

Publications (1)

Publication Number Publication Date
CN116795393A true CN116795393A (zh) 2023-09-22

Family

ID=88038794

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310393710.4A Pending CN116795393A (zh) 2023-04-12 2023-04-12 自动驾驶车载系统的升级方法、装置和终端设备

Country Status (1)

Country Link
CN (1) CN116795393A (zh)

Similar Documents

Publication Publication Date Title
JP7407261B2 (ja) 車両ecuソフトウェアのためのソフトウェアデルタ更新の構築およびツールチェーンに基づく異常検出
US10599420B2 (en) Updating a controller unit in a vehicle
CN102147747B (zh) 增强的升级路径的系统和方法
CN107733985B (zh) 一种云计算系统功能组件部署方法及装置
US8910145B2 (en) Method and device for installing/uninstalling software modules, with centralized resolution of constraints, in aircraft equipment items
CN110442041B (zh) 一种基于异构云计算框架的仿真平台构建方法及仿真系统
EP3405923B1 (en) Updating a controller unit in a vehicle
CN111104148A (zh) 集成有Linux和android两系统的芯片平台的升级方法、系统及可读存储介质
CN112015448A (zh) 一种基于空中下载技术的系统升级方法及装置
CN113238774A (zh) 车载迎宾动画更新方法、装置、车载终端及存储介质
CN116028092A (zh) 汽车ota升级任务熔断方法、装置、设备及存储介质
CN112015489A (zh) 一种车载软件的管理方法、装置、存储介质及系统
CN113687779A (zh) 数据迁移方法、装置、电子设备及可读存储介质
CN116795393A (zh) 自动驾驶车载系统的升级方法、装置和终端设备
CN113835723A (zh) 一种用于车辆电子控制单元的片上系统、升级系统及方法
US20220391192A1 (en) Ota master, center, system, method, non-transitory storage medium, and vehicle
CN116126710A (zh) 一种车载软件仿真方法、装置、设备及介质
Coe et al. Virtualized in situ software update verification: verification of over-the-air automotive software updates
CN114003250A (zh) 一种软件部署方法及装置
CN110417736B (zh) 银行跨隔离区软件发布方法、装置及计算机可读存储介质
JP2023531701A (ja) 効率的コントローラデータ生成および抽出
CN111158705A (zh) 行车软件的安装方法、装置及存储介质
KR102563562B1 (ko) 오토사 어댑티브 플랫폼에서 다이나믹 소프트웨어 설치를 위한 시스템 및 방법
US20220222172A1 (en) Method for validating software functions in a driver assistance system for motor vehicles
CN117435299A (zh) 一种arm架构容器云平台迁移方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination