From d63228735b0788d8f6f862bfe3d0edd0188cab8f Mon Sep 17 00:00:00 2001 From: Max SCHMELLER Date: Thu, 27 Jun 2024 16:02:49 +0900 Subject: [PATCH 1/7] docs: update point types and sensor models, smaller fixes --- docs/point_types.md | 88 ++++++++++++++++++++------------------- docs/supported_sensors.md | 49 +++++++++++++--------- docs/usage.md | 2 + 3 files changed, 78 insertions(+), 61 deletions(-) diff --git a/docs/point_types.md b/docs/point_types.md index 63f629f99..99d2c0e8b 100644 --- a/docs/point_types.md +++ b/docs/point_types.md @@ -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` | The point's cartesian x coordinate. | +| `y` | `float` | `m` | The point's cartesian y coordinate. | +| `z` | `float` | `m` | The point's cartesian z coordinate. | +| padding | 4 bytes | | | +| `intensity` | `uint8` | | The intensity of the return as reported by the sensor. | +| `return type` | `uint8` | | Whether the point was the first, strongest, last, etc. of multiple returns. | ## 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` | The point's cartesian x coordinate. | +| `y` | `float` | `m` | The point's cartesian y coordinate. | +| `z` | `float` | `m` | The point's cartesian z coordinate. | +| padding | 4 bytes | | | +| `intensity` | `uint8` | | The intensity of the return as reported by the sensor. | +| `channel` | `uint8` | | The ID of the laser channel that produced the point. | +| `azimuth` | `float` | `degrees` | azimuth in polar coordinates. | +| `timestamp` | `float` | `ns` | The time the point was detected relative to the pointcloud timestamp. | +| `return type` | `uint8` | | Whether the point was the first, strongest, last, etc. of multiple returns. | ## 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` | The point's cartesian x coordinate. | +| `y` | `float` | `m` | The point's cartesian y coordinate. | +| `z` | `float` | `m` | The point's cartesian z coordinate. | +| padding | 4 bytes | | | +| `intensity` | `uint8` | | The intensity of the return as reported by the sensor. | +| `return type` | `uint8` | | Whether the point was the first, strongest, last, etc. of multiple returns. | +| `azimuth` | `float` | `degrees` | The point's azimuth in polar coordinates. | +| `distance` | `float` | `m` | The point's distance from the sensor origin. | +| `timestamp` | `float` | `ns` | The time the point was detected relative to the pointcloud timestamp. | + +## NebulaPoint = PointXYZIRCAEDT + +| Field | Type | Units | Description | +| ------------- | -------- | ----- | --------------------------------------------------------------------------- | +| `x` | `float` | `m` | The point's cartesian x coordinate. | +| `y` | `float` | `m` | The point's cartesian y coordinate. | +| `z` | `float` | `m` | The point's cartesian z coordinate. | +| `intensity` | `uint8` | | The intensity of the return as reported by the sensor. | +| `return type` | `uint8` | | Whether the point was the first, strongest, last, etc. of multiple returns. | +| `channel` | `uint16` | | The ID of the laser channel that produced the point. | +| `azimuth` | `float` | `rad` | The point's azimuth in polar coordinates. | +| `elevation` | `float` | `rad` | The point's elevation in polar coordinates. | +| `distance` | `float` | `m` | The point's distance from the sensor origin. | +| `timestamp` | `float` | `ns` | The time the point was detected relative to the pointcloud timestamp. | diff --git a/docs/supported_sensors.md b/docs/supported_sensors.md index 82821c29b..55fb1a381 100644 --- a/docs/supported_sensors.md +++ b/docs/supported_sensors.md @@ -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///` where + +- `` is either lidar or radar, +- `` is the vendor of the sensor and +- `` is listed in the table below. + +The launch file for a given vendor is called `_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 diff --git a/docs/usage.md b/docs/usage.md index cb635954c..a14497449 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -14,6 +14,8 @@ For example, for a Hesai Pandar40P sensor: ros2 launch nebula_ros hesai_launch_all_hw.xml sensor_model:=Pandar40P ``` +Refer to the list of [supported sensors](supported_sensors.md) for more information on the avaliable sensors and configuration options. + ## Sensor configuration WIP From 2d19d0e4849308185fb097647a5dc6e728dcf972 Mon Sep 17 00:00:00 2001 From: Max SCHMELLER Date: Thu, 27 Jun 2024 16:13:31 +0900 Subject: [PATCH 2/7] docs: correct field types --- docs/point_types.md | 62 ++++++++++++++++++++++----------------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/docs/point_types.md b/docs/point_types.md index 99d2c0e8b..fb22f1e0f 100644 --- a/docs/point_types.md +++ b/docs/point_types.md @@ -7,42 +7,42 @@ These definitions can be found in the `nebula_common/include/point_types.hpp`. ## PointXYZIR -| Field | Type | Units | Description | -| ------------- | ------- | ----- | --------------------------------------------------------------------------- | -| `x` | `float` | `m` | The point's cartesian x coordinate. | -| `y` | `float` | `m` | The point's cartesian y coordinate. | -| `z` | `float` | `m` | The point's cartesian z coordinate. | -| padding | 4 bytes | | | -| `intensity` | `uint8` | | The intensity of the return as reported by the sensor. | -| `return type` | `uint8` | | Whether the point was the first, strongest, last, etc. of multiple returns. | +| Field | Type | Units | Description | +| ----------- | -------- | ----- | ---------------------------------------------------------------------------- | +| `x` | `float` | `m` | The point's cartesian x coordinate. | +| `y` | `float` | `m` | The point's cartesian y coordinate. | +| `z` | `float` | `m` | The point's cartesian z coordinate. | +| padding | 4 bytes | | | +| `intensity` | `float` | | The intensity of the return as reported by the sensor. | +| `ring` | `uint16` | | The ID of the ring the point is part of. Only defined for rotational LiDARs. | ## PointXYZICATR -| Field | Type | Units | Description | -| ------------- | ------- | --------- | --------------------------------------------------------------------------- | -| `x` | `float` | `m` | The point's cartesian x coordinate. | -| `y` | `float` | `m` | The point's cartesian y coordinate. | -| `z` | `float` | `m` | The point's cartesian z coordinate. | -| padding | 4 bytes | | | -| `intensity` | `uint8` | | The intensity of the return as reported by the sensor. | -| `channel` | `uint8` | | The ID of the laser channel that produced the point. | -| `azimuth` | `float` | `degrees` | azimuth in polar coordinates. | -| `timestamp` | `float` | `ns` | The time the point was detected relative to the pointcloud timestamp. | -| `return type` | `uint8` | | Whether the point was the first, strongest, last, etc. of multiple returns. | +| Field | Type | Units | Description | +| ------------- | -------- | --------- | --------------------------------------------------------------------------- | +| `x` | `float` | `m` | The point's cartesian x coordinate. | +| `y` | `float` | `m` | The point's cartesian y coordinate. | +| `z` | `float` | `m` | The point's cartesian z coordinate. | +| padding | 4 bytes | | | +| `intensity` | `uint8` | | The 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` | The time the point was detected relative to the pointcloud timestamp. | +| `return type` | `uint8` | | Whether the point was the first, strongest, last, etc. of multiple returns. | ## PointXYZIRADT -| Field | Type | Units | Description | -| ------------- | ------- | --------- | --------------------------------------------------------------------------- | -| `x` | `float` | `m` | The point's cartesian x coordinate. | -| `y` | `float` | `m` | The point's cartesian y coordinate. | -| `z` | `float` | `m` | The point's cartesian z coordinate. | -| padding | 4 bytes | | | -| `intensity` | `uint8` | | The intensity of the return as reported by the sensor. | -| `return type` | `uint8` | | Whether the point was the first, strongest, last, etc. of multiple returns. | -| `azimuth` | `float` | `degrees` | The point's azimuth in polar coordinates. | -| `distance` | `float` | `m` | The point's distance from the sensor origin. | -| `timestamp` | `float` | `ns` | The time the point was detected relative to the pointcloud timestamp. | +| Field | Type | Units | Description | +| ------------- | -------- | --------- | --------------------------------------------------------------------------- | +| `x` | `float` | `m` | The point's cartesian x coordinate. | +| `y` | `float` | `m` | The point's cartesian y coordinate. | +| `z` | `float` | `m` | The point's cartesian z coordinate. | +| padding | 4 bytes | | | +| `intensity` | `float` | | The intensity of the return as reported by the sensor. | +| `return type` | `uint8` | | Whether the point was the first, strongest, last, etc. of multiple returns. | +| `azimuth` | `float` | `degrees` | The point's azimuth in polar coordinates. | +| `distance` | `float` | `m` | The point's distance from the sensor origin. | +| `timestamp` | `double` | `ns` | The time the point was detected relative to the pointcloud timestamp. | ## NebulaPoint = PointXYZIRCAEDT @@ -57,4 +57,4 @@ These definitions can be found in the `nebula_common/include/point_types.hpp`. | `azimuth` | `float` | `rad` | The point's azimuth in polar coordinates. | | `elevation` | `float` | `rad` | The point's elevation in polar coordinates. | | `distance` | `float` | `m` | The point's distance from the sensor origin. | -| `timestamp` | `float` | `ns` | The time the point was detected relative to the pointcloud timestamp. | +| `timestamp` | `uint32` | `ns` | The time the point was detected relative to the pointcloud timestamp. | From c2ad08fa2c4db47bf1fc8761dee11e1a95bfafca Mon Sep 17 00:00:00 2001 From: Max Schmeller <6088931+mojomex@users.noreply.github.com> Date: Fri, 28 Jun 2024 11:55:53 +0900 Subject: [PATCH 3/7] Apply suggestions from code review Co-authored-by: David Wong <33114676+drwnz@users.noreply.github.com> --- docs/point_types.md | 58 ++++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/docs/point_types.md b/docs/point_types.md index fb22f1e0f..140407709 100644 --- a/docs/point_types.md +++ b/docs/point_types.md @@ -9,52 +9,52 @@ These definitions can be found in the `nebula_common/include/point_types.hpp`. | Field | Type | Units | Description | | ----------- | -------- | ----- | ---------------------------------------------------------------------------- | -| `x` | `float` | `m` | The point's cartesian x coordinate. | -| `y` | `float` | `m` | The point's cartesian y coordinate. | -| `z` | `float` | `m` | The point's cartesian z coordinate. | +| `x` | `float` | `m` | Cartesian x coordinate. | +| `y` | `float` | `m` | Cartesian y coordinate. | +| `z` | `float` | `m` | Cartesian z coordinate. | | padding | 4 bytes | | | -| `intensity` | `float` | | The intensity of the return as reported by the sensor. | -| `ring` | `uint16` | | The ID of the ring the point is part of. Only defined for rotational LiDARs. | +| `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` | The point's cartesian x coordinate. | +| `x` | `float` | `m` | Cartesian x coordinate. | | `y` | `float` | `m` | The point's cartesian y coordinate. | -| `z` | `float` | `m` | The point's cartesian z coordinate. | +| `z` | `float` | `m` | Cartesian z coordinate. | | padding | 4 bytes | | | -| `intensity` | `uint8` | | The intensity of the return as reported by the sensor. | +| `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` | The time the point was detected relative to the pointcloud timestamp. | -| `return type` | `uint8` | | Whether the point was the first, strongest, last, etc. of multiple returns. | +| `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` | The point's cartesian x coordinate. | -| `y` | `float` | `m` | The point's cartesian y coordinate. | -| `z` | `float` | `m` | The point's cartesian z coordinate. | +| `x` | `float` | `m` | Cartesian x coordinate. | +| `y` | `float` | `m` | Cartesian y coordinate. | +| `z` | `float` | `m` | Cartesian z coordinate. | | padding | 4 bytes | | | -| `intensity` | `float` | | The intensity of the return as reported by the sensor. | -| `return type` | `uint8` | | Whether the point was the first, strongest, last, etc. of multiple returns. | -| `azimuth` | `float` | `degrees` | The point's azimuth in polar coordinates. | -| `distance` | `float` | `m` | The point's distance from the sensor origin. | -| `timestamp` | `double` | `ns` | The time the point was detected relative to the pointcloud timestamp. | +| `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` | The point's cartesian x coordinate. | -| `y` | `float` | `m` | The point's cartesian y coordinate. | -| `z` | `float` | `m` | The point's cartesian z coordinate. | -| `intensity` | `uint8` | | The intensity of the return as reported by the sensor. | -| `return type` | `uint8` | | Whether the point was the first, strongest, last, etc. of multiple returns. | -| `channel` | `uint16` | | The ID of the laser channel that produced the point. | -| `azimuth` | `float` | `rad` | The point's azimuth in polar coordinates. | -| `elevation` | `float` | `rad` | The point's elevation in polar coordinates. | -| `distance` | `float` | `m` | The point's distance from the sensor origin. | -| `timestamp` | `uint32` | `ns` | The time the point was detected relative to the pointcloud timestamp. | +| `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` | Eevation in polar coordinates. | +| `distance` | `float` | `m` | Distance from the sensor origin. | +| `timestamp` | `uint32` | `ns` | Time of detection relative to the pointcloud timestamp. | From e129bb777c7b6895080b97f84d840ffb8fb13e3b Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 28 Jun 2024 02:56:13 +0000 Subject: [PATCH 4/7] ci(pre-commit): autofix --- build_depends.repos | 2 +- docs/point_types.md | 84 +++++++++---------- .../launch/continental_launch_all_hw.xml | 2 +- nebula_ros/schema/SRR520.schema.json | 8 +- nebula_ros/schema/sub/communication.json | 16 +++- 5 files changed, 63 insertions(+), 49 deletions(-) diff --git a/build_depends.repos b/build_depends.repos index 8e7351482..6b7e58ff7 100644 --- a/build_depends.repos +++ b/build_depends.repos @@ -8,4 +8,4 @@ repositories: ros2_socketcan: type: git url: https://github.com/knzo25/ros2_socketcan - version: feat/continental_fd \ No newline at end of file + version: feat/continental_fd diff --git a/docs/point_types.md b/docs/point_types.md index 140407709..d120e4e07 100644 --- a/docs/point_types.md +++ b/docs/point_types.md @@ -7,54 +7,54 @@ These definitions can be found in the `nebula_common/include/point_types.hpp`. ## PointXYZIR -| 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. | +| 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` | 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. | +| 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` | 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. | +| 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` | Eevation in polar coordinates. | -| `distance` | `float` | `m` | Distance from the sensor origin. | -| `timestamp` | `uint32` | `ns` | Time of detection relative to the pointcloud timestamp. | +| 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` | Eevation in polar coordinates. | +| `distance` | `float` | `m` | Distance from the sensor origin. | +| `timestamp` | `uint32` | `ns` | Time of detection relative to the pointcloud timestamp. | diff --git a/nebula_ros/launch/continental_launch_all_hw.xml b/nebula_ros/launch/continental_launch_all_hw.xml index 9e9ffe421..0255e89f9 100644 --- a/nebula_ros/launch/continental_launch_all_hw.xml +++ b/nebula_ros/launch/continental_launch_all_hw.xml @@ -17,7 +17,7 @@ - + diff --git a/nebula_ros/schema/SRR520.schema.json b/nebula_ros/schema/SRR520.schema.json index 19356adff..0c3004a64 100644 --- a/nebula_ros/schema/SRR520.schema.json +++ b/nebula_ros/schema/SRR520.schema.json @@ -60,10 +60,14 @@ "$ref": "#/definitions/SRR520" } }, - "required": ["ros__parameters"], + "required": [ + "ros__parameters" + ], "additionalProperties": false } }, - "required": ["/**"], + "required": [ + "/**" + ], "additionalProperties": false } diff --git a/nebula_ros/schema/sub/communication.json b/nebula_ros/schema/sub/communication.json index b01c22e06..f7f3b6d86 100644 --- a/nebula_ros/schema/sub/communication.json +++ b/nebula_ros/schema/sub/communication.json @@ -72,7 +72,11 @@ "ptp_profile": { "type": "string", "default": "1588v2", - "enum": ["1588v2", "802.1as", "automotive"], + "enum": [ + "1588v2", + "802.1as", + "automotive" + ], "description": "PTP profile." }, "ptp_domain": { @@ -85,13 +89,19 @@ "ptp_transport_type": { "type": "string", "default": "UDP", - "enum": ["UDP", "L2"], + "enum": [ + "UDP", + "L2" + ], "description": "1588v2 supports 'UDP' or 'L2', other profiles only L2 (HW)." }, "ptp_switch_type": { "type": "string", "default": "TSN", - "enum": ["TSN", "NON_TSN"], + "enum": [ + "TSN", + "NON_TSN" + ], "description": "For automotive profile,'TSN' or 'NON_TSN'." }, "receiver_timeout_sec": { From 045d00f39ce59b4ad26a58a86bb629cc1b94dab5 Mon Sep 17 00:00:00 2001 From: Max Schmeller <6088931+mojomex@users.noreply.github.com> Date: Fri, 28 Jun 2024 14:54:37 +0900 Subject: [PATCH 5/7] Update docs/point_types.md Co-authored-by: David Wong <33114676+drwnz@users.noreply.github.com> --- docs/point_types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/point_types.md b/docs/point_types.md index d120e4e07..4ddbdd898 100644 --- a/docs/point_types.md +++ b/docs/point_types.md @@ -55,6 +55,6 @@ These definitions can be found in the `nebula_common/include/point_types.hpp`. | `return type` | `uint8` | | Return (echo) type. | | `channel` | `uint16` | | Laser channel ID. | | `azimuth` | `float` | `rad` | Azimuth in polar coordinates. | -| `elevation` | `float` | `rad` | Eevation 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. | From 94c32d5dd2b48ceefabd7cba8ccc9e8c7bbd8b59 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 28 Jun 2024 05:55:03 +0000 Subject: [PATCH 6/7] ci(pre-commit): autofix --- docs/point_types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/point_types.md b/docs/point_types.md index 4ddbdd898..dcde09409 100644 --- a/docs/point_types.md +++ b/docs/point_types.md @@ -55,6 +55,6 @@ These definitions can be found in the `nebula_common/include/point_types.hpp`. | `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. | +| `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. | From 712668ee69e429dc9d619d1e0153b572a049f9e9 Mon Sep 17 00:00:00 2001 From: Max SCHMELLER Date: Fri, 28 Jun 2024 14:56:56 +0900 Subject: [PATCH 7/7] chore(nebula_tests): add license to parameter_descriptors --- nebula_tests/continental/parameter_descriptors.cpp | 2 ++ nebula_tests/continental/parameter_descriptors.hpp | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/nebula_tests/continental/parameter_descriptors.cpp b/nebula_tests/continental/parameter_descriptors.cpp index d2d265780..3f26adf10 100644 --- a/nebula_tests/continental/parameter_descriptors.cpp +++ b/nebula_tests/continental/parameter_descriptors.cpp @@ -1,3 +1,5 @@ +// Copyright 2024 TIER IV, Inc. + #include "parameter_descriptors.hpp" namespace nebula diff --git a/nebula_tests/continental/parameter_descriptors.hpp b/nebula_tests/continental/parameter_descriptors.hpp index 6d4e38504..db37cdb10 100644 --- a/nebula_tests/continental/parameter_descriptors.hpp +++ b/nebula_tests/continental/parameter_descriptors.hpp @@ -1,3 +1,17 @@ +// Copyright 2024 TIER IV, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + #pragma once #include