Skip to content

Commit

Permalink
add launch localization page
Browse files Browse the repository at this point in the history
Signed-off-by: ismetatabay <[email protected]>
  • Loading branch information
ismetatabay committed Oct 18, 2023
1 parent 4b7d39d commit 3db356c
Show file tree
Hide file tree
Showing 9 changed files with 114 additions and 78 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
nav:
- index.md
- Localization methods: localization-methods
- Launch localization: localization
- Launch perception: perception

This file was deleted.

This file was deleted.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# Localization methods

## Overview

The Autoware localization stacks start
launching at `autoware_launch.xml` as we mentioned at [Launch Autoware](../index.md) page.
The `autoware_launch` package includes `tier4_localization_component.launch.xml`
for starting localization launch files invocation from `autoware_launch.xml`.
This diagram describes some of the Autoware localization launch files flow at `autoware_launch` and `autoware.universe` packages.

<figure markdown>
![localization-launch-flow](images/localization_launch_flow.svg){ align=center }
<figcaption>
Autoware localization launch flow diagram
</figcaption>
</figure>

The Autoware project is a large project.
Therefore, as we manage the Autoware project, we utilize specific
arguments in the launch files.
ROS 2 offers an argument-overriding feature for these launch files.
Please refer to [the official ROS 2 launch documentation](https://docs.ros.org/en/humble/Tutorials/Intermediate/Launch/Using-ROS2-Launch-For-Large-Projects.html#parameter-overrides) for further information.
For instance,
if we define an argument at the top-level launch,
it will override the value on lower-level launches.

## tier4_localization_component.launch.xml

The `tier4_localization_component.launch.xml` launch file is the main localization component launch at the `autoware_launch` package.
This launch file calls `localization.launch.xml` at [tier4_localization_launch](https://github.com/autowarefoundation/autoware.universe/tree/main/launch/tier4_localization_launch) package from `autoware.universe` repository.
We can modify perception launch arguments at tier4_perception_component.launch.xml.

The current localization launcher implemented by TIER IV supports multiple localization methods, both pose estimators and twist estimators.
`tier4_localization_component.launch.xml` has two arguments to select which estimators to launch:

- **`pose_source:`** This argument specifies the pose_estimator, currently supporting `ndt` (default), `yabloc`, `artag` and `eagleye` for localization.
By default, Autoware launches [ndt_scan_matcher](https://github.com/autowarefoundation/autoware.universe/tree/main/localization/ndt_scan_matcher) for pose estimator.
You can use YabLoc as a camera-based localization method.
For more details on YabLoc,
please refer to the [README of YabLoc](https://github.com/autowarefoundation/autoware.universe/blob/main/localization/yabloc/README.md) in autoware.universe.
Also, you can use Eagleye as a GNSS & IMU & wheel odometry-based localization method. For more details on Eagleye, please refer to the [Eagleye](./eagleye).

You can set `pose_source` argument on `tier4_localization_component.launch.xml`,
for example, if you want to use eagleye as pose_source,
you need to update `tier4_localization_component.launch.xml` like:

```diff
- <arg name="pose_source" default="ndt" description="select pose_estimator: ndt, yabloc, eagleye"/>
+ <arg name="pose_source" default="eagleye" description="select pose_estimator: ndt, yabloc, eagleye"/>
```

Also, you can use command-line for overriding launch arguments:

```bash
ros2 launch autoware_launch autoware.launch.xml ... pose_source:=eagleye
```

- **`twist_source:`** This argument specifies the twist_estimator, currently supporting `gyro_odom` (default), and `eagleye`.
By default,
Autoware launches [gyro_odometer](https://github.com/autowarefoundation/autoware.universe/tree/main/localization/gyro_odometer) for twist estimator.
Also, you can use eagleye for the twist source, please refer to the [Eagleye](./eagleye).
If you want to change your twist source to eagleye, you can update `tier4_localization_component.launch.xml` like:

```diff
- <arg name="twist_source" default="gyro_odom" description="select twist_estimator. gyro_odom, eagleye"/>
+ <arg name="twist_source" default="eagleye" description="select twist_estimator. gyro_odom, eagleye"/>
```

Or you can use command-line for overriding launch arguments:

```bash
ros2 launch autoware_launch autoware.launch.xml ... twist_source:=eagleye
```

- **`input_pointcloud:`** This argument specifies the input pointcloud of the localization pointcloud pipeline. The default value is
`/sensing/lidar/top/outlier_filtered/pointcloud` which
is output of the [pointcloud pre-processing](https://autowarefoundation.github.io/autoware.universe/main/sensing/pointcloud_preprocessor/) pipeline from sensing.
You can change this value according to your LiDAR topic name,
or you can choose to use concatenated point cloud:

```diff
- <arg name="input_pointcloud" default="/sensing/lidar/top/outlier_filtered/pointcloud" description="The topic will be used in the localization util module"/>
+ <arg name="input_pointcloud" default="/sensing/lidar/concatenated/pointcloud"/>
```

You can add every necessary argument
to `tier4_localization_component.launch.xml` launch file like these examples.
In case, if you want to change your gyro odometer twist input topic,
you can add this argument on `tier4_localization_component.launch.xml` launch file:

```diff
+ <arg name="input_vehicle_twist_with_covariance_topic" value="<YOUR-VEHICLE-TWIST-TOPIC-NAME>"/>
```

**Note:**: Gyro odometer input topic provided from velocity converter package. This package will be launched at sensor_kit. For more information,
please check [velocity converter package](https://github.com/autowarefoundation/autoware.universe/tree/main/sensing/vehicle_velocity_converter).
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,14 @@ This diagram describes some of the Autoware perception launch files flow at `aut
</figcaption>
</figure>

The Autoware project is large. Therefore, as we manage the Autoware project, we utilize specific
arguments in the launch files. ROS 2 offers an argument-overriding feature for these launch files.
Please refer to [the official ROS 2 launch documentation](https://docs.ros.org/en/humble/Tutorials/Intermediate/Launch/Using-ROS2-Launch-For-Large-Projects.html#parameter-overrides) for further information. For instance,
if we define an argument at the top-level launch, it will override the value on lower-level launches.
The Autoware project is a large project.
Therefore, as we manage the Autoware project, we utilize specific
arguments in the launch files.
ROS 2 offers an argument-overriding feature for these launch files.
Please refer to [the official ROS 2 launch documentation](https://docs.ros.org/en/humble/Tutorials/Intermediate/Launch/Using-ROS2-Launch-For-Large-Projects.html#parameter-overrides) for further information.
For instance,
if we define an argument at the top-level launch,
it will override the value on lower-level launches.

## tier4_perception_component.launch.xml

Expand All @@ -31,7 +35,7 @@ that we want
to change it since `tier4_perception_component.launch.xml` is the top-level launch file of other perception launch files.
Here are some predefined perception launch arguments:

- **occupancy_grid_map_method:** This parameter determines the occupancy grid map method for perception stack. Please check [probabilistic_occupancy_grid_map](https://autowarefoundation.github.io/autoware.universe/main/perception/probabilistic_occupancy_grid_map/) package for detailed information.
- **`occupancy_grid_map_method:`** This parameter determines the occupancy grid map method for perception stack. Please check [probabilistic_occupancy_grid_map](https://autowarefoundation.github.io/autoware.universe/main/perception/probabilistic_occupancy_grid_map/) package for detailed information.
The default probabilistic occupancy grid map method is `pointcloud_based_occupancy_grid_map`.
If you want to change it to the `laserscan_based_occupancy_grid_map`, you can change it here:

Expand All @@ -40,7 +44,7 @@ Here are some predefined perception launch arguments:
+ <arg name="occupancy_grid_map_method" default="laserscan_based_occupancy_grid_map" description="options: pointcloud_based_occupancy_grid_map, laserscan_based_occupancy_grid_map"/>
```

- **detected_objects_filter_method:** This parameter determines the filter method for detected objects.
- **`detected_objects_filter_method:`** This parameter determines the filter method for detected objects.
Please check [detected_object_validation](https://autowarefoundation.github.io/autoware.universe/main/perception/detected_object_validation/) package for detailed information about lanelet and position filter.
The default detected object filter method is `lanelet_filter`.
If you want to change it to the `position_filter`, you can change it here:
Expand All @@ -50,7 +54,7 @@ Here are some predefined perception launch arguments:
+ <arg name="detected_objects_filter_method" default="position_filter" description="options: lanelet_filter, position_filter"/>
```

- **detected_objects_validation_method:** This parameter determines the validation method for detected objects.
- **`detected_objects_validation_method:`** This parameter determines the validation method for detected objects.
Please check [detected_object_validation](https://autowarefoundation.github.io/autoware.universe/main/perception/detected_object_validation/) package for detailed information about validation methods.
The default detected object filter method is `obstacle_pointcloud`.
If you want to change it to the `occupancy_grid`, you can change it here,
Expand Down Expand Up @@ -85,7 +89,7 @@ we will apply these changes `tier4_perception_component.launch.xml` instead of `

Here are some example changes for the perception pipeline:

- **remove_unknown:** This parameter determines the remove unknown objects at camera-lidar fusion.
- **`remove_unknown:`** This parameter determines the remove unknown objects at camera-lidar fusion.
Please check [roi_cluster_fusion](https://github.com/autowarefoundation/autoware.universe/blob/main/perception/image_projection_based_fusion/docs/roi-cluster-fusion.md) node for detailed information.
The default value is `true`.
If you want to change it to the `false`,
Expand All @@ -96,7 +100,7 @@ Here are some example changes for the perception pipeline:
+ <arg name="remove_unknown" default="false"/>
```

- **camera topics:** If you are using camera-lidar fusion or camera-lidar-radar fusion as a perception_mode,
- **`camera topics:`** If you are using camera-lidar fusion or camera-lidar-radar fusion as a perception_mode,
you can add your camera and info topics on `tier4_perception_component.launch.xml` as well,
it will override the `perception.launch.xml` launch file arguments:

Expand Down

0 comments on commit 3db356c

Please sign in to comment.