fixed velocity in rotating frame
parent
a1e6d84e22
commit
a01fe12ee6
|
@ -200,20 +200,27 @@ for i = 1:length(times)
|
|||
currentPoseFixedGT = Pose3(Rot3, currentPositionFixedGT); % constant orientation
|
||||
|
||||
% Rotate pose in fixed frame to get pose in rotating frame
|
||||
previousPositionRotatingGT = currentPoseRotatingGT.translation.vector;
|
||||
currentRotatingFrame = currentRotatingFrame.compose(changePoseRotatingFrame);
|
||||
inverseCurrentRotatingFrame = (currentRotatingFrame.inverse);
|
||||
currentPoseRotatingGT = inverseCurrentRotatingFrame.compose(currentPoseFixedGT);
|
||||
currentPositionRotatingGT = currentPoseRotatingGT.translation.vector;
|
||||
|
||||
% Get velocity in rotating frame by treating it like a position and using compose
|
||||
% Maybe Luca knows a better way to do this within GTSAM.
|
||||
currentVelocityPoseFixedGT = Pose3(Rot3, Point3(currentVelocityFixedGT-initialVelocityFixedFrame));
|
||||
currentVelocityPoseRotatingGT = inverseCurrentRotatingFrame.compose(currentVelocityPoseFixedGT);
|
||||
%currentVelocityPoseFixedGT = Pose3(Rot3, Point3(currentVelocityFixedGT-initialVelocityFixedFrame));
|
||||
%currentVelocityPoseRotatingGT = inverseCurrentRotatingFrame.compose(currentVelocityPoseFixedGT);
|
||||
|
||||
%currentRot3RotatingGT = currentRotatingFrame.rotation();
|
||||
%currentVelocityRotatingGT = currentRot3RotatingGT.unrotate(Point3(currentVelocityFixedGT));
|
||||
% TODO: check if initial velocity in rotating frame is correct
|
||||
currentVelocityRotatingGT = (currentPositionRotatingGT-previousPositionRotatingGT)/deltaT;
|
||||
|
||||
% Store GT (ground truth) poses
|
||||
positionsInFixedGT(:,i) = currentPoseFixedGT.translation.vector;
|
||||
velocityInFixedGT(:,i) = currentVelocityFixedGT;
|
||||
positionsInRotatingGT(:,i) = currentPoseRotatingGT.translation.vector;
|
||||
velocityInRotatingGT(:,i) = currentVelocityPoseRotatingGT.translation.vector;
|
||||
velocityInRotatingGT(:,i) = currentVelocityRotatingGT;
|
||||
currentRotatingFrameForPlot(i).p = currentRotatingFrame.translation.vector;
|
||||
currentRotatingFrameForPlot(i).R = currentRotatingFrame.rotation.matrix;
|
||||
|
||||
|
@ -265,6 +272,7 @@ for i = 1:length(times)
|
|||
% Add values to the graph. Use the current pose and velocity
|
||||
% estimates as to values when interpreting the next pose and
|
||||
% velocity estimates
|
||||
%ImuFactor.Predict(currentPoseEstimate, currentVelocityEstimate, pose_j, vel_j, zeroBias, currentSummarizedMeasurement, g, omegaCoriolisIMU);
|
||||
newValues.insert(currentPoseKey, currentPoseEstimate);
|
||||
newValues.insert(currentVelKey, currentVelocityEstimate);
|
||||
newValues.insert(currentBiasKey, zeroBias);
|
||||
|
|
Loading…
Reference in New Issue