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

Evaluate performance of localization pipeline #602

Closed
6 tasks done
mitsudome-r opened this issue Mar 29, 2022 · 15 comments
Closed
6 tasks done

Evaluate performance of localization pipeline #602

mitsudome-r opened this issue Mar 29, 2022 · 15 comments
Assignees
Labels
component:localization Vehicle's position determination in its environment. (auto-assigned)

Comments

@mitsudome-r
Copy link
Member

mitsudome-r commented Mar 29, 2022

Checklist

  • I've read the contribution guidelines.
  • I've searched other issues and no duplicate issues were found.
  • I've agreed with the maintainers that I can plan this task.

Description

Evaluate performance of Localization pipeline.

Purpose

Evaluate performance of perception pipeline to confirm if current perception has enough capability for Localization

Possible approaches

Find available open datasets for evaluation and do benchmark testing.
Possible datasets:

Definition of done

  • plan data conversion for open datasets to feed into Autoware localization pipeline
  • Develop benchmark tools to test localization pipeline
  • Run tests on datasets and make results available in public. (e.g. in documentation)
@mitsudome-r mitsudome-r added the priority:high High urgency and importance. label Mar 30, 2022
@angry-crab
Copy link
Contributor

angry-crab commented Apr 4, 2022

KITTI might not be a good choice since no ground truth PCD map is provided, which is required by the current localization method. An alternative is Newer College Dataset, which provides ground truth PCD map created by Leica.
To use KITTI, another slam algorithm is required.

@angry-crab
Copy link
Contributor

angry-crab commented Apr 5, 2022

@angry-crab
Copy link
Contributor

Current issues:

  • The ground truth poses of KITTI is provided by post-processed GPS-RTK. The original IMU data is not released.
  • New College Dataset is collected by a hand holding device with rotates a lot.

@mitsudome-r mitsudome-r added the component:localization Vehicle's position determination in its environment. (auto-assigned) label Apr 19, 2022
@angry-crab
Copy link
Contributor

angry-crab commented Apr 26, 2022

Able to build a pcd map with ground truth poses and point cloud frames, but slow.
Map suffers from distortion. Maybe point cloud has to be compensated due to motion.

Screenshot from 2022-04-26 15-34-06

@plane-li
Copy link
Contributor

Able to build a pcd map with ground truth poses and point cloud frames, but slow. Map suffers from distortion. Maybe point cloud has to be compensated due to motion.

Screenshot from 2022-04-26 15-34-06

Hi, which opensource lidar-slam did you use to create the pcd?

@plane-li
Copy link
Contributor

Purpose

Evaluate performance of perception pipeline to confirm if current perception has enough capability for Localization

Sorry, to be honest! I really do not know the meaning of "if current perception has enough capability for Localization"?
Cloud you explain the reason?
Thank you!

@angry-crab
Copy link
Contributor

angry-crab commented Apr 27, 2022

Able to build a pcd map with ground truth poses and point cloud frames, but slow. Map suffers from distortion. Maybe point cloud has to be compensated due to motion.
Screenshot from 2022-04-26 15-34-06

Hi, which opensource lidar-slam did you use to create the pcd?

Hi, this map is generated by simply concatenating pcd frames because the dataset provides post-processed ground truth poses. The implementation can be referenced here. pcd_mapping

Purpose

Evaluate performance of perception pipeline to confirm if current perception has enough capability for Localization

Sorry, to be honest! I really do not know the meaning of "if current perception has enough capability for Localization"? Cloud you explain the reason? Thank you!

We are trying to evaluate the accuracy of the localization module of universe to see if it is enough to localize in different settings.

@angry-crab
Copy link
Contributor

Clear map could be generated.
Screenshot from 2022-05-11 17-20-32

@angry-crab
Copy link
Contributor

angry-crab commented May 17, 2022

  • - Sensing modules takes only raw velydone message not pointcloud2 as input. Have to turn off lidar sensing but lidar preprocessing is disabled.
  • - twist_estimator requires both imu and vehicle status messages. Have to turn off vehicle_velocity_converter and feed gps velocity into gyro_odometer.
  • - use_sim_time requires a simulated clock topic. Have to create a clock topic using kitti.

@mitsudome-r
Copy link
Member Author

mitsudome-r commented May 23, 2022

Related Discussion: autowarefoundation/autoware#2618

