Ja kno it

Files at this revision

API Documentation at this revision

Comitter:
BramS23
Date:
Mon Oct 30 13:51:13 2017 +0000
Commit message:
Added inverse Jacobian;

Changed in this revision

BrocketJacobian.cpp Show annotated file Show diff for this revision Revisions of this file
BrocketJacobian.h Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/BrocketJacobian.cpp	Mon Oct 30 13:51:13 2017 +0000
@@ -0,0 +1,25 @@
+#include "BrocketJacobian.h"
+
+void Brocket(float q1,float q2,float &x,float &y){
+    float L1=27.5f;
+    float L2=32.0f;
+    
+    x = L2*cos(q1+q2) + L1*cos(q1);
+    y = L2*sin(q1+q2) + L1*sin(q1);
+}
+
+void TransposeJacobian(float q1,float q2,float Fsprx,float Fspry,float &tau1,float &tau2){
+    float L1=27.5f;
+    float L2=32.0f;
+    tau1 = Fspry*(L2*cos(q1+q2)+L1*cos(q1)) - Fsprx*(L2*sin(q1+q2)+L1*sin(q1));
+    tau2 = Fspry*L2*cos(q1+q2)              - Fsprx*L2*sin(q1+q2);
+}
+
+void InverseJacobian(float q1 , float q2, float vx, float vy, float &q1dot, float &q2dot){
+    float L1=27.5f;
+    float L2=32.0f;
+    q1dot = ( vx*cos(q1+q2)         + vy*sin(q1+q2) )
+            /(L1*sin(q2));
+    q2dot = -(L1*vy*sin(q1) + L2*vx*cos(q1+q2) + L2*vy*sin(q1+q2) + L1*vx*cos(q1))
+            /(L1*L2*sin(q2));
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/BrocketJacobian.h	Mon Oct 30 13:51:13 2017 +0000
@@ -0,0 +1,32 @@
+#include "mbed.h"
+
+/** Brocket function
+    Used to determine the end effector position depending on the joint angles
+    @param q1 current position of joint 1 in radians
+    @param q2 current position of joint 2 in radians
+    @param x Output variable for the x position of the end effector
+    @param y Output variable for the y position of the end effector
+*/
+void Brocket(float q1,float q2,float &x,float &y);
+
+/** Jacobian Tansposed function
+    Used to determine the joint torques depending on the Forces applied to the end effector
+    @param q1 current position of joint 1 in radians
+    @param q2 current position of joint 2 in radians
+    @param Fsprx Force applied to the end effector in x direction
+    @param Fspry Force applied to the end effector in y direction
+    @param tau1 Output variable for the Moment in joint1
+    @param tau2 Output variable for the Moment in joint2
+*/
+void TransposeJacobian(float q1,float q2,float Fsprx,float Fspry,float &tau1,float &tau2);
+
+/** Jacobian Tansposed function
+    Used to determine the joint velocities depending on the end effector velocities
+    @param q1 current position of joint 1 in radians
+    @param q2 current position of joint 2 in radians
+    @param vx Velocity of the end effector in x direction
+    @param vy Velocity of the end effector in y direciton
+    @param tau1 Output variable for the Moment in joint1
+    @param tau2 Output variable for the Moment in joint2
+*/
+void InverseJacobian(float q1 , float q2, float vx, float vy, float &q1dot, float &q2dot);
\ No newline at end of file