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
4914091c87
Pose2Prior test
2010-01-16 15:39:39 +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
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
e7bf219498
removed .cpp
2010-01-14 15:31:58 +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
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
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
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
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
fcb7c024a7
bearing functions and derivatives
2010-01-12 02:10:42 +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
65e4dc1342
pose2Circle
2010-01-10 15:46:18 +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
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
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
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
Alex Cunningham
20c6f29823
Moved control-related components to separate library
2010-01-06 20:01:34 +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
Richard Roberts
0b9451bc4b
Initializing libtool correctly in gtsam (see email to frankcvs with same subject)
2009-12-29 20:01:38 +00:00
Michael Kaess
75ab62a729
ISAM2 (nonlinear ISAM) partially there, unit test currently disabled
2009-12-29 05:57:05 +00:00
Frank Dellaert
0c0b73042b
template now exposed in iterative.h, and has its own implementation file
2009-12-28 16:26:16 +00:00
Frank Dellaert
863ee58c0f
new iterative.h/cpp compilation unit
2009-12-28 09:56:58 +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
7d1428de60
Added Errors class and operator* for GaussianFactor and GaussianFactorGraph. Also moved a few functions to cpp.
2009-12-26 22:48:41 +00:00
Michael Kaess
80ff7e6d26
uncommented urban In Makefile.am as it prevents linking; added Pose2Prior; ISAM2/planar now working
2009-12-24 23:44:08 +00:00
Frank Dellaert
b14094cb1f
testUrbanOdometry
2009-12-18 07:15:19 +00:00
Frank Dellaert
cf1fde7bda
UrbanFactor, UrbanGraph.cpp, template instantiations
2009-12-18 02:27:50 +00:00
Frank Dellaert
7dfc67860c
unit tests for new Urban* classes
2009-12-18 01:24:28 +00:00
Viorela Ila
d61d92c0e7
UrbanGraph class and testUrbanGraph TODOs
2009-12-17 21:23:50 +00:00
Chris Beall
532ea0ae36
fixed weird error that several of us have been experiencing with GaussianBayesTree.h appearing twice in the install command. fixed by moving Symbolic inference section above Inference Section.
2009-12-11 01:38:45 +00:00
Viorela Ila
1a96534016
add Pose2Graph
2009-12-10 23:45:38 +00:00
Viorela Ila
072dea81b0
rename Pose2Constraint using Pose2Factor
2009-12-09 23:43:01 +00:00
Michael Kaess
72ba1bee24
separate cpp
2009-12-09 22:02:50 +00:00
Frank Dellaert
7d4de3ec20
Added a 1D manifold implementation of 2D rotations. The new representation stores (cos theta, sin theta) rather than theta itself, ensuring that (a) rotate and unrotate do not call cos/sin, (b) same for all derivatives of rotate and unrotate, (c) when you call angle(), you always get the standardized answer given by atan2. The idea is that we will use this new type in Pose2 instead of angle.
2009-12-09 21:50:27 +00:00
Viorela Ila
638b174541
Pose2Constraint works in matlab
2009-12-09 19:55:25 +00:00
Michael Kaess
4200271cf4
GaussianBayesTree added, testBayesTree split
2009-12-09 19:39:25 +00:00
Viorela Ila
b87aa58c1f
add Pose2Constraint class
2009-12-09 17:29:43 +00:00
Manohar Paluri
60a3a21d5a
Binary Bayes Net, incomplete
2009-12-06 21:46:46 +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
Alex Cunningham
0b333630e7
Added an SQPOptimizer class with accompanying test - currently doesn't do much
2009-11-23 19:57:35 +00:00
Michael Kaess
7d384488e3
BayesTree::update generalized and moved from testIncremental to BayesTree; testIncremental removed
2009-11-22 23:35:13 +00:00
Alex Cunningham
ee4a066275
Implemented linearization and equality for unary NonlinearConstraints. Current tests use a scalar example. Split out implementation into a separate implementation file.
2009-11-20 03:04:49 +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
Alex Cunningham
f98f49381a
Added an example to testSQP to use for combining graphs
2009-11-18 21:57:59 +00:00
Michael Kaess
f56bf8c79f
added missing include to satisfy stricter compiler; added isam test file
2009-11-17 21:47:42 +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
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
Chris Beall
6252ff2497
added testVSLAMGraph unit test. will fail until we can add a constraint to either one of the two cameras.
2009-11-12 18:55:03 +00:00
Alex Cunningham
c7b86cec97
Renamed ConditionalGaussian -> GaussianConditional
2009-11-12 16:41:18 +00:00
Alex Cunningham
77a1754b69
Renamed LinearFactor -> GaussianFactor, LinearFactorGraph -> GaussianFactorGraph
2009-11-12 16:16:32 +00:00
Frank Dellaert
c85f5445db
Re-organized makefile
2009-11-12 04:54:31 +00:00
Chris Beall
710d396d0b
cleaned up a few includes to make VSLAMGraph work properly after the move into gtsam.
2009-11-10 22:49:22 +00:00
Chris Beall
08c9718b12
Moving VSLAMConfig into gtsam. VSLAMFactor lived there already, but was using VectorConfig directly... now using VSLAMConfig.
2009-11-10 20:19:00 +00:00
Manohar Paluri
0d928035e0
added empty constructors for serialization, also made sure SymbolicConditional.h was installed
2009-11-10 14:55:07 +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
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
Frank Dellaert
943b692a6b
BIG CHANGE: I got rid of the BayesChain/ChordalBayesNet classes and we now simply have a BayesNet class. It will just happen to be chordal when it is the result of an elimination. This will simplify a lot of things.
...
The main renaming that happened is
BayesChain -> BayesNet
ChordalBayesNet -> GaussianBayesNet == BayesNet<ConditionalGaussian>
SymbolicBayesChain -> SymbolicBayesNet == BayesNet<SymbolicConditional>
2009-10-31 19:53:20 +00:00
Frank Dellaert
cefeca149b
Moved template definitions to BayesTree-inl.h
2009-10-30 13:03:38 +00:00
Frank Dellaert
83e5286710
ChordalBayesNet is now derived from BayesChain
...
Explicit template instantiations
2009-10-30 04:54:11 +00:00
Frank Dellaert
dd3795ad5a
Symbolic eliminate now works, new compilation unit SymbolicFactor
2009-10-30 03:48:32 +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
1f792a53ea
Made some progress on symbolic analysis
2009-10-28 02:57:38 +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
4d9ff77249
moved timing example here from EasySLAM
2009-10-27 13:34:36 +00:00
Alex Cunningham
7d0a30c20f
Renamed FGConfig to VectorConfig in gtsam, easylib, EasySLAM, and mast.
2009-10-14 20:39:59 +00:00
Alex Cunningham
3efe95abee
Removed ConstrainedChordalBayesNet and associated test. It may return if ConstrainedConditionalGaussians need more involved processing in future versions, but for all versions of LinearConstraint, there is no need for a special Constrained CBN.
2009-10-08 13:43:43 +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
Kai Ni
0c590c513e
enable debug options
2009-09-03 15:15:20 +00:00
Kai Ni
f7bcb8dad7
add comments
2009-09-01 03:45:37 +00:00
Kai Ni
07f940be57
add -g to unit tests
2009-09-01 03:32:11 +00:00
Frank Dellaert
3432b6c50f
new Pose2 class
2009-08-29 01:24:26 +00:00
Kai Ni
b8a5501670
A much more clean fix for colamd and cppunitlite compilation problem.
2009-08-24 21:55:36 +00:00
Kai Ni
f6da0bf0cb
fix include files not installed problem
2009-08-24 20:06:42 +00:00
Kai Ni
5780b39816
Complete - # 3: Fix gtsam colamd problem
...
http://trac.research.cc.gatech.edu/borg/ticket/3
2009-08-22 07:00:11 +00:00
Richard Roberts
d80fa24a9f
Fixing directory structure
2009-08-21 22:23:24 +00:00