Add conf_simscape loading and tangled one function
This commit is contained in:
		
							
								
								
									
										31
									
								
								src/forwardKinematicsApprox.m
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								src/forwardKinematicsApprox.m
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
function [P, R] = forwardKinematicsApprox(stewart, args)
 | 
			
		||||
% forwardKinematicsApprox - Computed the approximate pose of {B} with respect to {A} from the length of each strut and using
 | 
			
		||||
%                           the Jacobian Matrix
 | 
			
		||||
%
 | 
			
		||||
% Syntax: [P, R] = forwardKinematicsApprox(stewart, args)
 | 
			
		||||
%
 | 
			
		||||
% Inputs:
 | 
			
		||||
%    - stewart - A structure with the following fields
 | 
			
		||||
%        - J  [6x6] - The Jacobian Matrix
 | 
			
		||||
%    - args - Can have the following fields:
 | 
			
		||||
%        - dL [6x1] - Displacement of each strut [m]
 | 
			
		||||
%
 | 
			
		||||
% Outputs:
 | 
			
		||||
%    - P  [3x1] - The estimated position of {B} with respect to {A}
 | 
			
		||||
%    - R  [3x3] - The estimated rotation matrix that gives the orientation of {B} with respect to {A}
 | 
			
		||||
 | 
			
		||||
arguments
 | 
			
		||||
    stewart
 | 
			
		||||
    args.dL (6,1) double {mustBeNumeric} = zeros(6,1)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
X = stewart.J\args.dL;
 | 
			
		||||
 | 
			
		||||
P = X(1:3);
 | 
			
		||||
 | 
			
		||||
theta = norm(X(4:6));
 | 
			
		||||
s = X(4:6)/theta;
 | 
			
		||||
 | 
			
		||||
R = [s(1)^2*(1-cos(theta)) + cos(theta) ,        s(1)*s(2)*(1-cos(theta)) - s(3)*sin(theta), s(1)*s(3)*(1-cos(theta)) + s(2)*sin(theta);
 | 
			
		||||
     s(2)*s(1)*(1-cos(theta)) + s(3)*sin(theta), s(2)^2*(1-cos(theta)) + cos(theta),         s(2)*s(3)*(1-cos(theta)) - s(1)*sin(theta);
 | 
			
		||||
     s(3)*s(1)*(1-cos(theta)) - s(2)*sin(theta), s(3)*s(2)*(1-cos(theta)) + s(1)*sin(theta), s(3)^2*(1-cos(theta)) + cos(theta)];
 | 
			
		||||
		Reference in New Issue
	
	Block a user