• Stars
    star
    163
  • Rank 231,141 (Top 5 %)
  • Language
    C++
  • License
    BSD 2-Clause "Sim...
  • Created over 10 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Efficient bindings between Numpy and Eigen using Boost.Python

EigenPy โ€” Versatile and efficient Python bindings between Numpy and Eigen

License Build Status Conda Downloads Conda Version PyPI version Code style: black

EigenPy is an open source framework which allows to bind the famous Eigen C++ library in Python via Boost.Python.

EigenPy provides:

  • full memory sharing between Numpy and Eigen avoiding memory allocation
  • full support Eigen::Ref avoiding memory allocation
  • full support of the Eigen::Tensor module
  • exposition of the Geometry module of Eigen for easy code prototyping
  • standard matrix decomposion routines of Eigen such as the Cholesky decomposition, SVD decomposition, QR decomposition, and etc.
  • full support of SWIG objects
  • full support of runtime declaration of Numpy scalar types
  • extended API to expose std::vector types
  • full support of vectorization between C++ and Python (all the hold objects are properly aligned in memory)

Setup

The installation of EigenPy on your computer is made easy for Linux/BSD, Mac OS X and Windows 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

  1. 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"
  1. Register the authentication certificate of robotpkg:
curl http://robotpkg.openrobots.org/packages/debian/robotpkg.key | sudo apt-key add -
  1. You need to run at least once apt update to fetch the package descriptions:
sudo apt-get update

Install EigenPy

  1. The installation of EigenPy and its dependencies is made through the line:
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

Credits

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

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.

More Repositories

1

pinocchio

A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
C++
1,661
star
2

tsid

Efficient Task Space Inverse Dynamics (TSID) based on Pinocchio
C++
187
star
3

eiquadprog

C++ reimplementation of eiquadprog
C++
27
star
4

dynamic-graph

Efficient data-flow library for robotics.
C++
25
star
5

soth

SOT Hierarchical solver
C++
19
star
6

sot-core

Hierarchical task solver plug-in for dynamic-graph
C++
18
star
7

pinocchio-minimal

Minimal project using Pinocchio as Rigid Body Dynamics library
C++
15
star
8

pinocchio-gepetto-viewer

C++
12
star
9

parametric-curves

Library for creating curves. Forked from https://github.com/stonneau/spline
C++
11
star
10

sot-torque-control

Collection of dynamic-graph entities aimed at implementing torque control on different robots.
C++
9
star
11

dynamic-graph-python

Python bindings for dynamic-graph
C++
8
star
12

state-observation

Describes interfaces for state observers, and implements some oberservers (including linear and extended Kalman filters)
C++
5
star
13

sot-dynamic-pinocchio

Encapsulate Pinocchio in SoT
C++
5
star
14

dynamic-graph-tutorial

Tutorial for the dynamic-graph
C++
5
star
15

pinocchio-tutorials

DEPRECATED Tutorials for Pinocchio stack-of-tasks/pinocchio
Python
5
star
16

sot-pattern-generator

jrl-walkgen bindings for dynamic-graph
C++
4
star
17

ros2_hardware_interface_odri

ros2_control System Interface for the Open Dynamic Robot Initiative Master Board
C++
4
star
18

sot-dynamic

jrl-dynamics bindings for dynamic-graph
C++
4
star
19

eigenpy-ros-release

Release repository for https://github.com/stack-of-tasks/eigenpy.git
3
star
20

roscontrol_sot

Wrapping the Stack-of-Stacks in roscontrol
C++
3
star
21

talos-torque-control

Specific torque control part of sot-torque-control for Talos
Python
3
star
22

jrl-doc

Meta-documentation package for the JRL software.
3
star
23

pinocchio-benchmarks

Benchmarks of the Pinocchio library
C++
3
star
24

talos_integration_tests

A repository to perform integration tests
Python
2
star
25

sot-hrp2-hrpsys

C++
2
star
26

redundant_manipulator_control

ROS bindings for the Stack of Tasks
Shell
2
star
27

ddp-actuator-solver

Differential Dynamic Programming Solver
C++
2
star
28

sot-hrp2

C++
2
star
29

dynamic_graph_bridge

Dynamic graph bindings for ROS
C++
2
star
30

sot-motion-planner

C++
2
star
31

stack-of-tasks.github.com

Website
HTML
2
star
32

dynamic-graph-corba

Corba server implementing an entity with python interpreter embedded.
C++
1
star
33

sot-dyninv

Python
1
star
34

dynamic_graph_actionlib

Python
1
star
35

redundant_manipulator_control_tutorial

Tutorial for the redundant_manipulator_control_tutorial ROS stack.
Python
1
star
36

sot_pr2

dynamic-graph controller for PR2 robot
C++
1
star
37

sot-hrprtc-hrp2

RTC component for the Stack of Tasks
C++
1
star
38

talos-metapkg-ros-control-sot

Metapkg to run the Stack-of-Tasks on TALOS with ros control
Python
1
star
39

sot-doc

Doxygen based documentation for the stack-of-tasks organization
Shell
1
star