This assignment explores the control of a real live robot. First, a model and simulation are created to demonstrate a stable control law. Then the controller is implemented on a PUMA robot.
Because the PUMA robot is large and powerful (therefore dangerous), we have implemented precautions and protocals that all students will need to follow when working on the robot. If at any time you need help using the robot, email Ben at bstephens@cmu or call him at 405-255-7779. Ben is usually available on campus 8am-6pm.
Joint 1 | Joint 2 | Joint 3 | |||||||
Angle (rad) | Velocity (rad/s) | Torque (?) | Angle | Velocity | Torque | Angle | Velocity | Torque | |
Min | -1.0 | --- | -2500 | -2.5 | --- | -3000 | 0.8 | --- | -3000 |
Max | 1.0 | --- | 2500 | -0.8 | --- | 2500 | 2.5 | --- | 3000 |
Part 1a. Email Ben (bstephens@cmu) to schedule a time to get a guided intro to the PUMA robot. You must do this before you use the robot. This can be done in groups.
Part 1b. Look at the robot and measure, guess, or google physical parameters (it is up to you which parameters are important). Record all of these values.
Part 1c. Create a simulation based on the estimated robot parameters. Create a controller (PD,PID,LQR,etc.) that can hold a set of desired joint angles. Demonstrate that the controller is stable when given step inputs (desired angles).
Part 2a. Generate a joint trajectory. Run the trajectory in your simulator and make sure that it can follow it.
Part 2b. Run the trajectory on the robot and save the data.
Part 2c. Use data from the robot experiment to refine your estimates of the physical parameters of the robot. Update your simulation/controller and make sure it is stable in simulation, then again on the robot.
Part 3a. Generate feedforward torques based on your model to follow a trajectory. Compare how the robot follows the trajectory with and without feedforward torques.
Part 3b. Refine feedforward commands using learning
Part 3c. Repeat Part 3a, but use a Kalman Filter (extra credit: Extended KF) to estimate velocities.