CN117724693B - 自动驾驶软件的开发方法、系统、计算机设备及存储介质 - Google Patents

自动驾驶软件的开发方法、系统、计算机设备及存储介质 Download PDF

Info

Publication number
CN117724693B
CN117724693B CN202410174483.0A CN202410174483A CN117724693B CN 117724693 B CN117724693 B CN 117724693B CN 202410174483 A CN202410174483 A CN 202410174483A CN 117724693 B CN117724693 B CN 117724693B
Authority
CN
China
Prior art keywords
software
plug
client
target
service
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.)
Active
Application number
CN202410174483.0A
Other languages
English (en)
Other versions
CN117724693A (zh
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.)
Shenzhen Haixing Zhijia Technology Co Ltd
Original Assignee
Shenzhen Haixing Zhijia 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 Shenzhen Haixing Zhijia Technology Co Ltd filed Critical Shenzhen Haixing Zhijia Technology Co Ltd
Priority to CN202410174483.0A priority Critical patent/CN117724693B/zh
Publication of CN117724693A publication Critical patent/CN117724693A/zh
Application granted granted Critical
Publication of CN117724693B publication Critical patent/CN117724693B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明涉及自动驾驶技术领域,公开了自动驾驶软件的开发方法、系统、计算机设备及存储介质,本发明通过开发者端根据目标自动驾驶软件的传感器设计方案和作业场景设计方案,确定目标自动驾驶软件的算法服务插件和作业任务插件,将不同车型不同作业场景动态组合,得到与目标自动驾驶软件相对应的应用软件,并将应用软件部署在开发者端的公网,向客户端推送客户端升级任务,以使客户端在接收到客户端升级任务后,基于部署在公网的应用软件得到满足具体设计方案的目标自动驾驶软件,满足了客户不断变化的需求,实现了多种作业场景的软件交付,且开发部署流程更加方便,使开发人员可以专注于业务开发和性能提升,快速完成项目交付。

Description

