4.8 0 False C:\users\wouter\My Documents\studie\ma\mahd\implementation\submodel\SCARA\spike\inverse_kinematics.emx 2020-7-9 16:58:55 '; type Mainmodel end; implementation bg submodels inverse_kinematics 352 184 description '4.0 Template\Submodel-Equation.emx 1 False 2007-11-1 22:32:1 False '; type 'Submodel-Equation' ports signal in input [2,1] {m} ; signal out angle1 {rad} ; signal out angle2 {rad} ; signal out a {rad} ; signal out b {rad} ; signal out c {rad} ; signal out phi {rad} ; end; implementation eq parameters real global A_length; // length of first arm real global B_length; // length of second arm real to_rad = 1 {rad}; variables real x {m}, y {m}; real C_length {m}; // length to x and y. real angle_sum {rad}; // test angle equations x = input[1]; y = input[2]; phi = atan2(y, x); C_length = sqrt(x^2 + y^2); a = arccos ((B_length^2 + C_length^2 - A_length^2) / (2 * B_length * C_length)); b = arccos ((A_length^2 + C_length^2 - B_length^2) / (2 * A_length * C_length)); c = arccos ((A_length^2 + B_length^2 - C_length^2) / (2 * A_length * B_length)); angle1 = b + phi; angle2 = angle1 - pi * to_rad + c; implementation_end; rectanglepath 112 184 description '4.0 Template\Submodel-Equation.emx 1 False 2007-11-1 22:32:1 False '; type 'Submodel-Equation' ports signal out output [2,1]; end; implementation eq /* This will generate coordinates for the box that has to be drawn */ parameters real w = 0.07{m} ; real h = 0.05 {m}; real t = 1 {s}; real origin[2] = [0.05,0.05]{m}; variables real v {m/s}; real t_w {s}; real t_h {s}; real period {s}; real test1, test2, test3; initialequations v = (2*w + 2*h)/t; t_w = w / v; t_h = h / v; equations period = floor(time / t) * t; output[1] = v*(ramp(period+t_h) - ramp(period + t_w+t_h) - ramp(period + t_w + t_h + t_h)) + origin[1]; output[2] = v*(ramp(period) - ramp(period + t_h) - ramp(period + t_h + t_w) + ramp(period + 2 * t_h + t_w))+ origin[2]; implementation_end; Submodel2 560 184 description '4.0 Template\Submodel-Equation.emx 1 False 2007-11-1 22:32:1 False '; type 'Submodel-Equation' ports signal in angle1; signal in angle2; end; implementation eq parameters real global A; real global B; variables real joint1[2]{m}; real joint2[2]{m}; real end_effector[2]{m}; equations joint1 = A*[cos(angle1);sin(angle1)]; joint2 = B*[cos(angle2);sin(angle2)]; end_effector = joint1 + joint2; implementation_end; end; connections inverse_kinematics\angle1 -> Submodel2\angle1; inverse_kinematics\angle2 -> Submodel2\angle2; rectanglepath\output -> inverse_kinematics\input; end; implementation_end; ]]> Experiment 1 4.8 time Submodel2\end_effector[2] Submodel2\joint1[2] Submodel2\end_effector[1] Submodel2\joint1[1] rectanglepath\output[1] rectanglepath\output[2] rectanglepath\test1 rectanglepath\test2 rectanglepath\test3 Constant\output[1] Constant\output[2] GraphPlot 1 false 16777215 true true 15780518 12624260 0 10 10 10 false 16777215 true 1 model true Arial 12 34 400 0 0 0 0 Arial 12 34 400 0 0 0 0 Arial 10 34 400 0 0 0 0 Arial 12 34 400 0 0 0 0 true true false -0.049999931062904804 0.12000000000000034 true 3 0.019999999999999997 0.12 true 2 0.0 5.0 true 2 0.0 5.0 true 2 3355111 1 3355111 0 true 1 1 1 true true Submodel2\end_effector[1] true Submodel2\end_effector[2] 6076255 1 6076255 0 true 1 1 1 true true Submodel2\joint1[1] true Submodel2\joint1[2] 12553035 1 12553035 0 true 1 1 1 true true Constant\output[1] true Constant\output[2] true 0 16777215 GraphPlot 2 false 16777215 true true 15780518 12624260 0 10 10 10 false 16777215 true 1 model(1) true Arial 12 34 400 0 0 0 0 Arial 12 34 400 0 0 0 0 Arial 10 34 400 0 0 0 0 Arial 12 34 400 0 0 0 0 true true false 0.0 40.0 true 3 0.03 0.13 true 2 -4.0 1.0 true 2 -4.0 1.0 true 2 -4.0 1.0 true 2 -4.0 1.0 true 2 3355111 1 3355111 0 true 1 1 1 true true time true rectanglepath\output[1] 6076255 1 6076255 0 true 1 1 1 true true time true rectanglepath\output[2] 12553035 1 12553035 0 true 1 1 1 true true time true rectanglepath\test1 15086320 1 15086320 0 true 1 1 1 true true time true rectanglepath\test2 15790150 1 15790150 0 true 1 1 1 true true time true rectanglepath\test3 true 0 16777215 D3DPlot 3 false 16777215 true 3D Animation 137 true false 4294967295 Gradients\BlueWhite.png true 1.0 1.0 1 1 1 true Reference Frame Bryant false false false false false false 1 1 1 false Default Lights and Cameras Bryant false false false false false false false Ambient 1 1 Direct3D false false false false false false 0 0.3 0.3 0.3 1 1 1 true 0.3 0.3 0.3 1 1 1 true true false false false Parallel -3 5 3 0.457495710997814 -0.762492851663023 -0.457495710997814 0.235379601434674 -0.392299335724456 0.889211827642101 Direct3D false false false false false false 3 0.5 0.5 0.5 1 1 1 true 1.0 0.0 0.0 0.5 0.5 0.5 1 1 1 true 0.5 0.5 0.5 1 1 1 true false true true false Spot Light 1 -3 -5 1 0.50709255283711 0.845154254728517 -0.169030850945703 0.0869656553478673 0.144942758913112 0.985610760609162 Direct3D false false false false false false 2 0.5 0.5 0.5 1 1 1 true 1.0 0.05 0.05 1.0471975511965976 1.0471975511965976 0.0 0.5 0.5 0.5 1 1 1 true 0.5 0.5 0.5 1 1 1 true false true true false Spot Light 2 2 -3 -1 -0.534522483824849 0.801783725737273 0.267261241912424 0.14824986333222 -0.22237479499833 0.963624111659432 Direct3D false false false false false false 2 1 1 1 1 1 1 true 1.0 0.05 0.05 1.5707963267948966 1.5707963267948966 0.0 1 1 1 1 1 1 true 0.5 0.5 0.5 1 1 1 true false true true false Camera Looking at Origin 5.17039612254131 -0.721279966459381 2.88738681298299 -0.866679128171114 0.120903365560907 -0.483993455522493 -0.479351652924763 0.0668704555607402 0.875071617075652 Direct3D false false false false false false 0.01 100.0 true 0.003926990816987242 45.0 -10.0 10.0 10.0 -10.0 true true 1 true true true false Front(XY)-Camera 10 -1 1 Direct3D false false false false false false 0.01 100.0 true 9.999999999999998 45.0 -9.999999999999998 9.999999999999998 9.999999999999998 -9.999999999999998 true true 1 true false false false Side(YZ)-Camera 10 -1 1 Direct3D false false false false false false 0.01 100.0 true 9.999999999999998 45.0 -9.999999999999998 9.999999999999998 9.999999999999998 -9.999999999999998 true true 1 true false false false Top(XZ)-Camera 10 -1 1 Direct3D false false false false false false 0.01 100.0 true 9.999999999999998 45.0 -9.999999999999998 9.999999999999998 9.999999999999998 -9.999999999999998 true true 1 true false false 10 10 10 false Scenery Bryant false false false false false false 3.0 Submodel2\joint1[1] -0.0011199998032978117 Submodel2\joint1[2] 0.09999372780550071 15 true false 1 1 1 true 1 1 1 1.0 1 1 1 true 0.5 0.5 0.5 15 false false Line Bryant false false false false false false 3.0 Submodel2\end_effector[1] 0.09888000000000007 Submodel2\end_effector[2] 0.09999999999999992 15 true false 1 1 1 true 1 1 1 1.0 1 1 1 true 0.5 0.5 0.5 15 false false Line Submodel2\joint1[1] -0.0011199998032978117 Submodel2\joint1[2] 0.09999372780550071 Bryant false false false false false false 1 true Window 1 0 1 2 Base 2 true Window 2 0 3 Base 0.411979 0.22037 0.885938 0.85 0.0703125 0.135185 0.686979 0.717593 0.0 10.0 false false false false 0.1 1.0e-6 1.0e-7 false true Euler 0.01 false BackwardEuler 1.0e-5 1.0e-5 1.0e-5 1.0e-5 0.01 1.0 AdamsBashforth 0.01 false RungeKutta2 0.01 false RungeKutta4 0.01 false RungeKutta8 false 0.001 false 1.0 1.0e-6 1.0e-6 0.9 0.33 6.0 0.0 false 100000 false 1000 RungeKuttaFehlberg false 0.001 false 1.0 1.0e-6 1.0e-6 VodeAdams false 0.001 false 1.0 1.0e-6 1.0e-6 true true BDFMethod 1.0e-5 1.0e-5 1.0e-5 1.0e-5 false 0.001 false 1.0 MeBDFiMethod 1.0e-5 1.0e-5 1.0e-5 1.0e-5 false 0.001 false 1.0 8 10 false true true false true 0 0.0 true MultipleRun true UseEndValue 0.001 BroydonFletcherGoldfarbShanno true true true true false