Isaac SDK Multirobot Application using Isaac Sim 2021.2.1V

Hi
I use Isaac SDK version 2021.2.1 and connected to Isaac SIM 2021(built on Omniverse) via Robot Engine Bridge(REB).
With this setup, I could control single Robot in SIM properly using Isaac SDK application.
Now I am looking to control Multi Robots in SIM (built in Omniverse) using Isaac SDK app.
There are examples for multi Robots with Isaac 2020 and SIM built on Unity3D using medium_warehouse USD environment ((IsaacSim Unity3D — ISAAC 2020.1 documentation). And with ROS and SIM 2022, I could see examples for Multi robots.
But there is no example or documentation on Multi robots using Isaac SDK 2021 with SIM 2021 on Omniverse.
Could you please let me know, is it possible to control Multi Robots with Isaac SDK and SIM built on Omniverse?

1 Like

Hi @AkshayKamthe It should be possible to control multiple robots if you have the channels/components set correctly. But we do hot have any examples on how to do this

Hi
@Hammad_M Thanks for guidance.
I take reference of the Multi-Robot Simulation example from Document IsaacSim Unity3D — ISAAC 2020.1 documentation
As per this document referring isaac sim side robot engine bridge.–>isaacsim.app.json file.
Check with 2 different way.

case 1: Keep same interface of isaacsim.app.json
SDK side referring
Carter 1 navigation:
bazel run //apps/navsim/multirobot:navsim_navigate – --more apps/navsim/multirobot/configs/navsim_navigate_00.json,apps/assets/maps/virtual_test_warehouse_1.json,packages/navsim/robots/carter.json&
Carter 2 navigation:
bazel run //apps/navsim/multirobot:navsim_navigate – --more apps/navsim/multirobot/configs/navsim_navigate_01.json,apps/assets/maps/virtual_test_warehouse_1.json,packages/navsim/robots/carter.json&

If we keep same interface then both carter from sim side move same direction, and facing issue with second command not able to make connection with sim side showing Failed to connect to remote.

Case 2 : Changes in isaacsim.app.json file add another interface for second carter
This approach not able to connect sim and sdk application showing error like segmentation fault or isaac sdk engine error 2022-07-12 04:37:05 [646,955ms] [Error] [omni.isaac.robot_engine_bridge.plugin] Application Was Not Created Successfully

case 1 :isaacsim.app.json file
{
“name”: “isaacsim”,
“modules”: [“engine_tcp_udp”],
“graph”: {
“nodes”: [
{
“name”: “interface”,
“components”: [
{
“name”: “ledger”,
“type”: “isaac::alice::MessageLedger”
},
{
“name”: “input”,
“type”: “isaac::alice::TcpSubscriber”
},
{
“name”: “output”,
“type”: “isaac::alice::TcpPublisher”
},
{
“name”: “time_sync”,
“type”: “isaac::alice::TimeSynchronizer”
}
]
}
],
“edges”:
},
“config”: {
“interface”: {
“input”: {
“port”: 55001,
“host”: “localhost”
},
“output”: {
“port”: 55000
},
}
}
}

Case 2 modified isaacsim.app.json file

{
“name”: “isaacsim”,
“modules”: [“engine_tcp_udp”],
“graph”: {
“nodes”: [
{
“name”: “interface”,
“components”: [
{
“name”: “ledger”,
“type”: “isaac::alice::MessageLedger”
},
{
“name”: “input”,
“type”: “isaac::alice::TcpSubscriber”
},
{
“name”: “output”,
“type”: “isaac::alice::TcpPublisher”
},

    ]
  },
{
    "name": "Carter_REB",
    "components": [
      {
        "name": "ledger",
        "type": "isaac::alice::MessageLedger"
      },
      {
        "name": "output",
        "type": "isaac::alice::TcpPublisher"
      },
      {
        "name": "input",
        "type": "isaac::alice::TcpSubscriber"
      },
      {
        "name": "time_sync",
        "type": "isaac::alice::TimeSynchronizer"
      }
    ]
  },
{
    "name": "Carter_REB_01",
    "components": [
      {
        "name": "ledger",
        "type": "isaac::alice::MessageLedger"
      },
      {
        "name": "output",
        "type": "isaac::alice::TcpPublisher"
      },
      {
        "name": "input",
        "type": "isaac::alice::TcpSubscriber"
      },
      {
        "name": "time_sync",
        "type": "isaac::alice::TimeSynchronizer"
      }
    ]
  },
],

"edges": [
	{
	 "source": "interface/output/bodies",
    	 "target": "Carter_REB/output/bodies"
	},
	{
	 "source": "interface/output/bodies",
    	 "target": "Carter_REB_01/output/bodies"
	}
]

},
“config”: {
“interface”: {
“input”: {
“port”: 55001,
“host”: “localhost”
},
“output”: {
“port”: 55000
}
},
“Carter_REB”: {
“output”: {
“port”: 55001,
“host”: “localhost”
},
“input”: {
“port”: 55000,

  }
},
"Carter_REB_01": {
  "output": {
    "port": 55031,
 "host": "localhost"
  },
  "input": {
    "port": 55030,
   
  }
}

}
}
Need you guidance to create application for two carter follow separate goal point.