Sto facendo SLAM con un robot a quattro ruote motrici a trazione differenziale (2 ruote motrici) che guida attraverso un corridoio. Il corridoio non è piatto dappertutto. E il robot gira ruotando in posizione, quindi viaggiando nella direzione risultante. L'algoritmo SLAM non deve essere eseguito online.
Il robot prende le misure da una cinghia IMU / giroscopio misurando (ax,ay,az,wx,wy,wz)
, dove si ax
riferisce all'accelerazione della direzione xe wx
misura l'accelerazione angolare attorno all'asse x. Il LIDAR analizza il corridoio con un arco di 270 gradi e misura distanze e angoli. Tuttavia, per quanto ne so il modo in cui la sala non ha caratteristiche riconoscibili, tranne quando si curva
Devo trovare il modo migliore per fondere l'azione proposta misurata dall'encoder con i dati IMU e LIDAR. Per me ha senso che potrei fondere imbardata dall'IMU con i dati dell'encoder per avere un migliore senso di rotta, ma come dovrei incorporare i dati LIDAR?
In sostanza, qual è il modello di misurazione appropriato e come devo incorporare il rumore nel modello di movimento ? Oltre ad aggiungere un po 'di rumore gaussiano ad alcuni (0,σ)
?
appendice
Questo in qualche modo ortogonale alla domanda, ma altrettanto confuso per me. Attualmente sto usando un filtro antiparticolato per fare SLAM, e sono un po 'confuso sul fatto che rappresenti l'incertezza nell'accelerazione angolare nelle particelle stesse. Vedo due opzioni:
Un filtro di navigazione separato che utilizza EKF (o qualsiasi altra cosa in realtà) per trovare prima un vettore della matrice di accelerazione angolare "migliore stima", quindi utilizzare questa matrice come verità assoluta per il filtro antiparticolato. In modo che qualsiasi deriva nelle particelle non provenga dall'incertezza nell'accelerazione angolare.
Incorporare l'incertezza nella deriva delle particelle stesse. Questa opzione sembra più sensata ma non sono sicuro di quale sia un modo di principio per farlo.