Isaac Sim Sub Sea applications

Hello, I am excited by Isaac Sim’s potential, but I am wondering where on the roadmap we might see sub-sea robotics supported? Specifically, I frequently work with scenarios that require vehicle thruster support, and at a minimum, basic hydrodynamic parameters for buoyancy, lift, and drag. There are other needs as well, but this would be a baseline. Silt and turbidity are bonuses as are simulating particles and or soil based objects. I realize I could implement a simple buoyancy and drag model as a python script, but with the capabilities of PhysX 5, we should be able to do much more advanced and efficient simulations. Similarly, I might be able to hack in a script to apply body forces based on my simulated thruster model, but that is far from an ideal solution.

Any tips on a basic implementation and when we could expect to see native support for these features would be helpful as I am currently trying to determine if Isaac Sim is worth the buy-in at this stage for my company’s needs.

Thanks!

3 Likes

Hi James,

I am also very excited by the possibilities for subsea applications for Isaac Sim. I think the Python API for Omni-PhysX is probably the best place to start for the lift/drag/thrust model, you can find the docs from the Isaac Sim menu under Help–>Physics Scripting Manual. I believe that an effective and efficient model for a basic ROV or UUV can be built without requiring engine changes or new C++ extensions, so we should probably start there. For silt and turbidity I believe we can build something on top of the Flow extension for Omniverse, but it will probably require some attention from the engineers who write that extension.

→ Similarly, I might be able to hack in a script to apply body forces based on my simulated thruster model, but that is far from an ideal solution.

Please tell me more about your specific concerns here. Given that the responses involved are not very stiff, I don’t see why an external force model should not work, or that a constraint-based system is required.

image

Incidentally, a few weeks ago I downloaded an ROV model from GrabCad and started to rig it up. Although I don’t have a definite timeline for delivering a complete ROV example, we are absolutely interested in supporting this domain and I will do what I can to bump up priority given sufficient interest.

Thanks,
Mike

Hi Mike, thanks so much for the quick reply. I am glad to hear this is on the radar for Isaac Sim, and I would be very interested in your ROV example when it becomes available! I will also check out the PhysX scripting manual as you suggested. Is the PhysX API still 4.1 or does it support 5?

You also mentioned c++ extensions, but I didn’t see much documentation on that. Is adding c++ extensions something that will be available to users? For example, would I be able to create an extension using Flow that I could port into Isaac Sim, and if so, is there any documentation available for how one might go about that?

As for my concerns with the thruster integration, it was more from the standpoint of making something that is easily extensible to other robot models (e.g. select a thruster part and assign it some control attributes and then simply expose that as a controllable joint in the model). But I realize I could also make a scrip extensible in that way to say for example take in the names of the tranforms of the thrusters, some speed/thrust models, and let it apply the body torques. It just would be nice if that was baked in somehow like is done for revolute joints.

Additionally (and admittedly much more advanced) features to props/thrusters that would be amazing to see down the road would be to use actual particle/fluid simulations so we can generate disturbances due to prop wash (e.g. stir up silt and debris when near the sea floor or push objects away due to prop wash).

Thanks again,

Hi James,

PhysX-5 is the physics library in Omniverse / IsaacSim exposed through the Python APIs.

C++ extension authoring will become available to end users, but this will take some time, I don’t expect to see that supported until 2022. Pretty much everything is exposed in Python already, so C++ development is really only important for performance-critical pieces like building new sensors straight off the rendering pipeline.

Flow should be available to you already, go to Window–>Extensions and type ‘Flow’ into the search field. There are many Omniverse extensions available in IsaacSim that aren’t obvious at first glance, you have to enable them through the Extensions panel.

Prop wash is something I would really like to see, I fully agree with your direction here. Also drift / currents, turbulence, etc. that disturbs the ROV, for development of station-keeping and similar controls.

1 Like