diff --git a/docs/how-to-guides/integrating-autoware/launch-autoware/.pages b/docs/how-to-guides/integrating-autoware/launch-autoware/.pages index 278cf049303..af6422c41bb 100644 --- a/docs/how-to-guides/integrating-autoware/launch-autoware/.pages +++ b/docs/how-to-guides/integrating-autoware/launch-autoware/.pages @@ -1,4 +1,4 @@ nav: - index.md - - Localization methods: localization-methods + - Launch localization: localization - Launch perception: perception diff --git a/docs/how-to-guides/integrating-autoware/launch-autoware/localization-methods/.pages b/docs/how-to-guides/integrating-autoware/launch-autoware/localization-methods/.pages deleted file mode 100644 index 24441b7323f..00000000000 --- a/docs/how-to-guides/integrating-autoware/launch-autoware/localization-methods/.pages +++ /dev/null @@ -1,3 +0,0 @@ -nav: - - index.md - - Eagleye: eagleye-guide.md diff --git a/docs/how-to-guides/integrating-autoware/launch-autoware/localization-methods/index.md b/docs/how-to-guides/integrating-autoware/launch-autoware/localization-methods/index.md deleted file mode 100644 index c508d7cb589..00000000000 --- a/docs/how-to-guides/integrating-autoware/launch-autoware/localization-methods/index.md +++ /dev/null @@ -1,65 +0,0 @@ -# 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 ... -``` diff --git a/docs/how-to-guides/integrating-autoware/launch-autoware/localization-methods/images/eagleye-integration-guide/eagleye_pose_twist.drawio.svg b/docs/how-to-guides/integrating-autoware/launch-autoware/localization/eagleye/images/eagleye-integration-guide/eagleye_pose_twist.drawio.svg similarity index 100% rename from docs/how-to-guides/integrating-autoware/launch-autoware/localization-methods/images/eagleye-integration-guide/eagleye_pose_twist.drawio.svg rename to docs/how-to-guides/integrating-autoware/launch-autoware/localization/eagleye/images/eagleye-integration-guide/eagleye_pose_twist.drawio.svg diff --git a/docs/how-to-guides/integrating-autoware/launch-autoware/localization-methods/images/eagleye-integration-guide/eagleye_twist.drawio.svg b/docs/how-to-guides/integrating-autoware/launch-autoware/localization/eagleye/images/eagleye-integration-guide/eagleye_twist.drawio.svg similarity index 100% rename from docs/how-to-guides/integrating-autoware/launch-autoware/localization-methods/images/eagleye-integration-guide/eagleye_twist.drawio.svg rename to docs/how-to-guides/integrating-autoware/launch-autoware/localization/eagleye/images/eagleye-integration-guide/eagleye_twist.drawio.svg diff --git a/docs/how-to-guides/integrating-autoware/launch-autoware/localization-methods/eagleye-guide.md b/docs/how-to-guides/integrating-autoware/launch-autoware/localization/eagleye/index.md similarity index 100% rename from docs/how-to-guides/integrating-autoware/launch-autoware/localization-methods/eagleye-guide.md rename to docs/how-to-guides/integrating-autoware/launch-autoware/localization/eagleye/index.md diff --git a/docs/how-to-guides/integrating-autoware/launch-autoware/localization/images/localization_launch_flow.svg b/docs/how-to-guides/integrating-autoware/launch-autoware/localization/images/localization_launch_flow.svg new file mode 100644 index 00000000000..9d1b173dfff --- /dev/null +++ b/docs/how-to-guides/integrating-autoware/launch-autoware/localization/images/localization_launch_flow.svg @@ -0,0 +1,4 @@ + + + +
file: localization.launch.xml
file: localization.launch.xml
package: tier4_localization_launch
package: tier4_localization_launch
file: autoware.launch.xml
file: autoware.launch.xml
package: autoware_launch
package: autoware_launch
file: tier4_perception_component.launch.xml
file: tier4_perception_component.lau...
package: autoware_launch
package: autoware_launch
file: pose_twist_fusion_filter.launch.xml
file: pose_twist_fusion_filter.launc...
package: tier4_localization_launch
package: tier4_localization_launch
file: pose_twist_estimator.launch.xml
file: pose_twist_estimator.launch.xml
package: tier4_localization_launch
package: tier4_localization_launch
file: localization_error_monitor.launch.xml
file: localization_error_monitor.launc...
package: tier4_localization_launch
package: tier4_localization_launch
file: ndt_scan_matcher.launch.xml
file: ndt_scan_matcher.launch.xml
package: tier4_localization_launch
package: tier4_localization_launch
file: yabloc.launch.xml
file: yabloc.launch.xml
package: tier4_localization_launch
package: tier4_localization_launch
file: ar_tag_based_localizer.launch.xml
file: ar_tag_based_localizer.launch....
package: tier4_localization_launch
package: tier4_localization_launch
file: eagleye_rt.launch.xml
file: eagleye_rt.launch.xml
package: tier4_localization_launch
package: tier4_localization_launch
pose source
pose source
twist source
twist source
file: gyro_odometer.launch.xml
file: gyro_odometer.launch.xml
package: tier4_localization_launch
package: tier4_localization_launch
file: twist2accel.launch.xml
file: twist2accel.launch.xml
package: twist2accel
package: twist2accel
file: stop_filter.launch.xml
file: stop_filter.launch.xml
package: stop_filter
package: stop_filter
file: ekf_localizer.launch.xml
file: ekf_localizer.launch.xml
package: ekf_localizer
package: ekf_localizer
file: localization_error_monitor.launch.xml
file: localization_error_monitor.launc...
package: localization_error_monitor
package: localization_error_monitor
ndt
ndt
yabloc
yabloc
artag
artag
eagleye
eagleye
eagleye
eagleye
gyro_odom
gyro_odom
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/how-to-guides/integrating-autoware/launch-autoware/localization/index.md b/docs/how-to-guides/integrating-autoware/launch-autoware/localization/index.md new file mode 100644 index 00000000000..278d5d140c0 --- /dev/null +++ b/docs/how-to-guides/integrating-autoware/launch-autoware/localization/index.md @@ -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. + +
+ ![localization-launch-flow](images/localization_launch_flow.svg){ align=center } +
+ Autoware localization launch flow diagram +
+
+ +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 + - + + + ``` + + 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 + - + + + ``` + + 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 + - + + + ``` + +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 ++ +``` + +**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). diff --git a/docs/how-to-guides/integrating-autoware/launch-autoware/perception/index.md b/docs/how-to-guides/integrating-autoware/launch-autoware/perception/index.md index b8c8cdb0a7d..efa37da212d 100644 --- a/docs/how-to-guides/integrating-autoware/launch-autoware/perception/index.md +++ b/docs/how-to-guides/integrating-autoware/launch-autoware/perception/index.md @@ -15,10 +15,14 @@ This diagram describes some of the Autoware perception launch files flow at `aut -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 @@ -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: @@ -40,7 +44,7 @@ Here are some predefined perception launch arguments: + ``` -- **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: @@ -50,7 +54,7 @@ Here are some predefined perception launch arguments: + ``` -- **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, @@ -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`, @@ -96,7 +100,7 @@ Here are some example changes for the perception pipeline: + ``` -- **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: