lobot::CalibrateLET Class Reference

A do-nothing behaviour for calibrating lgmd_extricate_tti. More...

#include <Robots/LoBot/control/LoCalibrateLET.H>

Inheritance diagram for lobot::CalibrateLET:
Inheritance graph
[legend]
Collaboration diagram for lobot::CalibrateLET:
Collaboration graph
[legend]

List of all members.

Classes

class  Params

Friends

class subfactory< CalibrateLET, base >

Detailed Description

A do-nothing behaviour for calibrating lgmd_extricate_tti.

This class implements a behaviour that produces the table of probability values required by lgmd_extricate_tti's sensor model. This behaviour does not actually control lobot or even use the robot's sensors. It is meant to be a purely computational, off-line task.

The idea here is to run the Gabbiani "forward" model for LGMD spike generation for all the time-to-impact discretizations. We then find the correct bin in the P(lgmd|tti) table and increment it. In the end, right before quitting, this table is normalized to yield a bunch of probabilities (viz., values between zero and one).

The lgmd_extricate_tti behaviour then uses these P(lgmd|tti) values to compute P(tti|lgmd) by applying recursive Bayesian updates to a probability distribution over a discretized TTI space.

NOTE: The table of P(lgmd|tti) values, viz., the sensor model, contains causal information, i.e., the state that causes a particular measurement. The goal of Bayesian state estimation is to go in the opposite direction, i.e., given a particular measurement, what is the most likely state we are in?

Usually, causal information is easier to obtain. One way is by direct experimentation and sampling, for example, driving the robot about in a known environment and examining the correlation between its states and corresponding sensor readings.

To go this route in lobot's case, we would simply drive it around, using the laser range finder and encoders to compute time-to-impact. The locust module can be used to generate LGMD spikes. Then, all we'd have to do is discretize the TTI and LGMD values and increment the correct bin.

Unfortunately, in practice, the above approach yields very bad results due to two factors. Firstly the TTI computed is almost always concentrated at the upper end of the TTI discretization's range because of the effects of other behaviours that slow the robot down, stop it and perform extrication. Secondly, the LGMD activity only becomes significant very near impact, peaking briefly followed by a rapid decay. For the most part, the LGMD remains silent. Thus, sampling it frequently under normal driving conditions results in a concentration at the lower end of the LGMD spectrum.

The alternative to direct experimentation and sampling for obtaining causal information is to apply a computational model. In situations where the mathematics and physics of the underlying process are well-understood, this might actually be a better approach.

In lobot's case, thanks to Gabbiani, et al., we already have a neat model relating LGMD spikes to TTI. Thus, there really is no need to drive the robot around and collect statistics. Instead, we simply apply the model and obtain the necessary information.

Definition at line 132 of file LoCalibrateLET.H.


The documentation for this class was generated from the following files:
Generated on Sun May 8 08:30:21 2011 for iLab Neuromorphic Vision Toolkit by  doxygen 1.6.3