Ways to modify robot morphologies (e.g. lengths of body parts...)

Hello! Thanks very much for sharing IsaacGym; so far, my colleagues and I find the tool very useful! :)

In our research, we need to frequently change the morphology of robots in their respective environments.

I saw that we can already change the masses of the different body parts. However, I also would like to modify e.g. the lengths of some body parts.

In the end, my question is the following:
Do you think it is feasible to continuously change/evolve the robot morphologies (e.g. lengths of body parts) in IsaacGym? If yes, how would you do it?

For this, I have a script for creating new xml files every time I want to change the morphology (one xml file is created for each new morphology). Then, each new actor is created based on one of those new xml files.

But for each implementation, I faced some issues:

  • implementation 1: destroying the sim using gym.destroy_sim and re-create a new one with the new environments. This solution continuously increases the GPU memory usage by ~200MB, which leads to an error at some point. I suspect that the memory is not completely emptied when we call gym.destroy_sim.
  • implementation 2: keeping the sim, but destroying all environments (using gym.destroy_env) in it and re-create new environments in the same sim. However, each time I request some information about the actors (e.g. using gym.acquire_force_sensor_tensor), I receive all the information from the new actors, but also the information from the destroyed actors (present in the destroyed environments).

Do you have any idea of how to solve those issues? :)

Hi @luca.grillotti16,

Changing robot morphologies dynamically is probably not going to work well with standalone Isaac Gym. It may be possible to do something like this with Omniverse Isaac Sim and the Gym support there, but I don’t think I can comment on whether or not it would be efficient without trying it.

Would it be possible for you to create a variety of different robot morphologies on startup instead? That’s going to be the best approach with the standalone Isaac Gym simulator.

Take care,