Robot motion planning

A path through
the possibilities.

RRT and PRM explore how a robot can find a route through a two-dimensional environment.

01 · Sample

Explore before
you commit.

RRT grows a tree through sampled points, steering toward new configurations and checking the connecting edges.

02 · Connect

Build a map
of what is possible.

PRM constructs a roadmap. A* searches its connections for a route between a start and a goal.

03 · Follow

One route.
Many decisions.

The highlighted route shows the idea. My recorded planner output is further down the page.

04 · Evaluate

54 configurations.
Better questions.

I ran 27 RRT and 27 PRM parameter configurations to see how each setting changes the route.

A three-dimensional explanatory map with obstacles, a growing search tree and a highlighted path.
ROBOT MOTION PLANNINGBlender illustration of a planning scene
Read the case study
Scroll or use arrow keys on the slider

Individual coursework · ROBO 201 / 202 · Fall 2025

Robot Motion Planning

Exploring how a robot finds its way through obstacles.

PythonRRTPRMA* search

At a glance

Role
Implemented RRT, PRM and A* roadmap search
Team
Individual coursework
Courses
ROBO 201 Motion Planning Algorithms for Robotics and ROBO 202 Software Development for Robotics
Built with
Python, on the course’s provided interface
Result
Ran RRT and PRM across 54 configurations (27 each)

01 / Purpose

What I set out to do.

Explore how sampling-based algorithms construct a collision-free route between a start and a goal in a two-dimensional environment.

02 / Approach

How it came together.

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

What I built.

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

See it working.

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

Watch my RRT planner grow a tree

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.

Step size
Obstacles

Growing the tree…

Same settings as my coursework: a 10 × 10 world, start at (1, 1), goal at (9, 9), a 0.5 goal radius, up to 5,000 iterations, and the step sizes and obstacle counts from my parameter sweep. Obstacles are random circles and rectangles, kept off the start and goal.

05 / Results

What I achieved.

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

Limits and next steps.

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

What I’m taking forward.

Algorithm visualizations help explain behavior, while fair performance comparisons also require reproducible environments and repeated measurements.

Next project

Model T42 Robotic Gripper

Loading image
Visual sources & attribution

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.