Loading

Lecture 16: Motion Planning (part 2)

russtedrake

This is a live streamed presentation. You will automatically follow the presenter and see the slide they're currently on.

Motion Planning (part 2)

MIT 6.881: Robotic Manipulation

Fall 2020, Lecture 16

Follow live at https://slides.com/russtedrake/fall20-lec16/live

(or later at https://slides.com/russtedrake/fall20-lec16)

Inverse kinematics as an optimization

\min_q | q-q_{desired}|

subject to:

  • rich end-effector constraints
  • joint limits
  • collision avoidance
  • "gaze constraints"
  • "feet stay put"
  • balance (center of mass)
  • ...

work by Hongkai Dai et al. at TRI

Probabilistic Roadmap (PRM)

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.

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

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)
}

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

Naive Sampling

RRTs have a "Voronoi-bias"

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.