-
Isaac Sim: 4.2.0
-
OS: Ubuntu 22.04
-
Model: NVIDIA GeForce RTX 4090
Topic Description
Multi-Robot Humanoid Spawn
Detailed Description
Hi everyone, I hope this is the right place to ask.
I’m working on a 3v3 simulation with Booster K1 humanoid robots, and I’m facing an issue where spawning multiple robots causes them to lose articulation stability. The single-robot demo works perfectly, but the moment I spawn a second robot using add_reference_to_stage(), both robots collapse into a limp, ragdoll-like state with no apparent joint stiffness.
What I’m trying to achieve:
-
Spawn 2 K1 humanoid robots at different positions
-
Have each robot maintain articulation stability
-
Later enable independent ROS 2 control via namespaced topics (
/robot1/...,/robot2/...)
(Actually I’m not sure. It seems to be directly connected to FastDDS, not ROS topics, and I’m not sure what the communication is..)
What actually happens:
-
Both robots spawn with correct visual appearance and positioning
-
As soon as the simulation runs, both robots go completely limp (zero joint resistance, ragdoll behavior)
-
No Isaac Sim errors during spawn
-
The same USD and setup work flawlessly with a single robot
Steps to Reproduce
-
Load the provided USD files into Isaac Sim
-
Spawn first robot:
add_reference_to_stage(usd_path="k1.usd", prim_path="/World/robot1")
- Spawn second robot:
add_reference_to_stage(usd_path="k1.usd", prim_path="/World/robot2")
Expected: Both robots stand and maintain posture
Actual: Both robots immediately collapse like ragdolls
Error Messages
No explicit errors in the Isaac Sim console. Only these warnings (which also appear in the working single-robot case):
Screenshots or Videos
-
A single robot standing normally
-
Two robots both collapsed
Additional Information – What I’ve Tried
-
Physics parameters: Checked articulation root, joint stiffness, damping values – all match the working single-robot setup
-
Prim initialization timing: Added explicit waits with
simulation_app.update()loops to ensure prims fully initialize before physics starts -
Different spawn methods: Tried both referencing and direct USD loading – same result
-
Namespace isolation: Verified prim paths are unique (
/World/robot1,/World/robot2) -
Asset validation: Single USD works alone; the issue only appears with 2+ instances
Questions for the Isaac Sim Community
I know this setup eventually involves ROS 2, but in this minimal reproduction no ROS nodes are running; it’s purely Isaac Sim and USD/physics. I’d really appreciate insights on:
-
Multi-articulated robot spawning: Has anyone successfully spawned multiple complex humanoid/articulated robots (similar to T1, H1, Atlas, etc.) in the same Isaac Sim scene using repeated references to the same USD?
-
USD instance physics: When calling
add_reference_to_stage()multiple times with the same USD, are there known physics or articulation-root conflicts I should be aware of (e.g., shared names, paths, or internal identifiers)? -
Physics solver scaling: Do physics solver parameters (iteration counts, substeps) typically need adjustment when simulating multiple humanoid robots in the same scene?
The breakdown occurs before any external commands are applied, so I believe the root cause is in how I’m instantiating and configuring the humanoid USDs in Isaac Sim. I’m trying to understand whether this is:
I’m sure there’s something I missed and misread because I’m not good at. Or maybe I’m not finding a library for multi-robot that’s not this way.. I’d really appreciate any help..
Thank you very much for taking the time to read this and for any insights you can share.
USD Files:

