Introduction #
This report is a requirement of the Final evaluation phase of the Google Summer of Code 2024 the Google program. I worked with the Linux Foundation, under Automotive Grade Linux to Extend AGL’s Demo Control Panel, which was my contribution during GSoC 2023 under the GSoC project Qt5 Application to Visualise/ Simulate CAN bus traffic using Kuksa.val
You can find the proposal for this year’s project here.
The Linux Foundation is a 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 Overview #
The objective of this year’s project was to build upon my last year’s contribution to Extend AGL’s Demo Control Panel. The application developed allows the end-users to emit signals using the kuksa-client SDK and Python-can to visualize and interact with AGL Demo applications, such as the IC, IVI, HVAC, and the Green Machine, that display CAN data through Kuksa.val.
Demo Video #
# Source Code & Documentation #
→ Code Hosted on Gerrit: agl-demo-control-panel
→ Documentation: AGL/documentation
# Deliverables #
- Porting the app from Qt5 to Qt6 framework.
- Adding better QML widgets/ animations for gauges and spin-wheel inputs.
- Adding file playback (e.g. for CARLA recordings)
- Visualizing signals (real-time and playback)
- Adding New Controls and Keypad Features
- IC keypad feature
- Power-control feature
- Integrate the application with the AGL Demo platform.
- Packaging and distribution of the Application.
- Update documentation pages based on work.
Work Done #
# Progress Reports #
→ Community Bonding Period: During the GSoC 2024 community bonding period, I had a fantastic learning experience. I got to re-connect with my GSoC mentors and the AGL community, I re-familiarized myself with AGL tools, and set up my working environment. I also tackled some technical challenges and ventured into working with CARLA, Qt6/QML, and AGL images. Overall, the community bonding period was a great start.
→ Coding Period: The coding period of GSoC is a dedicated timeframe during which the accepted contributors work on their projects. The standard coding period is 12 weeks. However, my mentors and I saw it fit to have a longer coding period of 22 weeks to complete our Large-Scale project.
During this period, I was able to:
- Write and submit my code to Gerrit/GitHub.
- Issue patches and bug fixes based on review.
- Regularly communicate with my mentors. (Mondays)
- Participate in the AGL and GSoC community. (Thursdays)
- Submit my work for mid-term and final evaluations.
Below I have compiled all my Weekly Progress Reports for the duration of the coding period of GSoC ‘24.
Week 1 | Week 2 | Week 3 | Week 4 |
Week 5 | Week 6 | Week 7 | Week 8 |
Week 9 | Week 10 | Week 11 | Week 12 |
Week 13 | Week 14 | Week 15 | Week 16 |
Week 17 | Week 18 | Week 19 | Week 20 |
Week 21 | Week 22 |
# Major Gerrit Commits #
- 29969: Port AGL Demo Control Panel to Qt6
- 30049: Add Python Script to Convert CARLA data into CAN messages
- 30275: Add New Custom Gauges and CARLA playback refactored
- 30327: Update Carla Playback Mode
- 30401: Add Tire Pressure, Keypad elements and misc. UI Changes
- 30454: agl-demo-control-panel: Update dependency and Bump SRCREV
- 30456: Bug fixes for Control Panel
- 30444: agl-demo-control-panel: Update Documentation
Conclusion #
# What did I learn? #
- I was able to dive deeper into the OpenEmbedded Yocto Project and create layers and recipes for our specific application.
- I learnt how to create and port applications to Qt6, PyQt and QML.
- Learnt about gRPC and WebSocket and how they are implemented in Kuksa.val and its Python SDK.
- I had the opportunity to test my application and AGL images on a Raspberry Pi 4 kindly provided by my AGL mentors last year.
- I also had the opportunity to learn about the CARLA Simulator, a simulation platform developed from the ground up to support development, training, and validation of autonomous driving systems. Making use of its flexible APIs; I was able to provide the File Playback feature to the agl-demo-control-panel.
- I also learned a lot more about the Automotive Grade Linux organization, its development tools, workflow, and pipeline.
# Post GSoC #
- I plan to maintain and add to the Automotive Grade Linux’s repository for my project 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.
Acknowledgments #
I would like to express my gratitude to my mentors Jan-Simon Möller, Justin Noel, Scott Murray, Marius Vlad, and Walt Miner and for mentoring me through another year of GSoC and also to the whole AGL community for being so inclusive and friendly.
It has been one of the best professional experiences. Learning about new tools and technologies, and working on an open-source project along with experienced developers from all over the world has been a great experience for me. I would love to continue working with AGL, improving my project, and whatever I feel that I can contribute to.