Robotic Arm: Team Provolone
Can they build it? YES, they can.
Team Provolone is arguably the best team for the Robot Arm Lab. They are dedicated to success and will not stop until the job is done. The team's design hinges on uniqueness and versatility, which will make the design a cutting-edge prototype produced to complete the assigned test with efficiency and grace.
The Provolone team (the only team) decided to use a base composed of a "turntable-like" disc supported on ball bearings to stabilizes the arm. While simple and aesthetically pleasing, the hollow plastic design of our base made it very light. It could not completely counterbalance the weight of the arms and had to be clamped/held down in order to work the most efficiently. The first servo is hidden within the base. The second servo is mounted at the end of the upper arm by a large black bracket. Coming from this joint is the short lower arm that is attached to the pencil holder. During the designing process, the arm was originally built with a two relatively long upper and lower arms. However, the torque that the arms exerted (especially on the servos), caused the apparatus to tip over. In order to created a more balanced model, the team decided to build with shorter arms. Though the shortening of the arms gave us more control while the machine was in operation, it reduced our drawing space ("area"). This became a nuisance when we attempted to define a center point for our arms while it underwent inverse kinematics.
Lesson: Experimentation with hardware got us nowhere.
The basis of the code is the construction of a nx2 Matrix ("MAT") that contains all the points needed to be connected in order to draw a circle and a square. The first section of the matrix (the first rows) is the division of the circle into many equidistant points. The number of points in the circle can be changed in order to adjust accuracy--the more points, the more "accurate" representation of a circle was created. The second part of the matrix is the division of the square into 16 points. The size of the square was drawn in relation to the radius of the previously drawn circle (2r by 2r--the radius of the circle as a basis for the construction of the points). After the matrix is constructed, it translates these images so they are drawn about a specific point (x0,y0)--the center point. The points of the matrix undergo inverse and forward kinematics to find the position of the lower arm and the displacement angle of the two joints. Then, the angle is converted into pulse widths that create a command string that is sent to the servos. Simultaneously, graphs of the points in MAT and the path of the arm are displayed on screen.
At first, the circle drawn by the arm was oval shaped. This is because the center of the circle and the radius of the circle were out of reach of the robot arm, making the arm distort the image. After fixing these values, the robot still had trouble drawing a circle and a square. This might be cause by the jerky movement of the servos and the friction of the pencil on the paper.