I’m trying to get ultrasonic sensors to work in my own configuration.
However, the documentation for them is very scarce and i get a lot of errors and crashes.
Could you please explain:
What the adjacency matrix actually does and how to use it. Why do the first and last entries in the example only consist of two emitters which are repeated in the following or previous entry (eg. [0, 1], [0, 1, 2],)?
What the emitter and receiver modes are.
My guess would have been that they switch the emitter and receiver functions on and off, but since in the example there is data from sensors 7, 8 and 9 which have different emitter and receiver modes this can’t be the case.
Also I’m kind of confused as in the receiver modes section in the example, there are some emitters which are only mentioned once (eg. (0,1)) and some which are mentioned twice (eg. (1,0), (1,1)).
I tried writing my own code based on the example, which often leads to Isaac Sim crashing. Usually there is no apparent reason, sometimes the code works and sometimes the same code leads to a crash. After Isaac Sim has crashed on the following startups i get lots of “Failed to create change watch for xyz: errno=28, No space left on device” errors, which disappear only after a reboot of the system.
You can find a logfile with both errors attached: kit_20211027_103508.log (210.9 KB)
Regarding the usd scene: I used a bit of a different approach and modified the code of the ultrasonic sensor example, so I’ll upload the modified code instead: ultrasonic_info.py (15.8 KB)
To run it just change the file under /home/user/.local/share/ov/pkg/isaac_sim-2021.1.1/exts/omni.isaac.range_sensor/omni/isaac/range_sensor/scripts/samples/ultrasonic_info.py and then run the example under “Isaac Examples” → “Sensing” → “Ultrasonic”.
It’s quite hard to tell you how exactly to reproduce the error but I’ll try:
If you follow the three steps of the example without moving the view in the viewport, Isaac Sim will crash in most cases after clicking on the “get data” button.
If you spawn the obstacles, start the simulation and then move the view before clicking on “get data” it will work in most cases. However sometimes it still crashes. Nevertheless i think there is a strong correlation between not moving the view and Isaac Sim crashing.
I tried to reproduce that with the original example code but using that Isaac Sim runs stable.
Something else i noticed: With the original code the values returned by the ultrasonic array in empty space are 4.5 (meters), with my code it returns 0. Not sure if that plays a relevant role here, this could also be caused by different emitter/receiver modes.
Thanks for the info
Filing a bug report now that our release is out and we have more bandwidth for bugfixes :)
We weren’t able to put an in-depth guide for USS sensors in 2021.2.0, but we have a bugfix release in a few weeks and it might be possible to get it in for that.