g2o
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 
31 
32 #include "se2.h"
33 #include "g2o_types_slam2d_api.h"
35 #include "g2o/core/cache.h"
36 
37 #include <Eigen/Geometry>
38 
39 namespace g2o {
40 
41  class VertexSE2;
42 
47  {
48  public:
51 
52  virtual bool read(std::istream& is);
53  virtual bool write(std::ostream& os) const;
54 
59  void setOffset(const SE2& offset_ = SE2());
60 
61  const SE2& offset() const { return _offset;}
62 
64  const Isometry2D& offsetMatrix() const { return _offsetMatrix;}
65 
67  const Isometry2D& inverseOffsetMatrix() const { return _inverseOffsetMatrix;}
68 
69  protected:
73  };
74 
79  public:
82  virtual void updateImpl();
83 
84  const ParameterSE2Offset* offsetParam() const { return _offsetParam;}
85  void setOffsetParam(ParameterSE2Offset* offsetParam);
86 
87  const SE2& w2n() const {return _se2_w2n;}
88  const SE2& n2w() const {return _se2_n2w;}
89 
90  const Isometry2D& w2nMatrix() const { return _w2n;}
91  const Isometry2D& n2wMatrix() const { return _n2w;}
92  const Isometry2D& w2lMatrix() const { return _w2l;}
93 
94  const Matrix2D RpInverseRInverseMatrix() const { return _RpInverse_RInverse; }
95  const Matrix2D RpInverseRInversePrimeMatrix() const { return _RpInverse_RInversePrime; }
96 
97  protected:
101 
107 
108  protected:
109  virtual bool resolveDependancies();
110 
111  };
112 
113 }
114 
115 #endif
const Isometry2D & w2lMatrix() const
const Isometry2D & offsetMatrix() const
rotation of the offset as 2x2 rotation matrix
const SE2 & w2n() const
Eigen::Transform< double, 2, Eigen::Isometry, Eigen::ColMajor > Isometry2D
Definition: eigen_types.h:65
const Isometry2D & n2wMatrix() const
const Isometry2D & w2nMatrix() const
represent SE2
Definition: se2.h:40
caching the offset related to a vertex
const ParameterSE2Offset * offsetParam() const
Eigen::Matrix< double, 2, 2, Eigen::ColMajor > Matrix2D
Definition: eigen_types.h:60
#define G2O_TYPES_SLAM2D_API
const Isometry2D & inverseOffsetMatrix() const
rotation of the inverse offset as 2x2 rotation matrix
ParameterSE2Offset * _offsetParam
the parameter connected to the cache
Isometry2D _w2n
world to sensor transform
Isometry2D _n2w
sensor to world
const SE2 & offset() const
Isometry2D _w2l
world to local
const Matrix2D RpInverseRInversePrimeMatrix() const
const SE2 & n2w() const
const Matrix2D RpInverseRInverseMatrix() const