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 callgym.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. usinggym.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? :)