Paparazzi UAS
v5.18.0_stable
Paparazzi is a free software Unmanned Aircraft System.
nps_sensor_sonar.c
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2014 Felix Ruess <felix.ruess@gmail.com
3
*
4
* This file is part of paparazzi.
5
*
6
* paparazzi 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, or (at your option)
9
* any later version.
10
*
11
* paparazzi 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 paparazzi; see the file COPYING. If not, write to
18
* the Free Software Foundation, 59 Temple Place - Suite 330,
19
* Boston, MA 02111-1307, USA.
20
*/
21
29
#include "
nps_sensor_sonar.h
"
30
31
#include "generated/airframe.h"
32
33
#include "
std.h
"
34
#include "
nps_fdm.h
"
35
#include "
nps_random.h
"
36
#include NPS_SENSORS_PARAMS
37
39
#ifndef NPS_SONAR_DT
40
#define NPS_SONAR_DT 0.01
41
#endif
42
44
#ifndef NPS_SONAR_NOISE_STD_DEV
45
#define NPS_SONAR_NOISE_STD_DEV 0.01
46
#endif
47
48
#ifndef NPS_SONAR_OFFSET
49
#define NPS_SONAR_OFFSET 0
50
#endif
51
52
53
void
nps_sensor_sonar_init
(
struct
NpsSensorSonar
*
sonar
,
double
time)
54
{
55
sonar
->value = 0.;
56
sonar
->offset =
NPS_SONAR_OFFSET
;
57
sonar
->noise_std_dev =
NPS_SONAR_NOISE_STD_DEV
;
58
sonar
->next_update = time;
59
sonar
->data_available =
FALSE
;
60
}
61
62
63
void
nps_sensor_sonar_run_step
(
struct
NpsSensorSonar
*
sonar
,
double
time)
64
{
65
66
if
(time < sonar->next_update) {
67
return
;
68
}
69
70
/* agl in meters */
71
sonar
->value =
fdm
.
agl
+
sonar
->offset;
72
/* add noise with std dev meters */
73
sonar
->value +=
get_gaussian_noise
() *
sonar
->noise_std_dev;
74
75
sonar
->next_update +=
NPS_SONAR_DT
;
76
sonar
->data_available =
TRUE
;
77
}
NPS_SONAR_DT
#define NPS_SONAR_DT
10Hz default
Definition:
nps_sensor_sonar.c:40
nps_sensor_sonar_run_step
void nps_sensor_sonar_run_step(struct NpsSensorSonar *sonar, double time)
Definition:
nps_sensor_sonar.c:63
NpsSensorSonar
Definition:
nps_sensor_sonar.h:37
sonar
std::shared_ptr< gazebo::sensors::SonarSensor > sonar
Definition:
nps_fdm_gazebo.cpp:131
NPS_SONAR_NOISE_STD_DEV
#define NPS_SONAR_NOISE_STD_DEV
standard devition in meters (default 1cm)
Definition:
nps_sensor_sonar.c:45
nps_fdm.h
NPS_SONAR_OFFSET
#define NPS_SONAR_OFFSET
Definition:
nps_sensor_sonar.c:49
fdm
struct NpsFdm fdm
Holds all necessary NPS FDM state information.
Definition:
nps_fdm_crrcsim.c:84
NpsFdm::agl
double agl
Definition:
nps_fdm.h:61
std.h
nps_random.h
nps_sensor_sonar_init
void nps_sensor_sonar_init(struct NpsSensorSonar *sonar, double time)
Definition:
nps_sensor_sonar.c:53
nps_sensor_sonar.h
get_gaussian_noise
double get_gaussian_noise(void)
Definition:
nps_random.c:109
FALSE
#define FALSE
Definition:
std.h:5
TRUE
#define TRUE
Definition:
std.h:4
sw
simulator
nps
nps_sensor_sonar.c
Generated on Tue Feb 1 2022 13:51:18 for Paparazzi UAS by
1.8.17