Starting from:
$35

$29

Motion Planning with a 6-DOF Manipulator

In this lab assignment, you will implement the RRT algorithm for a 6-DOF robotic ma-nipulator. To perform the assignment, you will need to have installed the AIKIDO in-frastructure. We provide for you the file adarrt.py, which contains several methods you will fill in. During development, you will run your code in simulation with -

$ python adarrt.py --sim

The python file contains the following classes and functions:

AdaRRT: This is the main class. It initializes the start and goal node, the number of iterations, the step size d when extending a node in the tree, the desired goal precision e and the joint limits of the robot. It also includes information about the environment, which includes a table, a soda can that we want to grasp, the robot and a set of constraints that check for collisions. This implementation will be very similar to the RRT you built in HW4, with a few modifications discussed below.

AdaRRT.Node: A Node object should contain a copy of the state, a pointer to the parent node in the tree, and a list of pointers to all its child nodes in the tree. A state in the provided code is a 6D np.array that contains the robot’s configuration.

main: this function specifies the start and goal configurations, sets up the RRT planner and computes a path. It then calls the AIKIDO function
compute joint space path, which generates a trajectory for the robot to follow.


Steps to complete the lab:

    1. Implement an RRT algorithm by filling in the code in the provided file. For start-ing configuration qS and goal configuration qG, and parameters e and d use:

qS = [
1.5, 3.22, 1.23,
2.19, 1.8, 1.2]
qG = [
1.72, 4.44, 2.02,
2.04, 2.66, 1.39]
d = 0.25

e = 1.0


Make sure you have roscore running before starting your RRT!

1
CS 545: Introduction to Robotics    Fall 2021


    2. Visualize the trajectory in rviz. First, execute your AdaRRT implementation, but don’t execute the trajectory. Then, open rviz from the command line using rosrun rviz rviz. In the bottom left module, click the ”Add” button and navigate to the ”By Topic” tab. You should see a InteractiveMarkers topic under /dart markers. Add the topic before executing your trajectory generated by AdaRRT.

    3. Use an off-shelf screen capture software (e.g., https://itsfoss.com/kazam-screen-recorder/) to record a video of the trajec-tory. Include the video in the root of your GitHub repo as a file named question-3.mp4.

    4. The RRT trajectory is typically jerky. Typical planners use shortcutting algorithms to make the plath smoother. Replace the function ada.compute joint space path with ada.compute smooth joint space path. Capture the new trajectory with two videos – one showing the default isometric view, and another showing the top view. Include the videos in the root of your GitHub repo as files named question-4-default.mp4 and question-4-top.mp4.

    5. The goal precision e of 1.0 in the previous question is too large. In order to avoid collisions, we need to improve the precision. However, this dramatically increases the time to compute a solution. To improve computation, add a method get random sample near goal that generates a sample around the goal within a distance of 0.05 along each axis of the search space. Then, change the build method so that it calls get random sample near goal with probability 0.2 and get random sample with probability 0.8. Reduce e to 0.2.

Write down your observations in the PDF file. Also capture the new trajectory with two videos – one showing the default isometric view, and another showing the top view. Include the videos in the root of your GitHub repo as files named question-5-default.mp4 and question-5-top.mp4.

    6. Explain why it is not a good idea to call get random sample near goal with prob-ability 1.0. Also present an example where this could be problematic. Write your answer in the PDF.


In-person lab: Once you are confident in your simulation results, you are ready to run it on the real robot. This can be done on the lab workstations with -

$ python adarrt.py --real

Refer to Piazza for more instructions on scheduling time in the lab.







2

More products