check under constrained measurement in monocular camera setup
parent
34ae976f6a
commit
fd6b377d4b
|
@ -27,7 +27,8 @@ for i = 1:cylinderNum
|
||||||
for j = 1:cylinderPointsNum
|
for j = 1:cylinderPointsNum
|
||||||
points3d{end+1}.data = cylinders{i}.Points{j};
|
points3d{end+1}.data = cylinders{i}.Points{j};
|
||||||
points3d{end}.Z = cell(0);
|
points3d{end}.Z = cell(0);
|
||||||
points3d{end}.cameraConstraint = cell(0);
|
points3d{end}.camConstraintIdx = cell(0);
|
||||||
|
points3d{end}.added = cell(0);
|
||||||
points3d{end}.visiblity = false;
|
points3d{end}.visiblity = false;
|
||||||
points3d{end}.cov = cell(cameraPosesNum);
|
points3d{end}.cov = cell(cameraPosesNum);
|
||||||
end
|
end
|
||||||
|
@ -44,6 +45,7 @@ end
|
||||||
|
|
||||||
pts3d = cell(cameraPosesNum, 1);
|
pts3d = cell(cameraPosesNum, 1);
|
||||||
cameraPosesCov = cell(cameraPosesNum, 1);
|
cameraPosesCov = cell(cameraPosesNum, 1);
|
||||||
|
marginals = Values;
|
||||||
for i = 1:cameraPosesNum
|
for i = 1:cameraPosesNum
|
||||||
cameraPose = cameraPoses{i};
|
cameraPose = cameraPoses{i};
|
||||||
pts3d{i} = cylinderSampleProjection(K, cameraPose, imageSize, cylinders);
|
pts3d{i} = cylinderSampleProjection(K, cameraPose, imageSize, cylinders);
|
||||||
|
@ -52,11 +54,23 @@ for i = 1:cameraPosesNum
|
||||||
for j = 1:measurementNum
|
for j = 1:measurementNum
|
||||||
index = pts3d{i}.overallIdx{j};
|
index = pts3d{i}.overallIdx{j};
|
||||||
points3d{index}.Z{end+1} = pts3d{i}.Z{j};
|
points3d{index}.Z{end+1} = pts3d{i}.Z{j};
|
||||||
points3d{index}.cameraConstraint{end+1} = i;
|
points3d{index}.camConstraintIdx{end+1} = i;
|
||||||
points3d{index}.visiblity = true;
|
points3d{index}.added{end+1} = false;
|
||||||
|
|
||||||
graph.add(GenericProjectionFactorCal3_S2(pts3d{i}.Z{j}, ...
|
if length(points3d{index}.Z) < 2
|
||||||
measurementNoise, symbol('x', i), symbol('p', index), K) );
|
continue;
|
||||||
|
else
|
||||||
|
for k = 1:length(points3d{index}.Z)
|
||||||
|
if ~points3d{index}.added{k}
|
||||||
|
graph.add(GenericProjectionFactorCal3_S2(points3d{index}.Z{k}, ...
|
||||||
|
measurementNoise, symbol('x', points3d{index}.camConstraintIdx{k}), ...
|
||||||
|
symbol('p', index), K) );
|
||||||
|
points3d{index}.added{k} = true;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
points3d{index}.visiblity = true;
|
||||||
end
|
end
|
||||||
|
|
||||||
pose_i = cameraPoses{i}.retract(0.1*randn(6,1));
|
pose_i = cameraPoses{i}.retract(0.1*randn(6,1));
|
||||||
|
@ -71,6 +85,7 @@ for i = 1:cameraPosesNum
|
||||||
end
|
end
|
||||||
|
|
||||||
cameraPosesCov{i} = marginals.marginalCovariance(symbol('x',i));
|
cameraPosesCov{i} = marginals.marginalCovariance(symbol('x',i));
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
%% Print the graph
|
%% Print the graph
|
||||||
|
|
Loading…
Reference in New Issue