generated from tier4/ros2-project-template
-
Notifications
You must be signed in to change notification settings - Fork 58
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: update sensor models and pointcloud types (#171)
* docs: update point types and sensor models, smaller fixes * docs: correct field types * Apply suggestions from code review Co-authored-by: David Wong <[email protected]> * ci(pre-commit): autofix * Update docs/point_types.md Co-authored-by: David Wong <[email protected]> * ci(pre-commit): autofix * chore(nebula_tests): add license to parameter_descriptors --------- Co-authored-by: David Wong <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
- Loading branch information
1 parent
fb9a28d
commit e58d5a7
Showing
5 changed files
with
94 additions
and
61 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,56 +1,60 @@ | ||
# Nebula point cloud types | ||
|
||
Nebula supports three point cloud output types. | ||
Nebula currently supports the below point cloud output types. | ||
However, it can easily be extended to support other custom point cloud types. | ||
|
||
These definitions can be found in the `nebula_common/include/point_types.hpp`. | ||
|
||
## PointXYZIR | ||
|
||
| Field | Type | Units | Description | | ||
| ------------- | ------- | ----- | -------------------------------------------------------------------- | | ||
| `x` | `float` | `m` | Contains the abscissa member of the point in cartesian coordinates. | | ||
| `y` | `float` | `m` | Contains the ordinate member of the point in cartesian coordinates. | | ||
| `z` | `float` | `m` | Contains the applicate member of the point in cartesian coordinates. | | ||
| `intensity` | `uint8` | | Contains the laser energy return value as reported by the sensor. | | ||
| `return type` | `uint8` | | Contains the lase return type according to the sensor configuration. | | ||
|
||
## PointXYZICAETR | ||
|
||
| Field | Type | Units | Description | | ||
| ------------- | ------- | ----- | -------------------------------------------------------------------- | | ||
| `x` | `float` | `m` | Contains the abscissa member of the point in cartesian coordinates. | | ||
| `y` | `float` | `m` | Contains the ordinate member of the point in cartesian coordinates. | | ||
| `z` | `float` | `m` | Contains the applicate member of the point in cartesian coordinates. | | ||
| `intensity` | `uint8` | | Contains the laser energy return value as reported by the sensor. | | ||
| `channel` | `uint8` | | Contains the laser channel id. | | ||
| `azimuth` | `float` | `rad` | Contains the azimuth of the current point. | | ||
| `elevation` | `float` | `rad` | Contains the elevation of the current point. | | ||
| `timestamp` | `float` | `ns` | Contains the relative time to the triggered scan time. | | ||
| `return type` | `uint8` | | Contains the lase return type according to the sensor configuration. | | ||
| Field | Type | Units | Description | | ||
| ----------- | -------- | ----- | -------------------------------------------------- | | ||
| `x` | `float` | `m` | Cartesian x coordinate. | | ||
| `y` | `float` | `m` | Cartesian y coordinate. | | ||
| `z` | `float` | `m` | Cartesian z coordinate. | | ||
| padding | 4 bytes | | | | ||
| `intensity` | `float` | | Intensity of the return as reported by the sensor. | | ||
| `ring` | `uint16` | | Ring ID - only defined for rotational LiDARs. | | ||
|
||
## PointXYZICATR | ||
|
||
| Field | Type | Units | Description | | ||
| ------------- | ------- | --------- | -------------------------------------------------------------------- | | ||
| `x` | `float` | `m` | Contains the abscissa member of the point in cartesian coordinates. | | ||
| `y` | `float` | `m` | Contains the ordinate member of the point in cartesian coordinates. | | ||
| `z` | `float` | `m` | Contains the applicate member of the point in cartesian coordinates. | | ||
| `intensity` | `uint8` | | Contains the laser energy return value as reported by the sensor. | | ||
| `channel` | `uint8` | | Contains the laser channel id. | | ||
| `azimuth` | `float` | `degrees` | Contains the azimuth of the current point. | | ||
| `timestamp` | `float` | `ns` | Contains the relative time to the triggered scan time. | | ||
| `return type` | `uint8` | | Contains the lase return type according to the sensor configuration. | | ||
| Field | Type | Units | Description | | ||
| ------------- | -------- | --------- | ------------------------------------------------------- | | ||
| `x` | `float` | `m` | Cartesian x coordinate. | | ||
| `y` | `float` | `m` | The point's cartesian y coordinate. | | ||
| `z` | `float` | `m` | Cartesian z coordinate. | | ||
| padding | 4 bytes | | | | ||
| `intensity` | `uint8` | | Intensity of the return as reported by the sensor. | | ||
| `channel` | `uint16` | | The ID of the laser channel that produced the point. | | ||
| `azimuth` | `float` | `degrees` | Azimuth in polar coordinates. | | ||
| `timestamp` | `uint32` | `ns` | Time of detection relative to the pointcloud timestamp. | | ||
| `return type` | `uint8` | | Return (echo) type. | | ||
|
||
## PointXYZIRADT | ||
|
||
| Field | Type | Units | Description | | ||
| ------------- | ------- | --------- | -------------------------------------------------------------------------- | | ||
| `x` | `float` | `m` | Contains the abscissa member of the point in cartesian coordinates. | | ||
| `y` | `float` | `m` | Contains the ordinate member of the point in cartesian coordinates. | | ||
| `z` | `float` | `m` | Contains the applicate member of the point in cartesian coordinates. | | ||
| `intensity` | `uint8` | | Contains the laser energy return value as reported by the sensor. | | ||
| `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. | | ||
| Field | Type | Units | Description | | ||
| ------------- | -------- | --------- | ------------------------------------------------------- | | ||
| `x` | `float` | `m` | Cartesian x coordinate. | | ||
| `y` | `float` | `m` | Cartesian y coordinate. | | ||
| `z` | `float` | `m` | Cartesian z coordinate. | | ||
| padding | 4 bytes | | | | ||
| `intensity` | `float` | | Intensity of the return as reported by the sensor. | | ||
| `return type` | `uint8` | | Return (echo) type. | | ||
| `azimuth` | `float` | `degrees` | Azimuth in polar coordinates. | | ||
| `distance` | `float` | `m` | Distance from the sensor origin. | | ||
| `timestamp` | `double` | `ns` | Time of detection relative to the pointcloud timestamp. | | ||
|
||
## NebulaPoint = PointXYZIRCAEDT | ||
|
||
| Field | Type | Units | Description | | ||
| ------------- | -------- | ----- | ------------------------------------------------------- | | ||
| `x` | `float` | `m` | Cartesian x coordinate. | | ||
| `y` | `float` | `m` | Cartesian y coordinate. | | ||
| `z` | `float` | `m` | Cartesian z coordinate. | | ||
| `intensity` | `uint8` | | Intensity of the return as reported by the sensor. | | ||
| `return type` | `uint8` | | Return (echo) type. | | ||
| `channel` | `uint16` | | Laser channel ID. | | ||
| `azimuth` | `float` | `rad` | Azimuth in polar coordinates. | | ||
| `elevation` | `float` | `rad` | Elevation in polar coordinates. | | ||
| `distance` | `float` | `m` | Distance from the sensor origin. | | ||
| `timestamp` | `uint32` | `ns` | Time of detection relative to the pointcloud timestamp. | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,44 +1,55 @@ | ||
# 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 sensor models listed below. The test status column indicates how many of the sensors' features are supported. | ||
|
||
For all sensors, the respective configuration file is found under `nebula_ros/config/<type>/<vendor>/<filename>` where | ||
|
||
- `<type>` is either lidar or radar, | ||
- `<vendor>` is the vendor of the sensor and | ||
- `<filename>` is listed in the table below. | ||
|
||
The launch file for a given vendor is called `<vendor>_launch_all_hw.xml`. | ||
The `sensor_model` parameter below decides which sensor driver is launched. | ||
|
||
## 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.param.yaml | ✅ | | ||
| Pandar 40P | Pandar40P | Pandar40P.param.yaml | ✅ | | ||
| Pandar XT32 | PandarXT32 | PandarXT32.param.yaml | ✅ | | ||
| Pandar XT32M | PandarXT32M | PandarXT32M.param.yaml | ⚠️ | | ||
| Pandar QT64 | PandarQT64 | PandarQT64.param.yaml | ✅ | | ||
| Pandar QT128 | PandarQT128 | PandarQT128.param.yaml | ⚠️ | | ||
| Pandar AT128 | PandarAT128 | PandarAT128.param.yaml | ✅\* | | ||
| Pandar OT128 | Pandar128E4X | Pandar128E4X.param.yaml | ⚠️ | | ||
|
||
\*: AT128 needs software version 3.50.8 or newer for the `scan_angle` setting to work correctly. | ||
|
||
## Velodyne LiDARs | ||
|
||
| Model | `sensor_model` | Configuration file | Test status | | ||
| ------------ | -------------- | ------------------ | ----------- | | ||
| VLP-16 | VLP16 | VLP16.yaml | ⚠️ | | ||
| VLP-16 | VLP16 | VLP16.param.yaml | ⚠️ | | ||
| VLP-16-HiRes | VLP16 | | ❌ | | ||
| VLP-32 | VLP32 | VLP32.yaml | ⚠️ | | ||
| VLS-128 | VLS128 | VLS128.yaml | ⚠️ | | ||
| VLP-32 | VLP32 | VLP32.param.yaml | ⚠️ | | ||
| VLS-128 | VLS128 | VLS128.param.yaml | ⚠️ | | ||
|
||
## Robosense LiDARs | ||
|
||
| Model | `sensor_model` | Configuration file | Test status | | ||
| ------ | -------------- | ------------------ | ----------- | | ||
| Bpearl | Bpearl | Bpearl.yaml | ⚠️ | | ||
| Helios | Helios | Helios.yaml | ⚠️ | | ||
| Bpearl | Bpearl | Bpearl.param.yaml | ⚠️ | | ||
| Helios | Helios | Helios.param.yaml | ⚠️ | | ||
|
||
## Continental radars | ||
|
||
| Model | `sensor_model` | Configuration file | Test status | | ||
| ------ | -------------- | ------------------ | ----------- | | ||
| ARS548 | ARS548 | ARS548.yaml | ⚠️ | | ||
| ARS548 | ARS548 | ARS548.param.yaml | ⚠️ | | ||
| SRR520 | SRR520 | SRR520.param.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. | ||
❌: untested |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,5 @@ | ||
// Copyright 2024 TIER IV, Inc. | ||
|
||
#include "parameter_descriptors.hpp" | ||
|
||
namespace nebula | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters