Adds live plots to managers
Description
This adds a UI interface to the Managers in the ManagerBasedEnv and The MangerBasedRLEnv. Additions include:
- UI widgets for
LiveLinePlotandImagePlot -
ManagerLiveVisualizer/Cfg: Given aManagerBase(i.e. action_manager, observation_manager, etc) and a config file this class creates the the interface between managers and the UI. -
EnvLiveVisualizer: A 'manager' ofManagerLiveVisualizer. This is added to theManagerBasedEnvbut is only called during the initialization of the managers inload_managers - Adds
get_active_iterable_termsimplementation methods to ActionManager, ObservationManager, CommandsManager, CurriculumManager, RewardManager, and TerminationManager. This method exports the active term data and labels for each manager and is called by ManagerLiveVisualizer. - Additions to
BaseEnvWindowandRLEnvWindowto registerManagerLiveVisualizerUI interfaces for the chosen managers.
Screenshots
Screencast from 09-06-2024 01:20:18 PM.webm
Implementation
Type of change
- New feature (non-breaking change which adds functionality)
Checklist
- [x] I have run the
pre-commitchecks with./isaaclab.sh --format - [x] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] I have updated the changelog and the corresponding version in the extension's
config/extension.tomlfile - [x] I have added my name to the
CONTRIBUTORS.mdor my name already exists there
Forgot to say, thanks for putting this up and all the reworking on the initial design! This will be super useful for debugging :+1:
@renezurbruegg, as the original author, some feedback from you would be helpful
Nice changes and great work @jtigue-bdai, thanks a lot. I left some high level inputs / discussion about the changes.
Love the Image Visualizer, really nice to have this!
Nice changes and great work @jtigue-bdai, thanks a lot. I left some high level inputs / discussion about the changes.
Love the Image Visualizer, really nice to have this!
@renezurbruegg I am not seeing your comments.
@jsmith-bdai I ran the default anymal training and had to make some bugfixes, please have a look. Afterwards, we should be able to merge it
@renezurbruegg ping for visibility, let us know if you have any more comments
I gave it a quick glance, here some small changes, will comment further under relevant discussions
@pascal-roth Looks good. Thanks
@renezurbruegg and @jsmith-bdai I tried to visualize a depth image but there was no output on the console. Did any of you every try to do that?
@pascal-roth Yeah I had it working with depth images. But it was before we adjusted the shape checks and I was using an observation that I removed on commit after the more comprehensive image observation was added recently.
hm, any idea why it should be broken now? Still just passing an image to the function
Looks good to me, maybe we should rename env_idx to env_ids for consistency?
Looks good to me, maybe we should rename
env_idxtoenv_idsfor consistency?
Difference to the standard notation is that env_idx is typically just a single env id and env_ids a list/ sequence of ids. Thus, the difference would make sense to me. If you don't like it, I can rename it.
@Dhoeller19 do you think we can introduce a set of tests for the new class, I think we still have an issue in the dimension check.