Carlo Collodi / kangaroo

Dependencies:   QEI mbed

src/dynamics.cpp

Committer:
alexc89
Date:
2013-12-01
Revision:
46:4497e945de6b
Parent:
43:68faf056ed5c
Child:
55:ff84fbdfd1d1

File content as of revision 46:4497e945de6b:

#include "mbed.h"
#include "include/dynamics.hpp"


Joints invKinBody(Point &in){
    float x=in.x;
    float y=in.y;
    //float theta1 = (float) 2 * atan(sqrt( ( (l2+l3+l4)*(l2+l3+l4) - x*x - y*y) / (x*x + y*y - (l2+l4-l3)*(l2+l4-l3)) ));
    //float theta2 = (float) atan2(y,x) - atan2(l3*sin(theta1), l2 + l4 + l3*cos(theta1));
    float theta2 = -3.14159+((float) acos((x*x+y*y-(l2+l4)*(l2+l4)-l3*l3)/(2*(l2+l4)*l3)))+3.1415/8;
    float theta1 = -atan2(y,x)-acos((l3*l3-x*x-y*y-(l2+l4)*(l2+l4))/(2*(l2+l4)*sqrt(x*x+y*y)));
    return Joints(theta1, theta2);
}