M-File Help: RangeBearingSensor | View code for RangeBearingSensor

# RangeBearingSensor

Range and bearing sensor class

A concrete subclass of the Sensor class that implements a range and bearing angle sensor that provides robot-centric measurements of point features in the world. To enable this it has references to a map of the world (Map object) and a robot moving through the world (Vehicle object).

## Methods

reading | range/bearing observation of random feature
h | range/bearing observation of specific feature
Hx | Jacobian matrix dh/dxv
Hxf | Jacobian matrix dh/dxf
Hw | Jacobian matrix dh/dw

g | feature positin given vehicle pose and observation
Gx | Jacobian matrix dg/dxv
Gz | Jacobian matrix dg/dz

## Properties (read/write)

W | measurement covariance matrix (2x2)
interval | valid measurements returned every interval'th call to reading()

## Reference

Robotics, Vision & Control, Chap 6, Peter Corke, Springer 2011

## See also

Sensor, Vehicle, Map, EKF

# RangeBearingSensor.RangeBearingSensor

Range and bearing sensor constructor

s = RangeBearingSensor(vehicle, map, w, options) is an object representing a range and bearing angle sensor mounted on the Vehicle object vehicle and observing an environment of known landmarks represented by the map object map. The sensor covariance is R (2x2) representing range and bearing covariance.

## Options

'range', xmax | maximum range of sensor
'range', [xmin xmax] | minimum and maximum range of sensor
'angle', TH | detection for angles betwen -TH to +TH
'angle', [THMIN THMAX] | detection for angles betwen THMIN and THMAX
'skip', I | return a valid reading on every I'th call
'fail', [TMIN TMAX] | sensor simulates failure between timesteps TMIN and TMAX

## See also

Sensor, Vehicle, Map, EKF

# RangeBearingSensor.g

Compute landmark location

p = S.g(xv, z) is the world coordinate (1x2) of a feature given the sensor observation z (1x2) and vehicle state xv (3x1).

## See also

RangeBearingSensor.Gx, RangeBearingSensor.Gz

# RangeBearingSensor.Gx

Jacobian dg/dx

J = S.Gx(xv, z) is the Jacobian dg/dxv (2x3) at the vehicle state xv (3x1) for sensor observation z (2x1).

## See also

RangeBearingSensor.g

# RangeBearingSensor.Gz

Jacobian dg/dz

J = S.Gz(xv, z) is the Jacobian dg/dz (2x2) at the vehicle state xv (3x1) for sensor observation z (2x1).

## See also

RangeBearingSensor.g

# RangeBearingSensor.h

Landmark range and bearing

z = S.h(xv, J) is a sensor observation (1x2), range and bearing, from vehicle at pose xv (1x3) to the map feature K.

z = S.h(xv, xf) as above but compute range and bearing to a feature at coordinate xf.

z = s.h(xv) as above but computer range and bearing to all map features. z has one row per feature.

## Notes

- Noise with covariance W is added to each row of Z.
- Supports vectorized operation where XV (Nx3) and Z (Nx2).

## See also

RangeBearingSensor.Hx, RangeBearingSensor.Hw, RangeBearingSensor.Hxf

# RangeBearingSensor.Hw

Jacobian dh/dv

J = S.Hw(xv, k) is the Jacobian dh/dv (2x2) at the vehicle state xv (3x1) for map feature k.

## See also

RangeBearingSensor.h

# RangeBearingSensor.Hx

Jacobian dh/dxv

J = S.Hx(xv, k) returns the Jacobian dh/dxv (2x3) at the vehicle state xv (3x1) for map feature k.

J = S.Hx(xv, xf) as above but for a feature at coordinate xf.

## See also

RangeBearingSensor.h

# RangeBearingSensor.Hxf

Jacobian dh/dxf

J = S.Hxf(xv, k) is the Jacobian dh/dxv (2x2) at the vehicle state xv (3x1) for map feature k.

J = S.Hxf(xv, xf) as above but for a feature at coordinate xf (1x2).

## See also

RangeBearingSensor.h

# RangeBearingSensor.reading

Landmark range and bearing

[z,k] = S.reading() is an observation of a random landmark where z=[R,THETA] is the range and bearing with additive Gaussian noise of covariance R (specified to the constructor). k is the index of the map feature that was observed. If no valid measurement, ie. no features within range, interval subsampling enabled or simulated failure the return is z=[] and k=NaN.

## See also

RangeBearingSensor.h

© 1990-2014 Peter Corke.