{"id":29021690,"url":"https://github.com/mapiv/nebula","last_synced_at":"2025-08-31T20:41:25.686Z","repository":{"id":209591012,"uuid":"543141562","full_name":"MapIV/nebula","owner":"MapIV","description":null,"archived":false,"fork":false,"pushed_at":"2024-03-13T01:57:27.000Z","size":11303,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-03-13T02:54:42.688Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MapIV.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-09-29T13:34:48.000Z","updated_at":"2024-03-08T04:07:44.000Z","dependencies_parsed_at":"2024-02-21T10:54:53.433Z","dependency_job_id":null,"html_url":"https://github.com/MapIV/nebula","commit_stats":null,"previous_names":["mapiv/nebula"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MapIV/nebula","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MapIV%2Fnebula","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MapIV%2Fnebula/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MapIV%2Fnebula/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MapIV%2Fnebula/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MapIV","download_url":"https://codeload.github.com/MapIV/nebula/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MapIV%2Fnebula/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261984645,"owners_count":23240305,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-26T02:07:28.941Z","updated_at":"2025-08-31T20:41:25.675Z","avatar_url":"https://github.com/MapIV.png","language":"C++","readme":"# Nebula\n\n[![build-and-test](https://github.com/tier4/nebula/actions/workflows/build-and-test.yaml/badge.svg)](https://github.com/tier4/nebula/actions/workflows/build-and-test.yaml)\n[![documentation](https://github.com/tier4/nebula/actions/workflows/documentation.yml/badge.svg)](https://github.com/tier4/nebula/actions/workflows/documentation.yml)\n[![codecov](https://codecov.io/gh/tier4/nebula/branch/main/graph/badge.svg)](https://codecov.io/gh/tier4/nebula)\n\n## Welcome to Nebula, the universal sensor driver\n\nNebula is a sensor driver platform that is designed to provide a unified framework for as wide a variety of devices as possible.\nWhile it primarily targets Ethernet-based LiDAR sensors, it aims to be easily extendable to support new sensors and interfaces.\nNebula works with ROS 2 and is the recommended sensor driver for the [Autoware](https://autoware.org/) project.\n\n## Documentation\n\nWe recommend you get started with the [Nebula Documention](https://tier4.github.io/nebula/).\nHere 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.\n\n- [Design](https://tier4.github.io/nebula/design)\n- [Supported Sensors](https://tier4.github.io/nebula/supported_sensors)\n- [Installation](https://tier4.github.io/nebula/installation)\n- [Launching with ROS 2](https://tier4.github.io/nebula/usage)\n- [Parameters](https://tier4.github.io/nebula/parameters)\n- [Point cloud types](https://tier4.github.io/nebula/point_types)\n- [Contributing](https://tier4.github.io/nebula/contribute)\n- [Tutorials](https://tier4.github.io/nebula/tutorials)\n\nTo build and serve the documentation locally, see the build steps further below.\n\n## Quick start\n\nNebula builds with ROS 2 Galactic and Humble.\n\n\u003e **Note**\n\u003e\n\u003e Boost version 1.74.0 or later is required. A manual install may be required in Ubuntu versions earlier than 22.04.\n\nTo build Nebula run the following commands in your workspace:\n\n```bash\n# In workspace\ngit clone https://github.com/tier4/nebula.git\ncd nebula\n# Import dependencies\nvcs import \u003c build_depends.repos\nrosdep install --from-paths . --ignore-src -y -r\n# Build Nebula\ncolcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=1\n```\n\nTo build with support for [Agnocast](https://github.com/tier4/agnocast), TIER IV's zero-copy\nmiddleware, refer to the Agnocast section below.\n\n_(optional)_ To build and serve the documentation, run the following commands in your workspace:\n\n```shell\ncd src\npip3 install -r docs/requirements.txt\nmkdocs serve\n```\n\nTo launch Nebula as a ROS 2 node with default parameters for your sensor model:\n\n```bash\nros2 launch nebula_ros *sensor_vendor_name*_launch_all_hw.xml sensor_model:=*sensor_model_name*\n```\n\nFor example, for a Hesai Pandar40P sensor:\n\n```bash\nros2 launch nebula_ros hesai_launch_all_hw.xml sensor_model:=Pandar40P\n```\n\n## Agnocast\n\nNebula supports the [Agnocast](https://github.com/tier4/agnocast) zero-copy middleware for\npointcloud and blockage mask outputs.\n\n\u003e **Note**\n\u003e\n\u003e Agnocast support is currently limited to Hesai sensors.\n\nTo build with support for Agnocast, add `-DUSE_AGNOCAST=ON` to the `--cmake-args` to the above\n`colcon build` command.\n\nThe following apt dependencies are required at run time:\n\n```bash\nsudo add-apt-repository ppa:t4-system-software/agnocast\nsudo apt-get update\nsudo apt-get install agnocast-heaphook-v2.1.1 agnocast-kmod-v2.1.1\n```\n\nNebula binaries that have been compiled with Agnocast support require the following environment\nvariables to be set at runtime:\n\n```bash\nexport LD_PRELOAD=/opt/ros/humble/lib/libagnocast_heaphook.so\n\n# This depends on the sensor model used and the number of Nebula topics subscribed.\n# A few maximum-size pointclouds worth of memory shall be enough. The below threshold is a\n# reasonable default.\nexport AGNOCAST_MEMPOOL_SIZE=134217728 # 128MB\n```\n\nIn addition, the Agnocast kernel module must be loaded at runtime:\n\n```bash\nsudo modprobe agnocast\n```\n\nTo confirm that Agnocast support is enabled, run:\n\n```bash\n$ ros2 topic list_agnocast\n[...]\n/pandar_packets\n/pandar_points (Agnocast enabled)\n[...]\n```\n\nPlease note that the `packets` topics do not support Agnocast, as they are purely used for\ndata recording and tools like `ros2 bag` do not have Agnocast support yet.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmapiv%2Fnebula","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmapiv%2Fnebula","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmapiv%2Fnebula/lists"}