ROBOT ARM: Shunta Muto, Osvaldo Calzada

Challenge 1:

Robot arm consists of two links, three motors, base, and gripper. Since each motor was already embedded in its arm, we only needed to connect each motor through a rod to build the robot arm. One end of the arm was connected to the rectangular base, on which the processor brick was mounted to provide the counter weight for the robot arm. If the processor brick and the arm was not mounted onto the same base, weight of the arm could cause itself to fall. Thus, heavy weight of the processor brick helps the robot arm to stabilize, so that it rotates smoothly on 2D plane. The gripper is directly attached to the motor at the tip, where pen is held by pressing it with rods that are connected to each other, forming a square.

Image Image Image

Video below shows the range of motion for the robot arm. Recorded minimum and maximum positions are as follows:

Minimum Position

theta_B:-89, theta_L:-78

x:-14.48 y:-11.37

Maximum Position

theta_B:86, theta_L:72

x:-13.35 y:13.6

Video showing the range

Challenge 2:

Position of the end effector was calculated using simple trigonometric relationship. In doing so, we used “math” library on python to calculate each trig function. In order to calculate the xy position of the end effector, we measured the length of the links beforehand. After some trials, we realized that the positive direction for the rotation of the two motors were opposite from each other, so we aligned the direction by inserting negative sign for one of the motor. We also checked the numerical values against the measurement to make sure that our calculation provides good approximation. Results are as follows:


[video or pic]

Video below shows the movement of the end effector

Challenge 3:

Using built-in functions, we wrote code that records 3 positions of each motor in degree and moves the motor to the recorded positions. Eah time the program records the position, it waits for 2 seconds to wait for the user to move the arm to the new position. Once it records all positions, it should go back to the original position, because we can only move the motor relative to its previous position. Furthermore,

Code and video-recorded results are shown below.


Image Image