Determining vehicle position using sideslip vectors

By using side-slip vectors to determine the vehicle position and state, the problem of determining the status of the four-wheel steering vehicle is solved, high-precision trajectory planning and vehicle control are achieved, and mobility and safety are improved.

CN119947943APending Publication Date: 2025-05-06ZOOX INC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202380069332.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-09-30
Filing Date
2023-09-22
Publication Date
2025-05-06

AI Technical Summary

Technical Problem

The prior art is difficult to accurately determine the vehicle state when using a four-wheel steering vehicle, especially when the vehicle introduces lateral speed, the heading vector and the speed vector are decoupled, resulting in inefficient trajectory planning and control.

Method used

The vehicle position and state are determined by using the side slip vector, which represents the main direction and speed of the vehicle's movement, and the side slip vector is determined based on the position of the vehicle's central point, and combined with other vehicle status data for trajectory planning and control.

Benefits of technology

Accurate determination and prediction of the status of four-wheel steering vehicles is achieved, the accuracy and efficiency of trajectory planning and vehicle control are improved, and the mobility and safety of the vehicle are enhanced.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119947943A_ABST
    Figure CN119947943A_ABST
Patent Text Reader

Abstract

Systems and techniques are used to determine a sideslip vector of a vehicle, which may have a different direction than a heading vector of the vehicle. The sideslip vector in the current vehicle state and the sideslip vector in the predicted vehicle state may be used to determine a path for the vehicle to pass through the environment and to control a trajectory for the vehicle to pass through the environment. The sideslip vector may be based on a vehicle position that is a center point of a wheelbase of the vehicle, and may include lateral velocity, facilitating control of the four-wheel steered vehicle while maintaining the ability to control the two-wheel steered vehicle.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to U.S. Application No. 17 / 957,756, filed on September 30, 2022, entitled “Determining Vehicle Position Using Side Slip Vector,” the entire contents of which are incorporated herein by reference. Background Art

[0003] The vehicle may be equipped with a trajectory planning system that determines an operational trajectory for the vehicle for controlling the vehicle to travel within an environment. The vehicle may also be equipped with various systems that detect objects in the environment and use such detection information to control the vehicle to avoid these objects. In order to plan the trajectory and safely bypass obstacles in the environment, the trajectory planning system may use the current vehicle state and the predicted vehicle state. The vehicle state may include position, heading, and speed. As vehicle steering technology advances, various parameters of the vehicle state may become increasingly difficult to determine compared to determining such parameters for the vehicle using conventional steering technology. Accurately determining the vehicle state to plan the trajectory and predict the future vehicle state, while also allowing the vehicle to utilize advanced steering technology, may sometimes be challenging. BRIEF DESCRIPTION OF THE DRAWINGS

[0004] The detailed description is described with reference to the accompanying drawings. In the drawings, the left-most digit(s) of a reference number identifies the drawing in which the reference number first appears. The same reference numbers in different drawings indicate similar or identical items.

[0005] Figure 1 An example method of determining a vehicle state using a sideslip vector and a trajectory for the vehicle based on the vehicle state according to an example of the present disclosure is illustrated.

[0006] Figure 2A-2D Depicted is a block diagram illustrating an example vehicle, wheel positions, and vectors that may be used to determine vehicle position and trajectory in accordance with an example embodiment of the present invention.

[0007] Figure 3 An example environment and an example vehicle are described in which the vehicle position determination techniques disclosed herein may be implemented according to examples of the present disclosure.

[0008] Figure 4 Depicted is a block diagram of an example system for implementing the techniques described herein. DETAILED DESCRIPTION

[0009] Techniques for determining vehicle position are discussed herein for generating a trajectory for controlling the vehicle as the vehicle traverses an environment. For example, techniques may include determining the vehicle position based on a center point and a sideslip vector of the vehicle. The sideslip vector may represent the primary direction of motion of the vehicle and the speed of the vehicle in that direction. The speed represented by the sideslip vector may include a lateral speed. The sideslip vector may be determined based on the position of the center point of the vehicle. The vehicle's trajectory planning system may use the sideslip vector and other vehicle state data to determine a trajectory for the vehicle, the trajectory may include a path of travel for the vehicle and various controls for controlling the vehicle at a point in space and / or time along the trajectory. The sideslip vector may allow the vehicle speed to be indicated in both longitudinal and lateral directions, thereby facilitating the determination and prediction of vehicle state parameters for vehicles that may be equipped with four-wheel steering (including bidirectional vehicles). The disclosed sideslip vector may also be used to indicate the vehicle speed and direction for vehicles equipped with conventional two-wheel steering. The use of the sideslip vector may also facilitate the prediction of vehicle states for four-wheel and two-wheel steering vehicles and the determination of controls for such vehicles. By using the disclosed slip vectors and related operations, the systems and techniques described herein facilitate determining trajectories for vehicles with two-wheel steering capabilities and vehicles with four-wheel steering capabilities, and allow four-wheel steering vehicles to utilize their four-wheel steering capabilities.

[0010] Four-wheeled vehicles are conventionally equipped with a set of two wheels that can be rotated for steering the vehicle (usually at the front or front end of the vehicle) and a set of wheels located in a fixed position (usually at the rear or rear end of the vehicle). The spatial position of such a vehicle in the environment, from a two-dimensional top-down perspective, can be described using two-dimensional coordinates (e.g., x and y) and yaw (the rotation of the vehicle around the x and y coordinates). The position is conventionally based on the center of the rear axle of the vehicle (e.g., x and y indicate the position of the center point of the rear axle, and the yaw value indicates the rotation of the body of the vehicle around the center point of the rear axle). The heading of the vehicle can be determined and / or commanded based on the position. For example, a vehicle at an x ​​and y position may move in a direction perpendicular to the transverse axis of the vehicle, as indicated by the yaw. In another example, the vehicle can be controlled or commanded to operate from a specific x and y position to a specific heading direction. The heading vector of such a vehicle can indicate the speed of the vehicle in that direction. Other vehicle state parameters can be determined and / or based on such conventional spatial position information, such as acceleration, turning rate, etc.

[0011] Since a two-wheel steering vehicle has no steering capability at the rear wheels, there is essentially no lateral velocity on the rear axle (e.g., all motion is in the longitudinal direction). Therefore, using the center point of the rear axle as the basis for vehicle position information simplifies position determination and other operations for a two-wheel steering vehicle, including determining commands or instructions that can be used to control the vehicle. For example, the heading of the vehicle can be determined based on the position and yaw of the center point of the rear axle, wherein the direction of the heading vector is perpendicular to the lateral axis of the vehicle and indicates the direction of motion of the vehicle. The heading can be used to implement vehicle control and / or determine a path for the vehicle. In such an implementation, the vehicle velocity vector can simply be the heading vector at the vehicle speed. The proximity of an object to the vehicle can be determined based on the vertical distance between the heading vector or the velocity vector and the object. However, if the vehicle includes rear-wheel steering, position determination using the center point of the rear axle becomes much more complicated because a vehicle with four-wheel steering may introduce the lateral velocity of the rear axle and / or the lateral velocity of the entire vehicle. Introducing lateral velocity in the vehicle may decouple the heading vector and the velocity vector because the velocity vector may have a different direction from the heading vector. This lateral motion may not be accounted for in conventional techniques that use the rear axle center point for position determination and assume no lateral motion at the rear axle.

[0012] In addition, for a four-wheel steering vehicle, the heading direction (e.g., a direction perpendicular to the lateral axis, the heading axis, or the heading edge of the vehicle) may not necessarily be the direction in which the vehicle is actually moving, and therefore, the velocity vector for the vehicle may not necessarily be associated with the direction that may be indicated by the heading vector. In some cases, the heading direction may also be different from the direction of motion of a two-wheel steering vehicle, such as when the vehicle loses traction and slides at least partially sideways (e.g., "fishtailing", "drifting", sliding on icy or wet roads, etc.). Because conventional operations for determining vehicle control may not allow the use or determination of a vehicle's direction of motion that is different from the vehicle's heading, such conventional operations may not be able to use available four-wheel steering functionality to control the vehicle. For example, such conventional operations may be able to control the vehicle using control that introduces (e.g., substantial) lateral velocity. Therefore, using the rear axle center point to perform position determination, trajectory determination, and other vehicle control operations for a four-wheel steering vehicle may be inefficient, reduce the available capabilities of the vehicle, and / or result in suboptimal vehicle trajectory and control.

[0013] In various examples, a sideslip vector can be used to facilitate position and trajectory determination operations for both four-wheel steering vehicles and two-wheel steering vehicles. A sideslip vector can represent the direction of travel of a vehicle (e.g., independent of the heading direction based on x, y, and yaw positions). The direction of the sideslip vector can be used for the speed and / or acceleration vector of the vehicle. In an example, a sideslip vector represents a vehicle velocity vector (opposite to the heading vector) that can take into account lateral velocity. The sideslip vector can be based on the position of the vehicle, which uses the center point of the vehicle body or wheelbase (e.g., the horizontal distance between the center of the front axle and the rear axle), rather than the center point of the rear axle. For example, in the disclosed technology, the position of the vehicle can be the x-coordinate and y-coordinate of the center point of the wheelbase and the yaw of the vehicle body around this point. In various examples, the center point for the sideslip vector used in the technology disclosed in the present invention can be any point on the vehicle or associated with the vehicle, such as the center of gravity, the center of mass, the geometric center of the vehicle body, a corner of the vehicle body, the center point of the edge of the vehicle, etc.

[0014] The sideslip vector may be a parameter and / or data associated with a vehicle state. Along with the sideslip vector, the vehicle state may include the vehicle's position (x, yaw) (also referred to as "pose"), velocity and / or velocity vector, heading and / or heading vector (e.g., based on (x, y, yaw) and including direction), acceleration and / or acceleration vector, heading change value indicating a change in heading (e.g., from a previous state), the gear in which the vehicle is operating or expected to operate (e.g., forward, reverse, one or more forward gears, one of one or more reverse gears, park, neutral, etc.), and / or associated data. The vehicle computing system may determine vehicle state information for a current (or expected current) vehicle state and / or one or more predicted or expected future vehicle states. The vehicle computing system may use one or more vehicle states to determine one or more controls to be implemented at the vehicle.

