Skip to content

RobotecAI/RobotecGPULidar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

b52e65e · Mar 29, 2023
Mar 29, 2023
Mar 9, 2023
Mar 29, 2023
Mar 9, 2023
Mar 29, 2023
Mar 29, 2023
Mar 29, 2023
Nov 22, 2022
Nov 22, 2022
Nov 22, 2022
Mar 29, 2023
Mar 29, 2023
Mar 29, 2023
Mar 29, 2023
Nov 22, 2022
Mar 29, 2023
Mar 29, 2023

Repository files navigation

Robotec GPU Lidar

RobotecGPULidar

About the project

Robotec GPU Lidar (RGL) is a cross-platform (Windows and Linux), C/C++ library developed by Robotec.AI for simulating LiDARs on CUDA-enabled GPUs, accelerated by RTX cores if available.

One of the use-cases of RGL is implementing Lidar sensors in simulation engines. We are working on integrations with popular game / simulation engines:

If you would like to have a custom integration, feel free to contact us.

Features

Configurable LiDAR pattern and range High performance
GPU-accelerated pointcloud processing Flexible pipeline creation

And more:

  • Asynchronous raytracing
  • Removing non-hit points
  • Converting to custom binary output
  • Downsampling *
  • Writing to PCD file *
  • Visualization *
  • ROS2 publishing *
  • Gaussian noise (see documentation)

* extension required.

Runtime requirements

Hardware Requirement
GPU CUDA-enabled
Software Requirement
Nvidia Driver (Linux) >=515.43.04
Nvidia Driver (Windows) >=472.50

Usage

An introduction to the RGL API along with an example can be found here.

Extensions

RobotecGPULidar library can be built with extensions enhancing RGL with additional functions:

Building in Docker (Linux)

Two dockerfiles are prepared:

  • DockerfileMinimal - image designed to meet RGL minimal requirements
  • DockerfileLatest - image with latest Ubuntu and CUDA Toolkit version

Build instructions:

  1. Set up NVIDIA Container Toolkit
  2. Download NVidia OptiX 7.2
  3. export OptiX_INSTALL_DIR=<Path to OptiX>
  4. docker build . -f DockerfileMinimal --tag rgl:minimal
  5. docker run --net=host --gpus all -v $(pwd):/code -v ${OptiX_INSTALL_DIR}:/optix -e OptiX_INSTALL_DIR=/optix -e NVIDIA_DRIVER_CAPABILITIES=all -it rgl:minimal /bin/bash
  6. ./setup.py --make="-j"

Building on Ubuntu 22

  1. Install CUDA Toolkit 11.7+.
  2. Download NVidia OptiX 7.2.
    1. You may be asked to create Nvidia account to download
  3. Export environment variable:
    1. export OptiX_INSTALL_DIR=<your-OptiX-path>.
  4. Use setup.py script to build.
    • It will use CMake to generate files for build system (make) and build.
    • You can pass optional CMake and make parameters, e.g.
      • ./setup.py --cmake="-DCMAKE_BUILD_TYPE=Debug" --make="-j 16"
    • See ./setup.py --help for usage information.

Building on Windows

  1. Install Microsoft Visual Studio (Visual Studio 2019 when using ROS2 extension) with C++ CMake tools for Windows component.
  2. Install CUDA Toolkit 11.4.4+.
  3. Download NVidia OptiX 7.2.
    • install the framework and set environment variable OptiX_INSTALL_DIR
  4. Install Python3.
  5. Run x64 Native Tools Command Prompt for VS 20xx and navigate to RGL repository.
  6. Run python setup.py command to build the project.
    • It will use CMake to generate files for build system (ninja) and build.
    • You can pass optional CMake and ninja parameters, e.g.
      • python setup.py --cmake="-DCMAKE_BUILD_TYPE=Debug" --ninja="-j 16"
    • See python setup.py --help for usage information.

Acknowledgements

The development of this project was made possible thanks to cooperation with Tier IV - challenging needs in terms of features and performance of Tier IV's project allowed to significantly enrich Robotec GPU Lidar with features such as Gaussian noise and animated meshes as well as optimize it to provide real-time performance with many lidars.