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 |