Kai Ni
689b9fefc0
throw exceptions instead of crashing
2010-02-19 22:44:45 +00:00
Kai Ni
d0ce5d36da
created addPrior
2010-02-19 02:48:47 +00:00
Manohar Paluri
e60d903210
removed extra quotes
2010-02-18 23:31:23 +00:00
Manohar Paluri
2bf4c0ce5b
Fixed two bugs, both related to array overflow
2010-02-18 22:52:49 +00:00
Richard Roberts
c26219e3d4
Added Pose2::matrix() function.
2010-02-18 16:27:01 +00:00
Frank Dellaert
cd5c281c76
Added get and set
2010-02-18 14:30:16 +00:00
Frank Dellaert
ede0a8c874
Added unit test
2010-02-18 14:29:40 +00:00
Frank Dellaert
3247751b5d
Major check-in: there are now two interchangeable implementations of VectorConfig.
...
VectorMap uses a straightforward stl::map of Vectors. It has O(log n)
insert and access, and is fairly fast at both. However, it has high overhead
for arithmetic operations such as +, scale, axpy etc...
VectorBTree uses a functional BTree as a way to access SubVectors
in an ordinary Vector. Inserting is O(n) and much slower, but accessing,
is O(log n) and might be a bit slower than VectorMap. Arithmetic operations
are blindingly fast, however. The cost is it is not as KISS as VectorMap.
Access to vectors is now exclusively via operator[]
Vector access in VectorMap is via a Vector reference
Vector access in VectorBtree is via the SubVector type (see Vector.h)
Feb 16 2010: FD: I made VectorMap the default, because I decided to try
and speed up conjugate gradients by using Sparse FactorGraphs all the way.
2010-02-17 03:29:12 +00:00
Kai Ni
cb5d4c3127
instantiate SymbolicConfig
2010-02-16 23:20:39 +00:00
Alex Cunningham
d895cb90dc
Added a static dim function to Point3 for generic detection of dimension
2010-02-16 20:21:03 +00:00
Alex Cunningham
529fc5536b
Fixed templating problem with visualSLAM::ProjectionFactor
2010-02-16 02:09:07 +00:00
Frank Dellaert
30893b33eb
some small details to work it work with NewVectorConfig
2010-02-15 23:54:10 +00:00
Frank Dellaert
5d33eb185c
added SubVector type and some related routines
2010-02-15 23:53:16 +00:00
Frank Dellaert
e4691a1594
BTree refactored, Node is now an inner class, find is non-recursive
2010-02-15 23:52:46 +00:00
Manohar Paluri
39708194a3
added TrifocalTensor test and changed DLT to use non-sorted version.
2010-02-15 23:45:53 +00:00
Frank Dellaert
341c4d9250
Deleted debug print
2010-02-15 21:38:33 +00:00
Manohar Paluri
8691d633a7
added testTensors to the tests
2010-02-15 20:25:38 +00:00
Alex Cunningham
17706d4ebd
Added key template parameters to visualSLAM::projectionFactor without changing the interface. Added dimension checking function for Point2 type.
2010-02-15 16:37:37 +00:00
Manohar Paluri
6f0d23cdaf
forgot to change comments in previous checkin
2010-02-14 07:26:53 +00:00
Manohar Paluri
1cc5bf748b
make file changes and added make targets to the cproject
2010-02-14 07:26:10 +00:00
Manohar Paluri
c16e6fc0d5
Moved Tensor related Files from CitySLAM
2010-02-14 07:25:03 +00:00
Manohar Paluri
1923778750
Moved Tensor related Files from CitySLAM
2010-02-14 07:24:37 +00:00
Frank Dellaert
44094b494e
fixed maxIteration bug
2010-02-14 07:14:42 +00:00
Frank Dellaert
1f165a9f85
Made CG state a class
2010-02-14 05:52:20 +00:00
Manohar Paluri
43f9baf77a
added test to check singular value ordering for a sample homography case
2010-02-14 04:56:29 +00:00
Manohar Paluri
693e13ef88
added default bool option to svd to sort the singular values and V. the default is true so pass false to avoid sorting
2010-02-14 04:54:39 +00:00
Kai Ni
f9c2000847
save graph to graphviz format
2010-02-13 07:09:56 +00:00
Kai Ni
d0a93ad9dd
insert bayes net as a clique
2010-02-13 07:09:27 +00:00
Richard Roberts
4408eaf6f4
Added FactorGraph::checkGraphConsistency() to check for consistency between the variables->factors and factors->variables maps, and a unit test that tests the replace function including checking consistency.
2010-02-13 01:29:19 +00:00
Alex Cunningham
f1988513fe
Fixed bug in print function of TypedLabeledSymbol
2010-02-10 21:03:49 +00:00
Alex Cunningham
dde0626e5c
Added a constructor for TypedLabeledSymbol from Symbol that decodes the index to split out a label
2010-02-10 15:27:21 +00:00
Alex Cunningham
d0aed559b5
TypedLabeledSymbols now convert properly to Symbols, so they can be used to add a runtime label to a TypedKey to express "Pose 1 of robot A"
2010-02-10 14:39:58 +00:00
Kai Ni
31999ecb1f
added 4-way symbolic factor
...
fixed a bug in the bayes tree to graphviz routine
2010-02-09 22:59:18 +00:00
Richard Roberts
e83b6c3b84
Normalizing rotation matrix to fix numerical instability when composing many poses
2010-02-09 22:44:02 +00:00
Kai Ni
31fc894a4a
added 4-way symbolic factor
...
fixed a bug in the bayes tree to graphviz routine
2010-02-09 21:32:14 +00:00
Alex Cunningham
d2a4bdae3c
Made simulated2D factors more generic - can now specify key types
2010-02-09 19:47:39 +00:00
Alex Cunningham
8ff64793f1
Apparently, expmap != exmap. TupleConfigN's are no longer broken now.
2010-02-09 19:27:28 +00:00
Alex Cunningham
942e2b9c6d
static chr() function for TypedSymbol, and another version of Symbol (don't use)
2010-02-09 03:59:45 +00:00
Alex Cunningham
0c74e0c309
Ensured that constraints add keys to keys_
2010-02-09 01:52:36 +00:00
Alex Cunningham
8aa440a679
Fixed the instantiation macros and exmap global functions for TupleConfigN
2010-02-09 01:24:41 +00:00
Alex Cunningham
18d7fcc299
Added instantiation macros for TupleConfigs and NonlinearConstraints
2010-02-08 22:29:00 +00:00
Richard Roberts
fbef948254
Bug fix in replace()
2010-02-08 22:22:38 +00:00
Richard Roberts
ea9b44ea15
Fixed indentation
2010-02-08 22:21:56 +00:00
Alex Cunningham
ed338300a1
Instantiation script for TupleConfig
2010-02-08 20:53:18 +00:00
Alex Cunningham
ea3b8083b0
Fixed more tests for NonlinearConstraints, inequality constraints now work.
2010-02-07 01:18:17 +00:00
Chris Beall
814fb949ba
fixed critical bug relating to height of tree
2010-02-06 17:45:40 +00:00
Chris Beall
675b30d1c1
updates to BTree
2010-02-06 15:53:31 +00:00
Alex Cunningham
f88438bab4
Removed SQP optimizer and moved remaining SQP optimizer tests into testSQP. All equality constraints should be fully functional now. Inequality constraints still to come.
2010-02-06 14:48:46 +00:00
Alex Cunningham
219dfd262d
SQP now works with single configs using the TupleConfigs, without needing a separate optimizer.
2010-02-06 05:14:52 +00:00
Alex Cunningham
d8a8575d26
Removed a fixme comment
2010-02-06 05:12:09 +00:00
Alex Cunningham
d1267d1ef3
Added more constructors, print functionality and formatting for TupleConfig
2010-02-06 05:10:25 +00:00
Alex Cunningham
bb74b5c882
Added a config template parameter for ProjectionFactors
2010-02-06 05:08:52 +00:00
Alex Cunningham
af9f45ff24
Used template parameters in simulated2D to make it possible to template factors on a config type with typedefs for the previous usage so no other code needs to change
2010-02-05 14:49:40 +00:00
Alex Cunningham
040d45cb45
Added wrapper classes for TupleConfig for ease of use.
2010-02-05 01:33:33 +00:00
Chris Beall
8fe0795dd0
BTree moved into gtsam
2010-02-04 21:02:05 +00:00
Alex Cunningham
5c1c8ee76f
Changed PairConfig interface so that the internal configs need to be accessed with first() and second(). This is in anticipation of switching PairConfig to TupleConfig2.
2010-02-04 17:15:09 +00:00
Alex Cunningham
2068477e32
Added pragma once to LieConfig to prevent errors if included multiple times
2010-02-04 16:08:59 +00:00
Alex Cunningham
67744a5f07
Changed NonlinearConstraint to correctly use new keys
2010-02-04 16:08:11 +00:00
Alex Cunningham
01bbd3cf8d
Disabling SQP tests while transitioning config types and SQP implementation
2010-02-04 16:07:20 +00:00
Alex Cunningham
843f11678b
Recursive TupleConfig now has typedefs for 2-6 configs
2010-02-04 03:40:03 +00:00
Alex Cunningham
4e70f14097
The recursive TupleConfig should be ready for use now.
2010-02-04 02:04:45 +00:00
Kai Ni
550121013f
fix const string problem in print
2010-02-03 20:12:16 +00:00
Alex Cunningham
e5a7d4c878
More functionality in TupleConfigs
2010-02-03 14:08:09 +00:00
Alex Cunningham
94d50ddfb9
Added a liberal sprinkling of 'typename' to make TupleConfig work better
2010-02-03 13:57:34 +00:00
Alex Cunningham
a66a405dd5
Partially implemented version of a recursive TupleConfig that is still very much under testing.
2010-02-03 13:47:13 +00:00
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