Team Unspecified Objects

From ENGR005_2012
Jump to: navigation, search

Team Unspecified Objects is a byproduct of RobotArtist, a project for Swarthmore's ENGR005 course.

Lucas is excited for the Mini Project! :)
Bledsoe, Kara, Chen, Lucas, Gustavo, and Helen doing MATLAB

Write Up

Overall Idea:

After perusal of robot arm templates, Team Unspecified Objects (TUO) decided upon a generic design utilizing a three-bracket system. One bracket connects the lower arm to servo motor A and the base. Another bracket connects an additional servo motor B to the lower arm. The final bracket connects the upper arm (holding the pencil) to motor B.

Front View
Top Elevated View

For our code: First we input the x and y values that correspond to the circle inscribed in a square into the invKin function. This output is thetaA and thetaB. These values are the input for gotoAngles, which provides pcA and pcB. We send these PC values to the E5 shield , which get assigned to motors A and B. This moves the arms the desired amount in the appropriate direction, producing the intended picture.


  • Problem shooting with design: We had to adapt the original template to fit the pieces with which we were provided.
  • Translating code from theory to actuality: We needed to utilize properties of inverse kinematics to obtain desired outputs.
  • When attempting to access values using gotoAngles, we received an error saying: attempt to reference a non-structure array.
  • The next MATLAB Error read: error using atan2, inputs must be real. This again was related to gotoAngles.
  • After that, we thought that our code just stopped functioning.
  • The drawing itself was slanted.


  • Trial and Error with design: As the robot arm developed, we were better able to discern what components provided the best structure for the desired motion. Our design became more practical. It was based on the template but became more concerned with functionality. Each TUO member had a piece of the arm to construct, and Gustavo put the final pieces together.
  • Cracking the code: We utilized properties of inverse kinematics to obtain desired outputs, keeping in mind the inputs and outputs required and produced by our functions.
  • Righting the wrongs: When running a final draft of our script in MATLAB, we noticed a disconnect where the script stopped functioning. We brainstormed what we thought could be the cause of the abrupt end in execution. Lucas took charge of locating the error.
  • Lucas and Gustavo brought up that using an angle with a degree value greater than the absolute value of 60 gave a pc value that was out of range for the servos. So we adjusted the x and y values so that they provided ideal numbers for pcs.
  • Eventually we discovered that our issue was not in the content of the code, but in the execution of it. We did not give the robot arm time to pause between each movement, so it ran through all the points too quickly. After adding the pause the arm moved appropriately.
  • We rearranged the motors so that their default positions were synched. When the script was run again, the picture came out correctly.

See Derp MOVE

Media:Derp MOVES!!.3gp

Our Code

Media:What Makes Derp Move.m