Skip to content

hpgit/dart-ltspd

 
 

Repository files navigation

Dart with Linear Time Stable PD

Adopt Linear Time Stable PD (SCA2020) to DART.

Usage

If you don't need to get actual torques,

skeleton->setSPDTarget(target_pose, k_p, k_d);
world->step();

Or, if you need to get actual torques,

Eigen::VectorXd torques = skeleton->getSPDForces(target_pose, k_p, k_d, world->getConstraintSolver());
// do someting with torques
...

skeleton->setForces(torques);
world->step();

Notes

  • Recommended to call world->step() right after using setSPDTarget method. ( after using setSPDTarget method, some functions like mass matrix, coriolis force don't work properly. )
  • Don't use setForces after using setSPDTarget in one time step.
  • Performance increased up to 40% compared to the conventional SPD with same timestep.
  • You can lower the time step to 1/30 ~ 1/60s. (1/100s ~ 1/300s recommended.)

DART: Dynamic Animation and Robotics Toolkit

Resources

Visit the DART website for more information

About

Dynamic Animation and Robotics Toolkit

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 98.1%
  • CMake 1.2%
  • Python 0.5%
  • Shell 0.1%
  • C 0.1%
  • TeX 0.0%