EigenPy — Efficient Python bindings between Numpy/Eigen
EigenPy is an open source framework which allows to bind the famous Eigen in Python as NumPy object (as matrix or array). EigenPy allows the sharing of memory between Numpy and Eigen avoiding memory allocation. EigenPy fully support Eigen::Ref avoiding memory allocation. EigenPy also exposes the Geometry module of Eigen for easy code prototyping. EigenPy also supports the basic matrix decomposion routines of Eigen such as the Cholesky decomposition, SVD decomposition, QR decomposition, and etc.
Setup
The installation of EigenPy on your computer is made easy for Linux/BSD and Mac OS X environments.
The Conda approach
You simply need this simple line:
conda install eigenpy -c conda-forge
Ubuntu
You can easily install EigenPy from binairies.
Add robotpkg apt repository
- Add robotpkg as source repository to apt:
sudo sh -c "echo 'deb [arch=amd64] http://robotpkg.openrobots.org/packages/debian/pub $(lsb_release -cs) robotpkg' >> /etc/apt/sources.list.d/robotpkg.list"
- Register the authentication certificate of robotpkg:
curl http://robotpkg.openrobots.org/packages/debian/robotpkg.key | sudo apt-key add -
- You need to run at least once apt update to fetch the package descriptions:
sudo apt-get update
Install EigenPy
- The installation of EigenPy and its dependencies is made through the line:
For Python 2.7
sudo apt install robotpkg-py27-eigenpy
or for Python 3.{5,6,7}
sudo apt install robotpkg-py35-eigenpy
where 35 should be replaced by the python 3 you want to work this (e.g. robotpkg-py36-eigenpy
to work with Python 3.6).
Mac OS X
The installation of EigenPy on Mac OS X is made via HomeBrew. You just need to register the tap of the sofware repository.
brew tap gepetto/homebrew-gepetto
and then install EigenPy for Python 3.x with:
brew install eigenpy
or for Python 2.7:
brew install eigenpy@2
Credits
The following people have been involved in the development of EigenPy:
- Justin Carpentier (INRIA): main developer and manager of the project
- Nicolas Mansard (LAAS-CNRS): initial project instructor
- Wolfgang Merkt (University of Edinburgh): ROS integration and support
- Sean Yen (Microsoft): Windows integration
- Loïc Estève (INRIA): Conda integration
If you have taken part to the development of EigenPy, feel free to add your name and contribution here.
Acknowledgments
The development of EigenPy is supported by the Gepetto team @LAAS-CNRS and the Willow team @INRIA.