[0015] For example, a vehicle computing system (e.g., a trajectory determination system component of a vehicle computing system) can determine a current vehicle state and a path on which the vehicle is traveling through an environment. The vehicle computing system can then determine one or more vehicle controls to be implemented at various spatial and / or temporal points along the path in order to control the vehicle through the environment to a destination. For example, the vehicle computing system can determine a front steering control and a rear steering control (e.g., independent of each other) at various spatial and / or temporal points along the travel path to control the vehicle through the path. This series of controls and / or intended travel paths for the vehicle can be represented as a trajectory. The vehicle computing system can determine predicted vehicle states for one or more such vehicle control implementation points and / or one or more other points along the path represented in the trajectory. The vehicle computing system can update these predicted vehicle states as the vehicle moves through the environment and / or implements the controls contained in the trajectory. The vehicle computing system can update the trajectory based on the current and / or predicted vehicle states that are subsequently determined.

[0016] Trajectories and controls that can be implemented based on such trajectories can be used to control autonomous vehicles and / or assist in the control of vehicles controlled by human drivers. For example, a vehicle computing system can use such trajectories to control fully autonomous vehicles, for example, there may be no human drivers on these vehicles. Alternatively or in addition, such trajectories can be used to assist human drivers in controlling vehicles. For example, a vehicle computing system can use trajectories to take over control of a vehicle in the event that a human driver becomes incapacitated or otherwise unable to continue to control the vehicle. In another example, a vehicle computing system can use trajectories to assist a human driver in controlling a vehicle, for example, when a human driver is determined to be controlling the vehicle into an unsafe or dangerous state (e.g., an imminent collision, lane deviation, etc.) without fully taking over control of the vehicle.

[0017] In various examples, a vehicle computing device may determine steering controls for one or two axes of a vehicle with four-wheel steering capability (e.g., a bidirectional vehicle). In various examples, the angles of steering achieved by such control may be different on individual axes, or may be substantially similar or identical. In various examples, a vehicle with four-wheel steering capability that implements the techniques described herein may have substantially similar steering capabilities on its individual axes (e.g., may be able to have substantially similar steering angle ranges on two axes), for example, to facilitate bidirectional movement of the vehicle. In other examples, the techniques described herein may be implemented on vehicles with four-wheel steering capability that have different steering capabilities on individual axes and two-wheel steering vehicles.

[0018] In various examples, such steering control can be implemented directly or can be provided to a steering control system that can determine the mechanical implementation of the steering control. For example, the vehicle computing system can determine the angle or amount of the steering adjustment to provide to the steering control component to implement the steering control required to perform the steering adjustment. In other examples, the vehicle computing system can determine the heading direction and / or the sideslip direction of the steering control component to implement the steering control required to control the vehicle into a state associated with these directions. In other examples, the vehicle computing system can provide the steering control component with a change in the heading vector, a change in the direction of vehicle motion, and / or a change in the sideslip vector along an arc length or path segment to implement the steering control required to control the vehicle into a state associated with these directions.

[0019] In various examples, the vehicle computing system may also or alternatively determine a desired predicted vehicle state, and then determine vehicle controls intended to place the vehicle in that vehicle state. For example, the vehicle computing system may determine that the vehicle should be in a stopped state and oriented toward a particular landmark at a particular spatial location in an environment. The vehicle computing system may then determine a series of controls and a path of travel through the environment that ultimately results in the vehicle being in that desired vehicle state. In another example, the vehicle computing system may determine a front steering control and a rear steering control (e.g., independent of each other) in order to place the vehicle in a vehicle state having a particular sideslip vector.

[0020] The side slip vector and associated vehicle state data may also or alternatively be used by the vehicle computing system to determine whether and how to control the vehicle in response to detecting one or more objects in the environment. For example, the vehicle computing system may determine a trajectory based on detecting an object that is potentially within an initially determined path of travel. The vehicle computing system may use the current vehicle state, including a curvature, a side slip vector, and / or a heading vector, to determine a predicted vehicle state at a point along the initially determined path of travel. The vehicle computing system may determine the distance between the object and the vehicle (e.g., between the extent of the vehicle, or between the length and width of the vehicle), as represented in the predicted vehicle state. More specifically, the vehicle computing system may determine the vertical distance between the object and the path of the vehicle, wherein the path is based on the curvature, the side slip vector, and / or the heading vector. Based on the distance, the vehicle computing system may determine whether to generate and / or modify one or more controls in the vehicle trajectory to control the vehicle to avoid the object.

[0021] In various examples, the disclosed techniques can facilitate control of a vehicle in the event of a malfunction. For example, because the disclosed techniques include seamless determination of vehicle state data regardless of the number of wheels that may be capable of steering the vehicle, vehicle state data can be readily determined for vehicles in which the steering function of one or more steering wheels has failed or otherwise malfunctioned. For example, a vehicle with four-wheel steering may have lost steering control of one axle and still be controlled using the vehicle state data described herein by implementing the disclosed operations using a fixed steering angle for the failed axle.

[0022] In various examples, the vehicle state (e.g., current, expected current, predicted, etc.) can include two-dimensional position coordinates x and y, a yaw value, an acceleration, a heading vector or heading vector data (e.g., heading vector direction and / or velocity), a sideslip vector or sideslip vector data (e.g., sideslip vector direction and / or velocity), and a turning rate representing a change in the direction of motion of the vehicle. The heading direction of the vehicle can be determined as the direction in which the vehicle body is facing (e.g., longitudinal to the vehicle body or otherwise substantially perpendicular to the lateral axis of the vehicle body) using the position coordinates and the yaw value. The sideslip vector direction can be expressed as an angular difference from the heading direction.

[0023] In an example, a vehicle computing system may determine current or predicted vehicle states at various spatial points and / or time points along a driving path. The distance between such points may be an arc length (also referred to as a "path segment length"). To determine these states, the vehicle computing system may determine a turning rate (K) value based on the amount of change in trajectory angle (Φ) per change in arc length (s). The trajectory angle may be based on a yaw angle (h) and a sideslip angle (β), as shown in equation (1) below. The sideslip angle (β) may be expressed as an angular offset from the yaw angle (h).

[0024] Φ = h + β (1)

[0025] As can be seen here, if the sideslip direction (β) is zero, the track angle (Φ) will be equal to the yaw angle (h). Therefore, when the disclosed techniques are implemented in a two-wheel steered vehicle, the sideslip direction (β) can simply be set to zero, allowing these techniques to be used in two-wheel or four-wheel steered vehicles. The turning rate (K) can be determined as shown in equation (2) below, using the difference in track angle amount (dΦ) per differential arc length (ds), which may be equal to the difference in yaw angle (dh) per differential arc length (ds) combined with the difference in sideslip direction (dβ) per differential arc length (ds).

[0026]

[0027] In an example, dh / ds may be referred to as "spatial yaw". By using the turn rate (K) including the use of the sideslip direction (β) as described herein, the disclosed techniques may more accurately determine and predict vehicle position, and therefore, facilitate more accurate determination of trajectory and potential obstacles. For example, the turn rate for a two-wheel and / or four-wheel steered vehicle may be readily determined using the same equation. When the vehicle is a two-wheel steered vehicle (or only implements two-wheel steering maneuvers), the sideslip direction (β) may indicate no deviation from the yaw direction (e.g., may represent the same sideslip direction as the heading direction), and the turn rate determination may be even further simplified.

[0028] Based on vehicle state data including sideslip data and available vehicle steering capabilities (e.g., two wheels or four wheels), an optimized path through the environment can be determined for controlling the operational trajectory of the vehicle. The use of the sideslip vector and associated determinations further enables the use of four wheel steering capabilities by taking such capabilities into account while preventing vehicle control, while still facilitating effective determination and control of two wheel steered vehicles.

[0029] The systems and techniques described herein can be used to involve utilizing a sideslip vector and associated data to enable a vehicle (such as an autonomous vehicle) to more accurately determine current and predicted positions and other vehicle state data, which in turn can be used for improved trajectory determination, vehicle control, object detection and collision avoidance maneuvers, and facilitate safer and more efficient navigation through an environment. In a specific example, the systems and techniques described herein can utilize a data structure containing data representing a sideslip vector and associated data, lateral velocity, vehicle wheelbase center point, and turn rate data based on the sideslip vector data. By more accurately determining vehicle state parameters using the sideslip vector and vehicle state data determination techniques described herein, the examples described herein can result in improved safety and accuracy of vehicle control, particularly in determining vehicle control that relies on accurate determination of vehicle position, thereby allowing autonomous vehicles to operate more safely in an environment.

[0030] For example, the techniques described herein can be faster and / or more robust than conventional techniques because they can increase the ability of autonomous vehicles to safely navigate in an environment by using more accurately determined vehicle positions and states to determine predicted vehicle positions, detect potential object intersections, and avoid collisions with objects in the environment. The techniques described herein can also promote the use of four-wheel steering technology, which in turn can increase the maneuverability of the vehicle. Such increased maneuverability can increase the ability of autonomous vehicles to safely navigate in an environment by allowing the vehicle to bypass obstacles and dangers that two-wheel steering vehicles may not be able to avoid. This increased maneuverability can also increase the efficiency of autonomous vehicles by allowing the vehicle to travel along paths that two-wheel steering vehicles may find difficult or impossible to cross (e.g., paths with particularly narrow bends, narrow paths, and / or small gaps). The increase in low-speed maneuverability of four-wheel steering vehicles provided by the disclosed technology can improve the parking ability of the vehicle and the low-speed crossing in a crowded environment. The ability to more efficiently implement four-wheel steering capability using the disclosed techniques may also increase the safety of vehicle operation by allowing the use of rear wheel or rear axle steering to increase stability when needed (e.g., by controlling all four wheels to face in a similar direction to increase stability, such as in extreme cornering situations or hazardous conditions). Additionally, the disclosed techniques allow for bidirectional vehicles that fully utilize four-wheel steering.

