Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

docs: update readme of concatenate data (#751) #191

Merged
merged 5 commits into from
Dec 16, 2021
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 20 additions & 20 deletions sensing/pointcloud_preprocessor/docs/concatenate-data.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,38 @@

## Purpose

The `concatenate_data` is a node that concatenates multiple pointclouds acquired by multiple LiDARs into a pointcloud.
Many self-driving cars combine multiple LiDARs to expand the sensing range. Therefore, a function to combine a plurality of point clouds is required.

To combine multiple sensor data with a similar timestamp, the [message_filters](https://github.com/ros2/message_filters) is often used in the ROS-based system, but this requires the assumption that all inputs can be received. Since safety must be strongly considered in autonomous driving, the point clouds concatenate node must be designed so that even if one sensor fails, the remaining sensor information can be output.

## Inner-workings / Algorithms

The figure below represents the reception time of each sensor data and how it is combined in the case.

![concatenate_data_timing_chart](./image/concatenate_data.drawio.svg)

## Inputs / Outputs

### Input

| Name | Type | Description |
| ---------------- | ------------------------------------------------- | ---------------- |
| `~/input/points` | `sensor_msgs::msg::Pointcloud2` | reference points |
| `~/input/twist` | `autoware_auto_vehicle_msgs::msg::VelocityReport` | vehicle velocity |
| Name | Type | Description |
| --------------- | ------------------------------------------------- | ----------------------------------------------------------------------------- |
| `~/input/twist` | `autoware_auto_vehicle_msgs::msg::VelocityReport` | The vehicle odometry is used to interpolate the timestamp of each sensor data |

### Output

| Name | Type | Description |
| ----------------- | ------------------------------- | --------------- |
| `~/output/points` | `sensor_msgs::msg::Pointcloud2` | filtered points |
| Name | Type | Description |
| ----------------- | ------------------------------- | ------------------------- |
| `~/output/points` | `sensor_msgs::msg::Pointcloud2` | concatenated point clouds |

## Parameters

| Name | Type | Default Value | Description |
| ---------------- | ------ | ------------- | ------------------------------------- |
| `input_frame` | string | " " | input frame id |
| `output_frame` | string | " " | output frame id |
| `max_queue_size` | int | 5 | max queue size of input/output topics |
| Name | Type | Default Value | Description |
| ---------------- | ---------------- | ------------- | ------------------------------------------------------------------- |
| `input/points` | vector of string | [] | input topic names that type must be `sensor_msgs::msg::Pointcloud2` |
| `input_frame` | string | "" | input frame id |
| `output_frame` | string | "" | output frame id |
| `max_queue_size` | int | 5 | max queue size of input/output topics |

### Core Parameters

Expand All @@ -37,10 +43,4 @@ The `concatenate_data` is a node that concatenates multiple pointclouds acquired

## Assumptions / Known limits

## (Optional) Error detection and handling

## (Optional) Performance characterization

## (Optional) References/External links

## (Optional) Future extensions / Unimplemented parts
It is necessary to assume that the vehicle odometry value exists, the sensor data and odometry timestamp are correct, and the TF from `base_link` to `sensor_frame` is also correct.
Loading