four-wheel steering
By planning and controlling the four-wheel steering system using dynamic models, the stability and maneuverability of autonomous vehicles in all directions have been achieved, solving the performance deficiencies of existing systems and enhancing the vehicle's operational capabilities in complex environments.
Patent Information
- Application Number
- CN202180046171.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-06-30
- Filing Date
- 2021-06-29
- Publication Date
- 2025-11-07
- Estimated Expiration
- 2041-06-29
AI Technical Summary
Existing autonomous vehicle systems perform the same in four-wheel steering as traditional front-wheel steering vehicles, lacking the ability to provide greater maneuverability and stability in all directions.
A four-wheel steering system is adopted, which generates a trajectory through planning components and assumes zero lateral velocity using a kinematic vehicle model. Combined with a dynamic vehicle model, independent steering control of the front and rear wheels is performed, including the determination and correction of feedforward and feedback steering angles, to achieve vehicle stability and maneuverability in all directions.
It improves the maneuverability of autonomous vehicles at low speeds and their stability at high speeds, enhances their performance in complex environments, and is easy to integrate into existing systems.
Smart Images

Figure CN115803242B_ABST
Abstract
Description
[0001] Cross Reference to Related Applications
[0002] This PCT international patent application claims priority to U.S. Patent Application 16 / 917,431 filed June 30, 2020, U.S. Patent Application 16 / 917462 filed June 30, 2020, and U.S. Patent Application 16 / 917498 filed June 30, 2020, the disclosure of each of which is incorporated herein by reference. BACKGROUND
[0003] Some autonomous vehicle systems provide independent steering, e.g., of front and rear wheels. More specifically, unlike many conventional vehicles that include steerable front wheels and fixed rear wheels, some vehicles are used to travel in either of two “forward” directions, e.g., such that the wheels at a first end can be front or rear wheels. To enable such bidirectionality, the wheels at each end can be independently steered. Many conventional autonomous systems of this type maneuver the vehicle by steering the front wheels and keeping the rear wheels fixed. Thus, despite having four-wheel steering capability, the performance of the vehicle is the same as a conventional front-wheel steering vehicle. Approximating a two-wheel steering vehicle can be a preferred approach because modeling a two-wheel vehicle can be simpler and relatively known. However, using active steering control on all four wheels of an autonomous vehicle can provide advantages over a two-wheel steering design. For example, four-wheel steering can provide greater maneuverability and / or stability than a conventional two-wheel steering system. BRIEF DESCRIPTION OF DRAWINGS
[0004] The detailed description is described with reference to the accompanying figures. In the figures, the left-most digit(s) of each reference number indicates the figure in which the reference number first appears. The use of the same reference numbers in different figures indicates similar or identical items.
[0005] Figure 1 Perspective view of an example vehicle including aspects according to the present disclosure and a schematic diagram of a portion of an example four-wheel steering system.
[0006] Figure 2 is a schematic top view of an example vehicle including an example steering control system according to aspects of the present disclosure.
[0007] Figure 3 is a textual and visual flowchart of an example sequence of determining a trajectory based on a four-wheel steering model of a vehicle according to aspects of the present disclosure.
[0008] Figure 4 is a textual and visual flowchart of an example sequence of following a trajectory using a four-wheel steering control vehicle according to aspects of the present disclosure.
[0009] Figure 5are text and visual flowcharts for determining example sequences of steering commands with limiting steering constraints according to aspects of the present disclosure.
[0010] Figure 6 is a block diagram of an example system for implementing four-wheel steering and related techniques according to aspects of the present disclosure.
[0011] Figure 7 is a flowchart of an example process for controlling a vehicle using four-wheel steering according to aspects of the present disclosure. DETAILED DESCRIPTION
[0012] The present disclosure generally relates to systems and techniques for controlling steering of a vehicle. In some examples, the techniques discussed herein can include controlling steering of a first subset of wheels according to a first control, and controlling steering of a second subset of wheels according to a second control. In particular, and in some cases, the front wheels can be steered according to a first steering angle, and the rear wheels can be steered according to a second steering angle, e.g., independent of the first steering angle, regardless of the orientation of the vehicle.
[0013] Examples of the present disclosure include one or more vehicle computing systems that execute a planning component to determine one or more trajectories for a vehicle with four-wheel steering capability. For example, the planning component can determine the trajectories using a kinematic vehicle model. The kinematic vehicle model can assume zero lateral velocity at a point representative of the vehicle, i.e., the vehicle is not sideslipping. The point can be equidistant from a first axis through the front wheels of the vehicle and a second axis through the rear wheels of the vehicle. Using the kinematic vehicle model, the planning component can determine, e.g., based on a current state of the vehicle, a first steering angle for the front wheels of the vehicle to navigate to a destination. In examples, the planning component can determine a series of vehicle states, including the front wheel steering angle, as a trajectory. The kinematic vehicle model assumes zero lateral velocity, and thus, implicitly, the rear steering angle is the additive inverse of the front steering angle. In other words, the kinematic vehicle model assumes mirror steering of the vehicle, e.g., about a lateral axis through the point representative of the vehicle.
[0014] Also in aspects of the present disclosure, the vehicle computing system can cause the vehicle to execute the trajectory determined by the planning component. For example, the vehicle computing system, e.g., executing a tracking system, can generate one or more of a front feed steering angle, a rear feed steering angle, and a limiting steering angle to determine the front wheel steering angle and the rear wheel steering angle to execute the trajectory. In implementations, the vehicle includes a first steering controller to control steering of the front wheels, e.g., according to the front wheel steering angle, and a second steering controller to control steering of the rear wheels, e.g., according to the rear wheel steering angle.
[0015] In aspects of the disclosure, the tracking system can determine the front and rear steering angles based at least in part on a dynamic model of the vehicle. Thus, while the planning component can determine a trajectory using a first kinematic model of the vehicle, the tracking system can use a second dynamic model of the vehicle to control the vehicle to follow the trajectory. Like the first model, the dynamic model can also assume zero lateral velocity or zero sideslip of the vehicle to determine the front and rear steering angles. In an example, a tracking component executing the dynamic model can determine a feedforward command based on a current state of the vehicle relative to a state determined by the trajectory. The tracking component can also determine a feedback command based at least in part on a tracking error of the vehicle, e.g., one or more differences between the current state of the vehicle and the trajectory. In at least some examples, the tracking error includes a lateral offset and / or a heading error. The dynamic model can determine the front and rear steering angles as steering angles to eliminate the tracking error.
[0016] In some cases, the front and rear steering angles can also be based at least in part on a ratio between the rear steering angle and the front steering angle. For example, at relatively low speeds, the ratio of the rear steering angle to the front steering angle can be negative. At low speeds, a negative ratio can provide greater maneuverability. At relatively high speeds, the ratio of the rear steering angle to the front steering angle can be positive. At high speeds, a positive ratio can provide greater stability.
[0017] Also in aspects of the disclosure, the tracking component can determine altered front and / or rear steering angles, e.g., when controlling the vehicle according to zero sideslip is not possible. For example, the front wheels can have a first maximum steering angle, while the rear wheels can have a second maximum steering angle. When the tracking system generates a guidance and / or steering command that exceeds the first and / or second maximum steering angles, such steering angles cannot be actually executed. Thus, in some implementations, the tracking system can also generate one or more correction terms to alter the determined front and / or rear steering angles. As described above, the tracking system can determine the front and rear steering angles based on eliminating sideslip or zero lateral velocity. When one or both of the front and / or rear steering angles would otherwise exceed the respective first or second maximum steering angles, the tracking system can relax that constraint to find the correction steering terms.
[0018] The systems and techniques described herein can provide a number of benefits. For example, the four-wheel steering systems described herein can provide increased functionality relative to two-wheel steering systems. For example, at lower speeds, the four-wheel steering systems can provide greater maneuverability, e.g., by providing a higher effective turning radius. At relatively higher speeds, the four-wheel steering systems can provide great stability during turns. As a result of these benefits, the experience of passengers, including safety outcomes, can be improved. The systems and techniques can also be easily integrated into existing vehicles. For example, while existing autonomous vehicles can use two-wheel steering control, and thus the control infrastructure of such vehicles is developed for two-wheel steering, the systems and techniques described herein can be easily integrated into these existing systems. For example, due to the modeling techniques used in aspects of the present disclosure, the logic and programming associated with existing systems can easily implement four-wheel steering. Other features and advantages will be apparent from the following description.
[0019] The techniques and systems described herein can be implemented in a number of ways. Example implementations are provided below with reference to the following figures.
[0020] Figure 1 An example environment 100 through which an example vehicle 102 travels is shown. The example vehicle 102 can be a driverless vehicle, e.g., an autonomous vehicle operating according to the Level 5 classification issued by the U.S. National Highway Traffic Safety Administration, which describes a vehicle capable of performing all safety-critical functions for the entire trip, with the driver (or occupant) not controlling the vehicle at any time. In such examples, because the vehicle 102 can be configured to control all functions from start to finish of a trip, including all parking functions, it can not include a driver and / or controls for driving the vehicle 102, e.g., a steering wheel, accelerator pedal, and / or brake pedal. This is merely one example, and the systems and methods described herein can be incorporated into any ground, airborne, or waterborne vehicle, including from vehicles that require a driver to always manually control to partially or fully autonomous vehicles.
[0021] The example vehicle 102 can be any configuration of vehicle, such as a sedan, sport utility vehicle, crossover vehicle, truck, bus, farm vehicle, or construction vehicle. The vehicle 102 can be powered by one or more internal combustion engines, one or more electric motors, hydrogen power, any combination thereof, and / or any other suitable power source. In the illustrated example, the vehicle 102 is generally traveling in the direction indicated by arrow 104. Thus, a first end 106 of the vehicle 102 is the front or forward end, while an opposite second end 108 of the vehicle 102 is the rear or back end. The example vehicle also includes two front wheels 110 (only one of which is labeled) and two rear wheels 112 (only one of which is labeled). Although the example vehicle 102 has four wheels 104, the systems and methods described herein can be incorporated into vehicles having fewer or greater numbers of wheels and / or tires.
[0022] In implementations of the present disclosure, the vehicle 102 has four wheel steering such that the front wheels 110 and the rear wheels 112 can be independently steered, e.g., relative to one another and / or relative to the vehicle 102. Four wheel steering can facilitate ambidexterity such that the vehicle 102 can operate with the same performance characteristics in all directions. For example, as illustrated in Figure 1 the vehicle 102 is traveling forward in the direction indicated by arrow 104, the first end 106 of the vehicle 102 is the forward end of the vehicle 102, but the vehicle 102 can also travel forward in the opposite direction, e.g., with the first end 106 as the rear end of the vehicle 102. Similarly, the second end 108 of the vehicle 102 is the rear end of the vehicle 102 when traveling in the direction of arrow 104, while the second end 106 is the forward end of the vehicle 102 when traveling forward in the opposite direction of arrow 104.
[0023] In some conventional vehicles that include four wheel steering, the vehicle 102 can still be controlled as a vehicle with two wheel steering. For example, when the first end 106 is the front or forward end, as illustrated in Figure 1 the front wheels 110 can be steered, while the rear wheels 112 are fixed. Similarly, when the second end 108 is the forward end of the vehicle 102, the front wheels 110 can be fixed, while the rear wheels 112 can be steered. However, aspects of the present disclosure involve steering both the front wheels 110 and the rear wheels 112 to provide true four wheel steering. Specifically, in the illustration of Figure 1 both the front wheels 110 and the rear wheels 112 are steered to keep the heading of the vehicle 102 along a path 114, e.g., to implement a lane change. The path 114 can be a visualization associated with a trajectory along which the vehicle 102 will travel, as described in further detail herein. In some cases, using four wheel steering as illustrated in Figure 1 may provide additional stability, e.g., at higher speeds. Four wheel steering can also facilitate greater maneuverability, e.g., by increasing the effective turning radius of the vehicle 102 in small spaces or crowded environments.
[0024] Figure 1 Also included is a block diagram of an example vehicle computing system 116 for implementing four-wheel steering at the vehicle 102. For example, the vehicle computing system 116 includes a planning component 118, a vehicle system controller 120, and a tracking component 122. For ease of understanding, the components of the vehicle computing system 116 are shown and described as separate components, although aspects of the illustrated components can be shared and / or can include additional components to perform the functions described herein and attributed to the illustrated components.
[0025] The planning component 118 is generally configured to generate trajectories 124. For example, the planning component 118 of the vehicle 100 can include instructions stored on a memory that, when executed by a processor, configure the processor to generate data representing one or more trajectories of the vehicle 102. The planning component 118 can receive data representing a position of the autonomous vehicle 100 in its environment and other data, such as local pose data, and the planning component 118 can use this data to generate the trajectories 124. Each of the trajectories 124 can include a position or pose that the planning component 118 indicates for the vehicle 102 to move, for example, along the path 114. For example, the trajectories 124 can include one or more vehicle states at one or more locations along the path 114. In some examples, the planning component 118 can also be configured to determine a projected position and / or pose to be performed by the autonomous vehicle 102, for example, as an additional trajectory. In some examples, the planning component 118 can generate a plurality of potential trajectories for controlling the autonomous vehicle 102 substantially continuously (e.g., every 1 or 2 milliseconds) and can select the trajectory 124 from among these candidate trajectories. This selection can be based at least in part on a desired destination, a current route, a driving mode, a current vehicle trajectory, and / or object trajectory data (e.g., of one or more objects in the environment 100). After generating and / or selecting the trajectory 124, the planning component 116 can send the trajectory 124 to the vehicle system controller 120, for example, as a reference trajectory command to control the autonomous vehicle 102.
[0026] As Figure 1As shown, the planning component 118 includes a first vehicle model 126, and the first vehicle model 126 is used to determine the trajectory 124. In an example, the first vehicle model 124 is a kinematic model of the autonomous vehicle 102. The kinematic model can be chosen to be relatively simple, which allows the planning component 118 to generate the trajectory 124 at a relatively high frequency and with relatively reduced computational resources. As described in further detail herein, the first vehicle model 126 can be based on an assumption that the vehicle has a single zero lateral velocity point. In a traditional two-wheel steering vehicle, a central point between the rear wheels, on an axis extending between the rotational axes of the rear wheels, can be the zero lateral velocity point. However, in a four-wheel steering vehicle, such as the vehicle 102, because the rear wheels 112 are also steerable, the central point between them does not have a zero lateral velocity. Rather, according to aspects of the present disclosure, the first vehicle model 126 can be based at least in part on a model that has a zero velocity point laterally centered, as in a traditional two-wheel steering model, but also longitudinally centered between a first axis extending through the front wheels 110 and a second axis extending through the rear wheels 112.
[0027] Assuming that the wheelbase of the vehicle 102 is the distance between the first axis and the second axis, as described above, the first vehicle model 126 assumes a two-wheel steering model of a vehicle having half of the actual wheelbase of the vehicle 102. Thus, for example, conventional planning programming and systems for two-wheel (front-wheel) steering vehicles can be implemented for the four-wheel steering of the vehicle 102 by modeling the vehicle 102 as having half of its actual wheelbase. Implicitly, this model assumes that the vehicle 102 has mirror steering around the lateral axis at the half wheelbase. That is, in the first vehicle model 126, if the front wheels are turned 10 degrees in a first direction, the rear wheels will be turned 10 degrees in the opposite direction.
[0028] The trajectory 124 is generated by the planning component 118 based on the first vehicle model 126. For example, the planning component 118 can receive a current state of the vehicle, e.g., including a steering angle of the front wheels 110. The planning component 118 can use the first vehicle model 126 to determine an updated front wheel steering angle and an acceleration of the vehicle 102 to perform as desired, e.g., to reach a desired destination or state. Further, by integrating forward the steering and acceleration commands, other vehicle states at future times can be determined. Thus, the trajectory 124 can include information regarding one or more of these vehicle states, e.g., a position of the vehicle 102, a yaw rate associated with the vehicle 102 at that position, a velocity at that position, etc., as well as steering commands and acceleration commands associated with that position. In examples of the present disclosure, the steering commands can include only steering commands for the front wheels, steering commands for the rear wheels, or steering commands for both the front and rear wheels. However, in examples, only the front steering angle can be included in the trajectory 124. As noted above, in implementations of the first vehicle model 126, the rear steering angle is opposite the front steering angle, e.g., additive inverse. Thus, by only outputting the front steering angle, the functionality of the planning component 118 can be similar to that of a conventional planning system for two-wheel steering. Thus, the techniques described herein for four-wheel steering can be integrated into existing two-wheel steering architectures with minimal changes to the architecture. Further details of the functionality of the planning component 118 are described below in connection with Figure 3 Further details of the functionality of the planning component 118 are described below in connection with
[0029] The vehicle system controller 120 can receive the trajectory 124 and perform actions to implement the trajectory 124. In particular, the vehicle system controller 110 can include instructions stored on a memory that, when executed, cause any number of controllers to control aspects of the vehicle 102. Figure 1 The front wheel steering controller 128 and the rear wheel steering controller 130 are shown in particular. As described herein, the vehicle 102 is configured for four-wheel steering such that the front wheels 110 can be steered independently of the rear wheels 112, and vice versa. Thus, as shown, the front wheel steering controller 128 is configured to generate one or more front wheel commands 130, e.g., as a front wheel steering angle δ L for the front wheels 110, while the rear wheel steering controller 130 is configured to generate one or more rear wheel commands 134, e.g., as a rear wheel steering angle δ T .
[0030] Although Figure 1The vehicle system controller 120 is shown as including only a front wheel steering controller 128 and a rear wheel steering controller 130, but the vehicle system controller 112 will include additional controllers for controlling additional aspects of the vehicle 102. There is no limitation, and as noted above, the trajectory 124 can include information regarding acceleration of the vehicle 102. An unshown controller of the vehicle system controller 120 can control acceleration of the vehicle 102. Thus, in some implementations, the vehicle system controller 120 can receive the trajectory 124 generated by the planning component 118 and control various aspects of the vehicle 102 to implement the trajectory 124. As noted above, in some implementations of the present disclosure, the trajectory 124 can include only front wheel steering commands, e.g., corresponding to a front wheel steering angle δ L The first vehicle model 126 implicitly assumes that the rear wheel steering angle δ T is the additive inverse of the front wheel steering angle δ L Thus, in some examples, the rear wheel steering controller 130 can generate the rear wheel commands 134 to cause the rear wheels 112 to steer, e.g., about a lateral axis of the vehicle 102, mirrored to the front wheel commands 132. However, in some instances, it can be desirable to cause the rear wheels 112 to steer other than opposite the front wheels 110. In the illustration of FIG. 1, the rear wheels 112 are steered at approximately the same angle as the front wheels 110. Figure 1
[0031] In some cases, the vehicle system controller 120, more specifically, the front wheel steering controller 128 and / or the rear wheel steering controller 130, can be configured to determine the front wheel commands 132 and / or the rear wheel commands 134 from the trajectory 124. However, in other implementations, the tracking component 122 can include functionality to continuously execute the trajectory 124, e.g., by generating tracking commands as the front wheel commands 132 and / or the rear wheel commands 134 in response to real-time or near real-time data from the vehicle 102, e.g., as received and / or generated sensor data 136.
[0032] Tracking component 122 is typically configured to determine whether vehicle 102 is correctly executing trajectory 124. For example, tracking component 122 of vehicle 102 may include instructions stored in memory that, when executed by a processor, configure the processor to determine how to implement trajectory 124 and calculate deviations from a target state of vehicle 102 (e.g., the vehicle state provided in trajectory 124). In this example, tracking component 122 may receive sensor data 136 and determine whether vehicle 102 conforms to target heading, target steering angle, target steering rate, target position, target speed, target acceleration, and / or other target conditions. Furthermore, tracking component 122 may determine corrective actions to account for detected changes in target conditions. While tracking component 122 can be configured to determine and / or correct any target conditions, aspects of this disclosure may specifically target determining four-wheel steering commands, such as front wheel command 132 and rear wheel command 134, to correct steering-related or tracking errors, such as heading, lateral drift, etc.
[0033] like Figure 1 As shown, the tracking component 122 can implement a second vehicle model 138 to determine front wheel commands 132 and rear wheel commands 134. More specifically, the second vehicle model 138 can be a dynamic vehicle model that generates a front wheel steering angle (δ) based on, for example, the current position, vehicle orientation, etc., determined from sensor data 136. L ) and rear wheel steering angle (δ) T As described in further detail herein, the second vehicle model 138 can adjust the steering angle (δ). L δ T The sum of the feedforward and feedback terms is determined, if constrained by vehicle and / or safety limitations. Additional details of the tracking component 122 are discussed further below, including in reference... Figure 4 .
[0034] Figure 2 This is a schematic top view of example vehicle 200, which can correspond to Figure 1The exemplary vehicle 102 shown is illustrated. As shown, the example vehicle 100 includes a first wheel 204(1), a second wheel 204(2), a third wheel 204(3), and a fourth wheel 204(4) (collectively referred to herein as “wheels 204”) arranged near a corner of the vehicle 200. For example, the frame 206 of the vehicle 200 may define a generally rectangular shape, with the wheels 204 arranged near its corners. More specifically, the first wheel 204(1) and the second wheel 204(2) are relatively closer to a first end 208 of the vehicle, and the third wheel 204(3) and the fourth wheel 204(4) are relatively closer to an opposite second end 210 of the vehicle 200. In this example, the first wheel 204(1) and the second wheel 204(2) are spaced apart by a first distance from the lateral axis 212 of the vehicle 200, and the third wheel 204(3) and the fourth wheel 204(4) are spaced apart by an equal distance from the lateral axis 212. Furthermore, the first wheel 202(1) and the second wheel 202(2) are equidistant from the longitudinal axis 214 of the vehicle 200. Similarly, the third wheel 204(3) and the fourth wheel 204(4) are equidistant from the longitudinal axis 214.
[0035] Similarly, Figure 2 As shown, vehicle 200 includes a first steering controller 216 associated with the first wheel 204(1) and the second wheel 204(2) and a second steering controller 218 associated with the third wheel 204(3) of the fourth wheel 204(4). In the example, the first steering controller 216 may be the one referenced above. Figure 1 The discussion focuses on either the front-wheel steering controller 128 or the rear-wheel steering controller 130. The second steering controller 218 may be the other of the front-wheel steering controller 130 and the rear-wheel steering controller 128.
[0036] Although the first steering controller 216 is shown as being associated with both the first wheel 204(1) and the second wheel 204(2), and the second steering controller 218 is shown as being associated with both the third wheel 204(3) and the fourth wheel 204(4), this is merely an example. In other examples, each wheel 204 can have its own steering controller. Although embodiments of the present disclosure include implementing a first steering angle for the front wheels of a vehicle (e.g., the vehicle 200) and a second steering command for the rear wheels of the vehicle, such control can be implemented through separate steering controllers at the wheels. Moreover, by controlling each wheel 204 independently of all other wheels, greater maneuverability can be provided for the vehicle 200. Without limitation, while the vehicle 200 generally moves forward in either direction along the longitudinal axis 214, in other cases the vehicle can move forward in either direction along the lateral line 212. Such maneuverability can be facilitated by implementing a first steering angle at the second wheel 204(2) and the fourth wheel 204(4) and a second steering angle at the first wheel 204(1) and the third wheel 204(3).
[0037] The vehicle 200 also includes a vehicle computing system 220, which can be the same as or similar to the vehicle computing system 116 discussed above in connection with Figure 1 The vehicle computing system 200 can include a planning component 222 and a tracking component 224, as illustratively shown. As described above, the planning component 222 can include the same functionality as the planning component 118, and the tracking component 224 can include the same functionality as the tracking component 122. The vehicle computing system 220 can be in communication with the first steering controller 216 and the second steering controller 218, e.g., to provide control commands and / or receive information from the respective steering controllers.
[0038] As described herein, the planning component 222 can be configured to determine a trajectory, such as the trajectory 124, using a first model of the vehicle 200. In some examples, the first model is a kinematic vehicle model and is used to determine a series of vehicle states for the vehicle 200. These states are passed to the tracking component 224, which implements the trajectory in conjunction with the first steering controller 216 and the second steering controller 218. In examples, the tracking component 224 can determine a first steering angle, e.g., implemented by the first steering controller 216 at the first wheel 204(1) and the second wheel 204(2), and a second steering angle, e.g., implemented by the second steering controller 216 at the third wheel 204(3) and the fourth wheel 204(4). The tracking component 224 can implement a second vehicle model, e.g., a dynamic vehicle model, to determine the first and second steering angles. In examples, the second model can be applied iteratively to continuously update the steering angles, e.g., in real-time or near real-time.
[0039] Figure 3represents an example process 300 for generating a trajectory for an autonomous vehicle. In particular, Figure 3 includes text and graphical flowcharts illustrating a process 300 in accordance with implementations of the present disclosure. In some examples, the process 300 can be implemented using Figure 1 and / or Figure 2 the components and systems shown and described above, e.g., the planning component 118 and / or the planning component 222, although the process 200 is not limited to being performed by these components. Further, Figure 1 and Figure 2 are not limited to performing the process 300.
[0040] In more detail, the process 300 can include, at operation 302, receiving a measured front steering angle and a destination for the vehicle. For example, a sensor at a wheel of the vehicle can generate a measurement of a front wheel steering angle, and the vehicle can include one or more computing systems that generate a planned path along which the vehicle will travel. In the example accompanying operation 302, the vehicle 304 is an autonomous vehicle, which can be the vehicle 102 and / or the vehicle 200 described above. As shown in the example, the vehicle 304 generally travels in the direction indicated by the arrow 306. Thus, the vehicle 304 includes a front wheel 308 proximate a first (front) end 310 of the vehicle 304 and a rear wheel 312 proximate a second (rear) end 314 of the vehicle 304. The example accompanying operation 302 also shows a destination 316 and an example path along which the vehicle 304 will travel to reach the destination 316. In the example, the planned path can be determined using information from a localization system, a perception system, a prediction system, and / or other aspects of a planning system located on or accessible to the vehicle 304. The planned path can be a desired course for the vehicle 304 to travel in an environment such as the environment 100 described above. In this example, the planned path is shown as a continuous line with varying curvature. In operation, the vehicle 304 can be controlled to remain in a central position on the planned path. However, the planned path is not limited to the illustrated path. In some examples, the planned path can be an envelope with a width or other shape, e.g., laterally relative to the illustrated path, and a lateral extent of the vehicle 304 will maintain that width during operation of the vehicle 304. As used herein, the planned path is generally understood to be a section or area relative to which the vehicle 304 travels. For example, the planned path can be determined to avoid obstacles or objects in an environment of the vehicle 304, including but not limited to other vehicles, pedestrians, etc., to maintain the vehicle 304 and a lane or other section of roadway or drivable surface defined by the roadway, or to otherwise direct the vehicle 304.
[0041] Also as shown in the example accompanying operation 302, the front wheel 308 is angled relative to the direction indicated by the arrow 306. More specifically, the front wheel 308 is angled at a steering angle δ Mangle relative to a longitudinal axis of the vehicle. The steering angle can be measured using conventional sensors or other devices associated with the front wheels 308, a steering system associated with the front wheels 30, or other ways. Thus, the steering angle δ M is the actual current angle at which the front wheels 308 are steered. In the example accompanying operation 302, the rear wheels 312 are also steered relative to the longitudinal axis of the vehicle 304. In this case, the rear wheels 312 are steered at a different angle, e.g., a smaller angle than the steering angle δ M measured at the front wheels 310. However, the steering angle associated with the rear wheels 312 can not be used in the process 300.
[0042] At operation 318, the process 300 includes determining a model of the vehicle. For example, because the vehicle 304 includes independent steering for the front wheels 308 and the rear wheels 312, the model of the vehicle used to determine a trajectory for the vehicle 304 is different than a model used to determine a trajectory for a vehicle configured for front wheel steering. The example accompanying operation 318 illustrates aspects of a representation 320 of the vehicle 304, and the representation 320 illustrates some aspects of a mathematical model used to generate a trajectory, as described herein. The mathematical model can be the first vehicle model 126 discussed above. The mathematical model can be a kinematic model of the vehicle 304.
[0043] The representation 320 conceptualizes various aspects of the model. More specifically, the representation of the distance between the first axis 322 and the second axis 324 is the wheelbase of the vehicle 304, denoted by x in the example. As shown, the representation 320 also includes a point 326 that is, for example, equally spaced between the first axis 322 and the second axis 324 in the longitudinal direction. The point 326 is also disposed along a longitudinal axis 328 of the vehicle 304. Also as shown in the example accompanying operation 318, the representation 320 shows the steering angle δ associated with the front wheels 310. In addition, the rear wheels are indicated as being disposed at a steering angle -δ, i.e., the negative or opposite value of the steering angle of the front wheels. In implementations of the present disclosure, the mathematical model used to determine a trajectory uses only the front steering angle of the front or front end of the vehicle (as received at operation 302), and only determines a front steering angle to include in the trajectory, as described herein. This model assumes that the point 326 is the point at which the vehicle 304 has zero lateral velocity. Thus, this model implicitly includes mirrored steering, as shown in the representation 320. That is, the rear wheels are mirrored relative to the lateral axis of the vehicle 304.
[0044] At operation 330, the process 300 includes planning a trajectory using the model. For example, a planning component implements the mathematical model to determine one or more future vehicle states to follow a planned path to the destination 316. In the example of operation 330, the planning component 332 receives the measured front steering angle δ Figure 3 M and destination 316, and executes model 334 to determine trajectory 336. Planning component 332 can also receive additional information about vehicle 304 to execute model 334 to determine trajectory 336. Without limitation, in addition to current steering angle δ M , planning component can receive information about the current pose of the vehicle, such as the current position of vehicle 304, the current velocity of vehicle 304, the current acceleration of vehicle 304, the current yaw rate of vehicle 304, and use kinematic model 334 to determine trajectory 336 as one or more front wheel steering angles δ L , one or more accelerations of the vehicle, and one or more vehicle states. For example, planning component 332 can use model 334 to determine front wheel steering angles δ L and accelerations of vehicle 304, for example, as vehicle commands, and use model 334 to integrate these commands forward over some predetermined time period to determine a plurality of vehicle states (e.g., position (e.g., the position of point 326), velocity, yaw rate, and / or other characteristics) as a trajectory. For example, the trajectory can include a plurality of steering commands, acceleration commands, and vehicle states determined at a frequency.
[0045] As shown by representation 320, model 334 can be easily integrated into a planning architecture that is also configured for use in vehicles configured for two-wheel steering. For example, because model 334 is a kinematic model based on a zero lateral velocity point (e.g., point 326), model 334 can be used for other vehicle types that can identify a point of zero lateral velocity. In some examples, a trajectory for a vehicle configured for only two wheels (e.g., front wheels) can be determined by identifying a zero lateral velocity point at a point located at the center of the rear wheel axle. In this example, the rear steering angle is always zero, so the kinematic model can be implemented with the velocity between the rear wheels being zero. While not shown in Figure 3 , trajectory 336 can be forwarded to a vehicle controller for implementation.
[0046] Figure 4 representation 320 shows an example process 400 for performing a trajectory at an autonomous vehicle using four-wheel steering. Specifically, Figure 4 includes text and a graphical flowchart illustrating process 400 according to implementations of the present disclosure. In some examples, process 400 can be implemented using components and systems shown and described above, such as tracking component 122 and / or tracking component 224, although process 400 is not limited to being performed by these components. Moreover, Figure 1 and / or Figure 2 components and systems of tracking component 122 and / or tracking component 224 are not limited to performing process 400. Figure 1 and Figure 2 components and systems of tracking component 122 and / or tracking component 224 are not limited to performing process 400.
[0047] At operation 402, process 400 includes receiving a trajectory and current state information. A graphical example accompanying operation 402 includes a graphical representation of a trajectory 404 and vehicle data 406. In the illustration, trajectory 404 includes front wheel steering angle δ L , acceleration a, and one or more vehicle states, although trajectory 404 can include any additional or different information. The trajectory can be trajectory 336 generated by process 300 described above, although process 400 is not limited to using trajectory 336. The vehicle data can include current information about the vehicle, including information about the current pose of the vehicle, such as current speed, yaw, position, yaw rate, etc. The state information can be defined at the center of gravity of the vehicle.
[0048] At operation 408, process 400 includes determining a first front steering angle and a first rear steering angle. As described above, the present disclosure generally relates to four-wheel steering, in which two front wheels (e.g., front wheels 110) are steered independently of two rear wheels (e.g., rear wheels 112). Thus, the front wheels are steered according to front wheel steering angle δ L , and the rear wheels are steered according to rear wheel steering angle δ T . Operation 408 can be associated with determining a feedforward steering command, while operation 422 (discussed in more detail below) can be associated with determining a feedback command.
[0049] An example accompanying operation 408 shows a first representation 410 and a second representation 412 of a vehicle 414 to demonstrate steering angle ratios for determining a first front steering angle δ l,1 and a first rear steering angle δ t,1 . More specifically, in first representation 410 and second representation 412, front wheels 416 of vehicle 414 are steered with a front steering angle δ l , and rear wheels 418 of vehicle 414 are steered with a rear steering angle δ t . In first representation 410, rear wheels 418 are mirrored about a longitudinal axis of vehicle 414 from front wheels 416. Thus, rear steering angle δ t is the additive inverse of front steering angle δ l , or in other words, δ t = - δ l in first representation 410, the ratio of the rear steering angle to the front steering angle is -1. In second representation 412, rear steering angle δ l is equal to front steering angle δ t . Thus, the ratio of the front steering angle to the rear steering angle is 1. First representation 410 and second representation 412 show only two states of vehicle 414; rear wheels 418 can be steered at any ratio to front wheels 416, e.g., any ratio between -1 and 1.
[0050] In an aspect of this disclosure, operation 408 includes determining a first front steering angle δ based at least in part on the ratio of the rear steering angle to the front steering angle. l,1 and the first rear steering angle δ t,1 For example, at relatively low speeds, δ t / δ l A negative ratio can provide greater maneuverability, for example, as a larger turning radius, without sacrificing stability. Conversely, at relatively high speeds, δ t / δ l A positive ratio can provide increased steering stability, for example, during lane changes and / or cornering. Graphical representation 420 shows δ t / δ l An example diagram of the ratio, which can be used at least in part to determine the first front steering angle δ. l,1 and the first rear steering angle δ t,1 .
[0051] In the examples disclosed herein, operation 408 can determine the first forward steering angle δ based at least in part on the vehicle's dynamic model. l,1 and the first rear steering angle δ t,1 In one example, the dynamic model can be at least partially based on steady-state single-tracking with a nonlinear Fiala tire model, such as a bicycle model. The lateral bicycle model has two vehicle states—yaw rate γ and sideslip β. Since the front and rear wheels can steer independently, the dynamic model has two unknowns and two vehicle states. The first front steering angle δ l,1 and the first rear steering angle δ t,1 The tire slip equations can be used to determine the desired vehicle condition, for example, according to the following equations (1) and (2):
[0052] δ l,1 =ak-α l (1)
[0053] δ t,1 =bk-α t (2)
[0054] In equations (1) and (2), a is the distance from the center of mass of the vehicle to a first axis extending through the rotation axis of the front wheels (e.g., the distance in the longitudinal direction), b is the distance from the center of mass of the vehicle to a second axis extending through the rotation axis of the rear wheels, k is the curvature of the path to be followed, e.g., the planned path 114 or the planned path 316, and a is the slip angle. More specifically, the slip angle can be derived from the front and rear tire lateral forces assuming static weight distribution and steady state force balance, e.g., based on lateral acceleration, lateral forces at the front and rear wheels, and the vehicle mass. The forces can be obtained from tire curves given by a non-linear tire model to determine the tire slip angle. In some implementations, the tire model can be the Fiala tire model, which only requires two parameters - cornering stiffness C and friction p, both of which are measured from vehicle data, e.g., the vehicle data 406.
[0055] At operation 422, the process 400 includes determining a second front steering angle and a second rear steering angle. For example, operation 408 can determine expected steering angles for a vehicle model to track a desired path, operation 422 can compare the current state of the vehicle to the path, e.g., where the vehicle should be along the path, and determine correction steering commands. These correction steering commands include a second front steering angle l,2 and a second rear steering angle t,2 An example accompanying operation 422 illustrates the current state of the vehicle 414 relative to a planned path 424. The planned path 424 can be the planned path 114 and / or the planned path 316. Also as shown in the example, the vehicle 414 has a center of mass 426 and is traveling in a longitudinal direction shown by arrow 428. The distance between the center of mass 426 and the planned path 424 is a lateral offset e represented by arrow 430. The arrow 430 is perpendicular to the planned path 424. The example accompanying operation 422 also shows an offset angle A^, which is the angular offset between the planned path 424 and the actual heading of the vehicle 414. In other words, e represents a lateral error and A^ represents a heading error of the vehicle 414, which together represent a tracking error.
[0056] Operation 422 includes using the lateral error and the heading error to determine a second front steering angle l,2 and a second rear steering angle t,2 More specifically, operation 422 can include solving equations (3) and (4):
[0057] l,2 = -kxe - k2A^ (3)
[0058] t,2 = -kxe - k4A^ (4)
[0059] In equations (3) and (4), the terms kx, k2, k3, and k4 are proportional gains.
[0060] At operation 432, process 400 includes determining steering commands based at least in part on the first and second front and rear steering angles. As described herein, operation 408 determines the first front steering angle δ l,2 and the first rear steering angle δ t,2 based on a dynamic model of the vehicle (e.g., as an estimated or feedforward command), and operation 422 determines the first front steering angle δ l,2 and the first rear steering angle δ t,2 based on a measured error (e.g., as a correction or feedback command). In examples, operation 432 can determine the front steering angle δ l and the rear steering angle δ t as the sum of the first and second front steering angles and the first and second rear steering angles, respectively. In examples, the front steering angle δ l and the rear steering angle δ t are determined using equations (5) and (6):
[0061] δ l = δ l,1 + δ l,2 + δ l,LH (5)
[0062] δ t = δ t,1 + δ t,2 + δ t,LH (6)
[0063] Thus, according to equations (5) and (6), the commanded front steering angle is the sum of the front steering angle determined from the dynamic model of the vehicle 414, e.g., at operation 408, and the front steering angle determined from the error in the state of the vehicle 414, e.g., at operation 422. Similarly, the rear steering angle is the sum of the rear steering angle determined from the dynamic model and the rear steering angle determined from the error in the state. Equations (5) and (6) also include third terms, δ t,LH and δ t,LH . These third terms are limit maneuver terms and account for situations in which the determined front and / or rear steering angles calculated from the first and second steering angles cannot be achieved on the vehicle. For example, the steering of the front and / or rear wheels can be limited to a certain maximum steering angle, and the limit maneuver terms can include a correction angle that modifies the calculated front and / or rear steering angles, as described in detail herein. The maximum steering angle can be based on physical capabilities of the vehicle and / or based on predetermined or desired constraints applied to the vehicle, e.g., independent of the actual capabilities of the vehicle. For example, the maximum steering angle can be determined based on preferred performance characteristics, passenger comfort, or other parameters.
[0064] Figure 5An example process 500 is shown for performing a trajectory at an autonomous vehicle using four-wheel steering. Specifically, Figure 5 The text and graphical flowchart including process 500 is illustrative of implementations in accordance with the present disclosure. Process 500 can be performed in conjunction with process 400, e.g., processes 400, 500 can be component processes of an overall process for performing a trajectory. In some examples, process 500 can be implemented using Figure 1 and / or Figure 2 components and systems shown and described above, e.g., tracking component 122 and / or tracking component 224, although process 500 is not limited to being performed by these components. Further, Figure 1 and Figure 2 Process 500 is not limited to performing process 500.
[0065] At operation 502, process 500 includes determining front and rear steering angles. For example, operation 502 can include performing process 400 to estimate front and rear steering angles based on a dynamic model of the vehicle, and using correction steering angles to change these estimated angles based on errors calculated from the predicted path. An example accompanying operation 502 graphically depicts steering angle data 504 including front wheel steering angle δ l and rear wheel steering angle δ t .
[0066] At operation 506, process 500 includes determining that a front steering angle and / or a rear steering angle exceeds a maximum steering limit. An example accompanying operation 506 includes a graphical representation 508 illustrating a vehicle 510 having a front wheel 512 and a rear wheel 514. In this representation, front wheel 512 is steerable in either direction relative to a longitudinal axis 516 to a front wheel maximum steering angle δ l,max , e.g., in a range from δ l,max to -δ l,max (shown in dashed lines). Similarly, rear wheel 514 is steerable in either direction relative to longitudinal axis 516 to a rear wheel maximum steering angle δ t,max , e.g., in a range from δ t,max to -δ t,max (shown in dashed lines). In some examples, the front wheel maximum steering angle can be different than the rear wheel maximum steering angle. For example, the rear wheel maximum steering angle can be less than the front wheel maximum steering angle. Operation 506 can include determining that one or both of the steering angles δ l , δ t included in steering angle data 504 (e.g., determined using process 400) are outside of the maximum steering angles δ l,max , δ t,max , respectively.
[0067] At operation 518, the process 500 includes determining a front steering correction angle and / or a rear steering correction angle. For example, at operation 408, the dynamic model used to determine the estimated steering angle can also be used to determine the limit maneuver correction terms δ l,LH , δ t,LH When one or both of the steering angles exceeds the maximum limit, it can be added to the estimated steering angle and the corrected steering angle. In more detail, the equations (1) and (2) used to determine the estimated or feedforward angle are simplified because they are based on the assumption that the vehicle has zero steady state heading error, e.g., the sideslip β is zero, thus making the front and rear wheels arbitrary. Equations (1) and (2) can be rewritten to include the sideslip, as equations (7) and (8):
[0068]
[0069]
[0070] In equations (7) and (8), β ffw is the sideslip of the vehicle, and the δ terms are constant, unknown offsets.
[0071] During nominal operation, e.g., as in process 400, when the front and rear wheel angles are within the steering limits of the vehicle, the steady state sideslip is set to zero, making the vehicle will have zero steady state heading error, and the front and rear wheel angles are arbitrary. However, when one of the angles reaches the limit, this process can no longer arbitrarily determine the front and rear steering angles. Since the tire slip terms a are determined using the lateral force equations, as described above, in the saturated axle using the sideslip of the vehicle, the required forces at the saturated wheel can still be met. More specifically, the process 500 can allow for a non-zero steady state sideslip. Conceptually, as shown in the example accompanying operation 518, the longitudinal axis 516 of the vehicle 510 is at an angle of non-zero sideslip β with respect to the planned path. That is, the vehicle 510 is no longer tangent to the planned path 520, as shown in equations 1 and 2, where the sideslip is assumed to be zero.
[0072] In more detail, define a saturation function sat(x, lb, ub) that bounds the value x between the lower bound lb and the upper bound ub. Then, the saturated steering angles can be given by equations (9) and (10):
[0073] δ l,1 = sat(δ l,nom , -δ l,max , δ l,max ) (9)
[0074] δ t,1 = sat(δ t,nom , -δ t,max , δ t,max ) (10)
[0075] For example, the nominal front steering angle δ l,nom and the nominal rear steering angle δ t,nom may be the steering angles δ1, δ t determined by the process 400. During front wheel saturation, the steady state sideslip is calculated using equation (11):
[0076] β = δ l,sat - δ l,nom (11)
[0077] During rear wheel saturation, the steady state sideslip is calculated using equation (12):
[0078] β = δ t,saat - δ t,nom (12)
[0079] Substituting these sideslip equations (11) and (12) into equations (9) and (10), respectively, gives equations (13) and (14):
[0080] δ l,1 = sat[(δ l,nom - (δ t,nom - δ t,sat ), - δ l,max , δ l,max ] (13)
[0081] δ t,1 = sat[(δ t,nom - (δ l,nom - δ l,sat ), - δ t,max , δ t,max ] (14)
[0082] In implementing the operation of the vehicle 510 with these steering angles, if both the front and rear steering angles are saturated, the steady state sideslip is not updated (or set to the previously calculated value), effectively limiting the calculated steady state sideslip to the value that occurs when both steering angles are saturated.
[0083] At operation 522, the process 500 includes determining a steering command based at least in part on the steering correction. As shown in the example accompanying operation 518, operation 518 can include determining limiting maneuver steering angles that are used to modify vehicle behavior during steering saturation. For example, these angles can be correction angles that modify the rear feed or correction angles, e.g., determined at operation 518 to maintain vehicle stability during steering saturation. The limiting maneuver angles can be given by equations (15) and (16), shown below:
[0084] δ l,LH = - k l,sat [(δ t,1 + δt,2 -sat(δ t,1 +δ t,2 ), -δ t,max, δ t,max (15)
[0085] δ t,LH =-k t,sat [(δ l,1 +δ l,2 -sat(δ l,1 +δ l,2 ), -δ l,max δ l,max (16)
[0086] In equations (15) and (16), k 1,sat and k t,sat The saturation gain is selected to produce stable closed-loop dynamics and ideal system performance.
[0087] Process 500 may also include integral control that allows the vehicle to reject constant steering offset and allows steady-state lateral error during hill turns. When the steering angle is kept below its limits, the integral steering angle integrates the lateral error as well as the sum of the heading error and steady-state sideslip. During saturation events, the steering angle integrates only the lateral error. This is consistent with the functionality of some conventional two-wheel steering integrated controllers. The vehicle calculation system may include logic to switch between integral angles. For example, without front and rear saturation:
[0088]
[0089]
[0090] There is post-saturation, but no pre-saturation:
[0091]
[0092] There is pre-saturation, but no post-saturation:
[0093]
[0094] As will be understood, the integral steering angle will be included in the feedforward angle, for example, angle δ. 1,1 δ t,1 .
[0095] Figure 6 A block diagram depicts an example system 600 for implementing the techniques described herein. In at least one example, system 600 may include vehicle 602, which can be coupled with… Figure 1 Vehicle 102 shown Figure 2 The vehicle shown is 200.Figure 3 the vehicle 304, Figure 4 the vehicle 414 and / or Figure 5 the vehicle 510 are the same or different. The vehicle 602 can include one or more vehicle computing devices 604, one or more sensor systems 606, one or more transmitters 608, one or more communication connections 610, one or more drive modules 612, and at least one direct connection 614.
[0096] The vehicle computing device 604 also includes one or more processors 616 and a memory 618 that is communicably coupled to the one or more processors 616. In the illustrated example, the vehicle 602 is an autonomous vehicle. However, the vehicle 602 can be any other type of vehicle, or any other system having at least one sensor (e.g., a camera-enabled smartphone). In the illustrated example, the memory 618 of the vehicle computing device 604 stores a localization component 620, a perception component 622, a planning component 626, a tracking component 626, a system controller 628, and steering data 630. Further, the system controller 628 includes a first steering controller 632 and a second steering controller 634. Although depicted as residing in the memory 618 for illustrative purposes, it is contemplated that the localization component 620, the perception component 622 (and / or components thereof), the planning component 626, the tracking component 626, the system controller 628, and the steering data 630 can additionally or alternatively be accessible by the vehicle 602 (e.g., stored on a memory remote from the vehicle 602 or otherwise accessible thereby). Figure 6
[0097] In at least one example, the localization component 620 can include receiving data from the sensors 606 to determine a location and / or orientation (e.g., one or more of x, y, z position, roll, pitch, or yaw) of the vehicle 602. For example, the localization component 620 can include and / or request / receive a map of the environment, and can continuously determine a location and / or orientation of the autonomous vehicle within the map. In some cases, the localization component 620 can utilize SLAM (simultaneous localization and mapping), CLAMS (simultaneous calibration, localization, and mapping), relative SLAM, bundle adjustment, non-linear least squares optimization, etc. to receive image data, lidar data, radar data, IMU data, GPS data, wheel encoder data, etc. to accurately determine a location of the autonomous vehicle. In some cases, the localization component 620 can provide data to various components of the vehicle 602 (e.g., the planning component 626) to determine a current location of the autonomous vehicle 602 for use in generating a trajectory.
[0098] In some cases, the perception component 622 generally includes functionality to perform object detection, segmentation, and / or classification. In some examples, the perception component 622 can provide processed sensor data indicating the presence of an object proximate to the vehicle 602 and / or a classification of the object as an object type (e.g., car, pedestrian, bicycle, animal, building, tree, road surface, curb, sidewalk, unknown, etc.). In additional and / or alternative examples, the perception component 622 can provide processed sensor data indicating one or more features associated with a detected object (e.g., a tracked object) and / or an environment in which the object is located. In some examples, features associated with an object can include, but are not limited to, an x-position (global and / or local position), a y-position (global and / or local position), a z-position (global and / or local position), an orientation (e.g., roll, pitch, yaw), an object type (e.g., classification), a velocity of the object, an acceleration of the object, a range (size) of the object, etc. Features associated with an environment can include, but are not limited to, the presence of another object in the environment, a state of another object in the environment, a time of day, a day of the week, a season, a weather condition, an indication of darkness / light, etc.
[0099] Generally, the planning component 626 can determine a path for the vehicle 602 to follow through an environment. The planning component 626 can be or include functionality belonging to the planning component 118 and / or the planning component 222. For example, the planning component 626 can determine various routes and trajectories, and various levels of detail, using a vehicle model (e.g., the first vehicle model 126). The planning component 626 can determine a route to travel from a first location (e.g., a current location) to a second location (e.g., a target location). For purposes of this discussion, a route can be a sequence of waypoints between two locations. As non-limiting examples, waypoints include streets, intersections, global positioning system (GPS) coordinates, etc. Further, the planning component 626 can generate instructions for guiding an autonomous vehicle along at least a portion of a route from a first location to a second location. In at least one example, the planning component 626 can determine how to guide an autonomous vehicle from a first waypoint in a sequence of waypoints to a second waypoint of the sequence of waypoints. In some examples, the instructions can be a trajectory or a portion of a trajectory. A trajectory can include a sequence of vehicle states corresponding to waypoints and commands for achieving those states. For example, such commands can include steering angles and accelerations. Without limitation, the planning component 626 can receive a current steering angle, e.g., a steering angle of a front wheel of the vehicle, and use the above-described steering angle model to determine a steering angle for a rear wheel of the vehicle. Figure 3The operations discussed determine trajectories based at least in part on the steering angle. The model can be a kinematic model of the vehicle, where it is assumed that the vehicle 602 has a zero velocity point in the middle between the front and rear axles, as described herein. In some implementations, multiple trajectories can be generated substantially simultaneously (e.g., within technical tolerances) in accordance with a back-off level technique, where one of the multiple trajectories is selected for the vehicle 602 to navigate.
[0100] The tracking component 626 includes functionality to adjust steering commands to follow a planned path, e.g., in accordance with trajectories generated by the planning component 624. Without limitation, the tracking component 626 can be or implement functionality attributed to the tracking component 122 and / or the tracking component 224. In examples, the tracking component 626 can use a vehicle model, e.g., a dynamic vehicle model, to generate front and rear wheel steering angles to control the vehicle 602 to follow a path. In some cases, the tracking component 224 can implement the processes 400, 500 to determine steering angles. Although the tracking component 626 is shown as separate from the system controller 628, in some examples, the tracking component 626 can be integrated into the system controller 628.
[0101] The system controller 628 can be configured to control steering, propulsion, braking, safety, emitters, communication, and other systems of the vehicle 602, e.g., based on controls generated by the planning component 624 and / or the tracking component 626. As shown, the system controller 628 includes a first steering controller 632 and a second steering controller 634. For example, the first steering controller 632 can be used to control steering angles of the front wheels of the vehicle 602. The second steering controller 634 can be used to control steering angles of the rear wheels of the vehicle, e.g., independently of the front wheels. The system controller 628 can communicate with and / or control respective systems of the drive module 612 and / or other components of the vehicle 602.
[0102] As described herein, steering data 630 can be used by vehicle 602 in connection with four-wheel steering techniques. For example, steering data 630 can include information regarding steering constraints for front and rear wheels, such as maximum steering angle and / or maximum steering rate limits. Also in implementation, steering data 620 can include a library of steering commands that can be accessed by various components of vehicle 602 to provide steering information in different formats suitable for these components. Without limitation, steering data 620 can include data for selecting steering angle and / or rate limits, as well as data for converting curvature and curvature rate information to front and rear steering limits for different components in radians and radians / second, respectively. For example, steering data 630 can include conversion factors to facilitate such conversions. Further, in some cases, steering data 620 can include information to allow for two-wheel steering and four-wheel steering, such as for the transfer or conversion of information when switching from two-wheel steering to four-wheel steering, and vice versa. Steering data 630 can be a steering library that is accessible by various components of vehicle 602, including positioning component 620, perception component 622, planning component 624, tracking component 626, and / or other components.
[0103] As can be appreciated, the components discussed herein (e.g., positioning component 620, perception component 622 (and its components), planning component 624, tracking component 626, system controller 628, and steering data 630) are shown and described as being partitioned apart for illustrative purposes. However, the operations performed by the various components can be combined or performed in any other component.
[0104] Sensor system 606 can include lidar sensors, radar sensors, ultrasonic transducers, sonar sensors, position sensors (e.g., GPS, compass, etc.), inertial sensors (e.g., inertial measurement units (IMUs), accelerometers, magnetometers, gyroscopes, etc.), cameras (e.g., RGB, IR, intensity, depth, time-of-flight cameras, etc.), microphones, wheel encoders, environmental sensors (e.g., temperature sensors, humidity sensors, light sensors, pressure sensors, etc.), etc. Sensor 606 can include multiple instances of each of these or other types of sensors. For example, a radar sensor can include separate radar sensors located at the corners, front, back, sides, and / or top of vehicle 602. As another example, a camera can include multiple cameras disposed at different locations around the exterior and / or interior of vehicle 602. Sensors 606 can provide input to vehicle computing device 604. Additionally or alternatively, sensor system 606 can transmit sensor data to remote computing device 638 via network(s) 636 at a particular frequency, after a predetermined period of time elapses, in near real-time, etc.
[0105] The transmitter 608 can be configured to transmit light and / or sound. The transmitter 608 in this example can include internal audio and visual transmitters that communicate with passengers of the vehicle 602. By way of example and not limitation, the internal transmitters can include speakers, lights, signs, display screens, touchscreens, haptic transmitters (e.g., vibration and / or force feedback), mechanical actuators (e.g., seatbelt tensioners, seat positioners, headrest positioners, etc.), and the like. The transmitter 608 in this example can also include external transmitters. By way of example and not limitation, the external transmitters in this example include lights to signal a direction of travel or other indicators of vehicle action (e.g., indicator lights, signs, arrays of lights, etc.), and one or more audio transmitters (e.g., speakers, arrays of speakers, horns, etc.) to audibly communicate with pedestrians or other nearby vehicles, with one or more including beam steering technology.
[0106] The communication connection 610 can enable communication between the vehicle 602 and one or more other local or remote computing devices. For example, the communication connection 610 can facilitate communication with other local computing devices on the vehicle 602 and / or the drive module 612. Further, the communication connection 610 can allow the vehicle to communicate with other nearby computing devices (e.g., other nearby vehicles, traffic signals, etc.). The communication connection 610 also enables the vehicle 602 to communicate with remote teleoperations computing devices or other remote services that are remote.
[0107] The communication connection 610 can include physical and / or logical interfaces for connecting the vehicle computing device 604 to another computing device or network, such as the network 638. For example, the communication connection 210 can enable Wi-Fi based communication, such as via frequencies defined by the IEEE 200.11 standards, short-range wireless frequencies such as Bluetooth , cellular communication (e.g., 2G, 3G, 6G, 6G LTE, 5G, etc.), or any suitable wired or wireless communication protocol that enables the respective computing devices to interact with other computing devices.
[0108] In at least one example, the vehicle 602 can include a drive module 612. In some examples, the vehicle 602 can have a single drive module 612. In at least one example, the vehicle 602 can have multiple drive modules 612, with each drive module 612 located at opposite ends (e.g., front and rear, etc.) of the vehicle 602. In at least one example, the drive module 612 can include one or more sensor systems to detect conditions of the drive module 612 and / or the surrounding environment of the vehicle 602. By way of example and not limitation, the sensor systems associated with the drive module 612 can include one or more wheel encoders (e.g., rotary encoders) to sense rotation of the wheels of the drive module, inertial sensors (e.g., inertial measurement units, accelerometers, gyroscopes, magnetometers, etc.) to measure orientation and acceleration of the drive module, cameras or other image sensors, ultrasonic sensors to acoustically detect objects around the drive module, lidar sensors, radar sensors, etc. Some sensors, such as the wheel encoders, are unique to the drive module 612. In some cases, the sensor systems on the drive module 612 can overlap or supplement corresponding systems of the vehicle 602 (e.g., the sensor systems 606).
[0109] The drive module 612 can include many vehicle systems, including a high-voltage battery, an electric motor to drive the vehicle, an inverter to convert direct current from the battery to alternating current for use by other vehicle systems, a steering system including a steering motor and a steering rack (possibly electric), a braking system including hydraulic or electric actuators, a suspension system including hydraulic and / or pneumatic components, a stability control system to distribute braking force to mitigate loss of traction and maintain control, an HVAC system, lighting (e.g., headlights / tail lights to illuminate the environment outside the vehicle, etc.), and one or more other systems (e.g., a cooling system, a safety system, an onboard charging system, other electrical components such as a DC / DC converter, a high-voltage junction, a high-voltage cable, a charging system, a charging port, etc.). Additionally, the drive module 612 can include a drive module controller that can receive and pre-process data from the sensor systems and control operation of the various vehicle systems. In some cases, the drive module controller can include one or more processors and a memory communicatively coupled with the one or more processors. The memory can store one or more modules to perform various functions of the drive module 612. Furthermore, the drive module 612 can also include one or more communication connections that enable each drive module to communicate with one or more other local or remote computing devices.
[0110] In at least one example, the direct connection 614 can provide a physical interface to couple the drive module 612 with the vehicle body of the vehicle 602. For example, the direct connection 614 can allow the transfer of energy, fluids, air, data, etc. between the drive module 612 and the vehicle. In some cases, the direct connection 614 can further releasably secure the drive module 612 to the vehicle body of the vehicle 602.
[0111] As shown, the vehicle 602 can communicate with a computing device 638 via a network 636. For example, the computing device 638 can implement functionality described herein. In more detail, the computing device 638 can include a processor 640 and a memory 642 that stores steering data 644.
[0112] The steering data 644 can include the steering data 630. For example, the steering data 630 can be a subset of the steering data 644, which can be loaded to the vehicle 602 prior to operation of the vehicle. Without limitation, the steering data 644 can include a centralized database of steering data for a fleet of vehicles, including the vehicle 602, and the steering data 630 can be uploaded to the vehicle 602 as needed.
[0113] The processor 616 of the vehicle 602 and the processor 640 of the computing device 638 can be any suitable processor capable of executing instructions to process data and perform operations described herein. By way of example and not limitation, the processors 616 and 640 can include one or more central processing units (CPUs), graphics processing units (GPUs), or any other device or portion of a device that processes electronic data to transform that electronic data into other electronic data that can be stored in registers and / or memories. In some examples, integrated circuits (e.g., ASICs, etc.), gate arrays (e.g., FPGAs, etc.), and other hardware devices can also be considered processors, so long as they are configured to implement coded instructions.
[0114] The memory 618 and the memory 642 are examples of non-transitory computer- readable media. The memory 618 and the memory 642 can store operating systems and one or more software applications, instructions, programs, and / or data to implement the methods described herein and functionality of the various systems. In various implementations, the memory can be implemented using any suitable memory technology, such as static random access memory (SRAM), synchronous dynamic RAM (SDRAM), nonvolatile / Flash-type memory, or any other type of memory capable of storing information. The architectures, systems, and individual elements described herein can include many other logical, programmatic, and physical components, of which those shown in the accompanying figures are merely examples that are related to the discussion herein.
[0115] Although Figure 6The vehicle 602 is shown as a distributed system, but in alternative examples, components of the vehicle 602 can be associated with the computing device 638, and / or components of the computing device 638 can be associated with the vehicle 602. That is, the vehicle 602 can perform one or more functions associated with the computing device 638, and vice versa. Moreover, aspects of the perception system 622 and / or the tracking component 626 can be performed on any of the devices discussed herein.
[0116] Figure 7 An example process 700 that performs the techniques discussed herein is shown. The process 700 (as well as aspects of the processes 300, 400, 500 described herein) is shown as a logic flow graph, each operation of which represents a sequence of operations that can be implemented in hardware, software, or a combination thereof. In the context of software, the operations represent computer-executable instructions stored on one or more computer-readable storage media that, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, and the like that perform particular functions or implement particular abstract data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations can be combined in any order and / or
[0117] In more detail, the process 700 includes determining, at operation 702, a vehicle trajectory using a first vehicle model. For example, the first vehicle model can be a kinematic model of a vehicle that approximates four-wheel steering of the vehicle using mirror steering. Operation 702 can determine the trajectory based at least in part on a desired path that the vehicle will travel along and, for example, a measured current front steering angle. Operation 702 can include aspects of the process 300, for example.
[0118] At operation 704, the process 700 includes determining one or more feedforward commands based on the vehicle trajectory and a second vehicle model. For example, operation 704 can include determining, based on a dynamic model of the vehicle, an estimated front steering angle and an estimated rear steering angle for performing the trajectory. Operation 704 can include aspects of the process 400, for example including operation 408.
[0119] At operation 706, the process 700 includes determining one or more feedback commands based on a measured error. For example, operation 706 can include determining one or both of a lateral error and a heading error, for example, and generating a front steering angle and a rear steering angle for correcting the errors. Operation 704 can include aspects of the process 400, for example including operation 422.
[0120] At operation 708, process 700 includes determining a steering command angle based on the feedforward command and the feedback command. For example, the steering command angle can include a front wheel steering angle and a rear wheel steering angle. The front wheel steering angle can be a sum of the feedforward front steering angle determined at operation 704 and the feedback front steering angle determined at operation 706, while the rear wheel steering angle can be a sum of the feedforward rear steering angle determined at operation 704 and the feedback rear steering angle determined at operation 706.
[0121] At operation 710, process 700 includes determining whether the steering command angle meets or exceeds a maximum angle. For example, the front wheels can have a first maximum steering angle, while the rear wheels can have a second maximum steering angle. The first and second maximum steering angles can be the same or different.
[0122] If it is determined at operation 710 that the steering command angle does not meet or exceed the maximum angle, then at operation 712, process 700 includes generating a vehicle control command that includes the steering command angle. For example, the command can cause the front vehicle wheels to be controlled at the front and rear steering angles determined at operation 708. In some cases, the front or rear steering angles can be modified to match a preferred steering ratio, steering rate, etc.
[0123] Alternatively, if it is determined at operation 710 that the steering command angle meets or exceeds the maximum angle, then at operation 714, process 700 includes determining one or more alternative feedforward commands using a second vehicle model. For example, operation 704 can apply the first vehicle model by assuming certain conditions. For example, operation 704 can assume that the vehicle has no sideslip. In contrast, operation 714 can determine feedforward commands based on a non-zero sideslip, e.g., because one or both of the front and rear wheel steering angles can be constrained to the maximum steering angle. Allowing some sideslip will allow alternative steering angles to be determined that are within the respective maximum steering angle ranges.
[0124] At operation 716, process 700 includes generating a vehicle control command that includes the steering command angle. For example, the command can cause the front vehicle wheels to be controlled at a front steering angle that is a sum of the alternative feedforward command determined at operation 714 and the feedback front steering angle determined at operation 706. The command can also cause the rear vehicle wheels to be controlled at a rear steering angle that is a sum of the alternative feedforward command determined at operation 714 and the feedback rear steering angle determined at operation 706. In some cases, the front and rear steering angles can be modified to correspond to a preferred steering ratio, steering rate, etc.
[0125] Example Clauses
[0126] A. An autonomous vehicle comprising: a front wheel disposed near a front end of the autonomous vehicle, the front wheel configured to steer relative to a longitudinal axis of the autonomous vehicle; a rear wheel disposed near a rear end of the autonomous vehicle, the rear wheel configured to steer relative to the longitudinal axis and independently of the front wheel; one or more processors; and a memory storing instructions that, when executed by the one or more processors, cause the autonomous vehicle to perform actions comprising: receiving, at a planning component, a destination for the autonomous vehicle to travel; receiving, at the planning component, a current vehicle state of the autonomous vehicle; determining, using a model of the autonomous vehicle and based at least in part on the destination and the current vehicle state, a commanded steering angle for the front wheel of the autonomous vehicle, the model configured such that a first steering angle of the front wheel results in a second steering angle of the rear wheel that is an additive inverse of the first steering angle; determining a trajectory for the autonomous vehicle based at least in part on a reference path and the commanded steering angle; and controlling the autonomous vehicle based at least in part on the trajectory.
[0127] B. The autonomous vehicle of example A, wherein the model is a kinematic model of the autonomous vehicle, and the commanded steering angle is based at least in part on a current position of the autonomous vehicle.
[0128] C. The autonomous vehicle of example A or B, wherein the position of the autonomous vehicle is a point associated with the autonomous vehicle that is characterized in the kinematic model as having zero lateral velocity.
[0129] D. The autonomous vehicle of any one of examples A-C, wherein: the autonomous vehicle has a first axis associated with the front wheel and a second axis associated with the rear wheel; and the point is equidistant from the first axis and the second axis along a longitudinal axis extending from the front end of the autonomous vehicle to the rear end of the autonomous vehicle.
[0130] E. The autonomous vehicle of any one of examples A-D, wherein the model of the autonomous vehicle is a first model, and controlling the autonomous vehicle based at least in part on the trajectory comprises: determining, based at least in part on a second vehicle model, the first steering angle for the front wheel and the second steering angle for the rear wheel, the first model and the second model assuming no sideslip of the autonomous vehicle; controlling the front wheel according to the first steering angle using a first steering controller; and controlling the rear wheel according to the second steering angle using a second steering controller.
[0131] F. The autonomous vehicle of any one of examples A-E, wherein the second model is a dynamic model of the vehicle, and determining the first steering angle and the second steering angle comprises: determining a first estimated steering angle for the front wheel and a second estimated steering angle for the rear wheel; and determining, based at least in part on a tracking error of the autonomous vehicle, a first corrected steering angle for the front wheel and a second corrected steering angle for the rear wheel, wherein the first steering angle is based at least in part on the first estimated steering angle and the first corrected steering angle, and the second steering angle is based at least in part on the second estimated steering angle and the second corrected steering angle.
[0132] G. An example method comprising receiving a reference path along which an autonomous vehicle is to travel; receiving a current steering angle associated with a front wheel of the autonomous vehicle; determining a commanded steering angle for the front wheel of the autonomous vehicle using a model of the autonomous vehicle and based at least in part on the reference path and the current steering angle, the model configured such that a first steering angle of the front wheel results in a second steering angle of a rear wheel of the vehicle that is an additive inverse of the first steering angle; and determining a trajectory for the autonomous vehicle based at least in part on the reference path and the commanded steering angle.
[0133] H. The method of example G, wherein the model is a kinematic model of the autonomous vehicle, and the commanded steering angle is based at least in part on a current position of the autonomous vehicle.
[0134] I. The method of example G or H, wherein the position of the autonomous vehicle is a point associated with the autonomous vehicle that is characterized in the kinematic model as having zero lateral velocity.
[0135] J. The method of any of examples G-I, wherein the autonomous vehicle has a first axle associated with the front wheel and a second axle associated with the rear wheel; and the point is equidistant from the first axle and the second axle along a longitudinal axis extending from a front end of the autonomous vehicle to a rear end of the autonomous vehicle.
[0136] K. The method of any of examples G-J, wherein the trajectory comprises a vehicle state and the commanded steering angle for the front wheel of the autonomous vehicle, the trajectory not including a steering angle for the rear wheel.
[0137] L. The method of any of examples E-K, wherein the model of the autonomous vehicle is a first model, and controlling the autonomous vehicle based at least in part on the trajectory comprises: determining a first steering angle for the front wheel and a second steering angle for the rear wheel based at least in part on a second vehicle model; controlling the front wheel according to the first steering angle using a first steering controller; and controlling the rear wheel according to the second steering angle using a second steering controller.
[0138] M. The method of any of examples G-L, wherein the first steering angle and the second steering angle are based at least in part on a ratio of the second steering angle to the first steering angle, and the ratio is: a negative ratio when a current speed of the vehicle is below a first threshold speed; and a positive ratio when the current speed is above a second threshold speed.
[0139] N. The method of any one of examples G-M, wherein the second model is a dynamic model of the vehicle, and determining the first steering angle and the second steering angle comprises: determining a first estimated steering angle of the front wheels and a second estimated steering angle of the rear wheels; and determining a first corrected steering angle of the front wheels and a second corrected steering angle of the rear wheels based at least in part on a tracking error of the autonomous vehicle, wherein the first steering angle is based at least in part on the first estimated steering angle and the first corrected steering angle, and the second steering angle is based at least in part on the second estimated steering angle and the second corrected steering angle.
[0140] O. The method of any one of examples G-N, wherein: determining the trajectory of the autonomous vehicle comprises determining one or more vehicle states; and the first corrected steering angle and the second corrected steering angle are based at least in part on a tracking error between a current state of the vehicle and a vehicle state of the one or more vehicle states.
[0141] P. The method of any one of examples G-O, wherein: the tracking error comprises a lateral offset and an angular offset; and determining the first corrected steering angle and the second corrected steering angle is based at least in part on minimizing the lateral offset and the angular offset.
[0142] Q. One or more example non-transitory computer-readable media storing instructions that, when executed by one or more processors, perform actions comprising: receiving a reference path along which an autonomous vehicle is to travel; receiving a current steering angle associated with a front wheel of the autonomous vehicle; determining a commanded steering angle of the front wheel of the autonomous vehicle using a model of the autonomous vehicle and based at least in part on the reference path and the current steering angle, the model configured such that a first steering angle of the front wheel results in a second steering angle of a rear wheel of the vehicle, the second steering angle being an additive inverse of the first steering angle; and determining a trajectory of the autonomous vehicle based at least in part on the reference path and the commanded steering angle.
[0143] R. The non-transitory computer-readable medium of example Q, wherein the model is a kinematic model of the autonomous vehicle, and the commanded steering angle is based at least in part on a current position of the autonomous vehicle, the position of the autonomous vehicle being a point characterized in the kinematic model as having zero lateral velocity.
[0144] S. The non-transitory computer-readable medium of example Q or R, wherein: the autonomous vehicle has a first axle associated with the front wheel and a second axle associated with the rear wheel; and the point is equidistant from the first axle and the second axle along a longitudinal axis extending from a front end of the autonomous vehicle to a rear end of the autonomous vehicle.
[0145] T. The non-transitory computer-readable medium of any one of examples Q-S, wherein the model of the autonomous vehicle is a first model, and controlling the autonomous vehicle based at least in part on the trajectory comprises: determining, based at least in part on a second model of the vehicle, a first steering angle for the front wheels and a second steering angle for the rear wheels; controlling the front wheels in accordance with the first steering angle using a first steering controller; and controlling the rear wheels in accordance with the second steering angle using a second steering controller.
[0146] AA. An example autonomous vehicle comprising one or more processors; and a memory storing instructions that, when executed by the one or more processors, cause the autonomous vehicle to perform actions comprising: receiving a trajectory for the autonomous vehicle, the trajectory based at least in part on a path along which the autonomous vehicle is to travel and one or more speeds at which the autonomous vehicle is to travel along the path; determining, using a model of the autonomous vehicle, a first estimated front steering angle for steering front wheels of the autonomous vehicle and a second estimated steering angle for steering rear wheels of the autonomous vehicle; determining a tracking error between a state of the autonomous vehicle and the trajectory; determining, based at least in part on the tracking error, a first corrected steering angle for the front wheels and a second corrected steering angle for the rear wheels, the first corrected steering angle and the second corrected steering angle determined to minimize vehicle sideslip and the tracking error; controlling the front wheels based at least in part on the first estimated steering angle and the first corrected steering angle; and controlling the rear wheels based at least in part on the second estimated steering angle and the second corrected steering angle.
[0147] BB. The autonomous vehicle of example AA, wherein determining the first estimated steering angle and the second estimated steering angle is based at least in part on a ratio of the second estimated steering angle to the first estimated steering angle, and the ratio is: a negative ratio when a current speed of the vehicle is below a first threshold speed; and a positive ratio when the current speed is above a second threshold speed.
[0148] CC. The autonomous vehicle of example AA or BB, wherein determining the first estimated steering angle and the second estimated steering angle is based at least in part on a steady-state single-track model that assumes zero sideslip of the autonomous vehicle.
[0149] DD. The autonomous vehicle of any one of examples AA-CC, wherein determining the tracking error comprises: determining a lateral offset of the autonomous vehicle relative to the path; and determining an angular offset between a current heading of the autonomous vehicle and the path.
[0150] EE. The autonomous vehicle of any one of examples AA-DD, wherein determining the first corrected steering angle and the second corrected steering angle comprises minimizing the lateral offset and the angular offset.
[0151] FF. An example method includes receiving a trajectory of a vehicle; receiving a current state of the vehicle, the current state including one or more of a position or an orientation of the vehicle; determining a tracking error, the tracking error including one or more of a difference in orientation or a difference in position between the current state and the trajectory; determining a first corrective steering angle for a front wheel and a second corrective steering angle for a rear wheel based at least in part on the tracking error and using a vehicle model including modeled dynamics of the vehicle; controlling a first steering angle of the front wheel based at least in part on the first corrective steering angle; and controlling a second steering angle of the rear wheel based at least in part on the second corrective steering angle.
[0152] GG. The method of example FF, wherein determining the first estimated steering angle and the second estimated steering angle is based at least in part on a ratio of the second estimated steering angle to the first estimated steering angle.
[0153] HH. The method of example FF or GG, wherein the ratio of the second estimated steering angle to the first estimated steering angle is a negative ratio when a current speed of the vehicle is below a first threshold speed and a positive ratio when the current speed is above a second threshold speed.
[0154] II. The method of any of examples FF- HH, wherein the ratio decreases as the speed below the first threshold speed decreases and the ratio increases as the speed above the second threshold speed increases.
[0155] JJ. The method of any of examples FF- II, wherein the first estimated steering angle and the second estimated steering angle are based at least in part on a vehicle dynamics model assuming zero sideslip of the vehicle.
[0156] KK. The method of any of examples FF- JJ, wherein the dynamics model is a dynamic bicycle model, the first estimated steering angle and the second estimated steering angle are determined based at least in part on one or more of a cornering stiffness of a tire of at least one of the front wheel or the rear wheel and a friction coefficient of the tire.
[0157] LL. The method of any of examples FF- KK, wherein the first estimated steering angle and the second estimated steering angle are further determined based at least in part on a mass of the vehicle, a first distance from a center of mass of the vehicle to a first axis of rotation associated with the front wheel, and a second distance from the center of mass of the vehicle to a second axis of rotation associated with the rear wheel.
[0158] MM. The method of any of examples FF- LL, further comprising determining a first estimated steering angle for steering the front wheel of the vehicle; and determining a second estimated steering angle for steering the rear wheel that modifies the steering angle.
[0159] NN. The method of any one of examples FF to MM, wherein controlling the front wheels comprises controlling the front wheels according to a front wheel control angle comprising a sum of the first estimated steering angle and the first corrected steering angle, and controlling the rear wheels comprises controlling the rear wheels according to a rear wheel control angle comprising a sum of the second estimated steering angle and the second corrected steering angle.
[0160] OO. The method of any one of examples FF to NN, wherein the first estimated steering angle is a front wheel feedforward steering angle, the first corrected steering angle is a front wheel feedback steering angle, the second estimated steering angle is a rear wheel feedforward steering angle, and the second corrected steering angle is a rear wheel feedback steering angle.
[0161] PP. One or more example non-transitory computer-readable media storing instructions that, when executed by one or more processors, perform acts comprising: determining a first estimated steering angle for steering a front wheel of a vehicle and a second estimated steering angle for steering a rear wheel of the vehicle based at least in part on a current state of the vehicle and a trajectory of the vehicle; determining a tracking error between the state and the trajectory of the vehicle; determining a first corrected steering angle for the front wheel and a second corrected steering angle for the rear wheel based at least in part on the tracking error; controlling a first steering angle of the front wheel based at least in part on a sum of the first estimated steering angle and the first corrected steering angle; and controlling a second steering angle of the rear wheel based at least in part on a sum of the second estimated steering angle and the second corrected steering angle.
[0162] QQ. The non-transitory computer-readable medium of example PP, wherein the first estimated steering angle and the second estimated steering angle are based at least in part on a dynamic model of the vehicle.
[0163] RR. The non-transitory computer-readable medium of example PP or QQ, wherein the dynamic model is a dynamic bicycle model, and the first estimated steering angle and the second estimated steering angle are determined based at least in part on one or more of a cornering stiffness of a tire of at least one of the front wheel or the rear wheel and a coefficient of friction of the tire.
[0164] SS. The non-transitory computer-readable medium of any one of examples PP to RR, wherein: determining the tracking error comprises determining a lateral offset of the autonomous vehicle relative to the path and determining an angular offset between a current heading of the vehicle and the trajectory; and determining the first corrected steering angle and the second corrected steering angle comprises minimizing the lateral offset and the angular offset.
[0165] TT. The non-transitory computer-readable medium of any one of examples PP to SS, wherein: determining the first estimated steering angle and the second estimated steering angle is based at least in part on a ratio of the second estimated steering angle to the first estimated steering angle, and the ratio is: a negative ratio when a current speed is below a first threshold speed; and a positive ratio when the current speed is above a second threshold speed.
[0166] AAA. An example autonomous vehicle comprising: one or more processors; and memory storing instructions that, when executed by the one or more processors, cause the autonomous vehicle to perform an action comprising: receiving a trajectory for the autonomous vehicle, the trajectory based at least in part on a path along which the autonomous vehicle is to travel; determining a first estimated front steering angle for steering a front wheel of the autonomous vehicle and a first estimated rear steering angle for steering a rear wheel of the autonomous vehicle, the first estimated front steering angle and the first estimated rear steering angle determined based on a vehicle model and having a first steady-state vehicle sideslip; determining that at least one of the first estimated front steering angle exceeds a first maximum steering angle associated with the front wheel or at least one of the first estimated rear steering angle exceeds a second maximum steering angle associated with the rear wheel; determining a second estimated front steering angle for steering the front wheel and a second estimated rear steering angle for steering the rear wheel, the second estimated front steering angle and the second estimated rear steering angle determined based on the vehicle model and having a second steady-state vehicle sideslip that is greater than the first steady-state vehicle sideslip; controlling the front wheel based at least in part on the second estimated front steering angle; and controlling the rear wheel based at least in part on the second estimated rear steering angle.
[0167] BBB. The autonomous vehicle of example AAA, the action further comprising: determining a tracking error between a state of the autonomous vehicle and the trajectory; and determining a front wheel corrective steering angle for the front wheel and a rear wheel corrective steering angle for the rear wheel based at least in part on the tracking error.
[0168] CCC. The autonomous vehicle of example AAA or BBB, the action further comprising at least one of: determining a front wheel correction angle based at least in part on the second estimated rear steering angle and the rear wheel corrective steering angle; or determining a rear wheel correction angle based at least in part on the second estimated front steering angle and the front wheel corrective steering angle, wherein at least one of the front wheel correction angle or the rear wheel correction angle is determined to maintain vehicle stability during a saturation event.
[0169] DDD. The autonomous vehicle of any of examples AAA-CCC, wherein at least one of: controlling the front wheel comprises steering the front wheel according to a first commanded steering angle, the first commanded steering angle comprising a sum of the second estimated front wheel steering angle, the front wheel corrective steering angle, and the front wheel correction angle; or controlling the rear wheel comprises steering the rear wheel according to a second commanded steering angle, the second commanded steering angle comprising a sum of the second estimated rear wheel steering angle, the rear wheel corrective steering angle, and the rear wheel correction angle.
[0170] EEE. The autonomous vehicle of any of examples AAA-DDD, wherein: the first steady-state vehicle sideslip is zero and the second steady-state vehicle sideslip is non-zero, and the second steady-state sideslip is based at least in part on a first difference between the feedforward front steering angle and the first maximum steering angle or a second difference between the feedforward rear steering angle and the second maximum steering angle.
[0171] FFF. An example method comprising: determining, based on a first vehicle model, a first estimated steering angle for a first wheel of a vehicle to steer, having a first steady-state vehicle sideslip; determining, based on the first vehicle model, a second estimated steering angle for a second wheel of the vehicle to steer, having the first steady-state vehicle sideslip; determining, based at least in part on the first estimated steering angle exceeding a maximum steering angle associated with the first wheel, a third estimated steering angle for the second wheel to steer, the third estimated steering angle determined based on the vehicle model and having a second steady-state vehicle sideslip that is greater than the first steady-state vehicle sideslip; steering the first wheel based at least in part on the maximum steering angle; and steering the second wheel based at least in part on the third estimated steering angle.
[0172] GGG. The method of example FFF, wherein the first steady-state vehicle sideslip is zero and the second steady-state vehicle sideslip is non-zero.
[0173] HHH. The method of example FFF or GGG, wherein the first wheel is a front wheel of the vehicle and the second wheel is a rear wheel of the vehicle.
[0174] III. The method of any one of examples FFF-III, further comprising: receiving state information regarding the vehicle; determining, based on the state information, a tracking error between a current state of the vehicle and the trajectory; and determining one or more of a first corrected steering angle for the first wheel or a second corrected steering angle for the second wheel based at least in part on the tracking error.
[0175] JJJ. The method of any one of examples FFF-III, wherein the tracking error comprises: a lateral offset of the vehicle relative to a planned path of the vehicle; and an angular offset between a current heading of the vehicle and the planned path.
[0176] KKK. The method of any one of examples FFF-JJJ, further comprising: determining a first wheel correction angle based at least in part on the maximum steering angle and the second corrected steering angle; or determining a second wheel correction angle based at least in part on the third estimated steering angle and the first corrected steering angle, wherein at least one of the first wheel correction angle or the second wheel correction angle is determined to maintain vehicle stability during a saturation event.
[0177] LLL. The method of any one of examples FFF-KKK, wherein: controlling the second wheel comprises steering the second wheel according to a second wheel commanded steering angle, the second wheel commanded steering angle comprising a sum of the third estimated steering angle, the second wheel corrected steering angle, and the second wheel correction angle.
[0178] MMM. The method of any one of examples FFF-LLL, wherein controlling the first wheel comprises steering the first wheel according to the maximum steering angle.
[0179] NNN. The method of any one of examples FFF to MMM, wherein determining the first estimated steering angle and the second estimated steering angle is based at least in part on a ratio of the second estimated steering angle to the first estimated steering angle.
[0180] OOO. The method of any one of examples FFF to NNN, wherein the ratio of the second estimated steering angle to the first estimated steering angle comprises a negative ratio when the vehicle is traveling below a first threshold speed and a positive ratio when the vehicle is traveling above a second threshold speed that is higher than the first threshold speed.
[0181] PPP. One or more example non-transitory computer-readable media storing instructions that, when executed by one or more processors, perform actions comprising: determining, based on a first vehicle model, a first estimated steering angle for a first wheel of a vehicle to steer, the first estimated steering angle having a first steady-state vehicle sideslip; determining, based on the first vehicle model, a second estimated steering angle for a second wheel of the vehicle to steer, the second estimated steering angle having the first steady-state vehicle sideslip; determining, based at least in part on the first estimated steering angle exceeding a maximum steering angle associated with the first wheel, a third estimated steering angle for the second wheel to steer, the third estimated steering angle determined based on the vehicle model and having a second steady-state vehicle sideslip that is greater than the first steady-state vehicle sideslip; steering the first wheel based at least in part on the maximum steering angle; and steering the second wheel based at least in part on the third estimated steering angle.
[0182] QQQ. The non-transitory computer-readable medium of example PPP, wherein the first steady-state vehicle sideslip is zero and the second steady-state vehicle sideslip is non-zero.
[0183] RRR. The non-transitory computer-readable medium of example PPP or QQQ, the actions further comprising: receiving state information regarding the vehicle; determining, based on the state information, a tracking error between the vehicle and a trajectory; and determining, based at least in part on the tracking error, a first corrected steering angle for the first wheel and a second corrected steering angle for the second wheel.
[0184] SSS. The non-transitory computer-readable medium of any one of examples PPP to RRR, the actions further comprising: determining a first wheel modification angle based at least in part on the maximum steering angle and the second corrected steering angle; or determining a second wheel modification angle based at least in part on the third estimated steering angle and the first corrected steering angle, wherein at least one of the first wheel modification angle or the second wheel modification angle is determined to maintain vehicle stability during a saturation event.
[0185] TTT. The non-transitory computer-readable medium of any one of examples PPP to SSS, wherein: controlling the second wheel comprises steering the second wheel according to a second wheel commanded steering angle, the second wheel commanded steering angle comprising a sum of the third estimated steering angle, the second wheel corrected steering angle, and the second wheel modification angle.
[0186] Although the subject matter has been described in language specific to structural features and / or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as example forms of implementing the claims.
[0187] The components described herein represent instructions that can be stored in any type of computer-readable medium and implemented in software and / or hardware. All of the methods and processes described above can be embodied in, and fully automated via, software code components and / or computer-executable instructions executed by one or more computers or processors, hardware, or some combination thereof. Some or all of the methods can alternatively be embodied in specialized computer hardware.
[0188] Conditional language used herein, such as, among others, “can,” “could,” “might,” “may,” “e.g.,” and the like, unless specifically stated otherwise, are understood as
[0189] Unless specifically stated otherwise, conjunctive language such as the phrase “at least one of’ is to be understood as meaning that the item, term, etc. can be one, or a plurality of, including multiples of the same item, term, etc.
[0190] While one or more examples of the application have been described, various alterations, permutations and equivalents thereof will be apparent to others skilled in the art without departing from the scope of the present application.
[0191] In the description of the embodiments, reference has been made to drawings which form a part hereof, which illustrate specific embodiments in which the claimed subject matter is practiced. It is understood that other embodiments can be utilized and structural or functional modifications can be made without departing from the scope of the subject matter set forth in the claims. Such embodiments, changes and modifications are intended to fall within the scope of the claimed subject matter. Although the steps in the methods described herein can be presented in a particular order, in some cases, the order can be changed so that certain steps can be performed before, after or in parallel with other steps without changing the functionality of the described systems and methods. The disclosed processes can also be performed in different orders. Furthermore, various calculations herein need not be performed in the order disclosed, and other embodiments can be readily implemented using alternative orders of calculations. In addition to reordering, calculations can be split into sub-calculations with the same result.
[0192] Any routine descriptions, elements or blocks in the flow diagrams described herein and / or depicted in the attached figures should be understood as potentially representing modules, segments, or codes that include one or more computer executable instructions to implement specific logical functions or elements in the routine. Alternate implementations are included within the scope of the examples described herein in which elements or functions can be deleted, or executed out of order from that shown or discussed with respect to the illustrated flowsheets, including substantially synchronously, in reverse order, depending on the functionality involved, as would be understood by one skilled in the art.
[0193] It should be emphasized that many variations and modifications can be made to the above-described examples, elements of which above-described examples will be understood to be within the scope of other acceptable examples. All such modifications and variations are intended to be included herein within the scope of the disclosure and the present claims.
Claims
1. An autonomous vehicle, comprising: a front wheel disposed near a front end of the autonomous vehicle, the front wheel configured to steer relative to a longitudinal axis of the autonomous vehicle; a rear wheel disposed near a rear end of the autonomous vehicle, the rear wheel configured to steer relative to the longitudinal axis and independently of the front wheel; one or more processors; and a memory storing instructions that, when executed by the one or more processors, cause the autonomous vehicle to perform actions comprising: receiving, at a planning component, a destination for the autonomous vehicle to travel; receiving, at the planning component, a current vehicle state of the autonomous vehicle; determining, using a model of the autonomous vehicle and based at least in part on the destination and the current vehicle state, a commanded steering angle for a front wheel of the autonomous vehicle, wherein the model is a kinematic model of the autonomous vehicle in which a first steering angle of the front wheel results in a second steering angle of the rear wheel that is an additive inverse of the first steering angle, and in which a point of zero lateral velocity is positioned on the longitudinal axis of the autonomous vehicle at a location equidistant from a first axis of the front wheel and a second axis of the rear wheel of the autonomous vehicle; determining a trajectory for the autonomous vehicle based at least in part on a reference path and the commanded steering angle; and controlling the autonomous vehicle based at least in part on the trajectory.
2. The autonomous vehicle of claim 1, wherein, The commanded steering angle is based at least in part on a current position of the autonomous vehicle.
3. The autonomous vehicle of claim 2, wherein: The position of the autonomous vehicle corresponds to the point of zero lateral velocity.
4. The autonomous vehicle of any one of claims 1-3, wherein, The model of the autonomous vehicle is a first model, and controlling the autonomous vehicle based at least in part on the trajectory comprises: determining a first steering angle for the front wheel and a second steering angle for the rear wheel based at least in part on a second model, the first model and the second model assuming no sideslip of the autonomous vehicle; controlling the front wheel according to the first steering angle using a first steering controller; and controlling the rear wheel according to the second steering angle using a second steering controller.
5. The autonomous vehicle of claim 4, wherein, The second model is a dynamic model of the autonomous vehicle, and determining the first steering angle and the second steering angle comprises: determining a first estimated steering angle for the front wheel and a second estimated steering angle for the rear wheel; and determining a first corrected steering angle for the front wheel and a second corrected steering angle for the rear wheel based at least in part on a tracking error of the autonomous vehicle.
6. The autonomous vehicle of claim 5, operations further comprising: In response to controlling the autonomous vehicle, determining a tracking error between a state of the autonomous vehicle and the trajectory; determining the first corrected steering angle for the front wheel and the second corrected steering angle for the rear wheel based at least in part on the tracking error, the first corrected steering angle and the second corrected steering angle determined to minimize vehicle sideslip and tracking error; controlling the front wheel based at least in part on the first estimated steering angle and the first corrected steering angle; and controlling the rear wheel based at least in part on the second estimated steering angle and the second corrected steering angle.
7. The autonomous vehicle of claim 6, wherein, Determining the first estimated steering angle and the second estimated steering angle is based at least in part on a ratio of the second estimated steering angle to the first estimated steering angle, and the ratio is: a negative ratio when a current speed of the autonomous vehicle is below a first threshold speed; and a positive ratio when the current speed is above a second threshold speed.
8. The autonomous vehicle of claim 6, wherein, Determining the first estimated steering angle and the second estimated steering angle is based at least in part on a steady-state single-track model assuming zero sideslip of the autonomous vehicle.
9. The autonomous vehicle of claim 6, wherein, Determining the tracking error includes: determining a lateral offset of the autonomous vehicle relative to the path; and determining an angular offset between a current heading of the autonomous vehicle and the path.
10. The autonomous vehicle of claim 9, wherein, Determining the first corrected steering angle and the second corrected steering angle includes minimizing the lateral offset and the angular offset.
11. The autonomous vehicle of any one of claims 1 to 3, wherein, Controlling the autonomous vehicle based at least in part on the trajectory includes: determining a first estimated front steering angle for steering front wheels of the autonomous vehicle and a first estimated rear steering angle for steering rear wheels of the autonomous vehicle, the first estimated front steering angle and the first estimated rear steering angle being determined based on a vehicle model and having a first steady-state vehicle sideslip; determining at least one of: the first estimated front steering angle exceeds a first maximum steering angle associated with the front wheels, or the first estimated rear steering angle exceeds a second maximum steering angle associated with the rear wheels; determining a second estimated front steering angle for steering the front wheels and a second estimated rear steering angle for steering the rear wheels, the second estimated front steering angle and the second estimated rear steering angle being determined based on the vehicle model and having a second steady-state vehicle sideslip that is greater than the first steady-state vehicle sideslip; controlling the front wheels based at least in part on the second estimated front steering angle; and controlling the rear wheels based at least in part on the second estimated rear steering angle.
12. The autonomous vehicle of claim 11, the actions further comprising: Determining a tracking error between a state of the autonomous vehicle and the trajectory; and determining a front wheel corrected steering angle for the front wheels and a rear wheel corrected steering angle for the rear wheels based at least in part on the tracking error.
13. The autonomous vehicle of claim 11, the actions further comprising at least one of: determining a front wheel correction angle based at least in part on the second estimated rear steering angle and the rear wheel corrected steering angle; or determining a rear wheel correction angle based at least in part on the second estimated front steering angle and the front wheel corrected steering angle, wherein, At least one of the front wheel correction angle or the rear wheel correction angle is determined to maintain vehicle stability during a saturation event.
14. The autonomous vehicle of claim 11, wherein, At least one of: controlling the front wheels includes steering the front wheels according to a first commanded steering angle, the first commanded steering angle including a sum of the second estimated front wheel steering angle, the front wheel corrected steering angle, and a front wheel correction angle; or controlling the rear wheels includes steering the rear wheels according to a second commanded steering angle, the second commanded steering angle including a sum of the second estimated rear wheel steering angle, the rear wheel corrected steering angle, and a rear wheel correction angle.
15. The autonomous vehicle of claim 11, wherein: The first steady-state vehicle sideslip is zero, the second steady-state vehicle sideslip is non-zero, and the second steady-state sideslip is based at least in part on a first difference between a feedforward front steering angle and the first maximum steering angle or a second difference between a feedforward rear steering angle and the second maximum steering angle.
Citation Information
Patent Citations
Method for controlling a position of a motor vehicle with rear axle steering, driver assisting system and motor vehicle
EP2955082A1