Using one camera for multiple envs

Using the latest Orbi and IsaacSim, I’m trying to use one camera only for multiple envs. The idea is to move the camera on each env and take the corresponding pictures (get_data).

To do so, I updated the Camera class to create only one annotator and modified the _update_buffers_impl function to use the only annotator available after having moved the camera successively on each env to ‘take the pictures’.

I had done the same for the previous 2022 version of IsaacSim. I kinda worked if a couple of render() function where inserted.

But with the latest version, the trick does not seem to have any effect. The camera does not ‘move’.

Has anybody tried to achieve such thing and managed to make it work? Thx.


Do you mean using only one camera which doesn’t matter about the number of environments? For example, using only one camera and taking an image at each time step from a thousand environments.

If so, you can create only one camera with the replicator camera. You can create a camera, on the entire world coordinate.
This link ( Reinforcement Learning with Vision in the Loop) may help you. From the link, the cameras are created with a for loop that is created by the number of environments. I think, in your case, you don’t have to use a for loop.

Separated from this, I guess there is a problem with using the replicator camera at the version 2023.1.1 (link). Now I am using previous isaac_sim-2023.1.0-hotfix.1 version.

Yes that’s the goal.
Although the link does not help because I’m using orbit.
Thx anyway.

1 Like