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