AverageFilter.cpp
Go to the documentation of this file.
1
/*
2
* This file is part of ArmarX.
3
*
4
* Copyright (C) 2011-2017, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
5
*
6
* ArmarX is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License version 2 as
8
* published by the Free Software Foundation.
9
*
10
* ArmarX is distributed in the hope that it will be useful, but
11
* WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this program. If not, see <http://www.gnu.org/licenses/>.
17
*
18
* @package ArmarX
19
* @author Mirko Waechter( mirko.waechter at kit dot edu)
20
* @date 2017
21
* @copyright http://www.gnu.org/licenses/gpl-2.0.txt
22
* GNU General Public License
23
*/
24
#include "
AverageFilter.h
"
25
26
namespace
armarx::rtfilters
27
{
28
29
AverageFilter::AverageFilter
(
size_t
windowSize) :
30
RTFilterBase
(windowSize)
31
{
32
33
}
34
35
RTFilterBasePtr
AverageFilter::clone
()
const
36
{
37
RTFilterBase
*
v
=
new
AverageFilter
(*
this
);
38
return
RTFilterBasePtr
(
v
);
39
}
40
41
double
AverageFilter::calculate
()
42
{
43
if
(
dataHistory
.empty())
44
{
45
return
0.0;
46
}
47
48
double
sum = 0.0f;
49
for
(
auto
it =
dataHistory
.begin();
50
it !=
dataHistory
.end();
51
it++
52
)
53
{
54
sum += it->second;
55
}
56
double
result = sum /
dataHistory
.size();
57
return
result;
58
}
59
60
}
AverageFilter.h
armarx::rtfilters::RTFilterBasePtr
std::shared_ptr< RTFilterBase > RTFilterBasePtr
Definition:
RTFilterBase.h:34
armarx::rtfilters::AverageFilter::calculate
double calculate() override
Definition:
AverageFilter.cpp:41
armarx::rtfilters
Definition:
AverageFilter.cpp:26
armarx::rtfilters::AverageFilter::AverageFilter
AverageFilter(size_t windowSize)
Definition:
AverageFilter.cpp:29
armarx::rtfilters::AverageFilter::clone
RTFilterBasePtr clone() const override
Definition:
AverageFilter.cpp:35
armarx::rtfilters::RTFilterBase::dataHistory
boost::circular_buffer< std::pair< IceUtil::Time, double > > dataHistory
Definition:
RTFilterBase.h:54
armarx::rtfilters::RTFilterBase
The RTFilterBase class is the base class for all real time capable filters.
Definition:
RTFilterBase.h:40
armarx::ctrlutil::v
double v(double t, double v0, double a0, double j)
Definition:
CtrlUtil.h:39
ArmarXCore
observers
filters
rtfilters
AverageFilter.cpp
Generated on Tue Feb 13 2024 06:12:00 for armarx_documentation by
1.8.17