starting covariance analysis on between factors (monte carlo runs)
parent
2843266496
commit
eaf298bd18
|
@ -0,0 +1,44 @@
|
|||
% Test GTSAM covariances on a graph with betweenFactors
|
||||
|
||||
clc
|
||||
clear all
|
||||
close all
|
||||
|
||||
%% Create ground truth trajectory
|
||||
trajectoryLength = 100;
|
||||
|
||||
% possibly create random trajectory
|
||||
currentPoseKey = symbol('x', 0);
|
||||
currentPose = Pose3;
|
||||
gtValues = Values;
|
||||
gtValues.insert(currentPoseKey, currentPose);
|
||||
|
||||
for i=1:trajectoryLength
|
||||
currentPoseKey = symbol('x', i);
|
||||
deltaPosition = % create random vector with mean [x 0 0]
|
||||
deltaRotation = % create random rotation with mean [0 0 0]
|
||||
deltaPose = Pose3(deltaRotation, Point3(deltaPosition));
|
||||
% "Deduce" ground truth measurements
|
||||
% deltaPose are the gt measurements - save them in some structure
|
||||
currentPose = currentPose.compose(deltaPose);
|
||||
gtValues.insert(currentPoseKey, currentPose);
|
||||
end
|
||||
|
||||
%% Create gt graph (using between with ground truth measurements)
|
||||
% Compute covariances using gtGraph and gtValues (for visualization)
|
||||
|
||||
% decide measurement covariance
|
||||
|
||||
%% for k=1:numMonteCarloRuns
|
||||
% create a new graph
|
||||
% for each measurement. add noise and add to graph
|
||||
% optimize
|
||||
% compute covariances:
|
||||
% compute NEES using (estimationError = estimatedValues - gtValues) and estimated covariances
|
||||
% "estimationError = estimatedValues - gtValues" only holds in a linear case
|
||||
% in a nonlinear case estimationError = LogMap ((estimatedValues.inverse) * gtValues)
|
||||
% in GTSAM you should check "localCoordinates"
|
||||
|
||||
%% compute statistics: ANEES, plots
|
||||
|
||||
|
Loading…
Reference in New Issue