XYZ motion planning for vehicles

Through the XYZ motion planning algorithm, combining the road surface characteristics and vehicle state, the problem of difficult to effectively consider the movement of the road surface outside the plane in the prior art is solved, and better vehicle trajectory planning is achieved, and safety and comfort are improved.

CN120153331APending Publication Date: 2025-06-13CLEARMOTION INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380075565.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-09-28
Filing Date
2023-09-28
Publication Date
2025-06-13

AI Technical Summary

Technical Problem

It is difficult for existing autonomous vehicles to effectively consider out-of-plane movement of the road surface when navigating, which may increase the vehicle's discomfort, wear and safety risks.

Method used

Using the XYZ motion planning algorithm, combining the in-plane XY motion and out-plane Z motion of the road surface, a comprehensive motion plan that takes into account the characteristics of the road surface, vehicle status and vehicle-mounted system characteristics was developed.

Benefits of technology

By considering Z-motion, better vehicle trajectory can be obtained, reducing vehicle discomfort and wear, and improving safety and comfort.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120153331A_ABST
    Figure CN120153331A_ABST
Patent Text Reader

Abstract

Methods and systems are presented for planning and commanding motion of a vehicle in a plane of a roadway and in a vertical direction relative to the plane of the roadway to enhance vehicle performance because it may involve, for example, vehicle safety, occupant comfort, wear and tear on the vehicle, and / or vehicle efficiency. One or more processors may be used to plan XYZ vehicle trajectories and provide commands to systems such as, for example, an active suspension system, a semi-active suspension system, a propulsion system, a braking system (e.g., an ABS), and / or a steering system. The one or more processors may also receive road information from, for example, forward looking sensors (e.g., LiDAR), a local or remote database, and motion sensors (e.g., IMUs, accelerometers). The one or more processors may also exchange information with drivers and / or other vehicle occupants, various on-board or remote databases, and / or infrastructure systems (e.g., GPS) by means of the one or more communication devices.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Related Applications

[0002] This application claims the benefit of priority of U.S. Application Serial No. 63 / 410,815, filed on September 28, 2022, under 35 U.S.C. § 119(e), the disclosure of which is hereby incorporated by reference in its entirety. Technical Field

[0003] The disclosed embodiments relate to the control of the movement of a vehicle as it travels along a road. Background Art

[0004] Autonomous vehicles currently in use, such as robots and self-driving cars, typically employ route planning algorithms to navigate factory floors or open roads. These algorithms select a route to a destination that avoids collisions with other vehicles or obstacles. The route planning process typically involves the analysis of real-time data collected by one or more sensors about the vehicle's environment. Summary of the Invention

[0005] In some aspects, the techniques described herein relate to operating a vehicle, including: traveling along a road; receiving information about a section of the road ahead of the vehicle, where the information includes data about the surface of the road ahead of the vehicle's current position (such as, for example, information about potholes, speed bumps, manhole covers, road surface cracks, and frost heaves); using an algorithm based on the received information to develop a plurality of feasible motion plans for moving forward from the vehicle's current position; developing at least one trajectory for each of the plurality of feasible motion plans (which may exclude trajectories that may cause collisions with other vehicles, pedestrians, and obstacles), where at least one of the trajectories takes into account out-of-plane motion caused by the road surface; predicting the cost of traveling along each of the at least one trajectory for each of the plurality of feasible motion plans; selecting a trajectory at least in part based on the cost; providing the selected trajectory to a vehicle operator (which may be, for example, a human or an electronic vehicle controller); and operating the vehicle by implementing the selected trajectory. At least a portion of the received data may be received from a (remote or vehicle-mounted) database that includes previously collected information about the road, such as information that may be obtained through crowd sourcing or from one or more forward-looking sensors on the vehicle. The vehicle may be a fully autonomous vehicle, a semi-autonomous vehicle, or a manually driven vehicle. The cost may be based on, for example, energy consumption, travel time, occupant comfort, traffic rule violations, wear and tear of components, safety, and / or environmental impact.

[0006] In some aspects, the techniques described herein relate to operating a vehicle, including: driving along a road; receiving information about a section of the road ahead of the vehicle's current position, where the information includes data about road surface characteristics that may cause out-of-plane motion (such as, for example, information about potholes, speed bumps, manhole covers, road surface cracks, and frost heaves); selecting a trajectory having a short duration (e.g., less than 30 seconds, less than one minute, and less than two minutes) based on the received information, where the trajectory includes both XY motion and Z motion; providing the trajectory to a vehicle operator (e.g., a person or one or more microprocessors) and operating the vehicle by implementing the trajectory.

[0007] In some aspects, the techniques described herein relate to operating a vehicle, including: driving along a road; receiving information about the lateral distribution of the expected intensity of adverse effects on the vehicle at a series of discrete longitudinal positions along the road; receiving at least one constraint that limits the operation of the vehicle (e.g., a prohibition against leaving the driving lane, deviating from the centerline of the driving lane, and / or a maximum lateral acceleration); calculating a cost function based on the intensity and the at least one constraint; and passing through each position in the longitudinal position at a point determined based on the cost function.

[0008] It should be understood that the foregoing concepts and additional concepts discussed below can be arranged in any suitable combination, as the present disclosure is not limited in this respect. Additionally, other advantages and novel features of the present disclosure will become apparent from the following detailed description of various non-limiting embodiments when considered in conjunction with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] The accompanying drawings are not intended to be drawn to scale. In the drawings, each identical or nearly identical component shown in various figures may be represented by the same reference numeral. For clarity purposes, each component may not be labeled in every figure. In the drawings:

[0010] Figure 1 is a schematic diagram of an embodiment of a vehicle; including a vehicle control system and vehicle sensors;

[0011] Figure 2 shows a graph of the intensity of a parameter associated with the road surface, where the intensity of the parameter is a function of the lateral position and the longitudinal position along the road;

[0012] Figure 3 shows along Figure 2 an example of optimal path planning for a road;

[0013] Figure 4 shows Figure 2 a two-dimensional representation of the intensity mapping;

[0014] Figure 5 Illustrates the implementation of a sample - based method for planning the XYZ motion of a vehicle;

[0015] Figure 6 Illustrates examples of certain safety benefits of XYZ motion planning;

[0016] Figure 7 Illustrates a block diagram of the implementation of an exemplary architecture of an XYZ motion planner;

[0017] Figure 8 Illustrates a block diagram of a flowchart of an exemplary XYZ motion planner;

[0018] Figure 9 Illustrates examples of comfort benefits of XYZ motion planning.

[0019] Figure 10 Is a flowchart of another embodiment of a method for operating a vehicle.

[0020] Figure 11 Is a flowchart of yet another embodiment of a method for operating a vehicle. Detailed Description

[0021] In a current autonomous vehicle traveling along a road, a planning algorithm can plan a trajectory for passing through an upcoming section. Then, this planning can be implemented by a controller that controls one or more actuators in the vehicle. These trajectory planners mainly focus on selecting an optimal trajectory within the plane of the road surface, commonly referred to as XY planning. The selection of the optimal XY planning typically depends on various factors, including road geometry and lane markings, the positions and speeds of other vehicles, the presence of fixed or soft obstacles, and the positions of pedestrians. As used herein, the term "plane of the road surface" refers to a plane that is not necessarily horizontal but parallel to the nominal surface of the road. This plane does not include road surface defects or anomalies of the actual road, such as potholes, manhole covers, speed bumps, surface cracks, or frost heaves.

