Class RobotMotionModel

Inheritance Relationships

Base Type

  • public particle_filter::MovementModel< RobotState >

Class Documentation

class bitbots_localization::RobotMotionModel : public particle_filter::MovementModel<RobotState>

Public Functions

RobotMotionModel(const particle_filter::CRandomNumberGenerator &random_number_generator, double diffuse_xStdDev, double diffuse_yStdDev, double diffuse_tStdDev, double diffuse_multiplier, Eigen::Matrix<double, 3, 2> drift_cov)

empty

void drift(RobotState &state, geometry_msgs::msg::Vector3 linear, geometry_msgs::msg::Vector3 angular) const override
Parameters
  • state – Pointer to the state that has to be manipulated.

  • linear – Linear movement relative to the base footprint in cartesian space

  • angular – Anular movement of of the robot in its z-axis, therefore only the z axis needs to be set

void diffuse(RobotState &state) const override

The diffusion consists of a very small gaussian jitter on the state’s variable.

Parameters

state – Pointer to the state that has to be manipulated.

Public Members

double diffuse_multiplier_

Private Functions

double sample(double b) const

Private Members

particle_filter::CRandomNumberGenerator random_number_generator_
double diffuse_xStdDev_
double diffuse_yStdDev_
double diffuse_tStdDev_
Eigen::Matrix<double, 3, 2> drift_cov_