-
Notifications
You must be signed in to change notification settings - Fork 2.8k
[Newton] Decouples OV to enable OV-optional code paths #4165
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev/newton
Are you sure you want to change the base?
Conversation
Signed-off-by: matthewtrepte <[email protected]>
Signed-off-by: matthewtrepte <[email protected]>
…s default cfgs if no visualizers are specified
Greptile OverviewGreptile SummaryThis PR decouples Isaac Lab's core code paths from Omniverse (OV) modules to enable training and non-OV visualization without launching the OV app. When using Newton and/or Rerun visualizers (or no visualizers), the OV app will not run. Key Changes:
Breaking Changes:
Confidence Score: 3/5
Important Files ChangedFile Analysis
Sequence DiagramsequenceDiagram
participant User
participant AppLauncher
participant SettingsManager
participant SimulationApp
participant SimulationContext
participant NewtonManager
User->>AppLauncher: Initialize with args
AppLauncher->>AppLauncher: _check_if_omniverse_required()
alt Omniverse Required (cameras, livestream, or OV visualizer)
AppLauncher->>SimulationApp: Create SimulationApp
AppLauncher->>SettingsManager: initialize_carb_settings()
SettingsManager->>SettingsManager: Use carb.settings
else Standalone Mode (Newton/Rerun only)
AppLauncher->>SettingsManager: _store_settings_standalone()
SettingsManager->>SettingsManager: Use Python dict
end
User->>SimulationContext: Create SimulationContext
SimulationContext->>SettingsManager: Get/Set settings
SimulationContext->>NewtonManager: set_simulation_dt()
SimulationContext->>NewtonManager: set_solver_settings()
User->>SimulationContext: reset()
SimulationContext->>NewtonManager: start_simulation()
SimulationContext->>NewtonManager: initialize_solver()
loop Simulation Loop
User->>SimulationContext: step()
SimulationContext->>NewtonManager: step()
end
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Additional Comments (2)
-
source/isaaclab/isaaclab/sim/utils/stage.py, line 206 (link)logic:
SimulationContext.instance()can returnNoneif no instance exists yet. This will cause anAttributeErrorwhen accessing.stage. -
source/isaaclab/isaaclab/sim/simulation_context.py, line 312-316 (link)logic:
newton_paramsused at line 362 but may be undefined ifsim_paramsis None or doesn't contain"newton_cfg". Initialize with a default value.
52 files reviewed, 2 comments
Description
Decouples core code paths from OV modules such that we can run training/non-OV visualization without launching the OV app. If visualizer is selected as newton and/or rerun, or no visualizers are specified, the OV app will not run and no OV modules will be available. To enable OV paths, --visualizers omniverse must be set.
Main changes:
Limitations:
Type of change
Checklist
pre-commitchecks with./isaaclab.sh --formatconfig/extension.tomlfileCONTRIBUTORS.mdor my name already exists there