CN114880220A - Development system and method for vehicle automatic driving software - Google Patents

Development system and method for vehicle automatic driving software Download PDF

Info

Publication number
CN114880220A
CN114880220A CN202210480738.7A CN202210480738A CN114880220A CN 114880220 A CN114880220 A CN 114880220A CN 202210480738 A CN202210480738 A CN 202210480738A CN 114880220 A CN114880220 A CN 114880220A
Authority
CN
China
Prior art keywords
test
executable file
target
vehicle
software
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.)
Granted
Application number
CN202210480738.7A
Other languages
Chinese (zh)
Other versions
CN114880220B (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.)
FAW Jiefang Automotive Co Ltd
Original Assignee
FAW Jiefang Automotive 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 FAW Jiefang Automotive Co Ltd filed Critical FAW Jiefang Automotive Co Ltd
Priority to CN202210480738.7A priority Critical patent/CN114880220B/en
Publication of CN114880220A publication Critical patent/CN114880220A/en
Application granted granted Critical
Publication of CN114880220B publication Critical patent/CN114880220B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • 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)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

The application relates to a system and a method for developing automatic driving software of a vehicle. The system comprises: the code management server is used for receiving the function codes uploaded by the development machine terminal, generating trigger information corresponding to the function codes and sending the trigger information to the continuous integration server; the continuous integration server is used for integrating the function codes and the automatic vehicle driving engineering according to the trigger information to obtain a compilable code, compiling the compilable code to obtain an executable file, testing the executable file, and sending the executable file passing the test to the continuous deployment server; the continuous deployment server is used for determining a target executable file according to the received executable file and transmitting the target executable file to the simulation test equipment and the target vehicle; and the simulation test equipment is used for carrying out simulation test according to the received target executable file to obtain a simulation test result. By adopting the system, the development efficiency of the software can be improved.

Description

