Part of #121. See IDEA.md stage 4.
Goal
Replace MJCFBuilder.compose_multi_robot_scene and _prefix_robot_names / _namespace_robot_default_classes / _collect_existing_class_names with SpecBuilder.build(world) + per-robot attach().
Current dead code
compose_multi_robot_scene is defined in mjcf_builder.py but never called from source. _prefix_robot_names is called during per-robot inject - also redundant once attach() lands.
Acceptance
- Multi-robot scenes compile identically under both flags.
compose_multi_robot_scene, _prefix_robot_names, _namespace_robot_default_classes, _collect_existing_class_names deleted (or flagged for deletion in Stage 7).
- Integration test: 2 robots from different URDFs with different asset dirs.
- Namespace convention (
{robot_name}_ prefix) verified against downstream code that reads joint/actuator names.
Part of #121. See IDEA.md stage 4.
Goal
Replace
MJCFBuilder.compose_multi_robot_sceneand_prefix_robot_names/_namespace_robot_default_classes/_collect_existing_class_nameswithSpecBuilder.build(world)+ per-robotattach().Current dead code
compose_multi_robot_sceneis defined inmjcf_builder.pybut never called from source._prefix_robot_namesis called during per-robot inject - also redundant onceattach()lands.Acceptance
compose_multi_robot_scene,_prefix_robot_names,_namespace_robot_default_classes,_collect_existing_class_namesdeleted (or flagged for deletion in Stage 7).{robot_name}_prefix) verified against downstream code that reads joint/actuator names.