Integration of the meta-ros layer with Automotive Grade Linux (AGL) to support Robot Operating System (ROS2)

This report is a requirement of the Final Evaluations phase of Google Summer of Code program. I worked with the Linux Foundation, under Automotive Grade Linux on the project to Integrate the meta-ros layer with Automotive Grade Linux (AGL) to support Robot Operating System (ROS2), the original proposal for the project can be found here.

logo-gsoc,lf,agl

The Linux Foundation is the nonprofit consortium dedicated to fostering the growth of Linux. Automotive Grade Linux is an open-source project hosted by The Linux Foundation that is building an open operating system and framework for automotive applications.

Project Deliverables

  • Integrate yocto based meta-ros layer with Automotive Grade Linux (AGL) layers to support Robot Operating System (ROS 2) infrastructure.
  • Create custom recipes for ROS modules to support LIDAR drivers and other unmet dependencies that might arise.
  • [WIP] Develop a visualization application for AGL by implementing hector mapping using LIDAR using ROS2.
  • Ultimately documenting the whole implementation methodology, so that the developer community can easily carry on with and independently develop relevant ROS applications on AGL.

Community Bonding

Owing to timezone differences, my mentor and I scheduled the right time and medium for contact: triweekly Zoom Calls and constant communication over Signal and IRC. Further refinement of objectives and goals were set to ensure that the proposed plan of action for the development of meta-agl-ros2 was in line with the priorities of the project. I started engaging actively within the AGL community by regularly participating in the Weekly Developer Call. I also regularly updated personal blog to log progress for future reference and help future Google Summer of Code applicants and aspiring student developers alike. Since I had prior academic commitments and was already well accustomed to the AGL community. We decided to go ahead with the Coding Phase earlier than the GSoC timeline.

Work Done

Weekly Updates

All of the progress is well documented in the form of weekly updates over the agl-dev-community mailing list and personal blog :

Commits / Change Requests

  • Gerrit: #26559 : meta-agl-ros2: Support for ros2 minimal & ydlidar
  • Gerrit: #26568 : Add meta-ros layer as external dependency
  • Gerrit: #26384 : Replaced $AGL_TOP with <AGL_TOP> where relevant | master
  • Gerrit: #26396 : Replaced $AGL_TOP with <AGL_TOP> where relevant | koi
  • Gerrit: #26397 : Replaced $AGL_TOP with <AGL_TOP> where relevant | jellyfish
  • Github: #858 : google-benchmark: use “main” branch
  • agl-images-gsoc21-boron : Contains all the iterations of AGL images and SDKs built over the span of GSoC.
  • [WIP] agl-liq : Porting liq to AGL for being the LIDAR visualization application.

NOTE: Some of the Change Requests might be going in through review and further changes can take place.

Final Comments

Future Work

  • Develop and finesse agl-liq by porting liq to AGL for being the LIDAR visualization application.

Challenges

  • Becoming proficient with AGL developer tools, especially Gerrit has been quite a worthwhile effort.

  • Balancing academics along with GSoC was quite hectic but due to the mutual understanding with the mentors, I was able to overcome this.

What did I learn?

  • I was able to learn how to develop using the Yocto project and correspondingly improve my understanding on ROS2 framework.

  • I also learned a lot more about Automotive Grade Linux organization especially their developer tools, workflow, and developmental pipeline.

  • My technical writing skills have definitely become better and have led me to contribute more effectively and robustly to academic research projects.

Post GSoC

  • I plan to maintain and add to the Automotive Grade Linux’s repositories for the foreseeable future and work on continually improving it.

  • I will keep contributing and help other new contributors to explore and learn projects in this organization.

  • This project gave me the necessary experience and rigor to contribute meaningfully and efficiently to my role as Data Acquisition Engineer for FSAE Team Fateh.

Acknowledgements

I would like to express my gratitude to my mentors Jan-Simon Möller and Walt Miner for mentoring me through GSoC and also to the whole AGL community for being so inclusive and friendly.

Overall, It was one of the best professional experience that I undertook this year. I have been fascinated with AGL for as long as I have been a Data Acquisition Engineer for FSAE Team Fateh and the fact that I was able to contribute to the organization is an honor.