Motion planning

as search

MIT 6.8210: Underactuated Robotics

Spring 2023, Lecture 18

Follow live at https://slides.com/d/kppzqhY/live
(or later at https://slides.com/russtedrake/spring23-lec18)

Image credit: Boston Dynamics

http://www.kuffner.org/james/plan

from Choset, Howie M., et al. Principles of robot motion: theory, algorithms, and implementation. MIT press, 2005.

Amato, Nancy M., and Yan Wu. "A randomized roadmap method for path and manipulation planning." Proceedings of IEEE international conference on robotics and automation. Vol. 1. IEEE, 1996.

BUILD_ROADMAP () {
  V = {}, E = {}
  for k = 1 to K
    repeat 
    	q = RANDOM_CONFIG()
    until q is collision free
    V.insert(q)
  for all q in V
    for all qn in NearestNeighbors(q, V)
      if {q,qn} is collision free
        E.insert({q,qn})
}

Probabilistic Roadmap (PRM)

from Choset, Howie M., et al. Principles of robot motion: theory, algorithms, and implementation. MIT press, 2005.

Rapidly-exploring random trees (RRTs)

BUILD_RRT (qinit) {
  T.init(qinit);
  for k = 1 to K do
    qrand = RANDOM_CONFIG();
    EXTEND(T, qrand)
}

Naive Sampling

RRTs have a "Voronoi-bias"

Cost-to-go for the obstacle-free case

Basic RRT

Reachability-Guided RRT

Open Motion Planning Library (OMPL)

Google "drake+ompl" to find some examples (on stackoverflow) of drake integration in C++.  Using the python bindings should work, too.

Lecture 18: Motion planning as search

By russtedrake

Lecture 18: Motion planning as search

MIT Underactuated Robotics Spring 2023 http://underactuated.csail.mit.edu

  • 723