[0031] The techniques described herein may also enable improved trajectories and more efficient operation of vehicles by enabling full use of four-wheel steering technology. That is, the techniques described herein provide technical improvements to existing vehicle state determination techniques and vehicle steering techniques. The techniques described herein may also improve the operation of computing systems and improve resource utilization efficiency. For example, a computing system, such as a vehicle computing system, may use the techniques described herein to more efficiently perform vehicle position and state determination, because the disclosed examples may reduce the amount of data required to represent the vehicle state and the calculations required to determine the vehicle state data and trajectory by eliminating separate data structures for two-wheel steering vehicle configurations and four-wheel steering configurations, thereby requiring processing of fewer cached data points and / or associated data than required using conventional techniques. In addition, a computing system, such as a vehicle computing system, may perform vehicle state data determination operations more efficiently by using the techniques described herein to perform less complex and fewer calculations, thereby reducing the data processing required to determine predicted future vehicle states and generate vehicle trajectories in many cases.

[0032] The systems and techniques described in this article can be implemented in a variety of ways. With reference to the following figures, an example implementation is provided below. Although discussed in the context of autonomous vehicles, the techniques described in this article can be applied to various systems (e.g., sensor systems or robotic platforms) and are not limited to autonomous vehicles. For example, the techniques described in this article can be applied to semi-autonomous and / or manually operated vehicles. In another example, the techniques can be used in aviation or navigation contexts, or for any system involving vehicle or object trajectories and / or collision avoidance operations. In addition, although discussed in the context of sensor data derived from a specific type and processed using a specific type of component, the data and data structures as described in this article can include any two-dimensional, three-dimensional or multi-dimensional data and data associated with any other type of sensor (e.g., camera, laser radar, radar, sonar, flight time, etc.). In addition, the techniques described in this article can be used with real data (e.g., captured using (one or more) sensors), simulated data (e.g., generated by a simulator, training data, etc.), or any combination of the two.

[0033] Figure 1 is a graphical flow diagram of an example method 100 for determining vehicle state data and one or more trajectories based on the vehicle state data. In an example, one or more operations of process 100 may be implemented by a vehicle computing system, such as by using Figure 4 One or more components and systems illustrated in FIG. and described below. For example, such one or more components and systems can include Figure 4 In an example, one or more operations of process 100 may be performed by a remote system in communication with the vehicle, such as a remote system in communication with the vehicle. Figure 4 In yet another example, one or more operations of process 100 may be performed by a combination of a remote system and a vehicle computing system. However, process 100 is not limited to being performed by such components and systems, and Figure 4 The components and systems of are not limited to performing process 100.

[0034] At operation 102, a vehicle computing system executing and / or controlling an autonomous vehicle, for example, on an autonomous vehicle may receive vehicle data associated with a vehicle that may be traversing an environment. For example, the vehicle computing system may receive positioning data, vehicle condition data, vehicle operating parameters, previous vehicle state data, maps, destinations, routes, current operating trajectories, and / or other data from one or more components configured on the vehicle and / or in communication with the vehicle computing system. The vehicle computing system may also or alternatively receive sensor data and / or other environmental data related to the environment from one or more components configured at the vehicle and / or in communication with the vehicle computing system (e.g., from a perception component). Alternatively or additionally, the vehicle computing system may receive data based on the sensor data, such as object detection data, at operation 102.

[0035] At operation 104, the vehicle computing system may determine a current vehicle state of the vehicle based on the received vehicle data. The determined current vehicle state may include a sideslip vector indicating the direction of motion of the vehicle and a current speed in that direction. The determined current vehicle state may further include one or more of: the position of the vehicle (x, y, yaw), the heading and / or heading vector of the vehicle, the acceleration and / or acceleration vector of the vehicle, the rate of turn, and / or the gear of vehicle operation. In various examples, the vehicle computing system may determine whether the current vehicle state is not an expected state. For example, the current vehicle state may indicate that the vehicle is not in an expected position (e.g., a path based on an operating trajectory). The vehicle computing system may determine a path in such a case that returns the vehicle to the expected path.

[0036] At operation 106, the vehicle computing system may determine environmental state data of the environment in which the vehicle is traveling, for example based on the sensor data and / or other environmental data received at operation 102. For example, the vehicle computing system may use the received sensor data to detect and classify one or more objects in the environment. The vehicle computing system may also or alternatively detect and / or determine road surfaces, weather conditions, traffic signals, signs, etc. At operation 106, the vehicle computing system may determine environmental state data that can be used to perform trajectory determination and / or perform other related operations. In some examples, operation 106 may be omitted where environmental state data is received at operation 102 (e.g., state data obtained based on processing of sensor data).

[0037] Example 108 illustrates a vehicle 110 that can operate in an environment and can be configured with and / or communicate with a vehicle computing system. Vehicle 112 can also be configured within the environment of example 108, for example, traveling in the next lane on the road in the opposite direction of vehicle 110. Vehicle 114 can also be configured within the environment of example 108, for example, parked on the road and in the same lane as vehicle 110.

[0038] The vehicle 110 may have a current vehicle state that includes a heading 116 in a direction perpendicular to the lateral axis of the vehicle 110. The current vehicle state of the vehicle 110 may also include a sideslip vector 118 having a direction corresponding to the direction of motion of the vehicle 110 and a velocity in that direction. The current vehicle state of the vehicle 110 may also include coordinates indicating the location of a center point of the vehicle 110 (e.g., the center point of the wheelbase of the vehicle 110), a yaw value indicating the rotation of the vehicle 110 about the center point, an acceleration, etc. As can be seen in this example, the direction of the sideslip vector 118 is different from the heading 116 direction. This may be due to the vehicle 110 having a four-wheel steering capability, which allows it to introduce lateral velocity while maintaining a constant yaw.

[0039] At operation 120, the vehicle computing system may determine a predicted state of the environment for a particular point in space and / or time. For example, based on various attributes and / or classifications of objects detected in the environment, the vehicle computing system may determine a predicted position, velocity, and / or other attributes of such objects at a particular time in the future and / or a predicted position of the vehicle at a particular point in space in the future. For example, to determine an optimal path for a vehicle through an environment, the vehicle computing system may determine various predicted positions of objects in the environment and determine a path that reduces the probability of the vehicle intersecting such objects.

[0040] At operation 122, one or more candidate paths through the environment may be determined, for example based on the predicted environmental state determined at operation 120. One or more predicted vehicle states for such candidate paths may also be determined in this operation. For example, the vehicle computing system may determine a predicted vehicle state for a particular spatial or temporal point along the predicted path based on one or more controls that will be implemented to control the vehicle to that spatial or temporal point. In determining the predicted vehicle state, the vehicle computing system may use a sideslip vector for the current vehicle state, a heading vector for the current vehicle state, one or more determined predicted sideslip vectors for one or more predicted vehicle states, and / or one or more determined predicted heading vectors for one or more predicted vehicle states, along with any one or more other vehicle state parameters. For example, the prediction at any particular point along the path may be substantially parallel or tangent to the direction of the sideslip vector at that point.

[0041] In various examples, the vehicle computing system may use the predicted vehicle state and the predicted environmental state to determine a predicted distance between the vehicle and one or more objects. For example, to determine a path that avoids intersection with an object, the vehicle computing system may determine the distance between the vehicle and the object for multiple predicted vehicle states (and / or multiple predicted object positions in one or more predicted environmental states), and determine a path associated with the predicted vehicle state that avoids intersection with the object and / or results in at least a threshold distance between the object and the vehicle. In determining these distances, the vehicle computing system may use a sideslip vector to determine the vehicle position, and use heading and / or yaw to determine the direction and boundaries of the vehicle.

[0042] In addition, at operation 122, one or more costs of the individual paths determined at the operation may also be determined. For example, the distance to be traveled for the path may be determined as a cost and / or the resources consumed to traverse the path (e.g., fuel cell power, etc.) may be determined as a cost. The movement and / or change of the vehicle may also or alternatively be included in the path cost. For example, the path cost may be related to the rotation and / or translation of the vehicle, which may involve controlling the vehicle along the path. Other costs that may be determined include, but are not limited to: passenger comfort costs (e.g., based on bumps, ride quality, road surface, etc.) and safety costs (e.g., based on proximity to objects, distance to obstacles, operation in construction areas, etc.). Such determination of path costs may also include vehicle states associated with the path. For example, the predicted vehicle state at a point along a candidate path may be included in the path cost determination. The path cost may be a summary cost value based on one or more cost factors associated with these types of costs and / or other suitable path costs.

[0043] Alternatively or additionally, the vehicle computing system may determine one or more future vehicle states that may be desired. For example, the vehicle computing system may determine that the vehicle should be located at a location in the environment having specific coordinates and having a specific yaw value when located at those coordinates. The vehicle computing system may then determine a candidate path that may facilitate the vehicle traversing to that location. Alternatively or additionally, the vehicle computing system may use a sideslip vector and / or a heading vector of the predicted vehicle state along with any one or more other vehicle state parameters to determine a candidate path that may facilitate the vehicle transitioning to a state that includes the predicted sideslip vector and / or heading vector.

[0044] Example 124 illustrates a vehicle 110 operating in an environment that may include vehicles 112 and 114. A predicted vehicle state 126 may be determined by a vehicle computing system associated with a candidate path 128. The vehicle computing system of the vehicle 110 may use the sideslip vector 118 and / or the heading 116 to determine the predicted vehicle state 126. For example, the vehicle 110 may include four-wheel steering capability. The predicted vehicle state 126 may be based on predictive control of the vehicle 110 such that the heading 116 direction does not change, but the sideslip vector is adjusted to control the vehicle 110 to a position associated with the predicted vehicle state 126 (e.g., the vehicle 110 moves forward and to the left without the body of the vehicle 110 rotating about the wheelbase center point).

[0045] In example 124, the vehicle computing system of vehicle 110 may also, or alternatively, determine a predicted distance 130 from vehicle 112 for the predicted vehicle state 126. The predicted distance 130 may be determined based on a perpendicular distance of vehicle 112 from the path of vehicle 110 represented by vehicle state 126 (e.g., perpendicular to the sideslip vector associated with predicted vehicle state 126 and / or perpendicular to the extent (length and width) of the vehicle associated with predicted vehicle state 126). Similarly, the vehicle computing system of vehicle 110 may also, or alternatively, determine a predicted distance 132 from vehicle 114 for the predicted vehicle state 126. The predicted distance 132 may be determined based on a perpendicular distance of vehicle 114 from the path of vehicle 110 represented by vehicle state 126 (e.g., perpendicular to the sideslip vector associated with predicted vehicle state 126). The vehicle computing system of vehicle 110 may use these distances to determine whether to use candidate paths 128 in the operating trajectory of vehicle 110.

