CS8803RMP: Robot Motion Planning
Programming Homework #2

Due: Apr. 23, 2019.

For the assignment, you will implement an RRT path planner, and use it to plan paths for a mobile manipulator in a 3D world that contains polyhedral obstacles. The lab has two parts: (i) planning a path for the mobile robot base, and (ii) planning a path for the arm, once the base is in place. You are free to choose which mobile manipulator to use. The KUKA Youbot is a reasonable choice, even though this robot is no longer in production. The Fetch mobile manipulator is another reasonable choice.

A few years ago, I gave a similar programming assignment for a class at UIUC. At that time, my TA, Hyongju prepared a tutorial to guide students through the assignment. The tutorial contains information about FCL, collision-checking for the Youbot, and some helpful practical advice for implementing an RRT planner. It may not be completely up to date, but I think that you'll find some helpful info there.

Part 1: Path Planning for a Mobile Robot

For this part of the assignment, you will build an RRT to plan a path for the mobile base, from start to goal configuration. To do this, you will need to implement collision checking for each new edge in the RRT, and this should be done using FCL.

Part 2: Path Planning for a Robot Arm

For Part 2 of this assignment, you will extend the RRT planner from Part 1 so that it can construct collision-free paths for the robot's arm. Since the configuration space for the arm is an n-torus (instead of SE(2) for the mobile base), you will need to take care when building your sampling algorithm. Otherwise, this should be a fairly straightforward extension to the planner of Part 1.