What makes state estimation challenging?
In state estimation we generally have a number of sources of information and our job is to fuse them together into a best estimate. This is challenging because each source of information is imperfect, incomplete, and indirect.
Information is imperfect because mathematical models of motion are always imperfect approximations. Sensor measurements are corrupted by mechanical and electrical noise, interference sources, and environmental limitations -- such as how a camera sensor provides little-to-no information in the dark.
Information is incomplete because there is no single sensor which measures all of the states we would like to estimate in a unified way. Each sensor might tell us something about position or velocity or orientation, but it will never tell us information about all three. So, in order to estimate position, velocity, and orientation, we seek information from a suite of sensors.
Information is indirect because most sensors do not give us measurements of the states that we wish to estimate, but rather quantities that depend on those states.
Because of this, Shield AI’s autonomous quadrotor is built with a number of different kinds of sensors whose information we fuse together. Included in the quadrotor’s sensor suite is a GPS receiver. When the robot is outside with a clear view of the sky, the GPS receiver provides a good measurement of position, but the information it provides is imperfect because it could be off by a few meters and incomplete because it does not ascertain the robot's orientation. Further, the GPS receiver becomes more imperfect when the robot goes indoors.
How does this fusing of information work?
There are many unique sensor fusion algorithms, but they generally all follow the same basic process:
Initialize: Select an initial estimate for each state we would like to measure.
Predict: As time progresses, we update our state estimates based on a mathematical model of how processes evolve.
Correct: Whenever we receive a new sensor measurement, we correct our state estimates to best explain the measurement in a consistent manner.
Iterate: Repeat these prediction and correction steps over and over.
When choosing an algorithm, key considerations include computational complexity (how much computing power is required), accuracy (will it arrive at the correct estimate), and robustness (will it always work). When choosing an algorithm, we choose among and between these key considerations in order to create a robot that is robust, reliable, and trustworthy.