Robot motion planning
A path through
the possibilities.
RRT and PRM explore how a robot can find a route through a two-dimensional environment.
Robot motion planning
RRT and PRM explore how a robot can find a route through a two-dimensional environment.
01 · Sample
RRT grows a tree through sampled points, steering toward new configurations and checking the connecting edges.
02 · Connect
PRM constructs a roadmap. A* searches its connections for a route between a start and a goal.
03 · Follow
The highlighted route shows the idea. My recorded planner output is further down the page.
04 · Evaluate
I ran 27 RRT and 27 PRM parameter configurations to see how each setting changes the route.

Individual coursework · ROBO 201 / 202 · Fall 2025
Exploring how a robot finds its way through obstacles.
01 / Purpose
Explore how sampling-based algorithms construct a collision-free route between a start and a goal in a two-dimensional environment.
02 / Approach
The RRT implementation grows a tree through sampled points, steering and checking connections for collisions. PRM constructs a roadmap and uses A* to search for a route. A test harness covers 27 RRT and 27 PRM parameter configurations.
03 / Contribution
I implemented the RRT and PRM planners and the A* roadmap search in Python, on top of the course’s provided interface. I also built the route visualizations and the 3D extension, and ran the 54-configuration parameter sweep.
04 / Demonstration
Below, my RRT runs live in your browser with the same settings as my coursework. After it, my recorded planner visualizations show the sampled nodes, connections, obstacles and the selected path. The 3D extension plans through free space; adding 3D obstacles is the next step.
Try it · live in your browser
This is my Python RRT ported line for line: uniform sampling, nearest node, a fixed step toward the sample and a collision check on every new edge. Tap the map to move the goal.
Growing the tree…


05 / Results
I ran both planners across 54 parameter configurations (27 RRT, 27 PRM), varying the sampling, connection radius and step size, and plotted the route each one found.
06 / Limitations
Each configuration ran once, without fixed random seeds or identical obstacle maps, so the plots show behavior rather than averages. Seeded, repeated runs would be my next step toward a fair comparison.
07 / Lessons learned
Algorithm visualizations help explain behavior, while fair performance comparisons also require reproducible environments and repeated measurements.
Next project
The Blender scenes and animations are illustrations made for this portfolio, not recorded results. The YouTube videos show the real robots and lab demos, and the AURORA film includes footage from the interactive learning demo.
The T42 scene uses the Yale OpenHand Model T42 CAD from the Yale GRAB Lab’s OpenHand repository, licensed CC BY-NC 3.0, with the assembly, materials, tendon path and motion adapted for illustration.
R. R. Ma, L. U. Odhner, A. M. Dollar, “A Modular, Open-Source 3D Printed Underactuated Hand,” ICRA 2013.
The Yale OpenHand Project is an initiative to advance the design and use of robotic hands designed and built through rapid-prototyping techniques in order to encourage more variation and innovation in mechanical hardware. Please visit the Yale OpenHand site for more details.