The abstract Sensor type describes the sensing model of the vehicle. Originally, the only sensor type was bearing only, but this has been expanded to consider other sensing modalities.




The DirOmni sensor combines a directional antenna with an omni-directional antenna.


The FOV sensor is a “field-of-view” sensor. The observed value 1 suggests the source is in the vehicle’s field of view, and 0 suggests the source is not.

region_probs = [(60.0,0.9), (120.0, 0.5), (180.0,0.1)]
sensor = FOV(region_probs)
v = Vehicle(50,50, sensor)

Custom Sensors

You can make your own sensors.

NewSensor <: Sensor

You must implement the observe function, which returns an observation (of type Float64).

observe(tx::LocTuple, s::NewSensor, p::Pose)

If you want the particle filter to work, you need to define an observation model.

O(s::NewSensor, theta::LocTuple, p::Pose, o::Float64)

If you want the discrete filter to work, you need to define a discretized version, and a function that converts an observation (Float64) into a discretized version (Int)

obs2bin(o::Float64, s::NewSensor)   # returns an int
O(s::NewSensor, theta::LocTuple, p::Pose, o::Int)