[0046] At operation 134, the vehicle computing system may determine an operating trajectory based on the candidate paths and predicted states determined in one or more other operations of process 100. For example, the vehicle computing system may determine a path for the operating trajectory that maximizes the distance to objects in the environment and / or includes the least operations required to control the vehicle to the destination. In various examples, the vehicle computing system may determine the path based on path cost, for example, by selecting a candidate path with the lowest cost from a plurality of candidate paths. In various examples, the vehicle computing system may determine the path based on returning the vehicle to a previously determined (e.g., intended) path, for example, the current vehicle position is different from the expected vehicle position based on the current operating trajectory. In determining the operating trajectory, the vehicle computing system may also determine one or more controls that operate the vehicle along the determined path and / or otherwise control the vehicle (e.g., stop at the destination, accelerate, decelerate, etc.) through the environment.

[0047] Example 136 illustrates vehicle 110 with a determined operating trajectory 138 that includes a path through an environment that avoids vehicles 112 and 114. The path of trajectory 138 may include controls 140 and 142 that may be used to control the vehicle along the path of trajectory 138. For example, when vehicle 110 reaches a control point associated with control 140, control 140 may adjust a four-wheel steering component of the vehicle to steer the vehicle onto a longitudinal path relative to the heading of vehicle 110. The control may allow the four-wheel steering component of vehicle 110 to adjust the direction and speed of vehicle 110 (e.g., as represented by a sideslip vector of vehicle 110) without changing the heading of vehicle 110. Control 142 may cause the vehicle to apply brakes to slow the vehicle as it passes vehicle 114.

[0048] At operation 144 , the vehicle computing system may operate the vehicle based on the determined operating trajectory. Process 100 may return to operation 102 for subsequent trajectory determination.

[0049] Figure 2A-2D An environment 200 is illustrated that may include an example vehicle 202 in various vehicle states and performing various steering maneuvers. Figure 2A , vehicle 202 may be configured with four wheels 204, 206, 208, and 210. Axle 214 may connect wheels 204 and 206, and axle 216 may connect wheels 208 and 210. Vehicle center point 218 may be the longitudinal center point of the wheelbase of vehicle 202 (e.g., the center point of the distance between the center points of axles 214 and 216).

[0050] The wheels of the vehicle 202 may be oriented along the longitudinal axis of the vehicle without lateral rotation. Therefore, the vehicle 202 may travel along the longitudinal direction of motion. Under these vehicle operating conditions, the vehicle 202 may have a vehicle state 212. In the vehicle state 212, the vehicle position may be represented as coordinates and yaw values ​​(e.g., (x, y, h) as described above). In this example, the yaw is neutral or zero because the vehicle body is not rotated (e.g., around any point). Based on the position data, it may be determined that the vehicle 202 has a substantially longitudinal heading vector 220. Since there is no lateral velocity in the vehicle state 212, the direction of the vector 220 may also be the direction of the velocity vector of the vehicle 202 (e.g., a sideslip vector with a lateral velocity of zero). Therefore, the vehicle computing system may determine a path 224 of the vehicle 202 based on the heading vector 220. Since the vehicle is traveling in a longitudinal direction substantially parallel to the longitudinal axis of the vehicle, the vehicle state 212 of the vehicle 202 at this point along the path 224 may be a zero or neutral turning rate. Heading normal vector 222 may be a normal vector (perpendicular) to heading vector 220 and may be used to perform path and object proximity operations.

[0051] Object 226 may also be present in environment 200. The vehicle computing system may determine an object proximity distance based on a perpendicular distance from the object to vehicle path 224, which may be determined using heading vector 220 because, in this example, vehicle velocity vector and heading vector 220 are interchangeable because the vehicle is not experiencing lateral motion. Thus, the vehicle computing system may determine a distance 228 between object 226 and vehicle path 224 determined based on vector 220. Distance 228 may be determined based on the size or extent (length and width) of vehicle 202, and / or these vehicle dimensions may be additionally considered when determining the proximity of object 226 to vehicle 202.

[0052] Reference now Figure 2B, the vehicle 202 may be configured with four wheels 204, 206, 208, and 210 rotating in the same direction from a top-down angle (e.g., counterclockwise) to steer the vehicle to the left while keeping the vehicle yaw unaffected (e.g., neutral or zero). Under these vehicle operating conditions, the vehicle 202 may have a vehicle state 230. In the vehicle state 230, the vehicle position may be represented as coordinates and yaw values ​​(e.g., (x, y, h) as described above), wherein the yaw value remains neutral because the heading of the vehicle body remains in a substantially longitudinal direction. Since the yaw is not affected despite the steering being achieved by the wheels, it may be determined that the vehicle 202 has a heading vector 220 that is substantially in a longitudinal direction. Since there is a lateral velocity in the vehicle state 230 due to the four-wheel steering operation being implemented, the velocity vector of the vehicle 202 now has a different direction than the heading vector 220. The velocity vector of the vehicle state 230 may be represented as a sideslip vector 232. In various embodiments, the sideslip vector 232 may be represented in the vehicle state 230 as an angular difference from the heading vector 220, for example, as the angle 234. The vehicle computing system may determine a vehicle path 238 for the vehicle 202 based on the sideslip vector 232 and the heading vector 220. The sideslip normal vector 236 may be a vector that is orthogonal (perpendicular) to the sideslip vector 232 and may be used to perform path and object approach operations.

[0053] Turn rate 242 may be a turning rate of vehicle 202 (e.g., a turning rate of vehicle 202 in a direction of motion at a location associated with state 230), as represented in vehicle state 230 or determined based on vehicle state 230. For example, turn rate 242 may be determined based on sideslip vector 232 and heading vector 220. Turn rate 242 may have a center of rotation 244. Sideslip vector 232 may be tangent to turn rate 242, wherein a turning rate radius 246 of turn rate 242 is perpendicular to sideslip vector 232 (e.g., in the same direction as sideslip normal vector 236). Steering angle 248 may be a steering angle at a center point of shaft 214 relative to center of rotation 244 (e.g., a normal vector to a line from center of rotation 244 to center point of shaft 214). Steering angle 250 may be a steering angle at center point 216 of shaft relative to center of rotation 244 (e.g., orthogonal to a line from center of rotation 244 to center point of shaft 216). In various examples, and as shown here, the steering angles 248 and 250 may be different (e.g., may be different but in the same direction and / or may be different but in a similar direction). In some examples, this may also or alternatively be controlled to be substantially similar angles. As will be apparent from this figure, as the steering angles 248 and 250 increase (e.g., toward the longitudinal axis 202 of the vehicle or become more "straight"), the turning rate may also increase, and vice versa. Similarly, as the turning rate radius increases or decreases, the steering angle may also increase or decrease, respectively.

[0054] Thus, in various examples, since the sideslip vector 232 is tangential to the turn rate 242, changes in the sideslip vector 232 and / or changes in the turn rate 242 may be used to control the steering angle 248 and / or 250 at the vehicle 202, and changes in the turn rate may be used to control the steering angle. For example, control may be determined for a trajectory that indicates a change in the turn rate, which may be interpreted as a steering angle adjustment by one or more steering components. These one or more steering components may achieve such control by physically adjusting the steering angle of the wheels on one or more axles of the vehicle. Similarly, control may be determined for a trajectory that indicates a change in the sideslip vector, which may be interpreted as a steering angle adjustment by one or more steering components. Here, again, one or more steering components may achieve such control by physically adjusting the steering angle of the wheels on one or more axles of the vehicle.

[0055] Object 226 may remain present in environment 200. As described herein, the vehicle computing system may determine an object close distance based on a perpendicular distance from the object to vehicle path 238, which may be determined using sideslip vector 232 and heading vector 220. Here, the vehicle computing system may determine a distance 240 between object 226 and vehicle path 238. Distance 240 may be determined based on the size or extent (length and width) of vehicle 202, and / or such vehicle dimensions may be additionally considered when determining the proximity of object 226 to vehicle 202. In this example, the vehicle velocity vector in the form of sideslip vector 232 and heading vector 220 has different directions. Therefore, if heading vector 220 is used to determine the path (e.g., alone), as can be appreciated from this figure, the distance between object 226 and the path will be determined to be greater than distance 240, which may result in a suboptimal trajectory determination. For example, if the vehicle computing system uses heading vector 220 to determine a path and therefore overestimates the distance between vehicle 202 and object 226, the vehicle computing system may determine an operating trajectory that may cause vehicle 202 to potentially intersect object 226. For example, using heading vector (e.g., solely or primarily) to determine a path and / or a rate of turn may specifically cause an axle associated with axle center point 216 (e.g., a rear axle or a training axle) to come into contact with or come unexpectedly close to object 226. Thus, by using the disclosed techniques, a more accurate and safer trajectory may be determined, particularly for vehicles equipped with four-wheel steering capabilities.

