-
Notifications
You must be signed in to change notification settings - Fork 13
/
RoME.jl
144 lines (114 loc) · 3.91 KB
/
RoME.jl
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
module RoME
using Reexport
@reexport using IncrementalInference
@reexport using TransformUtils
@reexport using Distributions
@reexport using KernelDensityEstimate
@reexport using ApproxManifoldProducts
using
Dates,
FileIO,
Distributed,
LinearAlgebra,
Statistics,
CoordinateTransformations,
# JLD2,
ProgressMeter,
DocStringExtensions,
DistributedFactorGraphs,
TensorCast,
ManifoldsBase
using StaticArrays
using PrecompileTools
# to avoid name conflicts
import Manifolds
using Manifolds: hat, ProductGroup, ProductManifold, SpecialEuclidean, SpecialOrthogonal, TranslationGroup, identity_element, submanifold_component, Identity, affine_matrix
import Manifolds: project, project!, identity_element
import Rotations as _Rot
export SpecialOrthogonal, SpecialEuclidean
export submanifold_component
# using Graphs, # TODO determine how many parts still require Graphs still directly
import Base: +, \, convert
import TransformUtils: ⊖, ⊕, convert, ominus, veeQuaternion
import IncrementalInference: MB
import IncrementalInference: convert, getSample, reshapeVec2Mat, DFG
import IncrementalInference: getMeasurementParametric
import IncrementalInference: preambleCache
import IncrementalInference: InstanceType
# not sure why this is gives import error
import DistributedFactorGraphs: compare
import DistributedFactorGraphs: getDimension, getManifold
using OrderedCollections: OrderedDict
# const AMP = ApproxManifoldProducts
# export the API
include("ExportAPI.jl")
# load the source files
include("entities/SpecialDefinitions.jl")
#uses DFG v0.10.2 @defVariable for above
include("services/FixmeManifolds.jl")
include("variables/VariableTypes.jl")
## More factor types
# RoME internal factors (FYI outside factors are easy, see Caesar documentation)
include("factors/Point2D.jl")
include("factors/Range2D.jl")
include("factors/Bearing2D.jl")
include("factors/BearingRange2D.jl")
include("factors/Polar.jl")
include("factors/PriorPose2.jl")
include("factors/PartialPriorPose2.jl")
include("factors/Pose2D.jl")
include("factors/Pose2Point2.jl")
include("factors/MutablePose2Pose2.jl")
include("factors/DynPoint2D.jl")
include("factors/VelPoint2D.jl")
include("factors/DynPose2D.jl")
include("factors/VelPose2D.jl")
include("factors/Point3D.jl")
include("factors/Point3Point3.jl")
include("factors/Pose3D.jl")
include("factors/Pose3Pose3.jl")
include("factors/PartialPose3.jl")
include("factors/MultipleFeaturesConstraint.jl")
include("factors/InertialPose3.jl")
# needs maintenance
include("factors/RangeAzimuthElevation.jl")
include("factors/Inertial/IMUDeltaFactor.jl")
# additional tools
include("services/FactorGraphAnalysisTools.jl")
# tools related to robotics
include("legacy/BayesTracker.jl")
include("factors/SensorModels.jl")
include("legacy/CameraModel.jl")
include("legacy/Slam.jl")
include("services/RobotUtils.jl")
include("services/ManifoldUtils.jl")
include("services/BearingRangeUtils.jl")
include("services/SimulationUtils.jl")
include("services/OdometryUtils.jl")
include("entities/RobotDataTypes.jl")
include("legacy/NavigationSystem.jl")
# generate canonical graphs
include("canonical/GenerateCommon.jl")
include("canonical/GenerateCircular.jl")
include("canonical/GenerateBox.jl")
include("canonical/GenerateHexagonal.jl")
include("canonical/GenerateHoneycomb.jl")
include("canonical/GenerateBeehive.jl")
include("canonical/GenerateHelix.jl")
# more utils requiring earlier functions
include("services/AdditionalUtils.jl")
include("services/g2oParser.jl")
# ScalarFields
include("services/ScalarFields.jl")
include("../ext/WeakdepsPrototypes.jl")
include("../ext/factors/GenericProjection.jl")
include("../ext/factors/InertialDynamic.jl")
include("../ext/factors/MixtureFluxPose2Pose2.jl")
# things on their way out
include("Deprecated.jl")
# manifold conversions required during transformation
@compile_workload begin
# In here put "toy workloads" that exercise the code you want to precompile
warmUpSolverJIT()
end
end