Skip to content

State Estimation

Aaron Miller edited this page Aug 20, 2017 · 4 revisions

The drone has a variety of sensors it uses for state estimation. The flight controller has its own state estimators for calculating the orientation and rate of rotation of the drone which are extremely accurate, precise, and fast, so we use those instead of writing our own. This leaves the task of determining the drone's linear acceleration, velocity, and position. For this, the drone uses its accelerometer, laser rangefinder altimeters, and cameras. Currently only the bottom-facing camera is used for this purpose. This camera is processed using both a Lucas-Kanade Sparse Optical Flow algorithm that produces horizontal velocity estimates and a custom grid-finding algorithm that produces a absolute horizontal position estimates.

All of these are fed into an Extended Kalman Filter, which basically is able to check all of our sensors against each other, figure out what measurements are more likely to be correct, and combine them to produce estimates of our acceleration, velocity, and position in the x, y, and z directions. The implementation we use is our own fork of the robot_localization package.

Clone this wiki locally