Kai Ni
3f1029483c
add isSingleton to DSFVector
2010-11-15 01:12:37 +00:00
Frank Dellaert
0d1163648d
Some more test targets
2010-11-08 20:35:26 +00:00
Kai Ni
fa81eb4b5e
added new constructor for VectorValues
2010-11-07 23:12:21 +00:00
Kai Ni
448ada270a
create n-way factor, return keys from nonlinear factor graph
2010-10-30 19:27:30 +00:00
Kai Ni
71ddf0b755
memory boundrary check
2010-10-28 21:50:46 +00:00
Kai Ni
427cf8f9ed
fix memory issue in DenseQR
2010-10-23 06:12:57 +00:00
Alex Cunningham
6f2ef4ed72
Pacified warnings
2010-10-22 00:17:08 +00:00
Richard Roberts
812e3277ee
New linear solver interface, global inference functions removed.
2010-10-21 22:59:54 +00:00
Kai Ni
e718306fd0
fix test wrap problem
2010-10-18 16:15:06 +00:00
Frank Dellaert
b56b0fe3a4
Moved test to inference and added ETree prototype code
2010-10-12 05:19:51 +00:00
Frank Dellaert
bc0e855453
added testConditional
2010-10-12 00:15:11 +00:00
Richard Roberts
45456aab8e
Fixed computing shortcuts in BayesTree
2010-10-10 03:10:03 +00:00
Richard Roberts
84d6b5be6a
Re-enabled computing marginals of a set of variables (Inference::Marginal(...))
2010-10-10 00:51:57 +00:00
Richard Roberts
1d52ff90a8
Merged simplelinear branch into trunk
2010-10-08 22:04:47 +00:00
Alex Cunningham
f6ada87314
Removed LDL, ConstraintOptimizer things, and FusionTupleConfig. Added *.valgrind run commands so that tests can be checked for memory errors. Removed some extraneous stuff in configure.ac
2010-10-02 23:38:01 +00:00
Kai Ni
9a805d68bf
add testLieScalar
2010-09-30 03:37:15 +00:00
Frank Dellaert
51b1650b08
improved and moved DLT function to Matrix.cpp
2010-09-28 14:58:36 +00:00
Frank Dellaert
2f83d194eb
added target
2010-09-20 21:20:39 +00:00
Frank Dellaert
91ff36c5da
make target
2010-09-20 20:49:27 +00:00
Frank Dellaert
c76e9aa7eb
added testFundamental
2010-09-13 03:25:27 +00:00
Alex Cunningham
a461680a2b
Removed extraneous headers that were causing problems related to boost serialization and added testSerialization with conditional compiling (--enable-serialization). Currently, the test is all commented out, and it should not affect those not using the flag.
2010-08-27 15:31:20 +00:00
Alex Cunningham
d17aef492c
Added two example scripts to gtsam from the tutorial, with a single planar example that either contains all typedefs and manually creates the structure, and another that uses planarSLAM.h. Also added a BearingRange helper function to planarSLAM
2010-08-26 21:21:15 +00:00
Alex Cunningham
23a30f8475
Removed remaining global lie functions on lie objects and configs, switched the Lie base class to a simple concept check function, fixed build script for examples. ISAM2 and MastSLAM verified as compiling.
2010-08-26 19:55:40 +00:00
Alex Cunningham
f3ccfaf100
Added dummy initialization of LieConfigs from arbitrary other LieConfigs, FusionTupleConfigs can now be created from arbitrary other FusionConfigs.
2010-08-13 19:51:04 +00:00
Alex Cunningham
c2a83759cb
Added experimental replacement for TupleConfig using boost.fusion - this should eventually make it possible to make nonlinear factors interchangable regardless of config type.
2010-08-12 15:23:03 +00:00
Frank Dellaert
4b6eb67340
moved timing scripts back to main directory, added timeCalibratedCamera
2010-08-08 18:46:56 +00:00
Alex Cunningham
99e4c09a7e
Added a FixedVector class that uses a bounded boost vector to allow for type-level dimension specification
2010-08-02 19:01:00 +00:00
Alex Cunningham
d1ae7132ac
Added constructor to upgrade a TypedSymbol to a labeled symbol
2010-07-26 17:23:18 +00:00
Kai Ni
bde73355b8
fixed duplicated symbols between simulated2D and planarSLAM
2010-07-20 14:38:27 +00:00
Alex Cunningham
d938f92844
Replaced instances of PairConfig with TupleConfig2, cleaned up documentation on TupleConfigs
2010-07-19 19:55:24 +00:00
Kai Ni
2a2bc2f70f
multi-frontal solver works now as a result of flight delay
2010-07-18 20:23:23 +00:00
Alex Cunningham
a3da89b63a
NonlinearConstraints are now implemented using the simple linearization method with quadratic merit function
2010-07-18 19:55:53 +00:00
Frank Dellaert
b5c0f3cee8
Simplified Cluster class, elimination tree constructors tested, junction tree tests disabled for now.
2010-07-14 23:48:51 +00:00
Frank Dellaert
bd58c65a9c
Added EliminationTree framework
2010-07-14 15:22:37 +00:00
Frank Dellaert
c3a907127f
Created ClusterTree (duplicate of Junction tree for now, will split later). GaussianJunctionTree is no longer a template. TestJunctionTree now tests with SymbolicFactorGraph
2010-07-13 22:03:18 +00:00
Frank Dellaert
30b377e441
Fix makefiles to refer to $(top_srcdir) to enable parallel build
2010-07-13 19:13:07 +00:00
Frank Dellaert
559eaf8cc1
Moved smallExample to slam, as used in some project unit tests as well. [tests] no longer builds a local library as a consequence.
2010-07-13 05:26:19 +00:00
Frank Dellaert
8ce5e321c8
Last part of re-organization for now: all things linear/Gaussian are now in the "linear" sub-directory.
2010-07-12 22:18:38 +00:00
Frank Dellaert
c9db61e137
Newly functional build: second part of re-organization. cpp now split into inference and nonlinear.
2010-07-12 16:36:58 +00:00
Frank Dellaert
fea5beb638
Re-organization: moving all files.
...
I re-organized into original cpp directory and 4 additional directories: base, geometry, slam, and tests.
cpp will be further renamed/sub-divided and contains the core library.
I wanted it not depend on geometry or slam, which necessitated moving complicated tests to a dedicated directory.
2010-07-12 07:16:31 +00:00
Kai Ni
6248db54dd
distribute the factors along the junction tree
2010-07-09 07:31:15 +00:00
Michael Kaess
39d18328e6
added CCOLAMD, changed colamd compile from C++ to C compiler, added extern accordingly
2010-07-08 21:54:53 +00:00
Kai Ni
d5c6f62387
massive check in for using spqr_front
2010-07-04 23:50:21 +00:00
Kai Ni
2d40df17ac
added a vector-based DSF implmentation
2010-06-25 06:35:44 +00:00
Kai Ni
553cf83194
created some unit tests to help viorela to debug
2010-06-10 18:09:57 +00:00
Alex Cunningham
e8979dafad
Renabled BLAS using ATLAS for Linux, fixed a variety of annoying warnings
2010-05-21 17:59:26 +00:00
Alex Cunningham
6eca454de1
Added a separate ConstraintOptimizer, and moved CQP test from testMatrix to testConstraintOptimizer
2010-04-23 02:08:34 +00:00
Kai Ni
a647c84c16
added splitMinimumSpanningTree that uses DSF
2010-03-30 07:27:10 +00:00
Kai Ni
cc2e42aa15
added DSF
2010-03-27 06:05:06 +00:00
Frank Dellaert
47a01b1d90
Tried making tests less verbose
2010-02-23 15:13:49 +00:00
Frank Dellaert
274265a401
Errors:axpy and testErrors
2010-02-21 00:01:43 +00:00
Frank Dellaert
cd5c281c76
Added get and set
2010-02-18 14:30:16 +00:00
Alex Cunningham
c044b749cc
Removed old make targets
2010-02-17 14:21:09 +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
Manohar Paluri
1cc5bf748b
make file changes and added make targets to the cproject
2010-02-14 07:26:10 +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
Frank Dellaert
65bc90bf15
timing VectorConfig to speed up iterative
2010-01-29 13:57:45 +00:00
Kai Ni
1685920d52
fixed Ab2 bug
2010-01-23 05:29:04 +00:00
Kai Ni
b092fee64b
pose2slamoptimizer unit tests worked
2010-01-23 03:49:05 +00:00
Frank Dellaert
807cffbd61
Pose2SLAMOptimizer prototype for use in MATLAB
2010-01-23 00:57:54 +00:00
Frank Dellaert
41a6e64bbb
Fixed insert to use IndexTable, a new class
2010-01-22 02:27:26 +00:00
Frank Dellaert
0dc4f417e9
sampling from NoiseModel
2010-01-21 08:31:18 +00:00
Alex Cunningham
5f588031bc
Merged NoiseQR back into trunk
2010-01-20 18:32:48 +00:00
Alex Cunningham
67878830a6
Added timeMatrix.cpp to test specific matrix operations
2010-01-19 20:59:22 +00:00
Alex Cunningham
88e465910a
SQP tests and implementation now use the new Key system
2010-01-19 05:33:44 +00:00
Michael Kaess
0e6607d160
relinearization working, but currently applied to all variables
2010-01-18 22:37:44 +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
Frank Dellaert
3a83e0678d
KISS refactor of NoiseModel
2010-01-17 00:37:34 +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
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
4914091c87
Pose2Prior test
2010-01-16 15:39:39 +00:00
Frank Dellaert
df62213619
RangeFactor works
2010-01-14 06:00:17 +00:00
Richard Roberts
ac10c440e1
PairConfig is implemented, VSLAMConfig is now a typedef!
2010-01-14 02:58:29 +00:00
Frank Dellaert
5a02b36723
Solved some linking problems
2010-01-14 01:44:00 +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
Frank Dellaert
769763a35d
new target/ignore
2010-01-12 03:16:45 +00:00
Richard Roberts
1dcc864d97
Comment cleanup to /** style and adding global print functions
2010-01-10 22:41:23 +00:00
Frank Dellaert
1a96ef41cf
Created Pose3Config, Pose3Graph, and tested loop closure optimization.
2010-01-10 18:21:20 +00:00
Frank Dellaert
65e4dc1342
pose2Circle
2010-01-10 15:46:18 +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
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
e5fe4a69f7
change no. of build processes in eclipse to 2
2010-01-08 07:51:29 +00:00
Kai Ni
9845a5ae37
add findMinimumSpanningTree to FactorGraph
2010-01-06 11:15:37 +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
603b692406
New Targets
2009-12-31 12:57:06 +00:00
Michael Kaess
75ab62a729
ISAM2 (nonlinear ISAM) partially there, unit test currently disabled
2009-12-29 05:57:05 +00:00
Frank Dellaert
d9fd502656
moved CG tests from testGFG to testIterative
2009-12-28 09:44:30 +00:00
Michael Kaess
5dfd1921e1
template nightmare resolved, all tests working
2009-12-27 23:15:36 +00:00
Frank Dellaert
b14094cb1f
testUrbanOdometry
2009-12-18 07:15:19 +00:00
Frank Dellaert
7dfc67860c
unit tests for new Urban* classes
2009-12-18 01:24:28 +00:00
Frank Dellaert
a9dc57db2c
2009-12-09 21:00:53 +00:00
Viorela Ila
8e079a9794
add testPose2Constraint.run target
2009-12-09 17:30:47 +00:00
Alex Cunningham
107c6846fb
Added basic inequality constraint handling to NonlinearConstraint. Demo still in progress, but now constraints are explicitly handled as either equality or inequality constraints, with an active() function to determine if it is necessary to use the constraint.
...
Created testOrdering for new subtract() function to remove parts of an ordering.
2009-11-28 18:35:36 +00:00
Alex Cunningham
cf6474c99b
Added a graph implementation for multi-robot control systems. Currently can only really constrain the ends of a trajectory.
...
Made a number of fixes and updates to the ControlConfig as well.
2009-11-27 17:59:03 +00:00
Alex Cunningham
2a2e11d05d
Added the config and units for a robot control system example that keeps a position and velocity model of a robot's motion.
2009-11-26 05:52:17 +00:00
Alex Cunningham
d788e9833d
Added tests to ensure that configs will only update existing values when using exmap and not add new ones if there are more values in the delta config. VectorConfig and VSLAMConfig both do this properly now.
2009-11-24 15:12:59 +00:00
Michael Kaess
7d384488e3
BayesTree::update generalized and moved from testIncremental to BayesTree; testIncremental removed
2009-11-22 23:35:13 +00:00
Frank Dellaert
82aae3c161
Some re-factoring (using BOOST_FOREACH to loop over string list), root is now NULL after removing root clique
2009-11-21 21:48:10 +00:00
Alex Cunningham
429f27550c
Added a NonlinearConstraint and testNonlinearConstraint. There is currently an abstract base class for constraints and a partially implemented unary constraint.
2009-11-19 16:50:18 +00:00
Frank Dellaert
ceed2ae17d
symbolic tree in testIncremental
2009-11-18 15:37:19 +00:00
Alex Cunningham
20830a1534
Added testSQP demo to show a simple problem solved by Sequential Quadratic Programming. To see the outputs, set verbose=true at the start of the test.
2009-11-16 19:12:56 +00:00
Frank Dellaert
fc440f823b
New make targets
2009-11-13 06:20:41 +00:00
Alex Cunningham
35bbca7155
Switched make targets to use correct GaussianFactor/Graph
2009-11-13 02:22:50 +00:00
Alex Cunningham
67c2ea8263
NonlinearEquality factor is now working for generic configs. Currently, the feasible point must be specified in the form of a full config with the point in it, but this avoid needing to increase the requirements on the configs.
2009-11-13 02:06:52 +00:00
Frank Dellaert
8bc29cf11b
new target
2009-11-12 23:42:38 +00:00
Chris Beall
ef0fc9fbac
added testVSLAMGraph unit test. will fail until we can add a constraint to either one of the two cameras.
2009-11-12 18:54:46 +00:00
Alex Cunningham
c7b86cec97
Renamed ConditionalGaussian -> GaussianConditional
2009-11-12 16:41:18 +00:00
Alex Cunningham
40f8ba740d
Fixed build target references to LinearFactor/Graph
2009-11-12 16:20:30 +00:00
Alex Cunningham
77a1754b69
Renamed LinearFactor -> GaussianFactor, LinearFactorGraph -> GaussianFactorGraph
2009-11-12 16:16:32 +00:00
Frank Dellaert
f677341108
Moved inference methods to new compilation unit. Added [factor], and [marginalize] now returns a factor graph.
2009-11-12 04:56:30 +00:00
Alex Cunningham
2c37c94b5d
Replaced the householder transform with the weighted system
...
Removed constrained components from makefile, they will disappear shortly
2009-11-09 21:34:20 +00:00
Frank Dellaert
df3e5f2416
BIG: eliminate and eliminateOne now doubly templated functions, not methods.
...
Minor: Standardized on new shared_ptr naming convention:
shared_factor -> sharedFactor
conditional_ptr -> sharedConditional
node_ptr -> sharedClique
2009-11-07 19:31:39 +00:00
Frank Dellaert
e9d942f81e
BayesNet is now list-based for fast bi-directional access
...
SLOW O(n) random access operator[key] provided
(should maybe be called [at] as it does bounds checking)
I also fixed a bug in equals.
2009-11-03 06:29:56 +00:00
Frank Dellaert
eab038651e
Renamed BayesNet::insert -> push_back. BayesTree now uses Bayes nets as nodes.
2009-11-02 05:17:44 +00:00
Frank Dellaert
a8d267c4ca
Small change necessitating lots of edits: Conditionals now include key of random variable
...
This simplifies Bayes nets quite a bit. Also created a Conditional base class, derived classes ConditionalGaussian and SymbolicConditional
Finally, some changes were needed because I moved some headers to .cpp
2009-11-02 03:50:30 +00:00
Alex Cunningham
4c48bb08e1
Vector and Matrix updated with improved weighted householder operations and more tests.
2009-10-29 12:52:27 +00:00
Frank Dellaert
a513ae0287
Changed names and moved two LinearFactorGraph functions to FactorGraph
...
Added SymbolicFactorGraph compiulation unit and unit tests
Added symbolic combine constructor
2009-10-29 05:39:13 +00:00
Frank Dellaert
b6cee73571
Significant change: Made FactorGraph templated on Factor only, and moved error and probPrime to derived classes
...
Moved find_and_remove_factors to base class
Added and tested symbolic factor graph constructor and conversion from any factor graph type
2009-10-29 04:11:23 +00:00
Frank Dellaert
bb15697cf9
Prototype framework for Bayes chain (new name for Chordal Bayes net) and Bayes tree class hierarchy
2009-10-27 20:23:19 +00:00
Frank Dellaert
626d06905c
Removed obsolete optimize call and documented better
2009-10-27 14:14:36 +00:00
Frank Dellaert
4d9ff77249
moved timing example here from EasySLAM
2009-10-27 13:34:36 +00:00
Frank Dellaert
3792c79706
Fixed NonlinearFactor2 equals and added some unit tests for equals
2009-10-24 20:01:47 +00:00
Frank Dellaert
2aec16d3cf
Combined evaluation/derivatives now return the function value instead of using a pointer
2009-10-22 14:44:27 +00:00
Frank Dellaert
82d541f6a3
Fixed wrapper problem
...
This was because VectorConfig was parsed as Vector. Just changing the order of the parsers fixed this.
2009-10-17 04:29:14 +00:00
Frank Dellaert
0d66ee8f72
comments only
2009-10-15 14:56:40 +00:00
Alex Cunningham
66dac8a52f
Generalized constraint handling to create a LinearConstraint which implements linear equality constraints that can be eliminated as a part of a ConstrainedLinearFactorGraph. DeltaFunction has been changed to be a ConstrainedConditionalGaussian, which has a more robust solve() function. The new tests no longer use the "constrained" example from smallExample, so those functions have been commented.
...
''Limitations: ''
* Any given node can only have one constraint on it, but constraints can be of arbitrary size
* Constraints can only be specified as a blockwise system, where each block must be square and invertible to support arbitrary elimination orderings.
* ConstrainedNonlinearFactorGraph is disabled until a better solution for handling constraints in the nonlinear case is determined.
2009-10-08 13:57:22 +00:00
Frank Dellaert
989f290c99
'''BIG CHANGE''': avoid converting back and to FGConfigs by templating on configuration type. Details:
...
* Factors are now templated on the configuration type. Factor Graphs are now templated on the factor type and configuration type.
* LinearFactor is a factor on an FGConfig.
* LinearFactorGraph uses LinearFactor and FGConfig.
* NonLinearFactor is still templated on Config.
* NonLinearFactorGraph uses NonLinearFactors, but is still templated on Config.
* Tests and VSLAMFactor have been updated to reflect those changes.
2009-10-06 18:25:04 +00:00
Frank Dellaert
68e20eec2c
2 BIG changes:
...
(1) FactorGraph and NonlinearOptimizer now no longer have a .cpp file, but a -inl.h file as in [http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml Google's C++ Style Guide]. This means if you expect to instantiate one of the functions in a cpp file, you have to include the -inl.h file.
(1) getOrdering is now in FactorGraph, and the non-linear version does *not* take a config anymore.
Long version: I made this change because colamd works on the graph structure alone, and should not depend on the type of graph. Instead, because getOrdering happened to implemented in LinearFactorGraph first, the non-linear version converted to a linear factor graph (at the cost of an unnecessary linearization), and then threw all that away to call colamd. To implement this in a key-neutral way (a hidden agenda), i had to modify the keys_ type to a list, so a lot of changes resulted from that.
2009-09-13 04:13:03 +00:00
Frank Dellaert
ead3d03866
BIG: replaced optimize in NonlinearFactorGraph with specialized NonlinearOptimizer object. This does away with the artificial ErrorVectorConfig and the like as NonlinearOptimizer is templated and can use "exmap", the exponential map defined for any differentiable manifold.
2009-09-09 04:43:04 +00:00
Alireza Fathi
214637cee9
fixed rodriguez in Rot3
2009-09-03 17:43:02 +00:00
Frank Dellaert
c69d8d9b36
Factor Graph serialization, and renaming of factors -> factors_
2009-08-31 02:40:26 +00:00
Frank Dellaert
3432b6c50f
new Pose2 class
2009-08-29 01:24:26 +00:00
Frank Dellaert
af6d98253f
solve is now const
2009-08-27 01:23:05 +00:00
Frank Dellaert
4911fbd6ff
check target
2009-08-26 23:07:29 +00:00
Frank Dellaert
dcff7be2f0
added $(HOME)/include in Eclipse paths so tests are correctly parsed
2009-08-24 04:22:42 +00:00
Richard Roberts
2ed5cc31bf
Fixing file locations
2009-08-21 22:25:43 +00:00