Development system and method for vehicle automatic driving software
Technical Field
The application relates to the technical field of automatic vehicle driving, in particular to a system and a method for developing automatic vehicle driving software.
Background
With the development of vehicle intellectualization and networking, an automatic driving technology in the field of commercial vehicles appears, a system adopting the automatic driving technology can execute a dynamic driving task, realize auxiliary driving under the condition of having a driver, and realize complete automatic driving under the condition of not having the driver.
In a traditional software development process for automatic driving of a vehicle, after development of each software module is completed, an integration engineer is required to manually integrate the developed software package into an overall software project, and along with the improvement of software complexity, a large amount of integration, compiling and testing work is required to be manually completed. Moreover, after the entire software package is completely built, it needs to be manually written to a specific controller of the vehicle by an engineer for joint debugging and testing.
However, the conventional development process of the automatic driving software of the vehicle has the problems of high dependence on manual operation and low efficiency.
Disclosure of Invention
In view of the above, it is necessary to provide a system and a method for developing vehicle automatic driving software, which can improve software development efficiency, in view of the above technical problems.
In a first aspect, the present application provides a system for developing vehicle autopilot software. The system comprises:
the code management server is used for receiving the function codes uploaded by the development machine terminal, generating trigger information corresponding to the function codes and sending the trigger information to the continuous integration server;
the continuous integration server is used for integrating the function codes and the automatic vehicle driving engineering according to the trigger information to obtain compilable codes, compiling the compilable codes to obtain executable files, testing the executable files and sending the executable files passing the test to the continuous deployment server;
the continuous deployment server is used for determining a target executable file according to the received executable file and transmitting the target executable file to the simulation test equipment and the target vehicle;
the simulation test equipment is used for carrying out simulation test according to the received target executable file under the condition of meeting the simulation test condition to obtain a simulation test result;
the target vehicle is used for flashing a controller of the target vehicle according to the target executable file under the condition that the real vehicle test condition is met so as to perform function test on the whole vehicle to obtain a real vehicle test result;
and the development machine terminal is used for updating the function codes in an iterative mode according to the software test result until the software test result meets the preset condition, and the software test result comprises at least one of a simulation test result and an actual vehicle test result.
In one embodiment, the persistent deployment server stores a plurality of historical executable files and historical version information of the plurality of historical executable files, and is further configured to archive the received executable files to obtain version information of the received executable files; determining target version information from the received version information and historical version information of the executable file according to the version information corresponding to the target test requirement; and determining the target executable file according to the target version information.
In one embodiment, the simulation test equipment is further used for performing model-in-loop test and performing software-in-loop test; and performing hardware-in-loop test according to the target executable file.
In one embodiment, the simulation test equipment is further configured to write a controller in the target hardware simulation test environment in a flash manner according to the target executable file, and perform a function test on the entire vehicle according to a target test requirement based on the target hardware simulation test environment, so as to complete the hardware-in-loop test.
In one embodiment, the persistent integration server is further configured to: performing coding specification detection and static detection on the function codes to generate a first problem list; if the executable file cannot be obtained when the compilable code is compiled, generating a second problem list; and if the test fails when the executable file is tested, generating a third problem list.
In a second aspect, the application further provides a development method of the automatic vehicle driving software. The method comprises the following steps:
receiving the function codes uploaded by the development machine terminal through the code management server, generating trigger information corresponding to the function codes, and sending the trigger information to the continuous integration server;
integrating the function codes with the automatic vehicle driving engineering through the continuous integration server according to the trigger information to obtain compilable codes, compiling the compilable codes to obtain executable files, testing the executable files, and sending the executable files passing the test to the continuous deployment server;
determining a target executable file according to the received executable file through the continuous deployment server, and transmitting the target executable file to the simulation test equipment and the target vehicle;
carrying out simulation test according to the received target executable file by using simulation test equipment under the condition of meeting simulation test conditions to obtain a simulation test result;
by the target vehicle, under the condition that the real vehicle test condition is met, the controller of the target vehicle is flashed according to the target executable file so as to perform function test on the whole vehicle, and a real vehicle test result is obtained;
and updating the function codes in an iterative mode through the development machine terminal according to the software test result until the software test result meets the preset condition, wherein the software test result comprises at least one of a simulation test result and an actual vehicle test result.
In one embodiment, the persistent deployment server stores a plurality of historical executables and historical version information of the plurality of historical executables, and the determining, by the persistent deployment server, a target executable according to the received executable includes: archiving the received executable file through a continuous deployment server to obtain the version information of the received executable file; determining target version information from the received version information and historical version information of the executable file according to the version information corresponding to the target test requirement; and determining the target executable file according to the target version information.
In one embodiment, the simulation test is performed according to the received target executable file by the simulation test device under the condition that the simulation test condition is met, including: performing model in-loop test and software in-loop test by using simulation test equipment under the condition of meeting simulation test conditions; and according to the received target executable file, performing hardware-in-loop test.
In one embodiment, performing a hardware-in-the-loop test according to a received target executable file includes: and according to the target executable file, performing flash writing on the controller in the target hardware simulation test environment, and performing function test on the whole vehicle according to the target test requirement on the basis of the target hardware simulation test environment so as to complete the hardware-in-loop test.
In one embodiment, the method further comprises: performing coding specification detection and static detection on the function codes through a continuous integration server to generate a first problem list; if the executable file cannot be obtained when the compilable code is compiled, generating a second problem list; and if the test fails when the executable file is tested, generating a third problem list.
According to the development system and the development method of the automatic vehicle driving software, the hosting and filing of the function codes are realized through the code management server; by the continuous integration server, the function codes and the automatic vehicle driving engineering are integrated to obtain the compilable codes, the compilable codes are compiled to obtain the executable files, and the executable files are tested; by continuously deploying the server, executable version control and pushing are achieved, and the work of manual operation in the traditional software development process such as integration, compiling, testing, flashing and the like is reduced, so that the problems of low efficiency and poor reliability caused by manual operation are reduced, and the aim of improving the development efficiency of the vehicle automatic driving software can be fulfilled; by the aid of the simulation test equipment and the target equipment, simulation test and real vehicle test are realized, a closed loop from code development to code test in a software development process is formed, and a more accurate and comprehensive software test result can be obtained; through the development machine terminal, the function codes are updated iteratively according to the software test result, the vehicle automatic driving software with more complete functions and higher reliability is obtained, the requirements of the vehicle automatic driving software development process on quick test and verification are met, and therefore the development efficiency of the vehicle automatic driving software is further improved.
Drawings
FIG. 1 is a block diagram showing a configuration of a system for developing automatic driving software of a vehicle according to an embodiment;
FIG. 2 is a schematic flow chart diagram illustrating a method for developing vehicle autopilot software in one embodiment;
FIG. 3 is a block diagram showing the construction of a system for developing automatic driving software for a vehicle according to another embodiment;
FIG. 4 is a flowchart illustrating a method for developing vehicle autopilot software according to another embodiment;
FIG. 5 is a block diagram showing the construction of a device for developing automatic driving software for a vehicle according to an embodiment;
FIG. 6 is a diagram illustrating an internal structure of a computer device according to an embodiment.
Detailed Description
In order to make the objects, technical solutions and advantages of the present application more apparent, the present application is described in further detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative of the present application and are not intended to limit the present application.
The embodiment of the application provides a development system of vehicle automatic driving software, and as shown in fig. 1, the system includes a developer terminal 102, a code management server 104, a continuous integration server 106, a continuous deployment server 108, a simulation test device 110, and a target vehicle 112. The development machine terminal 102, the code management server 104, the persistent integration server 106, the persistent deployment server 108, and the simulation test device 110 are all connected via an ethernet, the code management server 104, the persistent integration server 106, and the persistent deployment server 108 are deployed on a server cluster via a distributed technology, and the target vehicle 112 and the persistent deployment server 108 are connected via a wireless communication network, such as an LTE (Long Term Evolution) network.
The code management server 104 is configured to receive the function codes uploaded by the development machine terminal 102, generate trigger information corresponding to the function codes, and send the trigger information to the persistent integration server 106.
The developer develops the functions related to the vehicle automatic driving software on the developer terminal 102 according to the development task, and pushes the function codes with the test conditions to the code management server 104 after finishing the development of one function module, so that the function codes with the test conditions are merged into the vehicle automatic driving project and are integrated with other function modules of the whole software project as soon as possible. The function code with the test condition is a code corresponding to the function module, and the code needs to pass through an automatic test and a manual test, that is, a developer will perform at least one of the automatic test and the manual test before pushing the function code, so as to ensure the correctness of the function code. The trigger information is information for triggering the continuous integration server, the trigger information is related to whether the function code meets the trigger condition of the continuous integration server, and when the function code meets the trigger condition of the continuous integration server, the trigger information is used for sending the trigger information to the continuous integration server so as to trigger the continuous integration server to perform relevant operations such as integration; when the function code does not meet the trigger condition of the continuous integration server, the trigger information cannot be sent to the continuous integration server, but is returned to the developer terminal.
Specifically, before the developer develops the software, the code management server 104 is configured to pull the software-related code to a developer terminal used by the developer, so as to implement code distribution and collaborative development among multiple developers. After the developer completes software development, the functional code in the developer terminal is uploaded to the code management server 104 for hosting. For the function codes to be submitted to the persistent integration server, the code management server 104 first pre-reviews the function codes, determines the implementation logic, data structure and complexity of the function codes, then detects the function codes passing through the pre-review, generates trigger information if the function codes meet trigger conditions, and sends the trigger information to the persistent integration server to trigger the persistent integration server to perform relevant operations such as integration and the like. And if the function code does not meet the triggering condition, generating error triggering information and returning the error triggering information to the terminal of the development machine.
And the continuous integration server 106 is used for integrating the function codes with the automatic vehicle driving engineering according to the trigger information to obtain a compilable code, compiling the compilable code to obtain an executable file, testing the executable file, and sending the executable file passing the test to the continuous deployment server 108.
Here, the Continuous Integration (CI) is to integrate the developed functions into the whole project at any time according to the development situation. The automatic vehicle driving engineering belongs to software engineering which is developed and completed by developers and comprises function codes of functions related to automatic vehicle driving, and the automatic vehicle driving engineering is hosted locally in a continuous integration server.
Specifically, after the code management server 104 sends the trigger information to the persistent integration server 106, the persistent integration server 106 receives the trigger information, starts an automatic integration process according to the trigger information, integrates the function code with the vehicle automatic driving project to obtain a compilable code based on the vehicle automatic driving project, compiles the compilable code to obtain an executable file after compilation is successful, tests the executable file, and sends the executable file that passes the test to the persistent deployment server 108.
And the continuous deployment server 108 is used for determining a target executable file according to the received executable file and transmitting the target executable file to the simulation test equipment 110 and the target vehicle 112.
The Continuous Deployment (CD) refers to a process of automatically providing a product of a release version for a user to use according to a function integration condition, so that delivery and fast iteration are formed in a small period, and the user can experience a new function as soon as possible. The target executable is a particular version of the executable as determined by the testing requirements. Since the integration and deployment are performed continuously in this embodiment, although it is possible to integrate the code of the new function and provide the executable file with an updated version, the version of the corresponding executable file is different due to different testing requirements, and especially for developers who want to test the known stable version, they only need to test the known stable version of the executable file, but do not need to test the executable file of the latest version. The simulation test equipment is test equipment under a simulation environment and is used for simulating vehicle test under an actual environment; the target vehicle is a vehicle used for testing in an actual environment, mainly a commercial vehicle, and can also be a passenger vehicle.
Specifically, after persistent integration server 106 sends the executable file to persistent deployment server 108, persistent deployment server 108 pulls the executable file local to the server, determines a target executable file from the executable file local to the server to enable versioning of the executable file, and pushes the target executable file to emulation testing device 110 and an OTA (Over-the-Air Technology) platform through which the target executable file is transmitted to target vehicle 112.
The simulation test device 110 is configured to perform a simulation test according to the received target executable file to obtain a simulation test result when the simulation test condition is satisfied.
The simulation test conditions refer to conditions that the target executable file can be tested in the simulation environment, different test cases need to be adopted according to different test requirements, some test cases need to be tested in the simulation environment and the actual environment at the same time, some test cases only need to be tested in the simulation environment, and some test cases only need to be tested in the actual environment. The simulation test is realized based on automatic driving simulation software, and common automatic driving simulation software comprises Prescan, Carsim, Tracksim and the like. The simulation test device may be a computer device or a terminal in which simulation software is installed. The simulation test result indicates whether the simulation test passed or failed.
Specifically, after the target executable file is pushed to the simulation test device 110, the simulation test device 110 receives the target executable file, determines whether the target executable file can be subjected to a simulation test, and if so, performs the simulation test according to the target executable file to obtain a simulation test result, and feeds the simulation test result back to the development machine terminal 102; if not, the simulation test flow is not started.
And the target vehicle 112 is used for performing flash writing on the controller of the target vehicle according to the target executable file under the condition that the real vehicle test condition is met so as to perform a function test on the whole vehicle to obtain a real vehicle test result.
The real vehicle test condition refers to a condition that the target executable file can be tested in an actual environment, and includes a condition that the target executable file can only be tested in the actual environment and a condition that the target executable file can be tested in a simulation environment and the actual environment at the same time. The real vehicle test is to perform software function test on the whole target vehicle, wherein the software comprises vehicle automatic driving software and software of other functions, such as vehicle networking and driving assistance. The real vehicle test depends on a real vehicle test environment which is deployed in advance, software is written through an automatic means, and then real vehicle test personnel complete relevant test work and obtain a real vehicle test result. The real vehicle test result indicates that the real vehicle test passes or fails.
The controller includes a Domain Control Unit (DCU), such as a smart driving Domain controller, and a plurality of Electronic Control Units (ECUs) for implementing different functions supporting the OTA platform. The domain controller is the core of each functional domain of the automobile, comprises a domain main control processor, an operating system, application software and the like, and is used for integrating core functions which need to be realized by a plurality of ECUs originally.
Specifically, after the target executable file is transmitted to the target vehicle 112 through the OTA platform, the target vehicle 112 receives the target executable file, determines whether the target executable file CAN perform the real vehicle test, and if so, writes the target executable file to a controller of the target vehicle according to a file write protocol of the CAN bus through a vehicle Tbox (Telematics-box) of the target vehicle 112, so that a subsequent real vehicle tester performs a function test on the entire vehicle to obtain a real vehicle test result, and feeds back the simulation test result to the developer terminal 102 through the real vehicle tester.
And the development machine terminal 102 is used for updating the function codes in an iterative manner according to the software test result until the software test result meets a preset condition, wherein the software test result comprises at least one of a simulation test result and an actual vehicle test result.
Under the condition that the target executable file simultaneously meets the simulation test condition and the real vehicle test condition, the software test result is a simulation test result and a real vehicle test result, and the preset condition is a condition that both the simulation test and the real vehicle test pass; under the condition that the target executable file only meets the simulation test conditions, the software test result is a simulation test result, and the preset conditions are conditions that the simulation test passes; and under the condition that the target executable file only meets the real vehicle test conditions, the software test result is a real vehicle test result, and the preset condition is a condition that the real vehicle test passes.
The preset condition may be determined by a tester according to a specific test requirement, and the preset conditions corresponding to different test requirements are different, or may be a preset condition that needs to be met under all test requirements, for example, the number of problems in the simulation test result and the real vehicle test result is reduced to a preset value, or the difference between the number of problems in the simulation test result and the number of problems in the real vehicle test result meets a preset range.
Specifically, the developer terminal 102 receives at least one of the simulation test result fed back by the simulation test device 110 and the real vehicle test result fed back by the target vehicle 112, so that the developer analyzes the software test result, updates the function code in an iterative manner in a direction of continuously reducing problems in the software test result, pushes the updated function code to the code management server 104 through the developer terminal 102, the code management server 104 receives and files the updated function code, determines version information of the updated function code, triggers the persistent integration server based on the updated function code, and stops updating the function code until the software test result meets a preset condition, thereby obtaining vehicle automatic driving software with more complete functions and higher reliability.
In the development system of the automatic vehicle driving software, the hosting and filing of the functional codes are realized through the code management server; the function codes and the automatic vehicle driving project are integrated through the continuous integration server to obtain the compilable codes, the compilable codes are compiled to obtain the executable files, and the executable files are tested; by continuously deploying the server, executable version control and pushing are achieved, and the work of manual operation in the traditional software development process such as integration, compiling, testing, flashing and the like is reduced, so that the problems of low efficiency and poor reliability caused by manual operation are reduced, and the aim of improving the development efficiency of the vehicle automatic driving software can be fulfilled; by the aid of the simulation test equipment and the target equipment, simulation test and real vehicle test are realized, a closed loop from code development to code test in a software development process is formed, and a more accurate and comprehensive software test result can be obtained; through the development machine terminal, the function codes are updated iteratively according to the software test result, the vehicle automatic driving software with more complete functions and higher reliability is obtained, the requirements of the vehicle automatic driving software development process on quick test and verification are met, and therefore the development efficiency of the vehicle automatic driving software is further improved.
In one embodiment, the persistent deployment server stores a plurality of historical executables and historical version information of the plurality of historical executables, and is further configured to: archiving the received executable file to obtain the version information of the received executable file; determining target version information from the received version information and historical version information of the executable file according to the version information corresponding to the target test requirement; and determining the target executable file according to the target version information.
Since integration and deployment are performed continuously in this embodiment, for the same function, many versions of function codes are hosted in the code management server, and accordingly, many versions of executable files are stored in the continuous deployment server. The historical executable file refers to an executable file of different versions stored in the server and continuously deployed before the function codes uploaded by the development machine terminal are integrated, and the version information comprises a version number, a version updating date, version updating contents and the like.
Specifically, after pulling the executable file to the local server, the continuous deployment server archives the received executable file to obtain the version information of the received executable file; determining target version information from the received version information and historical version information of the executable file according to the version information corresponding to the target test requirement; and determining the target executable file according to the target version information.
In the embodiment, the received executable file is filed to obtain the version information of the executable file, and the target version information is determined through the matching of the version information, so that the target executable file is determined, and the purpose of controlling the version of the executable file can be achieved.
In one embodiment, the simulation test equipment is further configured to: performing model in-loop test, and performing software in-loop test; and performing hardware-in-loop test according to the target executable file.
The Model in the loop (MIL) test mainly aims at software development based on a software algorithm Model, and mainly aims at verifying logic of the software algorithm Model. The main purpose of the software in the loop (MIL) test is to verify the consistency between the code and the software algorithm Model, i.e. whether the function of the code generated or handwritten based on the software algorithm Model is consistent with the function of the software algorithm Model. The main purpose of Hardware-in-the-loop (HIL) testing is to verify the code function of the controller, i.e. to download the code to the controller of the actual vehicle and to perform functional testing on the controller.
The model-in-loop test and the software-in-loop test can be directly performed in a simulation scene provided by the automatic driving simulation software, and the simulation scene of the model-in-loop test is the same as that of the software-in-loop test, so that the simulation test equipment can perform the model-in-loop test and the software-in-loop test in sequence before receiving the target executable file, and can also perform the model-in-loop test, the software-in-loop test and the hardware-in-loop test in sequence after receiving the target executable file. The hardware-in-loop test depends on a hardware simulation test environment which is deployed in advance, the hardware simulation test environment comprises a simulation scene which is the same as that of model in-loop test and software in-loop test, the controller of an actual vehicle comprises domain controllers such as an intelligent driving domain controller and the like, the controller further comprises a plurality of ECUs supporting an OTA platform and used for realizing different functions, such as auxiliary driving related functions and car networking related functions, and the selection of the controller depends on test requirements.
Specifically, the simulation test result includes a model-in-loop test result, a software-in-loop test result, and a hardware-in-loop test result, and the simulation test device performs the model-in-loop test and the software-in-loop test in sequence before receiving the target executable file, wherein the step of performing the model-in-loop test by the simulation test device includes: in a simulation scene, the simulation test equipment tests the software algorithm model to obtain a model-in-loop test result, so that a subsequent developer continuously optimizes the software algorithm model according to the model-in-loop test result to obtain an optimized software algorithm model. After the model in-loop test is completed, the step of performing the software in-loop test by the simulation test equipment comprises the following steps: and under the same simulation scene as the model in-loop test, the simulation test equipment performs code conversion on the optimized software algorithm model to obtain a model code, tests the model code to obtain a software in-loop test result, so that a subsequent developer continuously optimizes the model code according to the software in-loop test result to obtain the optimized model code. After receiving the target executable file, the simulation test equipment performs hardware-in-the-loop test, and the steps include: under the hardware simulation test environment corresponding to the target executable file, the simulation test equipment writes the target executable file to the controller in a flash mode, tests the software function of the whole vehicle to obtain a hardware-in-loop test result, so that a subsequent developer can update the function code corresponding to the target executable file in an iterative mode according to the hardware-in-loop test result to obtain vehicle automatic driving software with complete functions and high reliability.
In one embodiment, the simulation test result includes a model-in-loop test result, a software-in-loop test result, and a hardware-in-loop test result, and the simulation test device performs the model-in-loop test, the software-in-loop test, and the hardware-in-loop test in sequence after receiving the target executable file. The step of performing model-in-loop test on the simulation test equipment comprises the following steps: in a simulation scene, the simulation test equipment tests the software algorithm model to obtain a model-in-loop test result, so that a subsequent developer continuously optimizes the software algorithm model according to the model-in-loop test result to obtain an optimized software algorithm model. After the model in-loop test is completed, the step of performing the software in-loop test by the simulation test equipment comprises the following steps: and under the same simulation scene as the model in-loop test, the simulation test equipment performs code conversion on the optimized software algorithm model to obtain a model code, tests the model code to obtain a software in-loop test result, so that a subsequent developer continuously optimizes the model code according to the software in-loop test result to obtain the optimized model code. After the software-in-loop test is completed, the step of performing the hardware-in-loop test by the simulation test equipment comprises the following steps: under the hardware simulation test environment corresponding to the target executable file, the simulation test equipment writes the target executable file to the controller in a flash mode, tests the software function of the whole vehicle to obtain a hardware-in-loop test result, so that a subsequent developer can update the function code corresponding to the target executable file in an iterative mode according to the hardware-in-loop test result to obtain vehicle automatic driving software with complete functions and high reliability.
In the embodiment, the simulation test equipment is used for performing model-in-loop test, software-in-loop test and hardware-in-loop test, and the simulation test is performed from three aspects of software algorithm model test, code test and hardware simulation test in a simulation scene, so that the simulation test result is closer to the test result in the actual vehicle running process, and the aim of improving the development efficiency of the vehicle automatic driving software can be achieved.
In one embodiment, the simulation test equipment is further configured to: and performing flash writing on a controller in a hardware simulation test environment according to the target executable file, and performing function test on the whole vehicle according to a target test requirement based on the hardware simulation test environment so as to complete the in-loop test of hardware.
Wherein the target test requirement is a test requirement corresponding to the target executable file. The target hardware simulation test environment is a hardware simulation test environment corresponding to the target executable file.
Specifically, before receiving a target executable file, the simulation test equipment determines different hardware simulation test environments based on different test requirements, including determining different controllers; and deploying each hardware simulation test environment, including accessing each controller to the simulation test equipment. After receiving the target executable file, the simulation test equipment determines a target hardware simulation test environment according to the target executable file, writes the target executable file to the controller in the target hardware simulation test environment, and tests the software functions of the whole vehicle according to the target test requirement corresponding to the target executable file, wherein the software functions of the whole vehicle comprise automatic driving related functions, auxiliary driving related functions, vehicle networking related functions and the like, so that a hardware-in-loop test result is obtained, a subsequent developer can conveniently update function codes corresponding to the target executable file in an iterative manner according to the hardware-in-loop test result, and vehicle automatic driving software with complete functions and higher reliability is obtained.
In the embodiment, the target hardware simulation test environment is determined based on the target executable file, the target executable file is written to the controller of the target hardware simulation test environment in a flashing mode, the function of the whole vehicle is tested, and the purpose of performing hardware-in-loop test through the simulation test equipment in the target hardware simulation test environment can be achieved.
In one embodiment, the persistent integration server is further configured to: performing coding specification detection and static detection on the function codes to generate a first problem list; if the executable file cannot be obtained when the compilable code is compiled, generating a second problem list; and if the test fails when the executable file is tested, generating a third problem list.
The first problem list is a detection result of the functional code which fails to be detected, the second problem list is a compiling result of the compilable code which fails to be compiled, and the third problem list is a test result of the executable file which fails to be tested.
Specifically, after the code management server sends the trigger information to the persistent integration server, the persistent integration server receives the trigger information, pulls the function code from the code management server to the local of the persistent integration server, starts an automatic integration process according to the trigger information, performs detection such as coding specification detection and static inspection on the function code, and automatically generates a first problem list if the detection fails, and feeds the first problem list back to the developer terminal. And the developer modifies the function codes according to the first problem list and uploads the modified function codes to the code management server again through the developer terminal until the detection is passed.
And integrating the function codes passing the detection with the automatic vehicle driving engineering by the continuous integration server to obtain the compilable codes based on the automatic vehicle driving engineering. And compiling the compilable codes by the continuous integration server, if the executable file cannot be obtained, indicating that the compilation fails, automatically generating a second problem list, and feeding the second problem list back to the development machine terminal. And the developer modifies the function codes according to the second problem list and uploads the modified function codes to the code management server again through the developer terminal until compiling is successful. And after the continuous integration server successfully compiles the compilable codes, obtaining an executable file.
And the continuous integration server tests the executable file, including unit testing, coverage rate testing and integration testing, automatically generates a third problem list if the test fails, and feeds the third problem list back to the terminal of the development machine. And the developer modifies the function codes according to the third problem list and uploads the modified function codes to the code management server again through the developer terminal until the test is passed.
Wherein, the unit test is to check and verify the minimum testable unit, such as a function, in the software; the coverage rate test is a measurement of the test completion degree, and is used for measuring the execution condition of the test case according to a certain coverage criterion so as to judge whether the test is executed fully, for example, the coverage rate of the number of lines of the running code in the code running process is tested, and the number of codes tested is indicated; the integration test, also called assembly test or combined test, is a test that assembles all units passing the unit test into a subsystem or a system according to design requirements on the basis of the unit test.
In the embodiment, the problem list in the processes of detecting the functional codes, compiling the compilable codes and testing the executable files is fed back to the terminal of the development machine through the continuous integration server, so that the aims of helping developers to quickly find the problems of the functional codes and quickly perfecting the functional codes can be achieved, and the development efficiency of the automatic driving software of the vehicle is improved.
Based on the same inventive concept, the embodiment of the present application further provides a method for developing vehicle automatic driving software, which is applied to the system for developing vehicle automatic driving software, and an implementation scheme for solving the problem provided by the method is similar to the implementation scheme described in the system, so that specific limitations in one or more embodiments of the method for developing vehicle automatic driving software provided below may be referred to the limitations of the system for developing vehicle automatic driving software, and are not described herein again.
In one embodiment, as shown in fig. 2, there is provided a method for developing automatic driving software of a vehicle, comprising the steps of:
step 202, receiving the function code uploaded through the development machine terminal through the code management server, generating trigger information corresponding to the function code, and sending the trigger information to the continuous integration server.
And 204, integrating the function codes and the automatic vehicle driving engineering according to the trigger information through the continuous integration server to obtain a compilable code, compiling the compilable code to obtain an executable file, testing the executable file, and sending the executable file passing the test to the continuous deployment server.
And step 206, determining a target executable file according to the received executable file through the continuous deployment server, and transmitting the target executable file to the simulation test equipment and the target vehicle.
And step 208, performing simulation test according to the received target executable file through the simulation test equipment under the condition that the simulation test conditions are met to obtain a simulation test result.
And step 210, by the target vehicle, under the condition that the real vehicle test condition is met, according to the target executable file, performing flash writing on the controller of the target vehicle so as to perform function test on the whole vehicle to obtain a real vehicle test result.
And 212, updating the function codes in an iterative mode through the development machine terminal according to the software test result until the software test result meets a preset condition, wherein the software test result comprises at least one of a simulation test result and an actual vehicle test result.
In the development method of the automatic vehicle driving software, the hosting and filing of the function codes are realized through the code management server; by the continuous integration server, the function codes and the automatic vehicle driving engineering are integrated to obtain the compilable codes, the compilable codes are compiled to obtain the executable files, and the executable files are tested; by continuously deploying the server, executable version control and pushing are achieved, and the work of manual operation in the traditional software development process such as integration, compiling, testing, flashing and the like is reduced, so that the problems of low efficiency and poor reliability caused by manual operation are reduced, and the aim of improving the development efficiency of the vehicle automatic driving software can be fulfilled; by the aid of the simulation test equipment and the target equipment, simulation test and real vehicle test are realized, a closed loop from code development to code test in a software development process is formed, and a more accurate and comprehensive software test result can be obtained; through the development machine terminal, the function codes are updated iteratively according to the software test result, the vehicle automatic driving software with more complete functions and higher reliability is obtained, the requirements of the vehicle automatic driving software development process on quick test and verification are met, and therefore the development efficiency of the vehicle automatic driving software is further improved.
In one embodiment, a persistent deployment server stores a plurality of historical executables and historical version information of the plurality of historical executables, and determining, by the persistent deployment server, a target executable from a received executable comprises: archiving the received executable file through a continuous deployment server to obtain the version information of the received executable file; determining target version information from the received version information and historical version information of the executable file according to the version information corresponding to the target test requirement; and determining the target executable file according to the target version information.
In one embodiment, performing, by a simulation test device, a simulation test according to a received target executable file under a condition that a simulation test condition is satisfied includes: performing model in-loop test and software in-loop test by using simulation test equipment under the condition of meeting simulation test conditions; and according to the received target executable file, performing hardware-in-loop test.
In one embodiment, performing a hardware-in-the-loop test based on a received target executable file includes: and according to the target executable file, performing flash writing on the controller in the target hardware simulation test environment, and performing function test on the whole vehicle according to the target test requirement on the basis of the target hardware simulation test environment so as to complete the hardware-in-loop test.
In one embodiment, the method for developing the vehicle automatic driving software further comprises: performing coding specification detection and static detection on the function codes through a continuous integration server to generate a first problem list; if the executable file cannot be obtained when the compilable code is compiled, generating a second problem list; and if the test fails when the executable file is tested, generating a third problem list.
In one embodiment, as shown in FIG. 3, a block diagram of a development system for vehicle autopilot software is provided. The development system of the automatic driving software of the vehicle comprises: a developer terminal of a developer, a code management server, a CI server (persistent integration server), a CD server (persistent deployment server), a simulation test apparatus (also referred to as a simulation environment in this embodiment), and a target vehicle (also referred to as a real vehicle test in this embodiment).
The system comprises a developer terminal, a code management server, a CI server, a CD server and a simulation environment, wherein the developer terminal, the code management server, the CI server, the CD server and the simulation environment are all connected through Ethernet, and an actual vehicle test and the CD server are connected through an LTE wireless data network to form a signal loop of an automatic software continuous integration and automatic deployment test system.
A developer submits a code to a code management server through a developer terminal and receives messages of the code management server, a CI server, a simulation environment and real vehicle test feedback; the code management server is used for project code warehouse management, code merging management and authority management, and feeds back results to a developer terminal of a developer; the CI server is used for code pulling, code checking, automatic compiling, automatic integrating, automatic testing and configuration management, and feeding back problems to a developer terminal of a developer; the CD server is used for pulling and archiving the content and realizing remote pushing through the OTA platform; the simulation environment is used for model in-loop testing, software in-loop testing and hardware in-loop testing, and feeding back problems to a developer terminal of a developer; the real vehicle test is used for remote pulling, deployment flashing and real vehicle verification, and feeding back problems to a developer terminal of a developer.
Fig. 4 is a flowchart illustrating a method for developing vehicle automatic driving software applied to the system for developing vehicle automatic driving software. Referring to fig. 4, the method for developing the vehicle automatic driving software includes the steps of:
1. and the developer develops the related software functions according to the related functions and development tasks defined by the development team, and manually submits the software codes with the test conditions to the code management server through the developer terminal. In the whole development process, a developer receives the test problems of the CI server, the simulation environment and the real vehicle test feedback. A developer completes related software codes by combining problems found in the links of code integration, simulation test and real vehicle test.
2. Pulling the relevant codes of the project in the code management server to a developer terminal used by a developer through the code management server so as to realize code distribution and collaborative development among a plurality of developers; after a developer completes development of related software, uploading related codes in a developer terminal to a server for hosting; when function integration is needed, code which is expected to be submitted to the CI server is pre-evaluated, and the evaluation content comprises software implementation logic, a data structure, complexity and the like; and detecting the code state passing the pre-evaluation, and if the code state meets the trigger condition, providing a trigger signal of the CI server to trigger the relevant integrated operation.
3. And code pulling is carried out through a CI server: starting an automatic integration process by receiving trigger information submitted by a code management server; and (4) carrying out code checking: performing pre-compilation check such as coding specification, static check and the like on the codes triggering automatic integration, automatically generating a relevant question list for the codes which fail to pass the check, and feeding back failure information to a developer terminal used by a developer; carrying out automatic integration: integrating the submitted codes with the actual engineering to form codes which can be compiled based on the whole software engineering and are used for the next step of automatic compiling and testing; performing automated compilation: compiling the integrated software project, automatically testing an executable file generated after compiling is successful, and generating an automatic integration report, so that a subsequent developer can conveniently obtain relevant information of code integration when maintaining the software code; for the project with failed compilation, automatically generating a related question sheet, and feeding back a failure message to a developer terminal used by a developer; the automatic test comprises the steps of performing unit test, coverage rate test and integration test on an executable file generated after compiling is successful, and sending the executable file passing the test to a CD server for automatic deployment and simulation test in a simulation environment; and for the software code which fails to execute the automatic test, automatically generating a related question list, and feeding back a failure message to a developer terminal used by a developer. According to different project requirements, a configuration manager can deploy related functions of the CI server and cut related functions according to an actual flow, for example, for a test requirement which can only be tested in a real vehicle environment or under the condition that a simulation environment is not set up, an executable file corresponding to the test requirement can not be subjected to simulation test in the simulation environment, for example, some test requirements can only be tested in the simulation environment, at the moment, the executable file corresponding to the test requirement can not be subjected to the real vehicle test in the real vehicle environment, so that configuration management in the software development process is realized.
4. And pulling the executable file in the CD server: according to the automatic integration completion condition of the CI server, pulling the automatically integrated executable file to the local server for subsequent file archiving and pushing; and performing executable file archiving: the executable file pulled to the server is subjected to file archiving so as to realize the version control of the executable file and facilitate subsequent pushing and flash; carrying out remote pushing: and determining a specific version of the executable file which is flashed to the controller based on the test requirement, pushing the executable file of the specific version to the OTA platform, and distributing the executable file of the specific version to the vehicle which actually carries out the test by the OTA platform to complete the software update of the relevant controller.
5. And receiving the software codes and the relevant models pushed from the CI server through a simulation environment, and performing model-in-loop test, software-in-loop test and hardware-in-loop test to solve the relevant problems in the early stage of software development. The model-in-loop test mainly aims at model-based software development, and the test object is a software algorithm model and mainly verifies software algorithm logic; the software in-loop test is mainly used for verifying the consistency of the code and the model, and in addition, the software in-loop test also verifies the logic and the function related to the handwritten code; the hardware-in-loop test is mainly used for code function test of the controller, the hardware-in-loop test depends on a distributed hardware simulation test environment, the hardware simulation test environment comprises a simulation environment which is the same as that of the model-in-loop test and the software-in-loop test, and the hardware-in-loop test also comprises a controller of an actual vehicle, and the brushing and using test is completed through an automatic means. In the processes of model in-loop test, software in-loop test and hardware in-loop test, if the simulation test fails, a relevant question sheet is automatically generated, and a failure message is fed back to a developer terminal used by a developer.
6. Through real vehicle test, carry out long-range drawing: the vehicle-mounted terminal is connected to the OTA platform, data pulling is completed from the OTA platform through a network transmission protocol of wireless communication, and the data pulling is stored in the vehicle terminal for subsequent data flashing; carrying out deployment flash: the method comprises the steps of performing flash writing based on a file flash protocol of a CAN bus local to a vehicle (generally, a vehicle-mounted Tbox of the vehicle), and flash writing an executable file of a specific version into a controller of the vehicle, wherein the controller CAN be a domain controller or an ECU with other functions.
The real vehicle test is a software function test for the whole vehicle, depends on a deployed real vehicle test environment, and needs real vehicle testers to manually complete related test work after completing the flash through an automatic means.
In this embodiment, by combining the automatic continuous integration and automatic continuous deployment in the software development process with the controller verification and test technology, the codes generated in the software development process are automatically deployed and tested from development to integration and testing in the software development process. Based on the code management and version control technology, the software code management and version control are realized in the code management server; based on continuous integration and continuous deployment technology, the code continuous integration and continuous deployment work is realized in the CI server and the 4CD server, the integration efficiency is obviously improved, and a better software development support function is provided for a development team; based on continuous deployment and an automatic test technology, the automatic pushing and flashing of software and the automatic simulation test are realized in a simulation environment and an actual vehicle test, and the problems of low efficiency and poor reliability caused by manpower in the software deployment process are reduced. And moreover, automatic problem feedback and manual problem feedback are carried out on related problems in the whole development process to form a closed loop, so that the requirements of commercial vehicle automatic driving software development on agility and rapid test verification can be met, and the product development cost is saved.
It should be understood that, although the steps in the flowcharts related to the embodiments as described above are sequentially displayed as indicated by arrows, the steps are not necessarily performed sequentially as indicated by the arrows. The steps are not limited to being performed in the exact order illustrated and, unless explicitly stated herein, may be performed in other orders. Moreover, at least a part of the steps in the flowcharts related to the embodiments described above may include multiple steps or multiple stages, which are not necessarily performed at the same time, but may be performed at different times, and the execution order of the steps or stages is not necessarily sequential, but may be rotated or alternated with other steps or at least a part of the steps or stages in other steps.
Based on the same inventive concept, the embodiment of the application also provides a vehicle automatic driving software development device for realizing the vehicle automatic driving software development method. The implementation scheme for solving the problem provided by the device is similar to the implementation scheme recorded in the method, so that specific limitations in one or more embodiments of the device for developing the vehicle automatic driving software provided below can be referred to the limitations on the method for developing the vehicle automatic driving software, and are not described herein again.
In one embodiment, as shown in fig. 5, there is provided a development apparatus 500 of vehicle automatic driving software, including: a code management module 502, a continuous integration module 504, a continuous deployment module 506, a simulation test module 508, a real vehicle test module 510, and a code development module 512, wherein:
the code management module 502 is configured to receive the function codes uploaded by the development machine terminal, generate trigger information corresponding to the function codes, and send the trigger information to the persistent integration server.
The continuous integration module 504 is configured to integrate the function code with the vehicle automatic driving engineering according to the trigger information to obtain a compilable code, compile the compilable code to obtain an executable file, test the executable file, and send the executable file that passes the test to the continuous deployment server.
And a continuous deployment module 506, configured to determine a target executable file according to the received executable file, and transmit the target executable file to the simulation test device and the target vehicle.
And the simulation test module 508 is configured to perform a simulation test according to the received target executable file to obtain a simulation test result when the simulation test condition is met.
And the real vehicle testing module 510 is configured to, when the real vehicle testing condition is met, flush the controller of the target vehicle according to the target executable file, so as to perform a function test on the whole vehicle, and obtain a real vehicle testing result.
And the code development module 512 is configured to update the function code in an iterative manner according to the software test result until the software test result meets a preset condition, where the software test result includes at least one of a simulation test result and an actual vehicle test result.
In one embodiment, the persistent integration module 504 stores a plurality of historical executable files and historical version information of the plurality of historical executable files, and the persistent integration module 504 is further configured to archive the received executable files to obtain version information of the received executable files; determining target version information from the received version information and historical version information of the executable file according to the version information corresponding to the target test requirement; and determining the target executable file according to the target version information.
In one embodiment, the simulation test module 508 is further configured to perform a model-in-loop test, perform a software-in-loop test; and performing hardware-in-loop test according to the target executable file.
In an embodiment, the simulation testing module 508 is further configured to write a controller in the target hardware simulation testing environment in a flash manner according to the target executable file, and perform a function test on the entire vehicle according to a target testing requirement based on the target hardware simulation testing environment, so as to complete the hardware-in-loop test.
In one embodiment, the persistent integration module 504 is further configured to perform code specification detection and static detection on the software code to generate a first question list; if the executable file cannot be obtained when the compilable code is compiled, generating a second problem list; and if the test fails when the executable file is tested, generating a third problem list.
The modules in the development device of the vehicle automatic driving software can be wholly or partially realized by software, hardware and a combination thereof. The modules can be embedded in a hardware form or independent from a processor in the computer device, and can also be stored in a memory in the computer device in a software form, so that the processor can call and execute operations corresponding to the modules.
In one embodiment, a computer device is provided, and the computer device may be any one of the code management server, the persistent integration server, and the persistent deployment server mentioned in the above embodiments, and an internal structure diagram thereof may be as shown in fig. 6. The computer device includes a processor, a memory, and a network interface connected by a system bus. Wherein the processor of the computer device is configured to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program, and a database. The internal memory provides an environment for the operation of an operating system and computer programs in the non-volatile storage medium. The database of the computer device is used for storing function codes, trigger information, vehicle automatic driving engineering, compilable codes, executable files, simulation test results, real vehicle test results and the like. The network interface of the computer device is used for communicating with an external terminal through a network connection. The computer program is executed by a processor to implement a method of developing vehicle autopilot software.
Those skilled in the art will appreciate that the architecture shown in fig. 6 is merely a block diagram of some of the structures associated with the disclosed aspects and is not intended to limit the computing devices to which the disclosed aspects apply, as particular computing devices may include more or less components than those shown, or may combine certain components, or have a different arrangement of components.
In an embodiment, a computer-readable storage medium is provided, on which a computer program is stored, which computer program, when being executed by a processor, carries out the steps of the above-mentioned method embodiments.
In an embodiment, a computer program product is provided, comprising a computer program which, when being executed by a processor, carries out the steps of the above-mentioned method embodiments.
It should be noted that, the user information (including but not limited to user equipment information, user personal information, etc.) and data (including but not limited to data for analysis, stored data, displayed data, etc.) referred to in the present application are information and data authorized by the user or sufficiently authorized by each party, and the collection, use and processing of the related data need to comply with the relevant laws and regulations and standards of the relevant country and region.
It will be understood by those skilled in the art that all or part of the processes of the methods of the embodiments described above can be implemented by hardware instructions of a computer program, which can be stored in a non-volatile computer-readable storage medium, and when executed, can include the processes of the embodiments of the methods described above. Any reference to memory, database, or other medium used in the embodiments provided herein may include at least one of non-volatile and volatile memory. The nonvolatile Memory may include Read-Only Memory (ROM), magnetic tape, floppy disk, flash Memory, optical Memory, high-density embedded nonvolatile Memory, resistive Random Access Memory (ReRAM), Magnetic Random Access Memory (MRAM), Ferroelectric Random Access Memory (FRAM), Phase Change Memory (PCM), graphene Memory, and the like. Volatile Memory can include Random Access Memory (RAM), external cache Memory, and the like. By way of illustration and not limitation, RAM can take many forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM), among others. The databases referred to in various embodiments provided herein may include at least one of relational and non-relational databases. The non-relational database may include, but is not limited to, a block chain based distributed database, and the like. The processors referred to in the embodiments provided herein may be general purpose processors, central processing units, graphics processors, digital signal processors, programmable logic devices, quantum computing based data processing logic devices, etc., without limitation.
The technical features of the above embodiments can be arbitrarily combined, and for the sake of brevity, all possible combinations of the technical features in the above embodiments are not described, but should be considered as the scope of the present specification as long as there is no contradiction between the combinations of the technical features.
The above-mentioned embodiments only express several embodiments of the present application, and the description thereof is more specific and detailed, but not construed as limiting the scope of the present application. It should be noted that, for a person skilled in the art, several variations and modifications can be made without departing from the concept of the present application, which falls within the scope of protection of the present application. Therefore, the protection scope of the present application shall be subject to the appended claims.

