Isaac Sim Version
4.5.0
Operating System
Windows 11
Topic Description
I’m trying to replicate the scanning pattern of the Unitree LiDAR L1 in Isaac Sim using the RTX LiDAR sensor. Based on real data and the documentation, I set the high-speed motor measurement as the emitters’ state, with 120 emitters. In the real LiDAR, these emitters create circular rings at 180 Hz, while the base rotates at 11 Hz.
The problem is that, in Isaac Sim, the simulated LiDAR always produces 16 rings in the same position, instead of showing the rings shifting over time. This shouldn’t happen because the real LiDAR takes about a second for a full cycle, as 180 Hz is not perfectly divisible by 11 Hz (so the emitters shouldn’t reset to the same position every time).
In the videos, you can see the difference. In Isaac Sim the rings remain static and in the real data the rings shift position as expected.
Is there any way to replicate this pattern?
Isaac sim:
Real data:
Sensor motors:
Config file rtx lidar:
UnitreeL1_cfg.txt (6.9 KB)
Hi @rodscoimbra!
I noticed that your Isaac Sim frame rate is about 40Hz. Have you tried increasing the frame rate to 180Hz? The Lidar data frequency is tied to simulation frame rate.
Here is a tutorial for changing frame rate: ROS2 Setting Publish Rates — Isaac Sim Documentation
Thanks for the reply.
I tried setting the simulation to 180Hz as you suggested, but my PC isn’t powerful enough to maintain that rate with the lidar sensor running. That said, the frame rate did increase to around 55Hz when I ran the command, though I’m still seeing the same results.
This is just my guess, but probably because you are able to achieve 180 Hz like in real world, you cannot really replicate the pattern of the real lidar. But even with frame rate 40 Hz, it is not perfectly divisible by 11 either. Let me reach out to the internal team.
Hi @rodscoimbra! Currently our Isaac Sim 4.5 doesn’t support non-reoccurring emitter states. But thanks to your question, our internal team is planning to add this feature in the future. Please stay tuned!
As a workaround, our internal team recommends defining multiple emitter state arrays in the Lidar config:
- Rotary lidar model fires emitters defined in first emitter state → rotates → fires emitters defined in second emitter state → rotates → repeats until all emitter states have been fired, then loops back to first emitter state.
- User could therefore define offset emitter states to achieve desired pattern.
1 Like