ECE 550: Advanced Robotic Planning
Programming Homework #3

Due: May 3, 2016.

For the assignment, you will implement an RRT path planner, and use it to plan paths for a Kuka youbot robot in a 3D world that contains polyhedral obstacles. The lab has two parts: (i) planning a path for the Kuka robot base, and (ii) planning a path for the arm, once the base is in place.

As for the last programming assignment, Hyongju has prepared a tutorial for Assignment #3 to guide you through the assignment. The tutorial contains information about FCL, collision-checking for the Youbot, and some helpful practical advice for implementing an RRT planner.

Part 1: Path Planning for a Mobile Robot

In the second programming assignment, you programmed a potential field planner for the Kuka Youbot's mobile base moving in a polygonal environment. In the first part of this asssignment, you will build an RRT planner to solve the same problem. There are two main differences between the potential field and RRT planners:

  • For the potential field planner, there was no explicit collision checking along paths (collision avoidance was achieved by the effects of the repulsive field). For the RRT planner, collision checking is explicitly performed each time a vertex is added to the tree. In this assignment, you will use FCL to implement collision detection.
  • The potential field planner can be thought of as a sampling-based planner, with samples generated in a deterministic manner using gradient descent on the potential field. For the RRT planner, you will need to implement a random sampling algorithm.

For Part 1 of the assignment, you should implement an RRT planner for the Kuka Youbot's base, and demonstrate your planner using the problem description (start and goal configurations) and environment given in the tutorial for Assignment #3.

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 Kuka Youbot's arm. Since the configuration space for the arm is 5-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. As for Part 1, you should demonstrate your planner using the problem description (start and goal configurations) and environment given in the tutorial for Assignment #3.