Code covered by the BSD License

# Input-Output Linearization of planar 3-link manipulator

### Vikash Gupta (view profile)

initialcartesian.m
```theta(1)=70*pi/180;
theta(2)=10*pi/180;
theta(3)=120*pi/180;

X_act=[a(1)*cos(theta(1)) + a(2)*cos(theta(1)+theta(2)) + a(3)*cos(theta(1)+theta(2)+theta(3));
a(1)*sin(theta(1)) + a(2)*sin(theta(1)+theta(2)) + a(3)*sin(theta(1)+theta(2)+theta(3));
theta(1)+theta(2)+theta(3)];

%
% invJ= [                           cos(theta(1) + theta(2))/(a(1)*sin(theta(2))),                         -sin(theta(1) + theta(2))/(a(1)*sin(theta(2))),                                    (a(3)*sin(theta(3)))/(a(1)*sin(theta(2)));
%  -(a(2)*cos(theta(1) + theta(2)) + a(1)*cos(theta(1)))/(a(1)*a(2)*sin(theta(2))), (a(2)*sin(theta(1) + theta(2)) + a(1)*sin(theta(1)))/(a(1)*a(2)*sin(theta(2))), -(a(3)*(a(1)*sin(theta(2) + theta(3)) + a(2)*sin(theta(3))))/(a(1)*a(2)*sin(theta(2)));
%                                     cos(theta(1))/(a(2)*sin(theta(2))),                                  -sin(theta(1))/(a(2)*sin(theta(2))),                       (a(3)*sin(theta(2) + theta(3)))/(a(2)*sin(theta(2))) + 1];
% X_dot_i=[0.1;0.1;0.1];
%
% theta_dot_i=invJ*X_dot_i;
%

Xi=X_act(1);
Zi=X_act(2);
phi_i=X_act(3);
cartesianVelo_initial=0;
[theta_i, theta_dot_i]=invkine(Xi,Zi,phi_i,cartesianVelo_initial);```