Skip to content

Commit

Permalink
readme: update content
Browse files Browse the repository at this point in the history
  • Loading branch information
jcarpent committed Oct 29, 2018
1 parent 10da260 commit 53c3c6a
Showing 1 changed file with 59 additions and 38 deletions.
97 changes: 59 additions & 38 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,56 +1,77 @@
eigenpy
===========
EigenPy
======

Setup
-----
**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).
**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.

Before compiling this package, make sure to have initialized all git
submodules of this repo. To initialize the submodules when cloning the
repo, use:
## Setup

```bash
git clone --recursive <git_url>
```

To compile this package, it is recommended to create a separate build
directory:

mkdir _build
cd _build
cmake [OPTIONS] ..
make install
The installation of **EigenPy** on your computer is made easy for Linux/BSD and Mac OS X environments.

Please note that CMake produces a `CMakeCache.txt` file which should
be deleted to reconfigure a package from scratch.
### Ubuntu

#### Compiling for python3 on macOS
You can easily install **EigenPy** from binairies.

Make sure you have boost for python3 installed. If you use homebrew, you can install it via `brew install boost-python3`.
#### Add robotpkg apt repository

Assuming you have python2 and python3 installed on your system, you can compile for python3 using
1. Check your distribution codename in a terminal with the following command:
```
$ lsb_release -c
Codename: xenial
```
2. Add robotpkg as source repository to apt:
```
sudo sh -c "echo 'deb [arch=amd64] http://robotpkg.openrobots.org/packages/debian/pub xenial robotpkg' >> /etc/apt/sources.list.d/robotpkg.list"
```
3. Register the authentication certificate of robotpkg:
```
curl http://robotpkg.openrobots.org/packages/debian/robotpkg.key | sudo apt-key add -
```
4. You need to run at least once apt update to fetch the package descriptions:
```
sudo apt-get update
```
#### Install EigenPy
5. 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}
```
cmake -DPYTHON_EXECUTABLE=`which python3` ..
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).

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
### Mac OS X

The installation of **EigenPy** on Mac OS X is made via [HomeBrew](https://brew.sh/).
You just need to register the tap of the sofware repository.

```
brew tap gepetto/homebrew-gepetto
```
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
and then install **EigenPy** with:
```
brew install eigenpy
```
for Python 2.7 or:
```
brew install eigenpy-python3
```
for Python 3 support.

## Credits

The following people have been involved in the development of **EigenPy**:

where the abolve file source path was determined by looking at the output of `brew ls --verbose python3 | grep libpython3`.
- [Justin Carpentier](https://jcarpent.github.io) (INRIA): main developer and manager of the project
- [Nicolas Mansard](http://projects.laas.fr/gepetto/index.php/Members/NicolasMansard) (LAAS-CNRS): initial project instructor

### Dependencies
If you have taken part to the development of **EigenPy**, feel free to add your name and contribution here.

The matrix abstract layer depends on several packages which
have to be available on your machine.
## Acknowledgments

- Libraries:
- eigen3
- System tools:
- CMake (>=2.6)
- pkg-config
- usual compilation tools (GCC/G++, make, etc.)
- Python 2.7
- Boost python
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 comments on commit 53c3c6a

Please sign in to comment.