[0022] The inventors have recognized the advantages of considering out - of - plane motion (alternatively referred to herein as Z motion). When one or more vehicle wheels interact with road surface irregularities or discontinuities (e.g., potholes, bumps, manhole covers, cracks, uneven or missing pavement, or an abnormal road surface such as gravel), Z motion can be induced within the vehicle or a part of the vehicle (e.g., a wheel, a wheel assembly, a passenger compartment, a vehicle body, or a vehicle chassis). As used herein, the term "out - of - plane motion" refers to the motion of a vehicle or a part of the vehicle in a direction perpendicular to the plane of the road surface that is very close to the vehicle or the part of the vehicle.

[0023] In addition, the inventors have recognized that a more comprehensive motion plan that takes into account both potential out-of-plane Z motion and in-plane XY motion of the road can result in an optimal vehicle trajectory. In contrast, planning algorithms that do not adequately consider Z motion may drive along trajectories that can lead to increased discomfort, increased vehicle wear and tear, safety hazards, and / or other negative impacts. Additionally, the inventors have recognized that Z motion can be affected by other aspects of the vehicle or the vehicle's state (e.g., speed, mass, and center of gravity position) as well as the characteristics and capabilities of various vehicle systems (e.g., active suspension systems, semi-active suspension systems, or passive suspension systems, propulsion systems, braking systems, steering systems, and sensor systems).

[0024] Accordingly, in at least some operating conditions, a planning algorithm that takes into account both Z motion and XY motion, i.e., in-plane motion of the road surface (hereinafter referred to as an XYZ planner) can consider road surface features, the state of the vehicle, and / or the characteristics or capabilities of one or more systems on board the vehicle that can cause out-of-plane motion when performing optimal vehicle trajectory planning.

[0025] For example, the optimal XYZ trajectory of a vehicle with an active suspension system traveling at a first speed can be very different from the optimal XYZ trajectory of a vehicle with a semi-active or passive suspension traveling at the same or a different speed. Alternatively or additionally, the optimal trajectory of a vehicle can depend on other vehicle state parameters, such as, for example, the wear level of one or more actuators or the inflation level of one or more tires. Alternatively or additionally, the inventors have recognized that it can also be beneficial to provide optimal trajectory information to the driver or operator of a non-autonomous or semi-autonomous vehicle, for example, by using various communication channels such as ADAS. As used herein, the term "vehicle operator" or "operator" refers to a human driver and / or a computing device that manages aspects of the operation of the vehicle by using one or more actuators on board the vehicle. As used herein, the term "semi-autonomous vehicle" refers to a vehicle equipped with a controller that is capable of performing certain tasks, such as, for example, braking, accelerating, steering, and changing lanes, while allowing for manual intervention as needed. It is important to note that in a semi-autonomous vehicle, the controller can be a human operator or a computing device, where the human operator is capable of assuming control as needed.

[0026] In some embodiments of the vehicle, one or more motion planning algorithms running on one or more microprocessors can simultaneously determine an optimal XY plan and a Z trajectory, thereby deriving an optimal XYZ trajectory. Alternatively, in some embodiments of the vehicle, one or more motion planning algorithms can determine the optimal XYZ trajectory in a multi-step process. For example, the XYZ planner can first determine a plurality of feasible motion plans as candidate XY plans (e.g., more than one but less than 10 XY plans, more than 3 but less than 100 plans), and then determine the optimal XYZ trajectory by comparing the costs of the Z trajectories associated with the candidate XY plans. The appropriate number of candidate XY plans that can be selected by the motion planning algorithm can be outside the ranges specified above, as the present disclosure is not limited to the specified ranges. The number of candidate XY plans can be predetermined or determined during the planning process based on, for example, the characteristics of the road and / or the state of the vehicle. As used herein, the term "feasible motion plan" refers to a motion plan that complies with various relevant constraints but not necessarily all relevant constraints. A feasible motion plan can be a physically realizable plan that does not violate the operating limitations of the vehicle.

[0027] Additionally or alternatively, other factors that can be considered in the first or subsequent steps of selecting the optimal XYZ trajectory can include, but are not limited to: the local coefficient of friction of the road surface, the expected amount of energy that may be consumed by one or more vehicle systems (such as the suspension system, the propulsion system) along each candidate XYZ trajectory, and / or the amount of available energy such as on-board fuel or stored charge.

[0028] To control the X motion (i.e., the motion in the plane of the road surface (or in a plane parallel to the road surface) and aligned with the driving direction), there can be a control mechanism or actuator for the accelerator and / or brakes of the vehicle, or a method for alerting a human operator of the desired speed change. To control the Y motion (i.e., the motion in the plane of the road surface (or in a plane parallel to the road surface) and perpendicular to the driving direction), there can be a steering mechanism, or a means for alerting a human operator of the desired path to be taken. To control the Z motion (i.e., the motion perpendicular to the plane of the road surface), an actuation system can be present in the vehicle's suspension. A plan can be made for the optimal motion path, and an action can be taken if the actuator for implementing such an action is available.

[0029] In some embodiments, the planning for motion can be configured to minimize, for example, vehicle occupant discomfort, such as motion sickness or excessive exposure to vibration. The method can include: mapping areas on the road that may include road surface features that cause occupant discomfort, and using information about certain details and / or locations of those features, which can be in the form of a map for example, to calculate a path that minimizes or mitigates the expected occupant discomfort while respecting certain constraints and considering factors that affect the safety and comfort of one or more vehicle occupants related to in-plane motion and motion caused by in-plane movement. As used herein, the term "in-plane motion" refers to the motion of a vehicle or a part of a vehicle within the plane of the road surface.

[0030] In some embodiments, the first step of implementing the method may include generating a map. For typical road types in use today, aspects of the road or road events that may cause occupant discomfort along the road may be highly bimodal in nature. A bimodal road may have smooth or effectively smooth sections, followed by sections that include cracks, potholes, and / or other irregularities or discontinuities. The inventors have recognized that the complexity of vehicle trajectory calculations can be simplified by leveraging the bimodal nature of certain roads. This can be achieved by initially identifying aspects of the road that may cause road events that may result in certain effects above a predetermined threshold of those effects. The threshold can be set at an appropriate level as it can be used to reduce the complexity of the solution and thus can be set to a lower (or more sensitive) value when more complexity can be tolerated, such as when sufficient processing power is available, and can be set to a higher (or less sensitive) value when there is a desire to reduce complexity and / or the computational burden. In one embodiment, one or more vehicles driving on a bimodal road may record the locations on the road surface of any aspect that can be predicted to cause an event exceeding the impact threshold. Discomfort can be defined by evaluating its estimated impact on one or more occupants, such as by collecting sensor data and / or calculating metrics related to the impact on the occupants. Sensors can include, for example: accelerometers located near the occupants (e.g., on the seat rails), on the vehicle body, or on suspension components, on the wheels or steering knuckles; ride height measured between the wheels and the vehicle body; road profile measured by non-contact sensors such as lasers, LiDAR, radar, or camera devices; rate sensors on the vehicle or components; wheel speed sensors; and others. Metrics can include estimated energy, peak thresholds, peak-to-peak offsets, or calculating the derivative or integral of the measured signal and then applying metric calculations. Metrics can also include other calculations that can consider the occupants' sensitivity to specific frequencies, time history, and / or can include metrics that combine various signals to calculate a composite signal and apply metric calculations to the composite signal. By way of example, one or more body acceleration sensors can be combined to estimate the acceleration of the body above the wheel patch, and the ride height sensor can be combined with that signal to calculate wheel motion; the resulting wheel motion can be trimmed to a short window, and the total energy of the signal in the window can be used to estimate the relative impact on the occupants. As used herein, the term "road event" refers to the interaction or potential interaction of a vehicle or a part of the vehicle (e.g., the wheels of the vehicle) with a road surface defect or irregularity such as, for example, a pothole, manhole cover, speed bump, surface crack, or frost heave.As used herein, "bimodal road surface" refers to a road having one or more portions of a smooth road surface without perceptible defects and irregularities, and also having one or more portions having perceptible road surface defects or irregularities such as, for example, potholes, manhole covers, speed bumps, surface cracks.