[0056] Reference now Figure 2C , vehicle 202 may be configured with wheels 204 and 206 rotating in one direction (e.g., counterclockwise) from a top-down perspective, and wheels 208 and 210 rotating in the opposite direction (e.g., clockwise) to turn the vehicle to the left about a point in an arc. This type of motion will affect vehicle yaw (e.g., away from neutral or zero). Under these vehicle operating conditions, vehicle 202 may have vehicle state 252. In this vehicle state 252, the vehicle position may be represented as coordinates and yaw values ​​(e.g., as described above (x, y, h)), where the yaw value increases due to the vehicle body rotation (e.g., with Figure 2A Because yaw is affected, in this example, it can be determined that the heading vector 254 of the vehicle 202 is relative to Figure 2A and Figure 2B254 and the vehicle 202 is rotated about the center point 218 according to the orientation of the heading vector 220 in the state 252, wherein the corresponding heading normal vector 256 is similarly rotated. Since a four-wheel steering operation is performed at the vehicle 202, the velocity vector of the vehicle 202 may be in a different direction from the heading vector 254. The velocity vector of the vehicle state 252 may be represented as a sideslip vector 258. In various examples, the sideslip vector 258 may be represented in the vehicle state 252 as an angular difference from the heading vector 254, for example, represented as an angle 260. The vehicle computing system may determine a path 264 of the vehicle 202 based on the sideslip vector 258 and the heading vector 254. Here, too, the sideslip normal vector 262 may be a vector normal (perpendicular) to the sideslip vector 258 and may be used to perform path and object proximity operations.

[0057] Turn rate 266 may be a turning rate of vehicle 202 (e.g., a turning rate of vehicle 202 in a direction of motion at a location associated with state 252), as represented in vehicle state 252 or determined based on vehicle state 252. For example, turn rate 266 may be determined based on sideslip vector 258 and heading vector 254. Turn rate 266 may have a center of rotation 268. Sideslip vector 258 may be tangent to turn rate 266, wherein a turn rate radius 270 of turn rate 266 is perpendicular to sideslip vector 258 (e.g., in the same direction as sideslip normal vector 262). Steering angle 272 may be a steering angle of axis center point 214 relative to rotation center 268 (e.g., orthogonal to a line from rotation center 268 to axis center point 214). Steering angle 274 may be a steering angle at a center point of axis 216 relative to rotation center 268 (e.g., orthogonal to a line from rotation center 268 to a center point of axis 216). In various examples, and as shown here, steering angles 272 and 274 may be different (e.g., may be different but in the same direction and / or may be different but in a similar direction). In some examples, this may also, or alternatively, be controlled to be substantially similar angles. As can be appreciated from this figure, as steering angles 272 and 274 change, the rate of turn may also change. Thus, and similar to the above description of Figure 2B For example, changes in sideslip vector 258 and / or changes in turn rate 266 may be used to control steering angles 272 and / or 274 achieved by steering components configured at vehicle 202 .

[0058] Object 226 may remain present in environment 200. As described herein, the vehicle computing system may determine an object close distance based on a perpendicular distance from the object to vehicle path 264, which may be determined using sideslip vector 258 and heading vector 254. Here, the vehicle computing system may determine distance 276 between object 226 and vehicle path 264. As with the previous example, distance 276 may be determined based on the size or extent (length and width) of vehicle 202, and / or such vehicle size may be additionally taken into account when determining the proximity of object 226 to vehicle 202. In this embodiment, the vehicle velocity vector in the form of sideslip vector 258 and heading vector 254 have different directions. Therefore, if heading vector 254 is used to determine the path, as can be appreciated from this figure, the distance between object 226 and path 264 will be determined to be greater than distance 276, which may result in a suboptimal trajectory determination. For example, if the vehicle computing system uses heading vector 254 (e.g., alone) to determine a path and therefore overestimates the distance between vehicle 202 and object 226, the vehicle computing system may determine an operating trajectory that may result in a potential intersection of vehicle 202 and object 226. Figure 2B Similarly, using the heading vector (e.g., solely or primarily) to determine a path and / or rate of turn in this example may particularly cause an axis associated with axis center point 216 (e.g., a rear axle or an auxiliary axle) to come into contact with or come unexpectedly close to object 226. As described above, the disclosed techniques may be used to determine a more accurate and safer trajectory and thereby reduce the likelihood of collisions and other dangerous situations.

[0059] Reference now Figure 2D , vehicle 202 may be configured such that wheels 204 and 206 rotate (e.g., counterclockwise) and wheels 208 and 210 remain substantially longitudinally oriented (e.g., as in a two-wheel steering vehicle), steering the vehicle to the left. This type of motion will affect vehicle yaw (e.g., away from neutral or zero). Under these vehicle operating conditions, vehicle 202 may have vehicle state 278. In this vehicle state 278, the vehicle position may be represented as coordinates and yaw values ​​(e.g., as described above (x, y, h)), where the yaw value increases due to the vehicle body rotation (e.g., with Figure 2A Because yaw is affected, in this example, it can be determined that the heading vector 280 of the vehicle 202 is relative to Figure 2A and Figure 2BThe orientation of heading vector 220 is rotated counterclockwise about center point 218, wherein the corresponding heading normal vector 282 is similarly rotated. Since a two-wheel steering maneuver is performed at vehicle 202 in this example, the velocity vector of vehicle 202 may still have a different direction than heading vector 280. Although the difference between these vectors in this example may be less than Figure 2B The difference between the heading vector and the sideslip / velocity vector for implementing a four-wheel steering operation in the vehicle state 278 may be reduced, but the difference may still be significant. The velocity vector of the vehicle state 278 may be represented as a sideslip vector 284. In various embodiments, the sideslip vector 284 may be represented in the vehicle state 278 as an angular difference from the heading vector 280, such as represented as an angle 286. The vehicle computing system may determine a path 290 for the vehicle 202 based on the sideslip vector 284 and the heading vector 280. Here, too, a sideslip normal vector 288 may be a vector normal (perpendicular) to the sideslip vector 284 and may be used to perform path and object proximity operations.

[0060] Turn rate 292 may be a turning rate of vehicle 202 (e.g., a turning rate of vehicle 202 in a direction of motion at a location associated with state 278), as represented in vehicle state 278 or determined based on vehicle state 278. For example, turn rate 292 may be determined based on sideslip vector 284 and heading vector 280. Turn rate 292 may have a center of rotation 294. Sideslip vector 284 may be tangent to turn rate 292, wherein a turn rate radius 296 of turn rate 292 is perpendicular to sideslip vector 284 (e.g., in the same direction as sideslip normal vector 288). Steering angle 297 may be a steering angle of shaft center point 214 relative to rotation center 294 (e.g., orthogonal to a line from rotation center 294 to shaft center point 214). Steering angle 298 may be a steering angle at shaft center point 216 relative to rotation center 294 (e.g., orthogonal to a line from rotation center 294 to shaft center point 216). In this example of a two wheel steered vehicle, as can be seen in the figure, the steering angle at axis 216 is substantially 90 degrees (e.g., because steering is only performed at axis 214). As with the previous example, as the steering angles 297 and 298 vary, the rate of turn may also vary. Therefore, and as described above with respect to Figure 2B and Figure 2C Similar to the example of , changes in sideslip vector 284 and / or changes in turn rate 292 can be used to control steering angles 297 and / or 298 achieved by steering components configured at vehicle 202 .

[0061] Object 226 may remain present in environment 200. Here, again, the vehicle computing system may determine an object proximity distance based on a perpendicular distance from the object to vehicle path 290, which may be determined using sideslip vector 284 and heading vector 280. Here, the vehicle computing system may determine a distance 299 between object 226 and vehicle path 290. Similar to the previous examples, distance 299 may be determined based on the size or extent (length and width) of vehicle 202, and / or such vehicle dimensions may be additionally considered when determining the proximity of object 226 to vehicle 202. As with the previous two examples, in this example, the vehicle velocity vector in the form of sideslip vector 284 and heading vector 280 have different directions. Therefore, if heading vector 280 were to be used to determine a path (e.g., alone), as can be appreciated from this figure, the distance between object 226 and path 290 would be determined to be greater than distance 299, which may result in a suboptimal trajectory determination. For example, if the vehicle computing system used heading vector 280 alone to determine a path and therefore overestimated the distance between vehicle 202 and object 226, the vehicle computing system may determine an operating trajectory that could cause vehicle 202 to potentially intersect object 226. Figure 2B and Figure 2C As in the example of , using the heading vector (e.g., solely or primarily) to determine the path and / or turn rate in this example may specifically cause an axis associated with axis center point 216 (e.g., a rear axle or a training axle) to contact object 226, or to come unexpectedly close to object 226. As described above, the disclosed techniques can be used to determine a more accurate and safer trajectory and thereby reduce the likelihood of collisions and other dangerous situations.

[0062] Figure 3 An environment 300 is illustrated, which can include an example vehicle 302 traveling within the environment 300. The vehicle 302 can be configured with four-wheel steering capabilities. From a top-down perspective, the four wheels 304, 306, 308, and 310 can individually rotate in the same direction, causing the vehicle 302 to have a laterally affected direction of motion and lateral velocity in its current state 324. The vehicle 302 can have a center point 312, which can be the longitudinal center point of the wheelbase of the vehicle 302.

[0063] As described herein, the vehicle state 324 may be used to determine one or more paths for the vehicle 302 to use while traversing the environment 300. For example, the vehicle state 324 may include a vehicle position or position coordinates and a yaw value (e.g., (x, y, h)). In the vehicle state 324, the yaw value may be neutral or zero because, although the vehicle 302 experiences lateral velocity, the vehicle body is not rotated. Since the yaw is not affected, in this example, it may be determined that the vehicle 302 has a heading vector 316, and the direction of the heading vector 316 may be substantially parallel to the longitudinal axis of the vehicle 302 (e.g., substantially perpendicular to the lateral axis, front axis, or leading edge of the vehicle 302). Due to the four-wheel steering maneuver performed at the vehicle 302, the velocity vector of the vehicle 302 may have a different direction than the heading vector 316. The velocity vector of the vehicle state 324 may be represented as a sideslip vector 318, and in some examples, may be represented in the vehicle state 324 as an angular difference from the heading vector 316.

[0064] Using the sideslip vector 318 and the heading vector 216 (and / or the predicted sideslip vector and / or predicted heading vector for one or more predicted vehicle states), the vehicle computing system can determine a path 334 for the vehicle 302 through the environment 300. The vehicle computing system can also or alternatively determine a corridor 336 for the vehicle 302 through the environment 300, which can represent an area of ​​the environment occupied by the vehicle 302 while following the path. The corridor 336 can represent a predicted area that the vehicle 302 may occupy over a period of time, and therefore an area in which the vehicle 302 can detect the presence of potential objects or obstacles (e.g., determine whether there are obstacles or objects that may present a risk of collision). In an example, the corridor 336 can be a valid drivable surface in which the vehicle 302 can occupy without hitting an object, falling off a cliff, driving on a sidewalk, etc. The corridor 336 can be dynamically determined based on the temporal state of the environment 300.

[0065] For example, the vehicle computing system can determine a predicted vehicle state 326, which can include a position (e.g., (x, y, h)), a heading and velocity vectors, a predicted vehicle center point 328, and any other state parameters described herein. In the predicted vehicle state, the vehicle can have a substantially longitudinal orientation, without a lateral velocity. Thus, the sideslip and / or velocity vector 330 for the state can have the same or substantially similar orientation as the heading vector 332 for the state. The vehicle computing system can determine a path 334 that the vehicle can traverse in order to move from the vehicle state 324 to the vehicle state 326. In some examples, the vehicle computing system can determine one or more controls to implement along the path to cause the vehicle to move to the state 326. These controls and path 334 can be represented in a trajectory, which can be used by the vehicle computing system to control the vehicle.

[0066] The vehicle computing system may also determine a channel 336, which represents an area occupied by the vehicle 302 when traveling along the path 334. As can be seen from this figure, the area occupied by the vehicle 302 when moving laterally without rotating (e.g., maintaining neutral yaw) will be different from the area occupied when the vehicle is turned using conventional two-wheel steering operation. For example, in conventional two-wheel steering operation, the width of the channel occupied by the vehicle may generally be the width of the vehicle. In this example, the width of the channel 336 may be more similar to the diagonal dimension of the vehicle 302 because when the vehicle travels along the path 334, due to four-wheel steering, the body of the vehicle may not rotate to follow the path (e.g., the heading direction may not change even if the speed direction changes).

[0067] For example, vehicle 320 may be traveling on the same road as vehicle 302 in environment 300. The vehicle computing system of vehicle 302 may determine path 334 so that neither vehicle 302 nor vehicle 320 occupies lane 336 at any point. These path and lane determinations may be performed using the sideslip vectors and heading vectors determined for various vehicle states (e.g., current, expected, and / or predicted states). For example, for various predicted vehicle states, the vehicle computing system may determine the distance between vehicle 320 and vehicle 302 based on one or more paths determined using the predicted sideslip vectors and predicted heading vectors for such predicted vehicle states. Once path 334 has been determined as a path for controlling vehicle 302 through environment 300, the vehicle computing system may determine an operational trajectory for vehicle 302, which may include various types of controls that will control vehicle 302 along path 334 (e.g., to a location associated with predicted vehicle state 326). Examples of determining channels and using channels in path and trajectory determination are described in U.S. patent application No. 16 / 732,087, entitled “Action-based reference Systems for Vehicle Control,” filed on December 31, 2029 (now U.S. Patent No. 11,142,188, issued on October 12, 2021), the entirety of which is incorporated herein by reference.

[0068] Figure 4 A block diagram of an example system 400 for implementing the techniques described herein is depicted. In at least one example, the system 400 can include a vehicle 402. The vehicle 402 can include a vehicle computing system or device 404 that can serve as a vehicle controller for the vehicle 402 and / or perform the functions of the vehicle controller. The vehicle 402 can also include one or more sensor systems 406, one or more transmitters 408, one or more communication connections 410, at least one direct connection 412, and one or more drive systems 414.

[0069] The vehicle computing device 404 can include one or more processors 416 and a memory 418 communicatively coupled to the one or more processors 416. In the illustrated example, the vehicle 402 is an autonomous vehicle; however, the vehicle 402 can be any other type of vehicle. In the illustrated example, the memory 418 of the vehicle computing device 404 stores a positioning component 420, a perception component 422, a planning component 424, one or more system controllers 426, one or more maps 428, and a prediction component 430. Although for illustrative purposes, the vehicle 402 is not shown in FIG. Figure 4402 are depicted as residing in memory 418, but it is contemplated that positioning component 420, perception component 422, planning component 424, one or more system controllers 426, one or more maps 428, and prediction component 430 can additionally or alternatively be accessed by vehicle 402 (e.g., stored remotely).

[0070] In at least one example, the positioning component 420 can include functionality to receive data from the sensor system(s) 406 to determine the position and / or orientation (e.g., one or more of x-, y-, z-position, roll, pitch, and yaw (A)) of the vehicle 402. For example, the positioning component 420 can include and / or request / receive a map of the environment, and can continuously determine the position and / or orientation of the autonomous vehicle within the map. In some cases, the positioning component 420 can utilize SLAM (simultaneous localization and mapping), CLAMS (simultaneous calibration, localization, and mapping), relative SLAM, bundle adjustment, nonlinear least squares optimization, etc. to receive image data, lidar data, radar data, IMU data, GPS data, wheel encoder data, etc. to accurately determine the position of the autonomous vehicle. In some examples, the positioning component 420 can provide data to various components of the vehicle 402 to determine the initial position of the autonomous vehicle for use in generating trajectories and / or for use in generating map data, as discussed herein.

[0071] In some cases, perception component 422 can include functionality to perform object detection, segmentation, and / or classification. In some examples, perception component 422 can provide processed sensor data indicating the presence of an entity proximate to vehicle 402 and / or entities classified as entity types (e.g., cars, pedestrians, cyclists, animals, buildings, trees, pavement, curbs, sidewalks, traffic lights, traffic lights, headlights, brake lights, unknown, etc.). In additional and / or alternative examples, perception component 422 can provide processed sensor data indicating one or more characteristics associated with a detected entity (e.g., a tracked object) and / or the environment in which the entity is located. Perception component 422 can generate processed sensor data using a multi-channel data structure as described herein, such as a multi-channel data structure generated by a deconvolution process. In some examples, characteristics associated with an entity or object can include, but are not limited to: x-position (global and / or local position), y-position (global and / or local position), z-position (global and / or local position), orientation (e.g., roll, pitch, yaw), entity type (e.g., classification), velocity of the entity, acceleration of the entity, extent (size) of the entity, etc. Such entity characteristics can be represented in a multi-channel data structure (e.g., a multi-channel data structure generated using a learned upsampling transformation as an output of one or more deconvolutional layers (e.g., (one or more) learned deconvolutional upsampling decoding layers)). Characteristics associated with an environment can include, but are not limited to: the presence of another entity in the environment, the state of another entity in the environment, the time of day, the day of the week, the season, the weather condition, an indication of darkness / light, etc.

[0072] Typically, planning components 424 can determine the path that vehicle 402 will follow to pass through the environment, for example, using side slip vectors, four-wheel steering related operations, and other aspects described herein. In an example, planning components 424 can determine various routes and trajectories and various levels of details. For example, planning components 424 can determine the route (e.g., the planned route) from a first position (e.g., current position) to a second position (e.g., target position). For the purpose of this discussion, a route can be a sequence of waypoints for traveling between two positions. As a non-limiting example, waypoints include streets, intersections, global positioning system (GPS) coordinates, etc. In addition, planning components 424 can generate instructions (e.g., control) for guiding an autonomous vehicle along at least one portion of a route from a first position to a second position. In at least one example, planning components 424 can determine how to guide an autonomous vehicle from a first waypoint in a waypoint sequence to a second waypoint in a waypoint sequence. In some examples, instructions can be a track or a part of a track. In some examples, multiple trajectories can be generated substantially simultaneously (eg, within technical tolerances) according to a receding horizon technique, wherein one of the multiple trajectories is selected for vehicle 402 navigation.

[0073] In at least one example, the vehicle computing device 404 can include one or more system controllers 426 that can be configured to control steering, propulsion, braking, safety, transmitter, communication, and other systems of the vehicle 402. These system controllers 426 can communicate with and / or control corresponding systems of the drive system(s) 414 and / or other components of the vehicle 402.

[0074] The memory 418 can further include one or more maps 428, which can be used by the vehicle 402 to navigate within the environment. For the purposes of this discussion, a map can be any number of data structures modeled in two, three, or N dimensions that can provide information about the environment, such as, but not limited to: topology (such as intersections), streets, mountains, roads, terrain, and the overall environment. In some cases, a map can include, but is not limited to: texture information (e.g., color information (e.g., RGB color information, Lab color information, HSV / HSL color information), non-visible light information (near infrared light information, infrared light information, etc.), intensity information (e.g., lidar information, radar information, near infrared light intensity information, infrared light intensity information, etc.); spatial information (e.g., image data projected onto a grid, individual "surfaces" (e.g., polygons associated with individual colors and / or intensities); and reflectivity information (e.g., specular reflection information, retroreflection information, BRDF information, BSSRDF information, etc.). In an example, a map can include three dimensions of the environment. dimensional grid. In some examples, the map can be stored in a tiled format so that individual tiles of the map represent discrete portions of the environment and can be loaded into working memory as needed, as discussed herein. In at least one example, one or more maps 428 can include at least one map (e.g., an image and / or a grid). In some examples, the vehicle 402 can be controlled based at least in part on the map 428. That is, the map 428 can be used in conjunction with the positioning component 420, the perception component 422, and / or the planning component 424 to determine the location of the vehicle 402, identify objects in the environment, and / or generate a route and / or a trajectory for navigating in the environment.

[0075] In some examples, one or more maps 428 can be stored on a remote computing device(s) (such as computing device(s) 442) that can be accessed via network(s) 440. In some examples, multiple maps 428 can be stored based on, for example, characteristics (e.g., entity type, time of day, day of week, season of year, etc.). Storing multiple maps 428 can have similar memory requirements, but increases the speed at which data in the maps is accessed.

[0076] In general, prediction component 430 can generate predicted trajectories for objects in the environment. For example, prediction component 430 can generate one or more predicted trajectories for vehicles, pedestrians, animals, etc. within a threshold distance from vehicle 402. In some cases, prediction component 430 can measure the trajectory of the object and generate the trajectory of the object based on observed behavior and predicted behavior.

[0077] In some cases, aspects of some or all of the components discussed herein can include any model, algorithm, and / or machine learning algorithm. For example, in some cases, the components in memory 418 (and memory 446 discussed below) can be implemented as a neural network. For example, memory 418 can include a deep tracking network that can be configured with a convolutional neural network (CNN). A CNN can include one or more convolutional and / or deconvolutional layers.

[0078] An example neural network is an algorithm that passes input data through a series of connected layers to produce an output. Each layer in a neural network can also include another neural network, or can include any number of layers, each of which can be a convolutional, deconvolutional, or other type of layer. As can be understood in the context of the present disclosure, a neural network can utilize machine learning, which can refer to a broad classification of algorithms in which outputs are generated based on learned parameters.

[0079] Although discussed in the context of neural networks, any type of machine learning consistent with the present disclosure can be used, for example, to determine a learned upsampling transformation. For example, machine learning algorithms can include, but are not limited to, regression algorithms (e.g., ordinary least squares regression (OLSR), linear regression, logistic regression, stepwise regression, multivariate adaptive regression splines (MARS), local estimated scatter plot smoothing (LOESS)), example-based algorithms (e.g., ridge regression, least absolute shrinkage and selection operator (LASSO), elastic net, least angle regression (LARS)), decision tree algorithms (e.g., classification and regression trees (CART), iterative dichotomy 3 (ID3), chi-squared automatic interaction detection (CHAID), decision stumps, conditional decision trees), Bayesian algorithms (e.g., naive Bayes, Gaussian naive Bayes, multinomial naive Bayes, averaged single dependency estimator (AODE), Bayesian belief network (BNN), Bayesian network), clustering algorithms (e.g., k-means, k-median, expectation maximization (EM), hierarchical clustering), association rule learning algorithms ( For example, perceptron, back propagation, jump field network, radial basis function network (RBFN), deep learning algorithms (e.g., deep Boltzmann machine (DBM), deep belief network (DBN), convolutional neural network (CNN), stacked autoencoder), dimensionality reduction algorithms (e.g., principal component analysis (PCA), principal component regression (PCR), partial least squares regression (PLSR), Sammon map, multidimensional scaling (MDS), projection pursuit, linear discriminant analysis (LDA), hybrid discriminant analysis (MDA), quadratic discriminant analysis (QDA), flexible discriminant analysis (FDA)), ensemble algorithms (e.g., boosting method, bootstrap aggregation (Bagging), AdaBoost, stacked generalization (hybrid), gradient boosting machine (GBM), gradient boosting regression tree (GBRT), random forest), SVM (support vector machine), supervised learning, unsupervised learning, semi-supervised learning, etc.). Additional examples of architectures include neural networks such as ResNet50, ResNet101, VGG, DenseNet, PointNet, and the like.

[0080] In at least one example, the sensor system(s) 406 may include: radar sensors, ultrasonic sensors, sonar sensors, position sensors (e.g., GPS, compass, etc.), inertial sensors (e.g., inertial measurement unit (IMU), accelerometer, magnetometer, gyroscope, etc.), cameras (e.g., RGB, IR, intensity, depth, etc.), time of flight sensors, audio sensors, acoustic sensors, microphones, wheel encoders, environmental sensors (e.g., temperature sensors, humidity sensors, light sensors, pressure sensors, etc.), etc. The sensor system 406 may include multiple examples of each of these or other types of sensors. For example, the camera sensor may include multiple cameras disposed at various locations around the exterior and / or interior of the vehicle 402. The sensor system 406 may provide input to the vehicle computing device 404. Additionally or alternatively, the sensor system 406 may send sensor data to one or more computing devices via the one or more networks 440, after a predetermined period of time, in near real time, etc.

[0081] The vehicle 402 can also include one or more transmitters 408 for emitting light (visible and / or invisible) and / or sound. The transmitters 408 in the example include internal audio and visual transmitters for communicating with passengers of the vehicle 402. By way of example and not limitation, the internal transmitters may include speakers, lights, signs, display screens, touch screens, tactile transmitters (e.g., vibration and / or force feedback), mechanical actuators (e.g., seat belt tensioners, seat positioners, headrest positioners, etc.), and the like. The transmitters 408 in this example may also include external transmitters. By way of example and not limitation, the external transmitters in this example include lights indicating the direction of travel or other indicators of vehicle motion (e.g., indicator lights, signs, light arrays, etc.), and one or more audio transmitters (e.g., speakers, speaker arrays, horns, etc.) to communicate with pedestrians or other nearby vehicles using sound, one or more of which include acoustic beam steering technology. The external transmitter in this example may also or alternatively include a non-visible light transmitter, such as an infrared transmitter, a near infrared transmitter, and / or a lidar transmitter.

[0082] The vehicle 402 can also include one or more communication connections 410 that enable communication between the vehicle 402 and one or more other local or remote computing devices. For example, the communication connection 410 can facilitate communication with other local computing devices on the vehicle 402 and / or the drive system 414. Moreover, the communication connection 410 can allow the vehicle to communicate with other nearby computing devices (e.g., other nearby vehicles, traffic lights, etc.). The communication connection 410 also enables the vehicle 402 to communicate with a teleoperation computing device or other remote services.

[0083] The network interface 410 can include a physical interface and / or a logical interface for connecting the vehicle computing device 404 to another computing device or network, such as the network 440. For example, the communication connection 410 can enable Wi-Fi-based communications, such as frequencies defined by the IEEE 802.11 standard, short-range wireless frequencies such as Bluetooth, cellular communications (e.g., 2G, 3G, 4G, 4G LTE, 5G, etc.), or any suitable wired or wireless communication protocol that enables a respective computing device to interact with other computing devices.

[0084] In at least one example, the vehicle 402 can include one or more drive systems 414. In some examples, the vehicle 402 can have a single drive system 414. In at least one example, if the vehicle 402 has multiple drive systems 414, the individual drive systems 414 can be positioned on opposite ends (e.g., front and rear, etc.) of the vehicle 402. In at least one example, the drive system 414 can include one or more sensor systems to detect conditions of the drive system 414 and / or the surrounding environment of the vehicle 402. As an example and not limitation, the sensor system 406 can include: one or more wheel encoders (e.g., rotary encoders) to sense the rotation of the wheels of the drive system, inertial sensors (e.g., inertial measurement units, accelerometers, gyroscopes, magnetometers, etc.) to measure the orientation and acceleration of the drive system, cameras or other image sensors, ultrasonic sensors to acoustically detect objects in the surrounding environment of the drive system, lidar sensors, radar sensors, etc. Some sensors, such as wheel encoders, can be unique to the drive system 414. In some cases, the sensor system on drive system 414 may overlap or supplement a corresponding system of vehicle 402 (eg, sensor system 406 ).

[0085] The drive system 414 can include many of the systems in the vehicle system, including: a high-voltage battery; a motor for propelling the vehicle; an inverter that converts direct current from the battery into alternating current for use by other vehicle systems; a steering system, including a steering motor and a steering rack (which can be electric); a braking system, including a hydraulic actuator or an electric actuator; a suspension system, including hydraulic components and / or pneumatic components; a stability control system for distributing braking force to mitigate loss of traction and maintain control; an HVAC system; lighting (e.g., lighting such as head / tail lights for illuminating the external surroundings of the vehicle); and one or more other systems (e.g., cooling systems, safety systems, on-board charging systems, other electrical components, such as DC / DC converters, high-voltage connectors, high-voltage cables, charging systems, charging ports, etc.). In addition, the drive system 414 may include a drive system controller that can receive and pre-process data from a sensor system and control the operation of various vehicle systems. In some cases, the drive system controller may include one or more processors and a memory coupled to one or more processors in communication. The memory may store one or more components to perform various functions of the drive system 414. Additionally, the drive system 414 may also include one or more communication connections that enable the corresponding drive system to communicate with one or more other local or remote computing devices.

[0086] In at least one example, direct connection 412 can provide a physical interface to couple one or more drive systems 414 to the body of vehicle 402. For example, direct connection 412 can allow for the transfer of energy, fluids, air, data, etc. between drive module 414 and the vehicle. In some cases, direct connection 412 can further releasably secure drive system 414 to the body of vehicle 402.

[0087] In some examples, vehicle 402 may send sensor data, audio data, crash data, and / or other types of data to one or more computing devices 442 via network 440. In some examples, vehicle 402 may send raw sensor data to computing device 442. In other examples, vehicle 402 may send processed sensor data and / or a representation of sensor data (e.g., a multi-channel data structure representing sensor data) to computing device 442. In some examples, vehicle 402 may send sensor data to computing device 442 at a particular frequency, after a predetermined period of time has passed, in near real time, etc. In some cases, vehicle 402 may send sensor data (raw or processed) to computing device 442 as one or more log files.

[0088] Computing device 442 may include processor 444 and memory 446 that stores one or more sensing components 448 and / or planning components 450. In some cases, sensing component 448 may substantially correspond to sensing component 422 and may include substantially similar functionality. In some cases, planning component 450 may substantially correspond to planning component 424 and may include substantially similar functionality.

[0089] Processor 416 of vehicle 402 and processor 444 of computing device 442 may be any suitable processor capable of executing instructions to process data and perform operations as described herein. By way of example and not limitation, processor 416 and processor 444 may 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 convert the electronic data into other electronic data that can be stored in registers and / or memory. In some examples, integrated circuits (e.g., ASICs, etc.), gate arrays (e.g., FPGAs, etc.), and other hardware devices may also be considered processors configured to implement encoded instructions.

[0090] Memories 418 and 446 are examples of non-temporary computer-readable media. Memories 418 and / or 446 can store an operating system and one or more software applications, instructions, programs, and / or data to implement the methods described herein and the functions belonging to various systems. In various embodiments, the memory can be implemented using any suitable memory technology, such as static random access memory (SRAM), synchronous dynamic RAM (SDRAM), non-volatile / flash memory, or any other type of memory capable of storing information. The architectures, systems, and separate elements described herein may include many other logical components, programmed components, and physical components, of which those components shown in the accompanying drawings are merely examples relevant to the discussion herein.

[0091] It should be noted that although Figure 4 442, and / or components of computing device 442 may be associated with vehicle 402. That is, vehicle 402 may perform one or more functions associated with computing device 442, and vice versa.

[0092] Sample Clauses

[0093] The following clauses describe various examples. Any of the examples in this section can be used with any other example and / or any other example or embodiment described herein.

[0094] A: A system, comprising: one or more processors; and one or more non-transitory computer-readable media storing instructions executable by the one or more processors, wherein the instructions, when executed, cause the system to perform the following operations, including: determining a position of a vehicle in an environment, the position comprising a two-dimensional coordinate and a yaw value; determining a heading vector associated with the vehicle based at least in part on the position, wherein the heading vector comprises a heading direction; determining a sideslip vector associated with the vehicle based at least in part on a direction of motion and a speed of the vehicle, wherein the sideslip vector comprises a sideslip direction different from the heading direction; determining a path segment length; determining a turning rate based at least in part on the heading vector, the sideslip vector, and the path segment length; determining multiple candidate paths for traversing the environment based at least in part on the turning rate; determining an operable vehicle path from the multiple candidate paths; determining an operable trajectory for controlling the vehicle based at least in part on the operable vehicle path; and controlling the vehicle based at least in part on the operable trajectory.

[0095] B: A system as described in clause A, wherein the position, the heading direction, or the sideslip vector is based at least in part on a longitudinal centerpoint of a wheelbase of the vehicle.

[0096] C: A system according to clause A or B, wherein: determining the multiple candidate paths includes: determining that an object is represented in the environment; determining the candidate path based at least in part on the turning rate; and determining a vertical distance between the object and the candidate path; and determining the operable vehicle path from the multiple candidate paths includes: determining the candidate path as the operable vehicle path based at least in part on the vertical distance between the object and the candidate path.

[0097] D: A system according to any of clauses AC, wherein: the vehicle includes a four-wheel steering component; and determining the operable trajectory includes determining a four-wheel steering control that controls the four-wheel steering component.

[0098] E: A system according to any of clauses AD, wherein: determining the four-wheel steering control includes determining steering angle data based at least in part on the sideslip vector; and the four-wheel steering control causes the steering angle data to be provided to the four-wheel steering component.

[0099] F: One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, perform the following operations, including: determining a heading vector associated with the vehicle based at least in part on the position of the vehicle in an environment, wherein the heading vector includes a heading direction; determining a sideslip vector associated with the vehicle based at least in part on the direction of motion and the speed of the vehicle, wherein the sideslip vector includes a sideslip direction different from the heading direction; determining a turning rate associated with the vehicle based at least in part on the heading vector and the sideslip vector; determining a path for traversing the environment based at least in part on the turning rate; and providing the path to a vehicle trajectory determination system.

[0100] G: One or more non-transitory computer-readable media as described in clause F, wherein determining the path includes: determining a cost associated with the path; and determining the path from a plurality of candidate paths based at least in part on the cost.

[0101] H: One or more non-transitory computer-readable media as described in clause G, wherein the cost associated with the path is based at least in part on one or more of: vehicle rotation associated with the path; vehicle translation associated with the path; vehicle ride quality associated with the path; or vehicle safety associated with the path.

[0102] I: One or more non-transitory computer-readable media as described in any of clauses FH, wherein determining the path comprises: determining a vertical distance between an object in the environment and the path; and determining the path from a plurality of candidate paths based at least in part on the vertical distance.

[0103] J: One or more non-transitory computer-readable media as described in clause FI, wherein determining the path includes: determining a predicted heading vector associated with the vehicle based at least in part on a predicted position of the vehicle; determining a predicted sideslip vector associated with the vehicle based at least in part on a predicted direction of motion and a predicted speed of the vehicle; and further determining the turning rate based at least in part on a difference between the predicted sideslip vector and the sideslip vector and a difference between the predicted heading vector and the heading vector.

[0104] K: One or more non-transitory computer-readable media as described in clause J, wherein the predicted direction of motion is substantially similar to the predicted heading direction of the predicted heading vector.

[0105] L: One or more non-transitory computer-readable media as described in clause J, wherein: the velocity includes a lateral velocity; the position includes a yaw value; the predicted position of the vehicle includes a predicted yaw value; and the predicted yaw value is substantially similar to the yaw value.

[0106] M: One or more non-transitory computer-readable media as described in clause L, the predicted speed includes a predicted lateral speed; and the predicted lateral speed is different from the lateral speed.

[0107] N: One or more non-transitory computer-readable media as described in clause FM, wherein determining the path includes: determining a predicted sideslip vector associated with the vehicle based at least in part on a predicted direction of motion and a predicted speed of the vehicle; determining a channel of the path based at least in part on the sideslip vector and the predicted sideslip vector; and determining the path based at least in part on the channel.

[0108] O: A method comprising: determining a position of a vehicle in an environment, determining a heading direction of the vehicle based at least in part on the position; determining a sideslip vector of the vehicle based at least in part on a direction of motion and a speed of the vehicle, wherein the direction of motion of the vehicle is different from the heading direction; determining a turning rate associated with the vehicle based at least in part on the heading direction and the sideslip vector; determining a path for traversing the environment based at least in part on the turning rate; and controlling the vehicle based at least in part on the path.

[0109] P: A method according to clause O, wherein controlling the vehicle includes providing a change in the direction of vehicle movement to a four-wheel steering component configured at the vehicle.

[0110] Q: A method according to clause O or P, wherein determining the path includes: detecting an object in the environment; determining a predicted sideslip vector of the vehicle; further determining the path based at least in part on the predicted sideslip vector; determining a vertical distance between the position of the object and the path; and determining the path from a plurality of candidate paths based at least in part on the vertical distance.

[0111] R: A method as described in any of clauses OQ, wherein the speed includes a lateral speed.

[0112] S: A method according to any of clauses OR, wherein determining the turning rate is further based at least in part on a path arc length.

[0113] T: A method according to any of clauses OS, wherein the position comprises the two-dimensional coordinates of a centre point of a wheelbase of the vehicle.

[0114] Although the example clauses described above are described with respect to a specific implementation, it should be understood that in the context of this article, the content of the example clauses may also be implemented via a method, an apparatus, a system, a computer-readable medium, and / or another implementation. In addition, any one of the example ATs may be implemented alone or in combination with any other one or more of the example ATs.

[0115] in conclusion

[0116] While one or more examples of the techniques described herein have been described, various alterations, additions, permutations, and equivalents thereof are included within the scope of the techniques described herein.

[0117] In the description of the examples, reference is made to the accompanying drawings forming a part thereof, which illustrate specific examples of the claimed subject matter by way of illustration. It should be understood that other examples may be used, and changes or modifications such as structural changes may be made. Such examples, changes or modifications do not necessarily deviate from the scope of the subject matter claimed with respect to the intent. Although the steps herein may be presented in a certain order, in some cases, the ordering may be changed so that certain inputs are provided at different times or in different orders without changing the functionality of the described systems and methods. The disclosed programs may also be executed in different orders. In addition, it is not necessary to perform the various calculations herein in the order disclosed, and other examples of alternative orders using calculations may be easily implemented. In addition to being reordered, calculations may also be decomposed into sub-calculations with the same results.

Claims

1. A system comprising: one or more processors; as well as One or more non-transitory computer-readable media storing instructions executable by the one or more processors, wherein the instructions, when executed, cause the system to perform the following operations, including: Determine the location of the vehicle in the environment, determining a heading direction of the vehicle based at least in part on the position; determining a sideslip vector of the vehicle based at least in part on a direction of motion and a speed of the vehicle, wherein the direction of motion of the vehicle is different than the heading direction; determining a turn rate associated with the vehicle based at least in part on the heading direction and the sideslip vector; determining a path for traversing the environment based at least in part on the turn rate; and The vehicle is controlled based at least in part on the path.

2. The system according to claim 1, wherein: One or more of the position, the heading direction, or the sideslip vector is based at least in part on a longitudinal centerpoint of a wheelbase of the vehicle.

3. The system according to claim 1 or 2, wherein: Determining the path includes: detecting objects in the environment; determining a predicted sideslip vector of the vehicle; further determining the path based at least in part on the predicted sideslip vector; determining a vertical distance between the location of the object and the path; and The path is determined from a plurality of candidate paths based at least in part on the vertical distance.

4. The system according to any one of claims 1 to 3, wherein: The vehicle includes four-wheel steering components; and Determining the path includes determining a four wheel steering control that controls the four wheel steering component.

5. The system of claim 4, wherein: determining the four wheel steering control includes determining steering angle data based at least in part on the sideslip vector; and The four-wheel steering control causes the steering angle data to be provided to the four-wheel steering component.

6. The system according to any one of claims 1 to 5, wherein: Determining the turn rate is further based at least in part on one or more of a path segment length or a path arc length.

7. The system according to any one of claims 1 to 6, wherein: The velocity comprises a lateral velocity and the position comprises a yaw value.

8. The system according to any one of claims 1 to 7, wherein: The position includes the two-dimensional coordinates of a center point of a wheelbase of the vehicle.

9. A method comprising: determining a heading vector associated with the vehicle based at least in part on a position of the vehicle in an environment, wherein the heading vector includes a heading direction; determining a sideslip vector associated with the vehicle based at least in part on the direction of motion and the speed of the vehicle, wherein the sideslip vector comprises a sideslip direction different from the heading direction; determining a turn rate associated with the vehicle based at least in part on the heading vector and the sideslip vector; determining a path for traversing the environment based at least in part on the turn rate; and The vehicle is controlled based at least in part on the path.

10. The method according to claim 9, wherein: Determining the path includes: determining a cost associated with the path; and The path is determined from a plurality of candidate paths based at least in part on the cost.

11. The method according to claim 10, wherein: The cost associated with the path is based at least in part on one or more of: a vehicle rotation associated with the path; a vehicle translation associated with the path; a vehicle ride quality associated with the path; or Vehicle safety associated with the path.

12. The method according to any one of claims 9 to 11, wherein: Determining the path includes: determining a vertical distance between an object in the environment and the path; and The path is determined from a plurality of candidate paths based at least in part on the vertical distance.

13. The method according to any one of claims 9 to 12, wherein: Determining the path includes: determining a predicted heading vector associated with the vehicle based at least in part on the predicted position of the vehicle; determining a predicted sideslip vector associated with the vehicle based at least in part on the predicted direction of motion and the predicted speed of the vehicle; and The turn rate is further determined based at least in part on a difference between the predicted sideslip vector and the sideslip vector and a difference between the predicted heading vector and the heading vector.

14. The method according to claim 13, wherein: The predicted direction of motion is substantially similar to the predicted heading direction of the predicted heading vector.

15. One or more non-transitory computer-readable storage media storing instructions that, when executed by one or more processors, cause one or more computing devices to perform the method of any one of claims 9-14.

Citation Information

Patent Citations

  • Action-based reference systems for vehicle control

    US11142188B2