Lab 8: Robot Arm Kinematics

# Challenge Statement:

Build a robot arm that can perform inverse kinematics.

# Demo:

1. Build a two link robotic arm that has two revolute joints on the same plane with link lengths 3.75 inches and 2.5 inches respectively.
2. Attatch a marker to the end effector so that its position can be easily determined.
3. Build a base in order to keep the arm fixed and place the arm in the appropriate position on the map in the reference configuration.
4. Then, given a start and end position in cartesian coordinates (X and Y in inches) make the end effector of the arm move from the reference position to the start position.
5. Wait for the position of the end effector to be recorded and then press a button that makes to arm move from the start position to the end position and stop there.
6. Note that not all positions given in the map below are rechable but only rechable configurations will tested.
7. Three tries will be given in order to improve your score if needed. All tries are independent of each other. Progressively easier positions can be requested, each for a 10 point penalty and only once per try. A request cannot be made on the first try.

# Map:

 The map the arm will be tested on. All numbers are in inches and the blue line represents the arm in its reference configuration.

# How to:

1. Write a function that takes both a desired 2D position for the end effector and returns one required set of joint angles for the arm described above such that the end effector is on the desired position.
2. Write a function that given the current configuration and desired configuration, moves the joints such that the robot ends up in the desired configuration. This can be done by setting the desired encoder value and spinning the motors in the correct direction.

# Other tips:

1. The encoders are accurate only upto 1 degree. So make sure you round off the value to the closest degree before setting the desired encoder counts.
2. Make sure to handle special cases while writing the atan2 function.

# Evaluation:

1. Start position (out of 40 points) :
i) End effector within a half inch radius of the start position - 25 points
ii) End effector within a quarter inch radius of the start position - 40 points
2. End position (out of 60 points) :
i) End effector within a half inch radius of the end position - 40 points
ii) End effector within a quarter inch radius of the end position - 60 points