Supported single-RTX-LiDAR path for replaying a 4-second measured MID360 ray sequence in Isaac Sim 6.0.1? #828
Replies: 2 comments 4 replies
|
Hi @junminkyung we recently released Isaac Sim 6.1. Could you please check if the latest release address your issues? |
|
Hi @junminkyung, thank you for documenting this in detail. I am encountering a closely related problem while simulating a Livox Avia non-repetitive scan pattern. My setup uses Isaac Sim 6.0.1 and a four-second sequence containing approximately 960,000 recorded rays. Because of the attribute payload limit, I divided each 100 ms scan spatially across four co-located RTX LiDAR prims and merged their GMO outputs. I originally authored 40 emitter states on each solid-state OmniLidar. All states and their azimuth, elevation, fireTimeNs, channelId, and bank arrays pass SensorChecker validation. However, the runtime always renders only s001. I also reduced the test to a single OmniLidar with two states and 32 emitters, using clearly separated -20 and +20 degree azimuth patterns. Consecutive full outputs still used only s001, including when reading GMO through a Replicator writer without LidarSensor. An Isaac Sim collaborator reproduced this behavior on a local 6.0.1-rc.7 source build and created NVIDIA internal ticket 6758724. Your observation that ROTARY emitter states advance within one native scan but restart at the next scan boundary appears closely related, although my test uses scanType=solidState and does not advance beyond s001. Have you had a chance to test this on Isaac Sim 6.1? In particular:
Any update would be very helpful. I would also be happy to compare minimal profiles or runtime observations. |
Uh oh!
There was an error while loading. Please reload this page.
Following up on #685, I would like to confirm the supported way to replay a measured MID360 sequence with one native RTX LiDAR instance per physical sensor.
Environment
6.0.1-rc.7+release.42383.32955d8d.glomni.sensors.nv.lidar3.0.0; experimental RTX Python APInvidia-smiCUDA compatibility display: 13.0 (not a claim about the bundled CUDA runtime/toolkit version)Target
Replay 800,000 recorded azimuth/elevation pairs over 4 seconds, at 200,000 scheduled rays/s: 20,000 slots every 100 ms, with 5 microsecond firing offsets. This is a finite measured sequence replayed cyclically, not a claim to reproduce an indefinitely non-repeating manufacturer scan model. We need to preserve the recorded direction order and acquisition timing, rather than only match the visual coverage.
What currently works
Four co-located immutable RTX LiDAR instances, each holding ten 20,000-ray emitter states, provide a working workaround. All four compute continuously; the collector selects one bank per second using native timestamps. We pre-compensate the ROTARY tick rotation in the authored directions, before ray intersections.
In a stationary mounted-robot scene, the selected output passed a 10-second ROS capture: 100 consecutive frames, 20,000 slots/frame including nulls, 100 ms header intervals, and 5 microsecond point offsets. Maximum valid-ray direction difference from the input sequence was approximately 0.000051 degrees. This validates the replay pipeline, not real-sensor material/noise fidelity. Moving-robot integration is not validated.
Two separate constraints
scanRateBaseHz=1,patternFiringRateHz=10andstateResolutionStep=1, only states 0–9 were observed repeatedly across one-second scan boundaries. Two-state tests did advance, but their period divides the ten ticks per scan. This is our observation under that configuration, not a claim that all configurations are limited to ten states.emitterStatesFileas unsupported.Questions
Our intended deployment has four physical LiDARs, so the current workaround would require sixteen RTX instances. Before further optimizing that workaround, we would appreciate confirmation of the intended single-instance path, or confirmation that this requires a feature request/custom model interface.
All reactions