XYZ motion planning for vehicles
The XYZ motion planning algorithm addresses the neglect of out-of-plane motion in autonomous vehicles by integrating Z motion into trajectory planning, enhancing safety and comfort by optimizing vehicle trajectories to account for road irregularities and system characteristics.
Patent Information
- Application Number
- JP2025518232
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-09-28
- Filing Date
- 2023-09-28
- Publication Date
- 2025-10-03
AI Technical Summary
Current autonomous vehicle trajectory planning algorithms primarily focus on XY motion within the plane of the road surface, neglecting out-of-plane motion induced by road surface irregularities, which can lead to increased discomfort, wear, and safety hazards.
Implementing an XYZ motion planning algorithm that considers both XY and Z motion, incorporating road surface features, vehicle conditions, and system characteristics to determine optimal vehicle trajectories, using microprocessors to calculate and select trajectories that minimize adverse effects.
Enhances vehicle safety and comfort by optimizing trajectories to account for road anomalies, reducing wear and tear, and improving overall vehicle performance.
Smart Images

Figure 2025532894000001_ABST
Abstract
Description
[Technical Field]
[0001] Related Applications
[0001] This application claims the benefit of priority under 35 U.S.C. Section 119(e) of U.S. patent application Ser. No. 63 / 410,815, filed September 28, 2022, the disclosure of which is incorporated herein by reference in its entirety.
[0002] Field FIELD OF THE INVENTION
[0002] The disclosed embodiments relate to controlling the motion of a vehicle as it travels along a road. [Background technology]
[0003] background
[0003] Autonomous vehicles, such as robots and autonomous automobiles, currently in use typically utilize route planning algorithms to navigate factory floors or public roads. These algorithms select a route to a destination that avoids collisions with other vehicles or obstacles. The route planning process typically involves analyzing real-time data about the vehicle's environment collected by one or more sensors. Summary of the Invention [Means for solving the problem]
[0004] overview
[0004] In some aspects, techniques described herein relate to operating a vehicle, including traveling along a road and receiving information regarding a segment of the road ahead of the vehicle, the information including data regarding the surface of the road ahead of the vehicle's current position (e.g., information regarding potholes, speed bumps, manhole covers, cracks in the road surface, and frost blisters); using an algorithm to develop a plurality of feasible motion plans for moving forward from the vehicle's current position based on the received information; developing at least one trajectory for each of the plurality of feasible motion plans (which may exclude trajectories that may result in collisions with other vehicles, pedestrians, and obstacles), at least one of the trajectories taking into account out-of-plane motion induced by the road surface; estimating a cost of traveling along each of the at least one trajectory for each of the plurality of feasible motion plans; selecting a trajectory based at least in part 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 database (remote or on-board) containing pre-collected information about roads, which may be obtained by crowdsourcing or from one or more forward-facing sensors onboard the vehicle. The vehicle may be fully autonomous, semi-autonomous, or manually driven. The costs may be based on, for example, energy consumption, travel time, occupant comfort, violation of traffic rules, component wear and tear, safety, and / or environmental impact.
[0005]
[0005] In some aspects, the techniques described herein relate to operating a vehicle, including moving along a road and receiving information regarding a segment of the road ahead of the vehicle's current position, the information including data regarding road surface characteristics that may induce out-of-plane motion (e.g., information regarding potholes, speed bumps, manhole covers, cracks in the road surface, and frost blisters), selecting a trajectory having a short duration (e.g., less than 30 seconds, less than 1 minute, and less than 2 minutes, etc.) based on the received information, the trajectory including 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.
[0006]
[0006] In some aspects, the techniques described herein involve operating a vehicle including moving along a roadway, receiving information regarding the lateral distribution of the intensity of expected adverse effects on the vehicle at a series of discrete longitudinal positions along the roadway, receiving at least one constraint limiting the operation of the vehicle (e.g., a prohibition on leaving the lane of travel, an offset from the centerline of the lane of travel, and / or a maximum lateral acceleration), 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.
[0007]
[0007] It should be understood that the present disclosure is not limited in this respect, and that the above-described concepts and additional concepts described below can be arranged in any suitable combination. Furthermore, 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.
[0008] BRIEF DESCRIPTION OF THE DRAWINGS
[0008] 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 purposes of clarity, not every component is labeled in every drawing. The drawings include: [Brief explanation of the drawings]
[0009] [Figure 1] 1 is a schematic diagram of one embodiment of a vehicle including a vehicle control system and vehicle sensors. [Figure 2]
[0010] 1 shows a map of the intensity of a parameter associated with the road surface as a function of lateral and longitudinal position along the roadway. [Figure 3]
[0011] An example of optimal path planning along the roadway is shown in Figure 2. [Figure 4]
[0012] 3 shows a two-dimensional representation of the intensity mapping of FIG. 2. [Figure 5]
[0013] 1 illustrates an implementation of a sample-based method for planning the XYZ motion of a vehicle. [Figure 6]
[0014] An example of a specific safety benefit of XYZ motion planning is shown. [Figure 7]
[0015] 1 shows a block diagram of one implementation of an example architecture for an XYZ motion planner. [Figure 8]
[0016] 1 shows a block diagram of an example XYZ motion planner flow chart. [Figure 9]
[0017] An example of the comfort benefit associated with XYZ motion planning is shown. [Figure 10]
[0018] 10 is a flowchart of another embodiment of a method for operating a vehicle. [Figure 11]
[0019] 10 is a flow chart of yet another embodiment of a method for operating a vehicle. DETAILED DESCRIPTION OF THE INVENTION
[0010] Detailed Description
[0020] In current autonomous vehicles traveling along roadways, planning algorithms can plan a trajectory for traversing an upcoming road segment. The plan can then be implemented by a controller that commands one or more actuators within the vehicle. These trajectory planners primarily focus on selecting an optimal trajectory within the plane of the road surface, commonly referred to as the XY plan. The selection of the optimal XY plan typically depends on various factors, including road geometry and lane markings, the position and speed of other vehicles, the presence of fixed or soft obstacles, and the location of pedestrians. As used herein, the term "plane of the road surface" refers to a plane that is parallel to the nominal surface of the road, but is not necessarily horizontal. This plane does not include road surface imperfections or actual road anomalies, such as potholes, manhole covers, speed bumps, surface cracks, or frost blisters.
[0011]
[0021] The inventors have recognized the advantage of considering out-of-plane motion, alternatively referred to herein as Z-motion. Z-motion can be induced in a vehicle or a portion of a vehicle (e.g., a wheel, wheel assembly, passenger compartment, vehicle body, or vehicle chassis) when one or more vehicle wheels interact with a road surface irregularity or discontinuity (e.g., a pothole, a bump, a manhole cover, a crack, uneven or missing pavement, or an abnormal road surface such as, for example, gravel). As used herein, the term "out-of-plane motion" means motion of a vehicle or a portion of a vehicle in a direction that is perpendicular to the plane of the road surface in proximity to the vehicle or portion of the vehicle.
[0012]
[0022] Furthermore, the inventors have recognized that a relatively extensive plan that considers both potential Z motion outside the plane of the road and XY motion within the road plane may result in an optimal vehicle trajectory. Conversely, a planning algorithm that does not fully consider Z motion may move along a trajectory that may result in increased discomfort, increased wear and tear on the vehicle, safety hazards, and / or other adverse effects. In addition, the inventors have recognized that Z motion may be affected by the characteristics and capabilities of various on-board systems (e.g., active, semi-active, or passive suspension systems, propulsion systems, braking systems, steering systems, and sensor systems), as well as other aspects or conditions of the vehicle, such as speed, mass, and center of gravity location.
[0013]
[0023] Thus, a planning algorithm that takes into account both Z motion and XY motion, i.e., motion within the plane of the road surface, hereinafter referred to as an XYZ planner, can take into account road surface features, vehicle conditions, and / or the characteristics or capabilities of one or more systems installed in the vehicle that may generate out-of-plane motion, at least under some operating conditions, when planning an optimal vehicle trajectory. For example, an optimal XYZ trajectory for a vehicle with an active suspension system moving at a first speed may be very different from an optimal XYZ trajectory for a vehicle with a semi-active or passive suspension moving at the same or a different speed. Alternatively or additionally, the optimal trajectory for a vehicle may also depend on other vehicle state parameters, such as the degree of wear on one or more actuators or the degree of inflation of one or more tires. Alternatively or additionally, the inventors have recognized that it may be beneficial to provide optimal trajectory information to a driver or operator of a non-autonomous or semi-autonomous vehicle using various communication channels, such as, for example, an ADAS. As used herein, the term “vehicle operator” or “operator” refers to a human driver and / or computing device that manages aspects of the vehicle's operation by using one or more actuators onboard the vehicle. As used herein, the term “semi-autonomous vehicle” refers to a vehicle equipped with a controller capable of performing specific tasks, such as braking, accelerating, steering, and lane changes, while allowing for human intervention when necessary. It is important to note that in a semi-autonomous vehicle, the controller may be a human operator or may be a computing device with the ability for the human operator to assume control as needed.
[0014]
[0024] In some vehicle embodiments, one or more motion planning algorithms running on one or more microprocessors can simultaneously determine the optimal XY plan and Z trajectory, resulting in an optimal XYZ trajectory. Alternatively, in some vehicle embodiments, one or more planning algorithms can determine the optimal XYZ trajectory in a multi-step process. For example, the XYZ planner can first determine multiple feasible motion plans that are candidate XY plans (e.g., multiple, 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 candidate XY plans and the associated Z trajectories. Because the present disclosure is not limited to the specified ranges, a suitable number of candidate XY plans that can be selected by the motion planning algorithm can be outside the ranges specified above. The number of candidate XY plans can be predetermined or can be determined during the planning process based, for example, on road characteristics and / or vehicle conditions. As used herein, the term "feasible motion plan" refers to a motion plan that complies with various, but not necessarily all, relevant constraints. A feasible motion plan may be a physically realizable plan that does not violate the operating limits of the vehicle.
[0015]
[0025] Additionally or alternatively, other factors that may be considered in the first or subsequent steps of selecting an optimal XYZ trajectory may include, without limitation, the local coefficient of friction of the road surface, the expected amount of energy that may be consumed by one or more on-board systems, such as the suspension system, the propulsion system, etc., along various candidate XYZ trajectories, and / or the amount of available energy, such as on-board fuel or stored charge.
[0016]
[0026] To control X motion (i.e., motion in the plane of the road surface (or in a plane parallel to it) and aligned with the direction of travel), there may be control mechanisms or actuators for the vehicle's accelerator and / or brake or methods for alerting the human operator of desired changes in speed. To control Y motion (i.e., motion in the plane of the road surface (or in a plane parallel to it) and perpendicular to the direction of travel), there may be steering mechanisms or methods for alerting the human operator of desired paths to follow. To control Z motion (i.e., motion perpendicular to the plane of the road surface), an actuation system may exist in the vehicle's suspension. Plans can be generated for optimal motion paths, and actions can be taken if actuators to implement such actions are available.
[0017] In some embodiments, for example, a motion plan can be configured to minimize vehicle occupant discomfort, such as motion sickness or excessive exposure to vibration. This method can include mapping an area on a roadway that may include road surface features that may induce occupant discomfort, and using information, which may be in the form of a map, regarding specific details and / or locations of the features to calculate a path that minimizes or mitigates the predicted occupant discomfort while respecting certain constraints and taking into account one or more vehicle occupant safety and comfort-affecting factors related to in-plane motion and motion generated by in-plane movement. As used herein, the term "in-plane motion" refers to motion of a vehicle or portion of a vehicle within the plane of the road surface.
[0018]
[0027] In some embodiments, the first step in implementing this method may include generating a map. Aspects of roads or road events that may cause discomfort to occupants along a roadway may be highly bimodal in nature for typical road types currently in use. A bimodal road may have smooth or virtually smooth sections followed by sections containing cracks, potholes, and / or other anomalies or discontinuities. The inventors recognized that the complexity of vehicle trajectory calculations may be simplified by exploiting the bimodal characteristics of a particular road. This can be achieved by first identifying road aspects that may result in road events that may cause a particular effect to exceed a predetermined threshold of that effect. This may be used to reduce the complexity of the solution; therefore, this threshold may be set at an appropriate level, e.g., a relatively small (or relatively sensitive) value when relatively high complexity is acceptable, such as when sufficient processing power is available, and a relatively large (i.e., relatively insensitive) value when reduced complexity and / or computational load may be desirable. In one embodiment, one or more vehicles traveling on a bimodal roadway can record the location of any aspect of the road surface that can be estimated to generate an event that exceeds an effect threshold. Discomfort can be quantified by evaluating its estimated effect on one or more occupants, such as by collecting sensor data and / or calculating a metric related to the effect on the occupants. Sensors can include, for example, accelerometers positioned near the occupants (e.g., on chair rails), on the vehicle body, or on suspension components, on wheels or knuckles, vehicle height measured between the wheels and the body, road contours measured by non-contact sensors such as lasers, LiDAR, radar, or cameras, rate sensors on the vehicle or components, wheel speed sensors, and others. Metrics can include estimates of energy, peak thresholds, peak-to-peak excursions, or calculating the derivative or integral of the measured signal followed by applying a metric calculation.The metrics may also include occupant sensitivity to particular frequencies, time history, and / or other calculations that may include combining various signals to calculate a composite signal and applying a metric calculation to that signal. As an example, one or more vehicle body acceleration sensors may be combined to estimate the acceleration of the vehicle body above the wheel patch, and a ride height sensor may be combined with this signal to calculate wheel motion, the resulting wheel motion may be trimmed within a short window and the total energy of the signal, in that the window may be used to estimate the relative effect on the occupant. As used herein, the term "road event" refers to an interaction or potential interaction between a vehicle or a portion of a vehicle, such as a wheel of the vehicle, and an imperfection or anomaly in the road surface, such as a pothole, manhole cover, speed bump, surface crack, or frost blisters. As used herein, "bimodal road surface" means a road that has one or more portions of a smooth road surface without perceptible imperfections and anomalies, and also one or more portions that have perceptible road surface imperfections or anomalies, such as, for example, potholes, manhole covers, speed bumps, surface cracks, etc.
[0019]
[0028] 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 an effect, such as adverse impact, discomfort, or other undesirable impact on the vehicle and / or vehicle occupants and / or vehicle components as a result of the road event. The intensity may be a single output or a combination of outputs, such as a peak value among multiple metrics associated with an event. The intensity may be, for example, a wheel energy value calculated as described above, or any other suitable signal derived from sensor and metric calculations.
[0020]
[0029] A given distribution of intensities can be associated with a location on the map. Location can be determined through any absolute or relative location measurement system. Absolute measurements can include a global navigation system (GNS) or similar device, while relative measurements can be relative to the roadway, such as using dead reckoning, road contour mapping, or visual mapping of road features on the road surface, such as lane markings, to detect and recognize objects and estimate the vehicle's distance from those objects, or relative to objects positioned along or near the roadway using, for example, non-contact sensors such as LiDAR, radar, or visual sensors such as cameras. In some embodiments, location along the road may be determined relative to road contours, and location across the width of the roadway may be determined relative to one or more lane markings.
[0021]
[0030] FIG. 1 illustrates a vehicle 10. The vehicle includes a vehicle body 12 that supports various vehicle components. As shown in FIG. 1, 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 while FIG. 1 illustrates the microprocessor system 14 as a single unit, it may include multiple microprocessors located at multiple locations within the vehicle, as the present disclosure is not limited in this respect. As shown in FIG. 1, the vehicle may include an active suspension system having active suspension actuators 18 operatively interposed between the vehicle's wheels 20 (or unsprung wheel assemblies) and the vehicle body 12 (e.g., sprung). Specifically, the active suspension actuators 18 may be operatively interposed between each of the vehicle's wheels and the vehicle body 12 such that separate actuators of the active suspension may independently control the vertical motion of each of the vehicle's wheels. Each actuator 18 may be configured to apply a force between the wheel 20 and the vehicle body 12. The actuators 18 may affect the motion response of the body 12, specifically one or more vehicle motion characteristics. The vehicle may also include a braking system having brakes 22. The braking system may include independent brakes coupled to each of the vehicle wheels 20 such that braking force may be applied to each wheel independently. According to the embodiment of FIG. 1 , the vehicle may also include a forward-facing sensor 23. The forward-facing sensor may be, for example, one or more cameras, LIDAR, radar, combinations thereof, or other sensors configured to detect forward road information that may be utilized by one or more vehicle planners or controllers that may be located within the microprocessor system 14. Alternatively, or additionally, pre-collected forward road information may be received in one or more microprocessors within the microprocessor system 14 from one or more local or remote databases.
[0022]
[0031] Also in accordance with the embodiment of FIG. 1 , the vehicle may also include a steering system 24, which, in the case of a driven vehicle, includes a steering wheel 24a. The steering wheel 24a may form part of a user interface for the vehicle 10. The user interface may be used to provide user input to control various portions of the vehicle or to provide feedback, such as haptic feedback, to the user. 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 disclosure is not limited in this respect.
[0023]
[0032] As shown in Figure 1, a vehicle may travel on a road 26. As shown in Figure 1, the road may include not only the plane of a road surface 28, i.e., the nominal road surface, but also road features 30. The road features 30 may induce motion or oscillation that is perpendicular to the plane of the road surface 28.
[0024]
[0033] FIG. 2 shows an example intensity map that may be obtained in the manner described above. A roadway 101 may include a centerline path 102 that curves in the XY plane (thus, for example, following the vertical contours of the road as it changes elevation) that is mapped to the plane of the road surface 101a. In this embodiment, at a discrete location 103, there may be an event that may cause a vehicle to experience an intensity above a threshold. As shown in FIG. 2, the intensity map may be generated after multiple previous runs by one or multiple vehicles passing the event 103 at different lateral offsets. The map may include detailed intensity data at each longitudinal location 103 that may be obtained and recorded as a function of lateral position. If a vehicle were to travel on the roadway of FIG. 2 and remain on the centerline, it may encounter the event at the intensity marked at point 104. Thus, for example, the map may be generated based on crowdsourced data collected from one or more vehicles. Alternatively, or in addition, the intensity profile can be generated based on data from one or more dedicated test vehicles and / or from imagery of the roadway and using visual recognition of map-significant road events. For example, such imagery may be obtained from a street view source or from a satellite if available at a sufficiently high resolution, or they may be collected by a dedicated fleet or through crowdsourcing from one or more vehicles. Maps can also be obtained as input from a map provider or a municipality or other entity.
[0025] Given this map, an optimized trajectory for the vehicle to follow can be determined, where certain constraints can also be implemented, such that the strengths encountered by the vehicle are included in the cost function along with other metrics. One example of a constraint that can be imposed may be that, for example, the vehicle cannot leave its lane at any given point while traveling along the optimal path. Such a constraint may be imposed, for example, if the width of the lane at any given point is known or measured (or by assuming a standard minimum lane width if data is not available) and if the width of the vehicle is known (or assumed based on normal vehicle widths). The maximum allowable offset from the centerline can then be determined, and the vehicle can be prevented from violating this constraint. Another example metric may be the total amount of deviation from the centerline for a given amount of time, since this may cause discomfort to one or more occupants who may be prone to motion sickness, for example. Thus, in some embodiments, a constraint may be the maximum lateral acceleration induced by the vehicle when following a specified trajectory under certain operating conditions. A combination of desired metrics can be formulated as a cost function, with relative weights applied to the various metrics, which can be pre-calculated or dynamically adjusted based on driving conditions. Consequently, an optimal trajectory that minimizes a given cost function can be determined. An example of such a path is shown in FIG. 3 as line 201. Note that the optimization problem formulated here includes costs associated with road events, as discussed above. If the vehicle follows path 201 instead of path 102, the vehicle may experience lower intensity from road events, and the occupants may therefore experience greater comfort.
[0026] FIG. 4 shows an example intensity map shown in relative or absolute space longitudinally along the roadway and laterally across the roadway. A road in this coordinate system can be shown as a straight road because the abscissa in this plot follows the roadway centerline and the ordinate is perpendicular to the roadway centerline. In this view, a path 301 along the roadway centerline follows the abscissa, and events are marked as intensity values associated with each point, not shown in this representation, such as 302, with their location along the roadway and their lateral offset across the roadway for each measurement. These values may be determined over time if they are collected using crowdsourced data from one or more vehicles, or may be given input from an existing map. Given these values and the path, the optimization problem can be reduced to optimizing the cost function described above and calculating the optimal lateral offset at each given point while 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.
[0027]
[0033] In some embodiments, road intensity may be measured based on vehicle-based motion sensors as described above, and the measurements may be normalized to avoid inconsistencies in estimated values. This may be performed on each vehicle by comparing estimated values from the vehicle with those from a set of other vehicles. This may also be achieved by considering each intensity value as a relative value in relation to other events collected by the same vehicle. Additionally or alternatively, this may also be achieved through appropriate calibration of the sensors and processing to remove any bias introduced by individual vehicles. Road intensity may also be measured by non-contact or normalized sensors.
[0028]
[0034] 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. While the intensity resulting from a road event may increase with speed, this is not always the case. For example, in the case of an event that is a pothole of a certain size, above a certain speed, the greater the vehicle's speed, the smaller the pothole input the vehicle may be exposed to. This may be because a wheel interacting with the pothole may have less and less time to enter the pothole.
[0029]
[0035] Any given event may result in an intensity that varies with the vehicle's speed. Information about this variation in intensity as a function of speed, which may be associated with various events recorded in the map, can be taken into account when calculating the optimal trajectory, along with the current or planned driving speed. For example, vehicle speed may be estimated to be relatively constant as the vehicle follows a given trajectory, and the optimal trajectory may be determined using intensity values obtained at the estimated speed for various events on the given trajectory. In some embodiments, a speed map of intensity may be generated for each event, which would allow the predicted intensity at the estimated speed to be determined by interpolation or extrapolation. Using such a speed map and the current driving speed, the optimal trajectory for any given speed can be determined. It may also be possible in some embodiments to consider speed as a variable and determine the optimal profile and optimal speed. To address this issue, the total time of deviation or passage from the target speed can be considered in the cost function. In some embodiments, constraints related to, for example, the maximum allowable change in speed may also be taken into account to reduce the effect of any speed changes on the vehicle occupants. In some embodiments, this method may be used, for example, to optimize the passage of large speed bumps; lateral deviation may not be effective in reducing the intensity of the event, but reducing the speed in the vicinity of the speed bump may be effective in increasing occupant comfort.
[0030]
[0036] Selection of an optimal trajectory may include minimizing or maximizing other properties or quantities, although the present disclosure is not limited in this respect. For example, in addition to or instead of occupant comfort, desirable targets may be minimum travel time, reduced likelihood of motion sickness, or reduced predicted damage to or wear and tear on the vehicle or its components, or any other value that may be affected by the vehicle's trajectory choices (including speed) along the roadway. Undesirable consequences may also include the vehicle's excessive proximity to any lane edge or specific markings. For example, costs associated with distance from a lane edge or proximity to another vehicle may be included, which may require a plan adaptation if an operator (computing hardware or human) detects such a vehicle. In the case of a driven vehicle, the human driver can respond by interacting with the planned vehicle trajectory through applied steering torque. In some embodiments, such user input can cause the trajectory planner to recalculate the optimal solution. Other undesirable effects that may be included in the cost function may include perceptible vehicle "sway," defined as vehicle yaw or lateral motion at particular frequency bands or times to which occupants are sensitive, total steering angle, rate, or torque, lateral acceleration due to trajectory along the optimal path, particular predicted vehicle motions such as vehicle roll to which occupants or the vehicle may be relatively sensitive, and estimated component damage produced by high intensity inputs. One or more of these factors may be considered at any given time, with relative weightings that may be dynamically changed, specified by the user via a user interface or driving situation, pre-calculated by the developer or OEM for consistency purposes, or calculated by the microprocessor at any particular instance.
[0031]
[0037] In some embodiments, one or more road surface characteristics may be considered during XYZ trajectory or XY path optimization. Road surface characteristics may be, for example, predicted or detected road surface grip or road friction. Predicted road surface grip may be derived, for example, from a crowdsourced system that may map measured road friction characteristics to location and time, where a predictive algorithm may be used to extend the measurements in both time and location to cover the vehicle's current location. Road surface characteristics may also be derived from previous measurements and / or weather measurements taken at strategic or distributed locations, or simply from weather forecasts. If predicted road surface characteristics are known for at least one desired route in the plan, a decision may be made to include this knowledge in the cost function calculation for the route planner.
[0032]
[0038] For example, a vehicle traveling along a road may have access to road friction predictions from a remote road friction prediction system. As a planning algorithm within the vehicle determines candidate XY paths, it may consider information about the road surface of each path. For example, the coefficient of friction or estimated tire gripping force of each candidate path may be considered when determining the cost for the associated trajectory. Additionally or alternatively, in some embodiments, the road surface profile, road geometry, required power, effort, deformation on one or more systems or components, and the safety of each path or trajectory may be considered when determining the cost of each path or trajectory. In some embodiments, safety margins and the manner in which each path or trajectory is likely to approach those margins may be considered, such as proximity to other vehicles, predicted proximity limits to the vehicle in lateral or longitudinal gripping forces, or proximity to objects on or near the road. For each plan or trajectory, the required steering, accelerometer / brake, and vertical components of the inputs may be calculated, and these inputs may be available to a human operator or an autonomous controller, or the desired actions may be provided as guidance to the human driver or operator. This force may be taken into account when estimating the optimal path, as it may have a cost in terms of comfort, safety, power, noise, and other factors that may be considered in the decision. For example, if an active suspension system is available, predicted low-friction surfaces may be mitigated with changes in vertical force application at appropriate times, and this force application may be taken into account when calculating the optimal path or trajectory.
[0033]
[0039] An optimal path or trajectory may then be selected based on one or more of the factors described above, and actions may be taken accordingly to provide guidance or input to the vehicle controller or vehicle operator.
[0034]
[0040] In some embodiments, XYZ planning can be used to compute optimal trajectories in the X, Y, and Z directions to improve vehicle performance, including safety and comfort. Without being bound by theory, in some embodiments, an example XYZ motion planning problem can be formulated as the following optimization problem:
[0041]
number
[0042]
number
[0035]
[0043] In the above optimization problem formulation, s(t) is a vector of vehicle states including, without limitation, vehicle speed, steering angle, location, heading, suspension height, and suspension velocity; u(t) is a vector of control inputs to the vehicle including steering control input, velocity control input, and active forces applied to each suspension; and the differential equation
number
[0044]
number
[0045] v0 is the nominal speed the vehicle is maintaining, y0 is the nominal lateral displacement of the vehicle, z is the averaged vertical velocity of the vehicle, and f is the total force command applied on the suspension. v , w y , w z , w f , and w T are the weights of the design or tuning object. Note that the cost function can be expressed in many forms when expressed as a function of vehicle states, control inputs, and time horizon.
[0036]
[0046] In some embodiments, a path in the XY plane is a sequence of distinct waypoints [(x1, y1), (x2, y2), i.e., (xN ,y N )] or 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 relatively higher order vectors. In its continuous form, the trajectory can be a vector function of time and can be defined as:
[0047]
number
[0048] where t≧0 is time, h is the vehicle heading, v is the vehicle speed, and z i is the vertical displacement of the ith corner of the car relative to the road plane,
number
[0037]
[0049] As a nonlinear optimization problem, in-vehicle XYZ motion planning may not be effectively implemented by commercially available general nonlinear optimizers for several reasons. First, the XYZ motion planning problem requires consideration of the complex dynamics of the vehicle, including acceleration, deceleration, rotation, suspension, and other physical constraints. Without being bound by theory, these dynamics result in a high degree of nonlinearity and nonconvexity, and general optimizers may struggle to efficiently handle such complexity. Second, with the added Z motion, the motion planning problem operates in a high-dimensional state space that may include vehicle position, velocity, orientation, suspension state, and road surface information. Optimization in a high-dimensional space can be a challenging problem, and it becomes increasingly difficult as the dimensionality grows. Third, motion planning for vehicles often needs to be performed in real time or near real time to ensure vehicle safety and responsiveness. For example, in some embodiments, the motion planner may calculate a 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, vehicles must adhere to various constraints, such as collision avoidance, road boundaries, and vehicle limits (e.g., turning radius, maximum speed, maximum suspension travel, maximum active suspension force command). Incorporating these constraints into the optimization problem makes it more complex and difficult for general optimizers to handle. Fifth, safety may be a top priority in vehicle motion planning, and general optimizers may not provide sufficient assurance of safety, and it is crucial to have a method capable of considering safety constraints and possibly providing a safe solution. Sixth, motion planning problems often need to be solved in real time on resource-constrained hardware, such as an on-board vehicle computer. Without being bound by theory, it is believed that general nonlinear optimizers may be too computationally intensive to operate efficiently in such an environment.
[0038]
[0050] FIG. 8 illustrates an exemplary sample-based XYZ motion planning method that can be used to address these challenges. First, block 701 may select a set of XY candidate path plans or trajectories, ignoring Z motion, which is out-of-plane motion. Again, without being 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. Note that for the same final position, different XY trajectories or path plans can be generated, for example, by considering different velocity profiles. For example, for each final position, three different final velocities can be estimated, which can result in at least three different velocity profiles during trajectory trajectories. For each XY trajectory generated in 701, multiple Z trajectories can be obtained in block 702 to generate multiple XYZ trajectories. In some embodiments, block 703 can test all XYZ trajectories against a set of safety criteria, such as maximum lateral acceleration, suspension actuator force, or suspension travel. The particular XYZ trajectory may then be removed in block 703. The remaining trajectories may then be evaluated to calculate their associated cost in block 708. Once all of the costs for each of the trajectories have been determined in block 708, they may be sorted based on their cost. In block 706, a check may be performed to determine whether any remaining trajectories exist, and if so, in 709, a collision check may be performed on the lowest-cost trajectory. In some embodiments, the collision check may be based on a simulation of the ego-vehicle and surrounding vehicles to detect whether their future trajectories may match or virtually match at any point. In some embodiments, the collision check may require significant computational resources and time, and it may be beneficial to perform the collision check on a limited number of trajectories.In this example diagram, a collision check may be performed on the trajectory with the lowest cost, as shown in 709. If the trajectory passes the collision check, it may be determined to be the optimal plan in block 710. If block 705 detects a potential or likely collision in the state in which the trajectory is being tested, the trajectory may be removed in block 704, and the trajectory with the next lowest cost may be tested in block 709. In some embodiments, when there are no remaining trajectories to check, as detected in block 706, the motion planner may encounter a situation in which it fails to find a feasible plan. In such a situation, failure handling block 707 may intervene. For example, this may require a human operator to take control of the vehicle, or it may switch to an evasive motion planner to generate evasive motion to mitigate the risk of a potential accident. As used herein, the term "path" refers to a sequence of continuous curves or waypoints, defined as a specific geographic location or predefined points in space, connecting an initial state to a goal state. As used herein, the term "trajectory" refers to a time-parameterized representation of a vehicle's path, including any accompanying Z motion. A trajectory may specify not only the vehicle's path, including any Z motion, but also details about the vehicle's state, such as speed, acceleration, steering angle, suspension dynamics, etc. As used herein, the term "motion plan" refers to a planned sequence of one or more paths selected by a vehicle operator.
[0039]
[0051] FIG. 5 illustrates another exemplary embodiment of a sample-based multi-stage implementation in a block diagram. In block 405, road surface data and the ego-vehicle's perception of its environment may be received, for example, from a map or database or from perception software modules and sensors, such as LiDAR, cameras, and / or rangefinders, which may contain previously acquired preview information of the road surface. A scan of the road surface may be performed in module 402 to detect road imperfections or anomalies, such as bumps and depressions, that are above a specified threshold size. Such imperfections or anomalies may be labeled as soft obstacles in the road representation encoded in module 401. Software module 408 is a path planner that optimizes an XY path to avoid hard obstacles encoded in module 403 while attempting to traverse soft obstacles encoded in module 401, if possible. The term XY path, as used herein, refers to a path in the plane of the road surface. In some embodiments, a process in module 407, which may be applied to a moving window along the length of the road, generates the sample path. The best one that effectively avoids the obstacle can then be selected. The process can then continue with a new window of data. The output of 408 can be an optimal XY path, as shown at 409. Along with this path, software module 410 can plan its velocity profile as well as the optimal Z motion. One implementation of 410 can be to use a velocity sampler 416 to generate multiple velocity profiles for the optimal XY path 409. To generate the velocity profile, several possible terminal velocities can be selected. Each of these terminal velocities can be blended into the current vehicle velocity. The optimal XY path and the sampled velocity samples can generate a set of XY trajectories 412.A vertical motion planner 415 can then calculate an optimal Z motion for each trajectory in the XY trajectory set 412. This can result in a set of XYZ trajectories 415. Finally, an optimal trajectory 411 can be selected based on its cost. The selection process in module 413 can also include collision and safety checks, as described in connection with the method shown in FIG. 8. As used herein, the term "ego-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 techniques, such as mapping and localization, to perceive 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, cameras, LiDAR, and radar inputs, to characterize and / or interpret the vehicle's surroundings. As used herein, the term "soft obstacle" means an obstacle that the wheels of a vehicle can pass through, for example, by driving over it or passing through it with at least some adverse effect but without disabling the vehicle. Soft obstacles can include obstacles such as potholes, manhole covers, speed bumps, broken pavement, cracks in the road surface, and frost blisters, rough road patches, or gravel-covered roads.
[0040]
[0052] In comparison with Figure 8, it should be noted that the embodiment shown schematically in Figure 5 may be relatively computationally efficient, but constrains the available solution space for motion planning. This may be more suitable for implementation in vehicles with relatively more limited computing capacity, albeit perhaps as a trade-off for achieving slightly less optimal performance.
[0041]
[0053] FIG. 6 illustrates an example of the safety benefit of an XYZ motion plan. In driving scenario 501, an autonomous vehicle 509 equipped with an active suspension system is traveling in the right lane. The road ahead of the vehicle 509 curves to the right. There is a static obstacle 507 blocking the ego-vehicle's current lane. As a result, the ego-vehicle may generate an XYZ motion plan 505 for a lane change to the left lane. Once the vehicle moves into the left lane, the vehicle may determine that a slow-moving truck 504 is present and that another lane change may be necessary to change back to the right lane. In the scenario illustrated in FIG. 6, there is insufficient time to decelerate. Remaining in the left lane may result in an accident between the vehicle 509 and the truck 504. Note that a large road surface depression 508 is present on the left side of the left lane. The XYZ plan generated by the ego-vehicle can consider road surface data and generate a plan to correspondingly lower the center of gravity of the vehicle body to avoid rollover caused by large lateral acceleration when passing through a pothole. In scenario 502, ego-vehicle 510 executes the XYZ plan and successfully passes through the pothole. Alternatively, in scene 503, if only XY plan 506 had been used, the vehicle would have failed to lower its center of gravity near the pothole. As a result of this failure, ego-vehicle 511 would have had a relatively greater risk of rollover when passing through the pothole.
[0042]
[0054] FIG. 9 shows 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, ego-vehicle 804 has an XYZ motion planner that is aware of the bump in the road surface. Because the speed bump spans the entire width of the road, the motion planner can generate plan 806 that does not change the vehicle's lateral displacement (e.g., change lanes) but slows the vehicle so that the active suspension system can provide sufficient active force to lift the wheels and maintain a stable vertical position of the vehicle body as it traverses bump 803. In scenario 802, ego-vehicle 804 is equipped only with an XY motion planner, and therefore, it may not be able to consider various trajectories as it traverses bump 803 because no viable plan for avoiding the obstacle existed. As a result, it may ignore the presence of bump 803 and implement trajectory 807 without slowing down. This can create a relatively large or relatively many forceful impacts at speed bumps, which can make the ride uncomfortable and possibly damage the vehicle.
[0043]
[0055] A vehicle may move in an X direction of movement within the plane of the road, laterally in a Y direction, and perpendicular to the plane of the road in a Z direction. Controls governing vehicle function in the X direction may include brakes to slow the vehicle and propulsion systems, such as the engine and motor, to accelerate the vehicle. Other devices that may affect the vehicle's speed may include, for example, friction devices, aerodynamic devices, or traction devices. Controls governing vehicle function in the Y direction may include steering systems on the front axle, rear axle, or individual wheels, as well as aerodynamic or inertial devices that may generate lateral forces on the vehicle or wheels and may include braking systems that may control vehicle yaw through the strategic application of braking forces. Controls governing vehicle motion in the Z direction may include active suspension systems, semi-active suspension systems, active and semi-active roll control systems, inertial devices, aerodynamic devices, suspension spring modifiers including air springs, spring seat adjusters, multi-chamber air springs, or mechanical devices that modify spring stiffness.
[0044]
[0056] It is noted that in the context of this disclosure, road surface features are defined to include road profiles, perhaps for left and right wheel tracks, or for a single track, or for the entire road surface as a three-dimensional map; road events such as individual sections of road having a shape, geometry, content, or layout that meets certain characteristics, such as potholes, speed bumps, rough road sections, smooth road sections, sloped roads, etc.; variations in the road surface, including surface grip or friction, surface configuration or material type, surface roughness, or surface coverings, including standing water, ice, leaves, gravel, snow, or others.
[0045]
[0057] 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 may consider factors such as, for example, the safety of the vehicle and / or its occupants, collision avoidance with other vehicles, pedestrians, and / or obstacles, energy expenditure, travel time, occupant comfort, violation of traffic rules, wear and tear on certain components, or environmental impact. For example, the cost for a particular potential path a vehicle may follow may include one or more annoyance metrics related to how perceptible road events in the path are to the occupants and the degree of motion sickness such a path may produce. The cost may include functions related to how safe the vehicle will be while implementing this path, such as considering surrounding traffic, road slope, and the vehicle's tendency to rollover, the vehicle's tendency to reach road friction and its road-gripping limits, the tendency to startle a human operator if such a system is involved, or the tendency to disrupt a computing system if such a system is involved. The cost may include, for example, a function related to the expected energy consumption for a particular route, which may be particularly relevant for electric vehicles since it will reduce the range of travel. Energy consumption may be affected by one or more components of the vehicle, such as any motors, pumps, or friction elements involved in operation on the desired route. The cost may also include a function related to the expected wear and wear on vehicle components, including, for example, tire wear, shock absorber wear, or motor wear, whereby, for example, it may be preferable to induce relatively little wear on components, all other factors considered for the cost function being equal.
[0046]
[0058] 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). In addition, motion planning can be used in systems to advise a human operator, for example, to steer in a particular direction and / or accelerate and decelerate.
[0047]
[0059] FIG. 7 illustrates one embodiment of a system architecture for a vehicle control system that may include an XYZ motion planner. The planner software stack 604 may include three layers. The route planner 603, which determines the optimal route from point A to point B, may consider global characteristics across multiple route options, such as the average roughness and / or typical surface friction of each route being considered in the optimization process. Note that the route optimization problem may not consider vehicle dynamics. Instead, it may assign weights based on the overall, average, or typical road surface conditions of each road segment within each route being considered. The optimal solution may be the route with the smallest total composite weight of all road segments being considered. Route planning may occur at or before the beginning of a trip, when the operator, occupant, or vehicle localization system can determine the starting point, or when the operator or occupant can determine the destination of the entire route. The system may also perform route replanning if the vehicle deviates too far from the pre-planned route. Once the route is determined, the behavior planner 602 can operate intermittently, continuously, or virtually continuously (e.g., at about 5 Hz) to make high-level decisions, such as deciding to change lanes or turn in a specific control regime to mitigate the vehicle's performance through potholes. These types of decisions may be made within the vehicle as it moves, as they may depend on the current state of the vehicle and its surroundings, which may be derived from sensors 605 processed by the perception software module. The third layer in the planning software is the XYZ motion planner 601, which generates a continuous or time-discrete trajectory describing the optimal vehicle states and control inputs for the next planning time horizon (e.g., from the current time of the plan to the next 5 seconds).In the case of a fully autonomous vehicle, human operator input 610 may not be necessary because the motion plan calculated by motion planner 601 can be executed by controller 611. For example, by comparing a reference speed with the actual vehicle speed reported by sensor 605, throttle and brake commands can be calculated based on a proportional-integral (PI) controller to track a reference speed profile. An XY path can be tracked, for example, by calculating steering wheel control inputs using a pure-tracking algorithm. A reference vertical motion can be tracked by computing appropriate force commands for an active suspension system. The force commands can be a combination of feedforward and feedback control signals. The feedforward control signals can be determined based on force commands planned in the motion plan, and the feedback control signals can be determined based on instantaneous vehicle sensor data, for example, using a Skyhook control algorithm. The control signals calculated in 611 can then be sent to actuators within vehicle 607. In the case of a vehicle that is not fully automated, or where human operator control is permitted or required, the human operator can override or provide additional input to the controller 611 and actuators 607. For example, the human operator can set a different reference speed to replace that from the plan. The human operator can also directly rotate the steering wheels to change the vehicle's travel path. In cases where the human operator can gain full control of the vehicle, the motion plan does not need to be automatically executed by the controller. The calculated motion plan can be provided as a recommendation or warning to the operator. For example, while displaying the current vehicle speed to the operator, the on-board system can also show the operator the optimal speed recommended at the current time.Additionally, a head-up display system may be used within the vehicle to show the operator a recommended driving path and the vehicle's estimated future path if the vehicle maintains its current speed and steering. This guidance may result in improved comfort and safety. Note that the human operator will typically not have direct control over the actuator for Z motion; this will typically be controlled by feedback and feedforward controllers. As used herein, the term "route" refers to a selection of consecutive road segments that can be used as input to a motion or behavior planner.
[0048]
[0060] To generate an executable plan, the planner software stack 604 may need to determine the vehicle's current location with the assistance of the localization module 608. The planner software stack 608 may also rely on a map or database to provide information for planning purposes. Specifically, the XYZ motion planner 601 may use road surface data, which may be provided by data stored in the map 609, from the perception module 605, and / or from a database.
[0049]
[0061] It should be noted that, in this disclosure, a "route plan" refers to a plan having a duration of several minutes or more (e.g., five minutes or more). Conversely, a "motion plan" or "executable motion plan" is designed to be implemented over a relatively short period of time (e.g., less than five minutes or one minute or less). As used herein, a "short-term motion plan" is a motion plan that can be implemented immediately and may have a duration of one minute or less once implemented.
[0050]
[0062] FIG. 10 is a flowchart of another embodiment of a method for operating a vehicle. In block 900, information regarding the road ahead is received by a processor within the vehicle. For example, this information can be received from a remote or onboard database or from a forward-facing sensor. In block 902, several feasible in-plane XY motion plans are developed for moving forward along the road. These plans may be short-term plans (e.g., the plans may be less than two minutes in duration). In block 904, a trajectory can be developed for each feasible XY motion plan that accounts for the expected Z motion that would be induced in at least a portion of the vehicle by road surface irregularities if a given plan were implemented. Note that multiple trajectories could be developed for each feasible XY motion plan based on the use of different estimated vehicle speed profiles. It is useful to note that different vehicle speed profiles 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, a minimum-cost trajectory may be selected if it is unlikely to result in a collision (e.g., above a threshold probability level) and adheres to one or more motion constraints. At block 910, the selected trajectory is implemented by the vehicle operator, which may be a human or an electronic controller. Note that each trajectory developed at block 904 may be checked for likelihood of collision; however, due to the computational intensity of collision detection, it may be relatively efficient to perform this check on a reduced set of minimum-cost trajectories.
[0051]
[0063] FIG. 11 is a flowchart of yet another embodiment of a method for operating a vehicle. In block 920, the system collects information regarding the estimated intensity distribution of potential adverse impacts that may occur when a vehicle encounters a road event at a particular longitudinal position along a road. This information is based on previously collected (e.g., crowdsourced) data from various vehicles that experienced these road events at different lateral offsets. In block 922, one or more motion constraints that may affect the vehicle's actions are received at a processor within the vehicle. In block 924, a cost function is used to determine the cost associated with traveling through each longitudinal position. This calculation takes into account the lateral offset at which the passing occurs. In block 926, a route that can be followed while adhering to the received constraints and that minimizes the total cost of traveling through the series of longitudinal positions is selected. This method involves using data from various vehicles to predict potential adverse impacts and then utilizing a cost-based approach to select the best route for the vehicle while taking into account the motion constraints.
[0052]
[0064] The above-described embodiments of the technology described herein can be implemented in any of numerous ways. For example, embodiments 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 provided in a single computer or distributed among multiple computers. Such a processor can be implemented as an integrated circuit with one or more processors in an integrated circuit component, including commercially available integrated circuit components known in the art by names such as CPU chip, GPU chip, microprocessor, microcontroller, or coprocessor. Alternatively, the processor can be implemented in a semi-custom circuit resulting from constructing a custom circuit or programmable logic device, such as an ASIC. As another further alternative, the processor may 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 a processor. However, a processor can be implemented using any suitable format of circuit.
[0053]
[0065] It should further be understood that a computer may be embodied in any of several forms, such as a rack-mounted computer, a desktop computer, a laptop computer, or a tablet computer, etc. In addition, a computer may be embedded within a device that is not generally considered a computer but has suitable processing capabilities, including a personal digital assistant (PDA), a smartphone, or any other portable or fixed electronic device.
[0054]
[0066] A computer may also have one or more input and output devices. These devices can be used, among other things, to present a user interface. Examples of output devices that can be used to provide a user interface include a printer or display screen for visual presentation of output and a speaker or other sound-generating device for audible presentation of output. Examples of input devices that can be used for a user interface include a keyboard, a pointing device such as a mouse, a touchpad, and a digitizing tablet. As another example, a computer can receive input information through speech recognition or in other audible formats.
[0055]
[0067] Such computers may be interconnected by one or more networks in any suitable form, including a local area network or an enterprise network or a wide area network such as the Internet. Such networks may be based on any suitable technology and may operate according to any suitable protocol, and may include wireless networks, wired networks, or fiber optic networks.
[0056]
[0068] Additionally, the various methods or processes outlined herein may be coded as software that is executable on one or more processors utilizing any of a variety of operating systems or platforms. Additionally, such software may be created using any of a number of suitable programming languages and / or programming or scripting tools, and may be further compiled as executable machine code or intermediate code that runs on a framework or virtual machine.
[0057]
[0069] In this regard, the embodiments described herein may be embodied as a computer-readable storage medium (or multiple computer-readable media) (e.g., computer memory, one or more floppy disks, compact disks (CDs), optical disks, digital video disks (DVDs), magnetic tapes, flash memories, circuitry in field programmable gate arrays or other semiconductor devices, or other tangible computer storage media) encoded with one or more programs that, when executed on one or more computers or other processors, perform methods that implement the various embodiments described above. As is evident from the examples above, a computer-readable storage medium may retain information for a sufficient period of time to provide computer-executable instructions in a non-transitory form. Such one or more computer-readable storage media may be transportable such that one or more programs stored thereon can be loaded onto one or more different computers or other processors to implement various aspects of the present disclosure described above. As used herein, the term "computer-readable storage medium" encompasses only non-transitory computer-readable media that may be considered to be an article of manufacture (i.e., an article of manufacture) or machine. Alternatively or additionally, the present disclosure may be embodied as a computer-readable medium other than a computer-readable storage medium, such as a propagating signal.
[0058]
[0070] The terms "program" or "software" are used herein in a generic 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 various aspects of the present disclosure as described above. Additionally, according to one aspect of this embodiment, it should be understood that one or more computer programs that, when executed, perform the methods of the present disclosure need not necessarily be present on a single computer or processor to implement various aspects of the present disclosure, but may be distributed in a modular manner among several different computers or processors.
[0059]
[0071] Computer-executable instructions may be in 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. Typically, the functionality of the program modules may be combined or distributed as desired in various embodiments.
[0060]
[0072] Additionally, data structures may be stored within a computer-readable medium in any suitable form. For purposes of simplicity of illustration, data structures may be shown as having fields related through locations within the data structure. Such relationships may similarly be achieved by assigning locations within the computer-readable medium that convey the relationships between the fields to storage for the fields. However, any suitable mechanism may be used to establish relationships between information within fields of a data structure, including through the use of pointers, tags, or other mechanisms that establish relationships between data elements.
[0061]
[0073] Various aspects of the present disclosure may be used alone, in combination, or in various configurations not specifically described in the embodiments described above, and therefore are not limited in their application to the details and arrangements of components set forth in the foregoing description or illustrated in the drawings. For example, aspects described in one embodiment can be combined in any manner with aspects described in other embodiments.
[0062]
[0074] The embodiments described herein may also be implemented as methods, examples of which are provided. The acts performed as part of a method may be ordered in any suitable manner. Thus, embodiments may be constructed in which acts are performed in an order different from that shown, which may include performing some acts simultaneously even though they are shown as sequential acts in the example embodiments.
[0063]
[0075] Furthermore, some actions are described as being performed by a "user." It should be understood that a "user" need not be a single individual, and that in some embodiments, actions that may be attributed to a "user" may be performed by a team of individuals and / or individuals in combination with computer-assisted tools or other mechanisms.
[0064]
[0076] While the present teachings have been described in conjunction with various embodiments and examples, it is not intended that the present teachings be limited to such embodiments or examples. On the contrary, the present teachings encompass various alternatives, modifications, and equivalents, as will be appreciated by those skilled in the art. Accordingly, the foregoing description and drawings are for illustrative purposes only.
Claims
1. 1. A method of operating a vehicle, comprising: Moving along the road, receiving information about a segment of the road ahead of the vehicle, the information including data about a surface of the road ahead of a current position of the vehicle; using an algorithm to develop a plurality of viable motion plans for moving forward from the current position of the vehicle based on the received information; developing at least one trajectory for each of the plurality of feasible motion plans, at least one of the trajectories accounting for out-of-plane motion induced by one or more anomalies in the road surface; estimating a cost of movement along each of the at least one trajectory for each of the plurality of feasible motion plans; selecting a trajectory based at least in part on cost; providing the selected trajectory to a vehicle operator; operating the vehicle by implementing the selected trajectory; A method having the following.
2. The method of claim 1 , wherein the vehicle operator is selected from the group consisting of a computing device and a person.
3. 3. The method of claim 1, wherein at least a portion of the received data is received from a database containing pre-collected information about the road.
4. The method of claim 1 , wherein at least a portion of the received data is received from a forward-facing sensor mounted on the vehicle.
5. The method of claim 1 , wherein the vehicle is a semi-autonomous vehicle.
6. 6. The method of claim 1, wherein the data relating to the surface of the road includes data relating to road surface anomalies selected from the group consisting of potholes, speed bumps, cracks in the road surface, manhole covers, and storm drains.
7. 7. The method of claim 1, wherein estimating the costs is based on factors selected from the group consisting of energy consumption, travel time, passenger comfort, violation of traffic rules, wear and tear on components, safety, and environmental impact.
8. The method of claim 1 , wherein the plurality of feasible motion plans does not include any plan for which the probability of collision with another vehicle exceeds a threshold.
9. The method of claim 1 , wherein the plurality of feasible motion plans does not include a plan in which the probability of collision with an obstacle exceeds a threshold.
10. 1. A method of operating a vehicle, comprising: Moving along the road, receiving information about a segment of the road ahead of the vehicle, the information including data about a surface of the road ahead of a current position of the vehicle; using an algorithm to develop a plurality of viable motion plans for moving forward from the current position of the vehicle based on the received information; developing at least one trajectory for each of the plurality of feasible motion plans, at least one of the trajectories accounting for out-of-plane motion induced by the road surface; estimating a cost for moving along each of the at least one trajectory for each of the plurality of feasible motion plans; determining that a probability of collision with another vehicle when implementing a minimum cost trajectory is above a threshold; operating the vehicle by implementing a trajectory according to a next least cost trajectory where the probability of collision is less than the threshold; A method having the following.
11. The method of claim 10 , wherein the vehicle operator is selected from the group consisting of a computing device and a person.
12. 12. The method of any one of claims 9 to 11, wherein at least a portion of the received data is received from a database containing previously collected information about the road.
13. 13. The method of any one of claims 9 to 12, wherein at least a portion of the received data is received from a forward-facing sensor mounted on the vehicle.
14. 14. The method of any one of claims 9 to 13, wherein the vehicle is a semi-autonomous vehicle.
15. 15. The method of claim 9, wherein the data relating to the surface of the road includes data relating to road surface anomalies selected from the group consisting of potholes, speed bumps, cracks in the road surface, manhole covers, and storm drains.
16. 16. The method of any one of claims 9 to 15, wherein estimating the cost is based on factors selected from the group consisting of energy consumption, travel time, passenger comfort, violation of traffic regulations, wear and tear of components, safety, and environmental impact.
17. 1. A method of operating a vehicle, comprising: Moving along the road, receiving information regarding the road segment ahead of the vehicle's current position; selecting a trajectory having a duration of less than two minutes based on the received information, the trajectory including both XY motion and Z motion; providing the trajectory to a vehicle operator; operating the vehicle by implementing the trajectory; A method having the following.
18. 18. The method of claim 17, wherein the duration is less than 1 minute.
19. 18. The method of claim 17, wherein the duration is less than 30 seconds.
20. 1. A method of operating a vehicle, comprising: Moving along the road, receiving information relating to a lateral distribution of an expected intensity of an adverse effect on the vehicle at a series of discrete longitudinal positions of the roadway; receiving at least one constraint limiting movement of the vehicle; calculating a cost function based on the intensities and the at least one constraint; passing through each of the longitudinal locations at a point determined based on the cost function; A method having the following.
21. 21. The method of claim 20, wherein the at least one constraint is selected from the group consisting of a prohibition on leaving the lane of movement, an offset from a centerline of the lane of movement, and a maximum lateral acceleration.