Is it actually possible to sim2real from IsaacGym Anymal Enviroment to a quadruped robot?


Please excuse my rather high level description due to my lack of proper terminology to explain these in detail. I trained a policy modified from Anymal’s model for a small quadruped called Bittle. I am trying to write a wrapper to for the model for the robots servos. There are two options:

1- The quadruped uses a controller called Biboard which is a ESP32 based module. So the model can be converted to onnx and to tensorflow-lite. Then a program to feed the policy IMU data and output the servo instructions.

2- It is more than possible that ESP32 board won’t be enough to run the policy so, from the hosted machine outputs can be fed to the quadruped through the serial interface. The wrapper in this case still does the same thing but on the hosted machine.

In both cases I need to be able to see the inputs and outputs of the network, but so far I cannot manage to achieve this. From what I understand from the documentation shared Anymal policy isn’t a Pytorch based model but it uses this library to access the tensors. The model class seems to be a custom class defined in the isaac-gym base however I cannot get the data out in real time.

Is there any documentation or api available for this purpose? Or if any ideas how to achieve this sim2real transfer in this context?

Thank you for your attention

I am not familiar with onnx and tensorflow-lite so I will not be able to help with that. But for the 2nd option,
I believe that during training, the policy is saved as .pth files at each checkpoint.

You can later use PyTorch to load the model from these checkpoints (enabling inference mode for real robots) and then pass observations (PyTorch tensors) to the policy and get outputs.

And for bittle in particular maybe checkout this playlist Advanced Tutorial by Users - YouTube and this repo GitHub - AIWintermuteAI/IsaacGymEnvs: Isaac Gym Reinforcement Learning Environments