1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
diff --git a/corelib/src/optimizer/vertigo/gtsam/switchVariableLinear.h b/corelib/src/optimizer/vertigo/gtsam/switchVariableLinear.h
index e95e0b5..f40d4b2 100644
--- a/corelib/src/optimizer/vertigo/gtsam/switchVariableLinear.h
+++ b/corelib/src/optimizer/vertigo/gtsam/switchVariableLinear.h
@@ -110,6 +110,10 @@ namespace gtsam {
// Define Key to be Testable by specializing gtsam::traits
template<typename T> struct traits;
template<> struct traits<vertigo::SwitchVariableLinear> {
+ typedef gtsam::manifold_tag structure_category;
+ enum { dimension = 1 };
+ typedef vertigo::SwitchVariableLinear ManifoldType;
+
static void Print(const vertigo::SwitchVariableLinear& key, const std::string& str = "") {
key.print(str);
}
@@ -118,8 +122,8 @@ template<> struct traits<vertigo::SwitchVariableLinear> {
}
static int GetDimension(const vertigo::SwitchVariableLinear & key) {return key.Dim();}
- typedef OptionalJacobian<3, 3> ChartJacobian;
- typedef gtsam::Vector TangentVector;
+ typedef OptionalJacobian<1, 1> ChartJacobian;
+ typedef Eigen::Matrix<double, 1, 1> TangentVector;
static TangentVector Local(const vertigo::SwitchVariableLinear& origin, const vertigo::SwitchVariableLinear& other,
#if GTSAM_VERSION_NUMERIC >= 40300
ChartJacobian Horigin = {}, ChartJacobian Hother = {}) {
diff --git a/corelib/src/optimizer/vertigo/gtsam/switchVariableSigmoid.h b/corelib/src/optimizer/vertigo/gtsam/switchVariableSigmoid.h
index 79e1fca..237c7cd 100644
--- a/corelib/src/optimizer/vertigo/gtsam/switchVariableSigmoid.h
+++ b/corelib/src/optimizer/vertigo/gtsam/switchVariableSigmoid.h
@@ -111,6 +111,10 @@ namespace gtsam {
// Define Key to be Testable by specializing gtsam::traits
template<typename T> struct traits;
template<> struct traits<vertigo::SwitchVariableSigmoid> {
+ typedef gtsam::manifold_tag structure_category;
+ enum { dimension = 1 };
+ typedef vertigo::SwitchVariableSigmoid ManifoldType;
+
static void Print(const vertigo::SwitchVariableSigmoid& key, const std::string& str = "") {
key.print(str);
}
@@ -119,8 +123,8 @@ template<> struct traits<vertigo::SwitchVariableSigmoid> {
}
static int GetDimension(const vertigo::SwitchVariableSigmoid & key) {return key.Dim();}
- typedef OptionalJacobian<3, 3> ChartJacobian;
- typedef gtsam::Vector TangentVector;
+ typedef OptionalJacobian<1, 1> ChartJacobian;
+ typedef Eigen::Matrix<double, 1, 1> TangentVector;
static TangentVector Local(const vertigo::SwitchVariableSigmoid& origin, const vertigo::SwitchVariableSigmoid& other,
#if GTSAM_VERSION_NUMERIC >= 40300
ChartJacobian Horigin = {}, ChartJacobian Hother = {}) {
|