SRBA: Sparser Relative Bundle Adjustment
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends
Public Types | Static Public Member Functions | Static Public Attributes
srba::sensor_model< landmarks::Euclidean3D, observations::RangeBearing_3D > Struct Template Reference

Detailed Description

template<>
struct srba::sensor_model< landmarks::Euclidean3D, observations::RangeBearing_3D >

Sensor model: 3D landmarks in Euclidean coordinates + 3D Range-Bearing observations

Definition at line 517 of file sensors.h.

#include <sensors.h>

List of all members.

Public Types

typedef
observations::RangeBearing_3D 
OBS_T
typedef landmarks::Euclidean3D LANDMARK_T
typedef Eigen::Matrix< double,
OBS_DIMS, LM_DIMS > 
TJacobian_dh_dx
 A Jacobian of the correct size for each dh_dx.
typedef landmark_traits
< LANDMARK_T >
::array_landmark_t 
array_landmark_t
 a 2D or 3D point
typedef OBS_T::TObservationParams TObservationParams

Static Public Member Functions

template<class POSE_T >
static void observe_error (observation_traits< OBS_T >::array_obs_t &out_obs_err, const observation_traits< OBS_T >::array_obs_t &z_obs, const POSE_T &base_pose_wrt_observer, const landmark_traits< LANDMARK_T >::array_landmark_t &lm_pos, const OBS_T::TObservationParams &params)
static bool eval_jacob_dh_dx (TJacobian_dh_dx &dh_dx, const array_landmark_t &xji_l, const TObservationParams &sensor_params)
static void inverse_sensor_model (landmark_traits< LANDMARK_T >::array_landmark_t &out_lm_pos, const observation_traits< OBS_T >::obs_data_t &obs, const OBS_T::TObservationParams &params)

Static Public Attributes

static const size_t OBS_DIMS = OBS_T::OBS_DIMS
static const size_t LM_DIMS = LANDMARK_T::LM_DIMS

Member Function Documentation

static bool srba::sensor_model< landmarks::Euclidean3D, observations::RangeBearing_3D >::eval_jacob_dh_dx ( TJacobian_dh_dx dh_dx,
const array_landmark_t xji_l,
const TObservationParams sensor_params 
) [inline, static]

Evaluates the partial Jacobian dh_dx:

            d h(x')
 dh_dx = -------------
             d x' 

With:

  • x' = x^{j,i}_l The relative location of the observed landmark wrt to the robot/camera at the instant of observation. (See notation on papers)
  • h(x): Observation model: h(): landmark location --> observation
Parameters:
[out]dh_dxThe output matrix Jacobian. Values at input are undefined (i.e. they cannot be asssumed to be zeros by default).
[in]xji_lThe relative location of the observed landmark wrt to the robot/camera at the instant of observation.
[in]sensor_paramsSensor-specific parameters, as set by the user.
Returns:
true if the Jacobian is well-defined, false to mark it as ill-defined and ignore it during this step of the optimization

Definition at line 584 of file sensors.h.

static void srba::sensor_model< landmarks::Euclidean3D, observations::RangeBearing_3D >::inverse_sensor_model ( landmark_traits< LANDMARK_T >::array_landmark_t out_lm_pos,
const observation_traits< OBS_T >::obs_data_t &  obs,
const OBS_T::TObservationParams params 
) [inline, static]

Inverse observation model for first-seen landmarks. Needed to avoid having landmarks at (0,0,0) which leads to undefined Jacobians. This is invoked only when both "unknown_relative_position_init_val" and "is_fixed" are "false" in an observation. The LM location must not be exact at all, just make sure it doesn't have an undefined Jacobian.

Parameters:
[out]out_lm_posThe relative landmark position wrt the current observing KF.
[in]obsThe observation itself.
[in]paramsThe sensor-specific parameters.

Definition at line 615 of file sensors.h.

template<class POSE_T >
static void srba::sensor_model< landmarks::Euclidean3D, observations::RangeBearing_3D >::observe_error ( observation_traits< OBS_T >::array_obs_t &  out_obs_err,
const observation_traits< OBS_T >::array_obs_t &  z_obs,
const POSE_T &  base_pose_wrt_observer,
const landmark_traits< LANDMARK_T >::array_landmark_t lm_pos,
const OBS_T::TObservationParams params 
) [inline, static]

Executes the (negative) observation-error model: "-( h(lm_pos,pose) - z_obs)"

Parameters:
[out]out_obs_errThe output of the predicted sensor value
[in]z_obsThe real observation, to be contrasted to the prediction of this sensor model
[in]base_pose_wrt_observerThe relative pose of the observed landmark's base KF, wrt to the current sensor pose (which may be different than the observer KF pose if the sensor is not at the "robot origin").
[in]lm_posThe relative landmark position wrt its base KF.
[in]paramsThe sensor-specific parameters.

Definition at line 543 of file sensors.h.


The documentation for this struct was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends