Post

GSoC 2025 - Week 3 - Starting to Code

Finally getting started with the coding part

GSoC 2025 - Week 3 - Starting to Code

By this point, I had both AGL and ROS building successfully on their own.
That meant there shouldn’t be any major issues when compiling them together—so it was finally time to start integrating them.

During my face-to-face call with my mentors, I asked how I should approach the integration.

My first step was to clone the meta-ros scarthgap branch, initialize the AGL environment, and try compiling a ROS-specific package.

  • I cloned the meta-ros layer into external/meta-ros inside the AGL home directory:
    1
    
    git clone -b scarthgap https://github.com/ros/meta-ros external/meta-ros
    
  • Checking the AGL directory structure:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    ➜  agl tree -L 1
    .
    ├── bsp
    ├── external
    ├── meta-agl
    ├── meta-agl-demo
    ├── meta-agl-devel
    ├── qemux86-64
    ├── raspberrypi4
    └── raspberrypi5
    
  • And inside the external folder:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    ➜  agl tree -L 1 external
    external
    ├── meta-clang
    ├── meta-codechecker
    ├── meta-flutter
    ├── meta-openembedded
    ├── meta-python-ai
    ├── meta-qt6
    ├── meta-ros
    ├── meta-security
    ├── meta-selinux
    ├── meta-spdxscanner
    ├── meta-tensorflow
    ├── meta-virtualization
    ├── poky
    └── workspace-automation
    
  • I then initialized the AGL environment and built ros-core:
    1
    2
    
    source meta-agl/scripts/aglsetup.sh -f -m raspberrypi4 -b raspberrypi4 agl-flutter agl-devel agl-demo
    bitbake ros-core
    

It took a while. I even had to do a clean build since I hadn’t set up an sstate cache or a local downloads server—meaning everything had to be fetched and built from scratch. Eventually, the build completed successfully.

It took some time, I did a clean build again, at this point I did not setup sstate cache and downloads server to my local, so It downloaded everything again and compiled, eventually I succeeded in this, and now just had to figure out the template

Get Involved

Stay tuned for the detailed technical deep-dives in the upcoming blog posts. I am planning to include examples, code, etc, such that anyone can follow along with it.

Have questions about automotive software development or want to collaborate on open-source automotive projects? Reach out to me on my email

Next: Week 4: First Patch to Gerrit
Journey: GSoC 2025 Journey

This post is licensed under CC BY 4.0 by the author.