Skip to content

[core/python] Improve usability and reliability.

Compare
Choose a tag to compare
@duburcqa duburcqa released this 19 Jan 21:44
· 141 commits to master since this release
ce1c374

This release fixes the long lasting issue of robot getting deleted without letting know the others relying on it, causing erratic segfaults hard to diagnose. It also adds several mechanisms to ensure the consistency of the data, and proper update of low-level pinocchio::Data, to avoid having to manually update anything that the user may expect already having been computing. It comes at an addition computational burden, but it is the price to pay to avoid nasty mistakes.

New features

  • [core/python] Enable to define custom constraints directly in Python.

Improvements

  • [core] Use std::weak_ptr instead of raw pointer to avoid segfault if object gets destroyed in the meantime.
  • [core] Make sure controller's robot and system's robot are consistent when add system to engine.
  • [core] Refactor constraints to improve efficiency and make it more intuitive to define and use.
  • [core] Fix joint acceleration not properly updated after calling 'computeAcceleration' method of Engine.
  • [core/python] Add 'BaseControllerFunctor', allowing overloading of 'reset' method in Python.
  • [python/simulator] Avoid attribute lookup infinite loop.
  • [python/simulator] Ensure consistent model between robot model and log data before plotting them.
  • [gym/common/env] Set the controller before resetting it and getting sensors data since the robot may no longer exists.

Miscellaneous

  • [core/python] Rename 'AbstractControllerWrapper' in 'BaseController' to clarify it is not abstract but the base controller class.
  • [python/controller] Inherit from 'BaseController' instead of 'BaseControllerFunctor' since callbacks are handled manually.