From bd843b54f6dd4853ca2e817b7c39b4b8f1ae9d4d Mon Sep 17 00:00:00 2001 From: Kai Ni Date: Sat, 12 Dec 2009 22:00:33 +0000 Subject: [PATCH] modifiy the node ordering of beijing data --- matlab/BeijingPose2Graph_kai.m | 86 +++++++++++++++++++++++++++++++++ matlab/beijing_graph.mat | Bin 314126 -> 349821 bytes 2 files changed, 86 insertions(+) create mode 100644 matlab/BeijingPose2Graph_kai.m diff --git a/matlab/BeijingPose2Graph_kai.m b/matlab/BeijingPose2Graph_kai.m new file mode 100644 index 000000000..ab30203f4 --- /dev/null +++ b/matlab/BeijingPose2Graph_kai.m @@ -0,0 +1,86 @@ +load beijing.mat; +load beijing_angles.mat; +load beijing_graph.mat; +%load beijing_config.mat; + +cov = [ 0.25, 0, 0; 0, 0.25, 0; 0, 0, 0.01]; + + +factors = Pose2Graph; +factors2 = Pose2Graph; +ord = Ordering(); +ord2 = Ordering(); + +[~, idx] = sort(way_levels, 'descend'); + +for i=1:length(idx) + if mod(i,500) == 0 + fprintf(1, 'processing way %d\n', i); + end + for j=1:length(ways{idx(i)})-1 + id1 = ways{idx(i)}(j); + id2 = ways{idx(i)}(j+1); + key1 = sprintf('x%d', id1); + key2 = sprintf('x%d', id2); + + delta_x = points(id1,:) - points(id2,:); + delta_angle = angles(id1) - angles(id2); + measured = Pose2(delta_x(1), delta_x(2), delta_angle); + + if pred(id1) == id2 || pred(id2) == id1 %% in the spanning tree + factor=Pose2Factor(key1,key2,measured, cov); + factors.push_back(factor); + ord.push_back(key1); + ord.push_back(key2); + else %% not in the spanning tree + factors2.push_back(Pose2Factor(key1,key2,measured, cov)); + ord2.push_back(key1); + ord2.push_back(key2); + end + end +end +ord.unique(); +ord2.unique(); +% ord.reverse(); +% ord2.reverse(); + +if 1 + config=Pose2Config(); + n=size(points,1); + for j=1:n + pose=Pose2(points(j,1),points(j,2),angles(j)); + key = sprintf('x%d', j); + config.insert(key,pose); + if mod(j,1000) == 0 + key + end + end + save('beijing_config.mat','config'); +end + +amd_ord=factors.getOrdering_(); % does not work +LFG=factors.linearize_(config); +ijs=LFG.sparse(ord); +A=sparse(ijs(1,:),ijs(2,:),ijs(3,:)); +figure(1) +spy(A); +%save('beijing_factors.mat', 'factors'); + +LFG2=factors2.linearize_(config); +ijs2=LFG2.sparse(ord2); +A2=sparse(ijs2(1,:),ijs2(2,:),ijs2(3,:)); +figure(2) +spy(A2); + +% show R factor +R = qr(A,0); +figure(3) +spy(R) + +% show re-ordered R factor +P = colamd(A); +figure(4) +spy(A(:,P)) +R = qr(A(:,P),0); +figure(5) +spy(R) diff --git a/matlab/beijing_graph.mat b/matlab/beijing_graph.mat index 226272a0a7effafcfe068ab1d2ca4acbde203994..396fa032d5c47c894a5a51cd81c02857f01225fc 100644 GIT binary patch delta 36032 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 QsdKzn2!Y@K0N{F+4ERP}QUCw| delta 55 zcmeynMzn95@C0Ltkc?6Vm(*khLjwgvGb