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})
}
from Choset, Howie M., et al. Principles of robot motion: theory, algorithms, and implementation. MIT press, 2005.
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
Google "drake+ompl" to find some examples (on stackoverflow) of drake integration in C++. Using the python bindings should work, too.