Repository Summary
| Description | A universal LiDAR and radar driver for ROS 2, supporting Hesai, Velodyne, Robosense and Continental sensors. |
| Checkout URI | https://github.com/tier4/nebula.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-02 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | radar lidar velodyne ros2 continental autoware robosense hesai ars548 |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| nebula | 0.3.0 |
| continental_msgs | 0.3.0 |
| continental_srvs | 0.3.0 |
| nebula_continental | 0.3.0 |
| nebula_continental_common | 0.3.0 |
| nebula_continental_decoders | 0.3.0 |
| nebula_continental_hw_interfaces | 0.3.0 |
| nebula_core_common | 0.3.0 |
| nebula_core_decoders | 0.3.0 |
| nebula_core_hw_interfaces | 0.3.0 |
| nebula_core_ros | 0.3.0 |
| nebula_msgs | 0.3.0 |
| nebula_hesai | 0.3.0 |
| nebula_hesai_common | 0.3.0 |
| nebula_hesai_decoders | 0.3.0 |
| nebula_hesai_hw_interfaces | 0.3.0 |
| pandar_msgs | 0.3.0 |
| nebula_robosense | 0.3.0 |
| nebula_robosense_common | 0.3.0 |
| nebula_robosense_decoders | 0.3.0 |
| nebula_robosense_hw_interfaces | 0.3.0 |
| robosense_msgs | 0.3.0 |
| nebula_velodyne | 0.3.0 |
| nebula_velodyne_common | 0.3.0 |
| nebula_velodyne_decoders | 0.3.0 |
| nebula_velodyne_hw_interfaces | 0.3.0 |
README
Nebula
Welcome to Nebula, the universal sensor driver
Nebula is a sensor driver platform that is designed to provide a unified framework for as wide a variety of devices as possible. While it primarily targets Ethernet-based LiDAR sensors, it aims to be easily extendable to support new sensors and interfaces. Nebula works with ROS 2 and is the recommended sensor driver for the Autoware project.
Table of Contents
Documentation
We recommend you get started with the Nebula Documention. Here you will find information about the background of the project, how to install and use with ROS 2, and also how to add new sensors to the Nebula driver.
- Design
- Supported Sensors
- Installation
- Launching with ROS 2
- Parameters
- Point cloud types
- Contributing
- Tutorials
To build and serve the documentation locally, see the build steps further below.
Quick start
Nebula builds with ROS 2 Galactic and Humble.
Note
Boost version 1.74.0 or later is required. A manual install may be required in Ubuntu versions earlier than 22.04.
To build Nebula run the following commands in your workspace:
# In workspace
git clone https://github.com/tier4/nebula.git
cd nebula
# Import dependencies
vcs import < build_depends.repos
rosdep install --from-paths . --ignore-src -y -r
# Build Nebula
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=1
To build with support for Agnocast, TIER IV’s zero-copy middleware, refer to the Agnocast section below.
(optional) To build and serve the documentation, run the following commands in your workspace:
cd src
pip3 install -r docs/requirements.txt
mkdocs serve
To launch Nebula as a ROS 2 node with default parameters for your sensor model:
ros2 launch nebula nebula_launch.py sensor_model:=*sensor_model_name*
For example, for a Hesai Pandar40P sensor:
ros2 launch nebula nebula_launch.py sensor_model:=Pandar40P
Agnocast
Nebula supports the Agnocast zero-copy middleware for pointcloud and blockage mask outputs.
Note
Agnocast support is currently limited to Hesai sensors.
To build with support for Agnocast, execute the above colcon build command with the environment
variable ENABLE_AGNOCAST=1 set.
The following apt dependencies are required at run time:
```bash sudo add-apt-repository ppa:t4-system-software/agnocast sudo apt-get update
File truncated at 100 lines see the full file