18 lines
		
	
	
		
			694 B
		
	
	
	
		
			Matlab
		
	
	
		
		
			
		
	
	
			18 lines
		
	
	
		
			694 B
		
	
	
	
		
			Matlab
		
	
	
| 
								 | 
							
								function [ finalPose, finalVelocityGlobal ] = integrateIMUTrajectory( ...
							 | 
						||
| 
								 | 
							
								    initialPoseGlobal, initialVelocityGlobal, acc_omegaIMU, deltaT)
							 | 
						||
| 
								 | 
							
								%INTEGRATETRAJECTORY Integrate one trajectory step from IMU measurement
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import gtsam.*;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								imu2in1 = Rot3.Expmap(acc_omegaIMU(4:6) * deltaT);
							 | 
						||
| 
								 | 
							
								accelGlobal = initialPoseGlobal.rotation().rotate(Point3(acc_omegaIMU(1:3))).vector;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								finalPosition = Point3(initialPoseGlobal.translation.vector ...
							 | 
						||
| 
								 | 
							
								    + initialVelocityGlobal * deltaT + 0.5 * accelGlobal * deltaT * deltaT);
							 | 
						||
| 
								 | 
							
								finalVelocityGlobal = initialVelocityGlobal + accelGlobal * deltaT;
							 | 
						||
| 
								 | 
							
								finalRotation = initialPoseGlobal.rotation.compose(imu2in1);
							 | 
						||
| 
								 | 
							
								finalPose = Pose3(finalRotation, finalPosition);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								end
							 | 
						||
| 
								 | 
							
								
							 |