Repository navigation
Conversation
|
There was a problem hiding this comment.
Isaac Lab Review Bot
The public custom-mesh spawner and Newton conveyor task are coherently structured, but three scoped fixes are needed before merge: limit the new displayColor behavior so existing mesh spawners do not change rendering semantics, preserve supported environment constructor keywords such as render_mode, and apply the repository-mandated copyright header to the new task files.
- Design and architecture: The separation between procedural geometry, the Warp force driver, environment configuration, and the reusable
MeshCustomCfgspawner is sound. However, renderer-independent color authoring was added to the shared mesh helper, unintentionally extending the behavior beyond custom meshes and creating inconsistent color/material handling for existing spawners. - API:
MeshCustomCfgandspawn_mesh_customare consistently exported and documented through the public stubs and changelog. The task environment constructor currently discards all Gym-provided keyword arguments, narrowing the baseManagerBasedRLEnvconstructor contract and breaking paths that rely onrender_mode; supported arguments should be forwarded. - Implementation: The custom-mesh validation, collision configuration, racetrack generation, and force-driver organization are internally coherent. Required corrections are to scope
displayColorauthoring appropriately, retain the kitless warning when material properties remain unapplied, and update the new files to the required2022-2026copyright header.
Minor fixes needed. Posted 3 actionable findings inline.
Automated review; human maintainers own approval decisions.
|
@greptileai check again |
6efde78 to
66de12d
Compare
|
run-ci |
| def reset(self, env_ids: Sequence[int] | torch.Tensor) -> None: | ||
| """Restore reset-recipe slot identities for selected environments.""" | ||
| self.slot_ids[env_ids] = torch.arange(CUBE_COUNT, device=self.slot_ids.device) |
There was a problem hiding this comment.
Parcel counters survive batch resets
When a warehouse environment resets for a new 24-parcel batch, this method restores its four slot IDs but leaves transfer_counts and assignment_counts from the previous batch. The new batch therefore inherits old transfer metrics, and those old assignment counts change which arriving parcels the dispatcher prioritizes. Clear both counters for the selected environments when resetting the slots.
| def reset(self, env_ids: Sequence[int] | torch.Tensor) -> None: | |
| """Restore reset-recipe slot identities for selected environments.""" | |
| self.slot_ids[env_ids] = torch.arange(CUBE_COUNT, device=self.slot_ids.device) | |
| def reset(self, env_ids: Sequence[int] | torch.Tensor) -> None: | |
| """Restore slot identities and clear batch counters for selected environments.""" | |
| self.slot_ids[env_ids] = torch.arange(CUBE_COUNT, device=self.slot_ids.device) | |
| self.assignment_counts[env_ids] = 0 | |
| self.assignment_counts[env_ids, :CUBE_COUNT] = 1 | |
| self.transfer_counts[env_ids] = 0 |
…ank/conveyor-physx-lean-20261025
|
run-ci |
Integrate upstream main e907f82 to keep this branch current while preserving its feature scope.
Use the clone configuration owner for existing conveyor namespace defaults. This preserves the public values while satisfying the current clone-ownership check across the integrated task stack. Recorded upstream main: e907f82
Conveyor integration draft
Do not merge this PR. Review the component PRs individually; PhysX is an optional final layer.
619e4d24e125b702f94a30748ff9bf90dbc2fbe9220ded23Integration:
ef7889e0f737. Base:259e1a8cf79d. #8326 is superseded: both backends use the existing in-memory mesh spawner. No new mesh API or terrain importer is needed.Validation
Warehouse policy limitation: Warehouse checkpoint model_1100: paired corrected historical/new scenes each completed zero transfers in two environments over 2400 steps (seed 41), with zero failures/non-finite observations; sorting capability remains unvalidated.
Refresh with:
Add
--checkpoint /path/to/model.ptfor bounded racetrack evaluation. Refresh fetches current main and exact component heads, validates a temporary checkout and stops on merge/test failure.