35 lines
		
	
	
		
			1009 B
		
	
	
	
		
			Matlab
		
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1009 B
		
	
	
	
		
			Matlab
		
	
	
import gtsam.*;
 | 
						|
 | 
						|
deltaT = 0.01;
 | 
						|
timeElapsed = 1000;
 | 
						|
 | 
						|
times = 0:deltaT:timeElapsed;
 | 
						|
 | 
						|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 | 
						|
% Constant global velocity w/ lever arm
 | 
						|
disp('--------------------------------------------------------');
 | 
						|
disp('Constant global velocity w/ lever arm');
 | 
						|
omega = [0;0;0.1];
 | 
						|
velocity = [1;0;0];
 | 
						|
 | 
						|
% Initial state
 | 
						|
currentPoseGlobal = Pose3;
 | 
						|
currentVelocityGlobal = velocity;
 | 
						|
 | 
						|
% Positions
 | 
						|
positions = zeros(3, length(times)+1);
 | 
						|
 | 
						|
i = 2;
 | 
						|
for t = times
 | 
						|
    velocity1body = currentPoseGlobal.rotation.unrotate(Point3(currentVelocityGlobal)).vector;
 | 
						|
    R = Rot3.Expmap(omega * deltaT);
 | 
						|
    velocity2body = currentPoseGlobal.rotation.compose(R).unrotate(Point3(currentVelocityGlobal)).vector;
 | 
						|
    [ currentPoseGlobal, currentVelocityGlobal ] = imuSimulator.integrateTrajectory(currentPoseGlobal, omega, velocity1body, velocity2body, deltaT);
 | 
						|
    
 | 
						|
    positions(:,i) = currentPoseGlobal.translation.vector;
 | 
						|
    i = i + 1;
 | 
						|
end
 | 
						|
 | 
						|
figure;
 | 
						|
plot(positions(1,:), positions(2,:), '.-');
 |