src
measurements
heading.cpp
Go to the documentation of this file.
1
//=================================================================================================
2
// Copyright (c) 2011, Johannes Meyer, TU Darmstadt
3
// All rights reserved.
4
5
// Redistribution and use in source and binary forms, with or without
6
// modification, are permitted provided that the following conditions are met:
7
// * Redistributions of source code must retain the above copyright
8
// notice, this list of conditions and the following disclaimer.
9
// * Redistributions in binary form must reproduce the above copyright
10
// notice, this list of conditions and the following disclaimer in the
11
// documentation and/or other materials provided with the distribution.
12
// * Neither the name of the Flight Systems and Automatic Control group,
13
// TU Darmstadt, nor the names of its contributors may be used to
14
// endorse or promote products derived from this software without
15
// specific prior written permission.
16
17
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
18
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
21
// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24
// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
//=================================================================================================
28
29
#include <
hector_pose_estimation/measurements/heading.h
>
30
#include <
hector_pose_estimation/filter/set_filter.h
>
31
32
namespace
hector_pose_estimation
{
33
34
template
class
Measurement_<HeadingModel>;
35
36
HeadingModel::HeadingModel
()
37
{
38
parameters().add(
"stddev"
,
stddev_
, 10.0*M_PI/180.0);
39
}
40
41
HeadingModel::~HeadingModel
() {}
42
43
void
HeadingModel::getMeasurementNoise
(NoiseVariance& R,
const
State
&,
bool
init)
44
{
45
if
(
init
) {
46
R(0,0) = pow(
stddev_
, 2);
47
}
48
}
49
50
void
HeadingModel::getExpectedValue
(MeasurementVector& y_pred,
const
State
& state)
51
{
52
y_pred(0) = state.
getYaw
();
53
}
54
55
void
HeadingModel::getStateJacobian
(MeasurementMatrix& C,
const
State
& state,
bool
)
56
{
57
if
(state.
orientation
()) {
58
state.
orientation
()->cols(C)(0,
Z
) = 1.0;
59
}
60
}
61
62
void
HeadingModel::limitError
(MeasurementVector &error) {
63
error(0) = remainder(error(0), 2 * M_PI);
64
}
65
66
}
// namespace hector_pose_estimation
hector_pose_estimation::State::getYaw
double getYaw() const
Definition:
state.cpp:139
hector_pose_estimation::HeadingModel::getStateJacobian
virtual void getStateJacobian(MeasurementMatrix &C, const State &state, bool init)
Definition:
heading.cpp:55
hector_pose_estimation::Z
@ Z
Definition:
types.h:40
hector_pose_estimation::State
Definition:
state.h:42
hector_pose_estimation::State::orientation
virtual const boost::shared_ptr< OrientationStateType > & orientation() const
Definition:
state.h:112
hector_pose_estimation::HeadingModel::limitError
virtual void limitError(MeasurementVector &error)
Definition:
heading.cpp:62
hector_pose_estimation
Definition:
collection.h:39
hector_pose_estimation::HeadingModel::HeadingModel
HeadingModel()
Definition:
heading.cpp:36
hector_pose_estimation::HeadingModel::stddev_
double stddev_
Definition:
heading.h:50
heading.h
hector_pose_estimation::HeadingModel::~HeadingModel
virtual ~HeadingModel()
Definition:
heading.cpp:41
hector_pose_estimation::HeadingModel::getMeasurementNoise
virtual void getMeasurementNoise(NoiseVariance &R, const State &, bool init)
Definition:
heading.cpp:43
hector_pose_estimation::HeadingModel::getExpectedValue
virtual void getExpectedValue(MeasurementVector &y_pred, const State &state)
Definition:
heading.cpp:50
init
void init(const M_string &remappings)
set_filter.h
hector_pose_estimation_core
Author(s): Johannes Meyer
autogenerated on Wed Mar 2 2022 00:24:40