VEHICLE ODOMETER SYSTEM
The vehicle control system addresses the issue of varying update cycles by allowing precise command issuance to subsystems, resulting in improved control speed, uniformity, and accuracy for autonomous and semi-autonomous vehicles.
Patent Information
- Application Number
- DE102017105645
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2016-03-29
- Filing Date
- 2017-03-16
- Publication Date
- 2025-06-12
- Estimated Expiration
- 2037-03-16
AI Technical Summary
Different update cycles of sensors and subsystems in autonomous and semi-autonomous vehicles can lead to degraded control speed, uniformity, and accuracy, resulting in jerky stops or alternating responses in adaptive cruise control scenarios.
A vehicle control system that includes multiple controllers with different update cycles, allowing the first controller to issue commands to subsystems at varying levels of accuracy, thereby ensuring more uniform and responsive control.
The system achieves more uniform, faster, and accurate control of vehicle subsystems, preventing jerky stops and maintaining consistent distance in adaptive cruise control scenarios.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
BACKGROUNDAutonomous and semi-autonomous vehicles include numerous sensors and subsystems that are in communication with a computer that determines the various autonomous operations, and is sometimes referred to as the virtual driver. These sensors and subsystems may have different update cycles, i.e., different times for formulating or reformulating a subsystem actuation strategy. For example, a braking subsystem may reformulate a strategy for whether and how much the brakes are to be applied a plurality of times between individual updates of the intended route of the vehicle by the virtual driver.U.S. Pat. No. 5,375,059 A discloses a system and methods for determining the position of the vehicle.U.S. Pat. No. 6,704,434 B1 discloses devices and methods for storing driving information.Different update cycles may degrade the speed, uniformity, and accuracy with which the virtual driver may control the movement of the vehicle. For example, when a stop sign is reached in less than the virtual driver update cycle, the virtual driver may stop the vehicle in front of the sign or stop the vehicle in a jerky manner. In another example, the braking system and engine control system of a trailing vehicle may respond to adaptive cruise control commands attempting to maintain a constant distance between the trailing vehicle and a leading vehicle in an alternating manner, thereby causing the trailing vehicle to alternately travel toward and fall back from the leading vehicle.BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 is a block diagram of a vehicle control system. FIG. 2 is a process flow diagram of an example process for updating a motion state identifier used by a vehicle subsystem. FIG. 3 is a process flow diagram of an example process for instructing the vehicle subsystem to reach a subset of a motion state setpoint.DETAILED DESCRIPTIONReferring to FIG. 1, a vehicle control system 100 implemented in a vehicle 90 includes a first controller 110 that can receive a current value of a state of motion from a second controller 120. The first controller 110 may further determine a subset of a motion state setpoint to be reached by a subsystem 130, and transmit a command to a third controller 124 in communication with the subsystem 130 for the subsystem 130 to reach the subset of the motion state setpoint.The system 100 allows the first controller 110 to issue commands to the subsystem 130 at a level of accuracy appropriate for that subsystem 130, resulting in a more uniform, faster responding control of the subsystem 130 by the first controller 110.FIG. 1 is a block diagram of a vehicle 90 including the vehicle control system 100. The vehicle control system 100 is typically implemented in the vehicle 90, and various elements of the vehicle control system 100 are elements or components of the vehicle 90.The vehicle control system 100 includes the first controller 110, the second controller 120, the third controller 124, and the subsystem 130. The adjective "first / r / s", "second / r / s", and "third / r / s" are used as identifiers throughout this document and are not intended to identify any importance or order. The first controller 110 is in communication with the second controller 120 and the third controller 124, and the third controller 124 is in communication with the subsystem 130. The first controller 110 may be connected to additional controllers and subsystems.The first, second, and third controllers 110, 120, 124 are included in the vehicle control system 100 for carrying out various operations, including those described herein. The controllers 110, 120, 124 are computing devices generally comprising a processor and a memory, the memory comprising one or more forms of computer readable media and storing instructions executable by the processor for performing various operations including those disclosed herein. The memories of the controllers 110, 120, 124 also generally store remote data received via various communication mechanisms, for example, the controllers 110, 120, 124 are generally configured for communication on a CAN bus or the like and / or for using other wired or wireless protocols, such as Bluetooth, etc. The controllers 110, 120, 124 may also connect to an onboard diagnostics (OBD II). Via a vehicle network using Ethernet, WiFi, CAN bus, OBD-II, and / or other wired or wireless mechanisms, the controllers 110, 120, 124 may transmit messages to each other or to various devices in the vehicle 90 and / or receive messages from the various devices, e.g., controllers, actuators, sensors, etc., as discussed herein. For example, the first controller 110 may receive data from first sensors 140. Although depicted herein as three separate controllers, two or more of the controllers 110, 120, 124 may partially or fully overlap in functionality, for example, the second controller 120 and the third controller 124 may be the same controller.Via communication mechanisms as discussed above, the controllers 110, 120, 124 may receive and / or generate, calculate various data, etc. For example, a speed sensor 142 may be used to provide speed data to the first controller 110. A speed sensor 142 is well known and, moreover, as is known, speed data is generally available via a communication mechanism, such as that discussed above, for example, via CAN communication.One or more radar sensors 144 may be used to provide radar data to the first controller 110. For example, one or more radar sensors 144 may be mounted on a front of the vehicle 90 and used to measure a distance or change in distance over time between the vehicle 90 and a second vehicle, as is known to be used in so-called cruise control systems. Additionally, in addition to or as an alternative to radar sensors, a forward facing camera, LIDAR, vehicle-to-vehicle communication, vehicle-to-cloud communication, vehicle-to-infrastructure communication, etc. could be used.The controllers 110, 120, 124 may each have an update cycle. An update cycle is a period of time during which a controller, such as the first controller 110, the second controller 120, or the third controller 124, evaluates currently available data or formulates a one or more action strategy performed by components, such as actuators 150 or the subsystem 130, as directed by the controller 110, 120, 124. The update cycles of the second and third controllers 120, 124 may be shorter than the update cycle of the first controller 110, meaning that the second and third controllers 120, 124 may have numerous possible times to perform an action within a cycle of the first controller 110.A subsystem 130 associated with the third controller 124 may be any group of components that affect operation of the vehicle 90. For example, the subsystem 130 may be a brake subsystem, in which case the third controller 124 is a brake controller. In another example, the subsystem 130 may be a steering subsystem controlled by a steering controller 124. In a third example, the subsystem 130 may be a throttle or other propulsion controller (such as an electric motor) controlled by an engine control module (ECM) controller 124.The controllers 110, 120, 124 may store the value of the state of motion of a subsystem 130 in their memory and modify it as described herein. The state of motion of subsystem 130 is one or more motion-describing variables affected by subsystem 130. Motion-describing variables that may be included in a motion state include, for example, longitudinal position, lateral position, longitudinal speed, yaw rate, yaw angle, slip angle, etc. Motion-describing variables may be measured by, for example, the third sensors 122, or derived from the state of the subsystem 130, for example, rotations of a wheel of the vehicle 90. The value of the motion state may be a scalar value when the motion state includes a motion related variable, or the value of the motion state may be a vector value when the motion state includes multiple motion related variables.The controllers 110, 120, 124 may act on or receive a subset of the state of motion, i.e., act on or receive all or less than all motion-describing variables of the state of motion. A "subgroup" of the motion state is not limited to a strict subgroup and may include all motion-describing variables of the motion state. Alternatively, for example, a controller 110, 120, 124 may act upon or receive only the motion-describing variables describing lateral motion or only the motion-describing variables describing longitudinal motion.A moving state is described with reference to a reference frame. The reference frame may be absolute, relative, or a mixture of absolute and relative. For example, if a motion state includes longitudinal position, lateral position, longitudinal velocity, and yaw angle, an absolute frame of reference may include a given position on the earth against which the longitudinal and lateral positions are measured, a stopped state of the vehicle 90 against which the longitudinal velocity is measured, and exactly north, while the yaw angle is measured. Alternatively, the reference frame may be relative, that is, a previously measured value of the state of motion when the state of motion has been reset. All motion-describing variables may be grouped into a reference frame or the motion-related variables may be grouped into sub-reference frames, for example, a lateral motion reference frame and a longitudinal motion reference frame.An identifier identifies a reference frame. The identifier may be stored in any suitable data structure; for example, the identifier may be stored as a separate variable or counter, or the identifier may be stored with one of the motion-related variables, for example, the identifier takes the most significant digits and the motion-related variable takes the least significant digits.The identifier is replaced when the motion state switches between reference frames. For example, if the motion state is one-dimensional and the reference frame is relative, the motion state may be reset every 1000 values, i.e., the motion state may start at 0 and have a maximum value of 999. In this case, the value of the motion state may be increased from 999 under an original identifier "A" to 0 under a substitute identifier "B". In the case that the identifier changes, the "original identifier" denotes a previous identifier and the "substitute identifier" denotes a later identifier. The "original identifier" is only called so as to distinguish the original identifier from substitute identifiers. Each identifier may be an original identifier relative to a substitute identifier. When the motion state is multi-dimensional, i.e., includes two or more motion-describing values, and the reference frame is relative, the value of the motion state may be reset according to a predetermined condition, for example, when a motion-related variable exceeds a maximum or minimum value. An absolute reference frame may also be reset, for example, if the vehicle 90 exceeds a given distance from one position on the earth included in the reference frame, the state of motion may change to another reference frame including another position on the earth from a group of possible reference frames. Apart from a maximum or minimum value, the resets of the state of motion may be triggered by events of the vehicle 90, external communication, etc.An offset value is the value that relates an original identifier to the immediate substitute identifier. Each offset value is associated with a replacement identifier. The offset value provides a way to determine the value of the motion state under a substitute identifier based on the value of the motion state under an original identifier. For example, for a one-dimensional motion state value of 1325 under an original identifier "A", the motion state value is under a substitute identifier "B" with an offset value of 1000 325. If the motion state is multi-dimensional, the offset value is multi-dimensional.The memories of the controllers 110, 120, 124 may store the identifiers and the offset values. In particular, as the second controller 120 outputs replacement identifiers, the controllers 110, 120, 124 may each store a table 160, 162, 164 of replacement identifiers and offset values associated with the replacement identifiers.FIG. 2 is a process flow diagram illustrating an example process 200 for updating the identifier for the counter. As seen in FIG. 2, various process blocks of the process 200 may be executed in the first controller 110 and / or in one or more second controllers 120. The process begins in a block 205, in which the second controller 120 transmits the value of the state of motion, the original identifier associated with the subsystem state of motion, and the offset value associated with that identifier to the first controller 110.Next, in a block 210, the first controller 110 receives the current value of the subsystem motion state, the identifier, and the offset value associated with the identifier from the second controller 120. The first controller 110 then stores the identifier and the offset value in a block 215.In a decision block 220, the second controller 120 determines whether the current value of the motion state has crossed a boundary condition, which may occur before, during, or after the first controller 110 stores the identifier and offset value. The boundary condition may be one or more maximum or minimum values of the motion related variables included in the motion state or associated with events external to the second controller 120. When the value of the moving state has not crossed the boundary condition, the second controller 120 repeats the determination. If the value of the motion state does not cross the boundary condition, the second controller 120 generates a substitute identifier and an offset value associated with the substitute identifier in a block 225.Next, in a block 230, the second controller 120 transmits the substitute identifier and the offset value associated with the substitute identifier to the first controller 110. Finally, with respect to the second controller 120, the second controller 120 stores, in a block 235, a group, for example, in a table or other suitable data structure, of replacement identifiers and offset values associated with the replacement identifiers.Meanwhile, in a block 240, the first controller 110 receives the substitute identifier and the offset value associated with the substitute identifier from the second controller 120. Finally, with respect to the first controller 110, the first controller 110 stores, in a block 245, a group, for example, in a table or the like, of replacement identifiers and offset values associated with the replacement identifiers.FIG. 3 is a process flow diagram of an example process 300 for instructing the vehicle subsystem 130 to achieve a subset of a motion state setpoint. The process 300 begins in a block 305, in which the first controller 110 determines the subset of the motion state setpoint to be reached by the subsystem 130. For example, if the first controller 110 wishes the vehicle 90 to stop against an imminent stop sign, the motion state setpoint may include a longitudinal position corresponding to the stop sign position, a lateral position, a lane to the right adjacent to the current lane, and a longitudinal speed of zero. In this example, the subset of the motion state setpoint may include only the longitudinal position and the longitudinal velocity, and not the lateral position.Next, in a block 310, the first controller 110 transmits an identifier and a command to reach the subset of the motion state set point. The identifier may be the most current substitute identifier that was received from the second controller 120 and that may have been read from the table 160. The first controller 110 may determine the subset of the motion state setpoint based on the recorded time at which the first controller 110 last received a motion state value, known transmission or processing delays to the third controller 124, and from the third controller 124 to the subsystem 130, and / or other relevant information.Next, in a block 315, the third controller 124 receives the identifier and the command to reach the subset of the motion state set point.Next, in a block 320, the third controller 124 derives a subset of an updated motion state setpoint from the identifier and the subset of the motion state setpoint received from the first controller 110. When the identifier transmitted from the first controller 110 is the identifier that the third controller 124 is currently using, as determined by looking up the original identifier in the table 164, the third controller 124 derives a subset of an updated motion state setpoint that is identical to the subset of the motion state setpoint received from the first controller 110. When the original identifier transmitted from the first controller 110 has been replaced, as determined by looking up the original identifier in the table 164, the third controller 124 derives the subset of the updated target value by using the offset values associated with all intermediate replacement identifiers as read from the table 164.Finally, in a block 325, the third controller 124 instructs the subsystem 130 to approach the subset of the motion state setpoint. If the subsystem 130 is the brake system and the subset of the motion state setpoint includes, for example, a given longitudinal position and a longitudinal speed of zero, the third controller 124 instructs the brake system 130 to apply brakes to slow the vehicle 90 down to a stop at the given longitudinal position.To execute the processes described above, the first controller 110 may be programmed to: receive the current value of the state of motion from the second controller 120, store the substitute identifier and the offset value, store a table 160 of substitute identifiers and offset values associated with the substitute identifiers, determine the subset of the set point of the state of motion to be reached by the subsystem 130, and transmit the substitute identifier and a command for the subsystem 130 to the third controller 124 to reach the subset of the set point of the state of motion.Similarly, to execute the processes described above, the second controller 120 may be programmed to: transmit a current value of the state of motion to the first controller 110, transmit the original identifier associated with the state of motion to the first controller 110, determine whether the current value of the state of motion has crossed a boundary condition, create a replacement identifier and an offset value associated with the replacement identifier, transmit the replacement identifier and the offset value associated with the replacement identifier to the first controller 110, and store a table 162 of replacement identifiers and offset values associated with the replacement identifiers.Finally, to execute the processes described above, the third controller 124 may be programmed to: receive a command from the first controller 110 for the subsystem 130 to reach the motion state setpoint subset, instruct the subsystem 130 to approach the motion state setpoint subset, derive a motion state updated setpoint subset from the identifier and motion state setpoint subset received from the first controller 110, and store a replacement identifier table 164 and offset values associated with the replacement identifiers.The disclosure has been described in an illustrative manner, and it is to be understood that the terminology used is intended to be in the nature of words of description rather than limitation. Many modifications and variations of the present disclosure are possible in light of the above teachings and the disclosure may be practiced otherwise than as specifically described herein.Explanation of Characters110First ControllerFirst Controller120Second ControllerSecond Controller210Receive a state-of-motion value, an original identifier, and an offset valuereceiving a motion state, an original identifier, and an offset value205Transmit a state-of-motion value, an original identifier, and an offset valuetransmitting a motion state, an original identifier, and an offset value215Store the original identifier and the offset value in a tableStore the original identifier and the offset value in a table220Has the state-of-motion crossed a boundary condition?Has the motion state crossed a boundary condition?NoNo. NOYesYes225Create a replacement identifier and an offset valuecreating a substitute identifier and an offset value240Receive the replacement identifier and the offset valueReceive the substitute identifier and the offset value230Transmit the replacement identifier and offset valuetransmitting the substitute identifier and the offset value245Store the replacement identifier and the offset value in the tableStore the replacement identifier and the offset value in the table235Store the replacement identifier and offset value in a tableStore the replacement identifier and the offset value in a tableEndEnd End
Claims
A method for controlling a vehicle (90), comprising: receiving, by a first controller (110), an identifier and a current value of a state of motion from a second controller (120), wherein the first controller (110) and the second controller (120) have an update cycle; determining a subset of a set point of the state of motion at a frequency predetermined by the update cycle of the first controller (110); and transmitting the identifier and a command for a subsystem (130) to reach the subset of the set point of the state of motion; wherein the subsystem (130) is a brake system or a steering system; and wherein the update cycle of the second controller (120) is shorter than the update cycle of the first controller (110).The method of claim 1, further comprising: receiving an offset value associated with the identifier; and storing the identifier and the offset value.The method of claim 1, wherein the subsystem (130) is the braking system.The method of claim 1, wherein the subsystem (130) is the steering system.A method of controlling a vehicle (90) comprising a first controller (110), a second controller (120), and a third controller (124) in communication with a subsystem (130), comprising: receiving, by the first controller (110), a current value of a state of motion and an identifier from the second controller (120), wherein the first controller (110), the second controller 120, and the third controller (124) have an update cycle; determining, by the first controller (110), a subset of a set point of the state of motion; transmitting, by the first controller (110), the identifier and a command for the subsystem (130) to reach the subset of the set point of the state of motion to the third controller (124); receiving, by the third controller (124), the identifier and the command for the subsystem (130) to reach the subset of the motion state set point from the first controller (110); and instructing, by the third controller (124), the subsystem (130) to approach the subset of the motion state set point at a frequency specified by the update cycle of the third controller (124); wherein the subsystem (130) is a brake system or a steering system; wherein the update cycle of the second controller (120) is shorter than the update cycle of the first controller (110); and the update cycle of the third controller (124) is shorter than the update cycle of the first controller (110).The method of claim 5, further comprising: determining, by the second controller (120), whether the current value of the motion state has crossed a boundary condition; and creating, by the second controller (120), a replacement identifier and an offset value associated with the replacement identifier.The method of claim 6, further comprising: transmitting, by the second controller (120), the substitute identifier and the offset value associated with the substitute identifier to the first controller (110); storing, by the first controller (110), the substitute identifier and the offset value; and transmitting, by the first controller (110), the substitute identifier and a command for the subsystem (130) to reach the subset of the motion state set point to the third controller (124).The method of claim 7, further comprising storing, by the first controller (110), replacement identifiers and offset values associated with the replacement identifiers.The method of claim 6, further comprising storing, by the second controller (120), replacement identifiers and offset values associated with the replacement identifiers.The method of claim 9, further comprising deriving, by the third controller (124), a subset of an updated motion state setpoint from the original identifier and from the subset of the motion state setpoint received from the first controller (110).The method of claim 5, wherein the subsystem (130) is the braking system.The method of claim 5, wherein the subsystem (130) is the steering system.A vehicle control system (100) comprising: a first controller (110) comprising a processor and a memory; a second controller (120) comprising a processor and a memory in communication with the first controller (110); a third controller (124) comprising a processor and a memory in communication with the first controller (110), and a subsystem (130) in communication with the third controller (124), wherein the subsystem (130) is a brake system or a steering system; the first controller (110), the second controller (120), and the third controller (124) have an update cycle; the update cycle of the second controller (120) is shorter than the update cycle of the first controller (110); the update cycle of the third controller (124) is shorter than the update cycle of the first controller (110); the first controller (110) is programmed to receive from the second controller (120) an identifier and a current value of a state of motion, determine a subset of a set point of the state of motion, and transmit the identifier and a command to the third controller (124) to cause the subsystem (130) to reach the subset of the set point of the state of motion; the second controller (120) is programmed to send the identifier and the current value of the state of motion to the first controller (110), and the third controller (124) is programmed to receive from the first controller (110) the identifier and the command for the subsystem (130) to reach the subset of the set point of the state of motion and to command the subsystem (130) to approach the subset of the set point of the state of motion at a frequency predetermined by the update cycle of the third controller (124).The vehicle control system (100) of claim 13, wherein the second controller (120) is further programmed to transmit an original identifier associated with the motion state to the first controller (110), determine whether the current value of the motion state has crossed a boundary condition, and generate a substitute identifier and an offset value associated with the substitute identifier.The vehicle control system of claim 14, wherein: the second controller (120) is further programmed to transmit the substitute identifier and the offset value associated with the substitute identifier to the first controller (110), and the first controller (110) is further programmed to store the substitute identifier and the offset value and transmit the substitute identifier and a command to reach the subset of the motion state set point to the third controller (124).The vehicle control system (100) of claim 15, wherein the first controller (110) is further programmed to store replacement identifiers and offset values associated with the replacement identifiers.The vehicle control system (100) of claim 14, wherein the second controller (120) is further programmed to store replacement identifiers and offset values associated with the replacement identifiers.The vehicle control system (100) of claim 17, wherein the third controller (124) is further programmed to derive a subset of an updated motion state setpoint from the original identifier and from the subset of the motion state setpoint received from the first controller (110).The vehicle control system (100) of claim 13, wherein the subsystem (130) is the braking system.The vehicle control system (100) of claim 13, wherein the subsystem (130) is the steering system.
Citation Information
Patent Citations
Vehicle position determination system and method
US5375059A
Vehicle driving information storage apparatus and vehicle driving information storage method
US6704434B1