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 |