Hello there,
I am planning to create an environment to virtually validate perception algorithms for a mobile robot using camera and lidar.
Some of the lidar perception algorithms my team developed make use of specific features like intensity values of the points as well as the structure of the point cloud in the ROS messages (row-by-row structure like in the ROS messages obtained by Ouster rotating lidars) and the fact that a point cloud has a fixed number of points (even when the laser was not reflected back, the point gets set to 0,0,0 in the message).
According to my colleague who is working with the synthetic data I created using Isaac Sim, the point clouds obtained from the real sensor and Isaac Sim differ in the way that:
- There are no intensity values present for the points
- The point cloud in the ROS pointcloud2 message is structured column-wise instead of row-wise
- The pointcloud size differes (it contains only points that were reflected)
As a fourth point, real point clouds contain a certain amount of noise, which the Sim clouds have not.
My question is:
Are there ways to modify the lidars or the nodes in the action graphs in the way to get point clouds that match the “real” data with respect to the mentioned four points?
Any tips or guidance is very appreciated!
Best regards
Kevin
I can only speak to the rtx lidar.
You can keep the points that are not hits if you set the keepOnlyPositiveDistance parameter on the ComputeRTXLidarPointCloud node. That will keep the point count the same each frame.
Intensity should be coming out of that node as well, but I am not sure it is fed into ros for any of our examples.
@Hammad_M may know better, but I think the coloumn/row wise order is fixed in our patch release out soon.
Thank you for providing such a good simulation for the robot. I aslo need intensity information from the point cloud to ros. I know that the action graph like “Isaac Compute RTX Lidar Point Cloud Node” can output intensity information. But the problem is “ROS2 RTX Lidar Helper” or “ROS2 Publish Point Cloud” no intensity information in the field.
I’m looking forward to getting a solution. Thanks.
Hey,
I’ve built a ros2 based pkg for the same issue.
Link: ROS2 Pkg Link
Hope it supports your project!!
3 Likes
Thank you very much for your work, but I looked at your code, which only adds intensity information to the published lidar point cloud data according to the rules.
e.g. Calculate Intensity by Distance.
I think this is not really simulated intensity information, right?
It can only be said to be a solution.
Thank you very much for sharing your method, and I hope that the Nvidia team can add this function as soon as possible.
Hey,
its just a janky build to augment data, so i can get some work done.
The Nvidia team does have a node graph system to do this, but its still calculating it the same way im doing it.
Cheers!
Hello!
We noticed that this topic hasn’t received any recent responses, so we are closing it for now to help keep the forum organized.
If you’re still experiencing this issue or have additional questions, please feel free to create a new topic with updated details. When doing so, we recommend mentioning or linking to this original topic in your new post—this helps provide context and makes it easier for others to assist you.
Thank you for being part of the NVIDIA Isaac Sim community.
Best regards,
The NVIDIA Isaac Sim Forum Team