gps.h
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 program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program 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
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 *
20 */
21/**************************************************************************
22 * Desc: Sensor model for GPS.
23 * Author: Andrew Howard
24 * Date: 8 Aug 2003
25 * CVS: $Id$
26 *************************************************************************/
27
28#ifndef GPS_H
29#define GPS_H
30
31#include "../pf/pf.h"
32#include "../pf/pf_pdf.h"
33
34#ifdef __cplusplus
35extern "C" {
36#endif
37
38
39// Model information
40typedef struct
41{
42 // UTM origin: UTM coord that maps to (0, 0) in global coords
43 double utm_base_e, utm_base_n;
44
45 // UTM grid coordinates
46 double utm_e, utm_n;
47
48 // Circular horizontal error
49 double err_horz;
50
51 // PDF used for initialization
53
55
56
57// Create an sensor model
58gps_model_t *gps_alloc();
59
60// Free an sensor model
61void gps_free(gps_model_t *sensor);
62
63// Set the observed gps coordinates (UTM grid coordinates)
64void gps_set_utm(gps_model_t *self, double utm_e, double utm_n, double err_horz);
65
66// Prepare to initialize the distribution
67void gps_init_init(gps_model_t *self);
68
69// Finish initializing the distribution
70void gps_init_term(gps_model_t *self);
71
72// The sensor initialization function
73pf_vector_t gps_init_model(gps_model_t *self);
74
75// The sensor model function
76double gps_sensor_model(gps_model_t *self, pf_vector_t pose);
77
78#ifdef __cplusplus
79}
80#endif
81
82#endif
83
Definition gps.h:41
Definition pf_pdf.h:49
Definition pf_vector.h:42