Commit Graph

972 Commits (ab6fc4f68cb1381ae91b40a286fc1d521ac0f9ee)

Author SHA1 Message Date
Kai Ni 6abb9af0a6 added BearingRangeFactor which captures both BearingFactor and RangeFactor 2010-04-01 22:02:31 +00:00
Kai Ni db533c565b found there are two implementations of bearing and range in gtsam. removed the redundant one. 2010-03-31 23:32:39 +00:00
Kai Ni c1baca1b29 add != to TypedSymbol 2010-03-31 17:58:42 +00:00
Kai Ni c343cf403e make BetweenFactor support two different keys 2010-03-31 17:43:52 +00:00
Kai Ni 1483de5479 mute the messages that has no verbosity level checking 2010-03-31 17:43:28 +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
Kai Ni 81b6f5975b added unit tests 2010-03-24 02:20:54 +00:00
Kai Ni 6c198809af fixed the warnings caused by the initialization order 2010-03-19 20:32:19 +00:00
Kai Ni 62d24a8d48 add backproject 2010-03-19 08:32:55 +00:00
Kai Ni b895760404 reenable veclib include path 2010-03-17 18:03:54 +00:00
Alex Cunningham 0a48b45b12 Added insertSub() to tupleconfig to allow the insertion of a subtype of config at once. 2010-03-17 16:24:22 +00:00
Alex Cunningham 1f6990635c removed gsl code, fixed flags for inclusion of blas 2010-03-17 13:23:01 +00:00
Alex Cunningham b8167a1788 Changed blas inclusion to be smarter about what os is used, removed old GSL code 2010-03-17 13:19:48 +00:00
Kai Ni d5262135f4 1. to link with mac veclib, the compiler needs -DYA_BLAS, I changed matrix.cpp to handle both YA_BLAS and the linux's CBLAS flag
2. so the current plan is that linux just enables USE_BLAS_LINUX in configure.ac, and macos enables USE_BLAS_MACOS. Those two should be independent given USE_BLAS passed by the user when calling configure.
2010-03-16 21:16:36 +00:00
Alex Cunningham 276c027ef3 Added mechanism to check for blas functionality. 2010-03-16 13:06:24 +00:00
Alex Cunningham ae98bb72fe Added define for CBLAS to the mac version so that blas functions are actually used 2010-03-16 12:51:05 +00:00
Kai Ni 5b86f2777b added USE_BLAS_MACOS and changed old USE_BLAS to USE_BLAS_LINUX to make ublas compilable on mac 2010-03-15 20:10:36 +00:00
Kai Ni 942893ebca move trylambda before printing all the configs 2010-03-15 18:38:08 +00:00
Alex Cunningham a1273a91fc Integrated blas into gtsam using autotools 2010-03-15 18:17:43 +00:00
Alex Cunningham 3a5aeeeb0d added test for insert function in TupleConfig that takes other configs 2010-03-15 16:34:40 +00:00
Frank Dellaert 503fe46306 changed template argument names 2010-03-12 22:00:55 +00:00
Frank Dellaert 10af1930bb Eiffel datasets 2010-03-12 21:56:14 +00:00
Frank Dellaert 00ac961c8a I changed the name of SubgraphPCG to SubgraphSolver and put it in its own compilation unit 2010-03-12 19:19:21 +00:00
Frank Dellaert f217a5bd8a I reverted back to the old expmap in Pose3 :-( It does not work well for Urban, and now it turns out Yong-Dian has problems, too. It seems there is still something that we do not quite understand about the whole Lie group optimization business. If you want to run with the new expmap, define CORRECT_POSE3_EXPMAP 2010-03-12 19:16:53 +00:00
Frank Dellaert 91f020fee1 fixed namespaces 2010-03-12 18:52:04 +00:00
Manohar Paluri a4c769fddc Added serialization to Pose2 2010-03-12 14:20:29 +00:00
Frank Dellaert 26304b749a MAJOR: I made the correct Pose3 expmap the default. It turns out that all but the transform_to derivatives were in fact correct (and I fixed transform_to based on new math in math.lyx), but there was still a wrong expmap and logmap in the header file that I forgot about. I now moved those the te cpp file. The new code, which executes a correct "screw motion" for the exponential map, is now linked in by default. If you want the old, incorrect behavior, configure with FASTER_BUT_INCORRECT_EXPMAP defined. Note that the old code is faster per expmap, but *converges* faster (and to a deeper minimum) and hence is faster overall in many cases. 2010-03-11 21:52:24 +00:00
Frank Dellaert 1cba03a490 Always do BOOST_FOREACH with a reference if you can! In this case, made a noticeable difference in performance by avoiding hundreds of thousands of mallocs. 2010-03-11 21:40:56 +00:00
Frank Dellaert 67fb7fa9ff in-place house vector (was about 10% of all mallocs in Urban) 2010-03-11 15:04:31 +00:00
Richard Roberts cf28e3ab04 Removed unused TupleConfigEnd global expmap and logmap as they were causing function resolution problems 2010-03-10 16:30:00 +00:00
Richard Roberts d149afbec2 Adding lambdaMode flag - defaults to BOUNDED (bounds lambda at 1e5), CAUTIOUS is currently broken. 2010-03-10 16:27:38 +00:00
Frank Dellaert fb1396d1c3 zero method 2010-03-10 00:21:01 +00:00
Frank Dellaert e10938688e removed dim_ (which was buggy) and added zero 2010-03-10 00:20:12 +00:00
Kai Ni 266ad062fe added empty method 2010-03-09 22:26:24 +00:00
Manohar Paluri fd863fa7ac added calibrate function which transforms image coordinates to intrinsic coordinates and added a unit test to check the validity 2010-03-09 22:23:33 +00:00
Viorela Ila bfd5b5ab5d remove tree files 2010-03-08 20:35:35 +00:00
Richard Roberts 9aa76cfcbd 0-based index bug fix 2010-03-08 18:45:22 +00:00
Yong-Dian Jian 536dfd5ea1 fix calibrated camera 2010-03-08 15:43:35 +00:00
Richard Roberts 74f8102d29 Fixed warnings 2010-03-08 14:06:07 +00:00
Frank Dellaert d478767d4d righ-hand-side 2010-03-08 03:56:49 +00:00
Frank Dellaert 920d86ce35 Both GaussNewton and LM now exit immediately if initial error<absoluteThreshold, and pront out a messsage saying that if verbisty>=ERROR 2010-03-07 17:51:46 +00:00
Manohar Paluri e9ea8b426a fixed a bug in equals 2010-03-07 06:29:23 +00:00
Manohar Paluri 9b93731ed9 removed caching of size and dim in PairConfig as it was buggy 2010-03-07 06:16:49 +00:00
Frank Dellaert 2f72d585c5 be a bit more verbose 2010-03-07 00:10:02 +00:00
Alex Cunningham 3e2924a5bf Uncommented some testSQP tests, which do work 2010-03-06 22:51:03 +00:00
Alex Cunningham 7c3dbf164e Fixed bug in ternary functions 2010-03-06 17:27:01 +00:00
Alex Cunningham 294c7d806e Changed Doxyfile to make graphviz images - needs to have graphviz installed 2010-03-06 02:43:21 +00:00
Alex Cunningham 3cf36f4aee Added remaining terms for derivatives of ternary factors 2010-03-05 22:27:57 +00:00
Frank Dellaert 0eed38c7a0 VisualSLAM Graph is now a class and has convenience functions. These function as documentation (autocompletion and the like) and I think we should also have this style in addition to the generic add. 2010-03-05 15:48:01 +00:00
Frank Dellaert 5ef0400e06 put Factorization class in its own file, and added checks in constructors that take shared pointers, so we get some more meaningful output rather than *segmentation error* 2010-03-05 15:09:09 +00:00
Viorela Ila fccbaa2d6f right folders 2010-03-05 05:41:21 +00:00
Frank Dellaert 45b2eef13f Adjoint 2010-03-05 03:02:23 +00:00
Viorela Ila abf7758374 now datasets are in CitySALM/data/XXXX/xxxx.graph 2010-03-05 02:58:59 +00:00
Yong-Dian Jian 43df7375c0 add helper functions 2010-03-05 00:55:36 +00:00
Kai Ni d0d2aa8aee added erase method 2010-03-04 23:39:36 +00:00
Alex Cunningham d6c2b415a5 Added a check to NonlinearOptimizer to short circuit optimization if the initial error is below the absolute threshold. 2010-03-04 22:46:27 +00:00
Alex Cunningham 4ae9b72a35 Commented marginalGaussian() due to compile error 2010-03-04 22:40:01 +00:00
Richard Roberts 5f8b0e9341 Added marginalGaussian to get a marginal on a single variable from a GaussianFactorGraph 2010-03-04 22:03:40 +00:00
Alex Cunningham badc7b6ee6 Added keys() function to LieConfig to return an ordered list of keys 2010-03-04 13:21:48 +00:00
Frank Dellaert b9045528ee no more normalize. in compose?
Also moved constructors around, one inline in h, others to cpp
2010-03-03 05:35:00 +00:00
Frank Dellaert c9fcf95501 fixed some issues in SE(2) "branch" 2010-03-03 05:34:08 +00:00
Frank Dellaert 707627fb3a Rot2 "named constructors" (http://www.parashift.com/c++-faq-lite/ctors.html#faq-10.8):
/** Named constructor from angle == exponential map at identity */
  static Rot2 fromAngle(double theta) { return Rot2(cos(theta),sin(theta));}

  /** Named constructor from cos(theta),sin(theta) pair, will *not* normalize! */
  static Rot2 fromCosSin(double c, double s);

  /** Named constructor that behaves as atan2, i.e., y,x order (!) and normalizes */ 
  static Rot2 atan2(double y, double x);

which are a bit more verbose, but at least won't cause hours of bug-tracking :-(

I also made most compose, inverse, and rotate functions into methods, with the global functions mostly calling the methods. Methods have privileged access to members and hence are typically much more readable.
2010-03-03 03:31:53 +00:00
Frank Dellaert 85fe43949d arithmetic tests 2010-03-03 02:50:49 +00:00
Frank Dellaert eec6017b12 scalar multiplication 2010-03-03 02:49:06 +00:00
Kai Ni 23986349de added measured function 2010-03-02 21:43:39 +00:00
Frank Dellaert 190e87afb9 Correct exmap is indeed correct, but derivatives *still* do not check out. I'm starting to suspect numericalDerivative. 2010-03-02 17:56:26 +00:00
Frank Dellaert 32beb8c712 more refactoring, use different Rot3 constructor so no confusion 2010-03-02 06:16:11 +00:00
Kai Ni 680a6a28c1 added begin and end iterators 2010-03-02 06:07:46 +00:00
Frank Dellaert 33c6c51658 refactored and thoroughly checked rodrgues, added two more unit test 2010-03-02 05:45:19 +00:00
Frank Dellaert f956bae6a4 combined version only 2010-03-02 02:27:09 +00:00
Frank Dellaert 1093317fdc wedge 2010-03-02 02:25:27 +00:00
Frank Dellaert c62ebe3ea8 exponential map approximation 2010-03-02 02:24:38 +00:00
Alex Cunningham 20ac6b85c8 Added static dim() functions to remaining geometry types so that dimensions can be calculated on size alone. 2010-03-01 21:56:13 +00:00
Manohar Paluri e670e00e3b added const Tensor3expression 2010-03-01 18:08:18 +00:00
Manohar Paluri 8bf8e4dc1f added operator() to change values 2010-03-01 18:07:18 +00:00
Manohar Paluri 6073bdb679 made the function const 2010-03-01 18:05:24 +00:00
Alex Cunningham a46dc4cea0 Added threshold for lambda in NonlinearOptimizer so that if lambda has gotten unreasonably large, optimization will throw a runtime exception to prevent infinite loops where lambda goes to infinity. 2010-03-01 16:31:05 +00:00
Frank Dellaert d9c185498e combined a few arithmetic tests 2010-03-01 01:38:26 +00:00
Frank Dellaert 4cb59438f7 documentation 2010-03-01 01:37:50 +00:00
Frank Dellaert 619190a818 new-style combined unrotate 2010-03-01 01:36:27 +00:00
Frank Dellaert 20ad08e48f new Pose3 derivatives still don't work :-( 2010-03-01 01:35:33 +00:00
Frank Dellaert b943644ddd re-factored so corresponds to math.lyx 2010-03-01 01:33:45 +00:00
Frank Dellaert 6e03783465 negation 2010-03-01 01:30:15 +00:00
Frank Dellaert 28f4493a2b Now uses Adjoint map for derivatives of inverse/compose/between, see doc/math.pdf 2010-02-28 09:10:39 +00:00
Frank Dellaert 98aa08bcd0 Re-use memory 2010-02-28 09:09:37 +00:00
Frank Dellaert 85784400c6 prototype object map 2010-02-28 09:09:12 +00:00
Frank Dellaert dcfe52dae7 some renaming of variables 2010-02-28 09:08:47 +00:00
Kai Ni b58f7b8ea7 the derivative for transform_from 2010-02-28 08:51:43 +00:00
Kai Ni d894e23a06 assert_equal for a list of matrices 2010-02-28 00:48:42 +00:00
Manohar Paluri 4604cbce05 svd now handles m < n cases. Added unit tests to verify this. But svd in place will throw an exception for such cases. 2010-02-27 18:23:34 +00:00
Frank Dellaert 5e00c58ea7 Baker–Campbell–Hausdorff formula: in non-commutative Lie groups, when composing exp(Z) = exp(X)exp(Y) it is not true that Z = X+Y. Instead, Z can be calculated using the BCH formula:
Z = X + Y + [X,Y]/2 + [X-Y,[X,Y]]/12 - [Y,[X,[X,Y]]]/24 + ...
See http://en.wikipedia.org/wiki/Baker–Campbell–Hausdorff_formula
2010-02-27 14:58:54 +00:00
Kai Ni 67b4834bdb someone forgot to return it 2010-02-27 00:04:51 +00:00
Viorela Ila b6599ebdce readst the tree files 2010-02-26 22:23:00 +00:00
justinca 9941b28128 Fix matrix inverse square root so it, once again, returns an upper triangular matrix 2010-02-26 18:53:41 +00:00
Manohar Paluri 940202226b added #pragma 2010-02-26 14:45:17 +00:00
Frank Dellaert d21ff82d21 Kruskal skeleton 2010-02-26 13:31:38 +00:00
Kai Ni 87c8465315 the beautiful Jacobian of compose in pose2 2010-02-26 10:55:41 +00:00
Frank Dellaert c40760485d I think we might have a problem: is expmap<Pose2> correct? Uncomment the new test in testPose2. It does not match what is said in http://www.cis.upenn.edu/~cis610/cis610lie1.ps. 2010-02-26 06:00:58 +00:00
Frank Dellaert 0004d90feb formatting only 2010-02-26 05:30:02 +00:00