M-File Help: RangeBearingSensor | View code for 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).
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 |
W | measurement covariance matrix (2x2) |
interval | valid measurements returned every interval'th call to reading() |
Robotics, Vision & Control, Chap 6, Peter Corke, Springer 2011
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.
'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 |
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).
RangeBearingSensor.Gx, RangeBearingSensor.Gz
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).
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).
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.
RangeBearingSensor.Hx, RangeBearingSensor.Hw, RangeBearingSensor.Hxf
Jacobian dh/dv
J = S.Hw(xv, k) is the Jacobian dh/dv (2x2) at the vehicle state xv (3x1) for map feature k.
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.
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).
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.
© 1990-2012 Peter Corke.