Resources
Here are some learning resources that I created. This includes motion planning lecture slides (created jointly with Wolfgang Hönig), some teaching notes, and code libraries which you might find helpful.
Motion Planning Lecture Slides
Please check here for an up-to-date version and videos.
- Lecture 1 Organization, Introduction, Problem Formulation
- Lecture 2 Transformations, Angular Representations, Metrics, Efficient Collision Checking
- Lecture 3 Graph-based Planning: Representations, A*, Admissible Heuristics
- Lecture 4 Advanced Search-Based Motion Planning
- Lecture 5 Sampling-Based Geometric Motion Planning: PRMs
- Lecture 6 Tree-based and Asymptotically-Optimal Planning
- Lecture 7 Kinodynamic Planning: Kinodynamic RRT, SST*, AO-x Geometric Planning: RRT-Connect, EST, PRM*
- Lecture 8 Introduction to the Open Motion Planning Library (OMPL)
- Lecture 9 Sampling-Based Motion Planning: More Theory and Planners (EST, RRT-Connect, PRM*, LazyPRM, FMT*); Intro to Optimization
- Lecture 10 Optimization-Based Motion Planning
- Lecture 11 Differential Flatness and SCP
- Lecture 12 Optimization Wrap-Up and Method Comparison
- Lecture 13 Multi-robot Motion Planning
Teaching Notes
- Monte Carlo Tree Search Explains the Monte Carlo Tree Search algorithm, widely used in game playing and decision-making AI systems.
- Policy Gradients Details policy gradient methods in reinforcement learning.
- Convexity in Functional Spaces Small introduction to applying convex constraints on functional spaces.
- Quaders on polytope surfaces How to formulate geometric quaders above the surface of a polytope.
- Markov Decision Processes Brief intro to Markov Decision Processes used in reinforcement learning and decision theory.
- Maximum circle on a polytope surface Describes how to find the maximum circle constrained to the surface of a polytope using convex optimization.
- Projections of Polytopes onto lower-dimensional Polytopes Ways of how the projection of a polytope onto another polytope changes its topology.
- Projection of a point onto a Hyperplane Shows how to project a point onto a hyperplane, a common operation in linear algebra and optimization.
- Riemannian Center of Mass Describes the concept of the Riemannian center of mass, a generalization of the center of mass to manifolds.
Code
- OMPL Benchmark Plotter Plot benchmarks from the Open Motion Planning Library (OMPL)
- Configuration Space Visualizer A visualization tool to visualize 2D configuration spaces for point robots.
- CPP Util Several handy C/C++ utility functions
- FFmpeg Video Manipulation Interface to create and edit videos in python using ffmpeg-python.
- Vim Snippets Additional Vim snippets to optimize my workflow
- BPY Scripting Blender python bpy scripts