Vehicle operation
By using machine learning programs to determine wheel load and displacement, identify road disturbances, and update map data, the problem of vehicle sensors being unable to detect road disturbances is solved, enabling precise vehicle operation and safety adjustments in road disturbance environments.
Patent Information
- Application Number
- CN202510831161.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-06-26
- Filing Date
- 2025-06-20
- Publication Date
- 2026-01-02
AI Technical Summary
When the vehicle is in operation, the sensors cannot effectively detect road disturbances, causing the computer to be unable to consider the load and vertical displacement of the wheels caused by the road disturbances, which affects the accuracy and safety of vehicle operation.
Machine learning programs are used to determine the predicted load and vertical displacement on the wheels, identify road disturbances, and update vehicle component parameters using map data to plan routes around or through road disturbances.
It improves the vehicle's operational accuracy and safety in turbulent road environments, enabling real-time adjustments to vehicle components to adapt to road conditions and reduce damage to vehicle components.
Smart Images

Figure CN121246813A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present disclosure relates to operation of a vehicle. BACKGROUND
[0002] A vehicle can be equipped with electronic and electromechanical components, such as computing devices, networks, sensors, and controllers, among others. A vehicle computer can acquire data about the vehicle’s environment and can operate the vehicle or at least some components thereof based on the data. Vehicle sensors can provide data about the route to be traveled and objects in the vehicle’s environment to be considered. Operation of the vehicle can be performed in accordance with acquiring data about objects in the vehicle’s environment while the vehicle is in operation. SUMMARY
[0003] A vehicle can include sensors that collect data while the vehicle is in operation. For example, the sensors can collect data about objects in the environment surrounding the vehicle to be considered. Generally, the vehicle operates along multiple routes to collect sensor data of the environment. While collecting data of the environment, a computer in the vehicle can use the data to operate the vehicle within the environment while considering the objects detected in the environment. However, the data of the environment can lack information about road disturbances (i.e., road deviations) in the road along which the vehicle is traveling, as the computer can not be able to determine or derive the load imparted on the wheels or the vertical displacement of the wheels caused by the vehicle traversing (i.e., driving over) the road disturbances (e.g., due to vehicle sensor configuration and / or vehicle packaging constraints). Thus, the computer can not be able to consider the road disturbances when operating the vehicle in the environment.
[0004] A system includes a computer including a processor and a memory storing instructions executable by the processor such that the processor is programmed to determine, based on inputting collected data of a host vehicle into a machine learning program, a predicted load on a wheel of the host vehicle and a predicted vertical displacement of the wheel via output from the machine learning program. The processor is further programmed to identify, based on at least one of the predicted load and the predicted vertical displacement, a road disturbance traversed by the host vehicle. The processor is further programmed to update map data to include the road disturbance.
[0005] The processor can be further programmed to determine, based on at least one of the predicted load and the predicted vertical displacement, a classification of a vehicle component. The classification can be one of healthy and unhealthy. The processor can be further programmed to output a message based on the vehicle component being unhealthy.
[0006] The processor can be further programmed to provide the updated map data to a remote computer, the computer included in the host vehicle and the remote computer being a server.
[0007] The system can include a remote computer comprising a second processor and a second memory storing instructions executable by the second processor such that the remote computer can be programmed to update a map based on aggregated data comprising updates to the map data from a plurality of vehicles. The second processor can be further programmed to provide the updated map to the computer and a second computer.
[0008] The system can include the second computer comprising a third processor and a third memory storing instructions executable by the third processor such that the second computer can be programmed to adjust a component parameter of a second vehicle based on the road disturbance when the road disturbance is detected via the updated map. The third processor can be further programmed to operate the second vehicle based on the adjusted component parameter when traversing the road disturbance. The second computer can be included in the second vehicle.
[0009] The processor can be further programmed to determine a planned path based on a second road disturbance when the second road disturbance is detected via the map. The second road disturbance can be identified based on at least one of a second predicted load on a target wheel of the second vehicle and a second predicted vertical displacement of the target wheel. The second predicted load and the second predicted vertical displacement can be determined via output from the machine learning based on inputting the collected data of the second vehicle to the machine learning program.
[0010] The processor can be further programmed to operate the host vehicle along the planned path when it is determined that the planned path extends around the second road disturbance.
[0011] The processor can be further programmed to adjust a component parameter of the host vehicle based on the second road disturbance when it is determined that the planned path traverses the second road disturbance. The processor can be further programmed to operate the host vehicle based on the adjusted component parameter when traversing the second road disturbance.
[0012] A method comprises determining a predicted load on a wheel of a host vehicle and a predicted vertical displacement of the wheel via output from a machine learning program based on inputting collected data of the host vehicle to the machine learning program. The method further comprises identifying a road disturbance traversed by the host vehicle based on at least one of the predicted load and the predicted vertical displacement. The method further comprises updating map data to include the road disturbance.
[0013] The method can further include providing, via a first computer, the updated map data to a remote computer. The first computer can be included in the host vehicle and the remote computer is a server.
[0014] The method can further include updating, via the remote computer, a map based on aggregated data including updated map data from a plurality of vehicles. The method can further include transmitting the updated map to the computer and a second computer.
[0015] The method can further include adjusting, via the second computer, a component parameter of a second vehicle based on the road disturbance when the road disturbance is detected via the updated map. The method can further include operating, via the second computer, the second vehicle based on the adjusted component parameter when traversing the road disturbance. The second computer can be included in the second vehicle.
[0016] The method can further include determining a planned path based on a second road disturbance when the second road disturbance is detected via a map.
[0017] The method can further include determining, via output from the machine learning, a second predicted load on a target wheel of a second vehicle and a second predicted vertical displacement of the target wheel based on inputting collected data of the second vehicle to the machine learning program. The method can further include identifying the second road disturbance based on at least one of the second predicted load and the second predicted vertical displacement.
[0018] The method can further include operating the host vehicle along the planned path when it is determined that the planned path extends around the second road disturbance.
[0019] The method can further include adjusting a component parameter of the host vehicle based on the second road disturbance when it is determined that the planned path traverses the second road disturbance. The method can further include operating the host vehicle based on the adjusted component parameter when traversing the second road disturbance.
[0020] Also disclosed herein is a computing device programmed to perform any of the above method steps. Also disclosed herein is a computer program product comprising a computer readable medium storing instructions executable by a computer processor to perform any of the above method steps.
[0021] As disclosed herein, a computer can input collected data from a vehicle into a machine learning program, which is trained to output predicted loads applied to the wheels and predicted vertical displacements of the wheels. The predicted loads and vertical displacements allow the computer to update the mapped displacement data to include identified road disturbances, which allows the computer to take these disturbances into account when operating the vehicle. Attached Figure Description
[0022] Figure 1 This is a block diagram illustrating an example vehicle control system.
[0023] Figures 2A-2B This is a diagram illustrating a main vehicle operating on an exemplary road including exemplary road disturbances.
[0024] Figure 3 It is shown Figure 2A A side view of the main vehicle in the diagram.
[0025] Figure 4 This is an example neural network.
[0026] Figure 5 This is a block diagram illustrating an exemplary simulation system for generating ground-based real-time data for neural networks.
[0027] Figure 6 This is an exemplary flowchart of an exemplary process for operating a vehicle. Detailed Implementation
[0028] refer to Figures 1-5 An exemplary vehicle control system 100 includes a host vehicle 105. A vehicle computer 110 in the host vehicle 105 receives data from sensors 115. The vehicle computer 110 is programmed to determine, based on the collected data from the host vehicle 105 input to a machine learning program and via the output from the machine learning program, a predicted load L on the wheels 300 of the host vehicle 105 and a predicted vertical displacement V of the wheels 300. d The vehicle computer 110 is also programmed to operate based on predicted load L and predicted vertical displacement V. d At least one of the following is used to identify road disturbances 215 traversed by the main vehicle 105. The vehicle computer 110 is also programmed to update map data to include road disturbances 215.
[0029] Now go to Figure 1The host vehicle 105 includes a vehicle computer 110, sensors 115, actuators 120 for actuating various vehicle components 125, and a vehicle communication module 130. The communication module 130 allows the vehicle computer 110 to communicate with a remote server computer 140 and / or other vehicles (e.g., via messaging or broadcast protocols such as Dedicated Short Range Communications (DSRC), cellular, and / or other protocols that can support vehicle-to-vehicle, vehicle-to-infrastructure, vehicle-to-cloud communications, etc., and / or via a packet network 135).
[0030] The vehicle computer 110 includes a processor and memory such as are known. The memory includes one or more forms of computer-readable media, and stores instructions that are executable by the vehicle computer 110 for performing various operations, including operations as disclosed herein. The vehicle computer 110 can also include two or more computing devices that operate in concert to implement vehicle operations, including operations as described herein. Further, the vehicle computer 110 can be a general purpose computer having a processor and memory as described above, and / or can include an electronic control unit (ECU) or electronic controller, etc., for a particular function or set of functions, and / or can include special purpose electronic circuitry, including ASICs manufactured for particular operations (e.g., ASICs for processing and / or communicating sensor data). In another example, the vehicle computer 110 can include an FPGA (field-programmable gate array), which is an integrated circuit manufactured to be configurable by the user. In general, hardware description languages such as VHDL (very high speed integrated circuit hardware description language) are used in electronic design automation to describe digital and mixed-signal systems such as FPGAs and ASICs. For example, an ASIC is manufactured based on VHDL programming provided prior to manufacture, while logic components within a FPGA can be configured based on VHDL programming (e.g., stored in memory electrically connected to the FPGA circuit). In some examples, a combination of processor, ASIC, and / or FPGA circuitry can be included in the vehicle computer 110.
[0031] The vehicle computer 110 can include programming to operate one or more of vehicle propulsion, steering, transmission, climate control, interior and / or exterior lights, horn, doors, etc., and determine whether and when the vehicle computer 110 (rather than a human operator) controls such operations.
[0032] The vehicle computer 110 can include or be communicatively coupled to (e.g., be included in an electronic controller unit (ECU) or the like included in the host vehicle 105) more than one processor (e.g., via a vehicle communication network, such as a communication bus as described further below) for monitoring and / or controlling various vehicle components 125 (e.g., transmission controllers, steering controllers, etc.). The vehicle computer 110 is generally arranged for communication on a vehicle communication network, which can include a bus in the host vehicle 105, such as a controller area network (CAN) or the like, and / or other wired and / or wireless mechanisms.
[0033] Via the host vehicle 105 network, the vehicle computer 110 can transmit messages and / or receive messages (e.g., CAN messages) from various devices in the host vehicle 105 (e.g., sensors 115, actuators 120, ECUs, etc.). Alternatively or additionally, where the vehicle computer 110 actually includes multiple devices, the vehicle communication network can be used for communication between devices represented in the disclosure as the vehicle computer 110. Further, as mentioned below, various controllers and / or sensors 115 can provide data to the vehicle computer 110 via the vehicle communication network.
[0034] The sensors 115 of the vehicle 105 can include a variety of devices known for providing data to the vehicle computer 110. For example, the sensors 115 can include a light detection and ranging (lidar) sensor 115 disposed on the roof of the host vehicle 105, behind the front windshield of the vehicle, around the host vehicle 105, etc., that provides relative position, size, and shape of objects around the host vehicle 105. As another example, one or more radar sensors 115 fixed to the bumper of the vehicle 105 can provide data to provide position of objects, second vehicles, etc., relative to the position of the host vehicle 105. Alternatively or additionally, the sensors 115 can also include, for example, camera sensors 115 (e.g., forward-looking, side-looking, etc.) that provide images from areas around the host vehicle 105. In the context of the present disclosure, an object is a physical (i.e., material) article having mass and that can be represented by a physical phenomenon (e.g., light or other electromagnetic waves or sound, etc.) that can be detected by a sensor 115. Thus, the host vehicle 105, as well as other articles including as discussed below, fall within the definition of “object” herein.
[0035] The vehicle computer 110 is programmed to receive data from one or more sensors 115 substantially continuously, periodically, and / or upon instruction from the remote server computer 140, etc. The data can include, for example, a location of the host vehicle 105. The location data specifies one or more points on the ground and can be in a known form (e.g., geographic coordinates such as latitude and longitude coordinates obtained via a navigation system using a global positioning system (GPS) as is known). Additionally or alternatively, the data can include locations of objects (e.g., vehicles, signs, trees, etc.) relative to the host vehicle 105. As one example, the data can be image data of the environment around the host vehicle 105. In such an example, the image data can include one or more objects and / or signs (e.g., lane markers) on or along a roadway. Image data herein means digital image data (e.g., including pixels having intensity and color values) that can be acquired by a camera sensor 115. The sensor 115 can be mounted to the host vehicle 105 in or on any suitable location (e.g., mounted on a vehicle bumper, on top of the vehicle, etc.) to collect images of the environment around the host vehicle 105.
[0036] The actuators 120 of the host vehicle 105 are implemented via circuitry, chips, or other electronic and / or mechanical components that can actuate various vehicle subsystems according to appropriate control signals as is known. The actuators 120 can be used to control components 125, including propulsion and steering of the vehicle.
[0037] In the context of the present disclosure, a vehicle component 125 is one or more hardware components suitable for performing a mechanical or electromechanical function or operation, such as moving the host vehicle 105, slowing or stopping the host vehicle 105, steering the host vehicle 105, etc. Non-limiting examples of components 125 include propulsion components (which include, for example, an internal combustion engine and / or an electric motor, etc.), transmission components, steering components (which can include, for example, one or more of a steering wheel, a steering rack, etc.), suspension components (which can include, for example, one or more of a damper (e.g., a shock absorber or a strut), a bushing, a spring, a control arm, a ball joint, a link, etc.), parking assist components, adaptive cruise control components, adaptive steering components, etc.
[0038] Additionally, the vehicle computer 110 can be configured for communicating with devices external to the host vehicle 105 via the vehicle-to-vehicle communication module 130 or interface (e.g., communicating with another vehicle and / or a remote server computer 140 (typically via direct radio frequency communication) by vehicle-to-vehicle (V2V) or vehicle-to-infrastructure (V2X) wireless communication (cellular and / or short-range radio communication, etc.). The communication module 130 can include one or more mechanisms that the vehicle’s computer can utilize to communicate, such as a transceiver, including any desired combination of wireless (e.g., cellular, wireless, satellite, microwave, and radio frequency) communication mechanisms and any desired network topology (or multiple topologies when multiple communication mechanisms are utilized). Exemplary communications provided via the communication module 130 include cellular, Bluetooth, IEEE 802.11, dedicated short-range communications (DSRC), cellular V2X (CV2X), and / or wide area network (WAN), including the Internet, which provide data communication services. The label “V2X” is used herein for communications that can be vehicle-to-vehicle (V2V) and / or vehicle-to-infrastructure (V2I), and can be provided by the communication module 130 according to any suitable short-range communication mechanism (e.g., DSRC, cellular, etc.).
[0039] The network 135 represents one or more mechanisms by which the vehicle computer 110 can communicate with remote computing devices (e.g., the remote server computer 140, another vehicle computer, etc.). Thus, the network 135 can be one or more of various wired or wireless communication mechanisms, including any desired combination of wired (e.g., cable and fiber) and / or wireless (e.g., cellular, wireless, satellite, microwave, and radio frequency) communication mechanisms and any desired network topology (or multiple topologies when multiple communication mechanisms are utilized). Exemplary communication networks include wireless communication networks (e.g., using Bluetooth®, Bluetooth Low Energy (BLE), IEEE 802.11, vehicle-to-vehicle (V2V) such as dedicated short-range communications (DSRC), etc.), local area networks (LANs), and / or wide area networks (WANs), including the Internet, which provide data communication services. The network 135 represents one or more mechanisms by which the vehicle computer 110 can communicate with remote computing devices (e.g., the remote server computer 140, another vehicle computer, etc.). Thus, the network 135 can be one or more of various wired or wireless communication mechanisms, including any desired combination of wired (e.g., cable and fiber) and / or wireless (e.g., cellular, wireless, satellite, microwave, and radio frequency) communication mechanisms and any desired network topology (or multiple topologies when multiple communication mechanisms are utilized). Exemplary communication networks include wireless communication networks (e.g., using Bluetooth®, Bluetooth Low Energy (BLE), IEEE 802.11, vehicle-to-vehicle (V2V) such as dedicated short-range communications (DSRC), etc.), local area networks (LANs), and / or wide area networks (WANs), including the Internet, which provide data communication services.
[0040] The remote server computer 140 can be a conventional computing device (i.e., including one or more processors and one or more memories) programmed to provide operations such as disclosed herein. Further, the remote server computer 140 can be accessible via the network 135 (e.g., the Internet, a cellular network, and / or some other wide area network).
[0041] The second vehicle 145 can include a second computer 150. The second computer 150 includes a second processor and a second memory, such as are known. The second memory includes one or more forms of computer-readable media and stores instructions executable by the second computer 150 for performing various operations, including operations as disclosed herein.
[0042] Additionally, the second vehicle 145 can include sensors, actuators for actuating various vehicle components, and a vehicle communication module. The sensors, actuators for actuating various vehicle components, and vehicle communication module generally have features in common with the sensors 115, actuators 120 for actuating various host vehicle components 125, and vehicle communication module 130, and thus will not be described further to prevent redundancy.
[0043] Figures 2A-2B is a diagram illustrating a host vehicle 105 operating in a host lane 205 of an example road 200. A lane is a designated area of a road for vehicle travel. In this context, a road is a ground area that includes any surface that is set up for land vehicle travel. A lane of a road is an area defined along a length of the road that generally has a width that accommodates only one vehicle, i.e., such that multiple vehicles can travel one after another in the lane, rather than side-by-side, i.e., laterally adjacent. The host lane 205 is the lane in which the host vehicle 105 is operating. The road 200 can include one or more target lanes 210. A target lane 210 is a lane in which the host vehicle 105 is not operating and that allows vehicles to travel in the same direction as the host lane 205. Road disturbances 215 can be present on the ground of the road 200. A road disturbance 215 is a deviation from the ground of the road 200, i.e., an irregular vertical change in the road surface. The road disturbance 215 can be any type of protrusion or depression on the ground (e.g., a speed bump, pothole, parking vibration strip, debris, etc.).
[0044] The road disturbance 215 can be at least partially present in the lane 205. For example, the road disturbance 215 can be entirely present within the lane 205, as Figures 2A-2B illustrated. As another example, the road disturbance 215 can be at least partially present within two lanes, i.e., extend across lane markers (e.g., painted lines on the ground of the road that define lateral boundaries of the lanes). As yet another example, the road disturbance 215 can extend entirely across the road 200.
[0045] The vehicle computer 110 can identify collected data for the host vehicle 105 while operating the host vehicle 105 along the roadway 200. In this context, “collected data” is data that describes the movement and position of the vehicle, i.e., the collected data is data that measures various vehicle properties as the vehicle operates. That is, the collected data provides measured values that describe how the host vehicle 105 operates. The collected data can include, for example, vehicle speed, steering angle, wheel slip data, yaw, yaw rate, pitch, pitch rate, heading angle, sideslip angle (i.e., the angle of the vehicle velocity relative to the vehicle’s longitudinal axis), steering wheel torque, vehicle position, etc.
[0046] The collected data can be obtained from the sensor 115 data or derived (e.g., according to known data processing techniques). For example, the sensor 115 can capture data, such as image and / or video data, during operation of the host vehicle 105 and transmit the data to the vehicle computer 110. The vehicle computer 110 can then analyze the sensor 115 data, e.g., using pattern recognition and / or image analysis techniques, to identify the collected data for the host vehicle 105. As another example, the sensor 115 data can specify the collected data for the host vehicle 105 (e.g., wheel speed sensor 115 data that specifies the speed of the host vehicle 105).
[0047] The vehicle computer 110 can input the collected data for the host vehicle 105 into a neural network, such as a deep neural network (DNN) 400 (see Figure 4 , which can be trained to accept the collected data as input and generate as output a predicted load L applied to the wheel 300 of the host vehicle 105 and a predicted vertical displacement V d of the wheel 300. Alternatively, the vehicle computer 110 can transmit the collected data to a remote server computer 140 (e.g., via the network 135). In this case, the remote server computer 140 can input the collected data into the DNN 400 to determine the predicted load L and the predicted vertical displacement V d of the wheel 300. The remote server computer 140 can then transmit the predicted load L and the predicted vertical displacement V d to the vehicle computer 110 (e.g., via the network 135). For ease of illustration, Figure 3 The vertical component of the load L is shown in FIG. 4, but it will be appreciated that the load L can include a component parallel to (or along) a coordinate system extending from the wheel of the vehicle (e.g., a Cartesian coordinate system with an origin at a specified point on the wheel of the vehicle (e.g., the center of rotation of the wheel)) and / or a moment about one or more axes of the vehicle.
[0048] During operation, the main vehicle 105 may traverse road disturbance 215. As used herein, "traversing road disturbance" means moving from one point on the ground to another, where road disturbance 215 lies between these two points on the ground. While traversing road disturbance 215, the wheels 300 of the main vehicle 105 may move vertically and come into contact with road disturbance 215 (e.g., ...). Figure 3 (As shown by the dashed line in the diagram). The vehicle computer 110 can determine whether the predicted load L is greater than a load threshold and / or the predicted vertical displacement V. d A road disturbance 215 can be identified by comparing a predicted load L to a load threshold. For example, vehicle computer 110 can compare a predicted load L to a load threshold. If the predicted load L is greater than the load threshold, vehicle computer 110 can identify a road disturbance 215 at the location of the main vehicle 105. If the predicted load L is less than or equal to the load threshold, vehicle computer 110 can determine that there is no road disturbance 215 at the location of the main vehicle 105. Alternatively, remote server computer 140 can identify a road disturbance 215 based on comparing the predicted load L to a load threshold.
[0049] The load threshold specifies the maximum predicted load L applied to the wheels during operation along a surface without road disturbance 215. The road threshold can be stored (e.g., in the memory of the vehicle computer 110). The load threshold can be determined empirically (e.g., based on tests / simulations to determine the maximum predicted load applied to the wheels when operating along various road surfaces without road disturbance).
[0050] Alternatively, the vehicle computer 110 can predict the vertical displacement V. d Compare with the displacement threshold. If the predicted vertical displacement V d If the displacement is greater than the displacement threshold, the vehicle computer 110 can identify the road disturbance 215 at the location of the main vehicle 105. If the predicted vertical displacement V d If the displacement is less than or equal to the displacement threshold, the vehicle computer 110 can determine that there is no road disturbance 215 at the location of the main vehicle 105. Alternatively, the remote server computer 140 can determine the location based on the predicted vertical displacement V. d Road disturbances are identified by comparing them with a displacement threshold.215
[0051] The displacement threshold specifies the maximum predicted vertical displacement V of the wheel during operation along a surface without road disturbance 215. d The displacement threshold can be stored (e.g., stored in the memory of the vehicle computer 110). The displacement threshold can be determined empirically (e.g., based on testing / simulation to determine the maximum predicted vertical displacement of the wheel when operating along various road surfaces without road disturbances).
[0052] Upon identifying the road disturbance 215, the vehicle computer 110 can determine that the location of the road disturbance 215 is the same location as the location of the host vehicle 105. The vehicle computer 110 may, for example, receive the location of the host vehicle 105 (e.g., from the sensors 115, a navigation system, a remote server computer 140, etc.). Alternatively, the remote server computer 140 can determine that the location of the road disturbance 215 is the same location as the location of the host vehicle 105. In such examples, the remote server computer 140 can receive the location of the host vehicle 105 (e.g., in the same or different transmission as the collected data) (e.g., via the network 135).
[0053] The vehicle computer 110 can determine a respective classification of the respective vehicle component 125 based on the predicted load L and the predicted vertical displacement V d The classification is healthy or unhealthy. In the present context, the vehicle component 125 is healthy when the predicted stress of the vehicle component 125 is less than a stress threshold of the vehicle component 125, and the vehicle component 125 is unhealthy when the predicted stress is greater than or equal to the stress threshold of the vehicle component 125. The vehicle computer 110 can store (e.g., in its memory) a respective stress threshold for the respective vehicle component 125. The respective stress threshold can be determined empirically (e.g., based on testing / simulations to determine stresses on the vehicle component 125 that produce strains within a predetermined range (e.g., 10%, 20%, etc.) of the yield strength of the vehicle component 125).
[0054] The vehicle computer 110 can utilize a respective transfer function to determine a respective predicted stress of the respective vehicle component 125. The respective transfer function relates the predicted load L and the predicted vertical displacement V d to a respective stress on the respective vehicle component 125. The vehicle computer 110 can input the respective transfer function to a cumulative stress model (i.e., a model that determines stresses on the respective vehicle component 125 over time (e.g., due to traversing multiple road disturbances 215, 220)). The cumulative stress model can output a respective predicted stress of the respective vehicle component 125. The vehicle computer 110 can then compare the respective predicted stress to the respective stress threshold to classify the respective vehicle component 125 as healthy or unhealthy.
[0055] The vehicle computer 110 can output a message based on a vehicle component 125 being classified as unhealthy. For example, the vehicle computer 110 can actuate a human-machine interface (e.g., a display screen, a speaker, etc.) to output an audio, visual, and / or haptic message to a user of the host vehicle 105. The message can identify the unhealthy vehicle component 125. Additionally, the message can instruct the user to operate the host vehicle 105 to a specified location to service / maintain the unhealthy vehicle component 125. The vehicle computer 110 can transmit (e.g., via the network 135) a respective classification of a respective vehicle component 125 to the remote server computer 140. The remote server computer 140 can be programmed to transmit (e.g., via the network 135) a message identifying the unhealthy vehicle component 125 to a remote computer (e.g., associated with a service / maintenance entity).
[0056] The vehicle computer 110 is programmed to update map data based on the road disturbance 215. For example, the vehicle computer 110 can receive map data from the remote server computer 140 (e.g., via the network 135). The map data may, for example, include locations of road disturbances 215, 220 along the road 200. The vehicle computer 110 can store the map data (e.g., in its memory). Upon determining the location of the road disturbance 215, the vehicle computer 110 can update the stored map data to include the location of the road disturbance 215. Additionally, the vehicle computer 110 can update the stored map data to include the predicted load L and the predicted vertical displacement V output from the DNN 400 d . The vehicle computer 110 can store the updated map data (e.g., in its memory). Additionally or alternatively, the vehicle computer 110 can provide the updated map data to the remote server computer 140 (e.g., via the network 135).
[0057] The vehicle computer 110 can be programmed to detect the second road disturbance 220 in the roadway 200 based on the map data. For example, the vehicle computer 110 can determine a location of the second road disturbance 220 from the map data. The vehicle computer 110 can then compare a location of the host vehicle 105 to the location of the second road disturbance 220. Upon determining that the second road disturbance 220 is ahead of the host vehicle 105 (e.g., relative to a direction of travel of the host vehicle 105 along the roadway 200), the vehicle computer 110 can generate a planned path for the host vehicle 105 based on the second road disturbance 220. In one example, the vehicle computer 110 can generate a planned path that extends around the second road disturbance 220 (e.g., by changing an operating lane of the host vehicle 105 to the target lane 210 (e.g., based on the target lane 210 being unoccupied and allowing operation in the direction of travel)). That is, the planned path can be generated to prevent the host vehicle 105 from traversing the second road disturbance 220. In another example, the vehicle computer 110 can generate a planned path that extends through the second road disturbance 220 (e.g., by maintaining the host vehicle 105 in the host lane 205 (e.g., based on the target lane 210 being occupied, the second road disturbance extending across multiple lanes 210, etc.)). That is, the planned path can be generated to direct the host vehicle 105 to traverse the second road disturbance 220.
[0058] As used herein, a "path" is a collection of points, e.g., which can be specified as coordinates relative to a vehicle coordinate system and / or geographic coordinates, that the computer 110 is programmed to determine through a conventional navigation and / or path planning algorithm. A path can be specified according to one or more path polynomials. A path polynomial is a polynomial function of three or fewer degrees that describes the motion of a vehicle on the ground. The motion of a vehicle on a roadway is described by a multi-dimensional state vector (e.g., which includes the vehicle position, orientation, velocity, etc.) that can be determined, for example, by fitting a polynomial function to consecutive 2D positions relative to the ground included in the vehicle motion vector.
[0059] Further, for example, a path polynomial p(x) is a model that predicts a path as a line depicted by a polynomial equation. The path polynomial p(x) predicts a predetermined upcoming distance x (e.g., measured in meters) of a path by determining a lateral coordinate p:
[0060] p(x) = a0+ a1x + a2x 2 +a3x 3 (1)
[0061] where a0is an offset, i.e., a lateral distance between the path and a centerline of the vehicle at an upcoming distance x, a1is a heading angle of the path, a2is a curvature of the path, and a3is a rate of change of the curvature of the path.
[0062] In examples in which the planned path extends around the second road disturbance 220, the vehicle computer 110 can be programmed to maintain vehicle component 125 parameters. For example, the vehicle computer 110 can operate the host vehicle 105 along the planned path based on a selected operating mode. That is, the vehicle computer 110 can actuate one or more vehicle components 125 to move the host vehicle 105 along the planned path according to parameters specified by the selected operating mode. The selected operating mode can be selected based on user input (e.g., received via a human-machine interface) that specifies a current operating mode.
[0063] An operating mode is a set of measurable physical parameters of one or more vehicle components 125 (e.g., steering components 125, propulsion components 125, suspension components 125, etc.) that constrain vehicle performance. For example, one operating mode can be a “jounce mode.” Under the “jounce mode,” one or more parameters (e.g., camber, stiffness, ride height, steering stiffness, etc.) of one or more vehicle components 125 (e.g., suspension components 125, steering components 125, etc.) can be specified so as to limit predicted loads imparted on the wheels and predicted vertical displacements of the wheels caused by the host vehicle traversing various road disturbances. For example, the “jounce mode” can be determined or governed according to a lookup table or the like that associates various parameters of the vehicle components 125 with various road disturbances. The parameters of the “jounce mode” can be determined empirically (e.g., based on testing / simulations to determine parameters that minimize predicted loads and predicted vertical displacements when the host vehicle traverses various road disturbances at various speeds). Other non-limiting examples of operating modes (which can be similarly specified according to a lookup table or the like) include a “sport mode,” a “track mode,” an “eco mode,” a “comfort mode,” an “off-road mode,” a “snow mode,” a “sand mode,” etc. The operating modes can be stored (e.g., in memory of the vehicle computer 110).
[0064] In examples in which the planned path extends through the second road disturbance 220, the vehicle computer 110 can be programmed to adjust one or more parameters of one or more vehicle components 125. For example, the vehicle computer 110 can transition the host vehicle 105 from a selected operating mode to a “jounce mode” as the host vehicle 105 traverses the second road disturbance 220. Under the “jounce mode,” the vehicle computer 110 can determine updated parameters of the vehicle components 125 based on the second road disturbance 220. For example, the vehicle computer 110 can access map data to determine a second predicted load L and a second predicted vertical displacement V associated with the second road disturbance 220. The vehicle computer 110 can determine the updated parameters of the vehicle components 125 based on the second predicted load L and the second predicted vertical displacement V. For example, the vehicle computer 110 can determine the updated parameters of the vehicle components 125 according to a lookup table or the like that associates various parameters of the vehicle components 125 with various predicted loads and various predicted vertical displacements. The vehicle computer 110 can actuate one or more vehicle components 125 to move the host vehicle 105 along the planned path according to the updated parameters of the vehicle components 125.d The vehicle computer 110 can select parameters of the vehicle components 125 included in the lookup table associated with the second predicted load L and / or the second predicted vertical displacement V d The vehicle computer 110 can then actuate one or more vehicle components 125 to traverse the second road disturbance 220 according to the selected operating parameters. In such examples, after the host vehicle 105 traverses the second road disturbance 220, the vehicle computer 110 can transition the host vehicle 105 from the “jounce mode” to the selected operating mode.
[0065] The second vehicle 145 can be a leading vehicle or a trailing vehicle. A leading vehicle is a vehicle operating ahead of the host vehicle 105 relative to a direction of travel of the host vehicle 105. A trailing vehicle is a vehicle operating behind the host vehicle 105 based on a direction of travel of the host vehicle 105.
[0066] When the second vehicle 145 is a leading vehicle (see Figure 2B ), the second computer 150 can identify the second road disturbance 220. For example, the second computer 150 can identify the collected data of the second vehicle 145 during operation. The second computer 150 can then input the collected data of the second vehicle 145 to the DNN 400, which outputs a second predicted load L applied on the wheels 300 of the second vehicle 145 and a second predicted vertical displacement V d of the wheels 300 of the second vehicle 145. The second computer 150 can identify the second road disturbance 220 based on at least one of the second predicted load L and the second predicted vertical displacement V d , for example, in the same manner as discussed above with respect to identifying road disturbances. Upon identifying the second road disturbance 220, the second computer 150 can update the map data based on the second road disturbance 220 (e.g., including the location of the second road disturbance 220, the second predicted load L, and the second predicted vertical displacement V d ) in the same manner as discussed above with respect to the vehicle computer 110 updating the map data. Additionally, the second computer 150 can transmit the updated map data to the remote server computer 140 (e.g., via the network 135). The remote server computer 140 can update the map based on the aggregated data to include the second road disturbance 220 (as discussed further below). The remote server computer 140 can then transmit the updated map including the second road disturbance 220 to the vehicle computer 110 (e.g., via the network 135).
[0067] When the second vehicle 145 is a trailing vehicle (see Figure 2A), the second computer 150 can operate the vehicle 145 based on the second road disturbance 215. For example, the second computer 150 can receive an updated map (including the road disturbance 215 identified by the vehicle computer 110) from the remote server computer 140 (e.g., via the network 135). The second computer 150 can access the updated map to detect the road disturbance 215. The second computer 150 can then generate a planned path based on the road disturbance 215 (e.g., in the same manner as discussed above with respect to the vehicle computer 110 generating a planned path). When the planned path extends around the road disturbance 215, the second computer 150 can operate the second vehicle 145 along the planned path, for example, in a selected operating mode. When the planned path extends through the road disturbance 215, the second computer 150 can adjust parameters of one or more vehicle components (e.g., in the same manner as discussed above with respect to the vehicle computer 110 adjusting parameters of the vehicle components 125).
[0068] The remote server computer 140 can be programmed to generate (and / or update) map data for the road 200 including the road disturbances 215, 220 based on aggregated data. Aggregated data refers to data from multiple computers 110, 150 providing messages and then combining the results (e.g., by averaging and / or using some other statistical measure). That is, the remote server computer 140 can be programmed to receive messages from multiple computers 110, 150 indicating one or more road disturbances 215, 220 along the road 200 based on data from multiple vehicles 105, 145. Based on aggregated data indicating one or more road disturbances 215, 220 (e.g., an average number of messages indicating the presence of a road disturbance 215, 220, a percentage of messages, etc.), and with the fact that messages from different vehicles 105, 145 are provided independently of each other, the remote server computer 140 can generate (and / or update) map data to specify road disturbances 215, 220 and predicted loads L and / or predicted vertical displacements V d corresponding to one or more road disturbances 215, 220 based on data from multiple vehicles 105, 145. The remote server computer 140 can store the map data (e.g., in its memory). Additionally, the remote server computer 140 can transmit the map data to multiple vehicles 105, 145, for example, via the network 135.
[0069] Figure 4 is a diagram of an example deep neural network (DNN) 400 that can be trained to predict a predicted load L and a predicted vertical position V dFor example, the DNN 400 can be a software program that is loadable into memory and executed by a processor included in the computer 110, 140, 150. In example implementations, the DNN 400 can include, but is not limited to, a convolutional neural network (CNN), an R-CNN (Region-based CNN), a Fast R-CNN, and a Faster R-CNN. The DNN includes a plurality of nodes, and the nodes are arranged such that the DNN 400 includes an input layer, one or more hidden layers, and an output layer. Each layer of the DNN 400 can include a plurality of nodes 405. Although Figure 4 Three (3) hidden layers are shown, but it is understood that the DNN 400 can include more or fewer hidden layers. The input layer and the output layer can also include more than one node 405.
[0070] The nodes 405 are sometimes referred to as artificial neurons 405 because they are designed to emulate biological (e.g., human) neurons. The set of inputs to each neuron 405 (indicated by the arrows) are each multiplied by a respective weight. The weighted inputs can then be summed in an input function to provide a net input, which can be adjusted by a bias. The net input can then be provided to an activation function, which in turn provides an output for the connected neuron 405. The activation function can be a variety of suitable functions that are typically selected based on empirical analysis. As Figure 4 As indicated by the arrows in FIG. 4, the output of a neuron 405 can then be provided to be included in the set of inputs to one or more neurons 405 in the next layer.
[0071] As one example, the DNN 400 can be trained with ground truth data generated via a simulation system 500 (as discussed further below) and / or updated by the remote server computer 140 with additional data. For example, the weights can be initialized by using a Gaussian distribution, and the bias of each node 405 can be set to zero. Training the DNN 400 can include updating the weights and biases via suitable techniques, such as backpropagation with optimization. The ground truth data can include, but is not limited to, data specifying objects (e.g., vehicles, road perturbations, etc.) within an image or data specifying physical parameters. For example, the ground truth data can be data representing objects and object labels. In another example, the ground truth data can be data representing an object (e.g., a vehicle) and a relative force and movement of the object (e.g., a vehicle) relative to another object (e.g., a road perturbation).
[0072] During operation, the vehicle computer 110 identifies collected data for the host vehicle 105 (as discussed above) and provides the collected data to the DNN 400. The DNN 400 generates a prediction based on the received input. The output is a predicted load L applied on the wheels 300 of the vehicles 105, 145 and a predicted vertical displacement V of the wheels 300 based on the collected data for the vehicles 105, 145 d .
[0073] Referring to Figure 5 , an example simulation system 500 includes a first computer 510. The simulation system 500 can simulate a working condition of a vehicle. The simulation system 500 can include hardware and software such as known (or can be a system developed or built in the future). The simulation system 500 can include sensors 515 and vehicle components 520, including vehicle subsystems, such as a propulsion (e.g., including a powertrain) subsystem, a steering subsystem, etc. As discussed further below, the simulation system 500 can simulate virtual vehicle and / or physical vehicle components 520. The computer 510 is generally arranged for communication on a vehicle communication network, which can include a controller area network (CAN), etc., and / or other wired and / or wireless mechanisms. Via the communication network, the computer 510 can receive messages (e.g., CAN messages) from various devices in the simulation system 500, such as the sensors 515. For example, the sensors 515 can provide data regarding the components 520 being simulated to the computer 510. As described below, various controllers and / or sensors 515 can provide data to the computer 510 via the communication network. Further, the computer 510 can transmit messages to a remote server computer 140 (e.g., via the network 135).
[0074] The computer 510 can collect and process data regarding the vehicle components 520 being simulated. Based on the data, the computer 510 can actuate the vehicle components 520 during the simulation. For example, the vehicle subsystem being simulated can be a propulsion subsystem, a steering subsystem, etc. In these cases, the computer 510 can be a propulsion (e.g., powertrain) controller, a steering controller, etc. The computer 510 can control operation of the vehicle components 520 of the vehicle subsystem being simulated. For example, the operation can be controlling steering, controlling a human-machine interface, etc. The computer 510 can be an electronic control unit (ECU). An “electronic control unit” (ECU) is a device that includes a processor and a memory, the memory including programming for controlling one or more vehicle components 520 (i.e., the memory stores instructions that can be executed by the processor).
[0075] The sensors 515 can include a variety of devices. For example, various controllers in the simulation system 500 can operate as sensors 515 to provide data to the computer 510 via wired communication, e.g., data related to subsystem and / or component status. Further, other sensors 515 can include cameras, motion detectors, etc., i.e., sensors 515 to provide data to assess a position of a component, a condition of a component, etc. The sensors 515 can include, but are not limited to, radar, lidar, and / or ultrasonic transducers.
[0076] The first computer 510 can determine ground truth data for the DNN 400 based on the simulation data and / or the sensor 515 data. That is, the first computer 510 can determine various predicted loads and various predicted vertical displacements for various vehicle operating conditions as the various road disturbances are traversed. As one example, the simulation system 500 can simulate one or more actual (i.e., physical) vehicle components 520. For example, the simulation system 500 can include each vehicle component 520 of a vehicle powertrain subsystem and a steering subsystem. As another example, the simulation system 500 can include vehicle components 520 that form part of one or more vehicle subsystems. In this context, each vehicle component 125 includes one or more hardware components adapted to perform a mechanical function or operation - such as moving a vehicle, slowing or stopping a vehicle, steering a vehicle, etc. Non-limiting examples of components 520 include: propulsion components (which include, e.g., internal combustion engines and / or electric motors, etc.), transmission components, steering components (e.g., which can include one or more of a steering wheel, a steering rack, etc.), and so on. In this case, the first computer 510 can obtain sensor 515 data while actuating various vehicle components 520 to traverse various road disturbances. The respective predicted loads and the respective predicted vertical displacements can be determined or derived from the sensor 515 data collected as the vehicle components 520 are actuated under the various simulated road disturbances (e.g., in accordance with known data processing techniques).
[0077] As another example, the simulation system 500 can simulate a virtual vehicle. In such an example, the first computer 510 can input the virtual vehicle into a vehicle dynamics model. A “vehicle dynamics model” is a physics-based kinematic or dynamic model that describes motion of a vehicle, which outputs respective vehicle states as a function of various control parameters. The vehicle dynamics model can model and output performance of a virtual vehicle (or one or more components thereof) that is actuated to move according to various vehicle operating conditions as various road disturbances are traversed. By inputting the virtual vehicle into the vehicle dynamics model, the first computer 510 can obtain data specifying respective predicted loads and respective predicted vertical displacements as the virtual vehicle is operated to traverse respective road disturbances. That is, the first computer 510 can simulate operation of the virtual vehicle to traverse various road disturbances.
[0078] Figure 6 is a diagram of an example process 600 for operating a vehicle. The process 600 begins in block 605. The process 600 can be implemented by a vehicle computer 110 included in a host vehicle 105, the vehicle computer executing program instructions stored in its memory.
[0079] In block 605, the vehicle computer 110 receives a map from a remote server computer 140. For example, the remote server computer 140 can generate (and / or update) a map based on aggregated data, as discussed above. The remote server computer 140 can then transmit the map to the vehicle computer 110 (e.g., via the network 135), as discussed above. The process 600 continues in block 610.
[0080] In block 610, the vehicle computer 110 identifies collected data for the host vehicle 105. For example, the vehicle computer 110 can obtain sensor 115 data during operation of the host vehicle 105. The vehicle computer 110 can then determine collected data for the host vehicle 105 based on the sensor 115 data, as discussed above. The process 600 continues in block 615.
[0081] In block 615, the vehicle computer 110 determines a predicted load L applied to a wheel 300 of the host vehicle 105 and a predicted vertical displacement V d of the wheel 300 of the host vehicle 105 based on the collected data. For example, the vehicle computer 110 can input the collected data to a DNN 400 trained to output the predicted load L and the predicted vertical displacement V d , as discussed above. The process 600 continues in block 620.
[0082] In block 620, the vehicle computer 110 classifies the respective vehicle component 125 as healthy or unhealthy. For example, the vehicle computer 110 can determine a respective predicted stress of the respective vehicle component 125 based on inputting the predicted load L and the predicted vertical displacement V d to a transfer function associated with respective stresses on the respective vehicle component 125 to a cumulative stress model that outputs the respective predicted stress of the respective vehicle component 125, as discussed above. The vehicle computer 110 can then compare the respective predicted stress to a respective threshold to classify the respective vehicle component 125, as discussed above. If the vehicle computer 110 classifies one vehicle component 125 as unhealthy, the vehicle computer 110 can provide a message to the remote server computer 140 identifying the unhealthy vehicle component 125 (e.g., via the network 135), as discussed above. The process 600 continues in block 625.
[0083] In block 625, the vehicle computer 110 identifies the road disturbance 215 based on the predicted load L and the predicted vertical displacement V d . For example, the vehicle computer 110 can identify the road disturbance based on at least one of the predicted load L being greater than the force threshold and the predicted vertical displacement V d being greater than the displacement threshold, as discussed above. If the vehicle computer 110 identifies the road disturbance 215, the process 600 continues in block 630. Otherwise, the process 600 continues in block 635.
[0084] In block 635, the vehicle computer 110 updates the map data based on the road disturbance 215. For example, the vehicle computer 110 can update the map data to include a location of the road disturbance 215 (e.g., determined from a location of the host vehicle 105, as discussed above) as well as the predicted load L and the predicted vertical displacement V d . The vehicle computer 110 can then provide the updated map data to the remote server computer 140 (e.g., via the network 135), as discussed above. The remote server computer 140 can update the map based on the updated map data and then provide the updated map to the plurality of vehicles 105, 145 (e.g., via the network 135), as discussed above. The process 600 continues in block 635.
[0085] In block 635, the vehicle computer 110 detects whether a second road disturbance 220 exists ahead of the host vehicle 105. For example, the vehicle computer 110 can access the updated map to determine a location of the second road disturbance 220, as discussed above. If the vehicle computer 110 detects the second road disturbance 220 ahead of the host vehicle 105, the process 600 continues in block 640. Otherwise, the process 600 continues in block 645.
[0086] In block 640, the vehicle computer 110 determines whether the planned path prevents the host vehicle 105 from traversing the second road disturbance 220. For example, the vehicle computer 110 can generate a planned path along which to operate the host vehicle 105. If the planned path extends through (i.e., directs the host vehicle 105 to traverse) the second road disturbance 220, the process 600 continues in block 645. If the planned path extends around (i.e., prevents the host vehicle 105 from traversing) the second road disturbance 220, the process 600 continues in block 650.
[0087] In block 645, the vehicle computer 110 adjusts one or more parameters of one or more vehicle components 125 based on the second road disturbance 220. For example, the vehicle computer 110 can transition the host vehicle 105 into a “rough road mode,” as discussed above. The process 600 continues in block 655.
[0088] In box 650, vehicle computer 110 maintains parameters of vehicle component 125. For example, vehicle computer 110 can maintain master vehicle 105 in a selected operating mode, as discussed above. Process 600 continues in box 655.
[0089] In box 655, vehicle computer 110 operates master vehicle 105 along a planned path based on vehicle component 125 parameters determined in one of boxes 645 and 650. Process 600 continues in box 660.
[0090] In box 660, vehicle computer 110 determines whether to continue process 600. For example, if the master vehicle 105 is in the off state, vehicle computer 110 can determine not to continue. Conversely, if the master vehicle 105 is in the on state, vehicle computer 110 can determine to continue. If vehicle computer 110 determines to continue, process 600 returns to box 610. Otherwise, process 600 ends.
[0091] Generally speaking, the described computing system and / or device may employ any of a variety of computer operating systems, including but not limited to the following versions and / or types: Ford Applications; AppLink / Smart Device Connectivity Middleware; Microsoft Operating system; Microsoft Operating system; Unix operating system (e.g., released by Oracle Corporation of Redwood Coast, California). Operating systems: AIX UNIX (published by International Business Machines Corporation, Armonk, New York); Linux; Mac OSX and iOS (published by Apple Inc., Cupertino, California); BlackBerry (published by BlackBerry Ltd., Waterloo, Canada); Android (developed by Google and the Open Handset Alliance); or provided by QNX Software Systems. In-vehicle infotainment platform. Examples of computing devices include, but are not limited to, an onboard first computer, a computer workstation, a server, a desktop computer, a laptop computer, a laptop computer, or a handheld computer, or some other computing system and / or device.
[0092] Computers and computing devices typically include computer-executable instructions, which can be executed by one or more computing devices (such as those listed above). Computer-executable instructions can be compiled or interpreted from computer programs created using a variety of programming languages and / or technologies, which, individually or in combination, include, but are not limited to, Java. TMC, C++, Matlab, Simulink, Stateflow, Visual Basic, Java Script, Perl, HTML, and the like. Some of these applications can be compiled and executed on a virtual machine such as a Java virtual machine, a Dalvik virtual machine, and the like. Generally, a processor (e.g., a microprocessor) receives instructions (e.g., from a memory, a computer-readable medium, etc.) and executes these instructions, thereby performing one or more processes, including one or more of the processes described herein. Such instructions and other data can be stored and transmitted using a variety of computer-readable media. A file in a computing device is generally a collection of data stored on a computer-readable medium (such as a storage medium, a random access memory, etc.).
[0093] The memory can include computer-readable media (also referred to as processor-readable media), which include any non-transitory (e.g., tangible) media involved in providing data (e.g., instructions) that can be read by a computer (e.g., by a processor of a computer). Such media can take many forms, including but not limited to nonvolatile media and volatile media. Non-volatile media can include, for example, optical or magnetic disks and other persistent memory. Volatile media can include, for example, dynamic random access memory (DRAM), which typically constitutes a main memory. Such instructions can be transmitted by one or more transmission media including coaxial cables, copper wire, and fiber optics, including the wires that comprise a system bus coupled to a processor of an ECU. Common forms of computer-readable media include, for example, RAM, PROM, EPROM, a FLASH-EPROM, any other memory chip or cartridge, or any other medium from which a computer can read.
[0094] A database, data repository, or other data store described herein can include various mechanisms for storing, accessing, and retrieving a variety of data, including a hierarchical database, a collection of files in a file system, an application database in a proprietary format, a relational database management system (RDBMS), and the like. Each such data store is generally included within a computing device employing a computer operating system such as one of those mentioned above, and is accessed via a network in any one or more of a variety of manners. A file system can be accessed from the computer operating system, and can include files stored in various formats. An RDBMS, often
[0095] In some examples, system elements can be implemented as computer- readable instructions (e.g., software) on one or more computing devices (e.g., servers, personal computers, etc.), stored on computer-readable media (e.g., disks, memories, etc.) associated therewith. Computer program products can include such instructions stored on computer-readable media for performing the functions described herein.
[0096] With respect to the media, processes, systems, methods, heuristics, etc. described herein, it should be understood that, although the steps of such processes, etc. have been described as occurring in a certain order, such processes could be practiced with the steps taken in an order other than described herein. It further should be understood that certain steps have been described as being performed concurrently with other steps, that certain
[0097] Accordingly, it is to be understood that the above description is intended to be illustrative and not restrictive. Many embodiments and applications other than the examples provided would be apparent upon reading the above description and that the scope of the invention should be determined, not with reference to the above description, but should instead be determined with reference to the appended claims, along with the full range of equivalents to which such claims are entitled. It is anticipated and intended, two, that future developments will occur in the technologies discussed herein and that such future developments will be incorporated into the system and methods disclosed herein. In general, the application is defined by the scope of the claims below, not by the specific examples provided in the description above. Accordingly, the application is to be understood as not limited by the specific examples provided and changes in details can be made without departing from the scope of the application.
[0098] Unless otherwise defined, all terms used in the claims are intended to have the ordinary and customary meaning as understood by one of ordinary skill in the art. Specifically, the use of singular articles such as “a”, “the”, “said” and the like should be read to connote one or more of the indicated elements, unless the context clearly dictates otherwise.
[0099] According to the present invention, there is provided a system having a computer comprising a processor and a memory storing instructions executable by the processor such that the processor is programmed to: determine, via output from a machine learning program, a predicted load on a wheel of a host vehicle and a predicted vertical displacement of the wheel based on inputting collected data of the host vehicle to the machine learning program; identify a road disturbance traversed by the host vehicle based on at least one of the predicted load and the predicted vertical displacement; and update map data to include the road disturbance.
[0100] According to one embodiment, the processor is further programmed to determine a classification of a vehicle component based on at least one of the predicted load and the predicted vertical displacement, wherein the classification is one of healthy and unhealthy; and output a message based on the vehicle component being unhealthy.
[0101] According to one embodiment, the processor is further programmed to provide the updated map data to a remote computer, the computer included in the host vehicle and the remote computer is a server.
[0102] According to one embodiment, the application features further the remote computer, the remote computer including a second processor and a second memory, the second memory storing instructions executable by the second processor such that the remote computer is programmed to update a map based on aggregated data including updated map data from a plurality of vehicles; and provide the updated map to the computer and a second computer.
[0103] According to one embodiment, the application features further the second computer, the second computer including a third processor and a third memory, the third memory storing instructions executable by the third processor such that the second computer is programmed to adjust a component parameter of a second vehicle based on the road disturbance when the road disturbance is detected via the updated map; and operate the second vehicle based on the adjusted component parameter when traversing the road disturbance.
[0104] According to one embodiment, the second computer is included in the second vehicle.
[0105] According to one embodiment, the processor is further programmed to determine a planned path based on a second road disturbance detected via a map.
[0106] According to one embodiment, the second road disturbance is identified based on at least one of a second predicted load on a wheel of a second vehicle and a second predicted vertical displacement of the wheel, wherein the second predicted load and the second predicted vertical displacement are determined via output from the machine learning based on inputting collected data of the second vehicle into the machine learning program.
[0107] According to one embodiment, the processor is further programmed to operate the host vehicle along the planned path when it is determined that the planned path extends around the second road disturbance.
[0108] According to one embodiment, the processor is further programmed to adjust a component parameter of the host vehicle based on the second road disturbance upon determining that the planned path traverses the second road disturbance; and operate the host vehicle based on the adjusted component parameter upon traversing the second road disturbance.
[0109] According to the present invention, a method includes determining, via output from a machine learning program, a predicted load on a wheel of a host vehicle and a predicted vertical displacement of the wheel based on inputting collected data of the host vehicle to the machine learning program; identifying a road disturbance traversed by the host vehicle based on at least one of the predicted load and the predicted vertical displacement; and updating map data to include the road disturbance.
[0110] In one aspect of the present invention, the method includes determining a classification of a vehicle component based on at least one of the predicted load and the predicted vertical displacement, wherein the classification is one of healthy and unhealthy; and outputting a message based on the vehicle component being unhealthy.
[0111] In one aspect of the present invention, the method includes providing, via a first computer, the updated map data to a remote computer, wherein the first computer is included in the host vehicle and the remote computer is a server.
[0112] In one aspect of the present invention, the method includes updating, via the remote computer, a map based on aggregated data including updated map data from a plurality of vehicles; and transmitting the updated map to the computer and a second computer.
[0113] In one aspect of the present invention, the method includes adjusting, via the second computer, a component parameter of a second vehicle based on the road disturbance upon detecting the road disturbance via the updated map; and operating, via the second computer, the second vehicle based on the adjusted component parameter upon traversing the road disturbance.
[0114] In one aspect of the present invention, the second computer is included in the second vehicle.
[0115] In one aspect of the present invention, the method includes determining a planned path based on a second road disturbance upon detecting the second road disturbance via a map.
[0116] In one aspect of the application, the method includes determining, via output from the machine learning, a second predicted load on a wheel of the second vehicle and a second predicted vertical displacement of the wheel based on inputting the collected data of the second vehicle into the machine learning program; and identifying the second road disturbance based on at least one of the second predicted load and the second predicted vertical displacement.
[0117] In one aspect of the application, the method includes operating the host vehicle along the planned path while determining that the planned path extends around the second road disturbance.
[0118] In one aspect of the application, the method includes adjusting a component parameter of the host vehicle based on the second road disturbance while determining that the planned path traverses the second road disturbance; and operating the host vehicle based on the adjusted component parameter while traversing the second road disturbance.
Claims
1. A method comprising: The predicted loads on the wheels of the main vehicle and the predicted vertical displacement of the wheels are determined by inputting the collected data of the main vehicle into a machine learning program and then using the output from the machine learning program. The road disturbance traversed by the main vehicle is identified based on at least one of the predicted load and the predicted vertical displacement; as well as Update map data to include the road disturbances.
2. The method according to claim 1, further comprising: The classification of vehicle components is determined based on at least one of the predicted load and the predicted vertical displacement, wherein the classification is one of healthy and unhealthy. as well as A message is output based on the fact that the vehicle component is unhealthy.
3. The method of claim 1, further comprising providing the updated map data to a remote computer via a first computer, wherein the first computer is included in the master vehicle and the remote computer is a server.
4. The method according to claim 3, further comprising: The map is updated via the remote computer based on aggregated data, including updated map data from multiple vehicles; as well as The updated map is transmitted to the computer and the second computer.
5. The method according to claim 4, further comprising: When the road disturbance is detected via the updated map, the second computer adjusts the component parameters of the second vehicle based on the road disturbance. as well as The second vehicle is operated by the second computer based on the adjusted component parameters when traversing the road disturbance.
6. The method of claim 5, wherein the second computer is included in the second vehicle.
7. The method of claim 1, further comprising determining a planned path based on the second road disturbance when the second road disturbance is detected via a map.
8. The method of claim 7, further comprising: Based on the input of collected data from the second vehicle into the machine learning program, a second predicted load on the wheels of the second vehicle and a second predicted vertical displacement of the wheels are determined via the output from the machine learning program; and The second road disturbance is identified based on at least one of the second predicted load and the second predicted vertical displacement.
9. The method of claim 7, further comprising operating the master vehicle along the planned path when determining that the planned path avoids the second road disturbance extension.
10. The method of claim 7, further comprising: When determining the planned path to traverse the second road disturbance, the component parameters of the main vehicle are adjusted based on the second road disturbance; as well as The main vehicle is operated based on the adjusted component parameters when traversing the second road disturbance.
11. A computer programmed to perform the method according to any one of claims 1 to 10.
12. A computer program product comprising instructions for performing the method according to any one of claims 1 to 10.
13. A vehicle comprising a computer programmed to perform the method according to any one of claims 1 to 10.