# CMU RI 16-711: KDC: Assignment 6

## For this assignment you are going to use the PUMA 500 robot at the REL lab.

·         You will need to take a guided intro of the robot

·         You are only allowed to change the following files

·         traj - a reference trajectory that you specify

·         user.cfg - allows you to load new parameters (like gains) without having to recompile

• Min/Max values are given in the table below. You are not allowed to exceed these. If these are exceeded, the robot will shut down and alert you to this fact. You may waste a lot of time resetting the robot if this happens.

·         DO NOT ENTER ROBOT WORKSPACE WHILE CONTROL PROGRAM IS RUNNING

·         To compile and run your code:

1.       Copy your source code to the directory C:\kdc\[name]\

2.       Open MSDOS prompt and go to your directory ("cd \kdc\[name]")

3.       Run "c:\tc\tc.exe"

4.       Load the project file "robotm.prj" (Alt-P, P, Enter, Enter)

5.       Select robotm.c as the primary file (Alt-C, P, Enter, Select ROBOTM.C, Enter)

6.       Compile the code (Alt-C, B)

·         To run a trajectory on the robot:

1.       Create a trajectory in the format given above

2.       Turn on the control box by flipping the POWER ON switch

4.       Press 'e' to enable power

5.       Press 'c' to enable the controller

6.       Press the button labeled ARM POWER ON on the control box

7.       Press 'T' to initiate the trajectory

8.       Press 'q' to quit and disable power

 Joint1 Joint2 Joint3 Angle (rad) Velocity (rad/s) Torque (?) Angle Velocity Torque Angle Velocity Torque Min -1 --- -2500 -2.5 --- -3000 0.8 --- -3000 Max 1 --- 2500 -0.8 --- 2500 2.5 --- 3000

QUESTIONS:

1.1 Find an estimate of the DH parameters for the PUMA robot (you can search for this on the net or measure the physical parameters of the robot).

1.2 Derive the equations of motion for based on your model of the robot (use maple/mathematica/matlab or anything else you know of).

2.1 Generate a simulation of the robot based on these equations of motion. You can use a simplified simulation provided here to validate your simulation. The parameters in the given simulation need to be modified to match up with your parameters.

2.2 Generate a stable controller to move the robot in simulation to any desired configuration (the configuration is given by the 3 joint angles). Report the performance of your controller.

2.3 Test this controller on the real robot. Report the performance of your controller.

2.4 Now generate a trajectory in joint space and make the real robot follow it.

Always test your controller on the simulator before trying it on the robot

3.1 Improve your estimates of the robot model (Mass matrix, friction etc) using data collected from the robot. Report the improvement in the model.

3.2 Extra credit: Implement some form of feed forward control on the robot using the improved parameters or learn the feed forward torques to improve performance along a trajectory by practicing it. Report the improvement in trajectory following performance.

4. Suppose the motor for the second joint (the one actuating the final link) fails, is the system locally controllable about the vertical up position? Explain your answer.

## What to turn in?

Generate a web page describing what you did. Include links to your source and compiled code in either .zip, .tar, or .tar.gz format. Be sure to list the names of all the members of your group. Mail the URL of your web page to sanan@cmu.xxx and cc cga@cmu.xxx [You complete the address, we are trying to avoid spam.] The write up is more important than the code. What did     you do? Why did it work? What didn't work?