Skip to content

🎯 🐍 Python bindings for the Dynamic Animation and Robotics Toolkit

License

Notifications You must be signed in to change notification settings

personalrobotics/dartpy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3535357 · Oct 15, 2018
Jul 18, 2018
Oct 15, 2018
Mar 23, 2016
Jul 21, 2018
May 23, 2018
Feb 18, 2016
May 24, 2018
Feb 2, 2016
Jun 9, 2018
Jun 1, 2018
Jul 18, 2018
May 24, 2018
Oct 15, 2018
May 31, 2018
Oct 15, 2018
Apr 9, 2016
May 25, 2015
Oct 15, 2018

Repository files navigation

dartpy Build Status

⚠️ Warning: dartpy is under heavy development. See the open issues on dartpy and Chimera for insight into the current state of the project. Please report any issues you encounter on the appropriate repository. This repo will be mreged into the main repository of DART once becomes stable.

Python bindings for DART, the Dynamic Animation and Robotics Toolkit.

Installation

On Ubuntu 14.04 / 16.04 / 18.04

You can install dartpy using apt-get as:

14.04

$ sudo add-apt-repository ppa:libccd-debs/ppa
$ sudo add-apt-repository ppa:fcl-debs/ppa
$ sudo add-apt-repository ppa:dartsim/ppa
$ sudo add-apt-repository ppa:personalrobotics/ppa
$ sudo apt-get update

$ sudo apt-get install python-dartpy  # for Python 2
$ sudo apt-get install python3-dartpy # for Python 3

16.04 / 18.04

$ sudo add-apt-repository ppa:dartsim/ppa
$ sudo add-apt-repository ppa:personalrobotics/ppa
$ sudo apt-get update

$ sudo apt-get install python-dartpy  # for Python 2
$ sudo apt-get install python3-dartpy # for Python 3

All set! Import dartpy in Python and enjoy! Please see Usage section for more information.

If you want to build dartpy from source, please see this wiki page.

On macOS

$ brew install personalrobotics/tap/dartpy

Usage

Once dartpy is installed, you should be able to open a Python terminal and import dartpy. Since dartpy is mostly auto-generated using Chimera, the DART Python API mostly matches the DART C++ API.

There are a few exceptions:

Template Functions

Template functions take the template parameters as regular arguments, e.g. the C++ code:

auto joint = bodynode.moveTo<dart::dynamics::FreeJoint>(newParent);

becomes the Python code

joint = bodynode.moveTo(dartpy.dynamics.FreeJoint, newParent)

Due to limitations of C++, this functionality requires the template arguments to be registered with dartpy. Follow the instructions to register your custom types for use as template arguments.

License

dartpy is licensed under the BSD-2-Clause license. See LICENSE for more information.

Authors

dartpy is developed by the Personal Robotics Lab in the Robotics Institute at Carnegie Mellon University by Michael Koval (@mkoval) and Pras Velagapudi (@psigen).