Chain: A basic controller¶
This example demonstrates a simple damping controller for a single chain.
Screenshot¶
Code¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | import numpy as np
class DampingController:
""" Add damping force to the skeleton """
def __init__(self, skel):
self.skel = skel
def compute(self):
damping = -0.01 * self.skel.dq
damping[1::3] *= 0.1
return damping
if __name__ == '__main__':
import pydart2 as pydart
pydart.init(verbose=True)
print('pydart initialization OK')
world = pydart.World(1.0 / 5000.0, './data/skel/chain.skel')
print('pydart create_world OK')
skel = world.skeletons[0]
skel.q = (np.random.rand(skel.ndofs) - 0.5)
print('init pose = %s' % skel.q)
skel.controller = DampingController(skel)
pydart.gui.viewer.launch(world)
|