自动驾驶软件的开发方法、系统、计算机设备及存储介质
技术领域
本发明涉及自动驾驶技术领域,具体涉及自动驾驶软件的开发方法、系统、计算机设备及存储介质。
背景技术
云原生架构(Cloud-Native Architecture)是一种基于云计算的应用程序架构和开发方法论,旨在充分发挥云计算平台的优势,提高应用程序的可伸缩性、弹性和可靠性。它强调将应用程序设计为微服务、采用容器化部署、自动化管理和持续交付,以实现快速迭代、高效部署和可靠运行。
当前自驾系统在架构设计中已经采用微服务化和容器化的思路,降低了定位、感知和规控各个模块之间的耦合度,但在整体架构方案设计中扩展性不足,无法动态满足多车型多场景的交付,且车端自驾系统单实例的部署模式也无法满足自动驾驶高安全性的需要。
发明内容
有鉴于此,本发明提供了一种自动驾驶软件的开发方法、系统、计算机设备及存储介质,以解决相关自驾系统架构无法满足多场景交付以及部署模式安全性低的问题。
第一方面,本发明提供了一种自动驾驶软件的开发方法,应用于由开发者端和客户端构成的自动驾驶软件的开发系统中的开发者端,该方法包括:
获取目标自动驾驶软件的传感器设计方案和作业场景设计方案;
根据传感器设计方案,确定目标自动驾驶软件的算法服务插件;
根据作业场景设计方案,确定目标自动驾驶软件的作业任务插件;
基于算法服务插件和作业任务插件,得到与目标自动驾驶软件相对应的应用软件;
将应用软件部署在开发者端的公网,并向客户端推送客户端升级任务,以使客户端在接收到客户端升级任务后,基于部署在开发者端的公网的应用软件得到目标自动驾驶软件。
从而通过开发者端根据目标自动驾驶软件的传感器设计方案和作业场景设计方案,确定目标自动驾驶软件的算法服务插件和作业任务插件,将不同车型不同作业场景动态组合,得到与目标自动驾驶软件相对应的应用软件,并将应用软件部署在开发者端的公网,向客户端推送客户端升级任务,以使客户端在接收到客户端升级任务后,基于部署在公网的应用软件得到满足具体设计方案的目标自动驾驶软件,满足了自动驾驶软件不断变化的需求,实现了多种作业场景的软件交付,且开发部署流程更加方便,使自驾开发人员可以专注于业务开发和性能提升,快速完成项目交付,更方便地进行系统维护。
在一种可选的实施方式中,根据传感器设计方案,确定目标自动驾驶软件的算法服务插件,包括:
根据传感器设计方案,确定目标自动驾驶软件的感知服务、定位服务和规控服务;
基于感知服务、定位服务和规控服务,选择相应的感知插件、定位插件和规控插件。
从而通过多种插件实现算法服务,根据自动驾驶软件的具体设计方案进行动态服务编排,积木式的快速组合应用场景,满足不同设计方案,增强软件套件平台的扩展性。
在一种可选的实施方式中,根据作业场景设计方案,确定目标自动驾驶软件的作业任务插件,包括:
根据作业场景设计方案,确定目标自动驾驶软件的装载任务、行驶任务和卸载任务;
基于装载任务、行驶任务和卸载任务,选择相应的装载插件、行驶插件和卸载插件。
从而针对不同作业场景适配不同的作业任务插件,动态编排满足工程机械不同作业场景,满足不同工程机械的多样化自动作业。
在一种可选的实施方式中,基于算法服务插件和作业任务插件,得到与目标自动驾驶软件相对应的应用软件,包括:
通过CI流水线对算法服务插件和作业任务插件分别对应的套件源码进行静态检查;
在检测到套件源码通过静态检查后,将套件源码进行打包得到与目标自动驾驶软件相对应的应用软件。
从而通过将编排好的算法服务插件和作业任务插件的套件源码通过CI流水线的方式进行静态检查,在检查无误后,将套件源码打包得到满足目标自动驾驶软件设计要求的应用软件。
在一种可选的实施方式中,将应用软件部署在开发者端的公网,并向客户端推送客户端升级任务,包括:
将应用软件上传至开发者端的公网的镜像仓库;
通过测试台架对从镜像仓库下载的应用软件进行测试验证;
在检测到应用软件通过测试验证后,通过CD部署服务创建客户端升级任务,并将客户端升级任务推送至客户端,以使客户端在接收到客户端升级任务后,从镜像仓库下载应用软件,基于应用软件得到目标自动驾驶软件。
从而通过将满足目标自动驾驶软件设计要求的应用软件部署在公网的镜像仓库,使客户端在接收到开发者端推送的客户端升级任务后,从镜像仓库下载应用软件,基于应用软件得到目标自动驾驶软件。
第二方面,本发明提供了一种自动驾驶软件的开发方法,应用于由开发者端和客户端构成的自动驾驶软件的开发系统中的客户端,该方法包括:
接收开发者端推送的客户端升级任务;
从开发者端的公网下载基于目标自动驾驶软件的传感器设计方案和作业场景设计方案得到的应用软件,基于应用软件得到目标自动驾驶软件;其中,应用软件是基于与传感器设计方案对应的算法服务插件以及与作业场景设计方案对应的作业任务插件得到的。
从而通过客户端在接收到开发者端推送的客户端升级任务后,从开发者端公网下载应用软件,得到满足具体作业场景和设计方案要求的自动驾驶软件,更加方便快捷,减少了客户端用户的麻烦。
在一种可选的实施方式中,基于应用软件得到目标自动驾驶软件,包括:
将应用软件作为目标自动驾驶软件。
从而通过公网的应用软件得到目标自动驾驶软件,更加方便快捷。
在一种可选的实施方式中,该方法还包括:
创建车辆升级任务,并将车辆升级任务推送至目标车辆,以使目标车辆在接收到车辆升级任务后,从客户端下载目标自动驾驶软件。
从而通过创建车辆升级任务,使目标车辆从客户端下载目标自动驾驶软件对自车的驾驶软件进行更新与升级,从而得到满足具体作业场景和设计方案的自动驾驶软件。
在一种可选的实施方式中,该方法还包括:
收集目标自动驾驶软件在目标车辆上的运行态信息;运行态信息包括周期性业务指标、业务流程跟踪信息、软件状态信息、告警诊断信息以及日志记录信息中的至少一项;
基于运行态信息生成目标自动驾驶软件的运行报告,并将运行态信息和运行报告进行可视化展示。
从而通过收集目标自动驾驶软件在目标车辆上的运行态信息,基于运行态信息生成目标自动驾驶软件的运行报告,并将运行态信息和运行报告进行可视化展示,实时监控车辆自动驾驶软件的状态,来为用户提供实时指导。
第三方面,本发明提供了一种自动驾驶软件的开发系统,该系统包括开发者端和客户端;
开发者端获取目标自动驾驶软件的传感器设计方案和作业场景设计方案;根据传感器设计方案,确定目标自动驾驶软件的算法服务插件;根据作业场景设计方案,确定目标自动驾驶软件的作业任务插件;基于算法服务插件和作业任务插件,得到与目标自动驾驶软件相对应的应用软件;将应用软件部署在开发者端的公网,并向客户端推送客户端升级任务;
客户端接收开发者端推送的客户端升级任务;从开发者端的公网下载基于目标自动驾驶软件的传感器设计方案和作业场景设计方案得到的应用软件,基于应用软件得到目标自动驾驶软件;其中,应用软件是基于与传感器设计方案对应的算法服务插件以及与作业场景设计方案对应的作业任务插件得到的。
在一种可选的实施方式中,客户端为云控一体机。
第四方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式,或第二方面或其对应的任一实施方式的自动驾驶软件的开发方法。
第五方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式,或第二方面或其对应的任一实施方式的自动驾驶软件的开发方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的自动驾驶软件的开发系统的结构框图;
图2是根据本发明实施例的自动驾驶软件的开发系统的交互过程示意图;
图3是根据本发明实施例的软件套件平台的架构示意图;
图4是根据本发明实施例的动态编排插件的流程示意图;
图5是根据本发明实施例的服务治理中心的功能示意图;
图6是根据本发明实施例的插件部署方式的结构示意图;
图7是根据本发明实施例的另一自动驾驶软件的开发系统的交互过程示意图;
图8是根据本发明实施例的可视化展示的流程示意图;
图9是根据本发明实施例的又一自动驾驶软件的开发系统的交互过程示意图;
图10是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
云原生架构是一种基于云计算的应用程序架构和开发方法论,旨在充分发挥云计算平台的优势,提高应用程序的可伸缩性、弹性和可靠性。它强调将应用程序设计为微服务、采用容器化部署、自动化管理和持续交付,以实现快速迭代、高效部署和可靠运行。
云原生在公有云或云数据中心的软件开发和运维方面存在广泛应用,对软件设计和持续交付提供了方法论层面的指导,软件套件平台是面向嵌入式开发的智驾系统软件平台,在嵌入式软件系统交付过程无法像公有云一样实现自动化的开发运维一体化(Development and Operations,DevOps),同时封闭园区业务场景也存在客户需求多变需要持续迭代交付的情况,单车自动驾驶由于安全性原因对自驾系统的可靠性也有更高的要求。
当前自驾系统在架构设计中已经采用微服务化和容器化的思路,降低了定位、感知和规控各个模块之间的耦合度,但在整体架构方案设计中扩展性不足,无法动态满足多车型多场景的交付;车端自驾系统单实例的部署模式也无法满足自动驾驶高安全性的需要。
此外,封闭场景的项目交付存在客户的场景差异大和项目定制化多的特点,且需要根据客户需求进行一定程度的定制开发和场景适配,当前车端自驾系统的交付方式是基于车端的源码结合客户场景进行适配,源码在集团内部管理,而交付和调试是在客户现场进行,交付流程存在割裂,无法做到自动化部署运行,经常需要在现场调试后再合入套件源码,容易产生疏漏,对项目管理也存在挑战。因此需要有一套完成的代码交付管理自动化流程,加强需求和代码管理,打通代码和项目现场交付以及,提升交付效率和软件运维能力。
根据本发明实施例,提供了一种自动驾驶软件的开发系统,如图1所示,该系统包括开发者端101和客户端102。
开发者端101获取目标自动驾驶软件的传感器设计方案和作业场景设计方案;根据传感器设计方案,确定目标自动驾驶软件的算法服务插件;根据作业场景设计方案,确定目标自动驾驶软件的作业任务插件;基于算法服务插件和作业任务插件,得到与目标自动驾驶软件相对应的应用软件;将应用软件部署在开发者端101的公网,并向客户端102推送客户端升级任务。
客户端102接收开发者端101推送的客户端升级任务;从开发者端101的公网下载基于目标自动驾驶软件的传感器设计方案和作业场景设计方案得到的应用软件,基于应用软件得到目标自动驾驶软件;其中,应用软件是基于与传感器设计方案对应的算法服务插件以及与作业场景设计方案对应的作业任务插件得到的。
具体地,在本发明实施例中是以客户端102为云控一体机为例进行的说明,在实际应用中,客户端102还可以是其他具有存储和控制功能的设备,本发明并不以此为限。
关于开发者端101和客户端102的具体工作原理及工作过程参见下文方法实施例的相关描述,在此不再进行赘述。
本发明提供的自动驾驶软件的开发系统,通过利用开发者端101根据目标自动驾驶软件的传感器设计方案和作业场景设计方案,确定目标自动驾驶软件的算法服务插件和作业任务插件,将不同车型不同作业场景动态组合,得到与目标自动驾驶软件相对应的应用软件,并将应用软件部署在开发者端101的公网,向客户端102推送客户端升级任务,以使客户端102在接收到客户端升级任务后,基于部署在开发者端101的公网的应用软件得到目标自动驾驶软件,满足了自动驾驶软件不断变化的需求,满足多种作业场景的软件交付,且开发部署流程更加方便,使自驾开发人员可以专注于业务开发和性能提升,快速完成项目交付,更方便的进行系统维护。
根据本发明实施例,提供了一种自动驾驶软件的开发方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种自动驾驶软件的开发方法,该自动驾驶软件的开发方法可用于如图1所示的开发者端101和客户端102,图2是根据本发明实施例的自动驾驶软件的开发系统的交互过程示意图,其中,开发者端101用于执行步骤S101至步骤S105,客户端102用于执行步骤S201至步骤S202,开发者端101与客户端102的具体交互过程如下:
步骤S101,获取目标自动驾驶软件的传感器设计方案和作业场景设计方案。
具体地,自动驾驶汽车在行驶时需要依靠自身装载的自动驾驶软件,传感器设计是实现自动驾驶的关键步骤,自动驾驶汽车需要依靠多种传感器来感知周围环境,对车辆进行定位和规控,从而进行实时的决策和路径规划。此外,不同的作业场景对车辆自动驾驶的要求也不同,因此需要结合具体的作业场景来设计自动驾驶软件。
示例性地,通过雷达、激光雷达、摄像头、超声波等传感器感知自动驾驶汽车周围的环境,包括车辆的位置、道路状况、障碍物、交通信号等;GPS、惯性测量传感器(InertialMeasurement Unit,IMU)等传感器可以提供车辆的定位信息,帮助自动驾驶汽车在地图上精确定位,同时轮速传感器、转向角传感器等也可以提供车辆的运动状态信息,辅助导航和定位;基于多个传感器的数据,自动驾驶软件能够进行实时的决策和路径规划,控制车辆的行驶速度、方向和制动等。
步骤S102,根据传感器设计方案,确定目标自动驾驶软件的算法服务插件。
具体地,本发明实施例通过软件套件平台技术来构建目标自动驾驶软件。软件套件平台基于嵌入式Linux操作系统,包含中间件、算法服务插件以及作业任务插件等基础软件,是构建面向多种工程机械的自动驾驶软件的平台。
如图3所示,软件套件采用面向服务的架构(Service-Oriented Architecture,SOA),各进程以软件服务形式对外提供能力。其中,平台软件作为IaaS服务提供硬件抽象、设备驱动等能力,可以屏蔽不同域控制、传感器驱动、车型等硬件之间的差异;功能软件包含自动驾驶领域常用的定位、感知、规划和控制等服务插件,以算法服务形式提供智能驾驶和智能作业等通用能力,同时面向不同领域各个算法服务以插件形式为上层应用提供多样性配置;应用软件作为SaaS服务,面向具体的交付场景,通过调用功能软件PaaS层的能力,实现不同作业场景下的自动驾驶。
这样一来,通过软件套件架构的分层,下层为上层提供服务,提升软件套件平台的通用性和应用扩展能力;同时功能软件和应用软件的服务化,使得各个子服务独立开发、部署和维护,降低代码的复杂性,能够快速满足客户需求。
在一些可选的实施方式中,上述步骤S102包括:
步骤a1,根据传感器设计方案,确定目标自动驾驶软件的感知服务、定位服务和规控服务。
步骤a2,基于感知服务、定位服务和规控服务,选择相应的感知插件、定位插件和规控插件。
需要说明的是,感知插件具备从各类传感器中实时采集数据的感知能力,将不同传感器的数据进行融合,消除数据间的冲突和冗余;定位插件自动进行车辆定位;规控插件根据感知信息和行驶需求,规划出安全有效的行驶路径,根据感知信息和路径规划结果,自动控制车辆的行驶速度、方向和制动。
如图4所示,通过多种插件实现算法服务,根据自动驾驶软件的具体设计方案进行动态服务编排,流水线式选择算法服务插件,配置算法服务。从而积木式的快速组合应用场景,通过动态编排满足不同设计方案,增强软件套件平台的扩展性。此外结合套件的业务编排能力,提供业务编排界面,对自驾软件的算法服务和算法插件进行业务编排和快速组装。
在一些可选的实施方式中,如图5所示,通过自研服务治理中心,用于软件套件中各算法服务插件的自动注册和发现,为自动驾驶软件需要的各功能模块提供服务治理能力。可以通过将算法服务框架集成服务治理客户端,和服务治理中心一起实现服务治理能力,使各算法服务专注算法和插件业务能力的开发。此外,通过服务注册和服务发现,对各算法服务进行统一管理,各算法服务通过标准接口实现算法服务之间的业务调用。服务治理中心同时包含了配置管理,可以为各算法服务提供实时的配置数据的更新。
在一些可选的实施方式中,由于软件套件是面向自动驾驶,在场景上有高度安全性要求,如图6所示,提供一种算法服务冗余部署方案,以满足自驾软件高安全高可靠的场景需求。再次参见图6,算法服务插件按照双实例主备的方式进行部署,两个实例分别分布在不同的芯片中运行,当主实例异常后,备用实例可以快速接管业务。此外,如图5所示的服务治理中心可以监控并管理算法服务实例状态,控制双实例的主备状态切换,并调度实例状态确保两个芯片的资源占用最优。示例性地,两个芯片可以分别是TDA4x芯片和ORIN芯片,两个芯片的通信中间件具备支持异构系统间的跨芯片的通信能力,域控制器则可使用自研的具备异构计算能力的波塞冬域控制器,结合该域控制器的异构芯片架构,采用冗余备份的服务部署形式,提供一主一备或者双主的服务部署模式,从而提高系统可靠性和安全性。
步骤S103,根据作业场景设计方案,确定目标自动驾驶软件的作业任务插件。
在一些可选的实施方式中,上述步骤S103包括:
步骤b1,根据作业场景设计方案,确定目标自动驾驶软件的装载任务、行驶任务和卸载任务。
步骤b2,基于装载任务、行驶任务和卸载任务,选择相应的装载插件、行驶插件和卸载插件。
具体地,目标自动驾驶软件的作业任务插件需要根据装载、卸载和行驶等作业场景进行针对性地设计和优化,以满足实际场景的需求。再次参见图4所示,针对不同作业场景(例如装载、行驶和卸载)适配不同的作业任务插件,动态编排满足工程机械不同作业场景,增强软件套件平台的扩展性,从而满足不同工程机械的多样化自动作业。
在一些可选的实施方式中,在确定作业任务插件和算法服务插件之后,可以通过仿真测试来验证当前方案的效果,及时调整插件类型以满足作业要求。
步骤S104,基于算法服务插件和作业任务插件,得到与目标自动驾驶软件相对应的应用软件。
在一些可选的实施方式中,上述步骤S104包括:
步骤c1,通过CI流水线对算法服务插件和作业任务插件分别对应的套件源码进行静态检查。
步骤c2,在检测到套件源码通过静态检查后,将套件源码进行打包得到与目标自动驾驶软件相对应的应用软件。
具体地,基于DevOps模式进行应用软件的开发,在软件开发和部署过程中,DevOps是一种强调开发(Development)和运营(Operations)一体化的工作模式。通过将编排好的算法服务插件和作业任务插件的套件源码通过CI流水线的方式进行静态检查,在检查无误后,将套件源码打包得到满足客户端的自动驾驶软件设计要求的应用软件。
步骤S105,将应用软件部署在开发者端的公网,并向客户端推送客户端升级任务。
在一些可选的实施方式中,上述步骤S105包括:
步骤d1,将应用软件上传至开发者端的公网的镜像仓库。
步骤d2,通过测试台架对从镜像仓库下载的应用软件进行测试验证。
具体地,可以在测试台架对应用软件进行仿真测试和场景验证,以确保应用软件满足目标自动驾驶软件的设计要求。
步骤d3,在检测到应用软件通过测试验证后,通过CD部署服务创建客户端升级任务,并将客户端升级任务推送至客户端。
具体地,基于DevOps模式进行应用软件的部署,使用配置管理工具或容器管理系统进行自动化部署过程,这样开发人员可以快速、安全地将新版本的应用软件部署到相应环境。客户端升级任务用于通过无线方式对客户端软件进行远程更新和升级,即空中下载技术(Over-the-Air Technology,OTA),这种OTA升级方式允许开发者端向客户端推送软件更新,而无需客户端亲自前往相关的设备服务中心进行更新。
从而通过将满足目标自动驾驶软件设计要求的应用软件部署在公网的镜像仓库,使客户端在接收到开发者端推送的客户端升级任务后,从镜像仓库下载应用软件,基于应用软件得到目标自动驾驶软件。
步骤S201,接收开发者端推送的客户端升级任务。
步骤S202,从开发者端的公网下载基于目标自动驾驶软件的传感器设计方案和作业场景设计方案得到的应用软件,基于应用软件得到目标自动驾驶软件。
其中,应用软件是基于与传感器设计方案对应的算法服务插件以及与作业场景设计方案对应的作业任务插件得到的。
在一些可选的实施方式中,客户端将公网的应用软件作为目标自动驾驶软件。客户端在接收到开发者端推送的OTA升级任务后,会从相应环境下载最新版的应用软件,从而得到满足具体作业场景和设计方案要求的自动驾驶软件,更加方便快捷,减少了客户端用户的麻烦。
本实施例提供的自动驾驶软件的开发方法,通过开发者端根据目标自动驾驶软件的传感器设计方案和作业场景设计方案,确定目标自动驾驶软件的算法服务插件和作业任务插件,将不同车型不同作业场景动态组合,得到与目标自动驾驶软件相对应的应用软件,并将应用软件部署在开发者端的公网,向客户端推送客户端升级任务,以使客户端在接收到客户端升级任务后,基于部署在公网的应用软件得到满足具体设计方案的目标自动驾驶软件,满足了自动驾驶软件不断变化的需求,实现了多种作业场景的软件交付,且开发部署流程更加方便,使自驾开发人员可以专注于业务开发和性能提升,快速完成项目交付,更方便地进行系统维护。
在本实施例中提供了一种自动驾驶软件的开发方法,该自动驾驶软件的开发方法可用于如图1所示的开发者端101和客户端102,图7是根据本发明实施例的自动驾驶软件的开发系统的交互过程示意图,其中,开发者端101用于执行步骤S301至步骤S305,客户端102用于执行步骤S401至步骤S405,开发者端101与客户端102的具体交互过程如下:
步骤S301,获取目标自动驾驶软件的传感器设计方案和作业场景设计方案。详细请参见图2所示实施例的步骤S101,在此不再赘述。
步骤S302,根据传感器设计方案,确定目标自动驾驶软件的算法服务插件。详细请参见图2所示实施例的步骤S102,在此不再赘述。
步骤S303,根据作业场景设计方案,确定目标自动驾驶软件的作业任务插件。详细请参见图2所示实施例的步骤S103,在此不再赘述。
步骤S304,基于算法服务插件和作业任务插件,得到与目标自动驾驶软件相对应的应用软件。详细请参见图2所示实施例的步骤S104,在此不再赘述。
步骤S305,将应用软件部署在开发者端的公网,并向客户端推送客户端升级任务。详细请参见图2所示实施例的步骤S105,在此不再赘述。
步骤S401,接收开发者端推送的客户端升级任务。详细请参见图2所示实施例的步骤S201,在此不再赘述。
步骤S402,从开发者端的公网下载基于目标自动驾驶软件的传感器设计方案和作业场景设计方案得到的应用软件,基于应用软件得到目标自动驾驶软件。详细请参见图2所示实施例的步骤S202,在此不再赘述。
步骤S403,创建车辆升级任务,并将车辆升级任务推送至目标车辆。
具体地,客户端创建车辆OTA升级任务,并将车辆OTA升级任务推送至目标车辆,使目标车辆在接收到车辆OTA升级任务后,从客户端下载目标自动驾驶软件,根据相应策略对自车的驾驶软件进行更新与升级,从而得到满足具体作业场景和设计方案的自动驾驶软件。
从而在流程上利用自动化流水线的能力,打通了开发者端和客户端,对客户端的交付环境做了管理。需要注意的是,需要在客户现场部署具备OTAServer功能的服务器,以在后续对车辆进行OTA升级。
从而通过将软件套件代码仓、CI流水线、云控平台车辆管理和OTA升级相结合,整合开发者端研发流程和客户现场运营,利用自动化的方法使自驾软件的开发、测试、部署和运维可以更快速地完成,同时也能直面客户不断变化的外部需求,使用DevOps流程和OTA持续迭代升级,打通了封闭场景DevOps交付流程,缩短了软件的交付周期,增强了企业的市场响应能力和业务敏捷性。
步骤S404,收集目标自动驾驶软件在目标车辆上的运行态信息。
具体地,如图8所示,车端的软件套件平台通过套件监控中心收集车载自动驾驶软件的运行态信息,并将收集的信息上传至客户端。其中,运行态信息包括周期性业务指标、业务流程跟踪信息、软件状态信息、告警诊断信息以及日志记录信息中的至少一项。
步骤S405,基于运行态信息生成目标自动驾驶软件的运行报告,并将运行态信息和运行报告进行可视化展示。
具体地,可观测性是云原生的关键运维支撑能力,再次参见图8,借助客户端云控一体机的集群管理作用,对运行态的自动驾驶软件中各模块状态和系统资源进行全面检测和分析,依靠数据赋能,加强可视化能力,全面简化车载自动驾驶软件的运维流程。
在一些可选的实施方式中,客户端云控一体机通过ClickHouse、Hadoop、Spark等数据存储和分析技术,将收集到的运行态信息进行挖掘分析,分析数据关联性,形成统计报表、问题根因分析和建议指导等。利用云控一体机的前端展示界面,将多车多维度的监控信息进行可视化呈现。从而通过借助云控一体机的中央大脑作用,将软件的各种实时运行状态上传到云控一体机,使用大数据分析技术监控自驾软件的运行状态,并为用户提供实时指导。
从而通过收集目标自动驾驶软件在目标车辆上的运行态信息,基于运行态信息生成目标自动驾驶软件的运行报告,并将运行态信息和运行报告进行可视化展示,实时监控车辆自动驾驶软件的状态,来为用户提供实时指导。
下面结合一个具体应用例对本发明的自动驾驶软件的开发系统进行进一步详细说明,该具体应用例的具体步骤如下:
步骤1,再次参见图4所示,首先根据自动驾驶软件的方案设计,编排算法服务插件,选择定位、感知和规控三个业务模块的运行插件。接着,针对不同车型设置和作业场景设计编排相应的作业任务插件,包括装载、卸载、行驶等作业场景的作业任务插件。然后,将编排好的算法服务插件和作业任务插件进行部署,将插件部署在域控制器中。最后在测试台架、仿真场景或者实车进行场景测试,及时调整插件类型满足自动驾驶软件的方案设计要求。
步骤2,如图9所示,开发者端将开发的套件源码提交至代码仓,通过CI流水线检查套件源码,并将套件源码打包形成应用软件上传至公网镜像仓库。拉取镜像包,并下载至测试台架对镜像包进行集成测试或者仿真测试。测试通过后创建相应的客户端OTA升级任务,将OTA升级任务推送到客户端所在的云控一体机。云控一体机创建车辆OTA升级任务,进行车辆自驾软件升级。
步骤3,车端的软件套件平台收集自动驾驶软件的运行态信息,包括周期性业务指标、业务流程跟踪信息、软件系统状态信息、告警诊断信息、日志记录信息等,将收集的运行态信息上报给客户端的云控一体机。云控一体机通过ClickHouse、Hadoop、Spark等数据存储和分析技术,将收集到的监控信息进行挖掘分析,分析数据关联性,形成统计报表,问题根因分析和建议指导等,并利用前端展示界面,将多车多维度的监控信息进行可视化呈现。
上述自动驾驶软件的开发方法,通过引入云原生服务化和DevOps的软件理念,利用CI/CD自动化流水线和部署能力,结合云控一体机的OTA能力和车辆管理以及数据分析能力,从软件套件的SOA服务化、业务编排、可靠冗余部署、自动化流水线OTA升级、统一运维监控方面进行了优化设计,增强软件套件的平台的扩展性、可靠性和可观测性,解决了自驾软件交付过程中项目管理过程持续交付、代码管理、版本交付和软件运维过程中的问题。
请参阅图10,图10是本发明可选实施例提供的一种计算机设备的结构示意图,如图10所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图10中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (8)