[0031] In some embodiments, the intensity of a road event recorded on a map can be determined. As used herein, the term "intensity" refers to a measure of the impact on a vehicle and / or vehicle occupants and / or vehicle components as a result of a road event, such as, for example, an adverse effect, discomfort, or other objectionable effect. The intensity can be a single output or a combination of multiple outputs, such as, for example, a peak between multiple metrics associated with the event. The intensity can be, for example, the value of the wheel energy calculated as described above, or it can be any other suitable signal calculated from sensors and metrics.

[0032] A given intensity distribution can be associated with a location on the map. The location can be determined by any absolute or relative position measurement system. Absolute measurements can include a global navigation system (GNS) or similar device, while relative measurements can be relative to the road, for example, by using dead reckoning, road profile mapping, or visual mapping of road features such as lane markings on the road surface, or relative to objects along or near the road, for example, by using non-contact sensors such as LiDAR, radar, or visual sensors such as camera devices to detect and identify objects and estimate the distance of the vehicle from those objects. In some embodiments, the location along the road can be determined relative to the road profile, and the location across the width of the road can be determined relative to one or more lane markings.

[0033] Figure 1 Vehicle 10 is shown. The vehicle includes a body 12 that supports various components of the vehicle. As Figure 1 shown, the vehicle includes a microprocessor system 14 having one or more microprocessors that can communicate with various subsystems via a communication channel 16. It should be noted that in Figure 1 , although the microprocessor system 14 is shown as a single unit, it can include multiple microprocessors located at multiple locations within the vehicle, as the present disclosure is not limited in this regard. As Figure 1As shown, the vehicle may include an active suspension system having an active suspension actuator 18 that is operatively inserted between a wheel 20 (or a wheel assembly of the unsprung mass) of the vehicle and a body 12 (e.g., the sprung mass). In particular, the active suspension actuator 18 may be operatively inserted between each wheel of the vehicle and the body 12 such that a single actuator of the active suspension can independently control the vertical movement of a single wheel of the vehicle. Each actuator 18 may be configured to apply a force between the wheel 20 and the vehicle body 12. The actuator 18 may affect the movement response of the body 12 and, in particular, one or more vehicle movement characteristics. The vehicle may also include a braking system having brakes 22. The braking system may include independent brakes coupled to each of the wheels 20 such that braking force can be independently applied to each wheel. According to Figure 1 an embodiment, the vehicle may also include a forward-looking sensor 23. The forward-looking sensor may be, for example, one or more camera devices, LIDAR, radar, a combination thereof, or other sensors configured to sense forward-looking road information that may be utilized by one or more vehicle planners or controllers that may be located in the microprocessor system 14. Alternatively or additionally, previously collected forward-looking road information may be received at one or more microprocessors in the microprocessor system 14 from one or more local or remote databases.

[0034] According to Figure 1 an embodiment, the vehicle may also include a steering system 24 that, in the case of a vehicle being driven, includes a steering wheel 24a. The steering wheel 24a may form part of a user interface of the vehicle 10. The user interface may be used to provide user input to control various parts of the vehicle or to provide feedback to the user, such as haptic feedback. In some embodiments, the steering system 24 may include a rear steering system configured to control one or more rear wheels of the vehicle. Other user interfaces may also be used as the present disclosure is not limited in this regard.

[0035] As Figure 1 shown, the vehicle may pass on a road 26. As Figure 1 shown, the road may include a plane of a road surface 28, i.e., a nominal road surface, and road features 30. The road features 30 may cause movement or undulations perpendicular to the plane of the road surface 28.

[0036] Figure 2An exemplary intensity map that can be obtained in the above manner is shown. On road 101, it may include a center line path 102 that bends in the XY plane of the plane mapped to the road surface 101a (and thus, for example, follows the road vertical profile if the road changes elevation). In this embodiment, at discrete locations 103, there may be events that cause a vehicle to experience an intensity above a threshold. After multiple previous drives by one or more vehicles passing through event 103 with different lateral offsets, an intensity map as shown in Figure 2 can be generated. The map may contain detailed data on the intensity at each longitudinal location 103 that can be obtained and recorded as a function of the lateral position. If a vehicle is to drive on the road in Figure 2 and stay on the center line, it may encounter an event at the intensity marked at point 104. Thus, a map can be created, for example, based on crowdsourced data collected from one or more vehicles. Alternatively or additionally, the intensity profile can be generated based on data from one or more dedicated test vehicles; and / or based on images of the road and using visual recognition of important road events on the map. For example, such images can be obtained from a street view source or from a satellite (if available at a high enough resolution), or they can be collected by a dedicated fleet or through crowdsourcing from one or more vehicles. The map can also be obtained as an input from a map provider or a municipality or other entity.

[0037] Given this map, an optimized trajectory to be taken by the vehicle can be determined such that the intensity encountered by the vehicle is included in a cost function along with other metrics, where certain constraints can also be imposed. Examples of constraints that can be imposed can be, for example, that when driving along the optimal path, the vehicle may not leave the lane at any given point. For example, if the width of the lane at any given point is known or measured (or assumed to be a standard minimum lane width in cases where data is not available), and if the width of the vehicle is known (or assumed based on a typical vehicle width), then such a constraint can be implemented. Then, the maximum allowable offset from the center line can be determined, and the vehicle can be prevented from violating this constraint. Another example of a metric can be the total amount of deviation from the center line within a given amount of time, as this may disturb one or more occupants who are prone to motion sickness, for example. Thus, in some embodiments, under certain operating conditions, the maximum lateral acceleration caused by the vehicle when following a prescribed trajectory can be a constraint. A combination of the desired metrics can be constructed into a cost function that has relative weights applied to the various metrics, and these relative weights can be pre-computed or can be adjusted dynamically based on the driving situation. Thus, in this way, an optimal trajectory that minimizes a given cost function can be determined. An example of such a path is shown in Figure 3Shown as line 201. It should be noted that the optimization problem formulated herein includes costs associated with events on the road as described above. If the vehicle follows path 201 instead of path 102, it may experience a lower intensity from the road event, and thus the occupants may be more comfortable.

[0038] Figure 4 An exemplary intensity map is shown in a relative or absolute space along the road in the longitudinal direction and across the road in the transverse direction. The road in this coordinate system may be shown as a straight road because the abscissa in this figure follows the centerline of the road, and the ordinate is perpendicular to the road centerline. In this view, path 301 along the centerline of the road follows the abscissa, and the events are marked with intensity values such as 302, which have a position along the road and a lateral offset across the road for each measurement, as well as intensity values associated with each point not shown in this representation. If these values are collected using crowdsourced data from one or more vehicles, these values can be determined over time; or these values can be given inputs from an existing map. Given these values and the path, the optimization problem can be reduced to the problem of calculating the optimal lateral offset at each given point while optimizing the cost function described above and remaining within the constraints described above. The resulting optimal path may have a shape similar to 303, but may depend on the formulation of the cost function and the relative intensity values measured at each point.

