From 41eff0631999f4d1c9cf78e6035d30782a34fd4a Mon Sep 17 00:00:00 2001 From: scepter914 Date: Tue, 13 Feb 2024 19:11:54 +0900 Subject: [PATCH 01/17] add radar sensing design document Signed-off-by: scepter914 --- .../sensing/data-types/radar-data.md | 5 - .../image/radar-objects-sensing.drawio.svg | 328 ++++++++++++++++ .../image/radar-pointcloud-sensing.drawio.svg | 347 +++++++++++++++++ .../radar-data/radar-objects-data.md | 86 +++++ .../radar-data/radar-pointcloud-data.md | 73 ++++ .../supported-functions/data-message.md | 82 ++++ .../supported-functions/device-driver.md | 32 ++ .../image/radar-communication.drawio.svg | 116 ++++++ .../image/radar-driver.drawio.svg | 209 ++++++++++ .../overall-sensing-architecture.drawio.svg | 357 ++++++++++++++++++ .../autoware-architecture/sensing/index.md | 11 +- 11 files changed, 1639 insertions(+), 7 deletions(-) delete mode 100644 docs/design/autoware-architecture/sensing/data-types/radar-data.md create mode 100644 docs/design/autoware-architecture/sensing/data-types/radar-data/image/radar-objects-sensing.drawio.svg create mode 100644 docs/design/autoware-architecture/sensing/data-types/radar-data/image/radar-pointcloud-sensing.drawio.svg create mode 100644 docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md create mode 100644 docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md create mode 100644 docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/data-message.md create mode 100644 docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/device-driver.md create mode 100644 docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/image/radar-communication.drawio.svg create mode 100644 docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/image/radar-driver.drawio.svg create mode 100644 docs/design/autoware-architecture/sensing/image/overall-sensing-architecture.drawio.svg diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data.md b/docs/design/autoware-architecture/sensing/data-types/radar-data.md deleted file mode 100644 index 25d7bb0ac54..00000000000 --- a/docs/design/autoware-architecture/sensing/data-types/radar-data.md +++ /dev/null @@ -1,5 +0,0 @@ -# Radar data pre-processing design - -!!! warning - - Under Construction diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/image/radar-objects-sensing.drawio.svg b/docs/design/autoware-architecture/sensing/data-types/radar-data/image/radar-objects-sensing.drawio.svg new file mode 100644 index 00000000000..4e4ffb8914c --- /dev/null +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/image/radar-objects-sensing.drawio.svg @@ -0,0 +1,328 @@ + + + + + + + + + +
+
+
+ + + Radar Driver + +
+
+
+
+
+
+ + Radar Driver + +
+
+ + + + + + +
+
+
+ + + Communication like CAN or Ethernet + +
+
+
+
+
+
+ + Communication like CA... + +
+
+ + + + + + +
+
+
+ + + Noise Filter + +
+
+
+
+
+
+ + Noise Filter + +
+
+ + + + +
+
+
+ + + RadarScan +
+ (sensor coordinate) +
+
+
+
+
+
+
+ + RadarScan... + +
+
+ + + + +
+
+
+ + + Sensing + +
+
+
+
+
+
+ + Sensing + +
+
+ + + + +
+
+
+ + + Radar 3D +
+ Detection & Tracking +
+
+
+
+
+
+
+ + Radar 3D... + +
+
+ + + + +
+
+
+ + + Radar Device + +
+
+
+
+
+
+ + Radar Device + +
+
+ + + + +
+
+
+ + + Percetion + +
+
+
+
+
+
+ + Percetion + +
+
+ + + + + + +
+
+
+ + + Message Converter + +
+
+
+
+
+
+ + Message Converter + +
+
+ + + + + + +
+
+
+ + + Object Merger + +
+
+
+
+
+
+ + Object Merger + +
+
+ + + + +
+
+
+ + + + DetectedObjects +
+
+ (base_link coordinate) +
+
+
+
+
+
+
+ + DetectedObjects... + +
+
+ + + + + + + + + + + + +
+
+
+ + + vehicle/twist + +
+
+
+
+
+
+ + vehicle... + +
+
+ + + + + +
+
+
+ + + Pipeline for each radar + +
+
+
+
+
+
+ + Pipeline for each rada... + +
+
+ + +
+ + + + + Text is not SVG - cannot display + + + +
diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/image/radar-pointcloud-sensing.drawio.svg b/docs/design/autoware-architecture/sensing/data-types/radar-data/image/radar-pointcloud-sensing.drawio.svg new file mode 100644 index 00000000000..8b1d5bdeb38 --- /dev/null +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/image/radar-pointcloud-sensing.drawio.svg @@ -0,0 +1,347 @@ + + + + + + + + + +
+
+
+ + + Radar Driver + +
+
+
+
+
+
+ + Radar Driver + +
+
+ + + + + + +
+
+
+ + + Communication like CAN or Ethernet + +
+
+
+
+
+
+ + Communication like CA... + +
+
+ + + + + + +
+
+
+ + + Radar Static Points Filter + +
+
+
+
+
+
+ + Radar Static Points Filter + +
+
+ + + + + + + + +
+
+
+ + + vehicle/twist + +
+
+
+
+
+
+ + vehicle... + +
+
+ + + + +
+
+
+ + + Noise Filter + +
+
+
+
+
+
+ + Noise Filter + +
+
+ + + + +
+
+
+ + + RadarScan + +
+
+
+
+
+
+ + RadarScan + +
+
+ + + + +
+
+
+ + + Sensing + +
+
+
+
+
+
+ + Sensing + +
+
+ + + + + + +
+
+
+ + + Radar 3D +
+ Detection & Tracking +
+
+
+
+
+
+
+ + Radar 3D... + +
+
+ + + + +
+
+
+ + + Radar Device + +
+
+
+
+
+
+ + Radar Device + +
+
+ + + + +
+
+
+ + + RadarScan +
+ (Dynamic pointcloud) +
+
+
+
+
+
+
+ + RadarScan... + +
+
+ + + + +
+
+
+ + + Low Level Obstacle Detection +
+
+ + (e.g. ground_filter) + +
+
+
+
+
+
+ + Low Level Obstacle Dete... + +
+
+ + + + + + +
+
+
+ + + RadarScan to Pointcloud2 + +
+
+
+
+
+
+ + RadarScan to Point... + +
+
+ + + + +
+
+
+ + + + Pointcloud2 + + +
+
+
+
+
+
+ + Pointcloud2 + +
+
+ + + + + + +
+
+
+ + + Percetion + +
+
+
+
+
+
+ + Percetion + +
+
+
+ + + + + Text is not SVG - cannot display + + + +
diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md new file mode 100644 index 00000000000..187f5ccb38e --- /dev/null +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md @@ -0,0 +1,86 @@ +# Radar objects data pre-processing design + +## Overview + +### Pipeline + +This diagram describes the pre-process pipeline for radar objects. + +![radar-objects-sensing](image/radar-objects-sensing.drawio.svg) + +### Interface + +- Input + - Radar data from device + - Twist information of ego vehicle motion +- Output + - Merged radar objects information + +### Note + +- The radar pre-process package filter noise through the `ros-perception/radar_msgs/msg/RadarTrack.msg` message type with sensor coordinate. +- It is recommended to change the coordinate system from each sensor to base_link with message converter. +- If there are multiple radar objects, the object merger package concatenate these objects. + +## Input + +Autoware uses radar objects data type as [radar_msgs/msg/RadarTracks.msg](https://github.com/ros-perception/radar_msgs/blob/ros2/msg/RadarTracks.msg). +In detail, please see [Data message for radars](supported-functions/data-message.md). + +## Supported functions +### Device driver for radars + +Autoware support `ros-perception/radar_msgs/msg/RadarScan.msg` and `autoware_auto_perception_msgs/msg/TrackedObjects.msg` for Radar drivers. + +In detail, please see [Device driver for radars](supported-functions/device-driver.md). + +### Noise filter + +- [radar_tracks_noise_filter](https://github.com/autowarefoundation/autoware.universe/tree/main/sensing/radar_tracks_noise_filter) + +Radar can detect x-axis velocity as doppler velocity, but cannot detect y-axis velocity. Some radar can estimate y-axis velocity inside the device, but it sometimes lack precision. This package treats these objects as noise by y-axis threshold filter. + +### Message converter + +- [radar_tracks_msgs_converter](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/radar_tracks_msgs_converter) + +This package converts from `radar_msgs/msg/RadarTracks` into `autoware_auto_perception_msgs/msg/DetectedObject` with ego vehicle motion compensation and coordinate transform. + +### Object merger + +- [object_merger](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/object_merger) + +This package can merge 2 topics of `autoware_auto_perception_msgs/msg/DetectedObject`. + +- [simple_object_merger](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/simple_object_merger) + +This package can merge simply multiple topics of `autoware_auto_perception_msgs/msg/DetectedObject`. +Different from [object_merger](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/object_merger), this package doesn't use association algorithm and can merge with low calculation cost. + +- [topic_tools](https://github.com/ros-tooling/topic_tools) + +If a vehicle has 1 radar, the topic relay tool in `topic_tools` can be used. +Example is as below. + +```xml + + + + + + + + + + + + +``` + +## Appendix +### Discussion + +Radar architecture design is discussed as below. + +- [Discussion 2531](https://github.com/orgs/autowarefoundation/discussions/2531) +- [Discussion 2532](https://github.com/orgs/autowarefoundation/discussions/2532). diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md new file mode 100644 index 00000000000..ee5e5936478 --- /dev/null +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md @@ -0,0 +1,73 @@ +# Radar pointcloud data pre-processing design + +## Overview + +### Pipeline + +This diagram describes the pre-process pipeline for radar pointcloud. + +![radar-pointcloud-sensing](image/radar-pointcloud-sensing.drawio.svg) + +### Interface + +- Input + - Radar data from device + - Twist information of ego vehicle motion +- Output + - Dynamic radar pointcloud (`ros-perception/radar_msgs/msg/RadarScan.msg`) + - Noise filtered radar pointcloud (`sensor_msgs/msg/Pointcloud2.msg`) + +### Note + +- In the sensing layer, the radar pre-process packages filter noise through the `ros-perception/radar_msgs/msg/RadarScan.msg` message type with sensor coordinate. +- For use of radar pointcloud data by LiDAR packages, we would like to propose a converter for creating `sensor_msgs/msg/Pointcloud2.msg` from `ros-perception/radar_msgs/msg/RadarScan.msg`. + +## Supported functions +### Data message for radars + +Autoware uses radar objects data type as [radar_msgs/msg/RadarScan.msg](https://github.com/ros-perception/radar_msgs/blob/ros2/msg/RadarScan.msg). +In detail, please see [Data message for radars](supported-functions/data-message.md). + +### Device driver for radars + +Autoware support `ros-perception/radar_msgs/msg/RadarScan.msg` and `autoware_auto_perception_msgs/msg/TrackedObjects.msg` for Radar drivers. + +In detail, please see [Device driver for radars](supported-functions/device-driver.md). + +### Basic noise filter + +- [radar_threshold_filter](https://github.com/autowarefoundation/autoware.universe/tree/main/sensing/radar_threshold_filter) + +This package removes pointcloud noise with low amplitude, edge angle, too near pointcloud by threshold. + +### Filter to static/dynamic pointcloud + +- [radar_static_pointcloud_filter](https://github.com/autowarefoundation/autoware.universe/tree/main/sensing/radar_static_pointcloud_filter) + +This package extract static/dynamic radar pointcloud by using doppler velocity and ego motion. +The static radar pointcloud use for localization like NDT scan matching, and the dynamic radar pointclou use for dynamic object detection. + +### Message converter from RadarScan to Pointcloud2 + +- [radar_scan_to_pointcloud2](https://github.com/autowarefoundation/autoware.universe/tree/main/sensing/radar_scan_to_pointcloud2) + +For convenient use of radar pointcloud within existing LiDAR packages, we suggest a `radar_scan_to_pointcloud2_convertor` package for conversion from `ros-perception/radar_msgs/msg/RadarScan.msg` to `sensor_msgs/msg/Pointcloud2.msg`. + +| | LiDAR package | Radar package | +| :--------: | :-------------------------------: | :-------------------------------------------: | +| message | `sensor_msgs/msg/Pointcloud2.msg` | `ros-perception/radar_msgs/msg/RadarScan.msg` | +| coordinate | (x, y, z) | (r, θ, φ) | +| value | intensity | amplitude, doppler velocity | + +For considered use cases, + +- Use [pointcloud_preprocessor](https://github.com/autowarefoundation/autoware.universe/tree/main/sensing/pointcloud_preprocessor) for radar scan. +- Apply obstacle segmentation like [ground segmentation](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/ground_segmentation) to radar points for LiDAR-less (camera + radar) systems. + +## Appendix +### Discussion + +Radar architecture design is discussed as below. + +- [Discussion 2531](https://github.com/orgs/autowarefoundation/discussions/2531) +- [Discussion 2532](https://github.com/orgs/autowarefoundation/discussions/2532). diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/data-message.md b/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/data-message.md new file mode 100644 index 00000000000..24338e5367f --- /dev/null +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/data-message.md @@ -0,0 +1,82 @@ +# Data message for radars +## Summary + +To sum up, Autoware uses radar data type as below. + +- [radar_msgs/msg/RadarScan.msg](https://github.com/ros-perception/radar_msgs/blob/ros2/msg/RadarScan.msg) for radar pointcloud +- [radar_msgs/msg/RadarTracks.msg](https://github.com/ros-perception/radar_msgs/blob/ros2/msg/RadarTracks.msg) for radar objects. + +## Radar data message for pointcloud +### Message definition + +- + +``` +std_msgs/Header header +radar_msgs/RadarReturn[] returns +``` + +- + +``` +# All variables below are relative to the radar's frame of reference. +# This message is not meant to be used alone but as part of a stamped or array message. + +float32 range # Distance (m) from the sensor to the detected return. +float32 azimuth # Angle (in radians) in the azimuth plane between the sensor and the detected return. + # Positive angles are anticlockwise from the sensor and negative angles clockwise from the sensor as per REP-0103. +float32 elevation # Angle (in radians) in the elevation plane between the sensor and the detected return. + # Negative angles are below the sensor. For 2D radar, this will be 0. +float32 doppler_velocity # The doppler speeds (m/s) of the return. +float32 amplitude # The amplitude of the of the return (dB) +``` + +## Radar data message for tracked objects +### Message definition + +- [radar_msgs/msg/RadarTrack.msg](https://github.com/ros-perception/radar_msgs/blob/ros2/msg/RadarTrack.msg) + +``` +# Object classifications (Additional vendor-specific classifications are permitted starting from 32000 eg. Car) +uint16 NO_CLASSIFICATION=0 +uint16 STATIC=1 +uint16 DYNAMIC=2 + +unique_identifier_msgs/UUID uuid # A unique ID of the object generated by the radar. + # Note: The z component of these fields is ignored for 2D tracking. +geometry_msgs/Point position # x, y, z coordinates of the centroid of the object being tracked. +geometry_msgs/Vector3 velocity # The velocity of the object in each spatial dimension. +geometry_msgs/Vector3 acceleration # The acceleration of the object in each spatial dimension. +geometry_msgs/Vector3 size # The object size as represented by the radar sensor eg. length, width, height OR the diameter of an ellipsoid in the x, y, z, dimensions + # and is from the sensor frame's view. +uint16 classification # An optional classification of the object (see above) +float32[6] position_covariance # Upper-triangle covariance about the x, y, z axes +float32[6] velocity_covariance # Upper-triangle covariance about the x, y, z axes +float32[6] acceleration_covariance # Upper-triangle covariance about the x, y, z axes +float32[6] size_covariance # Upper-triangle covariance about the x, y, z axes +``` + +### Message usage for RadarTracks + +- Object classifications + +For object classifications [radar_msgs/msg/RadarTrack.msg](https://github.com/ros-perception/radar_msgs/blob/ros2/msg/RadarTrack.msg), additional vendor-specific classifications are permitted starting from 32000. +In addition to this, considering [existing label definition](https://gitlab.com/autowarefoundation/autoware.auto/autoware_auto_msgs/-/blob/master/autoware_auto_perception_msgs/msg/ObjectClassification.idl), Autoware define object classifications as below. + +``` +uint16 UNKNOWN = 32000; +uint16 CAR = 32001; +uint16 TRUCK = 32002; +uint16 BUS = 32003; +uint16 TRAILER = 32004; +uint16 MOTORCYCLE = 32005; +uint16 BICYCLE = 32006; +uint16 PEDESTRIAN = 32007; +``` + +For detail implementation, please see [radar_tracks_msgs_converter](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/radar_tracks_msgs_converter). + +## Note +### Survey for radar message + +Depending on the sensor manufacturer and its purpose, each sensor might exchange raw, post-processed data. This section introduces a survey about the previously developed messaging systems in the open-source community. Although there are many kinds of outputs, radar mainly adopt two types as outputs, pointcloud and objects. Related discussion for message definition in ros-perception are [PR #1](https://github.com/ros-perception/radar_msgs/pull/1), [PR #2](https://github.com/ros-perception/radar_msgs/pull/2), and [PR #3](https://github.com/ros-perception/radar_msgs/pull/3). Existing open source softwares for radar are summarized in these PR. diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/device-driver.md b/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/device-driver.md new file mode 100644 index 00000000000..14f68d031fc --- /dev/null +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/device-driver.md @@ -0,0 +1,32 @@ +# Device driver for radars +## Interface for radar devices + +The radar driver converts the communication data from radars to ROS2 topics. +The following communication types are considered: + +- CAN +- CAN-FD +- Ethernet + +![draw.io figure](image/radar-communication.drawio.svg) + +## Software Interface + +Autoware support `ros-perception/radar_msgs/msg/RadarScan.msg` and `autoware_auto_perception_msgs/msg/TrackedObjects.msg` for Radar drivers. + +![draw.io figure](image/radar-driver.drawio.svg) + +ROS driver receive the data from radar devices. + +- Scan (pointcloud) +- Tracked objects +- Diagnostics results + +The ROS drivers receives the following data from the radar device. + +- Time synchronization +- Ego vehicle status, which often need for tracked objects calculation + +## Radar driver example + +- [ARS408 driver](https://github.com/tier4/ars408_driver) diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/image/radar-communication.drawio.svg b/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/image/radar-communication.drawio.svg new file mode 100644 index 00000000000..80a145abcdc --- /dev/null +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/image/radar-communication.drawio.svg @@ -0,0 +1,116 @@ + + + + + + + + + +
+
+
+ + + - RadarScan +
+ - RadarTracks +
+
+ + - Diagnostics + +
+
+
+
+
+
+
+ + - RadarScan... + +
+
+ + + + +
+
+
+ + ROS Driver +
+
+
+
+
+
+ + ROS Driver + +
+
+ + + + +
+
+
+ + Radar +
+ Device +
+
+
+
+
+
+ + Radar... + +
+
+ + + + + + +
+
+
+
+ + - Time synchronization + +
+ +
+ + - Ego vehicle status + +
+
+
+
+
+
+ + - Time synchronization- Ego ve... + +
+
+
+ + + + + Viewer does not support full SVG 1.1 + + + +
diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/image/radar-driver.drawio.svg b/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/image/radar-driver.drawio.svg new file mode 100644 index 00000000000..0005d67b670 --- /dev/null +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/image/radar-driver.drawio.svg @@ -0,0 +1,209 @@ + + + + + + + + +
+
+
+ + Target +
+ Detection +
+
+
+
+
+
+ + Target... + +
+
+ + + + + + + + +
+
+
+ + Object +
+ Tracking +
+
+
+
+
+
+ + Object... + +
+
+ + + + + + + + + + + + + + + + + + + + +
+
+
+ + + RadarScan + +
+
+
+
+
+
+ + RadarScan + +
+
+ + + +
+
+
+ + + RadarTracks + +
+
+
+
+
+
+ + RadarTracks + +
+
+ + + + +
+
+
+ + Anntena +
+
+
+
+
+
+ + Anntena + +
+
+ + + + +
+
+
+ + Occupancy +
+ Grid +
+
+
+
+
+
+ + Occupancy... + +
+
+ + + + + + + +
+
+
+ + + Radar Internal + +
+
+
+
+
+
+ + Radar Interna... + +
+
+ + + +
+
+
+ + + CostMap + +
+
+
+
+
+
+ + CostMap + +
+
+
+ + + + + Viewer does not support full SVG 1.1 + + + +
diff --git a/docs/design/autoware-architecture/sensing/image/overall-sensing-architecture.drawio.svg b/docs/design/autoware-architecture/sensing/image/overall-sensing-architecture.drawio.svg new file mode 100644 index 00000000000..9bfdfc68005 --- /dev/null +++ b/docs/design/autoware-architecture/sensing/image/overall-sensing-architecture.drawio.svg @@ -0,0 +1,357 @@ + + + + + + + + + + +
+
+
+ + Radar +
+
+
+
+
+
+ + Radar + +
+
+ + + + + + + + +
+
+
+ + Radar Preprocess +
+
+
+
+
+
+ + Radar Preprocess + +
+
+ + + + +
+
+
+ + + radar_msgs +
+ /RadarScan +
+
+
+
+
+
+
+ + radar_msgs... + +
+
+ + + + +
+
+
+ + Camera +
+
+
+
+
+
+ + Camera + +
+
+ + + + +
+
+
+ + Camera Preprocess +
+
+
+
+
+
+ + Camera Preprocess + +
+
+ + + + + + + + +
+
+
+ + LiDAR +
+
+
+
+
+
+ + LiDAR + +
+
+ + + + +
+
+
+ + LiDAR Preprocess +
+
+
+
+
+
+ + LiDAR Preprocess + +
+
+ + + + +
+
+
+ + + sensor_msgs +
+ /Pointcloud2 +
+
+
+
+
+
+
+ + sensor_msgs... + +
+
+ + + + + + +
+
+
+ + Perception +
+
+
+
+
+
+ + Perception + +
+
+ + + + + + +
+
+
+ + + radar_msgs +
+ /RadarTracks +
+
+
+
+
+
+
+ + radar_msgs... + +
+
+ + + + +
+
+
+ + + sensor_msgs +
+ /Image +
+
+
+
+
+
+
+ + sensor_msgs... + +
+
+ + + + + +
+
+
+ + Localization +
+
+
+
+
+
+ + Localization + +
+
+ + + + + + +
+
+
+ + GNSS/INS +
+
+
+
+
+
+ + GNSS/INS + +
+
+ + + + +
+
+
+ + GNSS/INS Preprocess +
+
+
+
+
+
+ + GNSS/INS Preprocess + +
+
+ + + + + + + + + + +
+
+
+ + + Sensing + +
+
+
+
+
+
+ + Sensing + +
+
+ + +
+ + + + + Text is not SVG - cannot display + + + +
diff --git a/docs/design/autoware-architecture/sensing/index.md b/docs/design/autoware-architecture/sensing/index.md index c6632ad04a9..3102baf3f5c 100644 --- a/docs/design/autoware-architecture/sensing/index.md +++ b/docs/design/autoware-architecture/sensing/index.md @@ -11,13 +11,19 @@ The sensor input formats are defined in this component. - Abstraction of data formats to enable usage of sensors from various vendors - Perform common/primitive sensor data processing required by each component +## High-level architecture + +This diagram describes the high-level architecture of the Sensing Component. + +![overall-sensing-architecture](image/overall-sensing-architecture.drawio.svg) + ## Inputs ### Input types | Sensor Data | Message Type | | -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Point cloud (Lidars, depth cameras, etc.) | [sensor_msgs/msg/PointCloud2.msg](https://github.com/ros2/common_interfaces/blob/rolling/sensor_msgs/msg/PointCloud2.msg) | +| Point cloud (LiDARs, depth cameras, etc.) | [sensor_msgs/msg/PointCloud2.msg](https://github.com/ros2/common_interfaces/blob/rolling/sensor_msgs/msg/PointCloud2.msg) | | Image (RGB, monochrome, depth, etc. cameras) | [sensor_msgs/msg/Image.msg](https://github.com/ros2/common_interfaces/blob/rolling/sensor_msgs/msg/Image.msg) | | Radar scan | [radar_msgs/msg/RadarScan.msg](https://github.com/ros-perception/radar_msgs/blob/ros2/msg/RadarScan.msg) | | Radar tracks | [radar_msgs/msg/RadarTracks.msg](https://github.com/ros-perception/radar_msgs/blob/ros2/msg/RadarTracks.msg) | @@ -32,5 +38,6 @@ The sensor input formats are defined in this component. - [GNSS/INS data pre-processing design](data-types/gnss-ins-data.md) - [Image pre-processing design](data-types/image.md) - [Point cloud pre-processing design](data-types/point-cloud.md) -- [Radar data pre-processing design](data-types/radar-data.md) +- [Radar pointcloud data pre-processing design](data-types/radar-data/radar-pointcloud-data.md) +- [Radar objects data pre-processing design](data-types/radar-data/radar-objects-data.md) - [Ultrasonics data pre-processing design](data-types/ultrasonics-data.md) From 15b5c49df95f8aba2b158d013bc16a90fe238476 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 13 Feb 2024 10:19:10 +0000 Subject: [PATCH 02/17] style(pre-commit): autofix --- .../sensing/data-types/radar-data/radar-objects-data.md | 2 ++ .../sensing/data-types/radar-data/radar-pointcloud-data.md | 2 ++ .../radar-data/supported-functions/data-message.md | 6 +++++- .../radar-data/supported-functions/device-driver.md | 1 + 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md index 187f5ccb38e..31c66ddd2ba 100644 --- a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md @@ -28,6 +28,7 @@ Autoware uses radar objects data type as [radar_msgs/msg/RadarTracks.msg](https: In detail, please see [Data message for radars](supported-functions/data-message.md). ## Supported functions + ### Device driver for radars Autoware support `ros-perception/radar_msgs/msg/RadarScan.msg` and `autoware_auto_perception_msgs/msg/TrackedObjects.msg` for Radar drivers. @@ -78,6 +79,7 @@ Example is as below. ``` ## Appendix + ### Discussion Radar architecture design is discussed as below. diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md index ee5e5936478..95f361e18e3 100644 --- a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md @@ -23,6 +23,7 @@ This diagram describes the pre-process pipeline for radar pointcloud. - For use of radar pointcloud data by LiDAR packages, we would like to propose a converter for creating `sensor_msgs/msg/Pointcloud2.msg` from `ros-perception/radar_msgs/msg/RadarScan.msg`. ## Supported functions + ### Data message for radars Autoware uses radar objects data type as [radar_msgs/msg/RadarScan.msg](https://github.com/ros-perception/radar_msgs/blob/ros2/msg/RadarScan.msg). @@ -65,6 +66,7 @@ For considered use cases, - Apply obstacle segmentation like [ground segmentation](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/ground_segmentation) to radar points for LiDAR-less (camera + radar) systems. ## Appendix + ### Discussion Radar architecture design is discussed as below. diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/data-message.md b/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/data-message.md index 24338e5367f..a2d7e201ceb 100644 --- a/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/data-message.md +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/data-message.md @@ -1,4 +1,5 @@ # Data message for radars + ## Summary To sum up, Autoware uses radar data type as below. @@ -7,6 +8,7 @@ To sum up, Autoware uses radar data type as below. - [radar_msgs/msg/RadarTracks.msg](https://github.com/ros-perception/radar_msgs/blob/ros2/msg/RadarTracks.msg) for radar objects. ## Radar data message for pointcloud + ### Message definition - @@ -32,6 +34,7 @@ float32 amplitude # The amplitude of the of the return (d ``` ## Radar data message for tracked objects + ### Message definition - [radar_msgs/msg/RadarTrack.msg](https://github.com/ros-perception/radar_msgs/blob/ros2/msg/RadarTrack.msg) @@ -77,6 +80,7 @@ uint16 PEDESTRIAN = 32007; For detail implementation, please see [radar_tracks_msgs_converter](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/radar_tracks_msgs_converter). ## Note + ### Survey for radar message -Depending on the sensor manufacturer and its purpose, each sensor might exchange raw, post-processed data. This section introduces a survey about the previously developed messaging systems in the open-source community. Although there are many kinds of outputs, radar mainly adopt two types as outputs, pointcloud and objects. Related discussion for message definition in ros-perception are [PR #1](https://github.com/ros-perception/radar_msgs/pull/1), [PR #2](https://github.com/ros-perception/radar_msgs/pull/2), and [PR #3](https://github.com/ros-perception/radar_msgs/pull/3). Existing open source softwares for radar are summarized in these PR. +Depending on the sensor manufacturer and its purpose, each sensor might exchange raw, post-processed data. This section introduces a survey about the previously developed messaging systems in the open-source community. Although there are many kinds of outputs, radar mainly adopt two types as outputs, pointcloud and objects. Related discussion for message definition in ros-perception are [PR #1](https://github.com/ros-perception/radar_msgs/pull/1), [PR #2](https://github.com/ros-perception/radar_msgs/pull/2), and [PR #3](https://github.com/ros-perception/radar_msgs/pull/3). Existing open source softwares for radar are summarized in these PR. diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/device-driver.md b/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/device-driver.md index 14f68d031fc..ec050fadc41 100644 --- a/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/device-driver.md +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/device-driver.md @@ -1,4 +1,5 @@ # Device driver for radars + ## Interface for radar devices The radar driver converts the communication data from radars to ROS2 topics. From f4e2c0be0d71b0c076aad8675e63bec79ca1c3ec Mon Sep 17 00:00:00 2001 From: scepter914 Date: Wed, 14 Feb 2024 06:51:57 +0900 Subject: [PATCH 03/17] update document Signed-off-by: scepter914 --- .../radar-data/supported-functions/data-message.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/data-message.md b/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/data-message.md index a2d7e201ceb..103054b9d09 100644 --- a/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/data-message.md +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/data-message.md @@ -13,14 +13,14 @@ To sum up, Autoware uses radar data type as below. - -``` +```sh std_msgs/Header header radar_msgs/RadarReturn[] returns ``` - -``` +```sh # All variables below are relative to the radar's frame of reference. # This message is not meant to be used alone but as part of a stamped or array message. @@ -39,7 +39,7 @@ float32 amplitude # The amplitude of the of the return (d - [radar_msgs/msg/RadarTrack.msg](https://github.com/ros-perception/radar_msgs/blob/ros2/msg/RadarTrack.msg) -``` +```sh # Object classifications (Additional vendor-specific classifications are permitted starting from 32000 eg. Car) uint16 NO_CLASSIFICATION=0 uint16 STATIC=1 @@ -66,7 +66,7 @@ float32[6] size_covariance # Upper-triangle covariance about th For object classifications [radar_msgs/msg/RadarTrack.msg](https://github.com/ros-perception/radar_msgs/blob/ros2/msg/RadarTrack.msg), additional vendor-specific classifications are permitted starting from 32000. In addition to this, considering [existing label definition](https://gitlab.com/autowarefoundation/autoware.auto/autoware_auto_msgs/-/blob/master/autoware_auto_perception_msgs/msg/ObjectClassification.idl), Autoware define object classifications as below. -``` +```sh uint16 UNKNOWN = 32000; uint16 CAR = 32001; uint16 TRUCK = 32002; From 22ae4fe055d01fa2b270a5eab3ebc635f5325c4a Mon Sep 17 00:00:00 2001 From: scepter914 Date: Mon, 19 Feb 2024 18:00:35 +0900 Subject: [PATCH 04/17] fix typo Signed-off-by: scepter914 --- .../sensing/data-types/radar-data/radar-pointcloud-data.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md index 95f361e18e3..3130961bd49 100644 --- a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md @@ -46,7 +46,7 @@ This package removes pointcloud noise with low amplitude, edge angle, too near p - [radar_static_pointcloud_filter](https://github.com/autowarefoundation/autoware.universe/tree/main/sensing/radar_static_pointcloud_filter) This package extract static/dynamic radar pointcloud by using doppler velocity and ego motion. -The static radar pointcloud use for localization like NDT scan matching, and the dynamic radar pointclou use for dynamic object detection. +The static radar pointcloud use for localization like NDT scan matching, and the dynamic radar pointcloud use for dynamic object detection. ### Message converter from RadarScan to Pointcloud2 From 03ba9be04565ebc102a0619a59c265c89e5b4b38 Mon Sep 17 00:00:00 2001 From: scepter914 Date: Mon, 19 Feb 2024 19:01:28 +0900 Subject: [PATCH 05/17] fix from supported-function to reference-implementation Signed-off-by: scepter914 --- .../sensing/data-types/radar-data/radar-objects-data.md | 2 +- .../sensing/data-types/radar-data/radar-pointcloud-data.md | 4 ++-- .../data-message.md | 0 .../device-driver.md | 0 .../image/radar-communication.drawio.svg | 0 .../image/radar-driver.drawio.svg | 0 6 files changed, 3 insertions(+), 3 deletions(-) rename docs/design/autoware-architecture/sensing/data-types/radar-data/{supported-functions => reference-implementations}/data-message.md (100%) rename docs/design/autoware-architecture/sensing/data-types/radar-data/{supported-functions => reference-implementations}/device-driver.md (100%) rename docs/design/autoware-architecture/sensing/data-types/radar-data/{supported-functions => reference-implementations}/image/radar-communication.drawio.svg (100%) rename docs/design/autoware-architecture/sensing/data-types/radar-data/{supported-functions => reference-implementations}/image/radar-driver.drawio.svg (100%) diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md index 31c66ddd2ba..1c221c38ce2 100644 --- a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md @@ -27,7 +27,7 @@ This diagram describes the pre-process pipeline for radar objects. Autoware uses radar objects data type as [radar_msgs/msg/RadarTracks.msg](https://github.com/ros-perception/radar_msgs/blob/ros2/msg/RadarTracks.msg). In detail, please see [Data message for radars](supported-functions/data-message.md). -## Supported functions +## Reference implementations ### Device driver for radars diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md index 3130961bd49..0cfdd5db439 100644 --- a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md @@ -27,13 +27,13 @@ This diagram describes the pre-process pipeline for radar pointcloud. ### Data message for radars Autoware uses radar objects data type as [radar_msgs/msg/RadarScan.msg](https://github.com/ros-perception/radar_msgs/blob/ros2/msg/RadarScan.msg). -In detail, please see [Data message for radars](supported-functions/data-message.md). +In detail, please see [Data message for radars](reference-implementations/data-message.md). ### Device driver for radars Autoware support `ros-perception/radar_msgs/msg/RadarScan.msg` and `autoware_auto_perception_msgs/msg/TrackedObjects.msg` for Radar drivers. -In detail, please see [Device driver for radars](supported-functions/device-driver.md). +In detail, please see [Device driver for radars](reference-implementations/device-driver.md). ### Basic noise filter diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/data-message.md b/docs/design/autoware-architecture/sensing/data-types/radar-data/reference-implementations/data-message.md similarity index 100% rename from docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/data-message.md rename to docs/design/autoware-architecture/sensing/data-types/radar-data/reference-implementations/data-message.md diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/device-driver.md b/docs/design/autoware-architecture/sensing/data-types/radar-data/reference-implementations/device-driver.md similarity index 100% rename from docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/device-driver.md rename to docs/design/autoware-architecture/sensing/data-types/radar-data/reference-implementations/device-driver.md diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/image/radar-communication.drawio.svg b/docs/design/autoware-architecture/sensing/data-types/radar-data/reference-implementations/image/radar-communication.drawio.svg similarity index 100% rename from docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/image/radar-communication.drawio.svg rename to docs/design/autoware-architecture/sensing/data-types/radar-data/reference-implementations/image/radar-communication.drawio.svg diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/image/radar-driver.drawio.svg b/docs/design/autoware-architecture/sensing/data-types/radar-data/reference-implementations/image/radar-driver.drawio.svg similarity index 100% rename from docs/design/autoware-architecture/sensing/data-types/radar-data/supported-functions/image/radar-driver.drawio.svg rename to docs/design/autoware-architecture/sensing/data-types/radar-data/reference-implementations/image/radar-driver.drawio.svg From fab964c17a773289122fb08ae59fbc5a87d5d0b5 Mon Sep 17 00:00:00 2001 From: scepter914 Date: Mon, 19 Feb 2024 19:03:11 +0900 Subject: [PATCH 06/17] fix from supported-function to reference-implementation Signed-off-by: scepter914 --- .../sensing/data-types/radar-data/radar-pointcloud-data.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md index 0cfdd5db439..65f65705c71 100644 --- a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md @@ -22,7 +22,7 @@ This diagram describes the pre-process pipeline for radar pointcloud. - In the sensing layer, the radar pre-process packages filter noise through the `ros-perception/radar_msgs/msg/RadarScan.msg` message type with sensor coordinate. - For use of radar pointcloud data by LiDAR packages, we would like to propose a converter for creating `sensor_msgs/msg/Pointcloud2.msg` from `ros-perception/radar_msgs/msg/RadarScan.msg`. -## Supported functions +## Reference implementations ### Data message for radars From 59a229667543b44f7957308fe845b08064399923 Mon Sep 17 00:00:00 2001 From: Satoshi Tanaka <16330533+scepter914@users.noreply.github.com> Date: Tue, 20 Feb 2024 14:20:33 +0900 Subject: [PATCH 07/17] Update docs/design/autoware-architecture/sensing/data-types/radar-data/reference-implementations/device-driver.md Co-authored-by: Shintaro Tomie <58775300+Shin-kyoto@users.noreply.github.com> Signed-off-by: scepter914 --- .../radar-data/reference-implementations/device-driver.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/reference-implementations/device-driver.md b/docs/design/autoware-architecture/sensing/data-types/radar-data/reference-implementations/device-driver.md index ec050fadc41..13067deb8cb 100644 --- a/docs/design/autoware-architecture/sensing/data-types/radar-data/reference-implementations/device-driver.md +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/reference-implementations/device-driver.md @@ -2,7 +2,7 @@ ## Interface for radar devices -The radar driver converts the communication data from radars to ROS2 topics. +The radar driver converts the communication data from radars to ROS 2 topics. The following communication types are considered: - CAN From 5ed9a17f1676ba28bb3422f177b98327f99f7602 Mon Sep 17 00:00:00 2001 From: Satoshi Tanaka <16330533+scepter914@users.noreply.github.com> Date: Tue, 20 Feb 2024 14:20:38 +0900 Subject: [PATCH 08/17] Update docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md Co-authored-by: Shintaro Tomie <58775300+Shin-kyoto@users.noreply.github.com> Signed-off-by: scepter914 --- .../sensing/data-types/radar-data/radar-objects-data.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md index 1c221c38ce2..240ad80faf1 100644 --- a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md @@ -25,7 +25,7 @@ This diagram describes the pre-process pipeline for radar objects. ## Input Autoware uses radar objects data type as [radar_msgs/msg/RadarTracks.msg](https://github.com/ros-perception/radar_msgs/blob/ros2/msg/RadarTracks.msg). -In detail, please see [Data message for radars](supported-functions/data-message.md). +In detail, please see [Data message for radars](reference-implementations/data-message.md). ## Reference implementations From f9da4fda3618e1bd9ee91da405e4e4751245f336 Mon Sep 17 00:00:00 2001 From: Satoshi Tanaka <16330533+scepter914@users.noreply.github.com> Date: Tue, 20 Feb 2024 14:20:44 +0900 Subject: [PATCH 09/17] Update docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md Co-authored-by: Shintaro Tomie <58775300+Shin-kyoto@users.noreply.github.com> Signed-off-by: scepter914 --- .../sensing/data-types/radar-data/radar-objects-data.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md index 240ad80faf1..b95888cb784 100644 --- a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md @@ -20,7 +20,7 @@ This diagram describes the pre-process pipeline for radar objects. - The radar pre-process package filter noise through the `ros-perception/radar_msgs/msg/RadarTrack.msg` message type with sensor coordinate. - It is recommended to change the coordinate system from each sensor to base_link with message converter. -- If there are multiple radar objects, the object merger package concatenate these objects. +- If there are multiple radar objects, the object merger package concatenates these objects. ## Input From 966ba2d0bb078bbe8a0c3a94e7dc4435da439145 Mon Sep 17 00:00:00 2001 From: Satoshi Tanaka <16330533+scepter914@users.noreply.github.com> Date: Tue, 20 Feb 2024 14:20:48 +0900 Subject: [PATCH 10/17] Update docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md Co-authored-by: Shintaro Tomie <58775300+Shin-kyoto@users.noreply.github.com> Signed-off-by: scepter914 --- .../sensing/data-types/radar-data/radar-objects-data.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md index b95888cb784..21719073ef5 100644 --- a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md @@ -33,7 +33,7 @@ In detail, please see [Data message for radars](reference-implementations/data-m Autoware support `ros-perception/radar_msgs/msg/RadarScan.msg` and `autoware_auto_perception_msgs/msg/TrackedObjects.msg` for Radar drivers. -In detail, please see [Device driver for radars](supported-functions/device-driver.md). +In detail, please see [Device driver for radars](reference-implementations/device-driver.md). ### Noise filter From 738860a97c18b9edd040fd739eaf5181c1b3230b Mon Sep 17 00:00:00 2001 From: Satoshi Tanaka <16330533+scepter914@users.noreply.github.com> Date: Tue, 20 Feb 2024 14:20:56 +0900 Subject: [PATCH 11/17] Update docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md Co-authored-by: Shintaro Tomie <58775300+Shin-kyoto@users.noreply.github.com> Signed-off-by: scepter914 --- .../sensing/data-types/radar-data/radar-objects-data.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md index 21719073ef5..29ee7b47749 100644 --- a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md @@ -31,7 +31,7 @@ In detail, please see [Data message for radars](reference-implementations/data-m ### Device driver for radars -Autoware support `ros-perception/radar_msgs/msg/RadarScan.msg` and `autoware_auto_perception_msgs/msg/TrackedObjects.msg` for Radar drivers. +Autoware supports `ros-perception/radar_msgs/msg/RadarScan.msg` and `autoware_auto_perception_msgs/msg/TrackedObjects.msg` for Radar drivers. In detail, please see [Device driver for radars](reference-implementations/device-driver.md). From edd574fcb82cfa96d01bc06cc56ec12c835ca2e2 Mon Sep 17 00:00:00 2001 From: Satoshi Tanaka <16330533+scepter914@users.noreply.github.com> Date: Tue, 20 Feb 2024 14:21:02 +0900 Subject: [PATCH 12/17] Update docs/design/autoware-architecture/sensing/data-types/radar-data/reference-implementations/data-message.md Co-authored-by: Shintaro Tomie <58775300+Shin-kyoto@users.noreply.github.com> Signed-off-by: scepter914 --- .../radar-data/reference-implementations/data-message.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/reference-implementations/data-message.md b/docs/design/autoware-architecture/sensing/data-types/radar-data/reference-implementations/data-message.md index 103054b9d09..48626f92480 100644 --- a/docs/design/autoware-architecture/sensing/data-types/radar-data/reference-implementations/data-message.md +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/reference-implementations/data-message.md @@ -11,7 +11,7 @@ To sum up, Autoware uses radar data type as below. ### Message definition -- +- [ros2/msg/RadarScan.msg](https://github.com/ros-perception/radar_msgs/blob/ros2/msg/RadarScan.msg) ```sh std_msgs/Header header From 27cc117f0458312c8c9dac997934142b64629e6b Mon Sep 17 00:00:00 2001 From: Satoshi Tanaka <16330533+scepter914@users.noreply.github.com> Date: Tue, 20 Feb 2024 14:21:08 +0900 Subject: [PATCH 13/17] Update docs/design/autoware-architecture/sensing/data-types/radar-data/reference-implementations/data-message.md Co-authored-by: Shintaro Tomie <58775300+Shin-kyoto@users.noreply.github.com> Signed-off-by: scepter914 --- .../radar-data/reference-implementations/data-message.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/reference-implementations/data-message.md b/docs/design/autoware-architecture/sensing/data-types/radar-data/reference-implementations/data-message.md index 48626f92480..f83647309a0 100644 --- a/docs/design/autoware-architecture/sensing/data-types/radar-data/reference-implementations/data-message.md +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/reference-implementations/data-message.md @@ -18,7 +18,7 @@ std_msgs/Header header radar_msgs/RadarReturn[] returns ``` -- +- [ros2/msg/RadarReturn.msg](https://github.com/ros-perception/radar_msgs/blob/ros2/msg/RadarReturn.msg) ```sh # All variables below are relative to the radar's frame of reference. From 4a3421c28e7caec1c771632ccfdc679b7f6f3f4f Mon Sep 17 00:00:00 2001 From: Satoshi Tanaka <16330533+scepter914@users.noreply.github.com> Date: Tue, 20 Feb 2024 14:22:36 +0900 Subject: [PATCH 14/17] Update docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md Co-authored-by: Shintaro Tomie <58775300+Shin-kyoto@users.noreply.github.com> Signed-off-by: scepter914 --- .../sensing/data-types/radar-data/radar-pointcloud-data.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md index 65f65705c71..759b9b9233f 100644 --- a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md @@ -45,7 +45,7 @@ This package removes pointcloud noise with low amplitude, edge angle, too near p - [radar_static_pointcloud_filter](https://github.com/autowarefoundation/autoware.universe/tree/main/sensing/radar_static_pointcloud_filter) -This package extract static/dynamic radar pointcloud by using doppler velocity and ego motion. +This package extracts static/dynamic radar pointcloud by using doppler velocity and ego motion. The static radar pointcloud use for localization like NDT scan matching, and the dynamic radar pointcloud use for dynamic object detection. ### Message converter from RadarScan to Pointcloud2 From 78db2a231bfc48fc1d7125b6f0799d8a0a270741 Mon Sep 17 00:00:00 2001 From: Satoshi Tanaka <16330533+scepter914@users.noreply.github.com> Date: Tue, 20 Feb 2024 14:22:48 +0900 Subject: [PATCH 15/17] Update docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md Co-authored-by: Shintaro Tomie <58775300+Shin-kyoto@users.noreply.github.com> Signed-off-by: scepter914 --- .../sensing/data-types/radar-data/radar-pointcloud-data.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md index 759b9b9233f..3ed57b5e809 100644 --- a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md @@ -46,7 +46,7 @@ This package removes pointcloud noise with low amplitude, edge angle, too near p - [radar_static_pointcloud_filter](https://github.com/autowarefoundation/autoware.universe/tree/main/sensing/radar_static_pointcloud_filter) This package extracts static/dynamic radar pointcloud by using doppler velocity and ego motion. -The static radar pointcloud use for localization like NDT scan matching, and the dynamic radar pointcloud use for dynamic object detection. +The static radar pointcloud can be used for localization like NDT scan matching, and the dynamic radar pointcloud can be used for dynamic object detection. ### Message converter from RadarScan to Pointcloud2 From 99cd70c485d50216e04c0ae3088c2ffb9b5bdeb1 Mon Sep 17 00:00:00 2001 From: Satoshi Tanaka <16330533+scepter914@users.noreply.github.com> Date: Tue, 20 Feb 2024 14:23:12 +0900 Subject: [PATCH 16/17] Update docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md Co-authored-by: Shintaro Tomie <58775300+Shin-kyoto@users.noreply.github.com> Signed-off-by: scepter914 --- .../sensing/data-types/radar-data/radar-objects-data.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md index 29ee7b47749..e427fb77ed1 100644 --- a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-objects-data.md @@ -18,7 +18,7 @@ This diagram describes the pre-process pipeline for radar objects. ### Note -- The radar pre-process package filter noise through the `ros-perception/radar_msgs/msg/RadarTrack.msg` message type with sensor coordinate. +- The radar pre-process package filters noise through the `ros-perception/radar_msgs/msg/RadarTrack.msg` message type with sensor coordinate. - It is recommended to change the coordinate system from each sensor to base_link with message converter. - If there are multiple radar objects, the object merger package concatenates these objects. From df7efc66ba9220bd82ed28d922263776fd75634d Mon Sep 17 00:00:00 2001 From: scepter914 Date: Tue, 20 Feb 2024 14:39:07 +0900 Subject: [PATCH 17/17] fix documents Signed-off-by: scepter914 --- .../sensing/data-types/radar-data/radar-pointcloud-data.md | 1 + .../radar-data/reference-implementations/data-message.md | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md index 3ed57b5e809..097a3a2a81d 100644 --- a/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/radar-pointcloud-data.md @@ -40,6 +40,7 @@ In detail, please see [Device driver for radars](reference-implementations/devic - [radar_threshold_filter](https://github.com/autowarefoundation/autoware.universe/tree/main/sensing/radar_threshold_filter) This package removes pointcloud noise with low amplitude, edge angle, too near pointcloud by threshold. +The noise depends on the radar devices and installation location. ### Filter to static/dynamic pointcloud diff --git a/docs/design/autoware-architecture/sensing/data-types/radar-data/reference-implementations/data-message.md b/docs/design/autoware-architecture/sensing/data-types/radar-data/reference-implementations/data-message.md index f83647309a0..8f210214969 100644 --- a/docs/design/autoware-architecture/sensing/data-types/radar-data/reference-implementations/data-message.md +++ b/docs/design/autoware-architecture/sensing/data-types/radar-data/reference-implementations/data-message.md @@ -63,8 +63,9 @@ float32[6] size_covariance # Upper-triangle covariance about th - Object classifications -For object classifications [radar_msgs/msg/RadarTrack.msg](https://github.com/ros-perception/radar_msgs/blob/ros2/msg/RadarTrack.msg), additional vendor-specific classifications are permitted starting from 32000. -In addition to this, considering [existing label definition](https://gitlab.com/autowarefoundation/autoware.auto/autoware_auto_msgs/-/blob/master/autoware_auto_perception_msgs/msg/ObjectClassification.idl), Autoware define object classifications as below. +In object classifications of [radar_msgs/msg/RadarTrack.msg](https://github.com/ros-perception/radar_msgs/blob/ros2/msg/RadarTrack.msg), additional classifications label can be used by the number starting from 32000. + +To express for [Autoware label definition](https://gitlab.com/autowarefoundation/autoware.auto/autoware_auto_msgs/-/blob/master/autoware_auto_perception_msgs/msg/ObjectClassification.idl), Autoware defines object classifications for `RadarTracks.msg` as below. ```sh uint16 UNKNOWN = 32000;