Vehicle control method and apparatus, device and readable storage medium
By dividing the algorithm of intelligent driving function into multiple functional modules and determining task flow based on the algorithm state machine, the problem of high algorithm coupling in the existing technology is solved, and the development and update efficiency of intelligent driving function algorithms is improved.
Patent Information
- Application Number
- PCT/CN2024/118770
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-09-13
- Filing Date
- 2024-09-13
- Publication Date
- 2025-03-20
AI Technical Summary
Among the existing intelligent driving technologies, the algorithm coupling of intelligent driving functions is relatively high, resulting in low algorithm development and update efficiency.
By dividing the algorithm of the intelligent driving function into multiple functional modules, and using the algorithm state machine status of each functional module to determine the task flow to be run, thereby obtaining the operation results of the task flow and realizing intelligent driving.
The algorithm coupling degree of intelligent driving functions is reduced, and the algorithm development and update efficiency is improved, so that in different application scenarios, only the task flow of each functional module is updated rather than the entire algorithm.
Smart Images

Figure CN2024118770_20032025_PF_FP_ABST
Abstract
Description
Vehicle control method, device, equipment and readable storage medium
[0001] This application claims priority to the Chinese patent application filed with the China Patent Office on September 13, 2023, with application number 2023111807070 and application name “Vehicle Control Method, Device, Equipment and Readable Storage Medium”, the entire contents of which are incorporated by reference into this application. Technical Field
[0002] The present application relates to intelligent driving technology, and in particular to a vehicle control method, device, equipment and readable storage medium. Background Art
[0003] With the development of intelligent driving technology, especially the Advanced Driving Assistance System (ADAS), vehicles can identify, perceive and process environmental information around them through various sensors, and analyze and make decisions through computer algorithms, thereby realizing a series of intelligent driving functions, such as Adaptive Cruise Control (ACC) and Automatic Parking Assist (APA).
[0004] Currently, existing technologies for intelligent driving functions that analyze and make decisions based on data from multiple sensors in different application scenarios are coupled together, resulting in inefficient algorithm development and updates. For example, when the algorithm processing data from a particular sensor needs to be updated, all algorithms for the intelligent driving function that uses that sensor data must also be updated, resulting in low update efficiency. In other words, the algorithms for intelligent driving functions in existing technologies are highly coupled.
[0005] Summary of the Invention
[0006] The purpose of this application is to provide a vehicle control method, device, equipment and readable storage medium to reduce the algorithm coupling degree of intelligent driving functions.
[0007] In a first aspect, the present application discloses a vehicle control method, wherein the vehicle currently uses a target intelligent driving function to perform intelligent driving, including:
[0008] Obtaining the state and chassis data of a target state machine corresponding to a target intelligent driving function; the target state machine is a driving state machine or a parking state machine;
[0009] Obtaining the state of an algorithm state machine of at least one functional module corresponding to the target intelligent driving function based on the state of the target state machine and chassis data; the state of the algorithm state machine is used to represent the state of the functional module;
[0010] According to the state of the algorithm state machine, determine the task flow to be run by the functional module;
[0011] Run the task flow to obtain the running results of the task flow;
[0012] Perform intelligent driving based on the results of the task flow.
[0013] Optionally, based on the state of the algorithm state machine, the task flow to be executed by the target functional module is determined, including:
[0014] According to the state of the algorithm state machine, an event to be executed is determined from the event library of the functional module; the event in the event library includes at least one operator directed graph; the operator directed graph is used to describe the operators required to execute the event and the execution order between the operators;
[0015] According to the directed graph of operators included in the event to be run, the identifiers of the operators are connected in series to obtain the task flow to be run.
[0016] Optionally, run the task flow to obtain the task flow running results, including:
[0017] According to the operator ID in the task flow, call the operator corresponding to the operator ID from the operator library;
[0018] Run the operator corresponding to each operator identifier of the task flow to obtain the running result of the task flow.
[0019] Optionally, obtaining the state of an algorithm state machine of at least one functional module corresponding to a target intelligent driving function based on the state of the target state machine and chassis data includes:
[0020] According to the state of the target state machine and chassis data, the state of the algorithm state machine of at least one functional module corresponding to the target intelligent driving function is obtained from the state library; the state library pre-stores the mapping relationship between the state of the target state machine, chassis data and the state of the algorithm state machines of multiple functional modules.
[0021] Optionally, run a task flow, including:
[0022] Create threads corresponding to task flows through the thread configuration strategy in the autonomous driving computing platform application framework;
[0023] Run the thread corresponding to the task flow.
[0024] Optionally, the method further includes:
[0025] The threads corresponding to the created task flows are managed through the thread running strategy and / or monitoring strategy in the autonomous driving computing platform application framework.
[0026] Optionally, the thread configuration strategy includes: the relationship between the receiving and publishing of data between task flows;
[0027] Run the thread corresponding to the task flow, including:
[0028] According to the data receiving and publishing relationship between task flows, the callback interface and publishing interface of the data are obtained using the registration callback mechanism;
[0029] Use the data callback interface to obtain the input data of the thread corresponding to the task flow, and run the thread corresponding to the task flow to obtain the output data corresponding to the task flow;
[0030] Use the publishing interface to publish the output data corresponding to the task flow.
[0031] In a second aspect, the present application discloses a vehicle control device, wherein the vehicle currently uses a target intelligent driving function to perform intelligent driving, including:
[0032] A first acquisition module is configured to acquire the state of a target state machine and chassis data corresponding to a target intelligent driving function; the target state machine is a driving state machine or a parking state machine;
[0033] A second acquisition module is configured to acquire a state of an algorithm state machine of at least one functional module corresponding to a target intelligent driving function based on a state of the target state machine and chassis data; the state of the algorithm state machine is used to represent a state of the functional module;
[0034] A determination module is used to determine the task flow to be run by the functional module according to the state of the algorithm state machine;
[0035] The run module is used to run the task flow to obtain the running results of the task flow;
[0036] The processing module is used to perform intelligent driving based on the running results of the task flow.
[0037] In a third aspect, the present application provides an electronic device, comprising: a processor, and a memory communicatively connected to the processor;
[0038] Memory stores computer-executable instructions;
[0039] The processor executes the computer-executable instructions stored in the memory to implement the vehicle control method as described in any one of the first aspects.
[0040] In a fourth aspect, the present application provides a computer-readable storage medium, in which computer-executable instructions are stored. When the computer-executable instructions are executed by a processor, they are used to implement the vehicle control method as described in any one of the first aspects.
[0041] In a fifth aspect, the present application provides a computer program product, comprising a computer program, which, when executed by a processor, implements the vehicle control method as described in any one of the first aspects.
[0042] In a sixth aspect, the present application provides a chip having a computer program stored thereon. When the computer program is executed by the chip, the vehicle control method as described in any one of the first aspects is implemented.
[0043] In combination with the above technical solutions, the vehicle control method, device, equipment and readable storage medium provided by the present application determine the task flow to be run for each functional module based on the state of the algorithm state machine of at least one functional module corresponding to the intelligent driving function, and then obtain the running results of the task flow of each functional module, and perform intelligent driving based on the running results. This method is based on the algorithm of the intelligent driving function divided into multiple functional modules, simplifies the combination of algorithms corresponding to multiple intelligent driving functions in different application scenarios into a combination of task flows of multiple functional modules, decouples the implementation of each functional module in different application scenarios, and divides it into multiple task flows. When developing and updating the algorithms corresponding to the intelligent driving functions in different application scenarios, it is only necessary to develop and update the task flows of each functional module, without having to update and develop the algorithms corresponding to the intelligent driving functions in different application scenarios. This reduces the coupling degree of the algorithms of the intelligent driving functions and improves the development and update efficiency of the algorithms of the intelligent driving functions. BRIEF DESCRIPTION OF THE DRAWINGS
[0044] FIG1 is a schematic diagram of the architecture of an intelligent driving control system;
[0045] FIG2 is a schematic diagram of the structure of an autonomous driving computing platform;
[0046] FIG3 is a flow chart of a vehicle control method provided by the present application;
[0047] FIG4 is a flow chart of another vehicle control method provided by the present application;
[0048] FIG5 is a schematic diagram of the structure of a functional module provided by the present application;
[0049] FIG6 is a schematic structural diagram of a vehicle control device provided by the present application;
[0050] FIG7 is a schematic diagram of the structure of an electronic device provided in this application. DETAILED DESCRIPTION
[0051] First, let’s explain the terms involved in this application:
[0052] ADAS: It uses various sensors installed on the vehicle, such as millimeter-wave radar, lidar, etc., to collect surrounding environmental data while the car is driving, identify, perceive and process static and dynamic objects, and analyze and make decisions through computer algorithms, thereby realizing a series of vehicle intelligent driving functions.
[0053] State machine: It is a state transition diagram that can perform state transitions according to pre-set states based on control signals.
[0054] Figure 1 is a schematic diagram of the architecture of an intelligent driving control system. As shown in Figure 1, the intelligent driving control system is divided into a perception layer, a decision layer, and an execution layer.
[0055] The perception layer is used to sense changes in the external environment and acquire environmental information through hardware systems, such as cameras, lidar, and other sensors.
[0056] The decision-making layer above develops an appropriate control strategy by utilizing the information from the perception layer. The decision-making layer includes an intelligent driving domain controller (DCU). The intelligent driving DCU may include, for example, a driving and parking DCU, or a driving DCU and a parking DCU, which are not limited in this application. The intelligent driving DCU may be a system on chip (SOC) or a microcontroller unit (MCU). The execution subject of this application is the intelligent driving DCU.
[0057] The intelligent driving DCU is deployed with an autonomous driving computing platform, which includes various algorithms, communication protocols, middleware, etc. corresponding to the intelligent driving functions.
[0058] The execution layer executes instructions on the vehicle based on the decision-making layer's decisions, enabling the vehicle to perform intelligent driving. This execution layer includes the vehicle's wheels, steering wheel, and other components.
[0059] Figure 2 is a schematic diagram of the structure of an autonomous driving computing platform. As shown in Figure 2, the autonomous driving operating system includes a hardware platform layer, a system software layer, a functional software layer, and an application software layer.
[0060] The hardware platform layer includes a computing unit and a control unit, which provide hardware support for the software layer. The computing unit can be, for example, a CPU, GPU, FPGA, etc., and the control unit can be, for example, an MCU, etc.
[0061] The above-mentioned system software layer includes the operating system kernel, virtualization management (Hypervisor), Portable Operating System Interface (POSIX), system middleware, etc.
[0062] The operating system kernel can be, for example, Linux, Vxworks, and other operating system kernels. The virtualization management is a hardware virtualization technology that manages and virtualizes hardware resources (such as CPU, memory, and peripheral devices) and provides them to multiple operating system kernels. The POSIX is a standard that defines the interfaces and functions of the operating system and is intended to enable application programs to be ported across different operating systems. The system middleware is used to manage computing resources and network communications, and can include, for example, distributed communication services that provide data and information exchange services between the functional software layer and the application software layer in a publish / subscribe manner.
[0063] The above-mentioned functional software layer includes application software interface, general intelligent driving model, application framework and data abstraction, etc.
[0064] The application software interface refers to the interface between the hardware and the aforementioned application software layer. By providing calls and services to the application software through a unified application software interface, the development and operation of the application software in the aforementioned application software layer can be independent of specific sensors and vehicle models.
[0065] The general intelligent driving model is a modeled abstraction of the common processes involved in intelligent driving, including intelligent cognition, intelligent decision-making, and intelligent control. It includes a perception model, a decision-making model, and a planning model. The decision-making model includes a driving state machine and a parking state machine.
[0066] The application framework includes thread scheduling, networked cloud control services, information security, and re-injection abstraction. It can abstract, deploy, and drive the algorithms in the general intelligent driving model, solving the problems of cross-domain and cross-platform deployment and computing.
[0067] This data abstraction provides various data sources for the upper-level intelligent driving general model by standardizing data such as sensors, actuators, vehicle status, and maps.
[0068] The above-mentioned application software layer is responsible for the implementation of intelligent driving functions, including algorithms corresponding to intelligent driving functions in various application scenarios.
[0069] Currently, the algorithms for intelligent driving functions in different application scenarios are coupled together within the application software layer. For example, during normal driving, the intelligent driving DCU runs the algorithm for the ACC function. However, if an unexpected situation occurs during normal driving, such as the appearance of a pedestrian on the road, requiring braking, the algorithms for this scenario include both the ACC algorithm and the braking algorithm. In other words, the algorithms for intelligent driving functions are coupled based on multiple application scenarios.
[0070] This approach makes algorithm updates and development inconvenient. For example, when updating the processing algorithm for a particular sensor data, all algorithms for the intelligent driving functions that use that sensor data must also be updated, resulting in low update efficiency. When developing an algorithm for an intelligent driving function, it is necessary to consider coupling with algorithms for other intelligent driving functions in different application scenarios, resulting in low algorithm development efficiency. This phenomenon is caused by the high degree of algorithm coupling for intelligent driving functions.
[0071] In view of this, the present application proposes a vehicle control method that decouples the algorithms of multiple functional modules based on the intelligent driving function algorithm, divides the algorithms corresponding to each functional module into multiple task flows, and uses a combination of multiple task flows to implement intelligent driving functions in different scenarios. When developing or updating the algorithm, it is only necessary to develop and update the task flows of each functional module, without having to develop and update the algorithms for each intelligent driving function in different scenarios. This achieves the decoupling of the intelligent driving function algorithm, thereby improving the efficiency of algorithm development and updating.
[0072] The following describes in detail the technical solution of the present application and how the technical solution of the present application solves the above-mentioned technical problems in conjunction with specific embodiments. The following specific embodiments can be combined with each other, and the same or similar concepts or processes may not be repeated in some embodiments. The embodiments of the present application will be described below in conjunction with the accompanying drawings.
[0073] FIG3 is a flow chart of a vehicle control method provided by the present application. At the application software layer, the algorithms of the intelligent driving functions under various application scenarios are divided into multiple functional modules. The algorithms included in each functional module are used to implement a type of sub-function. For example, it can be divided into a perception module, a positioning module, a fusion module, a planning module, a control module, etc. The implementation of the intelligent driving function corresponds to at least one functional module. The vehicle currently uses the target intelligent driving function for intelligent driving. As shown in FIG1, the method includes:
[0074] S101. Obtain the state of a target state machine and chassis data corresponding to a target intelligent driving function.
[0075] The above-mentioned target intelligent driving function refers to the intelligent driving function currently used by the vehicle. The target intelligent driving function can be triggered by the user through the on-board terminal, or it can be implemented after the vehicle's intelligent driving DCU makes a decision based on the vehicle's status and current environmental information.
[0076] The target state machine is either a driving state machine or a parking state machine. It should be understood that each intelligent driving function corresponds to a driving state machine or a parking state machine as the target state machine for vehicle state decision making. The intelligent driving DCU switches the target state machine corresponding to the target intelligent driving function to the state corresponding to the target intelligent driving function based on the intelligent driving function currently in use by the vehicle. For example, if the target intelligent driving function currently used by the vehicle is ACC, the target state machine is the driving state machine, and its state is ACC.
[0077] The above-mentioned intelligent driving DCU can directly obtain the status of the corresponding target state machine from the above-mentioned driving state machine or parking state machine according to the target intelligent driving function, or it can be a publish and subscribe relationship between the status data of the driving state machine and the parking state machine, that is, when the status data changes, the status data is automatically sent to the functional module that has subscribed to the data.
[0078] The aforementioned chassis data refers to data related to the vehicle's chassis, such as chassis fault indicators, door opening / closing indicators, hood opening / closing indicators, trunk opening / closing indicators, etc. It should be noted that this chassis data includes, but is not limited to, vehicle body status, as well as vehicle software or hardware-related data such as chassis faults. It may also include other types of chassis data, which can be configured based on actual needs and is not limited in this application.
[0079] The above-mentioned chassis data can be obtained by the above-mentioned intelligent driving DCU from the application interface of the above-mentioned autonomous driving computing platform, and the application interface is used to realize the interaction between the application software layer and the vehicle chassis data; it can also be a publishing and subscription relationship of chassis data preset in the application interface, that is, when the chassis data changes, the chassis data is automatically sent to the functional module that has subscribed to the data.
[0080] It should be noted that an identifier may be preset in the above chassis data to indicate that the chassis is fault-free.
[0081] S102: Obtain the state of an algorithm state machine of at least one functional module corresponding to a target intelligent driving function based on the state of the target state machine and chassis data.
[0082] The state of the algorithm state machine is used to represent the state of the functional module corresponding to the algorithm state machine. It should be noted that each functional module has its own algorithm state machine preset, and the state of the functional module can be used to represent the function to be implemented by the functional module.
[0083] Regarding how to obtain the state of a functional module's algorithmic state machine, one possible implementation involves pre-setting a state library for each functional module. This library stores a mapping between the state of the functional module's algorithmic state machine, the state of the target state machine, and chassis data. Based on the state of the target state machine and chassis data, the intelligent driving DCU can obtain the state of the functional module's algorithmic state machine from the corresponding state library.
[0084] Another possible implementation involves pre-setting a state library that stores mappings between the target state machine state, chassis data, and the states of the algorithm state machines of each functional module. The intelligent driving DCU can retrieve the states of the algorithm state machines of each functional module from this state library based on the target state machine state and chassis data.
[0085] Regarding how to obtain the state of the algorithmic state machine of at least one functional module corresponding to the target intelligent driving function, one possible implementation method is to pre-set the intelligent driving function and the mapping relationship between the functional modules corresponding to the intelligent driving function. The intelligent driving DCU can first obtain the identifier of the at least one functional module corresponding to the intelligent driving function based on the intelligent driving function and the mapping relationship between the functional modules corresponding to the intelligent driving function. Then, based on the state of the target state machine, chassis data, and the identifier of the at least one functional module, the DCU can obtain the state of the algorithmic state machine of the at least one functional module corresponding to the intelligent driving function using the aforementioned method for obtaining the state of the algorithmic state machine of the functional module.
[0086] In another possible implementation, after the algorithm state machine of each of the above-mentioned functional modules switches state, it will send a state switching response including the functional module identifier to the intelligent driving DCU. The intelligent driving DCU adopts the aforementioned method of obtaining the state of the algorithm state machine of the functional module based on the received state switching response to obtain the state of the algorithm state machine of at least one functional module corresponding to the intelligent driving function.
[0087] S103: Determine the task flow to be executed by the functional module according to the state of the algorithm state machine of the functional module.
[0088] The task flow to be executed is the task flow to be executed by the functional module to implement the corresponding function in the state of the algorithm state machine.
[0089] In one possible implementation, the functional module is pre-installed with an event library that stores mappings between the module's state and events. Each event represents a function of the module. Based on the state of the module's algorithm state machine, the intelligent driving DCU can retrieve the event corresponding to the state of the algorithm state machine from the event library and use the event as the task flow to be executed by the module.
[0090] Another possible implementation involves pre-setting a master event library that stores the mapping between the states of each functional module's algorithm state machine and events. Based on the state of the functional module's algorithm state machine, the intelligent driving DCU can retrieve the event corresponding to that state from the master event library and use that event as the task flow to be executed by that functional module.
[0091] In another possible implementation, the functional module is pre-installed with a task flow library for the functional module. This task flow library stores mappings between various task flows and states of the algorithm state machine for the functional module, with each task flow implementing a function of the functional module. The intelligent driving DCU can determine the task flow to be executed for the functional module from the task flow library based on the state of the algorithm state machine of the functional module.
[0092] S104: Run the to-be-run task flow of at least one functional module corresponding to the target intelligent driving function to obtain the running results of each task flow.
[0093] In one possible implementation, the task flow to be executed includes multiple operators, and the combination of the multiple operators is used to implement a function of the functional module. The operators of the task flow are directly executed to obtain the execution result of the task flow.
[0094] In another possible implementation, the task flow to be executed includes identifiers of multiple operators, and the operator corresponding to the operator identifier is executed to obtain the execution result of the task flow.
[0095] S105: Perform intelligent driving according to the running result of the task flow of at least one functional module corresponding to the target intelligent driving function.
[0096] Optionally, as mentioned above, at least one functional module corresponding to the above-mentioned target intelligent driving function includes a control module, which can generate a control signal based on the operation results of other functional modules corresponding to the target intelligent driving function, and send it to the execution layer of the intelligent driving control system through the communication method set by the system middleware of the above-mentioned autonomous driving computing platform, as well as the application software interface, so as to enable the vehicle to perform intelligent driving.
[0097] The vehicle control method provided in this application determines the task flow to be executed by each functional module based on the state of the algorithm state machine of at least one functional module corresponding to the intelligent driving function, and then obtains the execution results of the task flow of each functional module, and performs intelligent driving based on the execution results. Based on the algorithm of the intelligent driving function divided into multiple functional modules, this method simplifies the combination of algorithms corresponding to multiple intelligent driving functions in different application scenarios into a combination of task flows of multiple functional modules, decouples the implementation of each functional module in different application scenarios, and divides them into multiple task flows. When developing and updating the algorithms corresponding to the intelligent driving functions in different application scenarios, only the task flows of each functional module need to be developed and updated, and there is no need to update and develop the algorithms corresponding to the intelligent driving functions in different application scenarios. This reduces the coupling degree of the algorithms of the intelligent driving functions and improves the development and update efficiency of the algorithms of the intelligent driving functions.
[0098] The following takes the above-mentioned function module preset with the event library of the function module as an example to illustrate how to determine the task flow to be run of the target function module according to the state of the algorithm state machine, run the task flow, and obtain the running result of the task flow.
[0099] FIG4 is a flow chart of another vehicle control method provided by the present application. As shown in FIG4 , the method includes:
[0100] S201 : Determine an event to be executed from an event library of a functional module according to a state of an algorithm state machine of the functional module.
[0101] Optionally, according to the function of the functional module, the algorithm of the functional module is decoupled into multiple operators, and the function of the functional module is realized by utilizing a combination of multiple operators. When developing and updating the algorithm of the functional module, it is only necessary to develop and update the operators, thereby further decoupling the algorithm of the functional module and improving the development and update efficiency of the algorithm of the intelligent driving function.
[0102] An event in the event library includes at least one operator directed graph, which describes the operators required to execute the event and the execution order between the operators. The operator directed graph includes the identifiers of the operators required to execute the event and the execution order between the operator identifiers.
[0103] In one possible implementation, an operator library is pre-set for the functional module, in which the operators and operator identifiers of the functional module are stored. In another possible implementation, an overall operator library is pre-set, in which the operators and operator identifiers of each functional module are stored.
[0104] As mentioned above, the event library has a preset mapping relationship between events and states of the algorithm state machine. The event to be run can be determined based on the mapping relationship between the state of the algorithm state machine and time.
[0105] S202 : According to the directed graph of operators included in the event to be executed, the identifiers of the operators are connected in series to obtain the task flow to be executed.
[0106] For example, according to the execution order between the operator identifiers of the operator directed graph included in the event to be executed, the operator identifiers are connected in series to obtain the task flow to be executed.
[0107] Through this approach, the event to be run can be determined based on the function module's event library, and the task flow to be run can be determined based on the directed graph of operators included in the event. This approach can operatorize the function module's algorithm, determine the task flow to be run by using the series connection between operators, and further decouple the function module's algorithm.
[0108] S203 : According to the operator identifier in the task flow to be run of the functional module, call the operator corresponding to the operator identifier from the operator library.
[0109] The above-mentioned operator library can be the operator library of the functional module mentioned above, or it can be the entire operator library.
[0110] S204: Run the operator corresponding to each operator identifier of the task flow to be run of the functional module to obtain the running result of the task flow.
[0111] The above steps S201 - 204 are used to run the task flow to be run of at least one functional module corresponding to the target intelligent driving function, and the running results of each task flow are obtained.
[0112] The vehicle control method provided in the present application converts the algorithms of the functional modules into operators and stores the operators in an operator library. The series connection of operators is used to form the task flow to be run by the functional module. When developing and updating the algorithms of the functional modules, it is only necessary to develop and update the operators in the operator library, thereby further decoupling the algorithms of the functional modules and reducing the coupling degree of the algorithms of the intelligent driving functions.
[0113] In the prior art, due to the coupling of intelligent driving function algorithms in different application scenarios at the application software layer, the thread scheduling of the application software layer by the intelligent driving DCU is complex. For example, the braking algorithm is coupled to the ACC function mentioned above, and it is necessary to configure in advance the information of at least one thread that executes the ACC function and two threads that execute the braking function based on the application scenario. That is, the thread configuration strategy needs to be set based on the application scenario, and the intelligent driving DCU needs to set a unified process carrier to schedule the threads of the intelligent driving function algorithms in various application scenarios, resulting in high complexity in thread configuration and scheduling.
[0114] Figure 5 is a schematic diagram of the structure of a functional module provided by this application. As shown in Figure 5, the functional module includes an algorithm state machine, an event library, a task flow pool, and an operator library. It should be noted that Figure 5 only illustrates the three events in the event library and the three operators in the operator library.
[0115] The above algorithm state machine is used to switch the state of the functional module according to the state of the target state machine and chassis data.
[0116] The above event library is used to store various events of the functional module.
[0117] The above-mentioned operator library is used to store various operators of this functional module.
[0118] The task flow pool is used to store the task flows to be run by the functional module.
[0119] Each functional module of the aforementioned application software layer is set as a process carrier, and multiple task flows of each functional module are configured as threads of the process carrier. The corresponding threads are run through the task flows of each functional module. The thread scheduling of the unified process carrier corresponding to the intelligent driving function algorithm is converted into the scheduling of the threads of each functional module as the process carrier, reducing the complexity of thread configuration and scheduling.
[0120] Exemplarily, the application framework of the aforementioned autonomous driving computing platform includes a thread configuration policy, which is used to configure thread attributes, such as the thread name, memory usage ratio, and the operating system kernel being run. In the aforementioned embodiment, the algorithms of each functional module are divided into multiple task flows, on which basis the thread configuration policy for the task flows of each functional module can be pre-configured. When running the task flow to be run of at least one functional module corresponding to the target intelligent driving function, a thread corresponding to the task flow is created according to the thread configuration policy, and the thread corresponding to the task flow is run.
[0121] Optionally, the configuration strategy can also include the relationship between receiving and publishing data between task flows. When running the thread corresponding to the above task flow, based on the relationship between receiving and publishing data between task flows, the callback interface and publishing interface of the data are obtained using the registration callback mechanism; the input data of the thread corresponding to the task flow is obtained using the data callback interface, and the thread corresponding to the task flow is run to obtain the output data corresponding to the task flow; and the output data corresponding to the task flow is published using the publishing interface.
[0122] The registration callback mechanism refers to a callback function and a registration function. A callback function, i.e., a publishing interface, is set in the task flow that needs to publish data, which is used to publish the output data of the task flow; a registration function, i.e., a callback interface, is set in the task flow that needs to obtain data, which is used to call the callback function and obtain the data corresponding to the callback function.
[0123] Optionally, the application framework of the autonomous driving computing platform includes a thread execution policy and / or monitoring policy. The execution policy is used to configure the thread's execution mode and may include, for example, execution priority, maximum execution time, and the identifier of the next thread after the current thread. The monitoring policy is used to monitor the execution of the thread and may include, for example, the actual memory usage ratio and actual execution time of the thread. When executing the pending task flow of at least one functional module corresponding to the target intelligent driving function, the thread corresponding to each created task flow is managed using the thread execution policy and / or monitoring policy.
[0124] The vehicle control method provided in this application can pre-configure the thread information corresponding to the task flow of each functional module based on the application framework and various functional modules of the autonomous driving computing platform. This eliminates the need to consider the application scenario when configuring thread information, thus reducing the complexity of thread configuration. Furthermore, thread scheduling is performed based on each functional module as a process carrier, converting the complex thread scheduling of a unified process carrier into the scheduling of simple threads with each functional module as the process carrier, thus reducing the complexity of thread scheduling.
[0125] FIG6 is a schematic diagram of the structure of a vehicle control device provided by the present application. As shown in FIG6 , the device includes:
[0126] A first acquisition module 11 is configured to acquire the state of a target state machine and chassis data corresponding to a target intelligent driving function; the target state machine is a driving state machine or a parking state machine;
[0127] A second acquisition module 12 is configured to acquire the state of an algorithm state machine of at least one functional module corresponding to a target intelligent driving function based on the state of the target state machine and chassis data; the state of the algorithm state machine is used to represent the state of the functional module;
[0128] A determination module 13 is used to determine the task flow to be executed by the functional module according to the state of the algorithm state machine;
[0129] The running module 14 is used to run the task flow to obtain the running result of the task flow;
[0130] The processing module 15 is used to perform intelligent driving according to the running results of the task flow.
[0131] In one possible implementation, the above-mentioned determination module 13 is specifically used to determine the event to be run from the event library of the functional module according to the state of the algorithm state machine; the event in the event library includes at least one operator directed graph; the operator directed graph is used to describe the operators required to execute the event, as well as the execution order between the operators; according to the operator directed graph included in the event to be run, the identifiers of the operators are connected in series to obtain the task flow to be run.
[0132] In a possible implementation, the operation module 14 is specifically configured to call the operator corresponding to the operator identifier from the operator library according to the operator identifier in the task flow; and to execute the operator corresponding to each operator identifier of the task flow to obtain the execution result of the task flow.
[0133] In one possible implementation, the second acquisition module 12 is specifically used to obtain the state of the algorithm state machine of at least one functional module corresponding to the target intelligent driving function from the state library based on the state of the target state machine and chassis data; the state library pre-stores the mapping relationship between the state of the target state machine, chassis data and the state of the algorithm state machines of multiple functional modules.
[0134] In one possible implementation, the above-mentioned running module 14 is specifically used to create a thread corresponding to the task flow through the thread configuration strategy in the autonomous driving computing platform application framework; and run the thread corresponding to the task flow.
[0135] In one possible implementation, the management module 16 is used to manage the threads corresponding to the created task flows through the thread running strategy and / or monitoring strategy in the autonomous driving computing platform application framework.
[0136] A possible implementation method is that the thread configuration strategy includes: the receiving and publishing relationship of data between task flows; the above-mentioned running module 14 is specifically used to use the registration callback mechanism to obtain the callback interface and publishing interface of the data according to the receiving and publishing relationship of data between task flows; use the data callback interface to obtain the input data of the thread corresponding to the task flow, and run the thread corresponding to the task flow to obtain the output data corresponding to the task flow; use the publishing interface to publish the output data corresponding to the task flow.
[0137] The vehicle control device provided in this application can execute the vehicle control method in the above method embodiment. Its implementation principle and technical effects are similar and will not be repeated here.
[0138] Figure 7 is a schematic diagram of the structure of an electronic device provided in this application. As shown in Figure 7, the electronic device 300 may include: at least one processor 301 and a memory 302. The electronic device may be the aforementioned intelligent driving DCU.
[0139] The memory 302 is used to store programs. Specifically, the programs may include program codes, and the program codes include computer operation instructions.
[0140] The memory 302 may include a high-speed RAM memory, and may also include a non-volatile memory (non-volatile memory), such as at least one disk memory.
[0141] Processor 301 is configured to execute computer-executable instructions stored in memory 302 to implement the vehicle control method described in the aforementioned method embodiments. Processor 301 may be a central processing unit (CPU), an application-specific integrated circuit (ASIC), or one or more integrated circuits configured to implement the embodiments of the present application.
[0142] The electronic device 300 may further include a communication interface 303, so as to communicate and interact with an external device via the communication interface 303. The external device may be, for example, a computer, a tablet, or the like.
[0143] In a specific implementation, if the communication interface 303, memory 302, and processor 301 are implemented independently, they can be interconnected via a bus to enable communication between them. The bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, or an Extended Industry Standard Architecture (EISA) bus. Buses can be categorized as address buses, data buses, control buses, etc., but this does not mean that there is only one bus or only one type of bus.
[0144] Optionally, in a specific implementation, if the communication interface 303, the memory 302 and the processor 301 are integrated on a chip, the communication interface 303, the memory 302 and the processor 301 can complete communication through an internal interface.
[0145] The present application also provides a computer-readable storage medium, which may include: a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a disk or an optical disk, and other media that can store program codes. Specifically, the computer-readable storage medium stores computer execution instructions, and the computer execution instructions are used for the vehicle control method in the above embodiment.
[0146] The present application also provides a computer program product, which includes execution instructions stored in a readable storage medium. At least one processor of electronic device 300 can read the execution instructions from the readable storage medium, and at least one processor executes the execution instructions so that electronic device 300 implements the methods provided in the various embodiments described above.
[0147] The present application also provides a vehicle, which is equipped with an intelligent driving DCU for implementing the vehicle control method in the above embodiment.
[0148] The present application also provides a chip having a computer program stored thereon. When the computer program is executed by the chip, the methods provided in various embodiments are implemented.
[0149] The above are only specific embodiments of the present application, but the scope of protection of this application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims.
Claims
1. A vehicle control method, characterized in that: The vehicle currently uses a target intelligent driving function to perform intelligent driving, and the method includes: Acquire the state and chassis data of a target state machine corresponding to the target intelligent driving function; the target state machine is a driving state machine or a parking state machine; According to the state of the target state machine and chassis data, acquiring the state of the algorithm state machine of at least one functional module corresponding to the target intelligent driving function; the state of the algorithm state machine is used to characterize the state of the functional module; Determine the task flow to be executed by the functional module according to the state of the algorithm state machine; Running the task flow to obtain the running result of the task flow; Intelligent driving is performed according to the running result of the task flow.
2. The method according to claim 1, characterized in that Determining the task flow to be executed by the target functional module according to the state of the algorithm state machine includes: According to the state of the algorithm state machine, determine the event to be executed from the event library of the functional module; the event in the event library includes at least one operator directed graph; the operator directed graph is used to describe the operator required to execute the event, and the execution order between the operators; According to the directed graph of operators included in the event to be executed, the identifiers of the operators are connected in series to obtain the task flow to be executed.
3. The method according to claim 2, characterized in that The running of the task flow to obtain the running result of the task flow includes: According to the operator identifier in the task flow, calling the operator corresponding to the operator identifier from the operator library; The operators corresponding to the operator identifiers of the task flow are run to obtain the running result of the task flow.
4. The method according to claim 1, characterized in that: The step of obtaining the state of an algorithm state machine of at least one functional module corresponding to the target intelligent driving function according to the state of the target state machine and chassis data includes: According to the state of the target state machine and chassis data, the state of the algorithm state machine of at least one functional module corresponding to the target intelligent driving function is obtained from the state library; the state library pre-stores the state mapping relationship between the state of the target state machine, chassis data and the state of the algorithm state machines of multiple functional modules.
5. The method according to any one of claims 1 to 4, characterized in that: The running of the task flow includes: Creating a thread corresponding to the task flow through a thread configuration strategy in an autonomous driving computing platform application framework; Run the thread corresponding to the task flow.
6. The method according to claim 5, characterized in that The method further comprises: The thread corresponding to the created task flow is managed through the thread running strategy and / or monitoring strategy in the autonomous driving computing platform application framework.
7. The method according to claim 5, characterized in that The thread configuration strategy includes: the relationship between receiving and publishing data between task flows; The running of the thread corresponding to the task flow includes: According to the relationship between the receiving and publishing of data between task flows, the callback interface and publishing interface of data are obtained by using the registered callback mechanism; Using the data callback interface to obtain input data of the thread corresponding to the task flow, and running the thread corresponding to the task flow to obtain output data corresponding to the task flow; The publishing interface is used to publish output data corresponding to the task flow.
8. A vehicle control device, characterized in that: The vehicle currently uses a target intelligent driving function to perform intelligent driving, and the device includes: A first acquisition module is used to acquire the state of a target state machine corresponding to the target intelligent driving function and chassis data; the target state machine is a driving state machine or a parking state machine; A second acquisition module is used to acquire the state of the algorithm state machine of at least one functional module corresponding to the target intelligent driving function according to the state of the target state machine and chassis data; the state of the algorithm state machine is used to represent the state of the functional module; A determination module, used for determining the task flow to be executed by the functional module according to the state of the algorithm state machine; A running module, used for running the task flow to obtain the running result of the task flow; A processing module is used to perform intelligent driving according to the running results of the task flow.
9. An electronic device, characterized in that: The electronic device comprises: a processor, and a memory communicatively connected to the processor; The memory stores computer-executable instructions; The processor executes the computer-executable instructions stored in the memory to implement the vehicle control method according to any one of claims 1 to 7.
10. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer-executable instructions, which are used to implement the vehicle control method according to any one of claims 1 to 7 when executed by a processor.
Citation Information
Patent Citations
Vehicle Control Method, Device, Equipment and Readable Storage Medium
CN117184129B
Structure sharing type framework of intelligent automobile driving system and construction method
CN109941211A
Automatic driving method, device and equipment based on universal data flow architecture
CN112249035A
Modularization implementation system of intelligent driving domain controller software
CN112860249A
Service-oriented intelligent driving system design method
CN114115879A