[gym] Pipeline control design
This release introduces a new pipeline control architecture design for Gym environments. A controller is an independent block, that can be connected directly to an environment or another controller. In addition, a new Gym toolbox sub-module has been created, which is intended to gather tools for learning based on Pytorch.
Bug fixes:
- [core] Fix edge case where the controller could be updated twise successively.
- [core/python] Fix controller functor q/v type to avoid creating Eigen::Ref for nothing.
- [core|python] Do not overwrite meshScale for convex, just ignore it when loading in viewer.
- [python/robot] Fix 'gcd' for float.
- [python/viewer] Properly initialize default backend viewer.
- [python/meshcat] Fix client opening.
Improvements:
- [core] Use collisionResults instead of distanceResults to compute collisions for efficiency. Use 5 contact points by default.
- [core] More robust normal and penetration depth handling for collisions.
- [python] Various minor style improvements.
- [python/meshcat] Enable specifying custom material type when load geometry.
- [python/meshcat] Enable to visualize FCL BVHModelOBBRSS meshes.
- [python/meshcat] Use group to enable/disable 'visible' property and to delete scene.
- [python|gym] Add new learning toolbox module.
- [gym] Add global option to enable/disable obs/action finite bounds.
- [gym] Add new 'BaseController' base controller and 'ControlledJiminyEnv' [env + controller] wrapper.
- [gym] Add 'PDController' block and use it in zoo envs.
Miscellaneous:
- [misc] Add copyright Pinocchio when necessary.
- [misc] Do not start URDF with comments since it is not properly supported.
- [misc] Cleanup unit test cmake config.
- [misc] Add support of ASCII art diagram in docs.
- [misc] More robust and versatile cmake pip install and wheel generation helpers.
- [misc] Improve CI scripts and remove warnings during build docs.
- [python|gym] Use Python namespace to enable installing components individually.
- [gym] Add 'controller_dt' attribute and 'compute_command' method. Rename '_setup_environment' in '_setup'.
- [gym] Use np.float32 for obs/action spaces.
- [gym] Update docs.