Sensor noise

The following describes how sensor noise models may be applied to simulated sensors, and the different types of noise models.

Background Reading ===


 * IMU: http://gavlab.auburn.edu/uploads/Flenniken_thesis.pdf

Architecture ==

Noise models will be implemented as a set of filters applied to data produced by sensors. Zero or more filters may be applied to each sensor. A filter operates by consuming data from a source (either the sensor, or another filter), applying a noise model, and producing new data for consumption by another filter or the end user.

General Purpose Filters ==

* Gaussian Noise * Parameters: Mean, variance * Poisson Noise * Parameters: Mean * Normal Noise * Parameters: Min, and max values * Quantization / Discretization noise * Parameters: Resolution

Specialized Filters == Custom filters will be implemented as plugins. This will allow users to add any time of noise to sensor data.


 * 1) Laser Filters ####

Gaussian noise filter


 * 1) Camera Filters ####

White noise filter


 * 1) IMU Filters ####

Angular rates

The angular rate output of the device can be expressed as:

Rate_measured = Rate_true + Device_noise + Device_bias + Rotation_true * earth_rotation_rate

Rotation_true represents the true (ground truth) rotation of the IMU relative to the world.

Earth_rotation_rate is a vector of magnitude 15 deg/hr (7.2x10^-5 rad/s) that points along the earth’s axis of rotation. Depending on choice of world coordinates, this may point in various directions.

Accelerations

The accelerometer output can be expressed as:

Accel_measured = Accel_true + Device_noise + Device_bias + Rotation_true * gravity

Gravity is a gravity vector, usually pointed along the world z axis. When the IMU is sitting still on the earth’s surface, it should be feeling an upward acceleration of 9.8 m/s^2 or so.

Device white noise

At 1 KHz, the following 0 mean white noise is present (approximate)

Angular rates: standard deviation 40 degrees per hour (2x10^-4 rad/s)

Accelerations: standard deviation 0.017 m/s^2

Device bias

Bias can be reasonably approximated as white noise with a very slow low pass filter applied to it – this reasonably simulates slow drift of the bias. Alternatively, you could simply pick a random bias at startup (with the correct amplitude), and keep it for the duration of the simulation.

Angular rate bias: biases of 1-2 degrees per hour (5x10^-6 to 1x10^-5 rad/s) are reasonable biases for the device.

Accelerometer bias: biases of 10mg (0.1 m/s^2) are typical of the device.