Commit Graph

183 Commits (cded12e6c8e6a5b74ff08ea231e38ddd2c7d01d3)

Author SHA1 Message Date
Frank ac57680dee Interactive and shorthand symbols 2016-01-26 14:55:33 -08:00
Frank ea3d72c66f Show a loop Scenario 2016-01-26 14:41:55 -08:00
Frank c25e1e6b73 Wrapped ConstantTwistScenario 2016-01-26 14:16:24 -08:00
Frank a126c91d6f Skeleton with interactive plotting 2016-01-26 13:19:25 -08:00
Frank Dellaert a6c265fda0 OdometryExample and necessary wrapping 2016-01-25 00:58:08 -08:00
Frank Dellaert 312b8f5da0 Cleaned up example 2016-01-25 00:57:35 -08:00
Frank Dellaert 6ee3e42d27 Update README 2016-01-25 00:09:51 -08:00
Chris Beall cd0215d9a8 Add back empty __init__.py file for gtsam_tests. Seems required to be able to do "import gtsam_tests", but it can be empty. 2016-01-24 23:47:36 -05:00
Chris Beall 00da6d3f81 string concat the CMake 2.8-friendly way 2016-01-24 23:29:06 -05:00
Chris Beall 8c0f928f11 Another attempt at fixing installation of _libgtsam_python.so. package_data is relative to package_dir, so the previous approach doesn't work when package_dir is in the source tree (and we don't want to copy the lib to source, or all of the source into lib). Using data_files method instead. 2016-01-24 23:22:40 -05:00
Chris Beall 6b85a8db14 typo 2016-01-24 20:54:16 -05:00
dellaert 7b493812e8 Adapt to new dir structure 2016-01-24 15:51:04 -08:00
dellaert 0605abfea5 Chaned dir structure a bit 2016-01-24 15:50:31 -08:00
dellaert fb8a62dd1d Used python.in to generate setup.py
Also fixed cmake stuff to copy library to correct location
Minor improvements of cmake
Automatic install of python package
2016-01-24 15:28:16 -08:00
Chris Beall 4c44ddc4e6 Print all python-related dependency warnings at the end of cmake output with all the other warnings. Don't automatically toggle GTSAM_BUILD_PYTHON option to OFF - this is more consistent with how other options are handled. 2016-01-21 01:13:22 -05:00
dellaert c77997fbb1 Fixed typo 2016-01-19 23:18:39 -08:00
cbeall3 31888d653c Remove CMake option to use 3rdparty numpy C-API 2016-01-19 14:45:34 -05:00
Ellon Mendes 4f4d7c2af5 Add value_exists() and calculate_pose3_estimate to ISAM2 in python 2015-12-11 18:20:33 +01:00
Ellon Mendes 383986902a Add quaternion() method, use properly quaternion named constructor, and add some comments on RzRyRx 2015-12-11 18:19:05 +01:00
Ellon Mendes 868f1511fc Add Quaternion named constructor to Rot3 in the python module 2015-12-08 14:31:24 +01:00
Ellon Mendes 46178731c6 "cmake -E copy_if_different" -> "cmake -E copy" for .py files
"cmake -E copy" is enough because it checks the timestamp to decide if it the
copy should be made or not.
2015-12-03 13:01:19 +01:00
Ellon Mendes 31a88ba910 Remove some variables to improve readbility 2015-12-02 15:29:07 +01:00
Ellon Mendes 87211319fb Update python/README.md 2015-12-02 14:35:51 +01:00
Ellon Mendes 4f509c2dff Improve printing when copying .py files 2015-12-02 14:15:10 +01:00
Ellon Mendes 81a1fe1c3a Create a proper target to generate python/gtsam/_libgtsam_python.so in the build directory 2015-12-02 13:35:17 +01:00
Ellon Mendes 4671b03e74 Only copy .py files if they've changed 2015-12-02 13:35:17 +01:00
Ellon Mendes 768c594299 Copy python/gtsam to build/python directory
Not the best way since the gtsam module into build/python won't be updated if
.py files change in the python module.
2015-12-02 13:35:17 +01:00
Ellon Mendes 888af6b948 Remove unused lines that generate warnings on CMake 3.4 2015-12-02 13:35:17 +01:00
Ellon Mendes 2e4a96dc18 Do not store RPATH into _libgtsam_python.so
Since we're copying the .so from the build dir to python/gtsam _outside_ the
build dir, we should remove the rpath from the .so, so it will search the
library in the system, and not in the build directory, after installed using
setup.py
2015-12-02 13:35:17 +01:00
Ellon Mendes 57373c8c47 Wrap Cayley methods to python only if not using Quaternions 2015-12-02 13:35:17 +01:00
Ellon Mendes dfc15a2f17 Rename python module related cmake variables to improve readability 2015-12-02 13:35:17 +01:00
Ellon Mendes eb798f88fe Add NumPy C-API 1.8.2 to gtsam/3rdparty; Add option o use system or bundled one 2015-12-02 13:35:17 +01:00
Ellon Mendes 40a567c1ed Look for NumPy C-API if building the python module 2015-12-02 13:35:17 +01:00
Ellon Mendes d51c6f3313 Fix cmake to use default python and boost python versions 2015-12-02 13:35:17 +01:00
Ellon Mendes 09ec306013 Update __ini__.py to be supported in python 2 and 3 2015-12-02 13:35:17 +01:00
Ellon Mendes 72bcc4f08e Change VisualISAM2Example to work with python 2 and python 3 2015-12-02 13:35:17 +01:00
Ellon Mendes dfa2b53eeb import_array() --> import_array1() 2015-12-02 13:35:16 +01:00
Ellon Mendes 5b116a4a67 Add option to chose target python version to create module 2015-12-02 13:35:16 +01:00
Ellon Mendes ea6ecdd9d5 Move subdirlist macro to cmake/GtsamPythonWrap.cmake
Conflicts:
	cmake/GtsamPythonWrap.cmake