1.一种自动驾驶软件的开发方法,应用于由开发者端和客户端构成的自动驾驶软件的开发系统中的开发者端,其特征在于,所述方法包括:
获取目标自动驾驶软件的传感器设计方案和作业场景设计方案;
根据所述传感器设计方案,确定所述目标自动驾驶软件的感知服务、定位服务和规控服务;基于所述感知服务、定位服务和规控服务,选择相应的感知插件、定位插件和规控插件;
根据所述作业场景设计方案,确定所述目标自动驾驶软件的装载任务、行驶任务和卸载任务;基于所述装载任务、行驶任务和卸载任务,选择相应的装载插件、行驶插件和卸载插件;
通过CI流水线对所述感知插件、定位插件和规控插件以及所述装载插件、行驶插件和卸载插件分别对应的套件源码进行静态检查;
在检测到所述套件源码通过静态检查后,将所述套件源码进行打包得到与所述目标自动驾驶软件相对应的应用软件;
将所述应用软件上传至开发者端的公网的镜像仓库;通过测试台架对从所述镜像仓库下载的应用软件进行测试验证;在检测到所述应用软件通过测试验证后,通过CD部署服务创建客户端升级任务,并将所述客户端升级任务推送至客户端,以使客户端在接收到所述客户端升级任务后,从所述镜像仓库下载所述应用软件,基于所述应用软件得到目标自动驾驶软件;所述客户端创建车辆升级任务,并将所述车辆升级任务推送至目标车辆,以使所述目标车辆在接收到所述车辆升级任务后,从客户端下载所述目标自动驾驶软件。
2.一种自动驾驶软件的开发方法,应用于由开发者端和客户端构成的自动驾驶软件的开发系统中的客户端,其特征在于,所述方法包括:
接收开发者端推送的客户端升级任务;
从开发者端的公网的镜像仓库下载基于目标自动驾驶软件的传感器设计方案和作业场景设计方案得到的应用软件,基于所述应用软件得到目标自动驾驶软件;创建车辆升级任务,并将所述车辆升级任务推送至目标车辆,以使所述目标车辆在接收到所述车辆升级任务后,从客户端下载所述目标自动驾驶软件;
其中,所述应用软件是开发者端通过CI流水线对与所述传感器设计方案对应的感知插件、定位插件和规控插件以及与所述作业场景设计方案对应的装载插件、行驶插件和卸载插件分别对应的套件源码进行静态检查和打包后得到的,所述感知插件、定位插件和规控插件是基于所述传感器设计方案中所述目标自动驾驶软件的感知服务、定位服务和规控服务进行选择得到的,所述装载插件、行驶插件和卸载插件是基于所述作业场景设计方案中所述目标自动驾驶软件的装载任务、行驶任务和卸载任务进行选择得到的;
在接收开发者端推送的客户端升级任务之前,开发者端将所述应用软件上传至公网的镜像仓库;通过测试台架对从所述镜像仓库下载的应用软件进行测试验证;在检测到所述应用软件通过测试验证后,通过CD部署服务创建客户端升级任务,并将所述客户端升级任务推送至客户端。
3.根据权利要求2所述的方法,其特征在于,所述基于所述应用软件得到目标自动驾驶软件,包括:
将所述应用软件作为目标自动驾驶软件。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
收集目标自动驾驶软件在目标车辆上的运行态信息;所述运行态信息包括周期性业务指标、业务流程跟踪信息、软件状态信息、告警诊断信息以及日志记录信息中的至少一项;
基于所述运行态信息生成目标自动驾驶软件的运行报告,并将所述运行态信息和所述运行报告进行可视化展示。
5.一种自动驾驶软件的开发系统,其特征在于,所述系统包括开发者端和客户端;
所述开发者端获取目标自动驾驶软件的传感器设计方案和作业场景设计方案;根据所述传感器设计方案,确定所述目标自动驾驶软件的感知服务、定位服务和规控服务;基于所述感知服务、定位服务和规控服务,选择相应的感知插件、定位插件和规控插件;根据所述作业场景设计方案,确定所述目标自动驾驶软件的装载任务、行驶任务和卸载任务;基于所述装载任务、行驶任务和卸载任务,选择相应的装载插件、行驶插件和卸载插件;通过CI流水线对所述感知插件、定位插件和规控插件以及所述装载插件、行驶插件和卸载插件分别对应的套件源码进行静态检查;在检测到所述套件源码通过静态检查后,将所述套件源码进行打包得到与所述目标自动驾驶软件相对应的应用软件;将所述应用软件上传至开发者端的公网的镜像仓库;通过测试台架对从所述镜像仓库下载的应用软件进行测试验证;在检测到所述应用软件通过测试验证后,通过CD部署服务创建客户端升级任务,并将所述客户端升级任务推送至客户端;
所述客户端接收开发者端推送的客户端升级任务;从开发者端的公网的镜像仓库下载基于目标自动驾驶软件的传感器设计方案和作业场景设计方案得到的应用软件,基于所述应用软件得到目标自动驾驶软件;创建车辆升级任务,并将所述车辆升级任务推送至目标车辆,以使所述目标车辆在接收到所述车辆升级任务后,从客户端下载所述目标自动驾驶软件。
6.根据权利要求5所述的系统,其特征在于,所述客户端为云控一体机。
7.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1所述的自动驾驶软件的开发方法,或者执行权利要求2至4中任一项所述的自动驾驶软件的开发方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1所述的自动驾驶软件的开发方法,或者执行权利要求2至4中任一项所述的自动驾驶软件的开发方法。
CN202410174483.0A 2024-02-07 2024-02-07 自动驾驶软件的开发方法、系统、计算机设备及存储介质 Active CN117724693B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410174483.0A CN117724693B (zh) 2024-02-07 2024-02-07 自动驾驶软件的开发方法、系统、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410174483.0A CN117724693B (zh) 2024-02-07 2024-02-07 自动驾驶软件的开发方法、系统、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN117724693A CN117724693A (zh) 2024-03-19
CN117724693B true CN117724693B (zh) 2024-05-24

