Kai Ni
1519d029dc
use PredecessorMap instead of map<Key,Key>
2010-01-14 05:24:20 +00:00
Richard Roberts
8562c00a52
Explicit instantiation to fix link error on Linux, also header to install that was missing from Makefile.am
2010-01-14 05:01:40 +00:00
Frank Dellaert
9bf6409b16
BearingFactor works
2010-01-14 04:35:18 +00:00
Michael Kaess
32626b3391
bug fix (only worked on Mac)
2010-01-14 03:42:34 +00:00
Kai Ni
68d90772e6
ordering is fixed
2010-01-14 03:21:07 +00:00
Richard Roberts
ac10c440e1
PairConfig is implemented, VSLAMConfig is now a typedef!
2010-01-14 02:58:29 +00:00
Frank Dellaert
6b3e8cf49c
simulated2D now reduced to one .h and .cpp, in its own namespace, better naming, and new-style functions to serve as example
2010-01-14 02:50:06 +00:00
Kai Ni
fca2de8f95
fix unit test
2010-01-14 02:21:14 +00:00
Kai Ni
7ad114c72f
problem with predecessorMap2Graph
2010-01-14 02:16:29 +00:00
Kai Ni
63440f937f
almost fixed oredering except one function call
2010-01-14 02:07:14 +00:00
Frank Dellaert
5a02b36723
Solved some linking problems
2010-01-14 01:44:00 +00:00
Kai Ni
6c7dfabe5b
remove template class G and V from predecessorMap2Graph as Frank suggested
2010-01-14 01:25:40 +00:00
Kai Ni
3c66861790
fix the graph related functions in FactorGraph as well as its unit tests
2010-01-13 23:59:46 +00:00
Frank Dellaert
93465945e9
Large gtsam refactoring
...
To support faster development *and* better performance Richard and I pushed through a large refactoring of NonlinearFactors.
The following are the biggest changes:
1) NonLinearFactor1 and NonLinearFactor2 are now templated on Config, Key type, and X type, where X is the argument to the measurement function.
2) The measurement itself is no longer kept in the nonlinear factor. Instead, a derived class (see testVSLAMFactor, testNonlinearEquality, testPose3Factor etc...) has to implement a function to compute the errors, "evaluateErrors". Instead of (h(x)-z), it needs to return (z-h(x)), so Ax-b is an approximation of the error. IMPORTANT: evaluateErrors needs - if asked - *combine* the calculation of the function value h(x) and the derivatives dh(x)/dx. This was a major performance issue. To do this, boost::optional<Matrix&> arguments are provided, and tin EvaluateErrors you just says something like
if (H) *H = Matrix_(3,6,....);
3) We are no longer using int or strings for nonlinear factors. Instead, the preferred key type is now Symbol, defined in Key.h. This is both fast and cool: you can construct it from an int, and cast it to a strong. It also does type checking: a Symbol<Pose3,'x'> will not match a Symbol<Pose2,'x'>
4) minor: take a look at LieConfig.h: it help you avoid writing a lot of code bu automatically creating configs for a certain type. See e.g. Pose3Config.h. A "double" LieConfig is on the way - Thanks Richard and Manohar !
2010-01-13 22:25:03 +00:00
John Rogers
22b4912d5e
adding #include<boost/shared_ptr.hpp> to graph-inl.h because this dependency doesnt seem to be working without it on gcc 4.3.3
2010-01-13 19:36:52 +00:00
Kai Ni
c0bc7e6c10
fix a bug in composePoses that switched the order of compose parameters
2010-01-13 06:02:18 +00:00
Kai Ni
2a094b7491
return shared_ptr in composePoses
2010-01-13 02:09:16 +00:00
Richard Roberts
8d28763339
Vector and Matrix initialization optimization
2010-01-12 16:12:31 +00:00
Kai Ni
4369cd2d92
1) add a compose function that compose all the poses in a factor graph given the spanning tree
...
2) add a new graph-inl.h which takes care of all the boost graph related functions to prevent the copy and paste across several classes
2010-01-12 16:12:25 +00:00
Richard Roberts
bea55b5f5b
Fixed double map lookup
2010-01-12 16:11:24 +00:00
Frank Dellaert
fcb7c024a7
bearing functions and derivatives
2010-01-12 02:10:42 +00:00
Frank Dellaert
4b459c45c3
return identity
2010-01-12 02:09:43 +00:00
Frank Dellaert
5163684077
norm
2010-01-12 02:09:03 +00:00
Frank Dellaert
1aed18717b
combined evaluation and derivatives
2010-01-12 02:08:41 +00:00
Richard Roberts
2c8d8dbde4
NonlinearOptimizer constructor now requires shared_ptr to prevent storing pointers to stack and temporary variables. Code that uses it will need to be modified, but CitySLAM is already done.
2010-01-11 20:17:28 +00:00
Kai Ni
40889e8f50
added an absolution threshold $epsilon_abs$ to conjugateGradients. added utility functions to several class to have the same interface which can be used by template functions
2010-01-11 08:32:59 +00:00
Manohar Paluri
1b53a240b9
removed prints
2010-01-11 01:09:07 +00:00
Frank Dellaert
e9b0bade03
Access to keys
2010-01-11 00:53:53 +00:00
Frank Dellaert
71fe372fb3
test successive iterates
2010-01-11 00:53:43 +00:00
Richard Roberts
aa2aa4149c
Special case for trace==1 in Rot3 logmap
2010-01-10 23:36:37 +00:00
Richard Roberts
b0fd5396ad
Bug fix in Rot3 for logmap(identity)
2010-01-10 22:58:30 +00:00
Richard Roberts
1dcc864d97
Comment cleanup to /** style and adding global print functions
2010-01-10 22:41:23 +00:00
Kai Ni
78a579a24a
add the missing #pragma once
2010-01-10 22:15:34 +00:00
Viorela Ila
f8be2c2626
dim, expmap, logmap works
2010-01-10 21:53:38 +00:00
Frank Dellaert
64eca2d550
addConstraint
2010-01-10 19:25:19 +00:00
Frank Dellaert
d11b2e6bd5
Added omitted headers
2010-01-10 18:37:55 +00:00
Richard Roberts
88ae5380a8
Removed Vector-specific versions of NumericalDerivative, instead Vector is now a Lie object
2010-01-10 18:23:47 +00:00
Frank Dellaert
1a96ef41cf
Created Pose3Config, Pose3Graph, and tested loop closure optimization.
2010-01-10 18:21:20 +00:00
Frank Dellaert
2fe02dbaa7
Moved optimization tests to testPose2Graph
2010-01-10 18:20:10 +00:00
Richard Roberts
edb68b3b60
Fixed typo in LieConfig expmap(Vector)
2010-01-10 17:48:55 +00:00
Richard Roberts
33ba34a1f6
Minimized headers included in Lie.h, removed print from testLieConfig
2010-01-10 17:26:44 +00:00
Frank Dellaert
8d84078036
Loop closure tested
2010-01-10 17:02:49 +00:00
Frank Dellaert
12caabb667
Method to add a factor without having to do shared factor dance
2010-01-10 17:02:35 +00:00
Frank Dellaert
120f1301c2
operator[]
2010-01-10 17:01:48 +00:00
Frank Dellaert
710bce5cc4
Pose2Config is now simply a typedef (note that for linking specific template instantiations were needed).
2010-01-10 16:17:55 +00:00
Frank Dellaert
4a21fb9387
Fixed 2nd expmap template, which now creates a VectorConfig and calls the first template
2010-01-10 16:16:03 +00:00
Frank Dellaert
65e4dc1342
pose2Circle
2010-01-10 15:46:18 +00:00
Frank Dellaert
43b2facd10
Now Pose3Config == LieConfig
2010-01-10 14:59:39 +00:00
Frank Dellaert
92c58e50a1
Small changes, mainly const correctness
2010-01-10 14:59:22 +00:00
Frank Dellaert
c957672656
Small to change to work well with LieConfig
2010-01-10 14:55:19 +00:00
Frank Dellaert
794ffd3b2f
Fixed significant bug in Pose2Factor, where we forgot to multiply the error with the square root inverse covariance.
2010-01-10 13:55:55 +00:00
Frank Dellaert
8061f29ec5
added test clarifying Ax-b \approx h(x)-z
2010-01-10 13:54:34 +00:00
Frank Dellaert
f1f21a8589
inverted sign of square root to make inv sqrt positive for simple covariance matrices
2010-01-10 13:53:31 +00:00
Frank Dellaert
bf315781af
defined global functions in Lie.h rather than here
2010-01-10 12:35:41 +00:00
Frank Dellaert
6bcb9d08d6
Unit tests for correct "Agrawal06iros" versions: they are indeed correct.
2010-01-10 12:26:31 +00:00
Frank Dellaert
30367e35fb
Much faster compund rotation using Justin's (indeed correct) formula
2010-01-10 12:25:46 +00:00
Frank Dellaert
d5eade62ef
Moved expmap and logmap to .cpp, also tested correct "Agrawal06iros" versions, and they are indeed correct (see testPose3).
2010-01-10 12:24:31 +00:00
Frank Dellaert
ec1b57ed08
Added Lie required functions (trivial) for Vector. Not in Vector.h as this becomes circular.
2010-01-10 12:22:59 +00:00
Richard Roberts
4fa53a1f79
Merging lieconfig branch - LieConfig works but currently requires Lie objects to have a global print function.
2010-01-10 06:35:16 +00:00
Kai Ni
6a7987fa91
fix Pose2Prior problem and adding prior factor when splitting factor graph
2010-01-09 23:39:11 +00:00
Richard Roberts
2b82ff65e7
Deriving Lie objects from a base class Lie<T>, which provides member functions to access global functions, for use in MATLAB.
2010-01-09 23:15:06 +00:00
Kai Ni
d015b31799
more meaningful error messages for matrix operations
2010-01-09 07:06:29 +00:00
Frank Dellaert
cc358fb2ce
removed print statements
2010-01-09 02:37:58 +00:00
Frank Dellaert
5fbb820341
fixed comments and tolerances
2010-01-09 02:27:49 +00:00
Frank Dellaert
6851b31fad
Added static methods to construct rotations, coded up convention for yaw-pitch-roll, modernized RQ
2010-01-09 00:03:47 +00:00
Kai Ni
d4f92c7bb6
pass FactorGraph as reference into split
2010-01-08 20:27:10 +00:00
Kai Ni
06b7f8ee04
add split to FactorGraph
2010-01-08 19:07:46 +00:00
Frank Dellaert
5dc237eeea
BetweenFactor is a template that models the measurement between two Lie types e.g. Pose2 or Pose3. Pose2Factor and Pose3Factor are now simply typedefs.
2010-01-08 15:32:45 +00:00
Kai Ni
215ff24d0f
generate ordering by breadth-first-search, a lot faster than before
2010-01-08 04:12:23 +00:00
Frank Dellaert
8d22b3aca2
Just refactoring
2010-01-08 03:38:05 +00:00
Frank Dellaert
f684becf1f
Fixed Dbetween1
2010-01-08 03:06:03 +00:00
Richard Roberts
19a3e228d7
Large refactoring - made several Lie group functions global, which used to be member functions, to treat Lie groups more uniformly. Also created Lie.h, and a preprocessor flag in numericalDerivative to change the coordinate frame derivatives are reported in. gtsam and easylib build and pass unit tests, but this will probably break other projects, which will require a few small changes to work again. Email coming in a few minutes to describe the changes.
2010-01-08 00:40:17 +00:00
Kai Ni
a845b3d30a
generate ordering from the spanning tree
2010-01-07 08:00:54 +00:00
Kai Ni
6298a45050
use prim algorithm instead of kruskal for finding MST, which yields the parent map.
2010-01-07 06:25:54 +00:00
Alex Cunningham
20c6f29823
Moved control-related components to separate library
2010-01-06 20:01:34 +00:00
Frank Dellaert
b20ed42134
log and between
2010-01-06 19:29:41 +00:00
Frank Dellaert
f77da96caf
Modernized and tested RQ and added Rot3::ypr. Note this yaw-pitch-roll is different from ML version, which is focused on cameras. Let the fun begin...
2010-01-06 15:52:43 +00:00
Kai Ni
9845a5ae37
add findMinimumSpanningTree to FactorGraph
2010-01-06 11:15:37 +00:00
Frank Dellaert
cd644e75a5
GaussianBayesNet::matrix now properly divides in sigmas
2010-01-05 14:14:49 +00:00
Frank Dellaert
22d66df766
added manifold test
2010-01-05 14:13:51 +00:00
Richard Roberts
39334ea9e0
Update MATLAB wrapper for earlier Pose2* changes
2010-01-04 18:07:24 +00:00
Kai Ni
46cc85e351
added size and clear to pose2config
2010-01-03 07:25:59 +00:00
Michael Kaess
052149771a
relinearizing factors corresponding to contaminated cliques
2010-01-03 04:57:35 +00:00
Kai Ni
cade0e7780
fix timing test linking problem by using noinst_PROGRAMS
2010-01-03 00:23:16 +00:00
Manohar Paluri
68159fb5e4
corrected SubgraphPreconditioner case
2010-01-02 20:24:59 +00:00
Frank Dellaert
f82b46f96c
Sped up rodriguez and replaced slow implementation with call to fast implementation. Also moved some functions to cpp.
2010-01-02 14:28:18 +00:00
Frank Dellaert
a1c55b9f62
Updated Pose2Config to expected coding standard
2010-01-02 10:33:33 +00:00
Frank Dellaert
ff06cd757f
moved all "Urban" factors and tests to (cmake-based) CitySLAM project
2009-12-31 16:54:23 +00:00
Frank Dellaert
a1d14ba2ae
Added Bayes Net and Subgraph preconditioners to gtsam (developed in CitySLAM project)
2009-12-31 12:56:47 +00:00
Frank Dellaert
730f4a546f
Added planar graph with easy subtree
2009-12-31 12:55:51 +00:00
Frank Dellaert
07cc95e4c4
Comments and formatting
2009-12-31 12:55:16 +00:00
Frank Dellaert
eaa8176de1
correct behavior when entire columns are zero
2009-12-31 10:30:44 +00:00
Frank Dellaert
46a65d89df
using ediv_ where needed
2009-12-31 10:30:06 +00:00
Frank Dellaert
f7d5b517a4
ediv_ is same as ediv except returns 0 for 0/0 division, needed for dealing with constraints
2009-12-31 10:29:25 +00:00
Frank Dellaert
3fbc857a9e
fixed behavior of error for sigma==0
2009-12-31 10:28:43 +00:00
Frank Dellaert
9b327d1a9d
added reset
2009-12-31 10:27:39 +00:00
Frank Dellaert
bf85f10de7
subtraction
2009-12-31 10:27:16 +00:00
Michael Kaess
b4e65e9631
progress in ISAM2, but unit test still disabled
2009-12-31 05:35:08 +00:00
Richard Roberts
afc3028ad5
Fixed bug in testPose2Factor optimize unit test where only the first expected value was checked.
2009-12-30 18:41:33 +00:00
Frank Dellaert
793a9d58ae
Errors is now a list
2009-12-30 17:13:36 +00:00