Motion Planning HW7

Ross Hatton


RRT planner for 5-linked solid arm

For this assignment, I implemented an RRT planner for a 5-link serial arm. Each link of the robot is a solid hexagon. Each joint is allowed to revolve completely, making the configuration space of the robot the unit 5-torus.

In the demonstration movies, the goal region is the blue circle, and the black circle is an obstacle that the arm must avoid. The first movie shows a sampling of the test configurations the robot moved through, while the second shows the path that was eventually found.

The toroidal nature of the configuration space is accounted for by the planner, which uses a triple-chart-check to find the true shortest distance from a randomly selected configuration to each of the configurations already reached. This behavior is apparent in the demonstration videos, where the path found swings the arm down and around, even though the goal region is above the robot base.

Search movie
Path found movie

Matlab Code

Matlab code

backtrace.m
Backtrace along the RRT to produce a path from start to goal
closest_node.m
Find the existing node that is closest to a new configuration
cyclic.m
1-based modular arithmetic
detect_collisions.m
Detect collisions between world-objects
distance.m
Find the distance between points
draw_object.m
Draw a world-object
draw_set.m
Draw a composite world-object
meetpoint.m
Low-level line intersection
motion_planning_HW7.m
Main code
place_links.m
Position the robot arm
rrttry.m
Main RRT algorithm
update_vertices.m
Update the world-geometry of an object