2015-12-02 13:35:16 +01:00
Ellon Mendes 4f98ec889c Fix python instalation using distutils
Conflicts:
	python/README.md
2015-12-02 13:35:16 +01:00
Ellon Mendes d3db7309bc Make libgtsam_python a hidden module by adding '_' before lib name 2015-12-02 13:35:16 +01:00
Ellon Mendes 8fa1acc553 Move plot functions to a submodule utils 2015-12-02 13:35:16 +01:00
Ellon Mendes 4f37929d80 Add ploting to VisualISAM2Example.py 2015-12-02 13:35:16 +01:00
Ellon Mendes 46a1970731 Wrap KeyVector to python
While here, do small cleanup on exportgtsam.cpp
2015-12-02 13:35:16 +01:00
Ellon Mendes a6b48194fd Print result of example to console 2015-12-02 13:35:16 +01:00
Ellon Mendes 92bfcaa004 Wrap some properties of ISAM2Params to python 2015-12-02 13:35:16 +01:00
Ellon Mendes cba6085557 Add VisualISAM2Example. Still need to finish some details of the example 2015-12-02 13:35:16 +01:00
Ellon Mendes bc73a5132a Wrap few more missing methods on ISAM2 and NonlinearFactorGraph 2015-12-02 13:35:16 +01:00
Ellon Mendes 7576dc359d Wrap more methods of Pose3 to python 2015-12-02 13:35:16 +01:00
Ellon Mendes 8ae3dda6a6 Add helper functions to better handle gtsam.Symbol on python 2015-12-02 13:35:16 +01:00
Ellon Mendes 49d02c798f Wrap PinholeBaseK to python and declare it as parent of PinholeCamera 2015-12-02 13:35:16 +01:00
Ellon Mendes c878278687 Wrap GenericProjectionFactor to python 2015-12-02 13:35:16 +01:00
Ellon Mendes 6196f95301 Wrap Cal3_S2 to python 2015-12-02 13:35:16 +01:00
Ellon Mendes 818db17392 Wrap symbol to python 2015-12-02 13:35:16 +01:00
Ellon Mendes 982d81e1c9 Add python version of SFMdata as gtsam.examples submodule
The gtsam.examples submodule should be loaded explicitely:
>>> import gtsam.examples
2015-12-02 13:35:16 +01:00
Ellon Mendes 0e134c09db Wrap PinholeCameraCal3_S2 to python 2015-12-02 13:35:16 +01:00
Ellon Mendes ade8ab4053 Remove old files which content was was already moved to other src files 2015-12-02 13:35:16 +01:00
Ellon Mendes 05f6237f71 Define NO_IMPORT_ARRAY in all cpp files before including NumpyEigenConverter.hpp
This fixes the segmentation fault when converting numpy and Eigen.

The reason is that NumpyEigenConverter.hpp includes numpy/arrayobject.h, and for
the numpy's C-API to work in multiple files we need to define NO_IMPORT_ARRAY
before including numpy/arrayobject.h in all the source files but the one that
defines the module initialization (exportgtsam.cpp in out case), as explained
here:
http://docs.scipy.org/doc/numpy/reference/c-api.array.html#importing-the-api

