The sensors are now updated at the end of the integration steps instead of the beginning, so that the system state is now consistent with sensors data. Moreover, pipeline builder has been reworked more maximum flexibility.
New features:
* [python] Replace 'BaseJiminyController' controller by 'BaseJiminyObserverController' to add dedicated observer support.
* [gym] Add frame stacking pipeline block and wrapper.
Improvements:
* [core] Update sensors data at the end of 'step' for consistency with robot state.
* [gym] Controller/observer blocks must be fully configured at init. Block '_setup' is now called at 'reset'.
* [gym] Take advantage of new dedicated observer.
* [gym] 'get_observation' recursively shadow-copy observation before returning it to avoid altering original data structure.
* [gym] Rework pipeline builder to be more flexible.
Bug fixes:
* [gym] Fix observe/control update period computed at init instead of reset.
* [gym] Update '_action' buffer to match latest 'compute_command' call.
Miscellaneous:
* [core] Add 'PRINT_WARNING' macro, to print debug message when compiling in debug mode only.
* [gym] Rename '*DictRecursive' in '*DictNested' for clarity.