Announcement of RGL Gazebo Plugin

Dear Gazebo community,

We are excited to announce the release of our new open-source plugin, the RGL Gazebo Plugin, for efficient (NVIDIA-accelerated) lidar simulation in Gazebo Fortress.

As you know, lidar sensors are crucial in many robotics applications for obtaining precise 3D point cloud measurements of the environment. However, simulating these sensors in large-scale scenarios can be computationally intensive and time-consuming.

Our team at Robotec.ai has developed the Robotec GPU Lidar (RGL), an open-source CUDA/C/C++ library for GPU-accelerated raycasting, to tackle these challenges. And now, we are introducing the RGL Gazebo Plugin that relies on the Robotec GPU Lidar API.

Key Features of RGL Gazebo Plugin:

  • Flexible pattern configuration: The plugin enables easy customization of firing patterns with a number of different methods for that.
  • Precise pattern presets: We prepared presets that accurately mimic real lidar patterns.
  • Enhanced performance: RGL Gazebo Plugin can be up to 4.5 times faster than the built-in gpu_lidar sensor, allowing for real-time simulation of multiple high-performance lidars.
  • Visual smoothness: Our plugin uses RTX cores to simulate each ray independently, resulting in smoother and more accurate scans compared to the built-in gpu_lidar sensor.

We encourage you to visit our GitHub repository, use the plugin with your Gazebo projects, and contribute to its development.

GitHub repository: https://github.com/RobotecAI/RGLGazeboPlugin
Robotec.ai blog post: https://robotec.ai/gazebo-lidar-rgl-plugin/

2 Likes

Great job! I see it is using OptiX under the hood.

A side question - do you also plan to simulate the continuous time (lidar rotation) during scan acquisition? I bet that is a much more important “detail” to take care of than the exact firing pattern…

Thank you for the message!
Yes, simulating it (velocity distortion) is planned for the second half of this year. Is it that effect you want to achieve by simulating the continuous time during scan acquisition?

Yes, that. I wrote a plugin respecting the time for 2D lidars and Gazebo classic a few years ago: GitHub - peci1/gazebo_rotating_lidar: Gazebo Lidar sensor which accounts for scanning plane motion during a single scan . Feel free to look in there to get inspiration.

Also, when working with 3D lidars, I felt there is some lack in ROS for their support (as opposed to 2D lidars). If you’d have a while, you can look at my proposal at extending ROS with MultiLayerLaserScan package that would better capture the lidar data than a generic pointcloud: MultiLayerLaserScan · Issue #150 · ros/common_msgs · GitHub .

2 Likes