⚠️ Warning:dartpy
is under heavy development. See the open issues ondartpy
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.
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.
$ brew install personalrobotics/tap/dartpy
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 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.
dartpy
is licensed under the BSD-2-Clause license. See LICENSE for more information.
dartpy
is developed by the Personal Robotics Lab in the Robotics
Institute at Carnegie Mellon University by Michael Koval
(@mkoval) and Pras Velagapudi
(@psigen).