|
1 | | -eigenpy |
2 | | -=========== |
| 1 | +EigenPy |
| 2 | +====== |
3 | 3 |
|
4 | | -Setup |
5 | | ------ |
| 4 | +**EigenPy** is an open source framework which allows to bind the famous [Eigen](http://eigen.tuxfamily.org) in Python as NumPy object (as matrix or array). |
| 5 | +**EigenPy** also exposes the Geometry module of Eigen for easy code prototyping. |
| 6 | +**EigenPy** also supports the basic matrix decomposion routines of Eigen such as the Cholesky decomposition, SVD decomposition, QR decomposition, and etc. |
6 | 7 |
|
7 | | -Before compiling this package, make sure to have initialized all git |
8 | | -submodules of this repo. To initialize the submodules when cloning the |
9 | | -repo, use: |
| 8 | +## Setup |
10 | 9 |
|
11 | | -```bash |
12 | | -git clone --recursive <git_url> |
13 | | -``` |
14 | | - |
15 | | -To compile this package, it is recommended to create a separate build |
16 | | -directory: |
17 | | - |
18 | | - mkdir _build |
19 | | - cd _build |
20 | | - cmake [OPTIONS] .. |
21 | | - make install |
| 10 | +The installation of **EigenPy** on your computer is made easy for Linux/BSD and Mac OS X environments. |
22 | 11 |
|
23 | | -Please note that CMake produces a `CMakeCache.txt` file which should |
24 | | -be deleted to reconfigure a package from scratch. |
| 12 | +### Ubuntu |
25 | 13 |
|
26 | | -#### Compiling for python3 on macOS |
| 14 | +You can easily install **EigenPy** from binairies. |
27 | 15 |
|
28 | | -Make sure you have boost for python3 installed. If you use homebrew, you can install it via `brew install boost-python3`. |
| 16 | +#### Add robotpkg apt repository |
29 | 17 |
|
30 | | -Assuming you have python2 and python3 installed on your system, you can compile for python3 using |
| 18 | +1. Check your distribution codename in a terminal with the following command: |
| 19 | +``` |
| 20 | +$ lsb_release -c |
| 21 | +Codename: xenial |
| 22 | +``` |
| 23 | +2. Add robotpkg as source repository to apt: |
| 24 | +``` |
| 25 | +sudo sh -c "echo 'deb [arch=amd64] http://robotpkg.openrobots.org/packages/debian/pub xenial robotpkg' >> /etc/apt/sources.list.d/robotpkg.list" |
| 26 | +``` |
| 27 | +3. Register the authentication certificate of robotpkg: |
| 28 | +``` |
| 29 | +curl http://robotpkg.openrobots.org/packages/debian/robotpkg.key | sudo apt-key add - |
| 30 | +``` |
| 31 | +4. You need to run at least once apt update to fetch the package descriptions: |
| 32 | +``` |
| 33 | +sudo apt-get update |
| 34 | +``` |
| 35 | +#### Install EigenPy |
| 36 | +5. The installation of **EigenPy** and its dependencies is made through the line: |
31 | 37 |
|
| 38 | +For Python 2.7 |
| 39 | +``` |
| 40 | +sudo apt install robotpkg-py27-eigenpy |
| 41 | +``` |
| 42 | +or for Python 3.{5,6,7} |
32 | 43 | ``` |
33 | | -cmake -DPYTHON_EXECUTABLE=`which python3` .. |
| 44 | +sudo apt install robotpkg-py35-eigenpy |
34 | 45 | ``` |
| 46 | +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). |
35 | 47 |
|
36 | | -In case you get an error as only the libraries for python2 are found, make sure macOS can find the python3 libraries. One way to ensure this is by adding a symbolic link to the python3 libraries like |
| 48 | +### Mac OS X |
37 | 49 |
|
| 50 | +The installation of **EigenPy** on Mac OS X is made via [HomeBrew](https://brew.sh/). |
| 51 | +You just need to register the tap of the sofware repository. |
| 52 | + |
| 53 | +``` |
| 54 | +brew tap gepetto/homebrew-gepetto |
38 | 55 | ``` |
39 | | -ln -s /usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7/lib/libpython3.7.dylib /usr/loca/lib/libpython3.7.dylib |
| 56 | +and then install **EigenPy** with: |
40 | 57 | ``` |
| 58 | +brew install eigenpy |
| 59 | +``` |
| 60 | +for Python 2.7 or: |
| 61 | +``` |
| 62 | +brew install eigenpy-python3 |
| 63 | +``` |
| 64 | +for Python 3 support. |
| 65 | + |
| 66 | +## Credits |
| 67 | + |
| 68 | +The following people have been involved in the development of **EigenPy**: |
41 | 69 |
|
42 | | -where the abolve file source path was determined by looking at the output of `brew ls --verbose python3 | grep libpython3`. |
| 70 | +- [Justin Carpentier](https://jcarpent.github.io) (INRIA): main developer and manager of the project |
| 71 | +- [Nicolas Mansard](http://projects.laas.fr/gepetto/index.php/Members/NicolasMansard) (LAAS-CNRS): initial project instructor |
43 | 72 |
|
44 | | -### Dependencies |
| 73 | +If you have taken part to the development of **EigenPy**, feel free to add your name and contribution here. |
45 | 74 |
|
46 | | -The matrix abstract layer depends on several packages which |
47 | | -have to be available on your machine. |
| 75 | +## Acknowledgments |
48 | 76 |
|
49 | | - - Libraries: |
50 | | - - eigen3 |
51 | | - - System tools: |
52 | | - - CMake (>=2.6) |
53 | | - - pkg-config |
54 | | - - usual compilation tools (GCC/G++, make, etc.) |
55 | | - - Python 2.7 |
56 | | - - Boost python |
| 77 | +The development of **EigenPy** is supported by the [Gepetto team](http://projects.laas.fr/gepetto/) [@LAAS-CNRS](http://www.laas.fr) and the [Willow team](https://www.di.ens.fr/willow/) [@INRIA](http://www.inria.fr). |
0 commit comments