image thumbnail
from Particle filter and PCRB for terrain-aided navigation by Sebastien PARIS
Demo for terrain-aided navigation by particle filter

dt_cap(Y , norm_v , R_T)
function [delta_t , cap_t , distance] = dt_cap(Y , norm_v , R_T)

%
% DT_CAP Rcupre  partir de la trajectoire Y (2 x K) (L_k , G_k en radians) 
% et du module de vitesse norm_v (en m.s), les instants associs  chaque extrmits
% des jambe ainsi que la squence de  cap.
%
%Usage    :
%
%[delta_t , cap_t] = dt_cap(Y , norm_v);
%
%Exemple  :
%
%cte_PI  = pi/180;
%L_min   =  0.0 * cte_PI;        
%L_max   = 55.7 * cte_PI;        
%G_min   = - 45 * cte_PI;        
%G_max   =   25 * cte_PI;        
%R_L     = 2*cte_PI;                         
%R_G     = 2*cte_PI;
%K       = 10;
%norm_v  = 5;
%[V , Ny , Nx] = mailleur(L_min , L_max , G_min , G_max , R_L , R_G);
%S = Nx*Ny;
%y = floor(S*rand(1 , K));
%Y    = V(y , :).';
%[delta_t , cap_t] = dt_cap(Y , norm_v);
%
%
% VOIR Aussi MAILLEUR



%%***************************************************************************%%
%%                                                                            %
%%       Copyright (c) 2002 by IRISA/INRIA Rennes.                            %
%%       All Rights Reserved.                                                 %
%%                                                                            %
%%       IRISA/INRIA Rennes                                                   %
%%       Campus Universitaire de Beaulieu                                     %
%%       35042 Rennes Cedex                                                   %
%%                                                                            %
%% Auteur Sbastien PARIS (sparis@irisa.fr), Juin 2002, Projet POSIT          %
%%***************************************************************************%%

if (nargin < 3)
   
   R_T = 6378e3;
   
end


[A , K , N ]          = size(Y);


if(length(norm_v) == 1)
   
   norm_v = norm_v(: , ones(1 , K - 1) , ones(1 , N));
   
end



ecart_YX          = diff(Y , [] , 2);

cap_t             = atan2(ecart_YX(2 , : , :) , ecart_YX(1 , : , :));

distance          = sqrt( sum(ecart_YX.^2 , 1) );          % Norme euclidienne

delta_t           = (distance.*R_T)./norm_v; 

Contact us at files@mathworks.com