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
- Your Thesis Journey: From Vision to Success (July 2025) A guide to writing a bachelor's or master's thesis
- Probabilistic Completeness Proofs for Sampling-Based Motion Planning (August 2024) A guide on constructing probabilistic completeness proofs for sampling-based motion planners
- On the Principle of Maximum Entropy (February 2024) Explanation of the principle of maximum entropy and its definition
- Curvature-Based Rejection Sampling for Arbitrary Parameterized Surfaces (June 2023) A way to conduct uniform sampling on arbitrary parameterized surfaces
- Asymptotic Optimality of AO-x (June 2022) A proof that the kinodynamic motion planner AO-x is asymptotically optimal
- Monte Carlo Tree Search (March 2021) A very brief introduction to the Monte Carlo tree search algorithm
- Policy Gradients (January 2021) Details policy gradient methods in reinforcement learning
- Markov Decision Processes (February 2020) Brief introduction to Markov decision processes used in reinforcement learning
- Riemannian Center of Mass (April 2018) Describes the Riemannian center of mass, a generalization of the center of mass to manifolds
- Projection of an N Dimensional Polytope Onto an N-1 Dimensional Polytope (April 2015) Ways of how the projection of a polytope onto another polytope changes its topology
- Geometry of Quaders on Top of Surface Elements of Polytopes (November 2014) How to formulate geometric quaders above the surface of a polytope
- Maximum Ball on a Surface Element of a Polytope (September 2014) Shows how to find the maximum ball inside a polytope using convex optimization
- Convexity Constraints in Optimization over Functional Spaces (April 2014) Brief introduction to applying convex constraints on functional spaces
- Geometrical Visualization of the Projection of a Point Onto a Hyperplane (July 2013) Shows how to project a point onto a hyperplane using geometric arguments
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