autoware.universe
autoware.universe copied to clipboard
feat(autodrive_autoware): autodrive-autoware integration
Description
The core deliverable of this project was integrating Autoware stack with AutoDRIVE Ecosystem to demonstrate the end-to-end task of mapping an unknown environment, recording a trajectory within the mapped environment, and autonomously tracking the pre-recorded trajectory to achieve the desired objective. Particularly, we demonstrate sim2real Autoware deployments using Nigel and F1TENTH, two small-scale autonomous vehicle platforms with unique qualities and capabilities. Additionally we demonstrate simulated Autoware deployments using mid-scale Hunter SE and full-scale OpenCAV within simplified as well as realistic scenarios. It is worth mentioning that this work encapsulates the first-ever off-road deployment of the Autoware stack using the mid-scale vehicle platform, thereby expanding the operational design domain (ODD) of Autoware beyond on-road autonomous navigation.
Related links
- Installation Documentation: Autoware stack installation using different options depending upon the required system hardware/software configuration.
- Deployment Documentation: Autoware stack deployment on different vehicles of AutoDRIVE Ecosystem across scales and ODDs.
- Deployment Videos: Deployment videos pertaining to AutoDRIVE-Autoware Integration are available within the Autoware Playlist on AutoDRIVE Ecosystem's YouTube Channel.
Tests performed
We have tested sim2real Autoware deployments using Nigel and F1TENTH, two small-scale autonomous vehicle platforms with unique qualities and capabilities. Additionally we have also extensively validated simulated Autoware deployments using mid-scale Hunter SE and full-scale OpenCAV within simplified as well as realistic scenarios.
Deployment videos pertaining to AutoDRIVE-Autoware Integration are available within the Autoware Playlist on AutoDRIVE Ecosystem's YouTube Channel.
Notes for reviewers
Not applicable.
Interface changes
The existing interfaces remain unchanged. New interfaces pertaining to AutoDRIVE-Autoware integration have been added.
Effects on system behavior
The existing system behavior remains unaffected. New demonstrations pertaining to AutoDRIVE-Autoware integration have been added.
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.
- [x] I've confirmed the contribution guidelines.
- [x] The PR follows the pull request guidelines.
In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.
- [ ] The PR follows the pull request guidelines.
- [ ] The PR has been properly tested.
- [ ] The PR has been reviewed by the code owners.
Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.
- [ ] There are no open discussions or they are tracked via tickets.
- [ ] The PR is ready for merge.
After all checkboxes are checked, anyone who has write access can merge the PR.
Thank you.
Regarding this PR, it has a very large amount of changes, making it impossible for us to review. Would it be possible for you to divide the PR into component-level changes such as Sensing/Localization/Perception/Planning/Control? We place great importance on the MicroAutonomy architecture, and the interfaces for each component are defined in Autoware. Please also check if it conforms to these interfaces.
If it's difficult to comply with this request, please let us know. In the autoware universe, we would like to allow the free incorporation of research-level projects.
Also, CI has not passed and conflicts are occurring. I will change it to Draft and you can change it to Ready when you are ready to review.
Dear @yukkysaito,
Thank you for your feedback and for reviewing the pull request.
We understand your concerns regarding the size of the changes and the importance of maintaining clarity by dividing the PR into component-level changes. However, it would be difficult for us to divide the PR since it involves a large number of changes. In case it helps, following is a summary of the PR along with the most prominent updates:
PR Summary: The core crux of this PR was to integrate Autoware with AutoDRIVE Ecosystem. AutoDRIVE is an integrated digital twin ecosystem for modeling and simulating (real2sim) as well as deploying and validating (sim2real) autonomous vehicles across different scales, configurations, and operational design domains (ODDs). This PR contributes Autoware API for the AutoDRIVE Ecosystem along with detailed documentation and canned demos for deploying Autoware stack on small-scale (Nigel, F1TENTH), mid-scale (Hunter SE) as well as full-scale (OpenCAV) autonomous vehicles in simulation as well as real-world settings.
PR Updates: This PR does not change any of the existing functions of the Autoware stack. It contributes autodrive_autoware
including the following:
-
perception
packageslidar_slam
,lio_sam_slam
andpf_localization
. -
planning
package to store recordedpaths
of different vehicles, which can be later modified to have additional functionality. -
control
package to perform path tracking using feedback-control by generating and publishing compatible vehicle control commands. -
vehicles
packages to define and handle interfaces to the different vehicles of AutoDRIVE Ecosystem viz. Nigel, F1TENTH, Hunter SE and OpenCAV.
Regarding the CI failing, we have resolved most of these conflicts and have now marked this PR as Ready
. We kindly request you to review it at your convenience.
Thank you and have a nice day!
Best regards, Chinmay and Tanmay (a.k.a. Tinker Twins)
@Tinker-Twins thank you very much for this draft PR. We'd love to learn more about your project. Are you available on Tuesday next week to join the Software WG Meeting to present your work? Check the meeting calendar for the times (import the calendar to see your local time).
@idorobotics Thank you for inviting us to the upcoming Software WG Meeting. We would love to present the AutoDRIVE-Autoware integration to the Autoware community! See you on Tuesday!
@Tinker-Twins As discussed in the Software WG, could you create a discussion thread with some diagrams explaining the changes that you would like to make (addition of packages, change in interface, etc.) just like this example ?
@Tinker-Twins @mitsudome-r I've moved the autodrive_ecosystem
branch
from where it was (it was in somewhere along the main branch)
to the f1tenth_galactic branch.
Just this change reduced the files changed tab here from 4k~ to 1k~.
@Tinker-Twins could you check your updates again and revise this PR?
Also I highly recommend you to use https://www.gitkraken.com/ to visually see what is going on and how branches are playing along with each other. It is free to use for public repositories like ours.
It makes actions like rebasing and switching between branches so easy and visual.
@xmfcx and @mitsudome-r Many thanks for rebasing the autodrive_ecosystem
branch. We have updated the PR by moving all our changes to the autodrive_autoware
directory. This way, the other autoware.universe
components are still how they were earlier.
I kindly request you review and merge this PR to the autodrive_ecosystem
branch. In the meantime, we will continue to work on testing our changes with the main
branch of autoware.universe
using ROS 2 Humble. In the near future, we plan to create a discussion with exhaustive documentation of our changes (with some diagrams explaining the input-output architectures) as well as a separate PR with our code ported to and tested with ROS 2 Humble.
This pull request has been automatically marked as stale because it has not had recent activity.
It would be better to keep having https://github.com/Tinker-Twins/AutoDRIVE-Autoware/tree/main as a fork rather than a branch because it is not integrated well.
Please branch out from the latest main and re-integrate it with the AutoDRIVE systems with the latest Autoware, using humble
and Ubuntu 22.04.