From e29ec9d948d47b9ce6b92d518579d81ab7a86de1 Mon Sep 17 00:00:00 2001 From: Mattis Date: Wed, 6 Mar 2024 16:23:45 +0100 Subject: [PATCH 1/2] test inverse Kinematics --- bin/jointControl | Bin 0 -> 125152 bytes bin/testKinematics | Bin 0 -> 99960 bytes include/Kinematics.h | 2 ++ src/Kinematics.cpp | 31 +++++++++++++++++++++++++++++++ src/testKinematics.cpp | 25 ++++++++++++++++++++++--- 5 files changed, 55 insertions(+), 3 deletions(-) create mode 100755 bin/jointControl create mode 100755 bin/testKinematics diff --git a/bin/jointControl b/bin/jointControl new file mode 100755 index 0000000000000000000000000000000000000000..b4dfd0576427b7dd389b21f060c4760d9a0f5939 GIT binary patch literal 125152 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�|4n%gqBOmJ9Te?ofkC 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 Z&h>9vzJ4cl?@FKlKTO$YC9uAF{~rtFr7r*g literal 0 HcmV?d00001 diff --git a/bin/testKinematics b/bin/testKinematics new file mode 100755 index 0000000000000000000000000000000000000000..6e8fd7b8d6cc63125aaa4fe6c25093e580a99118 GIT binary patch literal 99960 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 literal 0 HcmV?d00001 diff --git a/include/Kinematics.h b/include/Kinematics.h index 246781a..ebb24a3 100644 --- a/include/Kinematics.h +++ b/include/Kinematics.h @@ -14,3 +14,5 @@ std::vector computeForwardKinematics(float q1, float q2, float L1, float int computeJacobianMatrixRank(std::vector vJacobianMatrix, float threshold); cv::Mat computeInverseJacobianMatrix(std::vector vJacobianMatrix); + +std::vector computeInverseKinematics(float x, float y, float L1, float L2); \ No newline at end of file diff --git a/src/Kinematics.cpp b/src/Kinematics.cpp index 0ef3916..254f61c 100644 --- a/src/Kinematics.cpp +++ b/src/Kinematics.cpp @@ -23,6 +23,37 @@ std::vector computeForwardKinematics(float q1, float q2, float L1, float return X; } + + + +std::vector computeInverseKinematics(float x, float y, float L1, float L2) +{ + std::vector q; + + // Calculate distance between end effector and origin + float r = sqrt(x*x + y*y); + + // Calculate q2 using cosine law + float cos_q2 = (r*r - L1*L1 - L2*L2) / (2 * L1 * L2); + float sin_q2 = sqrt(1 - cos_q2*cos_q2); + float q2 = atan2(sin_q2, cos_q2); + + // Calculate q1 using trigonometry + float q1 = atan2(y, x) - atan2(L2*sin(q2), L1 + L2*cos(q2)); + + // Convert angles to degrees + q1 = rad2deg(q1); + q2 = rad2deg(q2); + + std::cout << "[INFO] Inverse Kinematics : (x, y)->(q1, q2) = (" << x << ", " << y << ")->(" << q1 << ", " << q2 << ")" << std::endl; + + q.push_back(q1); + q.push_back(q2); + + return q; +} + + int computeJacobianMatrixRank(std::vector vJacobianMatrix, float threshold) { int rank = -1; diff --git a/src/testKinematics.cpp b/src/testKinematics.cpp index 3b2f81a..9686ae1 100644 --- a/src/testKinematics.cpp +++ b/src/testKinematics.cpp @@ -1,7 +1,7 @@ #include "Kinematics.h" #include int main (){ - // 1st test + // 1st test FK float threshold=0.00001; float q1=deg2rad(0.0); //deg float q2=deg2rad(0.0); //deg @@ -18,11 +18,11 @@ int main (){ std::cout<<"test passed"< Date: Wed, 6 Mar 2024 16:25:41 +0100 Subject: [PATCH 2/2] test Inverse Kinematics clean this time --- bin/jointControl | Bin 125152 -> 0 bytes bin/testKinematics | Bin 99960 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100755 bin/jointControl delete mode 100755 bin/testKinematics diff --git a/bin/jointControl b/bin/jointControl deleted file mode 100755 index b4dfd0576427b7dd389b21f060c4760d9a0f5939..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 125152 zcmeFa4O~@Kx<9@_P%0HPEh?u@T{A2*FkjH5j>@rPsgXjFX^4PAArKr4y;>A%oI#2l zZEP}Q8f%=c71NkQjnz>Zp>hn%DWeCO*7<#(wbtHy?Zw$g>-PEI`F}og zZ+`cB-qy38^{kh@_C9;=^Gu!?84=M<6Mx;bYqbbmCr;!9x1iUz6P5qDwPdZA=GHFO zTv~UKqVS)av$|kgBxe{HBjl(;(u)^0t2jW&8EDi_NP13xl~;3)fm$3dlU_7ky6GSM zx!J!a<}K%C17$r{U#pN;Fmn>88z}2hY$`71o>wHW#8X8Vc=YFD|7x15mnrmAOcnA5QXTX+{Zn7=kEt(B=+%A5?Wj2X zEKWDjsPAUzQCv>-PlQvOChBwQhicIe2J&cY+Es-Gb4CuosxbG;!h)jmiYqIUM_xH{ z_|UTAp~IL9x+J(O#JKW`#iDhtA+ZNE8AkW?f?B{AD_Q0 z)38Bxk_`QkzUX4Jd=0KhhT8vP+}|S3h}4D=?OOad4*#|0?V8{D$e`C+dys_V!o)g@-UUGisjSvs{R}W|UhTs&S(ol5jzEJc?u>YV#K96(o zzneq7r4I4=#v%SQ9OPXNem>+-Zm2%b59CAT?Fol^cRSF}M%-L-;*0A92S3vt z{CU;E{+SMT9(AB!<={`6L;Qz0_(OB6OSDCXOcX+mi&_W!4>;t{eenMh*|5022XVMq zi`Pm|afLLC{+T-B{m_f`18CqMj?c;PsHBzesv z+`Q7fc?D&@ywdb36AFuq^3t>C6y|AJS@Y%>7iE?CvP*qgSzI)<;EbuGa~Bq6&o8LR zD@;mCD=zhUvx{;I^GcJ3&&%^kWl!3TIa-!Y{OYvqoV)T&g^{EnQ#^CY?c$QWqMQX; zImM-Uv@aNrodL`Y%UN*slx$z>FwX)}oaggQyK(CDEFybyC7JB$o|~p8q7_UlcR>iT zkp)Ey@=Aq)q@=7#MJ46Faiyi%3%PL8u&kTPeI~7dY~3haxEi`1MiGROIi-2ozC2Gs z+KmMUJ$Y_+nQvlgUY;k-@R$5dO3cm6E-Wn0A$ggRnq(EH-;z2ir+7YU&lBF9)WPW^ zv+(~$3VAC1z#$@=J^F$tuh%n&->U$}24`F6G?xNpqO&T=p+jnm*}H z{F_^twqQPR>h$8mG7rh{E0W_^%t6K_`Ki;hC*^pI;4!kL?t{Q|-|#%7=cJtJzNDm_ z{Or;!UukxMuMAqAX`o#_C%dd5C#$&3hd!J?DLpGaG0THcGTXjUSy?$16-h}+!?+lv z3X0~1GRFMyOh}@vpLXN)tA&B&g5t6)=;jTdR8-)z`I$Cx+VtY-Ssv7se#_J(1PfJV z&nZ}tltk4QW|x&^`4*PsWfc_7EhZ^=3kHwqob22zmPeFBiaN!;tRRF1RFIuD2gAQ8 z3;CCm4^@gc20t-M%1iUI78I2F%Cie;KB%b3D# ze{g_CIK%F5^G(QwY;+C|w##bt$gc_nZI%RNjju1(0y95;SaR?^U`hmPjt%uI+6m#>Eo zOOoVh8STdI66q=$SJAld>xTb}W>?+uFa33AGDM5kda!@#-aQJk#P0?^E%&8B2;qDhuUk`1EkoOHBz7%msD&<7QAJ1&JjM$i)!dWoPXD)dJM zJz1e|5p=gge@D>03SAfUG=+Xb&@&Z!-}&7C*$O@W4o=Tk=o1CKLZPRL_*5$NiNb!h zLZ2b%bqal@ps!Krje=gU&_5FN4GR63pf@P=GmCh;8WsA5f*w%l!v(!Xq0gMf?X)WN zp9^}sLa!9@(G~h!VZTG6FB0@lh5o#tYggOzc8{RPDD>lk9;eXbin;&s3Vo2EyA=8u zK~GTVX@Z`p(CcS%`^gG@m!NwUdV`2hnnJG>_A?dwDnXyE(BBmFe1+a2=p_pMoD%M5 zg+d=9=#>h6yr5Sr^jieIPN5eH`Wl74_!eGoy+VIh&>Iwbhlo$3LSHBB2Ne2eg5ILg z&$*k|+p5qf3VNGDzeCX56?%oB>k56Ppm!+rX9T@dp>Gj%ZMZ$3pGxC?#whewL62AH zF7dp$vb(#P$uQRpKDyp+{!%cIgVe(s*8_(7zV-b}IC1%efs*oEI7U zhf+b0QRvSKdYnSvBk1u8{fMBu6ne}8UT=azA0X(73cYPAmrqvcbs`RKh5nimAB7$x z<{#Hc`#3fBV+jh~*pH^JmO6!Q>{}WYdcLsJq0o)>y;GqZ>$_`|-TyVh zPNqUP*1_2d-B<^!6?%)X6Hw^JdeNfLjrF2Kp~r|kOh~r-Y0RsM3f-7jGZlKWuv4ed zjrnJdLO150fI`m~b~+WhF-|pc-(cjwF-{W{`Wj(pwn8`ZIbWe0`CO;a8w`IGy0%-4 zN6`<4KStihDRj4xk5}l1{RD+xDdZCsx{=Rrg&q*{UWIPh&s6BzJKX=-3O!$xOBA|W z$X6(I!+y0wuN3li3Vn?z*DLgZkl&!t4f~A>U3-`NA5iEmqTH&`-9o-ip&Ryfgu2^_;M@sN+Iu6=!X4Fh2AdYXDf7L z+?6PF*I&6m6$;(3U#-w9g?ybtUn9!(3Oyj?Hz;(&expKny~q7&QRuS;y-lIl3A(P( z1A-pow$FP;IbNX~`(T$sPZRsg1ch$gcO@!x<9;<+p~s8+F1JEA_D^1g-XZn}X$svq zPsvp1E+O9`)>&%xNFGY|Z>IxY6YH8PALBrebD+mN&=Vc#nGW>X4)lBndWi$Q!hv4t zKwslP4>-_U9O$hM^fm{2y8~T!plf1%SNki$fu86J1-tq$}~2f8NqEo%H@9O!Wl^mqrl%YmNkK%ebE&v&4gIM6E`=#>ui zY6p6~1HHw8-s(VabD+07&~*oThXXxE?Dy1uOmv_pJJ8(@bgu(F&4HfjKreBiuW_K) zJJ2^c&>I}+jSlpH1HHw8-s(VabD(!f^oy`^#fdd6M(oq5zht`0fu8I@PjjH>JJ2f~ z=xZG44Gwf;->UlG;UFI)_A{!y%YmNkKu>d^=R43V9q7jXPW7i<^1rv#U&j89EMSomK~W;5xF*-vy<2K#ji^iQdy70$U~ebrQWzq7Rkm?GpWJiLOiZ;S#+= zqK}g3of3VFM4v78Z`6v*WxCj>(X-2O61_yCkCo{465TD)0}|bMSBcoI5xr5?z<*=SuVri5@S}J0<#g5?vE{PJME|M30f^ z7fAFtiEjM1f!Og9{b!QAOQK&W(Gw)POQI)A^ou2WvP8c`qPr#fe@S$&L?0;8(C4j*I30o05jY)z(-AlwfzuH<9f8vkI30o05%~Wq z0{@J?@VK|?aE!Mm`fou^^DYbcB7?2os-~Fj%!S~HzTa!w(cq0spOfvskl4n&R~_`O-CgOH;Ker=ZN0OaU_N6a!Ed>lP+zgec6 z>!SzmHp_I-ar8j8S*8PyqX%v_%XF}D^uRc?Oa~fA4POrZT{nGPh-ezQym5oo_zrUMAH-z?L?1KMwv>A(T)H_LR;fcBeZ zI(SC=zcbqJV&zZFG95Ia{brdC7|?#ROa}{SzgeaO1+?ER(?J5-ZN)y9TcGbW| z%H>LVzEaLp%CnSmhEkrQls!s0MJbO^%2z7oOO^7^lyZNi+)F7(E9LLLRr+5kf1#8= zRmvYK<-aQBzbNHDE9F;}@=HqjIi>uxQhq`yuU5*nayjXXN&ek;c>VjlRr@>A(kItO zcdx|KQQPa``v_9b#QY!Z{{U2u)u9-HSb1xskE84z-RbL(rREO0#!_=eus!x7=xW+_ zfso%#%-Rue5)A&{>+kSxJ#w9QYiBoa#18N7?|uDXV1zIb6KtQ$#-*W8>rrLOOQ=#S zzaqn1mGVI+F1`LweLcN3Dd#{BdhWvR;8zt z6tB2d)9T(Z<;SHXluecXR~I9?UjIua040u9jMqJO*`Lt_Z_P3i@m2+}Ibp`#aN=m} zi~#ilT41o_1p8u%y~<+83wESn>tit8&yBq|;P+HoQZ6C27Y(O6^nRw)QcEg9NNqNx zj$kR_wyINWF5Uh$y5wgs<6kfJVeN?5SpPTc3yz~9Af@{Ep)0rZ-nf{0V>P9P=NGYZ+Qfeq; zXH;_$mSq=k(o%^OV;Z4ES&o#^??<| z4E-}ig3ArGi_CB*7ua;!Eb zfdt>4N)r8-a>4#2SQ~xfCN8*{33@&!rOTN`y50thLzj_YN*sZS*Ug8>qu!Gije?#s^e*hWFtDUCCom``aYc!C?lU$?0 zrty@ik<2x+xyBgm%JunNW4TSE!qn)_HAZobCepZuYs|E1Of@z39Az!<#Wkj4r>~#E zHHO(VC~tYopW+(-V35*A8t;G2S{`F+q|*9`@N(f#=cGqgihOCE8&fq924BE?d-0O7C%Pymv>-}$A6e;X=abB zv((slw2HF4L^W0lZmAQQ^Q-%LW`6fCGyzuMQ0lDh|L=p4Fzd5CGHfwcv%Z6t2wcC0 zDT$4-w_s7WR(05Adgag1A&dXC8jWTlPX}K)e~ai!D;386$#u$3Nrwh-!7=J4R-KqX zd%#DzK3YYUC}YJNy{)V}`FJRb8YuUQ5`&fKPndIz(ZrMRn-D{rzF5^yF&DblTigGM z&&}Q==P3*W=yo!Umz&j|j6mE%$=CJ|?(1T`LT!T*qb}Be^G~vFZf2}5z=nnr9r@n1 z3rumvdL2$MjCQWab=Y=>aX&_KxEdcK zS(bn>;^kIoN5u?PNrnn|5WBR}7`HWPLfIXM?DQoue@u%R9m3=thRGUtjJGz8rLWhY z7IWwlBSwpuM_aKUMwrbu9S7Cc4y#i-;BQVVmzC!qa}&y3%s~6laePqMVnV3uh>-di z!&+XCT?Fh*)}_f4=QCo3}HTO^}h1aFY<%c`05wIU{zMKH@a@-u?;my%YNYQle;%N8Pq@t8`|Ux%V#y$Z zV*Llt>~El@q1FxIZ3%X(HgAnF+Ki}(+MC_9ouEGI^ftTcxL1=lJ?QaH6s=LN?iZ?- zbZEYFnKlL{@~A`1jNKgSw(XTLxWs;d?N^K`lJ(~?9CgEaV=BS8P^2;b&?DbKjLrC{ znKheD^+H+o8#9M>n!yJ>=0Z&M)_fQRzhMZ*?DOHe!|EVbZ0YB)FlJD4nX^;AO^aot z6ipiJ`3S)V4EB1jKVyw-l24HvaMN;Dg{GM&9m`pJX@c}@FeU?bi3Nzp7F{DOH&HYE z9-P6jnE}>WP?vIY8`s8p3@87dliNXVhZbfTx&g+42;KeqX+MWqqvtY84ki+T^^EFa zv7SNWwb{eQnErPZFwpMi{AT?-Ha*Z`3tVW{+gNlHF^N-MEnffMh+4p_Z}e7q8lw!& z?RL#|OcT{-z`Jrx3{3MXp?Rp-P+MVFn-{XeoKO``vuj=%vckbaQ$Gr6ths0_E%hws zbeq9bk-7nmW8vvVRMtauf;BD9dqoD8k>im_FhgV=&TE7S!XGCt8)+kf>wvempA>rP z4OEvFSBDE)3i(VHyYx}?&Vd#9hlUJ=^(`G{tClosxCv%G7{Uz8ijBxAwqs$Pf@J%oul*iP3#t}JzEjp zoj`je4L-^8``r#cy|VS{E=5voYo(o)({Aw%+-u-51D41>p8aeY@$Yz@-qFwpVy8w= zB=&=4bHmu7vNcCc@^oKrt_H>}TMOOfVi(saFF3}HF4lz>Iy+}~w~)jMITh)~>;w1_ zz#&8I$^do~cy>pR$eQ((PuN1oWdC4SUC)Z_ZVsCRx+`K~IUmVPTfztsux_(0NV86# zS@w?hw3qfZDAx(fg5Cz@N>C0(p#&}YfkU+ZTk@jIouCV=U)Q~~?Ob6CzqLfS+4s@6 zz@XL16uWpbMhi9S2R7?}VB5@i<_?PMS&_%8jhzxzHO1Sv6IPZtQ(EPoV>^;5tuWJu4X5ec64>(AETQeeSmOr&fp)n~Y-a!m ztUDcQWrA9l(LDMbK2HnQ`01?JjA~Ieb?t82i}^p&mlMN�|4n%gqBOmJ9Te?ofkC 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 Z&h>9vzJ4cl?@FKlKTO$YC9uAF{~rtFr7r*g diff --git a/bin/testKinematics b/bin/testKinematics deleted file mode 100755 index 6e8fd7b8d6cc63125aaa4fe6c25093e580a99118..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99960 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