[0039] In some embodiments, the road intensity can be measured based on the vehicle-based motion sensors as described above; in this case, the measured values can be normalized to avoid mismatches in the estimates. This can be done on each vehicle by comparing the estimates from the present vehicle with the estimates from a set of other vehicles. This can also be achieved by treating each intensity value as a relative value with respect to other events collected by the same vehicle. Additionally or alternatively, it can also be achieved through appropriate calibration and processing of the sensors to remove any bias introduced by a single vehicle. The road intensity can also be measured by non-contact or normalized sensors.

[0040] The effect of speed on intensity can be considered because the impact of a given road event on a given vehicle may be different at different speeds. Although the intensity caused by a road event may increase with increasing speed, this may not always be the case. For example, in the case of a pothole event of a particular size, at speeds above a certain value, the higher the speed of the vehicle, the less the vehicle may be exposed to the input from the pothole. This may be because the wheel interacting with the pothole may have less and less time to sink into the pothole.

[0041] Any given event may result in an intensity that varies with the speed of the vehicle. When calculating an optimal trajectory, information about this variation of intensity as a function of speed can be considered together with the current or planned driving speed, and the intensity can be associated with various events recorded in a map. For example, when the vehicle follows a given trajectory, the vehicle speed can be predicted to be relatively constant, and intensity values obtained at the predicted speed for various events on the given trajectory can be used to determine the optimal trajectory. In some embodiments, a speed map of intensity can be generated for each event, which will allow the expected intensity at the expected speed to be determined by interpolation or extrapolation. Using such a speed map and the current driving speed, the optimal trajectory at any given speed can be determined. In some embodiments, the speed can also be treated as a variable and an optimal profile and an optimal speed can be determined. To solve this problem, a deviation from a target speed or the total time taken to pass through can be considered in a cost function. In some embodiments, constraints related to, for example, a maximum allowable speed change can also be considered to reduce the impact of any speed change on the vehicle occupants. In some embodiments, this method can be used to optimize, for example, the passage over a large speed bump, where a lateral deviation may not effectively reduce the intensity of the event, but a reduction in speed near the speed bump can effectively improve occupant comfort.

[0042] Selecting an optimal trajectory can include minimizing or maximizing other properties or quantities, as the present disclosure is not limited in this regard. For example, in addition to or instead of occupant comfort, a desired goal can be minimum travel time, reducing the likelihood of motion sickness, or reducing expected damage or wear and tear on the vehicle or its components, or any other value that may be affected by the choice of vehicle trajectory (including speed) along a road. Undesired results can also include the vehicle being too close to the edge of any certain markings or lanes. For example, a cost associated with the distance from the lane edge can be included; approaching another vehicle, which may require an adjustment to the plan if the operator (computing hardware or human) detects such a vehicle. In the case of a vehicle being driven, a human driver can respond by counteracting the planned vehicle trajectory via the applied steering torque. In some embodiments, such user input can cause the trajectory planner to recalculate the optimal solution. Other undesired effects that can be included in the cost function can include: the perceived "wandering" of the vehicle, which is defined as the yaw or lateral movement of the vehicle in a particular frequency band or time that is sensitive to the occupant; total steering angle, rate, or torque; lateral acceleration due to the trajectory along the optimal path; specific expected vehicle motions such as the roll of the vehicle that the occupant or vehicle may be more sensitive to; and estimated component damage caused by high-intensity inputs. One or more of these factors can be considered at any given time, where the relative weights can be changed dynamically, prescribed by the user via a user interface or driving situation, or pre-computed by the developer or OEM to maintain consistency, or calculated by the microprocessor in any particular case.

[0043] In some embodiments, one or more road surface characteristics can be considered during XYZ trajectory or XY path optimization. For example, the road surface characteristics can be predicted or detected road surface grip or road friction. For example, predicted road surface grip can be derived from a crowdsourcing system that can map measured road friction characteristics to location and time, whereby a prediction algorithm can be used to extend the measurements in both time and location to cover the current location of the vehicle consuming the data. Road surface characteristics can also be derived from previous measurements and / or weather measurements taken at strategic or distributed locations, or can simply be derived from weather forecasts. If the expected road surface characteristics are known for at least one desired path in the plan, a decision can be made to include this knowledge in the cost function calculation of the path planner.

[0044] For example, a vehicle traveling along a road can access road friction predictions from a remote road friction prediction system. When a planning algorithm in the vehicle determines candidate XY paths, it can consider information about the road surface for each path. For example, when determining the cost of an associated trajectory, the friction coefficient or the predicted tire grip of each candidate path can be considered. Additionally or alternatively, in some embodiments, the road surface profile, the geometry of the road, the power, force, or strain required on one or more systems or components; and the safety of each path or trajectory can be considered when determining the cost of each path or trajectory. In some embodiments, the safety margin and the proximity of each path or trajectory to that margin, such as, for example, the proximity to other vehicles, the proximity to the expected vehicle limits in lateral or longitudinal grip, or the proximity to objects on or near the road. For each plan or trajectory, the required steering, accelerator / brake, and vertical components of the input can be calculated, where these inputs are available to a human operator or an autonomous controller, or the desired actions can be provided as guidance to a human driver or operator. When estimating the optimal path, such effort can be considered because it can involve costs in terms of comfort, safety, power, noise, or other factors that may affect the decision. For example, if an active suspension system is available, the expected low-friction surface can be mitigated by a change in the vertical force application at an appropriate time, and the application of that force can be considered when calculating the optimal path or trajectory.

[0045] An optimal path or trajectory can then be selected based on one or more of the above factors and actions can be taken accordingly to provide guidance or input to the vehicle controller or vehicle operator.

[0046] In some embodiments, XYZ planning can be used to calculate optimal trajectories in the X, Y, and Z directions to improve vehicle performance including safety and comfort. Without wishing to be bound by theory, in some embodiments, an exemplary XYZ motion planning problem can be formulated as the following optimization problem:

[0047]

[0048] Subject to

[0049]

[0050]

[0051] In the above optimization problem formula, s(t) is a vector of vehicle states, including but not limited to vehicle speed, steering angle, position, heading, suspension height, suspension speed; u(t) is a vector of vehicle control inputs, including steering control input, speed control input, and active forces applied to each suspension; the differential equation describes vehicle dynamics, which can be represented by a 14-degree-of-freedom model, a bicycle model with multiple quarter-car models, or other models. r is the road surface, which is defined as a function of different positions in the road plane. The time horizon for motion planning can be from 0 to T, and the terminal time T can also be a variable to be optimized. The plan can be a sequence of data sampled at discrete time points. At t = 0, the planned state starts from the current state condition s 0 of the vehicle. Throughout the range, the vehicle states s(t) and control inputs u(t) can satisfy specific constraint conditions. For example, there can be a limit of 10 cm physical constraint on how far the suspension can travel up or down. There can also be a force constraint on the maximum level of active force that the suspension system can provide. In this optimization, there can also be other constraints, such as maximum steering angle, maximum allowable longitudinal and lateral accelerations. The cost function can be defined as J(s, u, T, r). The cost is a combination of different costs from the X, Y, and Z directions. For example, the cost function can take the following form:

[0052]