@angry-crab
Copy link
Contributor

Converted sample map and ros2 bag
kitti_sample_data

@angry-crab
Copy link
Contributor

KITTI Localization
Localization is successful.

@angry-crab
Copy link
Contributor

angry-crab commented May 31, 2022

Instructions on running localization with KITTI

Tools could be found in the following repo:
kitti_to_ros2bag

  1. Create a pcd map
  • clone the repo above
  • in create_map.cc, change pose_paths and pcd_paths to where your data path, and path of saving output map.
  • mkdir build && cd build, cmake .., make
  • run pcd_mapping and wait for the map to be generated.
  1. Create a ros2 bag
  • in create_bag.py, change base_dir, date, and drive to the data you want to use.
  • run create_bag.py
  • wait for the bag to be generated.

(A ready-to-go dataset could be found here sample map and bag, I'm not sure if it is correctly shared, please let me know if it could not be accessed. )
3. Bring up Universe

  • Follow the instructions below, up to vcs import src < autoware.repos (DO NOT BUILD AT THIS TIME) Autoware Doc
  • Terminal 1
    cd src/launcher/autoware_launch
    git checkout kitti_test
    cd ../../..
    colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
    source install/setup.bash
    ros2 launch autoware_launch logging_simulator.launch.xml map_path:=PATH_OF_YOUR_MAP vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit vehicle:=false system:=false map:=true sensing:=true localization:=true perception:=false planning:=false control:=false
  • New Terminal 2
    source ~/autoware/install/setup.bash
    ros2 launch autoware_launch kitti_static.launch.py
  • New Terminal 3
    source ~/autoware/install/setup.bash
    ros2 bag play PATH_TO_ROS2BAG/ros2_bag.db3 --qos-profile-overrides-path qos.yaml -d 3
  • New Terminal 4
    source ~/autoware/install/setup.bash
    ros2 service call /rosbag2_player/toggle_paused rosbag2_interfaces/srv/TogglePaused
  • Go to Rviz of Terminal 1, set an intial pose, when Terminal 1 output Alignment called, go to Terminal 4 and rerun the last command. Then you are good to go.
    Check the link below for a video demonstration. Sample Video

@angry-crab angry-crab linked a pull request Jun 9, 2022 that will close this issue
7 tasks
@BonoloAWF BonoloAWF moved this to In Progress in Bus ODD Project Jul 12, 2022
@mitsudome-r mitsudome-r removed the priority:high High urgency and importance. label Jul 12, 2022
@angry-crab
Copy link
Contributor

Duplicates of the related RP is found. Will try to merge this feature into the existing localization_evaluator.

@angry-crab
Copy link
Contributor

angry-crab commented Aug 17, 2022

Since #928 has already included most features of #1066 , this issue can be closed.
However, #1066 might be able to give a lower error theoretically, since it takes sub routes into consideration for calculation. We can get back to #1066 if needed.

knzo25 pushed a commit to knzo25/autoware.universe that referenced this issue Jul 3, 2023
kyoichi-sugahara pushed a commit that referenced this issue Sep 16, 2023
Signed-off-by: GitHub <noreply@github.com>
Co-authored-by: kenji-miyake <kenji-miyake@users.noreply.github.com>
ryuichi-maeda pushed a commit to sensefield/autoware.universe that referenced this issue Jan 10, 2025
* chore: add reviewer/assignee of sync-awf-latest-reference-design's PR (autowarefoundation#594)

Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>

Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>

* ci(slack-send): remove unused workflow (autowarefoundation#600)

Signed-off-by: Tomohito Ando <tomohito.ando@tier4.jp>

Signed-off-by: Tomohito Ando <tomohito.ando@tier4.jp>

* ci(sync-files): sync .fdignore and .rgignore (autowarefoundation#601)

* chore: sync files (autowarefoundation#588)

Signed-off-by: GitHub <noreply@github.com>
Co-authored-by: kenji-miyake <kenji-miyake@users.noreply.github.com>

* feat: rename launch branch (autowarefoundation#604)

Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>

* feat: remove sync-awf-latest-<reference-desing>.yaml (autowarefoundation#608)

Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>

* chore: sync files (autowarefoundation#602)

Signed-off-by: GitHub <noreply@github.com>
Co-authored-by: kenji-miyake <kenji-miyake@users.noreply.github.com>

---------

Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>
Signed-off-by: Tomohito Ando <tomohito.ando@tier4.jp>
Signed-off-by: GitHub <noreply@github.com>
Co-authored-by: Takayuki Murooka <takayuki5168@gmail.com>
Co-authored-by: Tomohito ANDO <tomohito.ando@tier4.jp>
Co-authored-by: Kenji Miyake <31987104+kenji-miyake@users.noreply.github.com>
Co-authored-by: tier4-autoware-private-bot[bot] <87871706+tier4-autoware-private-bot[bot]@users.noreply.github.com>
Co-authored-by: kenji-miyake <kenji-miyake@users.noreply.github.com>
Co-authored-by: Hiroki OTA <hiroki.ota@tier4.jp>
ryuichi-maeda pushed a commit to sensefield/autoware.universe that referenced this issue Jan 10, 2025
* chore: add reviewer/assignee of sync-awf-latest-reference-design's PR (autowarefoundation#594)

Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>

Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>

* ci(slack-send): remove unused workflow (autowarefoundation#600)

Signed-off-by: Tomohito Ando <tomohito.ando@tier4.jp>

Signed-off-by: Tomohito Ando <tomohito.ando@tier4.jp>

* ci(sync-files): sync .fdignore and .rgignore (autowarefoundation#601)

* chore: sync files (autowarefoundation#588)

Signed-off-by: GitHub <noreply@github.com>
Co-authored-by: kenji-miyake <kenji-miyake@users.noreply.github.com>

* feat: rename launch branch (autowarefoundation#604)

Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>

* feat: remove sync-awf-latest-<reference-desing>.yaml (autowarefoundation#608)

Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>

* chore: sync files (autowarefoundation#602)

Signed-off-by: GitHub <noreply@github.com>
Co-authored-by: kenji-miyake <kenji-miyake@users.noreply.github.com>

* chore(deps): replace peter-evans/enable-pull-request-automerge with GitHub CLI (autowarefoundation#612)

* build(deps): bump peter-evans/enable-pull-request-automerge from 2 to 3

Bumps [peter-evans/enable-pull-request-automerge](https://github.com/peter-evans/enable-pull-request-automerge) from 2 to 3.
- [Release notes](https://github.com/peter-evans/enable-pull-request-automerge/releases)
- [Commits](peter-evans/enable-pull-request-automerge@v2...v3)

---
updated-dependencies:
- dependency-name: peter-evans/enable-pull-request-automerge
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update update-beta-branch.yaml

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Kenji Miyake <31987104+kenji-miyake@users.noreply.github.com>

* chore: sync files (autowarefoundation#609)

Signed-off-by: GitHub <noreply@github.com>
Co-authored-by: kenji-miyake <kenji-miyake@users.noreply.github.com>

* chore(deps): bump peter-evans/create-pull-request from 4 to 5 (autowarefoundation#613)

Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 4 to 5.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](peter-evans/create-pull-request@v4...v5)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* docs: use GitHub instead of Github (autowarefoundation#616)

doc: use GitHub instead of Github

---------

Signed-off-by: Takayuki Murooka <takayuki5168@gmail.com>
Signed-off-by: Tomohito Ando <tomohito.ando@tier4.jp>
Signed-off-by: GitHub <noreply@github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Takayuki Murooka <takayuki5168@gmail.com>
Co-authored-by: Tomohito ANDO <tomohito.ando@tier4.jp>
Co-authored-by: Kenji Miyake <31987104+kenji-miyake@users.noreply.github.com>
Co-authored-by: tier4-autoware-private-bot[bot] <87871706+tier4-autoware-private-bot[bot]@users.noreply.github.com>
Co-authored-by: kenji-miyake <kenji-miyake@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Kotaro Yoshimoto <pythagora.yoshimoto@gmail.com>
Co-authored-by: Takeshi Miura <57553950+1222-takeshi@users.noreply.github.com>
iwatake2222 pushed a commit to iwatake2222/autoware.universe that referenced this issue Jan 17, 2025
…owarefoundation#602)

* Added a new parameter "n_startup_trials"

Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp>

* Changed default `n_startup_trials` to 20

Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp>

---------

Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp>
Kazunori-Nakajima pushed a commit to Kazunori-Nakajima/autoware.universe that referenced this issue Feb 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:localization Vehicle's position determination in its environment. (auto-assigned)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants