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