amcl_odom.h
Go to the documentation of this file.
1 /*
2  * Player - One Hell of a Robot Server
3  * Copyright (C) 2000 Brian Gerkey et al.
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18  *
19  */
21 //
22 // Desc: Odometry sensor model for AMCL
23 // Author: Andrew Howard
24 // Date: 17 Aug 2003
25 // CVS: $Id: amcl_odom.h 4135 2007-08-23 19:58:48Z gerkey $
26 //
28 
29 #ifndef AMCL_ODOM_H
30 #define AMCL_ODOM_H
31 
32 #include "amcl_sensor.h"
33 #include "../pf/pf_pdf.h"
34 
35 namespace amcl
36 {
37 
38 typedef enum
39 {
44 } odom_model_t;
45 
46 // Odometric sensor data
48 {
49  // Odometric pose
50  public: pf_vector_t pose;
51 
52  // Change in odometric pose
53  public: pf_vector_t delta;
54 };
55 
56 
57 // Odometric sensor model
58 class AMCLOdom : public AMCLSensor
59 {
60  // Default constructor
61  public: AMCLOdom();
62 
63  public: void SetModelDiff(double alpha1,
64  double alpha2,
65  double alpha3,
66  double alpha4);
67 
68  public: void SetModelOmni(double alpha1,
69  double alpha2,
70  double alpha3,
71  double alpha4,
72  double alpha5);
73 
74  public: void SetModel( odom_model_t type,
75  double alpha1,
76  double alpha2,
77  double alpha3,
78  double alpha4,
79  double alpha5 = 0 );
80 
81  // Update the filter based on the action model. Returns true if the filter
82  // has been updated.
83  public: virtual bool UpdateAction(pf_t *pf, AMCLSensorData *data);
84 
85  // Current data timestamp
86  private: double time;
87 
88  // Model type
89  private: odom_model_t model_type;
90 
91  // Drift parameters
92  private: double alpha1, alpha2, alpha3, alpha4, alpha5;
93 };
94 
95 
96 }
97 
98 #endif
Definition: pf.h:112
double alpha5
Definition: amcl_odom.h:92
double time
Definition: amcl_odom.h:86
pf_vector_t pose
Definition: amcl_odom.h:50
odom_model_t
Definition: amcl_odom.h:38
odom_model_t model_type
Definition: amcl_odom.h:89
pf_vector_t delta
Definition: amcl_odom.h:53


amcl
Author(s): Brian P. Gerkey, contradict@gmail.com
autogenerated on Thu Jan 21 2021 04:05:36