Autoware.auto with easiness on Yonohub

Ibrahim Essam
YonoHub
Published in
4 min readAug 31, 2020

This article is part of the Autoware series. Check out the full series: Part 1, Part 2

In this article, we will learn how to build an AutoWare.auto package and create a YonoArc block from this package. But first what is Autoware.auto and how it’s different from Autoware.ai

Autoware.auto and AirSim

Autoware.Auto is a project supported by the Autoware Foundation. It is a clean slate rewrite of Autoware. Autoware.auto applies best-in-class software engineering practices, including pulling request reviews, pull request builds, comprehensive documentation, 100% code coverage, a coding style guide, and a defined development and release process, all managed by an open-source community manager. It also has crisply defined interfaces for different modules, including messages and APIs, and a software architecture designed for determinism. It will be possible to reproduce behaviors live and on development machines.

The first use case of Autoware.auto is Valet Parking and Autonomous Depot Maneuvering, and they have set some milestones to achieve this. This use case will allow you to use Autoware.auto to map a parking lot and drive autonomously in it.

Autonomous Valet Parking by autoware.auto

The recommended way to build Autoware.auto is by using the ADE tool to manage the docker environments used by all the developers. But instead, we can use the YonoEBuilder environment and share it easily with anyone using YonoStore.

I’ve already done this and created a YonoEBuidler environment where you can build Autoware.auto in it. You can grab this environment from the store from this link.

I’ve also created a punch of Autoware.auto blocks and published them in the store. You can grab these blocks form this link.

Learning objectives:

  • How to create YonoArc Blocks based on Autoware.auto Package.

As an example, I will create a Ray-ground classifier block which is based on the Autoware.auto package ray_ground_classifier_node, and use it with the Lidar data from the AirSim simulator.

Autoware.auto and AirSim

Building YonoArc’s Block from Autoware.auto Package:

In the following steps, we will create a new YonoArc Block based on one of Autoware.auto packages.

1. Block’s Environment:

The flow of building a YonoArc block from an Autoware.auto package is so simple. It can be done in a few minutes, thanks to the YonoEBuilder environment of Autoware.auto.

2. New YonoArc’s Project:

All you have to do is create a new YonoArc Project based on Autoware.auto source code from GitLab and using the Autoware.auto Environment you got from the store earlier.

Let’s create a block from the Ray-Ground classifier Autoware.auto package.
Make sure to choose Autoware.auto Environment, and for the source code, you can use Autoware.auto GitLab repo.

https://gitlab.com/autowarefoundation/autoware.auto/AutowareAuto.git

Then press create and build your project. This will start building Autoware.auto ROS2 workspace and discover all the available ROS2 nodes we can use to create YonoArc Blocks.

3. Configuring the new created Block:

After the build finishes we can navigate to the Blocks tab and from the dropdown choose our built project. The project contains a lot of ROS2 nodes we can search for our desired node then select it and invert to select all the other nodes. Now we can delete them to keep only the one we interested in.

Our block requires one input port and 2 output ports. We can get the topic names easily from the node source code here. Then define them as usual with their message type and topic name.

ROS2 nodes take the parameters as YAML file we can also get this node YAML file from here.

Then we can define a property for our block to browse for this YAML file.

so let’s create this property with a key “p_yaml” don’t forget it we will need this very soon. In the optional arguments, we can pass this parameter file to our ROS2 node like the following.

__params:=<p_yaml>

Now we are ready to save and release our Block and use it with any YonoArc pipelines we have.

About YonoHub:

Yonohub is a web-based cloud system for the development, evaluation, integration, and deployment of complex systems, including Artificial Intelligence, Autonomous Driving, and Robotics. Yonohub features a drag-and-drop tool to build complex systems, a marketplace to share and monetize blocks, a builder for custom development environments, and much more. YonoHub can be deployed on-premises and on-cloud.

Get $25 free credits when you sign up now. For researchers and labs, contact us to learn more about Yonohub sponsorship options. Yonohub: A Cloud Collaboration Platform for Autonomous Vehicles, Robotics, and AI Development. www.yonohub.com

If you liked this article, please consider following us on Twitter at @yonohub, email us directly, or find us on LinkedIn. I’d love to hear from you if I can help you or your team with how to use YonoHub.

--

--