jslee02 / pydart

An open source python binding of DART

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PyDart

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

Requirements

sudo aptitude install swig
sudo aptitude install python-numpy python-scipy 
sudo apt-get install python-pip
sudo pip install PyOpenGL PyOpenGL_accelerate

Installation

  • Checkout the project
git clone https://github.com/sehoonha/pydart.git
cd pydart
  • Setup the python package for development
sudo python setup.py develop
  • Compile the API
mkdir build
cd build
cmake ..
make
make install
  • 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

About

An open source python binding of DART

License:Other


Languages

Language:C 49.0%Language:Python 36.0%Language:C++ 10.9%Language:CMake 4.1%