Test voor Inverse Kinematics (afgeleid van schrift berekeningen)
Dependencies: mbed QEI HIDScope biquadFilter MODSERIAL FastPWM
RKI/InverseKinematics.cpp
- Committer:
- s1961438
- Date:
- 2019-10-18
- Revision:
- 2:703501924009
File content as of revision 2:703501924009:
#include "...." #include "math.h" int Theta1(float Angle) { int Compare; int min_comp=1450; int max_comp=6500; int min_angle=0; int max_angle= 180; Compare=((max_comp-min_comp)/(max_angle-min_angle))*(Angle-min_angle)+ return Compare; } int Theta2(float Angle) { int Compare; int min_comp=1500; int max_comp=6900; int min_angle=-90; int max_angle= 90; Compare=((max_comp-min_comp)/(max_angle-min_angle))*(Angle-min_angle)+ return Compare; } int main(void) { float X=1.0; //desired X position of the end effector in cm float Y=1.0; //desired Y position of the end effector in cm float r1=0.0; float phi1=0.0; float phi2=0.0; float phi3=0.0; float a2=6.0; float a4=5.5: float T1=0.0; //T1 is theta 1 in radians float T2=0.0; //T2 is theta 2 in radians r1=sqrt(X*X+Y*Y); //eguation 1 phi1=acos(((a4*a4)-(a2*a2)-(r1*r1))/(-2.0*a2*r1)); //Equation2 phi2=atan(Y/X); //Eguation 3 T1=phi2-phi1; phi3=acos(((r1*r1)-(a2*a2)-(a4*a4))/(-2.0*a2*a4)); //Equation 5 T2=3.14159-phi3; //Equation 6 PWM_1_Start(); for(;;) { PWM_1_WriteCompare1(Theta1((T1/3.14159)*180.0)); PWM_1_WriteCompare2(Theta2((T2/3.14159)*180.0)); CyDelay(2000);