John Rogers
2f16d8f6a1
Changed the order of constructor initializers in GaussianFactor to remove compiler warnings
2010-02-01 16:04:14 +00:00
Frank Dellaert
5554f6fc7e
Faster non-GSL versions of BLAS 2-style calls
2010-01-31 22:56:06 +00:00
Alex Cunningham
efe51c8419
Fixed typo in function name
2010-01-31 21:09:03 +00:00
Alex Cunningham
2889a25aeb
Fixed autotools files for GSL inclusion so that they don't include the wrong BLAS implementation when ATLAS is enabled
2010-01-31 18:26:18 +00:00
Alex Cunningham
c266012dcd
Added GSL/ATLAS version of multiplyAdd() and transposeMultiplyAdd()
2010-01-31 18:25:03 +00:00
justinca
74dd7128ac
Fixup cholesky decomposition - rename to LLt and RtR to make convention clear
2010-01-31 18:07:29 +00:00
Alex Cunningham
87cc573d34
Added a new combine process for GaussianFactors that allocates only one matrix when combining, rather than using append factor to make a large number of smaller matrices. There is a flag to switch between these modes, which currently defaults to the older approach. Currently, there does not appear to be a performance improvement, however.
2010-01-31 17:49:33 +00:00
Alex Cunningham
9f16d7b07f
Added in-place sub insert function to Vector
2010-01-31 17:24:01 +00:00
Alex Cunningham
48d2dabe43
Added in-place insertion functions to Matrix, as well as a #define flag to enable or disable GSL code without a reconfigure.
2010-01-31 17:21:07 +00:00
Alex Cunningham
b5ca322d21
Added default tolerance value to equals in Key classes so that equals() works properly
2010-01-31 17:00:27 +00:00
Frank Dellaert
fa6a515bfd
SAM was substantially sped up by inlining VectorConfig::insert
2010-01-31 16:05:16 +00:00
Frank Dellaert
5e4b23df59
Matrix::multiplyAdd and transposeMultiplyAdd are "level 2" BLAS and speed up the numeric part of the code substantially. Alex might be able to speed them up even more by making them use real BLAS code within Matrix.cpp.
2010-01-31 16:04:24 +00:00
Frank Dellaert
3b6c4917a9
GaussianBayesNet::backSubstituteInPlace
2010-01-31 04:39:41 +00:00
Frank Dellaert
ac870bce4c
GaussianFactor::transposeMultiplyAdd
2010-01-31 03:33:53 +00:00
Frank Dellaert
4f998e5ecd
Matrix::transposeMultiplyAdd
2010-01-31 02:53:03 +00:00
Frank Dellaert
9b4ff5e099
transposeMultiplyAdd provied BLAS-style call for iterative speed
2010-01-30 23:59:29 +00:00
Frank Dellaert
6ef09583b9
multiplyInPlace shaves a few seconds off but is fairly dangerous - I feel ambivalent....
2010-01-30 17:31:05 +00:00
Frank Dellaert
161a47caa7
2010-01-30 05:22:17 +00:00
Frank Dellaert
881d739371
BLAS level 1 style "scal" saves even more time in PCG
2010-01-30 04:01:49 +00:00
Frank Dellaert
4913326c22
BLAS level 1 style axpy calls in Vector and VectorConfig shave some seconds off PCG
2010-01-30 02:04:37 +00:00
Frank Dellaert
65bc90bf15
timing VectorConfig to speed up iterative
2010-01-29 13:57:45 +00:00
Alex Cunningham
eb88a149a1
NonlinearFactors handle constrained noise models properly now, as before they would try to whiten and fail
2010-01-28 17:21:24 +00:00
Viorela Ila
06a062c931
Added special lines for static variables needed for template classes
2010-01-27 19:45:31 +00:00
Kai Ni
ed45d436be
add gsl and atlas to configure
2010-01-27 05:15:52 +00:00
Alex Cunningham
bc2a25385f
Added updated timing results.
2010-01-27 05:08:54 +00:00
Alex Cunningham
59c7ce7e29
Integrated householder-based QR into NoiseModel. Note that the examples for GFG have changed to ensure that they are actually a linearized version of the nonlinear example.
2010-01-27 04:39:35 +00:00
Frank Dellaert
98b825ddbd
Fixed loading of datasets
2010-01-27 03:41:23 +00:00
Frank Dellaert
ae073c0120
Comments, and better test of composePoses
2010-01-27 02:49:58 +00:00
Frank Dellaert
8b87eebba6
commented GSl bit
2010-01-27 01:03:49 +00:00
Richard Roberts
02210cc7e0
Argument order of load changed
2010-01-26 20:31:25 +00:00
Richard Roberts
9b62b326c9
One more fix, inverse was actually needed in one case.
2010-01-26 20:10:45 +00:00
Richard Roberts
b82d054aaa
Definitions of Lie::between, Pose2::compose, expmap, and derivatives were not correct. Fixed, but changes some behavior (iSAM and CitySLAM already fixed), will send email about this change.
2010-01-26 20:00:17 +00:00
Manohar Paluri
a0b96e7684
corrected case of Pose2SLAMoptimizer
2010-01-25 14:50:25 +00:00
Kai Ni
1685920d52
fixed Ab2 bug
2010-01-23 05:29:04 +00:00
Frank Dellaert
afa964b8db
Fixed sparse bug
2010-01-23 05:16:29 +00:00
Kai Ni
744269343f
add print
2010-01-23 04:46:00 +00:00
Kai Ni
b092fee64b
pose2slamoptimizer unit tests worked
2010-01-23 03:49:05 +00:00
Richard Roberts
21c1af2b9f
Collecting more statistics in isam2, logmap for configs
2010-01-23 01:53:04 +00:00
Kai Ni
4491db99be
add beijing data set
2010-01-23 01:10:12 +00:00
Frank Dellaert
7644ff0080
optimize returns Vector, does not update
2010-01-23 01:08:42 +00:00
Frank Dellaert
ada844300d
Fixed compile issue in tests
2010-01-23 01:03:47 +00:00
Frank Dellaert
807cffbd61
Pose2SLAMOptimizer prototype for use in MATLAB
2010-01-23 00:57:54 +00:00
Michael Kaess
7bc4ee65da
allow pure linear steps (disabled)
2010-01-23 00:21:34 +00:00
Manohar Paluri
80d335ed77
added saveGraph function to BayesTree which writes out a dot file which can be visualized using graphviz dot command
2010-01-22 23:52:56 +00:00
Kai Ni
e87faa078d
write correct information matrix to data file
2010-01-22 23:20:12 +00:00
Frank Dellaert
2150b24e29
Fixed memory hog problem with Alex's help. SAM marginally faster (3-4% with 1000 poses, might be bigger effect for full dataset)
2010-01-22 23:00:35 +00:00
justinca
16c55975c1
Fix inverse_square_root, add cholesky decomposition options
2010-01-22 22:28:03 +00:00
Kai Ni
e88ae4a944
add dataset.h/cpp
2010-01-22 20:18:40 +00:00
Michael Kaess
ab155999cf
simplified alg, but no measureable speed improvement
2010-01-22 18:29:27 +00:00
Frank Dellaert
351cdd18c2
case change: SharedGaussian and SharedDiagonal are now classes with their own header file. Needed for MATLAB TORO hail Mary
2010-01-22 17:36:57 +00:00
Kai Ni
490791cd48
add writer module to dump the errors and time
2010-01-22 08:13:54 +00:00
Kai Ni
4b778a4e82
fixed a bug in matrix solve function
2010-01-22 06:45:01 +00:00
Michael Kaess
1d093e388d
changed main algorithm to allow recovery of exact solution
2010-01-22 06:28:12 +00:00
Frank Dellaert
75e29dc015
failing test
2010-01-22 05:45:59 +00:00
Richard Roberts
5367e5a157
All std::map<Symbol,T> are now SymbolMap<T>, which is just a thin wrapper around std::map. at(Key) is used instead of first checking with find when an exception should be thrown for non-existent keys. This does not change any behavior or timing currently. This check-in also includes some functions in BayesTree for gathering clique statistics.
2010-01-22 04:41:40 +00:00
Frank Dellaert
41a6e64bbb
Fixed insert to use IndexTable, a new class
2010-01-22 02:27:26 +00:00
Frank Dellaert
2cc777228b
coments and variables only
2010-01-21 20:15:52 +00:00
justinca
7575996d52
Remove leftover commented out unused code
2010-01-21 19:49:36 +00:00
justinca
f89a53ed91
Bugfix in Rot3::logmap. The function checked for a trace of 3, but the check could fail due to rounding errors, causing the function to try to take acos(something larger than 1) resulting in NaNs being returned.
2010-01-21 19:49:12 +00:00
Alex Cunningham
ac746ccead
Improved performance of updateAb in NoiseModel with GSL/ATLAS. Various other small optimizations were made.
2010-01-21 18:51:59 +00:00
Michael Kaess
2183e09c67
fluid relinearization works
2010-01-21 17:41:54 +00:00
Michael Kaess
523c8630d3
works at least on already solved data...
2010-01-21 16:09:57 +00:00
Frank Dellaert
0dc4f417e9
sampling from NoiseModel
2010-01-21 08:31:18 +00:00
Michael Kaess
8fd0c2ae72
new fluid relinearization algorithm, in sync with lyx
2010-01-21 07:38:37 +00:00
Alex Cunningham
9db7623f80
Improved instructions for GSL/ATLAS
2010-01-21 01:03:34 +00:00
Alex Cunningham
063aa14118
Reimplemented matrix::householder_update using GSL and BLAS, you'll need to edit Makefile.am to enable the new version -- see email
2010-01-21 00:59:33 +00:00
Michael Kaess
188561d925
removeTop/Path now returns a BayesNet to avoid converting the conditionals to a factor graph
2010-01-21 00:38:22 +00:00
Richard Roberts
eb03f78e7d
Removing dependency hack speeds up compilation
2010-01-20 20:47:15 +00:00
Alex Cunningham
588c119bf3
Added timing script for Matrix::householder_()
2010-01-20 18:52:31 +00:00
Alex Cunningham
5f588031bc
Merged NoiseQR back into trunk
2010-01-20 18:32:48 +00:00
Alex Cunningham
9c9007920a
Changed the interface on Matrix::column() so that it uses the one in our library (now called column_() ) rather than the boost default. Currently, our implementation just uses the boost default, but this may change due to timing results.
2010-01-20 16:08:14 +00:00
Alex Cunningham
98b143cd22
Switched all loop indices in Matrix/Vector to size_t, with improved results in timeGaussianFactorGraph
2010-01-20 14:42:05 +00:00
Alex Cunningham
b4f9163296
Added more labels and results (with higher numbers of repetitions) for timeGaussianFactorGraph
2010-01-20 14:31:24 +00:00
Alex Cunningham
8db99db57e
Small performance improvement for matrix_augmented, with accompanying test in timeGaussianFactor
2010-01-20 14:09:44 +00:00
Alex Cunningham
6bc0462669
Checked Matrix::collect() with different timing metric, and memcpy has approx 25% speedup over original version. Matrix_range is slower or the same speed as the original version.
2010-01-20 13:45:22 +00:00
Kai Ni
977a97eacf
rename variable
2010-01-20 09:47:09 +00:00
Michael Kaess
aae49e43f0
code factorization, speedup
2010-01-20 06:49:19 +00:00
Kai Ni
ae908316e0
add comments
2010-01-20 06:34:25 +00:00
Richard Roberts
19dc8bf4b1
Fixed size() crash when BayesTree empty, added clear() function to BayesTree, added and removed #includes to fix link errors
2010-01-20 04:23:35 +00:00
Michael Kaess
e767996b45
same bug fix as in ISAM2
2010-01-20 03:54:20 +00:00
Alex Cunningham
55e414cbdd
Tried noalias() for collect(), but no real improvement
2010-01-20 03:25:55 +00:00
Kai Ni
3bf15333af
move ordering into the solver, and the nonlinear optimizer is now exact <G, T, L>
2010-01-20 02:28:23 +00:00
Alex Cunningham
03ec3e3e62
Implemented a version of collect() using matrix_range, but it had worse performance than memcpy. New version of vector_scale[column] with new pointer arithmetic implementation for approx 20% improvement.
2010-01-20 02:28:25 +00:00
Alex Cunningham
820ae5682d
Optimized row version of vector_scale with approx 20% improvement
2010-01-20 02:04:25 +00:00
Michael Kaess
ecde508318
incremental nonlinear working
2010-01-20 01:52:40 +00:00
Alex Cunningham
b860f06614
Switched Matrix::collect() over to a memcpy, but the results weren't actually an improvement
2010-01-20 01:42:36 +00:00
Michael Kaess
d2291a38d1
bug fixes after COLAMD activiation: BayesTree::insert was wrong, BayesTree::removeTop/Path fixed and simplified
2010-01-20 01:24:32 +00:00
Alex Cunningham
66607897a5
Added vector_scale timing benchmarks
2010-01-20 01:05:40 +00:00
Alex Cunningham
ff83a7b18e
Fixed compile error in testNoiseModel
2010-01-20 01:05:18 +00:00
Frank Dellaert
b47438a86c
Smart named constructors Covariance/Variances/Variance
2010-01-20 00:26:49 +00:00
Alex Cunningham
f577b27f52
Small optimizations on Matrix::collect(), additional timing capabilities, and now collect() can have dimensions specified to avoid need for lookup.
2010-01-19 21:49:22 +00:00
Alex Cunningham
67878830a6
Added timeMatrix.cpp to test specific matrix operations
2010-01-19 20:59:22 +00:00
Frank Dellaert
3cdbaf81c7
Factorgraph-specific QR factorization now done by the NoiseModel: slow Gram-Schmidt for Constrained, fast Housholder for any other (Gaussian) model.
2010-01-19 19:06:02 +00:00
Frank Dellaert
6f2b5a904a
save on fabs
2010-01-19 19:04:37 +00:00
Frank Dellaert
9f4da004c2
got rid of verbose printing
2010-01-19 19:04:18 +00:00
Alex Cunningham
fb0ca07bf1
Added and tested whitening parameter for matrix() and matrix_augmented()
2010-01-19 16:52:01 +00:00
Alex Cunningham
fbee0bd749
Fixing compile issue in SubgraphPreconditioner.h
2010-01-19 13:29:40 +00:00
Kai Ni
3806125096
add linear system as a template parameter in nonlinear optimizer
...
fixed a nasty bug and change the internal data type of subgraph preconditioner from reference to boost shared pointer. reference is not a good idea for class members, because no type checking will happen
2010-01-19 10:46:12 +00:00
Alex Cunningham
2eac3b7235
minor typo - comment only
2010-01-19 05:46:04 +00:00
Alex Cunningham
306ac0a4b2
Fixed clobbered checkin
2010-01-19 05:45:25 +00:00
Alex Cunningham
88e465910a
SQP tests and implementation now use the new Key system
2010-01-19 05:33:44 +00:00
Frank Dellaert
2a57a04ba6
get_model
2010-01-19 05:29:31 +00:00
Frank Dellaert
6dcc275432
small comment/print
2010-01-19 04:39:54 +00:00
Frank Dellaert
b01c111a1d
GaussianFactor now uses noiseModel internally - not yet externally
2010-01-19 04:39:28 +00:00
Frank Dellaert
81aaceb890
Whiten now class-specific, access to sigmas
2010-01-19 04:38:58 +00:00
Kai Ni
ebbdfc79aa
comment out overflow exception
2010-01-19 04:18:59 +00:00
Michael Kaess
ef2fb243c2
fixed unit test after colamd change
2010-01-19 03:43:10 +00:00
Richard Roberts
2507b6aaca
Cleaned up commented line after fix to use the colamd ordering.
2010-01-19 03:16:09 +00:00
Richard Roberts
0311d2a2a2
Very very small change :-)
2010-01-19 02:57:08 +00:00
Frank Dellaert
0769af6f20
comment
2010-01-19 01:41:44 +00:00
Michael Kaess
a45893a434
selective incremental linearization works; bug fix in landmark initialization (frank01 again much faster)
2010-01-19 01:18:28 +00:00
Michael Kaess
a2bce15c4b
selective update of linearization point
2010-01-19 00:15:46 +00:00
Michael Kaess
0e6607d160
relinearization working, but currently applied to all variables
2010-01-18 22:37:44 +00:00
Richard Roberts
5e15564525
Speedups: Matrix mult. in Gaussian NoiseModel. Removed size check in operator* in Matrix.h - ublas does this check when in debug mode.
2010-01-18 21:45:44 +00:00
Frank Dellaert
e935f1745e
stop copying matrices...
2010-01-18 21:17:25 +00:00
Michael Kaess
f8ef284b30
fixed bearing/range, large speedup for batch; incremental creation of Config works
2010-01-18 20:17:31 +00:00
Richard Roberts
1f0de30a62
Removed unnecessary headers, now only included when GTSAM_MAGIC_KEY is defined
2010-01-18 19:36:02 +00:00
Frank Dellaert
e523b148cf
Moved tree stuff to graph, removed ordering-inl.h
2010-01-18 19:11:22 +00:00
Michael Kaess
8e3a8f08c8
incremental processing of planarSLAM; bug fix in ISAM2-inl
2010-01-18 18:13:53 +00:00
Alex Cunningham
dfeacb218e
Added tests for Keys, Added TypedLabeledSymbol class to allow for runtime symbols on keys
2010-01-18 16:18:02 +00:00
Kai Ni
bbf6cabe9d
generate ordering and pose config in the initialization stage
2010-01-18 09:24:38 +00:00
Michael Kaess
18414b1286
VectorConfig/Config confusion resolved; planarSLAM integrated
2010-01-18 08:05:33 +00:00
Kai Ni
eb3e0067ef
simplify covariance formulation
2010-01-18 07:11:34 +00:00
Kai Ni
6a163d1a84
fix compilation error caused by new covariance type
2010-01-18 06:17:01 +00:00
Kai Ni
05b07d443e
add linear system solver as a template class parameter in nonlinear optimizer.
2010-01-18 05:51:19 +00:00
Frank Dellaert
a4a6e002e5
NOISE MODEL.
...
This is a big edit but with no templates involed, so it should not be a big deal.
New namespace gtsam::noiseModel collects all noise models, which provide efficient whitening and chain-rule implementation needed for optimization. The class hierarchy gives us the ability to use models from full covariances to i.i.d. unit variance noise with a single interface, where the latter will be much cheaper.
From now on, all non-linear factors take a shared_ptr to a Gaussian noise model. This is done through the parameter (const sharedGaussian& model). The use of a shared pointer allows us to share one noise models for thousands of factors, if applicable.
Just like Richard's Symbol change, there is a compile flag GTSAM_MAGIC_GAUSSIAN which allows you to use doubles, vectors, or matrices to created noise models on the fly. You have to set it to the correct dimension. Use of this is *not* encouraged and the flag will disappear after some good soul fixed all unit tests.
2010-01-18 05:38:53 +00:00
Michael Kaess
6b2190159d
restored lost changes
2010-01-18 04:53:17 +00:00
Michael Kaess
42f4ff228b
code cleanup, recovering estimate while dealing with incremental adding of factors, planar with new SLAM
2010-01-18 04:32:45 +00:00
Richard Roberts
9ac1622514
Removed obsolete files that reappeared after svn crash
2010-01-18 03:00:00 +00:00
Richard Roberts
149e6cef36
Added an explicit instantiation to fix a link error that was only detected on Linux
2010-01-18 02:23:10 +00:00
Richard Roberts
aef0b42562
Refactoring to use a new Symbol key instead of strings in Bayes*, Gaussian*, Ordering, Symbolic*, VectorConfig. Renamed existing type-checking key Symbol<C,T> to TypedSymbol<C,T>
2010-01-17 19:34:57 +00:00
Frank Dellaert
ea14959835
NoiseModel inhertance structure reversed, all constructors protected, new static "factories"
2010-01-17 17:47:23 +00:00
Frank Dellaert
87f7e05c15
Identity model
2010-01-17 15:10:10 +00:00
Frank Dellaert
5c6cfec7ab
restored reset
2010-01-17 15:09:28 +00:00
Michael Kaess
80b3813a16
binary files should not be in repository
2010-01-17 06:09:25 +00:00
Michael Kaess
fbe425b966
relinearizing part of a BayesTree, requiring caching of intermediate results during elimination
2010-01-17 06:06:20 +00:00
Frank Dellaert
a3fa194ca1
Noisemodel works in PriorFactor
2010-01-17 03:56:42 +00:00
Frank Dellaert
8967027198
Testing R and Whiten
2010-01-17 03:29:23 +00:00
Frank Dellaert
9ddeb569b5
GaussianNoiseModel
2010-01-17 01:28:15 +00:00
Frank Dellaert
3a83e0678d
KISS refactor of NoiseModel
2010-01-17 00:37:34 +00:00
Frank Dellaert
4518069218
2010-01-17 00:35:49 +00:00
Manohar Paluri
09d2cb9101
added numericalDerivative.h to headers
2010-01-16 23:10:38 +00:00
Kai Ni
0e17310e23
remove the printf
2010-01-16 22:56:57 +00:00
Richard Roberts
2174057578
Commented out another NoiseModel unit test
2010-01-16 20:40:47 +00:00
Richard Roberts
e4eaa22378
Comment out unit test for broken function only used in NoiseModel, working on fixing
2010-01-16 20:18:45 +00:00
Frank Dellaert
049cea6964
3D Pose SLAM + removed obsolete Urban files that somehow re-appeared in CitySLAM
2010-01-16 19:37:17 +00:00
Frank Dellaert
c051be9edf
did not compile
2010-01-16 19:35:50 +00:00
Kai Ni
6714ba59f4
delete binary file testPose2Prior
2010-01-16 19:09:13 +00:00
Richard Roberts
f0ae2c064e
Merging in NoiseModel, not yet used though
2010-01-16 18:39:39 +00:00
Frank Dellaert
99db4c37d8
2D Pose SLAM: created a new templated factor to accommodate GPS measurements, and as part of the refactor I consolidated all Pose2 SLAM classes in pose2SLAM.h. For backwards compatibility it contains
...
typedef pose2SLAM::Prior Pose2Prior;
typedef pose2SLAM::Odometry Pose2Factor;
typedef pose2SLAM::Constraint Pose2Constraint;
typedef pose2SLAM::Config Pose2Config;
typedef pose2SLAM::Graph Pose2Graph;
2010-01-16 18:01:16 +00:00
Frank Dellaert
3c9c8bcfe5
Pose2Prior is now a typedef, improved some derivatives
2010-01-16 16:46:57 +00:00
Frank Dellaert
4914091c87
Pose2Prior test
2010-01-16 15:39:39 +00:00
Frank Dellaert
2605d18152
removed obsolete tests
2010-01-16 14:59:22 +00:00
Kai Ni
b0f27c5d4b
set sigma to 1 in pose2prior
2010-01-16 07:50:14 +00:00
Frank Dellaert
a4d61d2f23
Little performance twiddles that make little difference
2010-01-16 07:22:34 +00:00
Frank Dellaert
a8afe0da7c
Forgot pre-multiply of error vector
2010-01-16 07:00:07 +00:00
Frank Dellaert
91a0fb23df
Weighted pseudo-inverse now takes weights (1/sigma^2). Does not make a lot of performance difference.
2010-01-16 06:25:11 +00:00
Kai Ni
fce2a668bb
uncomment the commented out unit tests during debugging
2010-01-16 05:10:07 +00:00
Kai Ni
f5a6a10feb
debug hard constraint and make pose2prior work
2010-01-16 05:08:29 +00:00
Frank Dellaert
fb3e38b161
25% performance increase by improving weighted_eliminate
2010-01-16 04:57:58 +00:00
Frank Dellaert
26246188af
Added planar graph to timing script
2010-01-16 04:46:35 +00:00
Frank Dellaert
a4ed0a191d
Forgotten header numericalDerivative.h
2010-01-16 04:22:41 +00:00
Frank Dellaert
07c7c4c0bd
print size with ordering
2010-01-16 04:22:21 +00:00
Chris Beall
a956c1a8be
svn restored from 1733.
...
this commit updates gtsam to version 1774, which now appears as 1734.
2010-01-16 01:16:59 +00:00
Frank Dellaert
5c0cd093fd
moved relative_bearing to Rot2, changed derivatives to new-style
2010-01-14 16:57:48 +00:00
Frank Dellaert
53a03a0021
Changed signature of tree insert
2010-01-14 16:05:04 +00:00
Frank Dellaert
f645b560ea
Added constructor body
2010-01-14 15:35:23 +00:00
Frank Dellaert
c7e0fe9fd8
fixed template instantiation
2010-01-14 15:32:14 +00:00
Frank Dellaert
e7bf219498
removed .cpp
2010-01-14 15:31:58 +00:00
Frank Dellaert
25372aaa12
c_str
2010-01-14 15:31:42 +00:00
Kai Ni
e1388c0f0d
add Ordering-inl.h
2010-01-14 07:56:03 +00:00
Frank Dellaert
dd697a838d
added TupleConfig.h as header
2010-01-14 06:20:34 +00:00
Frank Dellaert
df62213619
RangeFactor works
2010-01-14 06:00:17 +00:00
Frank Dellaert
a552ba4539
Comments/formatting only
2010-01-14 05:59:33 +00:00
Frank Dellaert
8088aea598
Added double as Lie type, needed to remove Lie.h include from Vector.h
2010-01-14 05:58:58 +00:00
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