Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: fix pre-commit config and adapt code to make all checks pass #162

Merged
merged 25 commits into from
Jun 26, 2024
Merged
Changes from 1 commit
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
8a09f5e
chore: fix pre-commit versions and clang-format hook failure
mojomex Jun 6, 2024
c442c8c
chore(docs): fix documentation pre-commit errors
mojomex Jun 6, 2024
084f172
chore: fix pre-commit and compiler warnings in all code files modifie…
mojomex Jun 6, 2024
2973053
chore(yamllint): ignore yaml document start in clang-format config as…
mojomex Jun 6, 2024
2bdae1d
chore: add copyright and license headers
mojomex Jun 6, 2024
83e9a85
chore(pre-commit): allow multiple documents in YAML files to make .cl…
mojomex Jun 6, 2024
cfe3d0c
chore: make pre-commit pass for parameter schema code
mojomex Jun 7, 2024
66783f5
chore: add copyright and license to all source files
mojomex Jun 7, 2024
f080524
chore: implement pre-commit suggestions in all CPP/HPP files
mojomex Jun 7, 2024
d633414
chore: whitespace changes in non-cpp files to satisfy pre-commit
mojomex Jun 7, 2024
7adf53e
chore: flake8 changes to satisfy pre-commit
mojomex Jun 7, 2024
fa95f61
fix: allow implicit conversion to status types again
mojomex Jun 7, 2024
9cfe040
chore: clean up imports
mojomex Jun 7, 2024
6748ca9
chore: add override/inline where necessary
mojomex Jun 7, 2024
3f0f35a
chore(nebula_ros): remove obsolete wrapper base types
mojomex Jun 7, 2024
3032f0b
chore: move nolint comments to be robust to formatting linebreaks
mojomex Jun 7, 2024
ff3a6a6
chore(velodyne): fix indentation in velodyne calibration files to sat…
mojomex Jun 7, 2024
b4aa564
chore(hesai): fix decoder test config yaml quotations
mojomex Jun 7, 2024
1bc62e3
chore: whitespace changes
mojomex Jun 7, 2024
592f88d
chore: remove empty, un-parseable local.cspell.json
mojomex Jun 7, 2024
950dce5
chore(prettier): ignore yaml and json files as they are handled by ya…
mojomex Jun 7, 2024
f79f42f
chore: make pre-commit pass on new files after #146
mojomex Jun 7, 2024
cf44e62
chore: update cspell to pass spell-check
mojomex Jun 7, 2024
da0bb68
chore: rename contributing.md docs page to make failing link check pass
mojomex Jun 7, 2024
dbada66
Merge remote-tracking branch 'origin/develop' into pre-commit-fixes
mojomex Jun 26, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
chore(docs): fix documentation pre-commit errors
mojomex committed Jun 7, 2024
commit c442c8c70cc329d785bcfc1db08be68d7271bd4b
8 changes: 7 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
# 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.
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](https://autoware.org/) project.

## Documentation

We recommend you get started with the [Nebula Documention](https://tier4.github.io/nebula/).
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.

- [About Nebula](https://tier4.github.io/nebula/about)
- [Design](https://tier4.github.io/nebula/design)
- [Supported Sensors](https://tier4.github.io/nebula/supported_sensors)
@@ -19,6 +22,7 @@ Here you will find information about the background of the project, how to insta
- [Tutorials](https://tier4.github.io/nebula/tutorials)

## Quick start

Nebula builds with ROS 2 Galactic and Humble.

> **Note**
@@ -39,13 +43,15 @@ rosdep install --from-paths src --ignore-src -y -r
# Build Nebula
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
```

To launch Nebula as a ROS 2 node with default parameters for your sensor model:

```bash
ros2 launch nebula_ros *sensor_vendor_name*_launch_all_hw.xml sensor_model:=*sensor_model_name*
```

For example, for a Hesai Pandar40P sensor:

```bash
ros2 launch nebula_ros hesai_launch_all_hw.xml sensor_model:=Pandar40P
```
4 changes: 0 additions & 4 deletions docs/about.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
# About Nebula

WIP, please check back soon!




2 changes: 1 addition & 1 deletion docs/contributing.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Contributing to Nebula

WIP - please check back soon!
WIP - please check back soon!
20 changes: 13 additions & 7 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
# Welcome to the Nebula documentation

Welcome to the Nebula documentation. 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.

# About Nebula
## About Nebula

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.
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](https://autoware.org/) project. The project aims to provide:

- A universal sensor driver
@@ -15,18 +17,22 @@ Nebula works with ROS 2 and is the recommended sensor driver for the [Autoware](

For more information, please refer to [About Nebula](about.md).

# Getting started
## Getting started

- [Installation](installation.md)
- [Launching with ROS 2](usage.md)

# Nebula architecture
## Nebula architecture

- [Design](design.md)
- [Parameters](parameters.md)
- [Point cloud types](point_types.md)

# Supported sensors
## Supported sensors

- [Supported sensors](supported_sensors.md)

# Development
## Development

- [Tutorials](tutorials.md)
- [Contributing](contributing.md)
- [Contributing](contributing.md)
6 changes: 4 additions & 2 deletions docs/installation.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
# Installing Nebula

## Requirements

Nebula requires ROS 2 (Galactic or Humble) to build the ROS 2 wrapper.
Please see the [ROS 2 documentation](https://docs.ros.org/en/humble/index.html) for how to install.


## Getting the source and building

> **Note**
>
> A [TCP enabled version of ROS' Transport Driver](https://github.com/mojomex/transport_drivers/tree/mutable-buffer-in-udp-callback) is required to use Nebula.
@@ -28,6 +29,7 @@ colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
## Testing your build

To run Nebula unit tests:

```bash
colcon test --event-handlers console_cohesion+ --packages-above nebula_common
```
@@ -36,4 +38,4 @@ Show results:

```bash
colcon test-result --all
```
```
2 changes: 1 addition & 1 deletion docs/parameters.md
Original file line number Diff line number Diff line change
@@ -118,4 +118,4 @@ Parameters shared by all supported models:
| min_range | double | 0.3 | meters, >= 0.3 | Minimum point range published |
| max_range | double | 300.0 | meters, <= 300.0 | Maximum point range published |
| cloud_min_angle | uint16 | 0 | degrees [0, 360] | FoV start angle |
| cloud_max_angle | uint16 | 359 | degrees [0, 360] | FoV end angle |
| cloud_max_angle | uint16 | 359 | degrees [0, 360] | FoV end angle |
2 changes: 1 addition & 1 deletion docs/point_types.md
Original file line number Diff line number Diff line change
@@ -53,4 +53,4 @@ These definitions can be found in the `nebula_common/include/point_types.hpp`.
| `return type` | `uint8` | | Contains the lase return type according to the sensor configuration. |
| `azimuth` | `float` | `degrees` | Contains the azimuth of the current point. |
| `distance` | `float` | `m` | Contains the distance from the sensor origin to this echo on the XY plane. |
| `timestamp` | `float` | `ns` | Contains the relative time to the triggered scan time.
| `timestamp` | `float` | `ns` | Contains the relative time to the triggered scan time. |
59 changes: 29 additions & 30 deletions docs/supported_sensors.md
Original file line number Diff line number Diff line change
@@ -1,45 +1,44 @@
# Supported sensors

Nebula currently supports the following sensor models, where `sensor_model` is the ROS parameter to be used at launch:
Nebula currently supports the following sensor models, where `sensor_model` is the ROS parameter to be used at launch:

## Hesai LiDARs

| Model | `sensor_model` | Configuration file | Test status |
| ------------- | -------------- | ------------------ | -------------------- |
| Pandar64 | Pandar64 | Pandar64.yaml | ✅ |
| Pandar 40P | Pandar40P | Pandar40P.yaml | ✅ |
| Pandar XT32 | PandarXT32 | PandarXT32.yaml | ✅ |
| Pandar XT32M | PandarXT32M | PandarXT32M.yaml | ⚠️ |
| Pandar QT64 | PandarQT64 | PandarQT64.yaml | ✅ |
| Pandar QT128 | PandarQT128 | PandarQT128.yaml | ⚠️ |
| Pandar AT128 | PandarAT128 | PandarAT128.yaml | ✅\* |
| Pandar 128E4X | Pandar128E4X | Pandar128E4X.yaml | ⚠️ |
| Model | `sensor_model` | Configuration file | Test status |
| ------------- | -------------- | ------------------ | ----------- |
| Pandar64 | Pandar64 | Pandar64.yaml | ✅ |
| Pandar 40P | Pandar40P | Pandar40P.yaml | ✅ |
| Pandar XT32 | PandarXT32 | PandarXT32.yaml | ✅ |
| Pandar XT32M | PandarXT32M | PandarXT32M.yaml | ⚠️ |
| Pandar QT64 | PandarQT64 | PandarQT64.yaml | ✅ |
| Pandar QT128 | PandarQT128 | PandarQT128.yaml | ⚠️ |
| Pandar AT128 | PandarAT128 | PandarAT128.yaml | ✅\* |
| Pandar 128E4X | Pandar128E4X | Pandar128E4X.yaml | ⚠️ |

## Velodyne LiDARs

| Model | `sensor_model` | Configuration file | Test status |
| ------------- | -------------- | ------------------ | -------------------- |
| VLP-16 | VLP16 | VLP16.yaml | ⚠️ |
| VLP-16-HiRes | VLP16 | | ❌ |
| VLP-32 | VLP32 | VLP32.yaml | ⚠️ |
| VLS-128 | VLS128 | VLS128.yaml | ⚠️ |
| Model | `sensor_model` | Configuration file | Test status |
| ------------ | -------------- | ------------------ | ----------- |
| VLP-16 | VLP16 | VLP16.yaml | ⚠️ |
| VLP-16-HiRes | VLP16 | | ❌ |
| VLP-32 | VLP32 | VLP32.yaml | ⚠️ |
| VLS-128 | VLS128 | VLS128.yaml | ⚠️ |

## Robosense LiDARs

| Model | `sensor_model` | Configuration file | Test status |
| ------------- | -------------- | ------------------ | -------------------- |
| Bpearl | Bpearl | Bpearl.yaml | ⚠️ |
| Helios | Helios | Helios.yaml | ⚠️ |
| Model | `sensor_model` | Configuration file | Test status |
| ------ | -------------- | ------------------ | ----------- |
| Bpearl | Bpearl | Bpearl.yaml | ⚠️ |
| Helios | Helios | Helios.yaml | ⚠️ |

## Continental radars

| Model | `sensor_model` | Configuration file | Test status |
| ------------- | -------------- | ------------------ | -------------------- |
| ARS548 | ARS548 | ARS548.yaml | ⚠️ |
| Model | `sensor_model` | Configuration file | Test status |
| ------ | -------------- | ------------------ | ----------- |
| ARS548 | ARS548 | ARS548.yaml | ⚠️ |


Test status:\
✅: complete\
⚠️: some functionality yet to be tested\
❌: untested\
\*: AT128 needs software version 3.50.8 or newer for the `scan_angle` setting to work correctly.
Test status:
✅: complete
⚠️: some functionality yet to be tested
❌: untested
\*: AT128 needs software version 3.50.8 or newer for the `scan_angle` setting to work correctly.
2 changes: 1 addition & 1 deletion docs/tutorials.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Nebula tutorials

WIP - we are currently working on making tutorials for Nebula development, so please check back soon!
In the meantime, check out the [tutorial branch](https://github.com/mojomex/nebula/tree/single-node-refactor-tutorial).
In the meantime, check out the [tutorial branch](https://github.com/mojomex/nebula/tree/single-node-refactor-tutorial).
5 changes: 4 additions & 1 deletion docs/usage.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
# Running Nebula

## Launch with default parameters

To launch Nebula as a ROS 2 node with default parameters for your sensor model:

```bash
ros2 launch nebula_ros *sensor_vendor_name*_launch_all_hw.xml sensor_model:=*sensor_model_name*
```

For example, for a Hesai Pandar40P sensor:

```bash
ros2 launch nebula_ros hesai_launch_all_hw.xml sensor_model:=Pandar40P
```

## Sensor configuration
WIP

WIP
54 changes: 27 additions & 27 deletions mkdocs.yml
Original file line number Diff line number Diff line change
@@ -55,49 +55,49 @@ plugins:
projects:
nebula_common:
src-dirs: nebula_common/include
full-doc: True
full-doc: true
doxy-cfg:
FILE_PATTERNS: "*.hpp *.h"
RECURSIVE: True
EXTRACT_ALL: True
INLINE_SOURCES: True
ENABLE_PREPROCESSING: True
MACRO_EXPANSION: True
RECURSIVE: true
EXTRACT_ALL: true
INLINE_SOURCES: true
ENABLE_PREPROCESSING: true
MACRO_EXPANSION: true
nebula_decoders:
src-dirs: nebula_decoders/include
full-doc: True
full-doc: true
doxy-cfg:
FILE_PATTERNS: "*.hpp *.h"
RECURSIVE: True
EXTRACT_ALL: True
INLINE_SOURCES: True
ENABLE_PREPROCESSING: True
MACRO_EXPANSION: True
RECURSIVE: true
EXTRACT_ALL: true
INLINE_SOURCES: true
ENABLE_PREPROCESSING: true
MACRO_EXPANSION: true
nebula_hw_interfaces:
src-dirs: nebula_hw_interfaces/include
full-doc: True
full-doc: true
doxy-cfg:
FILE_PATTERNS: "*.hpp *.h"
RECURSIVE: True
EXTRACT_ALL: True
INLINE_SOURCES: True
ENABLE_PREPROCESSING: True
MACRO_EXPANSION: True
RECURSIVE: true
EXTRACT_ALL: true
INLINE_SOURCES: true
ENABLE_PREPROCESSING: true
MACRO_EXPANSION: true
nebula_ros:
src-dirs: nebula_ros/include
full-doc: True
full-doc: true
doxy-cfg:
FILE_PATTERNS: "*.hpp *.h"
RECURSIVE: True
EXTRACT_ALL: True
INLINE_SOURCES: True
ENABLE_PREPROCESSING: True
MACRO_EXPANSION: True
RECURSIVE: true
EXTRACT_ALL: true
INLINE_SOURCES: true
ENABLE_PREPROCESSING: true
MACRO_EXPANSION: true

save-api: .mkdoxy
full-doc: True
debug: False
ignore-errors: False
full-doc: true
debug: false
ignore-errors: false

- search:
lang: en