44 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Matlab
		
	
	
		
		
			
		
	
	
			44 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Matlab
		
	
	
|  | % frank03: create Beijing matrices in a cleaner way | ||
|  | 
 | ||
|  | load beijing.mat; | ||
|  | load beijing_angles.mat; | ||
|  | load beijing_graph.mat; | ||
|  | n=size(points,1); | ||
|  | 
 | ||
|  | % create config or load it from file | ||
|  | if 0 | ||
|  |     load beijing_config.mat; | ||
|  | else | ||
|  |     config=Pose2Config(); | ||
|  |     for j=1:n | ||
|  |         if mod(j,1000) == 0, fprintf(1, 'adding node %d to config\n', j); end    | ||
|  |         pose=Pose2(points(j,1),points(j,2),angles(j)); | ||
|  |         key = sprintf('x%d', j); | ||
|  |         config.insert(key,pose); | ||
|  |     end | ||
|  |     save('beijing_config.mat','config'); | ||
|  | end | ||
|  | 
 | ||
|  | sd = [0.25;0.25;0.01]; | ||
|  | 
 | ||
|  | % Build factor graph for entire graph | ||
|  | graph = Pose2Graph; | ||
|  | 
 | ||
|  | % First add tree constraints | ||
|  | [I J] = find(tree); | ||
|  | for k=length(edge_order):-1:1 | ||
|  |     edge = edge_order(k); | ||
|  |     if mod(k,1000) == 0, fprintf(1, 'simulating constraint %d\n', k); end    | ||
|  |     addSimulatedConstraint(points,angles,sd,I(edge),J(edge),graph); | ||
|  | end | ||
|  | 
 | ||
|  | % Then add remaining constraints C | ||
|  | C=G-tree; | ||
|  | [I J] = find(C); | ||
|  | for k=1:length(I) | ||
|  |     if mod(k,100) == 0, fprintf(1, 'simulating constraint %d\n', k); end    | ||
|  |     addSimulatedConstraint(points,angles,sd,I(k),J(k),graph); | ||
|  | end | ||
|  | 
 | ||
|  | % generate ordering | ||
|  | ordering = bottom_up_ordering(pred); |