Family

ID=90207306

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410174483.0A Active CN117724693B (zh) 2024-02-07 2024-02-07 自动驾驶软件的开发方法、系统、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN117724693B (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110069064A (zh) * 2019-03-19 2019-07-30 驭势科技(北京)有限公司 一种自动驾驶系统升级的方法、自动驾驶系统及车载设备
CN111611175A (zh) * 2020-06-01 2020-09-01 深圳裹动智驾科技有限公司 自动驾驶软件开发方法、服务器端及客户端
CN113771878A (zh) * 2021-09-27 2021-12-10 荆州智达电动汽车有限公司 基于全作业场景的港口自动驾驶车辆全局路线引导方法
CN114296716A (zh) * 2021-11-18 2022-04-08 深圳海星智驾科技有限公司 用于工程机械智能作业的功能配置方法、装置及电子设备
CN114590270A (zh) * 2020-12-07 2022-06-07 现代自动车株式会社 自动驾驶车辆的控制系统以及自动驾驶车辆的控制方法
CN115129322A (zh) * 2022-06-28 2022-09-30 阿波罗智能技术(北京)有限公司 自动驾驶软件安装包的生成方法、装置和电子设备
CN115437609A (zh) * 2022-08-16 2022-12-06 中汽创智科技有限公司 一种自动驾驶系统的开发方法、装置及存储介质
CN115454486A (zh) * 2022-09-26 2022-12-09 重庆长安汽车股份有限公司 一种自动驾驶软件的管理方法、装置、设备及介质
CN115576331A (zh) * 2022-12-07 2023-01-06 深圳海星智驾科技有限公司 工程机械的自动驾驶作业方法、装置、电子设备及系统
CN115857954A (zh) * 2022-11-17 2023-03-28 深圳海星智驾科技有限公司 工程机械设备的软件部署方法及装置、设备及存储介质
CN116824852A (zh) * 2023-06-30 2023-09-29 奥特酷智能科技(南京)有限公司 一种自动驾驶多传感器同步回放方法及系统
CN117325888A (zh) * 2023-11-13 2024-01-02 深圳海星智驾科技有限公司 车辆自动驾驶状态监测方法、装置、车机系统及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114791889A (zh) * 2021-01-25 2022-07-26 华为技术有限公司 一种传感器数据的处理方法及装置

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110069064A (zh) * 2019-03-19 2019-07-30 驭势科技(北京)有限公司 一种自动驾驶系统升级的方法、自动驾驶系统及车载设备
CN111611175A (zh) * 2020-06-01 2020-09-01 深圳裹动智驾科技有限公司 自动驾驶软件开发方法、服务器端及客户端
CN114590270A (zh) * 2020-12-07 2022-06-07 现代自动车株式会社 自动驾驶车辆的控制系统以及自动驾驶车辆的控制方法
CN113771878A (zh) * 2021-09-27 2021-12-10 荆州智达电动汽车有限公司 基于全作业场景的港口自动驾驶车辆全局路线引导方法
CN114296716A (zh) * 2021-11-18 2022-04-08 深圳海星智驾科技有限公司 用于工程机械智能作业的功能配置方法、装置及电子设备
CN115129322A (zh) * 2022-06-28 2022-09-30 阿波罗智能技术(北京)有限公司 自动驾驶软件安装包的生成方法、装置和电子设备
CN115437609A (zh) * 2022-08-16 2022-12-06 中汽创智科技有限公司 一种自动驾驶系统的开发方法、装置及存储介质
CN115454486A (zh) * 2022-09-26 2022-12-09 重庆长安汽车股份有限公司 一种自动驾驶软件的管理方法、装置、设备及介质
CN115857954A (zh) * 2022-11-17 2023-03-28 深圳海星智驾科技有限公司 工程机械设备的软件部署方法及装置、设备及存储介质
CN115576331A (zh) * 2022-12-07 2023-01-06 深圳海星智驾科技有限公司 工程机械的自动驾驶作业方法、装置、电子设备及系统
CN116824852A (zh) * 2023-06-30 2023-09-29 奥特酷智能科技(南京)有限公司 一种自动驾驶多传感器同步回放方法及系统
CN117325888A (zh) * 2023-11-13 2024-01-02 深圳海星智驾科技有限公司 车辆自动驾驶状态监测方法、装置、车机系统及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于多通道态势图的自动驾驶场景表征方法;朱波 等;中国公路学报;20200831(第08期);第208-218页 *

Also Published As

Publication number Publication date
CN117724693A (zh) 2024-03-19

Similar Documents

Publication Publication Date Title
US10929123B2 (en) Assembling data deltas in controllers and managing interdependencies between software versions in controllers using tool chain
US11814077B2 (en) Method and apparatus for storing autonomous driving test data and electronic device
US11243516B2 (en) Edge devices and associated networks utilising microservices
US11146456B2 (en) Formal model checking based approaches to optimized realizations of network functions in multi-cloud environments
US8832649B2 (en) Systems and methods for augmenting the functionality of a monitoring node without recompiling
EP3770791A1 (en) Robust autonomous drive design
US9832606B1 (en) Modifying user service environments
Krämer A microservice architecture for the processing of large geospatial data in the cloud
US11117572B2 (en) Cognition enabled driving pattern detection
Giaimo et al. Continuous experimentation for automotive software on the example of a heavy commercial vehicle in daily operation
CN117724693B (zh) 自动驾驶软件的开发方法、系统、计算机设备及存储介质
WO2008141953A1 (fr) Systeme automatise aux temps de reponse deterministes
Baresi et al. Architecting Artificial Intelligence for Autonomous Cars: The OpenPilot Framework
CN113805546B (zh) 一种模型的部署方法、装置、计算机设备和存储介质
KR20240092759A (ko) 엣지 서버를 이용한 한시적 업무에 대한 지원 및 협업 방법 및 이를 이용한 시스템
CN118043781A (zh) 基于生成对抗网络(gan)的边缘服务器的识别

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
GR01 Patent grant
GR01 Patent grant