Template Class DifferentialDriveModel

Class Documentation

template<class StateType = Sophus::SE2d>
class DifferentialDriveModel

Sampled odometry model for a differential drive.

Supports 2D and (flattened) 3D state types. This class satisfies Beluga named requirements: MotionModel.

See Probabilistic Robotics thrun2005probabilistic Chapter 5.4.2.

Template Parameters:

StateType – Type for particle’s state. Either Sophus::SE2d or Sophus::SE3d.

Public Types

using state_type = StateType

2D or flattened 3D pose as motion model state (to match that of the particles).

using control_type = std::tuple<state_type, state_type>

Current and previous odometry estimates as motion model control action.

using param_type = DifferentialDriveModelParam

Parameter type that the constructor uses to configure the motion model.

Public Functions

inline explicit DifferentialDriveModel(const param_type &params)

Constructs a DifferentialDriveModel instance.

Parameters:

params – Parameters to configure this instance. See beluga::DifferentialDriveModelParam for details.

template<class Control, typename = common_tuple_type_t<Control, control_type>>
inline auto operator()(const Control &action) const

Computes a state sampling function conditioned on a given control action.

Template Parameters:

Control – A tuple-like container matching the model’s control_type.

Parameters:

action – Control action to condition the motion model with.

Returns:

a callable satisfying Beluga named requirements: StateSamplingFunction.