Note that PY_ARRAY_UNIQUE_SYMBOL, also needed to work multifile, is already
defined on NumpyEigenConverter.hpp.
2015-12-02 13:35:15 +01:00
Ellon Mendes c140a784fe Add constness to matrices and vectors 2015-12-02 13:35:15 +01:00
Ellon Mendes d76ed71c99 Move my developments to the handwritten structure of files that existed before
There's a problem with numpy_eigen causing a segmentation fault.
2015-12-02 13:35:15 +01:00
Ellon Mendes ffae37a675 Revert python module to use old handwritten files
Just noticed several handwritten files here. I'm reverting the python module to
use these handwritten files to later add the files I was wrapping to the same
framework.

Classes from geometry were wrapped for an old C++ interface, so several
boost python's .def(...) were commented out.

Conflicts:
	python/gtsam/.gitignore
2015-12-02 13:35:15 +01:00
Ellon Mendes 7680b533ac Wrap basic functions of NonlinearFactorGraph and ISAM2
While here, change method names for python convention on PEP0008
2015-12-02 13:35:15 +01:00
Ellon Mendes b10f7386c5 Wrap prior factors 2015-12-02 13:35:15 +01:00
Ellon Mendes 72a800f70f Add inheritance to from NonlinearFactor to BetweenFactor.
Nonlinear factor is pure virtual, so we need to declare a wrapper, even
if we don't export anything from it.

Also, we don't make explicit all the chain of inheritance from BetweenFactor,
since it looks like exporting inheritance directly from NonlinearFactor allows
adding it to NonlinearFactorGraph.
2015-12-02 13:35:15 +01:00
Ellon Mendes 828b230e17 Add overloads for named constructors on noiseModel module 2015-12-02 13:35:15 +01:00
Ellon Mendes 9a97248ee4 Put classes in namespaces close to gtsam's C++ interface 2015-12-02 13:35:15 +01:00
Ellon Mendes 6684f69d0a Fix inheritance problem on python wrapping of noise models 2015-12-02 13:35:15 +01:00
Ellon Mendes 72d73c6721 Add slam as submodule of gtsam python module 2015-12-02 13:35:15 +01:00
Ellon Mendes e0b8d87695 Wrap Values::insert and Values::at for Point3, Rot3, and Pose3 2015-12-02 13:35:15 +01:00
Ellon Mendes 7cfd57339a Add nonlinear submodule of gtsam python module 2015-12-02 13:35:15 +01:00
Ellon Mendes ff1cd140bb Register convertion between numpy and eigen in a separated submodule 2015-12-02 13:35:14 +01:00
Ellon Mendes a0064f3aab Add geometry submodule of python module 2015-12-02 13:35:14 +01:00
Ellon Mendes 977d4aa54f Add 'bases' for noiseModel classes
While here, add comments and TODOs
2015-12-02 13:35:14 +01:00
Ellon Mendes 96d6b79f5e Start organizing python module
Organize gtsam modules into submodules. Start with a handwritten noiseModel
module.

Conflicts:
	CMakeLists.txt
2015-12-02 13:35:14 +01:00
Andrew Melim 6a34fa0a22 Markdown readme 2015-12-02 13:35:14 +01:00
Andrew Melim dca285a9d8 Remove library 2015-12-02 13:35:14 +01:00
Andrew Melim 20f5c46507 Reworked python directory structure. Added readme on constructing python module. Added first unit test for point2. Everything needed to get it passing is also here, including some renaming of variables and emitted library names
Conflicts:
	cmake/GtsamPythonWrap.cmake
	python/handwritten/examples/OdometeryExample.py
	wrap/Module.cpp
2015-12-02 13:35:14 +01:00
Andrew Melim 4e00f70e82 Updating cmake build 2015-12-02 13:35:14 +01:00
Andrew Melim def2f1a91c Installation script for python Distutils for python package. Installs to default python dist-packages location call : python setup.py install 2015-12-02 13:35:14 +01:00
Andrew Melim 414e6b58f9 Finally fixed templates, moved into single library for simplicity, add noisemodels, nonlinear 2015-12-02 13:35:14 +01:00
Andrew Melim d0efbadac8 Example on how to wrap templated classes such as factors 2015-12-02 13:35:14 +01:00
Andrew Melim 2455780829 Rot2, Pose2, Point2 now all work fairly well in Python. See Pose2.cpp for examples on method overloading and auto-declarations 2015-12-02 13:35:14 +01:00
Andrew Melim ec934770f3 Initial stages of python wrapping. Issues with method overloading, boost optionals. Testing with Point2 only now 2015-12-02 13:35:13 +01:00