Goal:
- To create a robot arm that is able to move to specific angles or positions using three servos and an Arduino.
Planning/Design Proposal:
Overall Objective
I’m going to add another servo to the arm that was originally designed for the 2d kinematic project, then I will program the servos to move to desired angles. This will be done by creating an additional 3d printed linkage and adding it to the existing arm.
Who is involved?
Alex Racel
What resources will your team need?
I will just need a few screws, 3 servos, an Arduino, and a breadboard.
Equations:
Forward kinematic equations
Input: L1=5 L2=5 q1=Z rotation q2=Y rotation q3=Y rotation
X= L2*Cosq1*Cosq2*Cosq3-L2*Cosq1*Sinq2*Sinq3+L1*Cosq1*Cosq2
Y=L2*Sinq1*Cosq2*Cosq3-L2*Sinq1*Sinq2*Sinq3+L1*Sinq1*Cosq2
Z=-L2*Sinq2*Cosq3-L2*Cosq2*Sinq3-L1*Sinq2
These equations were used to make the robotic arm move by inputting the specific angles for each of he joints, and then calculate the position that the end effector of the arm will be once the servos move to the correct angles.
Inverse kinematic equations
Input: L1=5 L2=5 X, Y, Z
Q1 = tan^-1(y/x)
Q2 = tan^-1(z/sqrt(x^2+y^2))-tan^-1((L2*Sinq3)/*(L1+L2*Cosq3))
Q3 = +or- cos((x^2+y^2+z^2-L1^2-L2^2)/(2*L1*L2))
These equations will make the arm move to a position based on the X, Y, and Z values input by the user by calculating the angle for each servo to reach the desired location.
I’m going to add another servo to the arm that was originally designed for the 2d kinematic project, then I will program the servos to move to desired angles. This will be done by creating an additional 3d printed linkage and adding it to the existing arm.
Who is involved?
Alex Racel
What resources will your team need?
I will just need a few screws, 3 servos, an Arduino, and a breadboard.
Equations:
Forward kinematic equations
Input: L1=5 L2=5 q1=Z rotation q2=Y rotation q3=Y rotation
X= L2*Cosq1*Cosq2*Cosq3-L2*Cosq1*Sinq2*Sinq3+L1*Cosq1*Cosq2
Y=L2*Sinq1*Cosq2*Cosq3-L2*Sinq1*Sinq2*Sinq3+L1*Sinq1*Cosq2
Z=-L2*Sinq2*Cosq3-L2*Cosq2*Sinq3-L1*Sinq2
These equations were used to make the robotic arm move by inputting the specific angles for each of he joints, and then calculate the position that the end effector of the arm will be once the servos move to the correct angles.
Inverse kinematic equations
Input: L1=5 L2=5 X, Y, Z
Q1 = tan^-1(y/x)
Q2 = tan^-1(z/sqrt(x^2+y^2))-tan^-1((L2*Sinq3)/*(L1+L2*Cosq3))
Q3 = +or- cos((x^2+y^2+z^2-L1^2-L2^2)/(2*L1*L2))
These equations will make the arm move to a position based on the X, Y, and Z values input by the user by calculating the angle for each servo to reach the desired location.
Create:
For the arm I designed the piece that will hold the last servo in fusion 360. I then printed this part and reassembled my arm from the 2d kinematics project using screws and hot glue. Once assembled, I then wired up the the servos to a breadboard and an Arduino.
Test:
I was able add the additional joint to the robotic arm. After building the final design I programmed the arm with the Arduino IDE app and was able to get the arm to move to either the desired position relative to the base or to specific angles. Overall I would say that this project was a success and that I was able to accomplish everything that I aimed to do.