Claims (10)

1. A system for developing vehicle autopilot software, the system comprising:
the code management server is used for receiving the function codes uploaded by the development machine terminal, generating trigger information corresponding to the function codes and sending the trigger information to the continuous integration server;
the continuous integration server is used for integrating the function codes and the automatic vehicle driving engineering according to the trigger information to obtain a compilable code, compiling the compilable code to obtain an executable file, testing the executable file, and sending the executable file passing the test to the continuous deployment server;
the continuous deployment server is used for determining a target executable file according to the received executable file and transmitting the target executable file to the simulation test equipment and the target vehicle;
the simulation test equipment is used for carrying out simulation test according to the received target executable file under the condition of meeting the simulation test condition to obtain a simulation test result;
the target vehicle is used for flashing a controller of the target vehicle according to the target executable file under the condition that the real vehicle test condition is met so as to perform a function test on the whole vehicle to obtain a real vehicle test result;
and the development machine terminal is used for updating the function code in an iterative mode according to a software test result until the software test result meets a preset condition, wherein the software test result comprises at least one of the simulation test result and the real vehicle test result.
2. The system of claim 1, wherein the persistent deployment server has stored therein a plurality of historical executables and historical version information of the plurality of historical executables, and wherein the persistent deployment server is further configured to:
archiving the received executable file to obtain the version information of the received executable file;
determining target version information from the received version information of the executable file and the historical version information according to the version information corresponding to the target test requirement;
and determining a target executable file according to the target version information.
3. The system of claim 1, wherein the simulation test equipment is further configured to:
performing model in-loop test, and performing software in-loop test;
and performing hardware-in-loop test according to the target executable file.
4. The system of claim 3, wherein the simulation test equipment is further configured to:
and according to the target executable file, performing flash writing on a controller in a target hardware simulation test environment, and based on the target hardware simulation test environment, performing function test on the whole vehicle according to the target test requirement so as to complete the hardware-in-loop test.
5. The system of claim 1, wherein the persistent integration server is further configured to:
performing coding specification detection and static detection on the function codes to generate a first problem list;
if the executable file cannot be obtained when the compilable code is compiled, generating a second problem list;
and if the test fails when the executable file is tested, generating a third problem list.
6. A method of developing vehicle autopilot software, the method comprising:
receiving a function code uploaded through a development machine terminal through a code management server, generating trigger information corresponding to the function code, and sending the trigger information to a continuous integration server;
integrating the function codes with the automatic vehicle driving engineering to obtain a compilable code, compiling the compilable code to obtain an executable file, testing the executable file and sending the executable file passing the test to a continuous deployment server by the continuous integration server according to the trigger information;
determining a target executable file according to the received executable file through the continuous deployment server, and transmitting the target executable file to the simulation test equipment and the target vehicle;
carrying out simulation test according to the received target executable file by the simulation test equipment under the condition of meeting the simulation test condition to obtain a simulation test result;
by the target vehicle, under the condition that real vehicle test conditions are met, according to the target executable file, the controller of the target vehicle is flashed so as to perform function test on the whole vehicle, and a real vehicle test result is obtained;
and updating the function code in an iterative mode according to a software test result by the development machine terminal until the software test result meets a preset condition, wherein the software test result comprises at least one of the simulation test result and the real vehicle test result.
7. The method of claim 6, wherein the persistent deployment server stores a plurality of historical executables and historical version information of the plurality of historical executables, and wherein determining, by the persistent deployment server, a target executable from the received executables comprises:
archiving the received executable file through the continuous deployment server to obtain the version information of the received executable file;
determining target version information from the received version information of the executable file and the historical version information according to the version information corresponding to the target test requirement;
and determining a target executable file according to the target version information.
8. The method of claim 6, wherein the performing, by the simulation testing device, a simulation test according to the received target executable file if a simulation test condition is satisfied comprises:
performing model in-loop test and software in-loop test by the simulation test equipment under the condition of meeting simulation test conditions;
and according to the received target executable file, performing hardware-in-loop test.
9. The method of claim 8, wherein performing a hardware-in-the-loop test based on the received target executable file comprises:
and according to the target executable file, performing flash writing on a controller in a target hardware simulation test environment, and based on the target hardware simulation test environment, performing function test on the whole vehicle according to the target test requirement so as to complete the hardware-in-loop test.
10. The method of claim 6, further comprising:
performing coding specification detection and static detection on the function codes through the continuous integration server to generate a first problem list;
if the executable file cannot be obtained when the compilable code is compiled, generating a second problem list;
and if the test fails when the executable file is tested, generating a third problem list.
CN202210480738.7A 2022-05-05 2022-05-05 Development system and method of vehicle automatic driving software Active CN114880220B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210480738.7A CN114880220B (en) 2022-05-05 2022-05-05 Development system and method of vehicle automatic driving software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210480738.7A CN114880220B (en) 2022-05-05 2022-05-05 Development system and method of vehicle automatic driving software

