Patent Publication Number: US-2023161354-A1

Title: Neural network based vehicle dynamics model

Description:
PRIORITY/RELATED DOCUMENTS 
     This patent application is a continuation of U.S. patent application Ser. No. 17/147,836, titled “NEURAL NETWORK BASED VEHICLE DYNAMICS MODEL,” filed on Jan. 13, 2021, which is a continuation of U.S. patent application Ser. No. 15/672,207, titled “NEURAL NETWORK BASED VEHICLE DYNAMICS MODEL,” filed on Aug. 8, 2017, now U.S. Pat. No. 11,029,693. This non-provisional patent application draws priority from the referenced patent applications. The entire disclosure of the referenced patent applications is considered part of the disclosure of the present application and is hereby incorporated by reference herein in its entirety. 
    
    
     COPYRIGHT NOTICE 
     A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the U.S. Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever. The following notice applies to the disclosure herein and to the drawings that form a part of this document: Copyright 2016-2022, TuSimple, Inc., All Rights Reserved. 
     TECHNICAL FIELD 
     This patent document pertains generally to tools (systems, apparatuses, methodologies, computer program products, etc.) for autonomous driving simulation systems, vehicle control systems, and autonomous driving systems, and more particularly, but not by way of limitation, to a system and method for implementing a neural network based vehicle dynamics model. 
     BACKGROUND 
     Autonomous vehicle simulation is an important process for developing and configuring autonomous vehicle control systems. These vehicle simulation systems need to produce vehicle movements and dynamics that mirror the movement and dynamics of vehicles in the real world. However, there are thousands of different types of vehicles operating in the real world, each having different types of components and/or different vehicle characteristics. Conventional simulation systems need detailed information about the engine and transmission or vehicle component types or characteristics of each specific vehicle being simulated. This detailed information for a large number of vehicle types is very difficult to collect, maintain, and use. As such, the conventional vehicle simulation systems are unwieldy, inefficient, and not readily adaptable to new vehicle types. 
     SUMMARY 
     A system and method for implementing a neural network based vehicle dynamics model are disclosed herein. The vehicle dynamics model is one of the key subsystems for producing accurate vehicle simulation results in an autonomous vehicle simulation system. In various example embodiments as disclosed herein, the data-driven modeling system and method based on a neural network allows the modeling system to predict accurate vehicle accelerations and torque based on recorded historical vehicle driving data. To generate the predicted vehicle accelerations, a control command (e.g., throttle, brake, and steering commands) and vehicle status (e.g., vehicle pitch and speed status) are provided as inputs to the modeling system for each time step. To generate the predicted vehicle torque, a control command (e.g., throttle and brake commands) and vehicle status (e.g., vehicle speed status) are provided as inputs to the modeling system for each time step. The modeling system as described herein can use these inputs to generate the predicted vehicle acceleration and torque. 
     In contrast to other vehicle dynamics models, the system and method disclosed herein does not need the detailed information about the engine and transmission or vehicle component types or characteristics of a specific vehicle. This feature of the disclosed embodiments is very useful for the vehicle simulation in the simulation system; because, the dynamics and status of a specific engine and transmission or other vehicle component types or characteristics are often difficult to obtain and to model. Moreover, the modeling system of the various example embodiments as disclosed herein can be easily adapted to work with any type of vehicle by simply changing the training data used to configure the neural network. This beneficial attribute of the modeling system as disclosed herein saves model rebuilding time when working with other types of vehicles. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The various embodiments are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which: 
         FIG.  1    illustrates a system view of an autonomous vehicle dynamics modeling and simulation system according to an example embodiment; 
         FIG.  2    illustrates a component view of the autonomous vehicle dynamics modeling and simulation system according to an example embodiment; 
         FIG.  3    is a process flow diagram illustrating an example embodiment of a system and method for implementing a neural network based vehicle dynamics model; 
         FIG.  4    illustrates a component view of the autonomous vehicle dynamics modeling and simulation system according to an alternative example embodiment; 
         FIG.  5    is a process flow diagram illustrating an alternative example embodiment of a system and method for implementing a neural network based vehicle dynamics model; and 
         FIG.  6    shows a diagrammatic representation of machine in the example form of a computer system within which a set of instructions when executed may cause the machine to perform any one or more of the methodologies discussed herein. 
     
    
    
     DETAILED DESCRIPTION 
     In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the various embodiments. It will be evident, however, to one of ordinary skill in the art that the various embodiments may be practiced without these specific details. 
     A system and method for implementing a neural network based vehicle dynamics model are disclosed herein. The vehicle dynamics model is one of the key subsystems for producing accurate vehicle simulation results in a simulation system. In various example embodiments as disclosed herein, the data-driven modeling system and method based on a neural network allows the modeling system to predict accurate vehicle accelerations based on recorded historical vehicle driving data. To generate the predicted vehicle accelerations, a control command (e.g., throttle, brake, and steering commands) and vehicle status (e.g., vehicle pitch and speed status) are provided as inputs to the modeling system for each time step. The modeling system as described herein can use these inputs to generate the predicted vehicle acceleration. In an alternative embodiment disclosed herein, the data-driven modeling system and method based on a neural network allows the modeling system to predict accurate vehicle torque based on recorded historical vehicle driving data. To generate the predicted vehicle torque, a control command (e.g., throttle and brake commands) and vehicle status (e.g., vehicle speed status) are provided as inputs to the modeling system for each time step. The modeling system of the alternative embodiment as described herein can use these inputs to generate the predicted vehicle torque. 
     In contrast to other vehicle dynamics models, the system and method disclosed herein does not need the detailed information about the engine and transmission or other vehicle component types or characteristics of a specific vehicle. This feature of the disclosed embodiments is very useful for the vehicle simulation in the simulation system; because, the dynamics and status of a specific engine and transmission or other vehicle component types or characteristics are often difficult to obtain and to model. Moreover, the modeling system of the various example embodiments as disclosed herein can be easily adapted to work with any type of vehicle by simply changing the training data used to configure the neural network. This beneficial attribute of the modeling system as disclosed herein saves model rebuilding time when working with other type of vehicles. 
     As described in various example embodiments, a system and method for implementing a neural network based vehicle dynamics model are described herein. Referring to  FIG.  1   , a system view of an autonomous vehicle dynamics modeling and simulation system according to an example embodiment is illustrated. As shown, the system  100  includes an autonomous vehicle dynamics modeling system  120  and an autonomous vehicle simulation system  140 . The autonomous vehicle dynamics modeling system  120 , as described in more detail below, can be configured to receive vehicle control command data  101  and vehicle status data  102 , which could be provided to a vehicle simulation system. In the various example embodiments disclosed herein, the vehicle control command data  101  does not include vehicle component types or characteristics of a specific vehicle, as would be typically required in a conventional system. By use of the components and techniques described in more detail below, the autonomous vehicle dynamics modeling system  120  can generate simulated vehicle dynamics data  125  including predicted vehicle acceleration data, based in part on the vehicle control command data  101  and vehicle status data  102 . The simulated vehicle dynamics data  125  can be provided to an autonomous vehicle simulation system  140  implementing an autonomous vehicle simulation environment. The autonomous vehicle simulation system  140  can produce updated vehicle speed and pitch data, which can be used to modify the vehicle status data  102  for a subsequent iteration of the process enabled by system  100 . As a result, the predicted vehicle acceleration data generated by the autonomous vehicle dynamics modeling system  120  can provide the autonomous vehicle simulation system  140  with accurate simulated vehicle dynamics data  125 , which improves the accuracy and efficiency of the vehicle simulation produced by the autonomous vehicle simulation system  140 . 
     As also shown in  FIG.  1   , a training dataset  135  can also be provided as an input to the autonomous vehicle dynamics modeling system  120  and used to train a neural network or other machine learning system within the autonomous vehicle dynamics modeling system  120 . As well-known to those of ordinary skill in the art, artificial neural networks (ANNs) or connectionist systems are computing systems inspired by the biological neural networks that constitute animal brains. Such systems learn (progressively improve performance) to do tasks by considering previously or historically gathered examples, generally without task-specific programming. The considered examples are represented in training data used to configure the operation of a particular neural network or other machine learning system. Many such machine learning systems are focused on the application of neural networks to artificial intelligence. Machine learning focuses on prediction, based on known properties learned from the training data. Given different training datasets, a particular neural network will produce different results. The general use of neural networks or other machine learning systems is known to those of ordinary skill in the art. 
     In the various example embodiments described herein, a neural network or other machine learning system is used to predict accurate vehicle accelerations based on recorded or otherwise captured historical vehicle driving data. In an example embodiment, vehicle driving data corresponding to real world vehicle operations or simulated vehicle movements is captured over time for a large number of vehicles in a large number of operating environments. The vehicle driving data can be annotated or labeled to enhance the utility of the data in a machine learning training dataset. As this vehicle driving data is captured over a long time period and a wide operating environment, patterns of vehicle dynamics begin to emerge. For example, similar types of vehicles operating in a similar environment tend to operate or move in a similar manner. As such, these patterns of movement, as represented in the training dataset, can be used to predict the dynamics of a vehicle for which the specific vehicle movement is unknown. As shown in  FIG.  1   , this historical vehicle driving data for a plurality of particular vehicle simulation environments can be represented as various sets of data in training datasets  135 . Each of the training datasets  135  can represent a particular vehicle simulation environment with particular types of vehicles having a defined set of characteristics. A selected one of the plurality of training datasets  135  can be used to train the machine learning system within the autonomous vehicle dynamics modeling system  120  to produce a particular and desired autonomous vehicle simulation environment. As described in more detail below, the autonomous vehicle dynamics modeling system  120  can generate simulated vehicle dynamics data  125  including predicted vehicle acceleration data, based on the machine learning system trained with a desired training dataset  135  and based on the vehicle control command data  101  and vehicle status data  102 . The resulting simulated vehicle dynamics data  125  provides the autonomous vehicle simulation system  140  with vehicle dynamics data configured for a particular vehicle simulation environment, including particular types of vehicles having a defined set of characteristics. This enables the autonomous vehicle simulation system  140  to adapt to a particular and desired autonomous vehicle simulation environment. 
     Referring now to  FIG.  2   , a component view of the autonomous vehicle dynamics modeling and simulation system according to an example embodiment is illustrated.  FIG.  2    illustrates the components of the autonomous vehicle dynamics modeling system  120  of an example embodiment. In the example embodiment, the autonomous vehicle dynamics modeling system  120  can be configured to include an autonomous vehicle dynamics modeling module  130  configured for execution by a data processor  171  in a computing environment of the autonomous vehicle dynamics modeling system  120 . In the example embodiment, the autonomous vehicle dynamics modeling module  130  can be configured to include a vehicle dynamics modeling module  173  and a neural network  175 . The vehicle dynamics modeling module  173  and the neural network  175  can be configured as software modules for execution by the data processor  171 . As described in more detail herein, the vehicle dynamics modeling module  173  and the neural network  175  serve to model vehicle dynamics for different types autonomous vehicle simulation environments. 
     As shown in  FIG.  2   , a data storage device or memory  172  can also be provided in the autonomous vehicle dynamics modeling system  120  of an example embodiment. The memory  172  can be implemented with standard data storage devices (e.g., flash memory, DRAM, SIM cards, or the like) or as cloud storage in a networked server. In an example embodiment, the memory  172  can be used to store sets of simulated vehicle dynamics data  125  and training datasets  135  for training the neural network  175 . The simulated vehicle dynamics data  125  corresponds to a data representation of various sets of simulated vehicle dynamics data  125  generated by the autonomous vehicle dynamics modeling system  120 . The memory  172  can also be used to store a plurality of training datasets  135 . The training datasets  135  correspond to a data representation of various sets of training data used to train the neural network  175  for various desired autonomous vehicle simulation environments. 
     Referring still to  FIG.  2   , the autonomous vehicle dynamics modeling system  120 , and the vehicle dynamics modeling module  173  therein, can produce simulated vehicle dynamics data  125  that corresponds to the modeled vehicle dynamics data produced for the input vehicle control command data  101  and the vehicle status data  102  and based on the neural network  175  trained using one or more of the training datasets  135 . In the various example embodiments disclosed herein, the vehicle control command data  101  can include control data for a particular vehicle including throttle control data, brake control data, and steering control data. It will be apparent to those of ordinary skill in the art in view of the disclosure herein that other types of vehicle control data may be provided as input to the autonomous vehicle dynamics modeling system  120 . However, in the various example embodiments disclosed herein, the vehicle control command data  101  does not include vehicle component types or characteristics of a specific vehicle, as would be typically required in a conventional system. As such, the vehicle control command data  101  can be independent of and excluding data corresponding to particular vehicle component types or characteristics of a specific vehicle. Thus, the various embodiments disclosed herein do not need vehicle-specific component or characteristic information. This feature of the disclosed embodiments is very useful for vehicle simulation in a simulation system; because, the dynamics and status of a specific engine and transmission or other vehicle component types or characteristics are often difficult to obtain and to model. 
     In the various example embodiments disclosed herein, the vehicle status data  102  can include speed data and pitch data for a particular vehicle. Pitch data corresponds to the vehicle&#39;s degree of inclination or slope. It will be apparent to those of ordinary skill in the art in view of the disclosure herein that other types of vehicle status data may be provided as input to the autonomous vehicle dynamics modeling system  120 . In a typical operational scenario, the autonomous vehicle dynamics modeling system  120  periodically receives inputs  101  and  102  for a particular iteration and generates the corresponding simulated vehicle dynamics data  125  for the autonomous vehicle simulation system  140 . Each iteration can be configured to occur at or within a particular pre-defined rate. When the autonomous vehicle simulation system  140  receives the simulated vehicle dynamics data  125  for a current iteration, the autonomous vehicle simulation system  140  can generate updated vehicle speed and pitch data corresponding to the received simulated vehicle dynamics data  125  for the current iteration. As shown in  FIG.  2   , this updated vehicle speed and pitch data for the current iteration can be fed back to the autonomous vehicle dynamics modeling system  120  and used to update the vehicle status data  102  provided as an input to the autonomous vehicle dynamics modeling system  120  for a subsequent iteration. As a result, the autonomous vehicle dynamics modeling system  120  can use the current vehicle status data  102  generated by the autonomous vehicle simulation system  140 . 
     For each iteration, the autonomous vehicle dynamics modeling system  120 , and the vehicle dynamics modeling module  173  therein, can produce simulated vehicle dynamics data  125  that corresponds to the modeled vehicle dynamics data produced for the input vehicle control command data  101  and the vehicle status data  102  and based on the neural network  175  trained using one or more of the training datasets  135 . The simulated vehicle dynamics data  125  can include predicted vehicle acceleration data for the current iteration, based on the vehicle control command data  101 , the vehicle status data  102 , and the trained neural network  175 . The predicted vehicle acceleration data can be used by the autonomous vehicle simulation system  140  to generate corresponding vehicle speed and pitch data, among other values generated for the particular autonomous vehicle simulation environment. As shown in  FIG.  1   , the predicted vehicle acceleration data and the corresponding vehicle speed and pitch data can be used to provide a validation output, which can be used to validate the accuracy of the training dataset  135  being used by the autonomous vehicle dynamics modeling system  120 . This validation output can be used to continually improve the accuracy of each of the training datasets  135 . 
     In various example embodiments as disclosed herein, the data-driven modeling system and method based on a neural network allows the autonomous vehicle dynamics modeling system  120  to predict accurate vehicle accelerations based on recorded historical vehicle driving data as embodied in the trained neural network  175 . To generate the predicted vehicle accelerations, the vehicle control command data  101  (e.g., throttle, brake, and steering commands) and the vehicle status data (e.g., vehicle pitch and speed status) are provided as inputs to the autonomous vehicle dynamics modeling system  120  for each time step or iteration. Because the predicted vehicle accelerations are based in part on the trained neural network  175 , the particular autonomous vehicle simulation environment can be readily changed and adapted to a new simulation environment by retraining the neural network  175  with a new training dataset  135 . In this manner, the autonomous vehicle dynamics modeling system  120  is readily adaptable to desired simulation environments without having to provide detailed vehicle component type information or specific vehicle characteristic information to the autonomous vehicle dynamics modeling system  120 . As such, the autonomous vehicle dynamics modeling system  120  of the various example embodiments as disclosed herein can be easily adapted to work with any type of vehicle by simply changing the training data  135  used to configure the neural network  175 . This beneficial attribute of the modeling system as disclosed herein saves model rebuilding time when working with other types of vehicles. 
     Referring now to  FIG.  3   , a flow diagram illustrates an example embodiment of a system and method  1000  for autonomous vehicle dynamics simulation. The example embodiment can be configured for: training a machine learning system with a training dataset corresponding to a desired autonomous vehicle simulation environment (processing block  1010 ); receiving vehicle control command data and vehicle status data, the vehicle control command data not including vehicle component types or characteristics of a specific vehicle (processing block  1020 ); by use of the trained machine learning system, the vehicle control command data, and vehicle status data, generating simulated vehicle dynamics data including predicted vehicle acceleration data (processing block  1030 ); providing the simulated vehicle dynamics data to an autonomous vehicle simulation system implementing the autonomous vehicle simulation environment (processing block  1040 ); and using data produced by the autonomous vehicle simulation system to modify the vehicle status data for a subsequent iteration (processing block  1050 ). 
     In an alternative embodiment shown in  FIGS.  4  and  5   , the autonomous vehicle dynamics modeling system  120 , and the vehicle dynamics modeling module  173  therein, can be configured to produce alternative simulated vehicle dynamics data  125  that corresponds to the modeled vehicle dynamics data produced for the input vehicle control command data  101  and the vehicle status data  102  and based on the neural network  175  trained using one or more of the training datasets  135 . In the alternative embodiment as shown in  FIG.  4   , the simulated vehicle dynamics data  125  can include predicted vehicle torque data for the current iteration, based on the vehicle control command data  101 , the vehicle status data  102 , and the trained neural network  175 . In the alternative embodiment, the vehicle control command data  101  does not need to include steering control data and the vehicle status data  102  does not need to include pitch status information. The predicted vehicle torque data as part of the alternative simulated vehicle dynamics data  125  can be used by the autonomous vehicle simulation system  140  to generate corresponding vehicle speed data, among other values generated for the particular autonomous vehicle simulation environment. The use of predicted torque data instead of predicted acceleration data allows a focus on the actual control mechanisms applied to the vehicle instead of the result of the applied control mechanisms. 
     Referring now to  FIG.  5   , a flow diagram illustrates an example embodiment of a system and method  2000  for autonomous vehicle dynamics simulation. The example embodiment can be configured for: training a machine learning system with a training dataset corresponding to a desired autonomous vehicle simulation environment (processing block  2010 ); receiving vehicle control command data and vehicle status data, the vehicle control command data not including vehicle component types or characteristics of a specific vehicle (processing block  2020 ); by use of the trained machine learning system, the vehicle control command data, and vehicle status data, generating simulated vehicle dynamics data including predicted vehicle torque data (processing block  2030 ); providing the simulated vehicle dynamics data to an autonomous vehicle simulation system implementing the autonomous vehicle simulation environment (processing block  2040 ); and using data produced by the autonomous vehicle simulation system to modify the vehicle status data for a subsequent iteration (processing block  2050 ). 
       FIG.  6    shows a diagrammatic representation of a machine in the example form of a computing system  700  within which a set of instructions when executed and/or processing logic when activated may cause the machine to perform any one or more of the methodologies described and/or claimed herein. In alternative embodiments, the machine operates as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine may operate in the capacity of a server or a client machine in server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a personal computer (PC), a laptop computer, a tablet computing system, a Personal Digital Assistant (PDA), a cellular telephone, a smartphone, a web appliance, a set-top box (STB), a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) or activating processing logic that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” can also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions or processing logic to perform any one or more of the methodologies described and/or claimed herein. 
     The example computing system  700  can include a data processor  702  (e.g., a System-on-a-Chip (SoC), general processing core, graphics core, and optionally other processing logic) and a memory  704 , which can communicate with each other via a bus or other data transfer system  706 . The mobile computing and/or communication system  700  may further include various input/output (I/O) devices and/or interfaces  710 , such as a touchscreen display, an audio jack, a voice interface, and optionally a network interface  712 . In an example embodiment, the network interface  712  can include one or more radio transceivers configured for compatibility with any one or more standard wireless and/or cellular protocols or access technologies (e.g., 2nd (2G), 2.5, 3rd (3G), 4th (4G) generation, and future generation radio access for cellular systems, Global System for Mobile communication (GSM), General Packet Radio Services (GPRS), Enhanced Data GSM Environment (EDGE), Wideband Code Division Multiple Access (WCDMA), LTE, CDMA2000, WLAN, Wireless Router (WR) mesh, and the like). Network interface  712  may also be configured for use with various other wired and/or wireless communication protocols, including TCP/IP, UDP, SIP, SMS, RTP, WAP, CDMA, TDMA, UMTS, UWB, WiFi, WiMax, Bluetooth™, IEEE 802.11x, and the like. In essence, network interface  712  may include or support virtually any wired and/or wireless communication and data processing mechanisms by which information/data may travel between a computing system  700  and another computing or communication system via network  714 . 
     The memory  704  can represent a machine-readable medium on which is stored one or more sets of instructions, software, firmware, or other processing logic (e.g., logic  708 ) embodying any one or more of the methodologies or functions described and/or claimed herein. The logic  708 , or a portion thereof, may also reside, completely or at least partially within the processor  702  during execution thereof by the mobile computing and/or communication system  700 . As such, the memory  704  and the processor  702  may also constitute machine-readable media. The logic  708 , or a portion thereof, may also be configured as processing logic or logic, at least a portion of which is partially implemented in hardware. The logic  708 , or a portion thereof, may further be transmitted or received over a network  714  via the network interface  712 . While the machine-readable medium of an example embodiment can be a single medium, the term “machine-readable medium” should be taken to include a single non-transitory medium or multiple non-transitory media (e.g., a centralized or distributed database, and/or associated caches and computing systems) that store the one or more sets of instructions. The term “machine-readable medium” can also be taken to include any non-transitory medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the various embodiments, or that is capable of storing, encoding or carrying data structures utilized by or associated with such a set of instructions. The term “machine-readable medium” can accordingly be taken to include, but not be limited to, solid-state memories, optical media, and magnetic media. 
     The Abstract of the Disclosure is provided to allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in a single embodiment for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus, the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separate embodiment.