Nav2 Navigation Stack - humble  humble
ROS 2 Navigation Stack
omni_motion_model.hpp
1 /*
2  * Player - One Hell of a Robot Server
3  * Copyright (C) 2000 Brian Gerkey & Kasper Stoy
4  * gerkey@usc.edu kaspers@robotics.usc.edu
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19  *
20  */
21 
22 #ifndef NAV2_AMCL__MOTION_MODEL__OMNI_MOTION_MODEL_HPP_
23 #define NAV2_AMCL__MOTION_MODEL__OMNI_MOTION_MODEL_HPP_
24 
25 #include <sys/types.h>
26 #include <math.h>
27 #include <algorithm>
28 #include "nav2_amcl/motion_model/motion_model.hpp"
29 #include "nav2_amcl/angleutils.hpp"
30 
31 
32 namespace nav2_amcl
33 {
34 
36 {
37 public:
38  virtual void initialize(
39  double alpha1, double alpha2, double alpha3, double alpha4,
40  double alpha5);
41  virtual void odometryUpdate(pf_t * pf, const pf_vector_t & pose, const pf_vector_t & delta);
42 
43 private:
44  double alpha1_, alpha2_, alpha3_, alpha4_, alpha5_;
45 };
46 } // namespace nav2_amcl
47 #endif // NAV2_AMCL__MOTION_MODEL__OMNI_MOTION_MODEL_HPP_
An abstract motion model class.
virtual void initialize(double alpha1, double alpha2, double alpha3, double alpha4, double alpha5)
An factory to create motion models.
virtual void odometryUpdate(pf_t *pf, const pf_vector_t &pose, const pf_vector_t &delta)
Update on new odometry data.
Definition: pf.hpp:112