Gazebo Rendering
API Reference
9.0.0
insert_drive_file
Tutorials
library_books
Classes
toc
Namespaces
insert_drive_file
Files
launch
Gazebo Website
Index
List
Hierarchy
Members: All
Members: Functions
Members: Variables
Members: Typedefs
Members: Enumerations
Members: Enumerator
List
Members
Functions
Typedefs
Variables
Enumerations
Enumerator
src
gz-rendering
include
gz
rendering
base
BaseGaussianNoisePass.hh
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2019 Open Source Robotics Foundation
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*
16
*/
17
#ifndef GZ_RENDERING_BASE_BASEGAUSSIANNOISEPASS_HH_
18
#define GZ_RENDERING_BASE_BASEGAUSSIANNOISEPASS_HH_
19
20
#include <string>
21
#include <
gz/math/Rand.hh
>
22
23
#include "
gz/rendering/GaussianNoisePass.hh
"
24
25
namespace
gz
26
{
27
namespace
rendering
28
{
29
inline
namespace
GZ_RENDERING_VERSION_NAMESPACE {
30
//
31
/* \class BaseGaussianNoisePass BaseGaussianNoisePass.hh \
32
* gz/rendering/base/BaseGaussianNoisePass.hh
33
*/
35
template
<
class
T>
36
class
BaseGaussianNoisePass
:
37
public
virtual
GaussianNoisePass
,
38
public
virtual
T
39
{
41
protected
:
BaseGaussianNoisePass
();
42
44
public
:
virtual
~BaseGaussianNoisePass
();
45
46
// Documentation inherited.
47
public
:
double
Mean
()
const
;
48
49
// Documentation inherited.
50
public
:
double
StdDev
()
const
;
51
52
// Documentation inherited.
53
public
:
double
Bias
()
const
;
54
55
// Documentation inherited.
56
public
:
void
SetMean
(
double
_mean);
57
58
// Documentation inherited.
59
public
:
void
SetStdDev
(
double
_stdDev);
60
61
// Documentation inherited.
62
public
:
void
SetBiasMean
(
double
_biasMean);
63
64
// Documentation inherited.
65
public
:
void
SetBiasStdDev
(
double
_biasStdDev);
66
67
// Sample the bias from bias mean and bias standard deviation
68
protected
:
void
SampleBias
();
69
71
protected
:
double
mean = 0.0;
72
74
protected
:
double
stdDev = 0.0;
75
77
protected
:
double
bias = 0.0;
78
81
protected
:
double
biasMean = 0;
82
85
protected
:
double
biasStdDev = 0;
86
};
87
89
// BaseGaussianNoisePass
91
template
<
class
T>
92
BaseGaussianNoisePass<T>::BaseGaussianNoisePass
()
93
{
94
}
95
97
template
<
class
T>
98
BaseGaussianNoisePass<T>::~BaseGaussianNoisePass
()
99
{
100
}
101
103
template
<
class
T>
104
double
BaseGaussianNoisePass<T>::Mean
()
const
105
{
106
return
this->mean;
107
}
108
110
template
<
class
T>
111
double
BaseGaussianNoisePass<T>::StdDev
()
const
112
{
113
return
this->stdDev;
114
}
115
117
template
<
class
T>
118
double
BaseGaussianNoisePass<T>::Bias
()
const
119
{
120
return
this->bias;
121
}
122
124
template
<
class
T>
125
void
BaseGaussianNoisePass<T>::SetMean
(
double
_mean)
126
{
127
this->mean = _mean;
128
}
129
131
template
<
class
T>
132
void
BaseGaussianNoisePass<T>::SetStdDev
(
double
_stdDev)
133
{
134
this->stdDev = _stdDev;
135
}
136
138
template
<
class
T>
139
void
BaseGaussianNoisePass<T>::SetBiasMean
(
double
_biasMean)
140
{
141
this->biasMean = _biasMean;
142
this->SampleBias();
143
}
144
146
template
<
class
T>
147
void
BaseGaussianNoisePass<T>::SetBiasStdDev
(
double
_biasStdDev)
148
{
149
this->biasStdDev = _biasStdDev;
150
this->SampleBias();
151
}
152
154
template
<
class
T>
155
void
BaseGaussianNoisePass<T>::SampleBias
()
156
{
157
this->bias =
158
gz::math::Rand::DblNormal
(this->biasMean, this->biasStdDev);
159
// With equal probability, we pick a negative bias (by convention,
160
// rateBiasMean should be positive, though it would work fine if
161
// negative).
162
if
(
gz::math::Rand::DblUniform
() < 0.5)
163
this->bias = -this->bias;
164
}
165
}
166
}
167
}
168
#endif