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

feat: use pose_source and twist_source for selecting localization methods #418

Merged
merged 5 commits into from
Jul 21, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
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
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
nav:
- index.md
- Localization mode: localization-mode
- Localization methods: localization-methods
- Perception mode: perception.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@ ros2 launch autoware_launch autoware.launch.xml vehicle_model:=YOUR_VEHICLE sens
The basic command-line options are documented in [autoware.launch.xml](https://github.com/autowarefoundation/autoware_launch/blob/main/autoware_launch/launch/autoware.launch.xml).

There are options available to switch between different methods for some component.
For example, by specifying `localization_mode` or `perception_mode`, you can switch localization and perception methods, respectively.
For example, by specifying `pose_source`/`twist_source` or `perception_mode`, you can switch localization and perception methods, respectively.
These options allow you to choose the desired algorithms or sensor configurations for the respective functionalities.

For options on eagleye component, please refer to the sub-pages.

- [localization-mode](localization-mode/index.md)
- [localization-mode](localization-methods/index.md)
- [perception-mode](perception.md)

## Set initial pose
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Localization methods

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` : an argument to select pose_estimator, currently supporting `ndt` (default), `yabloc`, and `eagleye`
- `twist_source` : an argument to select twist_estimator, currently supporting `gyro_odom` (default), and `eagleye`

## NDT scan matcher: a LiDAR and pointcloud map based pose estimator (default)

By default, Autoware launches [ndt_scan_matcher](https://github.com/autowarefoundation/autoware.universe/tree/main/localization/ndt_scan_matcher) for pose estimator.
In order to launch this explicitly, you need to specify as follows:

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

Note that currently `pose_source` is set to NDT as default, so you can skip this argument.

## Gyro Odometer: an IMU & wheel odometry based twist estimator (default)

By default, Autoware launches [gyro_odometer](https://github.com/autowarefoundation/autoware.universe/tree/main/localization/gyro_odometer) for twist estimator.
In order to launch this explicitly, you need to specify as follows:

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

Note that currently `twist_source` is set to Gyro Odometer as default, so you can skip this argument.

## YabLoc: a camera and vector map based 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.

To use YabLoc as a pose_estimator, add `pose_source:=yabloc` when launching Autoware.
By default, the `pose_source` is set to `ndt`.
By specifying this command-line argument, YabLoc nodes will be automatically launched while the NDT nodes will not be started.

Here is an example of a launch command:

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

## Eagleye: a GNSS & IMU & wheel odometry based pose and twist estimator

You can use Eagleye as a GNSS & IMU & wheel odometry-based localization method. For more details on Eagleye, please refer to the [Eagleye](eagleye-guide.md).

Eagleye has a function for position estimation and twist estimation, namely `pose_estimator` and `twist_estimator`, respectively.
When running Eagleye in twist_estimator mode with other pose_estimator such as ndt_scan_matcher, Eagleye is still helpful since it can improve scan matching by providing accurate twists using GNSS doppler.

You can use Eagleye by specifying the `pose_source` and `twist_source` accordingly through command-line arguments.

**Example of using Eagleye as the pose twist estimator:**

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

**Example of using Eagleye as the twist estimator:**

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

This file was deleted.