Alex Cunningham
65b949c008
Fixed flaw in pseudoinverse calculation, and updated tests for Matrix and Vector
2009-10-29 20:12:07 +00:00
Frank Dellaert
80b162a412
LinearFactorGraph::eliminate_one is now FactorGraph::eliminateOne<ConditionalGaussian>
...
Symbolic version FactorGraph::eliminateOne<SymbolicConditional> also implemented and tested
2009-10-29 14:34:34 +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
f0c23a2828
Moved [factors] to FactorGraph
2009-10-29 04:49: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
50763ef764
Prototype for Bayes nets for Manohar
2009-10-27 20:44:40 +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
94da98411c
Fixed NULL problem
2009-10-27 20:22:02 +00:00
Richard Roberts
e37e771c8e
My last commit broke the linearFactorN unit test, fixed now.
2009-10-27 15:31:45 +00:00
Richard Roberts
cb22a0bc52
Renamed variables in linearFactorN unit test
2009-10-27 15:13:13 +00:00
Alex Cunningham
37bc303492
Added weighted Householder transforms that use precisions perform QDR factorization. Functions create a weighted vector pseudoinverse, and then use the pseudoinverse to substitute a solution into system.
2009-10-27 14:21:22 +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
422169873c
moved [symbol] function to LinearFactor
2009-10-27 13:33:44 +00:00
Brian Law
11f0d04cb6
made all classes that currently have an assert_equal "Testable"
...
- derive from testable as in class Point2 : Testable<Point2>
- moved print and equal declarations in .h right after the constructor
- similarly, moved implementations after constructors in .cpp file
- removed obsolete assert_equal
2009-10-26 19:26:51 +00:00
Frank Dellaert
3b30fe50b0
Moved print and equals to -inl.h
2009-10-25 22:27:18 +00:00
Frank Dellaert
7a968962db
Order of arguments = expected, then actual
2009-10-25 22:26:56 +00:00
Frank Dellaert
57bc102548
Equals now checks for NULLs
2009-10-25 14:25:17 +00:00
Frank Dellaert
f54ba387fe
FactorGraph, ChordalBayesNet, and ConditionalGaussian now Testable
2009-10-24 23:14:14 +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
563abc2b3f
formatting only
2009-10-24 04:07:32 +00:00
Chris Beall
baef89ccf0
updated find_factors_and_remove to use map of factor indices to gather factors connected to a variable. factors are set to null instead of being erased. also updated size() to count non-NULL factors, and print() to only print non-NULL factors. added new unit test which tries to remove the same variable twice.
2009-10-23 00:56:40 +00:00
Chris Beall
52bedcad3a
order 1 factors by using map
2009-10-22 21:33:00 +00:00
Frank Dellaert
cd3e3d8a86
Fairly substantial change: Factor now Testable, MutableLinearFactor gone
...
The latter was prompted by the fact that assert_equal did not like mixing LinearFactor and MutableLinearFactor
But MutableLinearFactor always was a bit of a kluge. We should eradicate all non-const on LinearFactor some other way.
2009-10-22 17:23:24 +00:00
Richard Roberts
0d580032c5
Added unit test for creating an n-ary LinearFactor
2009-10-22 15:52:39 +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
6c8531ed9c
Point2 now Testable, removed obsolete assert_equal, as every testable class can use the template version in Testable.h
2009-10-22 14:43:36 +00:00
Frank Dellaert
9a579fcdaf
No need for Testable constructors
2009-10-22 14:42:19 +00:00
Richard Roberts
e52c574e46
Added an empty virtual destructor to fix a compile warning
2009-10-22 14:27:44 +00:00
Richard Roberts
ae57441c3d
Added a constructor to create an n-ary factor from an std::vector of key/A-matrix pairs
2009-10-22 14:27:03 +00:00
Frank Dellaert
c3b8a20b5c
Added new test for find_factors_and_remove and deleted obsolete one
2009-10-22 13:28:37 +00:00
Frank Dellaert
1b199a4d3b
Added a "factors" function that returns indices to all factors connected to a variable.
2009-10-22 05:02:31 +00:00
Viorela Ila
3e6739f2fd
Now Matlab toolbox compiles!!
2009-10-20 20:41:45 +00:00
Viorela Ila
019a05d93d
mex: compile of ' "eliminate.cpp"' error fixed. but still not compiling
2009-10-20 18:57:33 +00:00
Frank Dellaert
543ad1409f
Changing from set to vector: insert -> push_back
2009-10-20 15:22:06 +00:00
Frank Dellaert
19bdb5c2f9
Better name for delta: linearizeAndOptimizeForDelta
2009-10-19 19:12:48 +00:00
Frank Dellaert
d8c04ecfcb
Fixed serialization include header.
2009-10-18 17:35:15 +00:00
Frank Dellaert
ed616a26ed
Finally gave in and made LinearFactorSet into a vector. Pragmatism wins.
2009-10-18 16:49:10 +00:00
Frank Dellaert
0d66ee8f72
comments only
2009-10-15 14:56:40 +00:00
Alex Cunningham
485f8d003b
Added notes concerning the ordering issue when handling sets of LinearFactor::shared_ptrs
2009-10-14 21:06:44 +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
8f20523e7f
ConstrainedLinearFactorGraphs now handles multiple constraints on a node properly.
...
smallExample was changed to include two of the examples used in testConstrainedLinearFactorGraph
ConditionalGaussian was changed to make solve() virtual, as this is necessary for ConstrainedConditionalGaussian
2009-10-14 15:32:05 +00:00
Chris Beall
92b920cb48
updated to be templated on Config.
2009-10-13 20:55:07 +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
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
34c1bb6f29
Small comment on exmap correctness
2009-10-06 18:02:33 +00:00
Frank Dellaert
7e77ae5f53
formatting only, clear by default
2009-10-06 18:01:40 +00:00
Kai Ni
354f9de64e
fixed round off error in Rot3.rodriguez
2009-09-16 02:20:57 +00:00
Kai Ni
7fb691183d
make simulation2D work
2009-09-15 22:32:34 +00:00
Frank Dellaert
768befbd85
Faster inverse by avoiding matrix intermediate
2009-09-14 04:39:36 +00:00
Frank Dellaert
d5dc9ab9d1
Composition is faster, composeTransform is trivial (and should probably go)
2009-09-14 04:38:17 +00:00
Manohar Paluri
3285d88181
Added few utility functions required to check if Marker is facing the Camera
2009-09-13 20:07:00 +00:00
Kai Ni
100b9b2eec
added a safe projection method to Calibrated and SimpleCamera. added a positiveDepth property to ARToolkitMeasurement so that the visibility can be checked
2009-09-13 16:09:54 +00:00
Manohar Paluri
571c0da8d1
removed unit test for scalar operator overloading
2009-09-13 04:23:31 +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
Manohar Paluri
d141cdab8c
rolling back + operator overload for scalars ( Not approved by FD )
2009-09-13 03:43:15 +00:00
Manohar Paluri
bc93a9c314
overloaded + operator for scalar
2009-09-12 21:52:13 +00:00
Frank Dellaert
7b0c69da2d
getOrdering uses [keys] now
2009-09-12 04:15:41 +00:00
Frank Dellaert
14102e259e
new method [keys]
2009-09-12 03:50:44 +00:00
Frank Dellaert
78ac705d05
Isolated main colamd call in function templated on key type.
2009-09-12 03:38:55 +00:00
Frank Dellaert
a5ae9c12ef
re-factored and commented getOrdering
2009-09-12 01:50:47 +00:00
Kai Ni
597af891cb
add comments
2009-09-11 20:51:49 +00:00
Kai Ni
bc7717d5ab
Forward declarations and comments
2009-09-11 20:51:03 +00:00
Kai Ni
49e6e0c63f
Add operator /
2009-09-11 20:49:28 +00:00
Kai Ni
b76a029ad8
Added principalPoint
2009-09-11 20:48:02 +00:00
Manohar Paluri
0ac12dfcbf
changed config() to const
2009-09-11 18:33:05 +00:00
Alireza Fathi
5e713551b3
get it run on the mac
2009-09-10 22:50:06 +00:00
Alex Cunningham
65df85125d
Fixed NonlinearOptimizer to return a shared pointer to a config
2009-09-10 22:08:47 +00:00
Alireza Fathi
5e1c719c17
the getConfig function is so dangerous and it should not exist...
2009-09-10 20:32:27 +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
Frank Dellaert
ff12101945
serialization
2009-09-07 04:19:03 +00:00
Frank Dellaert
5ca7ab9053
equals
2009-09-07 03:35:32 +00:00
Frank Dellaert
ff9a89c81b
unit tests in meter
2009-09-05 20:35:09 +00:00
Frank Dellaert
482d7fe73f
exposed two internal functions
2009-09-04 14:59:17 +00:00
Alireza Fathi
ba676a7a95
removed a printing thing
2009-09-03 18:11:26 +00:00
Alireza Fathi
214637cee9
fixed rodriguez in Rot3
2009-09-03 17:43:02 +00:00
Frank Dellaert
012437c573
keys now returns const references
2009-09-03 17:24:46 +00:00
Alireza Fathi
2357e8aefc
There was a serious mistake in rodriguez, instead of R was returning R'
2009-09-03 17:08:52 +00:00
Frank Dellaert
24c8242782
added print as virtual method
2009-09-03 16:51:31 +00:00
Kai Ni
0c590c513e
enable debug options
2009-09-03 15:15:20 +00:00
Frank Dellaert
5d41f5bdfa
Calibration load gone, now constructor takes path
2009-09-01 15:09:41 +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
92dbc8910e
correct serialization of base classes
...
moved all serialize functions to bottom of class declaration
2009-08-31 04:13:57 +00:00
Frank Dellaert
c69d8d9b36
Factor Graph serialization, and renaming of factors -> factors_
2009-08-31 02:40:26 +00:00
Manohar Paluri
00fd3cebcf
changed const string to const string & in load
2009-08-30 21:49:48 +00:00
Manohar Paluri
adabafa9f0
changed load function argument to const
2009-08-30 06:34:43 +00:00
Frank Dellaert
34d80b6a2b
moved some implementations to cpp to avoid some weird conflict involving stack
2009-08-30 04:51:46 +00:00
Frank Dellaert
6311dd0147
SimpleCamera::level now works
2009-08-29 07:39:20 +00:00
Frank Dellaert
179b5c09ae
static members for creating "level" cameras as we find on idealized robots
2009-08-29 06:54:10 +00:00
Frank Dellaert
5eb9a4d182
More efficient transform_to using unrotate
2009-08-29 04:10:52 +00:00
Frank Dellaert
3432b6c50f
new Pose2 class
2009-08-29 01:24:26 +00:00
Frank Dellaert
6e23d61221
Formatting, and moved print to cpp.
2009-08-29 01:22:40 +00:00
Frank Dellaert
ea0e16caf5
Formatting only
2009-08-29 01:22:37 +00:00
Frank Dellaert
8d54086f92
const begin and end
2009-08-28 20:06:29 +00:00
Manohar Paluri
fe8870a5f0
changed functions begin, end and get_names to const
2009-08-28 15:38:27 +00:00
Manohar Paluri
e2a05b37d8
changed parameter to const in function eq_combine_and_eliminate
2009-08-28 15:15:05 +00:00
Manohar Paluri
1ce50a8258
changed get_delta to const ( using find operator of a map instead of [] )
2009-08-28 14:55:33 +00:00
Manohar Paluri
017ad6a66f
error checking for find operation on map
2009-08-28 14:35:02 +00:00
Manohar Paluri
b530c97b08
error checking for find operation on map
2009-08-28 14:33:19 +00:00
Manohar Paluri
630bc9144f
changed get and operator functions to const ( using find operator of a map instead of [] )
2009-08-27 20:04:10 +00:00
Manohar Paluri
b70f081ebc
changed optimize functions to const ( using find operator of a map instead of [] )
2009-08-27 02:00:26 +00:00
Frank Dellaert
af6d98253f
solve is now const
2009-08-27 01:23:05 +00:00
Manohar Paluri
6a3d64c896
Added const verifiers for member functions of the class which are compatible
2009-08-26 18:04:52 +00:00
Manohar Paluri
0b1b5eca67
Added const verifiers for member functions of the class which are compatible
2009-08-26 15:25:47 +00:00
Alex Cunningham
725f5624c3
Added Serialization to Cal3_S2
2009-08-25 14:58:40 +00:00
Frank Dellaert
6e35e34ee4
const return value does not make sense for anything but references
2009-08-25 02:36:30 +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
Frank Dellaert
72fbc569a5
const correctness for combine (it is not const but takes a const argument)
2009-08-24 16:54:22 +00:00
Frank Dellaert
6dd31fd8c3
getOrdering is const !!!! It matters !
2009-08-23 06:56:54 +00:00
Frank Dellaert
fd11a1e2c7
Changed setBCN to take a reference
2009-08-22 22:01:17 +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