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,:), '.-'); |