From ENGR005_2012
Revision as of 19:43, 25 November 2012 by Dpekert1 (Talk | contribs) (Team Bagel:)

Jump to: navigation, search




Team Bagel:

For our project, we designed the robot so it would be right-handed robot with equivalently proportioned fore and aft arm lengths. Our design was pretty simple as was our code. Our code consisted of multiple segments of code that wrote to the servo for each pair of coordinates at a time, finishing the outside of the square before drawing the inner circle within the square. Although our code worked in the end, we initially had some problems getting the inverse kinematics function to work properly, and even after establishing the correct code to make the arm move, we had some difficulties getting the arm to draw the proper shapes because the jerkiness of the arms caused the drawings to be a little skewed. Unfortunately, we neglected to get proof that our robot functioned properly before disassembling it, so in the end you will probably just have to ask one of the eyewitnesses from the demonstration to tell you about it or test the code for yourself using the provided zip file.

Team Blue Steel:

The Blue Steel Robot


Preliminary Designs


We used two servo motors to control our robot arm, which was comprised of a lower arm and an upper arm. The lower one was created on Solidworks, and the upper arm was a metal rod. Each motor sent pulses dictating the angle to which the arm of the robot would rotate. We connected the arm to the table using a "c" clamp to ensure that the robot would not move while drawing. When we first ran the robot, the pencil marks were too light to be seen on the paper. We then programmed the arm to run the drawing 20 times to darken the shapes. While this solution was effective, we still found it necessary to tighten the screw holding the pencil to keep it better in place. This additional change made the shapes even more defined. However, when we tightened the screw too tight, the pencil began to trace an oval instead of a circle. We had to find the right balance in tightness to ensure that the marks were dark enough and the pencil traced more of a circle.

Proof of the Success of our Robot : Youtube Video

Matlab Script File:ServoCalibrateBlueSteelAndrewAfternoon.m

The Sith Lords:

Our goal in this project was to design the arm such that it could draw a circle inside a square along with similarly complex designs. To do this, we had to write a number of functions. The first one we needed was the File:InvKin.m function. This function converts (x,y) coordinates to two angles for the two arms. The next thing we need to do was transfer those angles into pulse counts for the servo motors. We used to functions for this. First, the File:GetPCs.m function transformed the angles into pulse counts. This required calibration of the motors to find which pulse counts corresponded to which angles. Finally, the File:GotoAngles.m function used the GetPcs function to take an angle, convert it to a pulse count, and send that pulse count to the servo motor. These three functions allowed us to input an (x,y) coordinate, or a set of them, calculate angles to achieve that point, and then move the arms to those positions. We then wrote the File:MiniProject.m script which defined the x and y coordinates of a square and a circle, and then used the functions to move the arms through all of the points defining the two shapes.

Our final design did work. As you can see below, we successfully got a circle inside of a square.

Robot Drawing.JPG

Team Unspecified Objects:

Team Unspecified Objects

Team GOAR:

It's about to get goar-y.

Zip file:

File:E5 Lab 8 Code The Artistic Robot Arm Team GOAR




Team Not the Incredibles


Team No Name:


Team Cyborg:

The goal of our project was to use our robot arm to draw a circle inscribed in a square. For our arm we connected a steel dowel to a servomotor, our “lower arm”, and a plastic arm, which we had designed on solid works and printed using a 3-d printer, to a motor as well, our “upper arm”. Using screws we connected the two parts together to create our arm. We then used a clamp to attach the arm to the table. The pencil was placed at the end of the plastic part. Originally, the mark the pencil made was too light, so we screwed the pencil into the arm and taped a wrench to the plastic part to add weight to that section of the arm. Also, our motors burned out a couple of times and the new motors we used were not calibrated properly, so our circle was more of an oval.

Team Members:

Team ExtraDubious:

Team Members:

File:MiniLab Robot

: Youtube Video

When we were calibrating and constructing our robot arm, we used a motor connected to an "upper arm" of 15cm, and a second motor with a "lower arm" connected to the end of the upper arm. We tried to make a right arm, but somewhere we messed up with the calibration so it is backwards which unfortunately does not allow as much motion. When both arms were at 0 degrees, the whole arm was straight out. Looking back, it would have been better if 0 was a 90 degree angle instead. When we were writing the code to test, we continually ran in to problems with motors and connecting to the calibration. We realized that we wanted to have a for loop that would update the position of the arms using the invKin function. Our invKin function worked before in the previous lab, but we often received errors when working with our actual robot arm. We had code for both a circle and a square, but they would not work properly. A major issue that we were unable to overcome was matching up the distance we put in and having the arm move the appropriate length. For example, we would type in for the arm to move a centimeter to the left, but the arm would instead only move a tenth of a centimeter. By the end, we were able to make a small triangle using a for loop and our functions. Given more time, we believe we could have worked out all the bugs so that we could make a larger circle inscribed in a square.

Team Cool Robot:

Team Members:

Project 6: Robot Artist - Cool Robot