Hello NVIDIA Community,
I am currently working on customized RL agent for applications like pick-and-place in complex environments with the help of Omniverse and Isaac Sim.
What could be the best practices for monitoring interactions, specifically collisions, between the agent and its environment? I am particularly interested in understanding the most efficient way to use them inside methods like RLTask.is_done (get_observations, calculate_metrics, etc.) which are called from post_physics_step.
One solution I have found from omniisaacgymenvs examples is to wrap an RigidPrimView enabling track_contact_forces=True and then use it:
knee_contact = self._frankas._hands.get_net_contact_forces(clone=False)
Is it the best/only way in Isaacsim?
To conclude my questions:
- How to best track collisions for manipulator style robot?
- Manipulator can collide with itself or some obstacle meaning an end and reset of the environment. What to do with surfaces which must collide, like gripper finger inner parts?
- In the stage where manipulator holds an object, how to track this object collisions with environment? Any specifics on this part?
- Does RigidPrimView needs to be wrapped around every robot part/link? ArticulationView doesn’t have track_contact_forces.
Any advice or pointers you could provide would be incredibly helpful as I continue to refine my approach to this aspect of my project.
Thank you in advance for your time and help!