ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A answers.ros.org

Autoware.Auto 1.0.0 is here!

Ladies and gentlemen (and all other identities), the moment you’ve all been waiting for: Autoware.Auto 1.0.0 has finally been released!

So, what’s included? A ton of features! Just check out these items from the changelog:

  • Vehicle Interface architecture
    • AutonomouStuff Speed and Steering Control software interface
    • LSGVL Simulator interface
  • Vehicle control algorithms
    • Model Predictive Control algorithm with Ackermann-style vehicle support
    • Pure Pursuit control algorithm with Ackermann-style vehicle support
  • Lidar-based perception pipeline
    • Transform lidar scans between frames and filtering/cropping
    • Fuse up to 7 lidar inputs
    • Ray-based Ground Filtering algorithm
    • Euclidean Clustering algorithm for object detection
    • Scan downsampling
    • Conversion to voxel-based scan representation
    • HD-Map-based scan filtering
  • Lidar-based localization pipeline
    • NDT scan matching
    • Point cloud loader and publisher
    • Point cloud map generation
  • HD-Map-based planning algorithms
    • Lanelet2 support
    • Map loader and server with query interface
    • Global planner to plan route using HD Map
    • Behavior planner to call individual sub-planners for different maneuvers
    • Lane sub-planner
    • Parking sub-planner
  • Waypoint Record/Replay planning algorithm
    • No HD Map required
  • Hardware drivers
    • Velodyne 3D lidar driver (from scratch)
    • Xsens GNSS/IMU driver (from scratch)
    • FLIR camera driver (based on Spinnaker SDK)
  • Vehicle descriptions
    • Lexus RX 450h
  • Utilities
    • Docker-based environment for both Autoware.Auto and LGSVL Simulator
    • Template-based ROS package creation
    • Common HAV algorithms and functions
    • Demos for many individual features and the Autonomous Valet Parking ODD
    • Joystick-based controller for vehicle interfaces

And this isn’t some rogue code dump, we’ve got docs too!

How Do I…

To get started with Autoware.Auto, first make sure your system is up to snuff, then check out our installation instructions. After that, head on over to our usage docs. Want to build it yourself? Drop on in to the building page. If you feel like lending a hand in this massive, open-source project, take a cruise through our contributor’s guide. Finally, if you get stuck, take a look at our support guidelines for how and where to get help.

What’s Next?

Now that we’ve completed the Autonomous Valet Parking (AVP) Operational Design Domain (ODD), we are continuing our ODD-based development cycle with two new ODDs: Cargo Delivery and Racing! The Cargo Delivery ODD will cover use cases involving moving cargo around both indoor and outdoor environments. The Racing ODD will primarily focus on supporting the Indy Autonomous Challenge and, on the smaller side of things, the F1TENTH Foundation.

Thanks

An official blog post on the release and our tentative roadmap will be forthcoming on https://www.autoware.org/news. However, prior to that, I’d like to give a special shout-out to some of the major code contributing organizations for the 1.0.0 release, without whom this would not have been possible (in alphabetical order):

  • ARM
  • Apex.ai
  • Embotech
  • Mapless.ai
  • Open Robotics
  • Parkopedia
  • Robotec AI
  • Tier IV

Outside of code contributions, I want to thank all of the organizations and individuals who helped pull together this massive effort including all of the Autoware Foundation member organizations. Thank you all and we hope to see you in the Autonomy Software Working Group meetings!

27 Likes

Awesome, congrats on the milestone!

Some questions popping up:

  • Pure Pursuit control algorithm with Ackermann-style vehicle support

Any insights on how this is different from [Nav2] New Controller Plugin: Regulated Pure Pursuit!?

  • Velodyne 3D lidar driver (from scratch)

So is this one better that the ‘standard’ driver available in ROS?
If it’s better, why was the current one not upgraded?
If it’s worse, well eehm…
If it’s simply different because of your special needs. I’m quite curious to the why.

@Timple To answer your questions:

  1. I have not looked closely at Nav2. I’ve been meaning to meet with Steve but just haven’t had time.
  2. The Autoware.Auto Velodyne driver was re-written from scrach by Apex.ai. See this blog post for an in-depth description of why and how the driver was written.
  3. As far as comparing the two drivers, they both perform the same basic functions but the community driver (of which I am the maintainer) has significantly more features included in the driver (introducing bloat) and is built on Linux-specifc networking APIs whereas the Autoware.Auto version is built on Boost::asio (cross-platform) and produces an un-modified point cloud from the raw data. The amount of re-work required to get the community driver to perform similarly and maintain the existing feature set was too large to undertake when this driver was developed. The likely plan is that we will release the Autoware.Auto driver as a separate, “slimmed-down” driver that will either replace or exist in parallel with the community driver.

It’s not really worth getting into here, but yes, there are a number of differences. Functionally though, for an ackermann style robot for street navigation, it doesn’t matter.

The majority of the changes are far more impactful for smaller-scale use like robots and contains a variety of additional features to support non-ackermann robots (differential, omnidirectional, etc). If you have a car, use Autoware’s. If you have anything else, use Nav2’s.

1 Like

All clear, thanks for the elaborate answers both!

@JWhitleyWork FYI.
Autoware.Auto 1.0.0 is not found (404).
released

This has been corrected. The release had to be temporarily removed due to an oversight described in this ticket. However, the issue has been resolved and the release has been re-added. Once this CI job is done, the arm64 ade images will also be available for the release.

That blog post “Porting Algorithms from ROS 1 to ROS 2” was a great read! Thanks for the tip.