I always assumed that obstacle avoidance refers to general prevention of collisions with any kind of obstacles, even without considering a goal for the decision how to execute an avoidance maneuver. Is that correct?


2 Answers 2


I have lots of experience with this that I won't bother you with. Most vehicle planners have multiple layers, with different requirements. In short, you're right in that they are very closely related and often overlap. There is some general consensus from what I've seen for a "layered" approach as follows.

example three layers

  1. Goal planner
  2. Path planner
  3. Hazard avoidance

Goal planner

The point of this layer is to decide where the robot should be going. Usually this is done from a strategic view, like "Get to that hilltop to charge solar panels" or "try to get into this lane because you need to exit soon" or "the human wants pictures from this location". You can even choose multiple goals and plan a route through them, so sometimes this layer is called route planning. This is the purview of operations research usually, and involves problems often called vehicle routing, facility location or TSP-like problems. You might run this layer once every few seconds to once every minute. (notice how long it takes google maps to replan your route).

Usually, this level of planning considers the general direction of travel over minutes to hours range, and does not include anything but a cursory approximation of terrain or obstacles.

Path planning

Once you know you are at location A and want to get to location B next, you usually plan a path (or trajectory) to get to that location (or at least closer if you are using receding horizon control). At this layer, you can often afford (computation-wise) to include static obstacles like no-go zones, terrain, or other vehicles that you can see and trust your predictions about. At this stage you often do not consider dynamic obstacles that are hard to predict, or are very far away in terms of time to collision etc. You usually optimize some metric like time to arrival or energy cost or safety (e.g., likelihood of using hazard avoidance during trajectory) or comfort of operator, etc.

In short, you do plan to avoid collisions that you can anticipate at the 10s of seconds to (maybe) minutes range, depending on the density of the environment.

Basically, RRT and MPC dominate this layer, from my experience, and are confusingly called trajectory optimization, trajectory generation, path planning, and feed-forward controllers. Sometimes this is broken up into two layers, as well. You might run this layer at 1-100Hz. Due to the continuing improvement of onboard computation, and the continuing R&D at this layer, sometimes you can do all your planning (including obstacle avoidance) at this layer. Usually, you still want the following layer running just in case...

Hazard avoidance

This layer is the most "reactive". It is the quick reflexes to slam on the brakes or veer when something unexpected happens. Usually this takes as input a general velocity or heading, and tries to keep the vehicle safe while trying to reach that velocity. If a car veers in front of you, you don't want to spend a second replanning your whole trajectory for the next minute (or replanning your strategic objectives), you just want to avoid a collision and let the higher planners take over once the vehicle is safe again.

This layer operates on a millisecond reaction time and only looks over the next few seconds usually. It also does the crudest approximation (to stay fast) of the dynamic obstacle's trajectories, usually linear projection. You might run this layer at 100Hz in some cases.

Technologies fitting in this area are usually something like artificial potential fields or velocity obstacles and are usually classified as obstacle avoidance algorithms.


In my perusion of a few scholarly articles, most, if not all, use them in direct conjunction with each other (such as "Dynamic obstacle avoidance path planning"). Dynamic path planning is defined as "...process of breaking down a desired movement task into discrete motions that satisfy movement constraints and possibly optimize some aspect of the movement." (Wikipedia). Based on these two, its safe to say that obstacle avoidance is part of dynamic path planning.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.