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
|
|
|