Anke Post / Mbed 2 deprecated Script_voor_project

Dependencies:   mbed QEI HIDScope biquadFilter MODSERIAL FastPWM

Committer:
AnkePost
Date:
Tue Oct 29 16:36:54 2019 +0000
Revision:
4:739136c479bd
Parent:
3:710f993d5848
Child:
5:ac4b1c0366b3
Inverse_kinematica_script

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RobertoO 0:67c50348f842 1 #include "mbed.h"
AnkePost 3:710f993d5848 2 #define M_PI 3.14159265358979323846 /* pi */
WiesjeRoskamp 2:aee655d11b6d 3 #include <math.h>
RobertoO 0:67c50348f842 4
AnkePost 4:739136c479bd 5 double vx; //Gelijk aan variabele die snelheid aangeeft in EMG (in x-richting)
AnkePost 4:739136c479bd 6 double vy; //Gelijk aan variabele die snelheid aangeeft in EMG (in y-richting)
AnkePost 4:739136c479bd 7
AnkePost 4:739136c479bd 8 double Joint_velocity_x[2][1];
AnkePost 4:739136c479bd 9 double Joint_velocity_y[2][1];
AnkePost 4:739136c479bd 10
AnkePost 4:739136c479bd 11 // Defining motor angles
AnkePost 4:739136c479bd 12 double M1 = 20*M_PI/180; //Vervang 20 door encoder_value_motor_1 (deg), de naam die is gegeven aan hoek die uit encoder counts is gekomen, current encoder position
AnkePost 4:739136c479bd 13 double M2 = 30*M_PI/180; //Zelfde als hierboven, current encoder position
AnkePost 4:739136c479bd 14
AnkePost 4:739136c479bd 15 // Calculating joint angles based on motor angles (current encoder values)
AnkePost 4:739136c479bd 16 double q1 = M1; //Relative angle joint 1 (rad)
AnkePost 4:739136c479bd 17 double q2 = M2 - M1; //Relative angle joint 2 (rad)
WiesjeRoskamp 2:aee655d11b6d 18
AnkePost 3:710f993d5848 19 void Inverse_Kinematics()
WiesjeRoskamp 2:aee655d11b6d 20 {
AnkePost 4:739136c479bd 21 // Defining joint velocities based om calculations of matlab
WiesjeRoskamp 2:aee655d11b6d 22
AnkePost 4:739136c479bd 23 Joint_velocity_x[0][0] = (vx*(exp(q2*sqrt(-1.0))*(-1.798599718146044E18+6.546367607647411E17*sqrt(-1.0))+exp(q1*2.0*sqrt(-1.0))*exp(q2*sqrt(-1.0))*(-1.798599718146044E18-6.546367607647411E17*sqrt(-1.0))+exp(q1*2.0*sqrt(-1.0))*exp(q2*2.0*sqrt(-1.0))*(1.168095770314175E18+1.321169505615574E18*sqrt(-1.0))+exp(q1*sqrt(-1.0))*exp(q2*sqrt(-1.0))*cos(q1+3.141592653589793/9.0)*3.828059683264922E18+1.168095770314175E18-1.321169505615574E18*sqrt(-1.0))*(2.0E1/1.7E1))/(cos(q1+3.141592653589793/9.0)*(6.605847528077872E17+5.840478851570874E17*sqrt(-1.0))+sin(q1+3.141592653589793/9.0)*(-5.840478851570874E17+6.605847528077872E17*sqrt(-1.0))+exp(q2*sqrt(-1.0))*cos(q1+3.141592653589793/9.0)*(-3.273183803823705E17-8.992998590730221E17*sqrt(-1.0))+exp(q2*sqrt(-1.0))*sin(q1+3.141592653589793/9.0)*(8.992998590730221E17-3.273183803823705E17*sqrt(-1.0))+exp(q1*2.0*sqrt(-1.0))*exp(q2*sqrt(-1.0))*cos(q1+3.141592653589793/9.0)*(-3.273183803823705E17+8.992998590730221E17*sqrt(-1.0))+exp(q1*2.0*sqrt(-1.0))*exp(q2*2.0*sqrt(-1.0))*cos(q1+3.141592653589793/9.0)*(6.605847528077872E17-5.840478851570874E17*sqrt(-1.0))+exp(q1*2.0*sqrt(-1.0))*exp(q2*sqrt(-1.0))*sin(q1+3.141592653589793/9.0)*(8.992998590730221E17+3.273183803823705E17*sqrt(-1.0))+exp(q1*2.0*sqrt(-1.0))*exp(q2*2.0*sqrt(-1.0))*sin(q1+3.141592653589793/9.0)*(-5.840478851570874E17-6.605847528077872E17*sqrt(-1.0)));
AnkePost 4:739136c479bd 24 Joint_velocity_x[1][0] = (vx*(exp(q2*sqrt(-1.0))*(1.798599718146044E18-6.546367607647411E17*sqrt(-1.0))+exp(q1*2.0*sqrt(-1.0))*exp(q2*sqrt(-1.0))*(1.798599718146044E18+6.546367607647411E17*sqrt(-1.0))+exp(q1*2.0*sqrt(-1.0))*exp(q2*2.0*sqrt(-1.0))*(-1.168095770314175E18-1.321169505615574E18*sqrt(-1.0))+-1.168095770314175E18+1.321169505615574E18*sqrt(-1.0))*(2.0E1/1.7E1))/(cos(q1+3.141592653589793/9.0)*(6.605847528077872E17+5.840478851570874E17*sqrt(-1.0))+sin(q1+3.141592653589793/9.0)*(-5.840478851570874E17+6.605847528077872E17*sqrt(-1.0))+exp(q2*sqrt(-1.0))*cos(q1+3.141592653589793/9.0)*(-3.273183803823705E17-8.992998590730221E17*sqrt(-1.0))+exp(q2*sqrt(-1.0))*sin(q1+3.141592653589793/9.0)*(8.992998590730221E17-3.273183803823705E17*sqrt(-1.0))+exp(q1*2.0*sqrt(-1.0))*exp(q2*sqrt(-1.0))*cos(q1+3.141592653589793/9.0)*(-3.273183803823705E17+8.992998590730221E17*sqrt(-1.0))+exp(q1*2.0*sqrt(-1.0))*exp(q2*2.0*sqrt(-1.0))*cos(q1+3.141592653589793/9.0)*(6.605847528077872E17-5.840478851570874E17*sqrt(-1.0))+exp(q1*2.0*sqrt(-1.0))*exp(q2*sqrt(-1.0))*sin(q1+3.141592653589793/9.0)*(8.992998590730221E17+3.273183803823705E17*sqrt(-1.0))+exp(q1*2.0*sqrt(-1.0))*exp(q2*2.0*sqrt(-1.0))*sin(q1+3.141592653589793/9.0)*(-5.840478851570874E17-6.605847528077872E17*sqrt(-1.0)));
RobertoO 0:67c50348f842 25
AnkePost 4:739136c479bd 26 Joint_velocity_y[0][0] = (vy*(exp(q2*sqrt(-1.0))*(-3.273183803823705E17-8.992998590730221E17*sqrt(-1.0))+exp(q1*2.0*sqrt(-1.0))*exp(q2*sqrt(-1.0))*(-3.273183803823705E17+8.992998590730221E17*sqrt(-1.0))+exp(q1*2.0*sqrt(-1.0))*exp(q2*2.0*sqrt(-1.0))*(6.605847528077872E17-5.840478851570874E17*sqrt(-1.0))+exp(q1*sqrt(-1.0))*exp(q2*sqrt(-1.0))*sin(q1+3.141592653589793/9.0)*1.914029841632461E18+6.605847528077872E17+5.840478851570874E17*sqrt(-1.0))*(4.0E1/1.7E1))/(cos(q1+3.141592653589793/9.0)*(6.605847528077872E17+5.840478851570874E17*sqrt(-1.0))+sin(q1+3.141592653589793/9.0)*(-5.840478851570874E17+6.605847528077872E17*sqrt(-1.0))+exp(q2*sqrt(-1.0))*cos(q1+3.141592653589793/9.0)*(-3.273183803823705E17-8.992998590730221E17*sqrt(-1.0))+exp(q2*sqrt(-1.0))*sin(q1+3.141592653589793/9.0)*(8.992998590730221E17-3.273183803823705E17*sqrt(-1.0))+exp(q1*2.0*sqrt(-1.0))*exp(q2*sqrt(-1.0))*cos(q1+3.141592653589793/9.0)*(-3.273183803823705E17+8.992998590730221E17*sqrt(-1.0))+exp(q1*2.0*sqrt(-1.0))*exp(q2*2.0*sqrt(-1.0))*cos(q1+3.141592653589793/9.0)*(6.605847528077872E17-5.840478851570874E17*sqrt(-1.0))+exp(q1*2.0*sqrt(-1.0))*exp(q2*sqrt(-1.0))*sin(q1+3.141592653589793/9.0)*(8.992998590730221E17+3.273183803823705E17*sqrt(-1.0))+exp(q1*2.0*sqrt(-1.0))*exp(q2*2.0*sqrt(-1.0))*sin(q1+3.141592653589793/9.0)*(-5.840478851570874E17-6.605847528077872E17*sqrt(-1.0)));
AnkePost 4:739136c479bd 27 Joint_velocity_y[1][0] = (vy*(exp(q2*sqrt(-1.0))*(3.273183803823705E17+8.992998590730221E17*sqrt(-1.0))+exp(q1*2.0*sqrt(-1.0))*exp(q2*sqrt(-1.0))*(3.273183803823705E17-8.992998590730221E17*sqrt(-1.0))+exp(q1*2.0*sqrt(-1.0))*exp(q2*2.0*sqrt(-1.0))*(-6.605847528077872E17+5.840478851570874E17*sqrt(-1.0))+-6.605847528077872E17-5.840478851570874E17*sqrt(-1.0))*(4.0E1/1.7E1))/(cos(q1+3.141592653589793/9.0)*(6.605847528077872E17+5.840478851570874E17*sqrt(-1.0))+sin(q1+3.141592653589793/9.0)*(-5.840478851570874E17+6.605847528077872E17*sqrt(-1.0))+exp(q2*sqrt(-1.0))*cos(q1+3.141592653589793/9.0)*(-3.273183803823705E17-8.992998590730221E17*sqrt(-1.0))+exp(q2*sqrt(-1.0))*sin(q1+3.141592653589793/9.0)*(8.992998590730221E17-3.273183803823705E17*sqrt(-1.0))+exp(q1*2.0*sqrt(-1.0))*exp(q2*sqrt(-1.0))*cos(q1+3.141592653589793/9.0)*(-3.273183803823705E17+8.992998590730221E17*sqrt(-1.0))+exp(q1*2.0*sqrt(-1.0))*exp(q2*2.0*sqrt(-1.0))*cos(q1+3.141592653589793/9.0)*(6.605847528077872E17-5.840478851570874E17*sqrt(-1.0))+exp(q1*2.0*sqrt(-1.0))*exp(q2*sqrt(-1.0))*sin(q1+3.141592653589793/9.0)*(8.992998590730221E17+3.273183803823705E17*sqrt(-1.0))+exp(q1*2.0*sqrt(-1.0))*exp(q2*2.0*sqrt(-1.0))*sin(q1+3.141592653589793/9.0)*(-5.840478851570874E17-6.605847528077872E17*sqrt(-1.0)));
AnkePost 4:739136c479bd 28
AnkePost 4:739136c479bd 29 // Integratie
AnkePost 4:739136c479bd 30 Joint_1_position_x = Joint_1_position_x + Joint_velocity_x[0][0]*delta_t;
AnkePost 4:739136c479bd 31 Joint_2_position_x = Joint_2_position_x + Joint_velocity_x[1][0]*delta_t;
AnkePost 3:710f993d5848 32
AnkePost 4:739136c479bd 33 Joint1_position_y = Joint_1_position_y + Joint_velocity_y[0][0]*delta_t;
AnkePost 4:739136c479bd 34 Joint2_position_y = Joint_2_position_y + Joint_velocity_y[1][0]*delta_t;
AnkePost 3:710f993d5848 35
AnkePost 4:739136c479bd 36 double Motor_1_velocity_x = Joint_velocity_x[0][0];
AnkePost 4:739136c479bd 37 double Motor_2_velocity_x = Joint_velocity_x[0][0] + Joint_velocity_x[1][0];
AnkePost 3:710f993d5848 38
AnkePost 4:739136c479bd 39 double Motor_1_velocity_y = Joint_velocity_y[0][0];
AnkePost 4:739136c479bd 40 double Motor_2_velocity_y = Joint_velocity_y[0][0] + Joint_velocity_y[1][0];
AnkePost 4:739136c479bd 41
AnkePost 3:710f993d5848 42 }
RobertoO 0:67c50348f842 43
RobertoO 0:67c50348f842 44 int main()
RobertoO 0:67c50348f842 45 {
AnkePost 4:739136c479bd 46 Inverse_Kinematics ();
RobertoO 0:67c50348f842 47 }
WiesjeRoskamp 2:aee655d11b6d 48
WiesjeRoskamp 2:aee655d11b6d 49
WiesjeRoskamp 2:aee655d11b6d 50
WiesjeRoskamp 2:aee655d11b6d 51