Week 1 - Coding Period Begins! (June 2 ~ 9)
Hey everyone! This week officially kicked off the GSoC 2025 coding period! I’m thrilled to be contributing to JdeRobot through the project:
“Robotics-Academy: Support for Solutions Directly Using ROS 2 Topics.”
Objectives for the Week
- Understand how the
RAM
backend handles user code execution (on_run_application()
andprepare_RA_code()
) - Run ROS 2-native code inside the Follow Line exercise
- Verify if the robot responds correctly using native ROS logic
What I Worked On
Started the week with a Q&A meeting with all GSoC contributors and the GSoC team.
After the call, I dove into understanding how the current system runs submitted code.
I explored the backend of RAM (Robotics Academy Manager) and how it manages Docker containers and code injection through:
on_run_application()
prepare_RA_code()
Then, I moved on to testing if ROS 2-native code could run inside the Follow Line exercise. I set up a simple publisher using rclpy
to move the car forward.
The good news, it worked! This confirmed that ROS 2 logic is executable within the current Robotics Academy flow.
Currently, the node still requires a while
loop. My next step is to refactor it to use rclpy.spin()
for a proper ROS 2 event-driven structure and implement frequency control logic — possibly with user-configurable options (need to check with mentors on that!).
Key Learnings
- Understood RAM’s internal lifecycle and how it injects and runs user code
- Confirmed that ROS 2-native logic can work without HAL
- Identified a path forward to restructure execution logic using callbacks and
rclpy.spin()
If you’re familiar with running ROS 2 nodes inside restricted Docker environments and have tips, feel free to share!
Thanks for reading! I’ll be working on replacing the loop and cleaning up the ROS 2 integration next week.
Stay tuned — exciting stuff ahead!
Until next week—
Ashish