|
Carnegie Mellon University |
|
The Robotics Institute. |
|
Robotic Motion Planning, 16735: Homework 7 |
|
RRT based planner for 4 link serial manipulator |
|
Fig. 1– Success |
|
Fig. 2-Success |
|
Algorithm and Implementation :
I used an RRT based planner for the robot. The robot is a 4 link serial manipulator. The RRT generates nodes in the workspace of the robot. The robot has four links of 2.5 units each and therefore I sampled random points within a radius of 10 units from the base of the robot.
The RRT algorithm works in the following manner: 1. Initialize the tree by adding the start point (x,y)start 2. Generate a random point xrand, (x,y) in the workspace. 3. Find the closest point in the tree to the random point. 4. find delta_x by moving along a fixed step length from xnear to xrand. 5. Use this in the formula delta_theta = pinv(J)*delta_x, to find delta_theta (increment in joint angles to move by delta_x) . Here pinv is the Pseudo-Inverse, since the manipulator is redundant, J is the jacobian. 6. Using the forward kinematics apply delta_theta angle increment and find the actual workspace position of the end of the manipulator. 7. Store this position as a node in the tree under the condition that it is in free space, and does not correspond to a collision of the links of the robot with the obstacles. Also store the joint angles in the node. 8. Continue the above until the new node added is the goal, or the number of nodes exceeds a certain number. 9. Once the goal is in the tree perform an A* search from the start to the goal and find a path.
For collision detection I used code that I developed for previous assignments which finds intersection of lines and polygon.
|