You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -18,33 +18,77 @@ This summer, I had the opportunity to contribute to [Robotics Academy](https://j
18
18
19
19
### About me
20
20
21
-
I have a Bachelor’s degree in Computer Science Engineering from MVJ College of Engineering, India. My interests lie in software engineeringand robotics. Google Summer of Code 2025 marked my first substantial contribution to open source, and it was an amazing experience.
21
+
I have a Bachelor’s degree in Computer Science Engineering from MVJ College of Engineering, India. My interests lie in software engineering, AI/ML and robotics.
22
22
23
23
### About the Project
24
24
25
25
JdeRobot’s Robotics-Academy provides exercises to learn robotics and AI while abstracting students from the complexities of the framework. The dockerized containers and web templates offer cross-platform functionality, simplifying the setup process. This allows beginners to focus on coding and testing their algorithms without dealing with extensive software installation.
26
26
27
-
Currently, Robotics-Academy uses Gazebo11 in the Robotics-Academy Docker Image (RADI) framework. The primary goal of my project was to migrate the RADI to Gazebo Harmonic and update exercises accordingly. Also, I replaced PX4 with the lighter Aerostack2 Gazebo platform for drone-based exercises, enhancing efficiency.
27
+
Currently, Robotics-Academy uses custom Hardware Abstraction Layer (HAL) and GUI components to facilitate interaction and programming of the exercises. My goal was to port these exercises to native ROS2, enabling users to leverage the full capabilities of ROS2, including its powerful communication and middleware features.
28
+
<!--
29
+
Throughout the summer, I made significant contributions to the Robotics Academy project, focusing on enhancing the integration of ROS2 within the existing framework. My work involved updating documentation, improving GUI components, and ensuring seamless communication between different modules. -->
28
30
29
31
---
30
32
33
+
### Contribution Summary
34
+
35
+
#### Step 1 : Understanding the Existing Framework
36
+
37
+
Robotics Academy consists of three main repositories: Robotics Academy, Robotics Application Manager, and Robotics. To effectively port the exercises to ROS 2, I first needed to thoroughly understand the existing framework. This involved studying the current implementation, including the custom HAL and GUI components, and identifying the key areas that required modification. The HAL provides a set of APIs that allow users to interact with the exercises without needing to understand the underlying ROS2 architecture. The goal of this project is to provide an alternative interface for users to interact with the exercises using ROS2.
38
+
39
+
#### Step 2 : Porting Follow line exercise for ROS2 Native support
40
+
Once I understood the framework, I began porting the Follow Line exercise to ROS 2. This involved replacing the custom HAL components with their ROS 2 equivalents and updating the Robotics Application Manager to ensure seamless integration within the existing framework.
41
+
42
+
The implementation was designed so that all exercises now have partial ROS 2 native support. To achieve full support, only the GUI needs to be ported.
43
+
I then worked on porting the WebGUI to ensure ROS 2 native compatibility. The WebGUI now supports two modes:
44
+
- Automatic mode, which launches a topic for seamless ROS 2 native integration
45
+
- Manual mode, which uses the HAL implementation
46
+
47
+
I also updated the documentation to reflect ROS 2 native support for the exercise and added a working ROS 2 solution.
48
+
49
+

50
+
<sub><i>Follow line exercise ROS Native implementation</i></sub>
51
+
52
+
#### Step 3 : Porting Vacuum Cleaner exercise for ROS2 Native support
53
+
54
+
After completing the Follow Line exercise, I began working on the Vacuum Cleaner exercise. This involved similar steps: replacing custom HAL components with their ROS 2 equivalents. Thanks to the groundwork done in Step 2, this process was relatively straightforward and required minimal changes.
55
+
56
+
I updated the WebGUI in the same way as for the Follow Line exercise, implementing two modes. Now, the map updates in real-time, and the user can see the vacuum cleaner's position on the map as it moves. A working ROS 2 solution for the Vacuum Cleaner exercise was also implemented.
#### Step 4 : Testing , Documentation and production ready
62
+
63
+
After implementing the exercises, I focused on testing and ensuring everything worked as expected. This involved running the exercises in various scenarios, identifying and fixing bugs, and keeping the documentation up to date.
64
+
65
+
I also worked on making the exercises production-ready by ensuring they were well-documented, user-friendly, and robust.
66
+
67
+
Once the code was production-ready, I merged the changes into the main production branch. The community can now benefit from ROS 2 native support in these exercises, and the upcoming release will include these enhancements.
68
+
31
69
### GitHub Contributions
32
70
33
-
Over the summer, I submitted 14 pull requests across 3 repositories, all of which have been merged. These pull requests addressed 12 issues, and my contributions will be incorporated into the upcoming releases of JdeRobot’s Robotics-Academy.
71
+
Over the summer, I submitted 12 pull requests across 3 repositories, all of which have been merged. These pull requests addressed 10 issues, and my contributions will be incorporated into the upcoming releases of JdeRobot’s Robotics-Academy.
|[#3150](https://github.com/JdeRobot/RoboticsAcademy/pull/3150)|[#3148](https://github.com/JdeRobot/RoboticsAcademy/pull/3148)| Follow Line Exercise docs update with <br> ROS 2 topics & new modules info |[Week 4 Blog](link)|
39
77
|[#3157](https://github.com/JdeRobot/RoboticsAcademy/pull/3157)|[#3156](https://github.com/JdeRobot/RoboticsAcademy/pull/3156)| Vacuum Cleaner Exercise docs update with <br> ROS 2 topics & new modules info |[Week 5 Blog](link)|
40
-
|[#3168](https://github.com/JdeRobot/RoboticsAcademy/pull/3168)|[#3167](https://github.com/JdeRobot/RoboticsAcademy/pull/3167)| Update GUI to support publishing of images <br> for the Web UI (Ros Native Follow Line) |[Week 6 Blog](link)|
78
+
|[#3168](https://github.com/JdeRobot/RoboticsAcademy/pull/3168)|[#3167](https://github.com/JdeRobot/RoboticsAcademy/pull/3167)| Update GUI to support publishing of images <br> (Ros Native Follow Line) |[Week 6 Blog](link)|
79
+
|[#3188](https://github.com/JdeRobot/RoboticsAcademy/pull/3188)|[#3187](https://github.com/JdeRobot/RoboticsAcademy/pull/3187)| Update GUI to support real time <br> update of map (Ros Native Vacuum Cleaner) |[Week 7 Blog](link), <br> [Week 8 Blog](link)|
|[#216](https://github.com/JdeRobot/RoboticsApplicationManager/pull/216)|[#217](https://github.com/JdeRobot/RoboticsApplicationManager/issues/217)| ROS 2 spin() support to user code|[Week 2 Blog](link)|
43
82
|[#221](https://github.com/JdeRobot/RoboticsApplicationManager/pull/221)|[#218](https://github.com/JdeRobot/RoboticsApplicationManager/issues/218)| Support for rclpy.spin_once()|[Week 3 Blog](link)|
44
83
|[#228](https://github.com/JdeRobot/RoboticsApplicationManager/pull/228)|[#227](https://github.com/JdeRobot/RoboticsApplicationManager/issues/227)| Frequency control using rate|[Week 4 Blog](link)|
Thanks for reading! I’m excited about the progress made this week and looking forward to tackling the challenges ahead. If you have any questions or feedback, feel free to reach out!
0 commit comments