Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
y
Enumerations
a
c
d
e
f
g
i
k
l
m
n
p
q
r
s
t
u
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
z
Classes
Class List
Class Hierarchy
Class Members
All
!
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
!
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Enumerations
a
b
c
d
f
k
l
m
n
o
p
r
s
t
v
z
Enumerator
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Related Functions
:
a
b
c
d
e
g
h
i
l
m
n
o
p
r
s
t
u
v
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
x
z
Enumerations
Enumerator
b
c
e
f
g
i
l
m
n
o
p
r
s
t
u
v
x
y
z
Macros
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Examples
gtsam
sfm
ShonanFactor.h
Go to the documentation of this file.
1
/* ----------------------------------------------------------------------------
2
3
* GTSAM Copyright 2010-2019, Georgia Tech Research Corporation,
4
* Atlanta, Georgia 30332-0415
5
* All Rights Reserved
6
* Authors: Frank Dellaert, et al. (see THANKS for the full author list)
7
8
* See LICENSE for the license information
9
10
* -------------------------------------------------------------------------- */
11
19
#pragma once
20
21
#include <
gtsam/geometry/Rot2.h
>
22
#include <
gtsam/geometry/Rot3.h
>
23
#include <
gtsam/geometry/SOn.h
>
24
#include <
gtsam/nonlinear/NonlinearFactor.h
>
25
26
#include <type_traits>
27
28
namespace
gtsam
{
29
35
template
<
size_t
d>
36
class
GTSAM_EXPORT
ShonanFactor
:
public
NoiseModelFactorN
<SOn, SOn> {
37
Matrix
M_
;
38
size_t
p_,
pp_
;
39
std::shared_ptr<Matrix>
G_
;
40
41
// Select Rot2 or Rot3 interface based template parameter d
42
using
Rot
=
typename
std::conditional<d == 2, Rot2, Rot3>::type
;
43
44
public
:
45
46
// Provide access to the Matrix& version of evaluateError:
47
using
NoiseModelFactor2<SOn, SOn>::evaluateError;
48
51
55
ShonanFactor
(
Key
j1
,
Key
j2,
const
Rot
&
R12
,
size_t
p
,
56
const
SharedNoiseModel
&
model
=
nullptr
,
57
const
std::shared_ptr<Matrix> &
G
=
nullptr
);
58
62
64
void
65
print
(
const
std::string &
s
,
66
const
KeyFormatter
&keyFormatter =
DefaultKeyFormatter
)
const override
;
67
69
bool
equals
(
const
NonlinearFactor
&
expected
,
70
double
tol
= 1
e
-9)
const override
;
71
75
78
Vector
evaluateError(
const
SOn
&
Q1
,
const
SOn
&
Q2
,
OptionalMatrixType
H1,
OptionalMatrixType
H2)
const override
;
80
81
private
:
83
void
fillJacobians(
const
Matrix
&
M1
,
const
Matrix
&
M2
,
84
OptionalMatrixType
H1,
85
OptionalMatrixType
H2)
const
;
86
};
87
88
// Explicit instantiation for d=2 and d=3 in .cpp file:
89
using
ShonanFactor2
=
ShonanFactor<2>
;
90
using
ShonanFactor3
=
ShonanFactor<3>
;
91
92
}
// namespace gtsam
SOn.h
N*N matrix representation of SO(N). N can be Eigen::Dynamic.
gtsam::ShonanFactor::G_
std::shared_ptr< Matrix > G_
matrix of vectorized generators
Definition:
ShonanFactor.h:39
gtsam::ShonanFactor::M_
Matrix M_
measured rotation between R1 and R2
Definition:
ShonanFactor.h:37
M2
M1<< 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12;Map< MatrixXf > M2(M1.data(), 6, 2)
gtsam.examples.DogLegOptimizerExample.type
type
Definition:
DogLegOptimizerExample.py:111
s
RealScalar s
Definition:
level1_cplx_impl.h:126
e
Array< double, 1, 3 > e(1./3., 0.5, 2.)
gtsam::Matrix
Eigen::MatrixXd Matrix
Definition:
base/Matrix.h:39
gtsam::Vector
Eigen::VectorXd Vector
Definition:
Vector.h:39
Rot2.h
2D rotation
gtsam::DefaultKeyFormatter
KeyFormatter DefaultKeyFormatter
Assign default key formatter.
Definition:
Key.cpp:30
Rot3.h
3D rotation represented as a rotation matrix or quaternion
gtsam::ShonanFactor::pp_
size_t pp_
dimensionality constants
Definition:
ShonanFactor.h:38
gtsam::print
void print(const Matrix &A, const string &s, ostream &stream)
Definition:
Matrix.cpp:145
gtsam::KeyFormatter
std::function< std::string(Key)> KeyFormatter
Typedef for a function to format a key, i.e. to convert it to a string.
Definition:
Key.h:35
gtsam::NoiseModelFactorN
Definition:
NonlinearFactor.h:434
cholesky::expected
Matrix expected
Definition:
testMatrix.cpp:916
gtsam::ShonanFactor
Definition:
ShonanFactor.h:36
gtsam::ShonanFactor::Rot
typename std::conditional< d==2, Rot2, Rot3 >::type Rot
Definition:
ShonanFactor.h:42
gtsam::SharedNoiseModel
noiseModel::Base::shared_ptr SharedNoiseModel
Definition:
NoiseModel.h:762
M1
MatrixXf M1
Definition:
Tutorial_SlicingCol.cpp:1
model
noiseModel::Diagonal::shared_ptr model
Definition:
doc/Code/Pose2SLAMExample.cpp:7
gtsam::equals
Definition:
Testable.h:112
NonlinearFactor.h
Non-linear factor base classes.
Q2
static double Q2[8]
Definition:
ndtri.c:122
gtsam
traits
Definition:
SFMdata.h:40
gtsam::NonlinearFactor
Definition:
NonlinearFactor.h:69
p
float * p
Definition:
Tutorial_Map_using.cpp:9
G
JacobiRotation< float > G
Definition:
Jacobi_makeGivens.cpp:2
Q1
static double Q1[8]
Definition:
ndtri.c:94
gtsam::SO
Definition:
SOn.h:55
gtsam::tol
const G double tol
Definition:
Group.h:79
gtsam::OptionalMatrixType
Matrix * OptionalMatrixType
Definition:
NonlinearFactor.h:56
gtsam::Key
std::uint64_t Key
Integer nonlinear key type.
Definition:
types.h:97
j1
double j1(double x)
Definition:
j1.c:174
so3::R12
SO3 R12
Definition:
testShonanFactor.cpp:44
gtsam
Author(s):
autogenerated on Wed Mar 19 2025 03:03:31