Main Page
Namespaces
Classes
Files
File List
File Members
include
amcl
sensors
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
{
40
ODOM_MODEL_DIFF
,
41
ODOM_MODEL_OMNI
,
42
ODOM_MODEL_DIFF_CORRECTED
,
43
ODOM_MODEL_OMNI_CORRECTED
44
}
odom_model_t
;
45
46
// Odometric sensor data
47
class
AMCLOdomData
:
public
AMCLSensorData
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
amcl::ODOM_MODEL_DIFF
Definition:
amcl_odom.h:40
amcl::AMCLSensor
Definition:
amcl_sensor.h:41
amcl_sensor.h
_pf_t
Definition:
pf.h:112
amcl::AMCLOdomData
Definition:
amcl_odom.h:47
amcl::AMCLOdom::alpha5
double alpha5
Definition:
amcl_odom.h:92
amcl::AMCLOdom::time
double time
Definition:
amcl_odom.h:86
amcl::ODOM_MODEL_OMNI_CORRECTED
Definition:
amcl_odom.h:43
amcl::AMCLOdom
Definition:
amcl_odom.h:58
amcl
Definition:
amcl_laser.h:35
amcl::AMCLSensorData
Definition:
amcl_sensor.h:85
amcl::AMCLOdomData::pose
pf_vector_t pose
Definition:
amcl_odom.h:50
amcl::ODOM_MODEL_DIFF_CORRECTED
Definition:
amcl_odom.h:42
amcl::ODOM_MODEL_OMNI
Definition:
amcl_odom.h:41
amcl::odom_model_t
odom_model_t
Definition:
amcl_odom.h:38
amcl::AMCLOdom::model_type
odom_model_t model_type
Definition:
amcl_odom.h:89
amcl::AMCLOdomData::delta
pf_vector_t delta
Definition:
amcl_odom.h:53
pf_vector_t
Definition:
pf_vector.h:38
amcl
Author(s): Brian P. Gerkey, contradict@gmail.com
autogenerated on Thu Jan 21 2021 04:05:36