[0053] where v 0 is the nominal speed maintained by the vehicle, y 0 is the nominal lateral displacement of the vehicle, z is the average vertical speed of the vehicle, and f is the total force command applied to the suspension. The variables w v , w y , w z , w f and w T are weights to be designed or adjusted. It should be noted that if the cost function is expressed as a function of vehicle states, control inputs, and time horizon, the cost function can be represented in various forms.

[0054] It should be noted that in some embodiments, the path in the XY plane can be represented by a series of discrete path points [(x 1 , y 1 ), (x 2 , y 2 ), (x N , y N) consists, where N is a positive integer, or consists of a pair of continuous functions [x(s), y(s)], where s≥0 is the longitudinal distance of the road. A trajectory is a sequence of high-dimensional vectors. In continuous form, a trajectory can be a vector function of time and can be defined as:

[0055]

[0056] where t≥0 is time, and h is the vehicle heading, v is the vehicle speed, z i is the vertical displacement of the i-th bend of the vehicle relative to the road plane, is the vertical body speed at the i-th bend, and f i (t) is the active suspension control force at the i-th bend, r i (t) is the road height at the i-th wheel. Based on the model under study, more elements can be added to the trajectory vector.

[0057] As a non-linear optimization problem, on-vehicle XYZ motion planning may not be effectively implemented by commercially available general non-linear optimizers for several reasons: First, the XYZ motion planning problem involves considering the complex dynamics of the vehicle, including acceleration, deceleration, turning, suspension, and other physical constraints. Without being bound by theory, these dynamics lead to a high degree of non-linearity and non-convexity, and thus general optimizers may have difficulty effectively handling such complexity. Second, by adding Z motion, the motion planning problem operates in a high-dimensional state space, which can include the position, speed, orientation, suspension state, and road surface information of the vehicle. Optimizing in a high-dimensional space can be challenging, and as the dimension increases, it becomes increasingly difficult. Third, the motion planning of the vehicle usually needs to be performed in real-time or near real-time to ensure the safety and responsiveness of the vehicle. For example, in some embodiments, the motion planner can calculate the plan every 0.1 seconds. General optimizers may not be able to provide a solution within the required time frame, especially when dealing with complex high-dimensional problems. Fourth, the vehicle must comply with various constraints, such as collision avoidance, road boundaries, vehicle limitations (e.g., turning radius, maximum speed, maximum suspension travel, maximum active suspension force command). Incorporating these constraints into the optimization problem makes the optimization problem more complex and difficult for general optimizers to handle. Fifth, safety may be the most important in vehicle motion planning, general optimizers may not provide sufficient certainty of safety, and having a method that can consider safety constraints and provide provably safe solutions is crucial. Sixth, the motion planning problem usually needs to be solved in real-time on resource-constrained hardware such as on-vehicle computers. Without being bound by theory, it is believed that general non-linear optimizers may be computationally too intensive to operate effectively in such an environment.

[0058] Figure 8An exemplary sample-based XYZ motion planning method that can be used to address these challenges is shown. First, block 701 can select a set of XY candidate path plans or trajectories without considering out-of-plane Z motion. Similarly, without wishing to be bound by theory, this can be achieved by using a fourth- or fifth-order polynomial to connect the vehicle's current position to several possible final positions on the road. It should be noted that for the same final position, different XY trajectories or path plans can be generated by, for example, considering different speed profiles. For example, for each final position, three different final speeds can be predicted, which can result in at least three different speed profiles during the traversal of the trajectory. For each of the XY trajectories created at 701, at block 702, multiple Z trajectories can be obtained to produce multiple XYZ trajectories. In some embodiments, at block 703, all XYZ trajectories can be tested against a set of safety criteria such as, for example, maximum lateral acceleration or suspension actuator force or suspension travel. Certain XYZ trajectories can then be eliminated at block 703. The remaining trajectories can then be evaluated at block 708 to calculate their associated costs. Once all the costs for each of the trajectories have been determined at block 708, they can be sorted based on their costs. At block 706, a check can be performed to determine if there are any remaining trajectories, and if there are any remaining trajectories, a collision check can be performed on the lowest-cost trajectory in 709. In some embodiments, the collision check can be based on simulating the host vehicle and surrounding vehicles and detecting whether their future trajectories can coincide or effectively coincide at any point. In some embodiments, the collision check can require a large amount of computational resources and computational time, and it can be beneficial to perform the collision check on a limited number of trajectories. In this exemplary illustration, the collision check can be performed on the trajectory with the lowest cost, as shown in 709. If the trajectory passes the collision check, it can be determined at block 710 that it is the optimal plan. In the case where a potential or possible collision with a tested trajectory is detected at block 705, the trajectory can be discarded at block 704, and the trajectory with the next lowest cost can be tested at block 709. In some embodiments, when there are no remaining trajectories to check, as can be detected at block 706, the motion planner may encounter a situation where it fails to find a feasible plan. In such a case, the fault handling block 707 can intervene. For example, it can request a human operator to control the vehicle, or it can switch to an avoidance motion planner to create an avoidance motion to mitigate the risk of a potential accident. As used herein, the term "path" refers to a continuous curve or sequence of path points that connects an initial state to a target state, which is defined as a specific geographical location or predefined point in space. As used herein, the term "trajectory" refers to a time-parametrized representation of a vehicle's path, which includes any accompanying Z motion.A trajectory can specify the path of a vehicle, including any Z motion and details about the vehicle's state such as, for example, speed, acceleration, steering angle, suspension dynamics, etc. As used herein, the term "motion planning" refers to a sequence of plans for one or more paths selected by an operator of the vehicle.

[0059] Figure 5 Another exemplary implementation of a sample-based multi-level implementation is shown in the block diagram of. At block 405, road surface data and a perception of the vehicle's environment can be received, for example, from a map or database (which may contain preview information of a previously obtained road surface) or from a perception software module and sensors such as LiDAR, camera devices, and / or rangefinders. A scan of the road surface can be performed at module 402 to detect road defects or anomalies larger than a specified threshold size, such as, for example, bumps and potholes. At module 401, such defects or anomalies can be marked as soft obstacles in a representation of the encoded road. Software module 408 is a path planner that optimizes the XY path to avoid hard obstacles encoded at module 403, while attempting to bypass soft obstacles encoded at module 401 if possible. As used herein, the term XY path refers to a path in the plane of the road surface. In some implementations, the process in module 407 can be applied to a moving window along the longitudinal direction of the road and create sample paths. Subsequently, an optimal sample path that effectively avoids obstacles can be selected. Then, the process can continue with a new data window. The output of 408 can be the optimal XY path as shown in 409. Using this path, software module 410 can plan the optimal Z motion and its speed profile. One implementation of 410 can be to use a speed sampler 416 to generate multiple speed profiles for the optimal XY path 409. To create the speed profiles, multiple possible terminal speeds can be selected. Each of these terminal speeds can be blended into the current vehicle speed. Using the optimal XY path and the sampled speed profiles, a set of XY trajectories 412 can be created. Then, a vertical motion planner 415 can calculate the optimal Z motion for each trajectory in the set of XY trajectories 412. Thus, a set of XYZ trajectories 415 can be created. Finally, an optimal trajectory 411 can be selected based on its cost. The selection process at module 413 can also include as combined with Figure 8Collision checking and safety checking as described by the method shown. As used herein, the term "the vehicle" refers to a vehicle equipped with motion planning technology and configured to navigate and interact with its environment. It can use various sensors and other appropriate technologies, such as mapping and positioning, to sense its environment. As used herein, the term "perception software module" refers to one or more algorithms configured to process sensor data (such as data collected from accelerometers, camera devices, LiDAR, and radar inputs) to characterize and / or interpret the vehicle's surrounding environment. As used herein, the term "soft obstacle" refers to an obstacle that the vehicle's wheels can pass through, such as by driving through it or over it, with at least some adverse effects but without disabling the vehicle. Soft obstacles can include obstacles such as potholes, manhole covers, speed bumps, broken road surfaces, cracks in the road surface, and frost heaves, rough roads, or roads covered with gravel.

[0060] It should be noted that compared with Figure 8 the Figure 5 embodiment outlined in may be computationally more efficient, but does limit the available solution space for motion planning. It may be more suitable for implementation in vehicles with more limited computational capabilities, although at the cost of achieving slightly less optimal performance.

[0061] Figure 6 An example of the safety benefits of XYZ motion planning is shown. In driving scenario 501, an autonomous vehicle 509 equipped with an active suspension system is traveling in the right lane. The road in front of vehicle 509 curves to the right. There is a static obstacle 507 blocking the current lane of the vehicle. Therefore, the vehicle can create an XYZ motion plan 505 for a lane change to the left lane. Once the vehicle moves to the left lane, it can determine that there is a slow-moving truck 504 and may need another lane change to get back to the right lane. In Figure 6 the scenario shown, there is not enough time to decelerate. Staying in the left lane may result in an accident between vehicle 509 and truck 504. It is worth noting that there is a large depression 508 in the road surface on the left side of the left lane. The XYZ plan created by the vehicle can consider the road surface data and may have created a plan to lower the center of gravity of the vehicle body accordingly to avoid rollover caused by large lateral accelerations when passing through the depression. In scenario 502, the vehicle 510 has executed the XYZ plan and successfully passed through the road surface depression. Alternatively, in scenario 503, when only using the XY plan 506, the vehicle may fail to lower its center of gravity near the road surface depression. As a result of this failure, vehicle 511 may have been at a higher risk of rollover when passing through the road surface depression.

[0062] Figure 9Shows another example of the safety benefits of XYZ motion planning. In both scenarios 801 and 802, the same bump 803 exists on the same road. In scenario 801, the vehicle 804 has an XYZ motion planner that knows about the bump 803 in the road surface. Since the speed bump spans the entire width of the road, the motion planner can create a plan 806 that does not change the vehicle's lateral displacement (e.g., lane change) but decelerates the vehicle so that the active suspension system will be able to provide sufficient active force to lift the wheels and maintain the body in a stable vertical position when passing over the bump 803. In scenario 802, the vehicle 804 is only equipped with an XY motion planner, and the vehicle 804 may not be able to consider various trajectories when passing over the bump 803 because there is no feasible plan to avoid the obstacle. Therefore, it can ignore the existence of the bump 803 and implement the trajectory 807 without decelerating. This may cause a greater or more intense impact at the speed bump, making the ride uncomfortable and potentially damaging the vehicle.

[0063] The vehicle can move in the X direction along the driving direction in the plane of the road, move laterally in the Y direction, and move perpendicular to the plane of the road in the Z direction. The control device for controlling the vehicle's function in the X direction can include a brake for decelerating the vehicle and a propulsion system such as an engine and a motor for accelerating the vehicle. Other devices that can affect the vehicle speed can include, for example, friction devices, aerodynamic devices, or drag devices. The control device for controlling the vehicle's function in the Y direction can include a steering system on the front axle, rear axle, or individual wheels, and an aerodynamic device or an inertial device capable of generating a lateral force on the vehicle or the wheels, and can include a braking system capable of controlling the vehicle's yaw by strategically applying braking force. The control device for controlling the vehicle's motion in the Z direction can include an active suspension system; a semi-active suspension system; an active and semi-active roll control system; an inertial device; an aerodynamic device; a suspension spring modification device, including an air spring, a spring seat adjustment device, a multi-chamber air spring, or a mechanical device for modifying the spring stiffness.

[0064] It should be noted that in the context of the present disclosure, road surface features are defined to include: a road profile as a three-dimensional map that may be used for the left and right wheel tracks, or for a single track, or for the entire road surface; road events such as individual road sections that exhibit a shape, profile, content, or layout satisfying certain characteristics, such as, for example, potholes, speed bumps, rough road sections, flat road sections, inclined roads, etc.; road surface variations, including surface grip or friction, surface composition or material type, surface roughness, or surface coverings including standing water, ice, leaves, gravel, snow, or others.

[0065] As used herein, the term "cost function" refers to a function that associates a measure of undesirability with a potential trajectory or path. A cost function can take into account factors such as, for example: the safety of the vehicle and / or its occupants; avoiding collisions with other vehicles, pedestrians, and / or obstacles; energy consumption; travel time; occupant comfort; violations of traffic rules; wear and tear of specific components; or environmental impacts. For example, the cost of a particular potential path that a vehicle might take can include one or more discomfort measures related to the apparentness of road events in the path to the occupants and the degree of motion sickness that such a path might cause. The cost can include a function related to the degree of safety of the vehicle while performing the path, such as considering the surrounding traffic, the road grade and the tendency of the vehicle to roll over, the road friction and the tendency of the vehicle to reach its road grip limit, the tendency to startle an operator if a human operator is involved, or the tendency to confuse a computing system if such a system is involved. For example, the cost can include a function related to the expected energy consumption of a particular path, which can be particularly relevant in an electric vehicle as it will reduce the driving range. The energy consumption can be affected by one or more components of the vehicle such as any motors, pumps, or friction elements involved in performing on the desired path. The cost can also include a function related to the expected wear and tear on components or the vehicle, including for example tire wear, shock absorber wear, or motor wear, whereby for example if all other elements considered for the cost function are equal, less wear on the components can be preferably induced.

[0066] The XYZ motion planning method disclosed above is not limited to autonomous vehicles. It can also be integrated into speed control features such as adaptive cruise control (ACC) and steering control features such as lane centering control (LCC). Additionally, motion planning can be used in a recommendation system so that a human operator can, for example, steer in a particular direction and / or accelerate or decelerate.

[0067] Figure 7An embodiment of the system architecture of a vehicle control system that may include an XYZ motion planner is shown. The planner software stack 604 may include three layers: A route planner 603 that determines an optimal route from point A to point B may consider the overall characteristics of multiple route options, such as, for example, the average roughness and / or representative surface friction of each route considered during the optimization process. Note that the route optimization problem may not consider the vehicle dynamics. Instead, it may assign weights based on the overall, average, or representative road surface conditions of each road segment in each route considered. The optimal solution may be the route with the lowest total composite weight of all road segments considered. Route planning may occur at the start of a trip or before the start of a trip, at which time the vehicle operator, occupant, or positioning system may determine the starting point and the operator or occupant may determine the destination of the entire route. If the vehicle deviates too far from a pre-planned route, the system may also perform re-planning of the route. Once the route is determined, the behavior planner 602 may run intermittently, continuously, or effectively continuously (e.g., at approximately 5 Hz) to make high-level decisions, such as deciding to change lanes, or to activate specific control strategies to mitigate the vehicle's performance over potholes. These types of decisions may be made in the vehicle during driving because they may depend on the vehicle's current state and its surroundings, which may be derived from sensor 605 processed by a perception software module. The third layer in the planning software is the XYZ motion planner 601, which generates a continuous or time-discrete trajectory that describes the optimal vehicle state and control inputs for the next planning horizon (e.g., from the current time of planning to the next 5 seconds). For a fully autonomous vehicle, a human operator input 610 may not be necessary because the motion plan calculated by the motion planner 601 may be executed by the controller 611. For example, throttle and brake commands may be calculated based on a proportional-integral (PI) controller to track a reference speed curve by comparing the reference speed and the actual vehicle speed reported by sensor 605. Steering wheel control inputs may be calculated by using, for example, a pure pursuit algorithm to track an XY path. Reference vertical motion may be tracked by calculating appropriate force commands to an active suspension system. The force commands may be a combination of a feedforward control signal and a feedback control signal. The feedforward control signal may be determined based on the planned force commands in the motion plan, and the feedback control signal may be determined based on instantaneous vehicle sensor data, for example, using a skyhook control algorithm. Then, the control signals calculated in 611 may be sent to the actuators in the vehicle 607. For a vehicle that is not fully automated or if a human operator is allowed or required to operate, the human operator may override the controller 611 and the actuators 607 or provide additional inputs to them. For example, the human operator may set a different reference speed to replace the reference speed from the plan. Additionally, the human operator may directly turn the steering wheel to change the driving path of the vehicle.In situations where a human operator has full control of the vehicle, motion planning may not be automatically performed by the controller. The calculated motion plan can be provided to the operator as a recommendation or an alert. For example, while displaying the current vehicle speed to the operator, the in-vehicle system can also show the operator what the currently recommended optimal speed is. Additionally, a head-up display system can be used in the vehicle to show the operator the recommended driving route and the estimated future path of the vehicle if the vehicle maintains its current speed and steering. As a result of this guidance, comfort and safety can be improved. Note that a human operator typically will not be able to directly control the actuators on the Z motion, and it is typically controlled by a feedback controller and a feedforward controller. As used herein, the term "route" refers to a selection of a continuous road segment that can be used as an input to a motion planner or a behavior planner.

[0068] To develop a feasible plan, the planner software stack 604 may need to determine the current position of the vehicle with the help of the localization module 608. Additionally, the planner software stack 608 can also rely on a map or a database to provide information for planning purposes. In particular, the XYZ motion planner 601 can use road surface data, which can be provided by data stored in the map 609, from the perception module 605, and / or from the database.

[0069] It should be noted that in the present disclosure, "route planning" refers to a plan that lasts for several minutes or longer (e.g., 5 minutes or longer). In contrast, "motion planning" or "feasible motion planning" is designed to be implemented within a shorter time period (e.g., less than 5 minutes or 1 minute or shorter). As used herein, a "short-term motion plan" is a motion plan that can be immediately implemented and can have a duration of one minute or shorter after implementation.

[0070] Figure 10A flowchart of another embodiment of a method for operating a vehicle. At block 900, information about the road ahead is received at a processor in the vehicle. For example, the information can be received from a remote or on-vehicle database or from a forward-looking sensor. At block 902, several feasible in-plane XY motion plans for moving forward along the road are developed. These plans can be short-term plans (e.g., the duration of the plan can be less than 2 minutes). At block 904, a trajectory can be developed for each of the feasible XY motion plans, which takes into account the expected Z motion that will be caused in at least a portion of the vehicle by road surface irregularities when a given plan is implemented. It should be noted that multiple trajectories can be developed for each feasible XY motion plan based on using different predicted vehicle speed curves. Notably, different speed curves of the vehicle can result in significantly different Z motions on the same road surface. Block 906 involves estimating the cost associated with implementing each trajectory. At block 908, if the lowest-cost trajectory is unlikely to result in a collision (e.g., at a probability level above a threshold) and complies with one or more operating constraints, the lowest-cost trajectory can be selected. At block 910, the selected trajectory is implemented by the vehicle operator, who can be a human or an electronic controller. Note that each trajectory developed at block 904 can be checked for the likelihood of a collision. However, due to the computational intensity of collision detection, it may be more efficient to perform this check on a reduced set of the lowest-cost trajectories.

[0071] Figure 11 A flowchart of yet another embodiment of a method for operating a vehicle. At block 920, the system collects information about the predicted intensity distribution of potential adverse effects that may occur when the vehicle encounters a road event at a specific longitudinal position along the road. This information is based on data previously collected (e.g., crowdsourced) from various vehicles that have experienced these road events at different lateral offsets. At block 922, one or more operating constraints on actions that may affect the vehicle are received at a processor in the vehicle. At block 924, a cost function is used to determine the cost associated with traveling through each of the longitudinal positions. This calculation takes into account the lateral offset at the time of occurrence. At block 926, a path is selected that can be followed while complying with the received constraints and that minimizes the total cost of traveling through a series of longitudinal positions. The method involves using data from various vehicles to predict potential adverse effects and then using a cost-based approach to select the optimal path for the vehicle while considering operating constraints.

[0072] The above-described embodiments of the technology described herein can be implemented in any of a number of ways. For example, an embodiment can be implemented using hardware, software, or a combination thereof. When implemented in software, the software code can be executed on any suitable processor or collection of processors, whether disposed in a single computer or distributed among multiple computers. Such a processor can be implemented as an integrated circuit having one or more processors in the integrated circuit components, including commercially available integrated circuit components known by such names in the art, such as CPU chips, GPU chips, microprocessors, microcontrollers, or coprocessors. Alternatively, the processor can be implemented in a custom circuit system such as an ASIC or in a semi-custom circuit system derived by configuring programmable logic devices. As another alternative, the processor can be part of a larger circuit or semiconductor device (whether commercially available, semi-custom, or custom). As a specific example, some commercially available microprocessors have multiple cores such that one or a subset of those cores can constitute the processor. However, the processor can be implemented using any suitable format of circuit system.

[0073] In addition, it should be recognized that a computer can be implemented in any of a variety of forms, such as a rack-mounted computer, a desktop computer, a laptop computer, or a tablet computer. Additionally, a computer can be embedded in a device that is not typically considered a computer but has suitable processing capabilities, including a personal digital assistant (PDA), a smart phone, or any other suitable portable or stationary electronic device.

[0074] Furthermore, a computer can have one or more input and output devices. Additionally, these devices can be used (among other things) to present a user interface. Examples of output devices that can be used to provide a visual presentation for output include a printer or a display screen, and examples of output devices that can be used to provide an audible presentation for output include a speaker or other sound generating device. Examples of input devices that can be used for a user interface include a keyboard and a pointing device such as a mouse, a touchpad, and a digital panel. As another example, a computer can receive input information by voice recognition or in other audible formats.

[0075] Such computers can be interconnected by one or more networks in any suitable form, including a local area network or a wide area network, such as a corporate network or the Internet. Such networks can be based on any suitable technology and can operate according to any suitable protocol and can include wireless networks, wired networks, or fiber optic networks.

[0076] In addition, the various methods or processes outlined herein may be encoded as software that can be executed on one or more processors employing any of a variety of operating systems or platforms. Additionally, such software may be written using any of a number of suitable programming languages and / or programming or scripting tools, and may also be compiled into executable machine language code or intermediate code that is executed on a framework or virtual machine.

[0077] In this regard, the embodiments described herein may be implemented as a computer-readable storage medium (or multiple computer-readable media) (e.g., computer memory, one or more floppy disks, optical discs (CDs), optical disks, digital video discs (DVDs), magnetic tapes, flash memories, circuit configurations in field-programmable gate arrays or other semiconductor devices, or other tangible computer storage media), the computer-readable storage medium encoded with one or more programs that, when executed on one or more computers or other processors, perform the methods implementing the various embodiments described above. As is apparent from the foregoing examples, a computer-readable storage medium can retain information for a sufficient time to provide computer-executable instructions in a non-transitory form. Such a computer-readable storage medium or media can be transportable such that one or more programs stored thereon can be loaded onto one or more different computers or other processors to implement the various aspects of the present disclosure discussed above. As used herein, the term "computer-readable storage medium" encompasses only non-transitory computer-readable media that can be considered to be a manufacture (i.e., a manufactured article) or a machine. Alternatively or additionally, the present disclosure may be implemented as a computer-readable medium other than a computer-readable storage medium, such as a propagated signal.

[0078] The term "program" or "software" is used herein in a general sense to refer to any type of computer code or set of computer-executable instructions that can be used to program a computer or other processor to implement the various aspects of the present disclosure discussed above. Additionally, it should be understood that, according to one aspect of this embodiment, one or more computer programs that, when executed, perform the methods of the present disclosure need not reside on a single computer or processor, but may be distributed in a modular fashion among a number of different computers or processors to implement the various aspects of the present disclosure.

[0079] Computer-executable instructions can take many forms, such as program modules executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Generally, in various embodiments, the functions of program modules can be combined or distributed as desired.

[0080] In addition, the data structure can be stored in a computer-readable medium in any suitable form. For the sake of simplicity of illustration, the data structure can be shown as having fields related to the positioning in the data structure. Such a relationship can also be achieved by allocating storage of fields with positioning in a computer-readable medium, which conveys the relationship between the fields. However, any suitable mechanism can be used to establish the relationship between the information in the fields of the data structure, including by using pointers, tags, or other mechanisms for establishing the relationship between data elements.

[0081] Aspects of the present disclosure can be used alone, in combination, or in various arrangements not specifically discussed in the embodiments described above, and thus are not limited in their application to the details and arrangements of the components set forth in the foregoing description or illustrated in the drawings. For example, aspects described in one embodiment can be combined with aspects described in other embodiments in any manner.

[0082] In addition, the embodiments described herein can be implemented as methods for which examples have been provided. The actions performed as part of the method can be sequenced in any suitable manner. Accordingly, embodiments can be constructed in which the actions are performed in an order different from that illustrated, which can include performing some actions simultaneously, even if those actions are shown as sequential actions in the illustrative embodiments.

[0083] In addition, some actions are described as being taken by a "user". It should be understood that the "user" does not have to be a single individual, and in some embodiments, the actions attributable to the "user" can be performed by a group of individuals and / or individuals in combination with computer-aided tools or other mechanisms.

[0084] Although the present teachings have been described in conjunction with various embodiments and examples, it is not intended to limit the present teachings to such embodiments or examples. On the contrary, as will be understood by those skilled in the art, the present teachings include various alternatives, modifications, and equivalents. Accordingly, the foregoing description and drawings are provided by way of example only.

Claims

1. A method of operating a vehicle, the method comprising: driving along a road; receiving information about a section of the road ahead of the vehicle, wherein the information includes data about the surface of the road ahead of the vehicle's current position; based on the received information, using an algorithm to develop a plurality of feasible motion plans for moving forward from the vehicle's current position; developing at least one trajectory for each of the plurality of feasible motion plans, wherein at least one of the trajectories takes into account out-of-plane motion caused by one or more anomalies in the road surface; for each of the plurality of feasible motion plans, predicting the cost of driving along each of the at least one trajectories; selecting a trajectory at least in part based on the cost; providing the selected trajectory to a vehicle operator; and operating the vehicle by implementing the selected trajectory.

2. The method according to claim 1, wherein, the vehicle operator is selected from the group consisting of a computing device and a person.

3. The method according to any one of claims 1 to 2, wherein, at least a portion of the received data is received from a database including previously collected information about the road.

4. The method according to any one of claims 1 to 3, wherein, at least a portion of the received data is received from a forward-looking sensor on board the vehicle.

5. The method according to any one of claims 1 to 4, wherein, the vehicle is a semi-autonomous vehicle.

6. The method according to any one of claims 1 to 5, wherein, the data about the surface of the road includes data about road surface anomalies selected from the group consisting of potholes, speed bumps, cracks in the road surface, manhole covers, and storm drains.

7. The method according to any one of claims 1 to 6, wherein, predicting the cost is based on factors selected from the group consisting of energy consumption, travel time, occupant comfort, traffic rule violations, wear and tear of components, safety, and environmental impact.

8. The method according to any one of claims 1 to 7, wherein, the plurality of feasible motion plans do not include a plan in which the probability of collision with another vehicle is greater than a threshold.

9. The method according to any one of claims 1 to 8, wherein, the plurality of feasible motion plans do not include a plan in which the probability of collision with an obstacle.

10. A method of operating a vehicle, the method comprising: driving along a road; receiving information about a section of the road ahead of the vehicle, wherein the information includes data about the surface of the road ahead of the vehicle's current position; based on the received information, using an algorithm to develop a plurality of feasible motion plans for moving forward from the vehicle's current position; developing at least one trajectory for each of the plurality of feasible motion plans, wherein at least one of the trajectories takes into account out-of-plane motion caused by the road surface; For each of the plurality of feasible motion plans, predict the cost for traveling along each of the at least one trajectory; Determine that the probability of a collision with another vehicle when implementing the lowest-cost trajectory is greater than a threshold; and Operate the vehicle by implementing a trajectory in a next lowest-cost trajectory in which the probability of the collision is lower than the threshold.

11. The method according to claim 10, wherein, the vehicle operator is selected from the group including a computing device and a person.

12. The method according to any one of claims 9 to 11, wherein, at least a part of the received data is received from a database including previously collected information about the road.

13. The method according to any one of claims 9 to 12, wherein, at least a part of the received data is received from a forward-looking sensor on board the vehicle.

14. The method according to any one of claims 9 to 13, wherein, the vehicle is a semi-autonomous vehicle.

15. The method according to any one of claims 9 to 14, wherein, the data about the surface of the road includes data about road surface anomalies selected from the group including potholes, speed bumps, cracks in the road surface, manhole covers, and stormwater grates.

16. The method according to any one of claims 9 to 15, wherein, predicting the cost is based on factors selected from the group including energy consumption, travel time, occupant comfort, violations of traffic rules, wear and tear of components, safety, and environmental impact.

17. A method of operating a vehicle, the method comprises: Traveling along a road; Receiving information about a section of the road ahead of the current position of the vehicle; Based on the received information, selecting a trajectory having a duration of less than two minutes, wherein the trajectory includes both XY motion and Z motion; Providing the trajectory to a vehicle operator; and Operating the vehicle by implementing the trajectory.

18. The method according to claim 17, wherein, the duration is less than one minute.

19. The method according to claim 17, wherein, the duration is less than thirty seconds.

20. A method of operating a vehicle, the method comprises: Traveling along a road; Receiving information about the lateral distribution of the expected intensity of adverse effects on the vehicle at a series of discrete longitudinal positions on the road; Receiving at least one constraint that restricts the operation of the vehicle; Calculating a cost function based on the intensity and the at least one constraint; and Passing through each of the longitudinal positions at a point determined based on the cost function.

21. The method according to claim 20, wherein, the at least one constraint is selected from the group including prohibiting leaving the driving lane, deviating from the center line of the driving lane, and maximum lateral acceleration.