Skip to content

Commit 0ee72c1

Browse files
committed
final report summary content added
1 parent 419abb7 commit 0ee72c1

File tree

38 files changed

+7015
-196
lines changed

38 files changed

+7015
-196
lines changed

docs/_posts/11-08-25-Final Report.md

Lines changed: 51 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
---
22
title: Final Report- Robotics Academy Porting Exercises to Native ROS2 with Direct Topic Integration
3-
date: 2025-08-10
4-
categories: [Coding Period, Phase Two]
5-
tags: [robotics-academy, ros2, vaccum-cleaner, coding-period, phase-two]
3+
date: 2025-08-11
4+
categories: [Coding Period, Phase Two, Final Report]
5+
tags: [robotics-academy, ros2, vaccum-cleaner, follow-line, coding-period, phase-two, final-report]
66
---
77

88
Organization: [JdeRobot](https://jderobot.github.io/)
@@ -18,33 +18,77 @@ This summer, I had the opportunity to contribute to [Robotics Academy](https://j
1818

1919
### About me
2020

21-
I have a Bachelor’s degree in Computer Science Engineering from MVJ College of Engineering, India. My interests lie in software engineering and 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.
2222

2323
### About the Project
2424

2525
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.
2626

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. -->
2830

2931
---
3032

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+
![Follow line exercise ROS Native implementation](assets/lib/week_5_fl.gif)
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.
57+
58+
![Vacuum Cleaner exercise ROS Native implementation](assets/lib/week_8.gif)
59+
<sub><i>Vacuum Cleaner exercise ROS Native implementation </i></sub>
60+
61+
#### 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+
3169
### GitHub Contributions
3270

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.
3472

3573
| Pull Request | Solves Issue | Description | More |
3674
|:------------:|:------------:|:-----------:|:----:|
3775
|[Robotics Academy](https://github.com/JdeRobot/RoboticsAcademy) |
3876
| [#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) |
3977
| [#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) |
4180
| [Robotics Application Manager](https://github.com/JdeRobot/RoboticsApplicationManager) |
4281
| [#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) |
4382
| [#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) |
4483
| [#228](https://github.com/JdeRobot/RoboticsApplicationManager/pull/228) | [#227](https://github.com/JdeRobot/RoboticsApplicationManager/issues/227) | Frequency control using rate| [Week 4 Blog](link) |
4584
| [#230](https://github.com/JdeRobot/RoboticsApplicationManager/pull/230) | [#227](https://github.com/JdeRobot/RoboticsApplicationManager/issues/227) | Branch Sync| [Week 5 Blog](link) |
4685
| [Robotics Academy Solutions <br> (This is a private repo)](https://github.com/JdeRobot/RoboticsAcademy-solutions) |
4786
| [#100](https://github.com/JdeRobot/RoboticsAcademy-solutions/pull/100), [#103](https://github.com/JdeRobot/RoboticsAcademy-solutions/pull/103) | [#98](https://github.com/JdeRobot/RoboticsAcademy-solutions/issues/98), [#102](https://github.com/JdeRobot/RoboticsAcademy-solutions/issues/102) | Follow line ROS Native Solution | [Week 5 Blog](link), <br> [Week 6 Blog](link) |
87+
| [#105](https://github.com/JdeRobot/RoboticsAcademy-solutions/pull/105), [#111](https://github.com/JdeRobot/RoboticsAcademy-solutions/pull/111) | [#104](https://github.com/JdeRobot/RoboticsAcademy-solutions/issues/104), [#108](https://github.com/JdeRobot/RoboticsAcademy-solutions/issues/108) | Vacuum Cleaner ROS Native Solution | [Week 7 Blog](link), <br> [Week 8 Blog](link) |
88+
89+
90+
### Future Work
91+
4892

4993

5094
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!

docs/_site/404.html

Lines changed: 116 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -563,14 +563,14 @@ <h2 class="panel-heading">Recently Updated</h2>
563563

564564

565565
<li class="text-truncate lh-lg">
566-
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-8/">Week 8 - ROS 2 Follow Line GUI Updates and Vacuum Cleaner Implementation (July 28 ~ August 4)</a>
566+
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-7/">Week 7 - ROS 2 Follow Line GUI Updates and Vacuum Cleaner Implementation (July 21 ~ 28)</a>
567567
</li>
568568

569569

570570

571571

572572
<li class="text-truncate lh-lg">
573-
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-7/">Week 7 - ROS 2 Follow Line GUI Updates and Vacuum Cleaner Implementation (July 21 ~ 28)</a>
573+
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-8/">Week 8 - ROS 2 Follow Line GUI Updates and Vacuum Cleaner Implementation (July 28 ~ August 4)</a>
574574
</li>
575575

576576

@@ -643,6 +643,11 @@ <h2 class="panel-heading">Recently Updated</h2>
643643

644644

645645

646+
647+
648+
649+
650+
646651

647652

648653

@@ -698,6 +703,11 @@ <h2 class="panel-heading">Recently Updated</h2>
698703

699704

700705

706+
707+
708+
709+
710+
701711

702712

703713

@@ -717,6 +727,11 @@ <h2 class="panel-heading">Recently Updated</h2>
717727

718728

719729

730+
731+
732+
733+
734+
720735

721736

722737

@@ -751,6 +766,11 @@ <h2 class="panel-heading">Recently Updated</h2>
751766

752767

753768

769+
770+
771+
772+
773+
754774

755775

756776

@@ -785,6 +805,11 @@ <h2 class="panel-heading">Recently Updated</h2>
785805

786806

787807

808+
809+
810+
811+
812+
788813

789814

790815

@@ -831,6 +856,11 @@ <h2 class="panel-heading">Recently Updated</h2>
831856

832857

833858

859+
860+
861+
862+
863+
834864

835865

836866

@@ -860,6 +890,30 @@ <h2 class="panel-heading">Recently Updated</h2>
860890

861891

862892

893+
894+
895+
896+
897+
898+
899+
900+
901+
902+
903+
904+
905+
906+
907+
908+
909+
910+
911+
912+
913+
914+
915+
916+
863917

864918

865919

@@ -908,6 +962,9 @@ <h2 class="panel-heading">Trending Tags</h2>
908962

909963
<a class="post-tag btn btn-outline-primary" href="/gsoc2025-Ashish_Ramesh/tags/intro/">intro</a>
910964

965+
966+
<a class="post-tag btn btn-outline-primary" href="/gsoc2025-Ashish_Ramesh/tags/final-report/">final-report</a>
967+
911968
</div>
912969
</section>
913970

@@ -1018,6 +1075,11 @@ <h2 class="panel-heading">Trending Tags</h2>
10181075

10191076

10201077

1078+
1079+
1080+
1081+
1082+
10211083

10221084

10231085

@@ -1073,6 +1135,11 @@ <h2 class="panel-heading">Trending Tags</h2>
10731135

10741136

10751137

1138+
1139+
1140+
1141+
1142+
10761143

10771144

10781145

@@ -1092,6 +1159,11 @@ <h2 class="panel-heading">Trending Tags</h2>
10921159

10931160

10941161

1162+
1163+
1164+
1165+
1166+
10951167

10961168

10971169

@@ -1126,6 +1198,11 @@ <h2 class="panel-heading">Trending Tags</h2>
11261198

11271199

11281200

1201+
1202+
1203+
1204+
1205+
11291206

11301207

11311208

@@ -1160,6 +1237,11 @@ <h2 class="panel-heading">Trending Tags</h2>
11601237

11611238

11621239

1240+
1241+
1242+
1243+
1244+
11631245

11641246

11651247

@@ -1206,6 +1288,11 @@ <h2 class="panel-heading">Trending Tags</h2>
12061288

12071289

12081290

1291+
1292+
1293+
1294+
1295+
12091296

12101297

12111298

@@ -1235,6 +1322,30 @@ <h2 class="panel-heading">Trending Tags</h2>
12351322

12361323

12371324

1325+
1326+
1327+
1328+
1329+
1330+
1331+
1332+
1333+
1334+
1335+
1336+
1337+
1338+
1339+
1340+
1341+
1342+
1343+
1344+
1345+
1346+
1347+
1348+
12381349

12391350

12401351

@@ -1283,6 +1394,9 @@ <h2 class="panel-heading">Trending Tags</h2>
12831394

12841395
<a class="post-tag btn btn-outline-primary" href="/gsoc2025-Ashish_Ramesh/tags/intro/">intro</a>
12851396

1397+
1398+
<a class="post-tag btn btn-outline-primary" href="/gsoc2025-Ashish_Ramesh/tags/final-report/">final-report</a>
1399+
12861400
</div>
12871401
</section>
12881402

0 commit comments

Comments
 (0)