Skip to content

Commit

Permalink
adding partial doxygen coverage for AMCL (#2253)
Browse files Browse the repository at this point in the history
  • Loading branch information
SteveMacenski authored Mar 17, 2021
1 parent d8bd3c5 commit 6c46c2e
Show file tree
Hide file tree
Showing 2 changed files with 78 additions and 0 deletions.
58 changes: 58 additions & 0 deletions nav2_amcl/include/nav2_amcl/motion_model/motion_model.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,21 +24,61 @@
namespace nav2_amcl
{

/**
* @class nav2_amcl::MotionModel
* @brief An abstract motion model class
*/
class MotionModel
{
public:
virtual ~MotionModel() = default;

/**
* @brief Update on new odometry data
* @param pf The particle filter to update
* @param pose pose of robot in odometry update
* @param delta change in pose in odometry update
*/
virtual void odometryUpdate(pf_t * pf, const pf_vector_t & pose, const pf_vector_t & delta) = 0;

/**
* @brief An factory to create motion models
* @param type Type of motion model to create in factory
* @param alpha1 error parameters, see documentation
* @param alpha2 error parameters, see documentation
* @param alpha3 error parameters, see documentation
* @param alpha4 error parameters, see documentation
* @param alpha5 error parameters, see documentation
* @return MotionModel A pointer to the motion model it created
*/
static MotionModel * createMotionModel(
std::string & type, double alpha1, double alpha2,
double alpha3, double alpha4, double alpha5);
};

/**
* @class nav2_amcl::OmniMotionModel
* @brief An Omnidirectional motion model class
*/
class OmniMotionModel : public MotionModel
{
public:
/**
* @brief An omni constructor
* @param alpha1 error parameters, see documentation
* @param alpha2 error parameters, see documentation
* @param alpha3 error parameters, see documentation
* @param alpha4 error parameters, see documentation
* @param alpha5 error parameters, see documentation
*/
OmniMotionModel(double alpha1, double alpha2, double alpha3, double alpha4, double alpha5);

/**
* @brief Update on new odometry data
* @param pf The particle filter to update
* @param pose pose of robot in odometry update
* @param delta change in pose in odometry update
*/
void odometryUpdate(pf_t * pf, const pf_vector_t & pose, const pf_vector_t & delta);

private:
Expand All @@ -49,10 +89,28 @@ class OmniMotionModel : public MotionModel
double alpha5_;
};

/**
* @class nav2_amcl::DifferentialMotionModel
* @brief An differential drive motion model class
*/
class DifferentialMotionModel : public MotionModel
{
public:
/**
* @brief A diff drive constructor
* @param alpha1 error parameters, see documentation
* @param alpha2 error parameters, see documentation
* @param alpha3 error parameters, see documentation
* @param alpha4 error parameters, see documentation
*/
DifferentialMotionModel(double alpha1, double alpha2, double alpha3, double alpha4);

/**
* @brief Update on new odometry data
* @param pf The particle filter to update
* @param pose pose of robot in odometry update
* @param delta change in pose in odometry update
*/
void odometryUpdate(pf_t * pf, const pf_vector_t & pose, const pf_vector_t & delta);

private:
Expand Down
20 changes: 20 additions & 0 deletions nav2_amcl/include/nav2_amcl/sensors/laser/laser.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,32 @@ namespace nav2_amcl
// Forward declarations
class LaserData;

/**
* @class nav2_amcl::Laser
* @brief An abstract laser model class
*/
class Laser
{
public:
/**
* @brief A Laser constructor
* @param max_beams number of beams to use
* @param map Map pointer to use
*/
Laser(size_t max_beams, map_t * map);
virtual ~Laser();

/**
* @brief update based on new sensor data
* @param data Laser data to update using
* @return bool If successful
*/
virtual bool sensorUpdate(pf_t * pf, LaserData * data) = 0;

/**
* @brief update laser pose
* @param laser_pose Laser pose
*/
void SetLaserPose(pf_vector_t & laser_pose);

protected:
Expand Down

0 comments on commit 6c46c2e

Please sign in to comment.