Publications (2)

Publication Number Publication Date
CN114880220A true CN114880220A (en) 2022-08-09
CN114880220B CN114880220B (en) 2024-07-09

Family

ID=82673653

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210480738.7A Active CN114880220B (en) 2022-05-05 2022-05-05 Development system and method of vehicle automatic driving software

Country Status (1)

Country Link
CN (1) CN114880220B (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116107882A (en) * 2023-01-03 2023-05-12 广州汽车集团股份有限公司 Vehicle offline detection method, device, computer equipment, system and storage medium
CN116125943A (en) * 2022-12-16 2023-05-16 佛山仙湖实验室 Whole vehicle control strategy development test method and device for hydrogen fuel cell automobile
CN116502238A (en) * 2023-06-26 2023-07-28 中汽智联技术有限公司 Protection method based on car networking product security vulnerability professional library CAVD
CN117493186A (en) * 2023-11-06 2024-02-02 中科驭数(北京)科技有限公司 Code testing method, device, electronic equipment and readable storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120180024A1 (en) * 2011-01-07 2012-07-12 International Business Machines Corporation Synchronizing development code and deployed executable versioning within distributed systems
CN103336688A (en) * 2013-06-20 2013-10-02 中标软件有限公司 Software integrating method and system oriented to cloud computing software research and development process
CN110532189A (en) * 2019-07-18 2019-12-03 中国人民财产保险股份有限公司 A kind of continuous integration system, method and device
CN112988594A (en) * 2021-04-25 2021-06-18 郑州信大捷安信息技术股份有限公司 Integrated detection method and system for code quality evaluation
CN113934640A (en) * 2021-11-10 2022-01-14 合众新能源汽车有限公司 Method and system for automatically testing software

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120180024A1 (en) * 2011-01-07 2012-07-12 International Business Machines Corporation Synchronizing development code and deployed executable versioning within distributed systems
CN103336688A (en) * 2013-06-20 2013-10-02 中标软件有限公司 Software integrating method and system oriented to cloud computing software research and development process
CN110532189A (en) * 2019-07-18 2019-12-03 中国人民财产保险股份有限公司 A kind of continuous integration system, method and device
CN112988594A (en) * 2021-04-25 2021-06-18 郑州信大捷安信息技术股份有限公司 Integrated detection method and system for code quality evaluation
CN113934640A (en) * 2021-11-10 2022-01-14 合众新能源汽车有限公司 Method and system for automatically testing software

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116125943A (en) * 2022-12-16 2023-05-16 佛山仙湖实验室 Whole vehicle control strategy development test method and device for hydrogen fuel cell automobile
CN116107882A (en) * 2023-01-03 2023-05-12 广州汽车集团股份有限公司 Vehicle offline detection method, device, computer equipment, system and storage medium
CN116107882B (en) * 2023-01-03 2024-04-09 广州汽车集团股份有限公司 Vehicle offline detection method, device, computer equipment, system and storage medium
CN116502238A (en) * 2023-06-26 2023-07-28 中汽智联技术有限公司 Protection method based on car networking product security vulnerability professional library CAVD
CN116502238B (en) * 2023-06-26 2023-10-10 中汽智联技术有限公司 Protection method based on car networking product security vulnerability professional library CAVD
CN117493186A (en) * 2023-11-06 2024-02-02 中科驭数(北京)科技有限公司 Code testing method, device, electronic equipment and readable storage medium

Also Published As

Publication number Publication date
CN114880220B (en) 2024-07-09

Similar Documents

Publication Publication Date Title
CN114880220B (en) Development system and method of vehicle automatic driving software
CN110888414B (en) Test method for upgrading vehicle controller
CN110673576B (en) Automatic test method and device, vehicle and storage medium
CN109753430B (en) Interface test method of ground data processing system
CN113111000B (en) Continuous integrated automatic test system and method, electronic equipment and storage medium
CN112988594A (en) Integrated detection method and system for code quality evaluation
CN111506509A (en) Automatic testing method, device, equipment and storage medium for automobile software unit
CN113532872A (en) Vehicle-mounted machine road testing method, device, system and storage medium
CN116775079A (en) Vehicle part refreshing method and device, electronic equipment and storage medium
CN116069635A (en) SOC system testing method and device, computer equipment and storage medium
CN117724982A (en) Simulation evaluation method and device, electronic equipment and storage medium
CN116594635A (en) Cloud primary continuous integration and delivery method and device
CN110674038A (en) Method and device for classifying error information in software test
Rao et al. Mutation testing based evaluation of formal verification tools
CN115455564A (en) Virtual automobile automatic simulation method and device based on assembly line
US20220171616A1 (en) Method for testing an application for vehicles
CN114356769A (en) Software learning method, device, equipment and storage medium
CN114003250A (en) Software deployment method and device
CN114285840A (en) Vehicle data acquisition method, intelligent terminal and storage medium
CN114443465A (en) Method for operating a control unit during testing of software of the control unit and method for operating a test computer during testing of software of the control unit
CN113485759A (en) Micro-service configuration information management system, method, electronic device and storage medium
Dersten et al. Analysis of the business effects of software architecture refactoring in an automotive development organization
TWI710896B (en) Cloud system and method for integrating a cloud system
CN111752823A (en) Method, device and equipment for testing vehicle-mounted power supply application software
CN114064508B (en) Mobile terminal software testing method and system based on group control technology

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