Skip to content

[misc] Minor code quality improvements.

Compare
Choose a tag to compare
@duburcqa duburcqa released this 18 Feb 17:44
· 134 commits to master since this release

This release brings minor performance improvement. It is mainly intended to improvement overall code quality and consistency with standard naming conventions (essentially Mujoco terminology). A convenience tool to interpolate trajectories in Lie group space has also been added.

New features

  • [core|python/viewer] Provide generic interpolation method for configuration evolution over time. Use it in Python viewer.

Improvements

  • [core] Compute subtree coms by default.
  • [core] Do not compute 'oMf' for 'JOINT' and 'BODY' frames but rather copy data from 'oMi' and 'oMf'.
  • [core] Improvement breakpoint management to avoid skipping controller/sensor updates.
  • [core] Return static variables for Robot 'getControlLimit' and 'getArmatures' to avoid memory allocations.
  • [core] Set 'command' and 'u_custom' to zero automatically before calling callbacks.
  • [core] Improve vector 'clamp' utility to avoid memory allocation.
  • [core/python] Make sure registered variables vector is 1D.
  • [core|python] Add option to monitor motor efforts and plot them by default instead of command.
  • [python/robot] Enable setting options only partially.
  • [python/dynamics] Add optional flag to update collisions. Fix com jacobian not computed even if requested.
  • [python/simulator] Do not forbid to render system at if no simulation is running.
  • [gym/common] Ensure float64 action buffer for compatibility with register_variable telemetry.
  • [gym/common/envs] Increment 'num_steps' only at the end of successful step, not right before integration.
  • [gym/common/envs] Set robot in neutral configuration at init.

Bug fixes

  • [core] Fix edge case in controller breakpoints management.
  • [gym/common/envs] Fix edge case for robot without sensors.
  • [gym/common/envs] Do not enforce position/velocity/effort bounds at _setup to avoid inconsistent observation/action spaces bounds.

Miscellaneous

  • [misc] Move to C++17 for dependencies.
  • [core] Rename 'rotorInertia' in 'armature' to be consistent with mujoco and clearer that it is joint side.
  • [core] Rename 'EffortLimit' in 'ControlLimit' to avoid redundancy with pinocchio::Data and explicit it is motor-side.
  • [core] Rename 'ControlLimit' in 'CommandLimit' for consistency.
  • [core] Rename 'u_command' in 'command' to clarify it does not have to be an effort.
  • [core] Add dedicated 'u_custom' field for controller's internal dynamics.
  • [core] Replace 'u' with more specific variable name when possible.
  • [core] Split evaluation of custom internal dynamics from position/velocity bounds and flexibility dynamics.