An open source python binding of DART
C Python C++ CMake
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.md

PyDart

  • News! (06/AUG/2016)

====== PyDART is an open source python binding of DART(5.0), an open source physics simulator. All APIs are designed to provide a concise and powerful control on DART physics worlds. Further, a user can write simulations with a numerous python scientific libraries, such as NumPy(linear algebra), SciPy(optimization), [scikit-learn] (http://scikit-learn.org/stable/) (machine learning), PyBrain(machine learning), and so on.

Requirements

sudo apt-get install swig python-pip libatlas-base-dev gfortran 
sudo pip install numpy scipy PyOpenGL PyOpenGL_accelerate

Installation

  • Checkout the project
git clone https://github.com/sehoonha/pydart.git
cd pydart
  • Compile the API
mkdir build
cd build
cmake ..
make
make install
  • Setup the python package for development
cd ..
sudo python setup.py develop
  • Run the first application
python apps/helloPyDART/main.py

Screenshots

Code snippets

  • Modifying a skeleton pose using dof names (q is still a numerical vector)
q = skel.q
q["j_pelvis_rot_y"] = -0.2
q["j_thigh_left_z", "j_shin_left", "j_heel_left_1"] = 0.15, -0.4, 0.25
q["j_thigh_right_z", "j_shin_right", "j_heel_right_1"] = 0.15, -0.4, 0.25
q["j_abdomen_2"] = 0.0
skel.set_positions(q)
  • Add damping forces to the rigid chain
class DampingController:
    """ Add damping force to the skeleton """
    def __init__(self, skel):
        self.skel = skel

    def compute(self):
        damping = -0.01 * self.skel.qdot
        for i in range(1, self.skel.ndofs, 3):
            damping[i] *= 0.1
        return damping