g2o
Loading...
Searching...
No Matches
parameter_se2_offset.h
Go to the documentation of this file.
1// g2o - General Graph Optimization
2// Copyright (C) 2011 R. Kuemmerle, G. Grisetti, W. Burgard
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
7// met:
8//
9// * Redistributions of source code must retain the above copyright notice,
10// this list of conditions and the following disclaimer.
11// * Redistributions in binary form must reproduce the above copyright
12// notice, this list of conditions and the following disclaimer in the
13// documentation and/or other materials provided with the distribution.
14//
15// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
16// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
17// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
18// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
19// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
21// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
22// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
23// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
24// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
27#ifndef G2O_VERTEX_SE2_OFFSET_PARAMETERS_H_
28#define G2O_VERTEX_SE2_OFFSET_PARAMETERS_H_
29
30#include "g2o/core/cache.h"
32#include "se2.h"
33
34namespace g2o {
35
36class VertexSE2;
37
42 public:
45
46 virtual bool read(std::istream& is);
47 virtual bool write(std::ostream& os) const;
48
53 void setOffset(const SE2& offset_ = SE2());
54
55 const SE2& offset() const { return _offset; }
56
58 const Isometry2& offsetMatrix() const { return _offsetMatrix; }
59
61 const Isometry2& inverseOffsetMatrix() const { return _inverseOffsetMatrix; }
62
63 protected:
67};
68
73 public:
76 virtual void updateImpl();
77
78 const ParameterSE2Offset* offsetParam() const { return _offsetParam; }
79 void setOffsetParam(ParameterSE2Offset* offsetParam);
80
81 const SE2& w2n() const { return _se2_w2n; }
82 const SE2& n2w() const { return _se2_n2w; }
83
84 const Isometry2& w2nMatrix() const { return _w2n; }
85 const Isometry2& n2wMatrix() const { return _n2w; }
86 const Isometry2& w2lMatrix() const { return _w2l; }
87
88 const Matrix2 RpInverseRInverseMatrix() const { return _RpInverse_RInverse; }
90 return _RpInverse_RInversePrime;
91 }
92
93 protected:
97
103
104 protected:
105 virtual bool resolveDependencies();
106};
107
108} // namespace g2o
109
110#endif
caching the offset related to a vertex
Isometry2 _w2n
world to sensor transform
const Isometry2 & w2nMatrix() const
const SE2 & w2n() const
Isometry2 _n2w
sensor to world
const Matrix2 RpInverseRInverseMatrix() const
const Isometry2 & n2wMatrix() const
const ParameterSE2Offset * offsetParam() const
ParameterSE2Offset * _offsetParam
the parameter connected to the cache
const SE2 & n2w() const
Isometry2 _w2l
world to local
const Matrix2 RpInverseRInversePrimeMatrix() const
const Isometry2 & w2lMatrix() const
const Isometry2 & offsetMatrix() const
rotation of the offset as 2x2 rotation matrix
const Isometry2 & inverseOffsetMatrix() const
rotation of the inverse offset as 2x2 rotation matrix
represent SE2
Definition se2.h:43
#define G2O_TYPES_SLAM2D_API
Eigen::Transform< double, 2, Eigen::Isometry, Eigen::ColMajor > Isometry2
Definition eigen_types.h:76
MatrixN< 2 > Matrix2
Definition eigen_types.h:71