MEAM.Design - MEAM 520 - PUMA Light Painting: Simulation

Now that you did your inverse kinematics solution, it's time to do light painting. This assignment is due by 5:00 p.m. on Thursday, October 25. Your team must submit this assignment and get it to work correctly before you will be allowed to do the next part of the project (working with the robot). Submissions after the deadline will be penalized, but not as harshly as for individual homework assignments.

Your task is to write a MATLAB program that moves the PUMA's LED around in space to create a lovely light painting (long exposure image).

You should use our PUMA simulator (v4) to test your light painting code. As shown at right, it creates an animation of the PUMA and leaves colored markers in the air so you can see how your creation looks. After you download the simulator, run demo.m to see how it works. Read pumasim_manual.pdf to learn more about the simulator's interface. Please post on Piazza if you are confused about any aspect of the simulator or if you find any bugs.

IK Test Function
Concerned about your team's inverse kinematics function? You are welcome to try running it through the pcoded test functions (v1) written by one of the graders; these functions are included inside v4 of the simulator. Note that these functions assume your IK is designed around the origin of frame 6, not the LED position. As explained in the readme file inside the zip folder, there are two functions. One does a very simple test on a set of angles that you specify and returns whether your function runs. The other generates 100 random configurations, tests them, and gives you two scores (without and with current robot configuration). Both take an integer for your team number. The .p files need to be in the same directory as your team's inverse kinematics code. To get the hang of the tester, you can run it on the included dummy file by team 99. This is being provided with no guarantee; post questions on Piazza, but we may not be able to support this.


  1. Start an email to
  2. Make the subject PUMA Simulation: Team 00, replacing 00 with your team number.
  3. Attach all of your correctly named MATLAB files to the email. It should be puma_light_painting_teamXX.m, where XX is your team number, plus any additional files you may have created, also named according to this convention.
  4. In the body of the email, explain the status of your submission. If you are submitting a new version of your IK with this assignment, state that in the email.
  5. Send the email.
  6. Wait for a response from the teaching team about whether your code is ready to run on the robot.

Please come talk to the teaching team or post questions on Piazza if you get stuck on any part of this assignment.

PUMA simulator (v4)