20 lines
		
	
	
		
			430 B
		
	
	
	
		
			Matlab
		
	
	
			
		
		
	
	
			20 lines
		
	
	
		
			430 B
		
	
	
	
		
			Matlab
		
	
	
| % Christian Potthast
 | |
| % create visibility matrix
 | |
| 
 | |
| function V = create_visibility(map,pose,threshold)
 | |
| 
 | |
| n = size(map,2);
 | |
| m = size(pose,2);
 | |
| V = sparse([],[],[],n+m,n+m);
 | |
| 
 | |
| for t = 1:m
 | |
|     % find measurements within Manhattan range
 | |
|     js = find(2==sum(abs(map-pose(:,t)*ones(1,n))<[threshold;threshold]*ones(1,n)));
 | |
|     for j = js
 | |
|         V(j,t+n)=1;
 | |
|     end
 | |
|     % add in odometry links
 | |
|     if t>1
 | |
|        V((t+n)-1,t+n)=1; 
 | |
|     end
 | |
| end |