Is it possible to make multiple agent to interact with each other for a swarm robotics application?

We are now researching the nature-inspired swarm robot and looking for a physics-based simulator.

The Isaac Gym can simulate more than 1000 agents at the same time seems to be a good choice for our research
but the existing example only shows the separated training of each agent.

So I would like to know is it possible to let the multiple agents detecting or colliding with each other.

Thank you in advance.

I can only answer your question regarding collision between environments. Yes, this is possible and I would suggest taking a look at the 1080_balls_of_solitude.py example or the docs /isaacgym/docs/examples/simple.html?highlight=collision#collision-filtering-1080-balls-of-solitude-py.
Here you can see how it is possible to enable collision only within environments and between all environments.

Detection/perception is a little bit more difficult, but from the simulation API, you can get the position of all actors. But I am not sure if that is sufficient for your use case.

1 Like

Yes, you can put all the 1000 agents in the same environment or different environments and have them interacting by setting to the same collision group and the collision filter for each actor 0.

@lvahre16 provided a good example. Another one would be FrankaCabinet env - each env already have 2 interacting articulations - Franka arm and a cabinet. You can add as many as you want interacting agents/actors/articulations in the same env.

1 Like

@lvahre16 Thank you very much. I have looked into those examples. It’s really helped me understanding collision masking.

@vmakoviychuk Multiple Agents in one environment seem to be more suitable for our job. I will try loading a 1000 simple mobile robot and I’ll share a result here.

1 Like