-
Notifications
You must be signed in to change notification settings - Fork 2.8k
[Newton] Newton CI decoupling from kit #4202
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?
[Newton] Newton CI decoupling from kit #4202
Conversation
Greptile OverviewGreptile SummaryThis PR decouples Newton physics simulation from Kit/Omniverse dependencies, enabling tests to run without the full Isaac Sim application. The changes enable headless CI testing by setting Key Changes:
Issues Found:
Confidence Score: 4/5
Important Files ChangedFile Analysis
Sequence DiagramsequenceDiagram
participant Test as Test Suite
participant Env as Environment
participant SimCtx as SimulationContext
participant Cache as USD StageCache
participant Newton as NewtonManager
Note over Test: Set LAUNCH_OV_APP=0
Test->>Env: Create environment
Env->>SimCtx: Initialize simulation
alt create_stage_in_memory=True
SimCtx->>Cache: create_new_stage_in_memory()
Cache-->>SimCtx: Return in-memory stage
else create_stage_in_memory=False
alt Stage exists in cache
SimCtx->>Cache: GetAllStages()
Cache-->>SimCtx: Return existing stage
else No stage in cache
alt omni.usd available
SimCtx->>SimCtx: import omni.usd
SimCtx->>SimCtx: get_context().get_stage()
alt Stage is None
SimCtx->>Cache: create_new_stage_in_memory()
Cache-->>SimCtx: Return new stage
end
else omni.usd not available
SimCtx->>Cache: create_new_stage_in_memory()
Note over SimCtx,Cache: Duplicate Insert issue
SimCtx->>Cache: Insert(stage)
Cache-->>SimCtx: Return new stage
end
end
end
SimCtx->>Newton: Initialize Newton solver
Newton-->>SimCtx: Solver ready
loop Each simulation step
Test->>Env: step(actions)
Env->>Newton: simulate()
Newton->>Newton: Check convergence (debug mode)
Newton-->>Env: Return observations
Env-->>Test: Return step result
end
Test->>Env: close()
Env->>SimCtx: clear()
SimCtx->>Cache: Erase(stage)
Cache-->>SimCtx: Stage removed
|
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/simulation_context.py, line 191-193 (link)logic: stage is created in memory at line 192, then immediately inserted into cache at line 193, but this insertion happens inside the
exceptblock. However,create_new_stage_in_memory()already inserts the stage into the cache (as shown instage.py:616). This causes a duplicate insertion. -
source/isaaclab_tasks/test/test_solver_convergence.py, line 101 (link)style: debug print left in test code
14 files reviewed, 2 comments
Description
Allows running more of our tests without Kit
Type of change
Checklist
pre-commitchecks with./isaaclab.sh --formatconfig/extension.tomlfileCONTRIBUTORS.mdor my name already exists therenot done this task