Skip to content

Commit 8be20f4

Browse files
committed
week 6 blog
1 parent 4bc43e5 commit 8be20f4

File tree

36 files changed

+3426
-238
lines changed

36 files changed

+3426
-238
lines changed

docs/_posts/21-07-25-Week 6.md

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
---
2+
title: Week 6 - ROS 2 Follow Line GUI Updates and Vacuum Cleaner Implementation (July 14 ~ July 21)
3+
date: 2025-07-21
4+
categories: [Coding Period, Phase Two]
5+
tags: [robotics-academy, ros2, follow-line, vaccum-cleaner, coding-period, phase-two]
6+
---
7+
8+
Hey everyone!
9+
This week was quite productive as I continued to work on the **ROS 2-native port of the Follow Line and Vacuum Cleaner exercises** and made significant progress in implementing the necessary features for a smooth user experience.
10+
11+
---
12+
13+
### Objectives for the Week
14+
15+
- [x] Update GUI to support publishing of images for the Web UI (Ros Native Follow Line)
16+
- [x] ROS 2 solution example (Subscriber based WebGUI)
17+
- [x] Getting started with vaccum cleaner exercise
18+
- [x] Vaccum Cleaner Solution ( without GUI implementation )
19+
- [x] Vaccum cleaner exercise Docs (Ros Native)
20+
21+
---
22+
23+
### What I Worked On
24+
25+
This week, I focused on implementing the ROS 2-native solution for the Follow Line exercise and started work on the Vacuum Cleaner exercise. The main tasks included updating the GUI to support image publishing for the Web UI, creating a ROS 2 solution example, and with the Vacuum Cleaner exercise.
26+
27+
#### Follow Line
28+
29+
The first ticket I worked on was fixing the race condition issue for the `/webgui_image` topic in the Follow Line exercise. I implemented a solution where the topic is created in the backend on exercise startup. This ensured that the topic existed when the GUI module was initialized. This way, the GUI module can automatically subscribe to the topic and display the images without requiring the user to manually call `showImage()`.
30+
31+
I'm happy to report that this solution is working well and the GUI now displays images as expected!
32+
33+
---
34+
35+
After working on the GUI module, I moved on to updating the ROS 2 solution example for the Follow Line exercise. This involved creating a new solution that uses the `/webgui_image` topic to publish images, allowing the GUI to automatically subscribe to the topic and display it in the Web UI. I also ensured that the solution is compatible with the ROS 2-native implementation and follows best practices for publishing and subscribing to topics.
36+
37+
![Follow line exercise ROS Native implementation](assets/lib/week_5_fl.gif)
38+
<sub><i>Follow line exercise ROS Native implementation (Using Subscriber based GUI)</i></sub>
39+
40+
---
41+
42+
#### Vacuum Cleaner Exercise
43+
44+
I started working on the Vacuum Cleaner exercise, which is another important part of the ROS 2-native port. The first step was to create a basic solution that implements the core functionality of the exercise without the GUI. This involved setting up the necessary ROS 2 nodes, publishers, and subscribers to handle the vacuum cleaner's operations.
45+
46+
I approached this by prototyping the laser and bumper topics to get and process data into a similar format as the HAL, but implemented by the user code in a ROS-native manner. I was able to successfully implement the basic functionality of the vacuum cleaner, allowing it to navigate and process the laser and bumper data effectively.
47+
48+
![Vacuum cleaner exercise ROS Native implementation](assets/lib/week_6_vc.gif)
49+
<sub><i>Vacuum cleaner exercise ROS Native implementation (Prototyping)</i></sub>
50+
51+
---
52+
53+
After this, I worked on and successfully implemented the complete ROS 2-native solution for the Vacuum Cleaner exercise. The solution involves the vacuum cleaner navigating through the environment by first exploring it in a spiral pattern and then moving based on that exploration. Here's a short video of the implementation in action:
54+
55+
![Vacuum cleaner exercise ROS Native implementation](assets/lib/week_6_vc2.gif)
56+
<sub><i>Vacuum cleaner exercise ROS Native implementation</i></sub>
57+
58+
Although the implementation works as intended, I still need to work on the GUI integration for this exercise. This will be my focus in the coming week.
59+
60+
I've also started working on the documentation for the Vacuum Cleaner exercise, ensuring it provides clear instructions for users to understand how to implement the exercise in a ROS 2-native manner. This includes details on the topics used, expected behaviors, and how to run the exercise. I am considering adding a section on how to get processed data from the topics similar to the HAL approach but with the ROS 2-native implementation. However, I need to discuss this with my mentors to finalize the approach.
61+
62+
---
63+
64+
### PRs & Issues Raised
65+
66+
Here are the contributions made this week:
67+
68+
**Issues**
69+
- [Update GUI to support publishing of images for the Web UI (Ros Native Follow Line)](https://github.com/JdeRobot/RoboticsAcademy/issues/3167)
70+
- [ROS 2 solution example (Subscriber based WebGUI)](https://github.com/JdeRobot/RoboticsAcademy-solutions/issues/102) (This is a private repo)
71+
- [Vaccum cleaner exercise Docs (Ros Native)](https://github.com/JdeRobot/RoboticsAcademy/issues/3156)
72+
73+
**Pull Requests**
74+
- [GUI feature update for Ros native ( Follow line )](https://github.com/JdeRobot/RoboticsAcademy/pull/3168)
75+
- [GUI feature update for follow line solution](https://github.com/JdeRobot/RoboticsAcademy-solutions/pull/103) (This is a private repo)
76+
- [Initial vacuum cleaner commit](https://github.com/JdeRobot/RoboticsAcademy/pull/3157)
77+
78+
### Key Learnings & Outcomes
79+
- Resolved race condition issues with backend topic creation for reliable GUI communication
80+
- Enhanced understanding of ROS 2 publisher-subscriber patterns with web UI integration
81+
- Implemented vacuum cleaner navigation using spiral exploration and sensor data processing
82+
83+
---
84+
85+
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!
86+
87+
Until next week —
88+
_Ashish_

docs/_site/404.html

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -556,35 +556,35 @@ <h2 class="panel-heading">Recently Updated</h2>
556556

557557

558558
<li class="text-truncate lh-lg">
559-
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-5/">Week 5 - Mid Term Evaluation & Phase Two Begins! (July 07 ~ July 14)</a>
559+
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-6/">Week 6 - ROS 2 Follow Line GUI Updates and Vacuum Cleaner Implementation (July 14 ~ July 21)</a>
560560
</li>
561561

562562

563563

564564

565565
<li class="text-truncate lh-lg">
566-
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-4/">Week 4 - Docs Updates & Frequency Control with Rate (June 30 ~ July 07)</a>
566+
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-5/">Week 5 - Mid Term Evaluation & Phase Two Begins! (July 07 ~ July 14)</a>
567567
</li>
568568

569569

570570

571571

572572
<li class="text-truncate lh-lg">
573-
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-3/">Week 3 - ROS 2 Frequency Control & Spin Once (June 17 ~ 23)</a>
573+
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-4/">Week 4 - Docs Updates & Frequency Control with Rate (June 30 ~ July 07)</a>
574574
</li>
575575

576576

577577

578578

579579
<li class="text-truncate lh-lg">
580-
<a href="/gsoc2025-Ashish_Ramesh/posts/week-2/">Week 2 - ROS 2 Spin Logic & Design Decisions (June 10 ~ 16)</a>
580+
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-3/">Week 3 - ROS 2 Frequency Control & Spin Once (June 17 ~ 23)</a>
581581
</li>
582582

583583

584584

585585

586586
<li class="text-truncate lh-lg">
587-
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-1/">Week 1 - Coding Period Begins! (June 2 ~ 9)</a>
587+
<a href="/gsoc2025-Ashish_Ramesh/posts/week-2/">Week 2 - ROS 2 Spin Logic & Design Decisions (June 10 ~ 16)</a>
588588
</li>
589589

590590
</ul>
@@ -804,6 +804,8 @@ <h2 class="panel-heading">Recently Updated</h2>
804804

805805

806806

807+
808+
807809

808810

809811

@@ -814,6 +816,8 @@ <h2 class="panel-heading">Recently Updated</h2>
814816

815817

816818

819+
820+
817821

818822

819823

@@ -838,6 +842,8 @@ <h2 class="panel-heading">Recently Updated</h2>
838842

839843

840844

845+
846+
841847

842848

843849

@@ -848,6 +854,8 @@ <h2 class="panel-heading">Recently Updated</h2>
848854

849855

850856

857+
858+
851859

852860

853861

@@ -1183,6 +1191,8 @@ <h2 class="panel-heading">Trending Tags</h2>
11831191

11841192

11851193

1194+
1195+
11861196

11871197

11881198

@@ -1193,6 +1203,8 @@ <h2 class="panel-heading">Trending Tags</h2>
11931203

11941204

11951205

1206+
1207+
11961208

11971209

11981210

@@ -1217,6 +1229,8 @@ <h2 class="panel-heading">Trending Tags</h2>
12171229

12181230

12191231

1232+
1233+
12201234

12211235

12221236

@@ -1227,6 +1241,8 @@ <h2 class="panel-heading">Trending Tags</h2>
12271241

12281242

12291243

1244+
1245+
12301246

12311247

12321248

docs/_site/about/index.html

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,12 @@
3838
<meta property="og:url" content="http://localhost:4000/gsoc2025-Ashish_Ramesh/about/" />
3939
<meta property="og:site_name" content="Ashish Ramesh JdeRobot x GSoC 2025" />
4040
<meta property="og:type" content="article" />
41-
<meta property="article:published_time" content="2025-07-14T20:24:51+05:30" />
41+
<meta property="article:published_time" content="2025-07-21T18:36:36+05:30" />
4242
<meta name="twitter:card" content="summary" />
4343
<meta property="twitter:title" content="About" />
4444
<meta name="twitter:site" content="@Ashish_Ramesh03" />
4545
<script type="application/ld+json">
46-
{"@context":"https://schema.org","@type":"WebSite","dateModified":"2025-07-14T20:24:51+05:30","datePublished":"2025-07-14T20:24:51+05:30","description":"Weekly GSoC updates, ROS 2 development logs, and open source contributions with JdeRobot during Google Summer of Code 2025.","headline":"About","name":"Ashish Ramesh","sameAs":["https://github.com/AshishRamesh","https://www.linkedin.com/in/ashish-ramesh-7566ba245/"],"url":"http://localhost:4000/gsoc2025-Ashish_Ramesh/about/"}</script>
46+
{"@context":"https://schema.org","@type":"WebSite","dateModified":"2025-07-21T18:36:36+05:30","datePublished":"2025-07-21T18:36:36+05:30","description":"Weekly GSoC updates, ROS 2 development logs, and open source contributions with JdeRobot during Google Summer of Code 2025.","headline":"About","name":"Ashish Ramesh","sameAs":["https://github.com/AshishRamesh","https://www.linkedin.com/in/ashish-ramesh-7566ba245/"],"url":"http://localhost:4000/gsoc2025-Ashish_Ramesh/about/"}</script>
4747
<!-- End Jekyll SEO tag -->
4848

4949

@@ -562,35 +562,35 @@ <h2 class="panel-heading">Recently Updated</h2>
562562

563563

564564
<li class="text-truncate lh-lg">
565-
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-5/">Week 5 - Mid Term Evaluation & Phase Two Begins! (July 07 ~ July 14)</a>
565+
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-6/">Week 6 - ROS 2 Follow Line GUI Updates and Vacuum Cleaner Implementation (July 14 ~ July 21)</a>
566566
</li>
567567

568568

569569

570570

571571
<li class="text-truncate lh-lg">
572-
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-4/">Week 4 - Docs Updates & Frequency Control with Rate (June 30 ~ July 07)</a>
572+
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-5/">Week 5 - Mid Term Evaluation & Phase Two Begins! (July 07 ~ July 14)</a>
573573
</li>
574574

575575

576576

577577

578578
<li class="text-truncate lh-lg">
579-
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-3/">Week 3 - ROS 2 Frequency Control & Spin Once (June 17 ~ 23)</a>
579+
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-4/">Week 4 - Docs Updates & Frequency Control with Rate (June 30 ~ July 07)</a>
580580
</li>
581581

582582

583583

584584

585585
<li class="text-truncate lh-lg">
586-
<a href="/gsoc2025-Ashish_Ramesh/posts/week-2/">Week 2 - ROS 2 Spin Logic & Design Decisions (June 10 ~ 16)</a>
586+
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-3/">Week 3 - ROS 2 Frequency Control & Spin Once (June 17 ~ 23)</a>
587587
</li>
588588

589589

590590

591591

592592
<li class="text-truncate lh-lg">
593-
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-1/">Week 1 - Coding Period Begins! (June 2 ~ 9)</a>
593+
<a href="/gsoc2025-Ashish_Ramesh/posts/week-2/">Week 2 - ROS 2 Spin Logic & Design Decisions (June 10 ~ 16)</a>
594594
</li>
595595

596596
</ul>
@@ -810,6 +810,8 @@ <h2 class="panel-heading">Recently Updated</h2>
810810

811811

812812

813+
814+
813815

814816

815817

@@ -820,6 +822,8 @@ <h2 class="panel-heading">Recently Updated</h2>
820822

821823

822824

825+
826+
823827

824828

825829

@@ -844,6 +848,8 @@ <h2 class="panel-heading">Recently Updated</h2>
844848

845849

846850

851+
852+
847853

848854

849855

@@ -854,6 +860,8 @@ <h2 class="panel-heading">Recently Updated</h2>
854860

855861

856862

863+
864+
857865

858866

859867

@@ -1189,6 +1197,8 @@ <h2 class="panel-heading">Trending Tags</h2>
11891197

11901198

11911199

1200+
1201+
11921202

11931203

11941204

@@ -1199,6 +1209,8 @@ <h2 class="panel-heading">Trending Tags</h2>
11991209

12001210

12011211

1212+
1213+
12021214

12031215

12041216

@@ -1223,6 +1235,8 @@ <h2 class="panel-heading">Trending Tags</h2>
12231235

12241236

12251237

1238+
1239+
12261240

12271241

12281242

@@ -1233,6 +1247,8 @@ <h2 class="panel-heading">Trending Tags</h2>
12331247

12341248

12351249

1250+
1251+
12361252

12371253

12381254

0 commit comments

Comments
 (0)