|
Robot Motion Planning—Home Work 7
Q) Implement a PRM planner for a multi-link (at least four) robot arm.
Figure 1: Environment Figure 2: Randomly Sampled Configurations (Yellow), Starting Configuration (Blue) and Goal Configuration (Magenta)
Figure 3: Configuration Nodes of the PRM in the Path from start to goal
Click here for the Movie (Right-click and Save As if you have problems in viewing the movie online)
My Implementation is as follows:
̃ The robot arm considered here is a four-link arm fixed at (0,0) base position. The links are of unit length and are assumed to be thin lines. The range of values of the joint angles is restricted to –90 degrees to +90 degrees (except for the first joint angle where it is just 0 to +90 degrees). Figure 1 shows the environment of operation of the robot arm.
̃ First step in the implementation is random sampling. Random sampling is done in the joint space and forward kinematics is used to determine the joint positions (x,y) in the workspace.
̃ Second step is the determination of valid configurations for the random samples. A collision-checking function declares the validity of a configuration by checking for collision with the obstacles ( valid <=> no collision). Figure 2 shows all the valid random configurations generated. The green circles refer to the joints and the yellow lines refer to the links (They don't actually hit the obstacles; they appear so because they have been plotted thick for the ease of visibility). All these configurations are considered as nodes of the PRM.
̃ Third step is the A* implementation to determine the optimal path in the PRM. First an adjacency/connectivity matrix is generated. Two nodes (configurations) are said to be connected if there exists a trajectory from one node to an other free from obstacle collision. The joint angle trajectories are determined by a trajectory planner that plans a cubic polynomial trajectory. Once the adjacency matrix is available, the A* implemented in HW4 is used to get the optimal path. The heuristic used here is the sum of absolute angular differences between the joints of two configurations (Manhattan Distance). Figure 3 shows the nodes of a path generated by A*. The path is optimal with respect to the PRM generated.
If the A* algorithm is not able to find a path, then the valid randomly sampled configurations aren’t connected enough to find a solution. So, we need to re-sample. The implementation goes to Step 4.
̃ Fourth step (only if the third step fails) is the re-sampling procedure. We need to sample more at points near the obstacles. The implementation randomly generates points near the obstacle in workspace and does inverse kinematics to determine the configurations (joint angles). Then the implementation goes through Steps 2 and 3.
Even after re-sampling near the obstacles, if A* is not able to find a path, then implementation concludes “NO PATH FOUND”.
̃ Final step (if A* finds a path) is the local planner between nodes (trajectory planning). The trajectory planner plans a cubic polynomial path for the joint angles for moving from one node to another. The movie shows the robot arm executing a plan by moving from one node to another on the optimal path.
|

