Skip to content

Commit cced3c2

Browse files
committed
week 4 blog
1 parent e285c12 commit cced3c2

File tree

29 files changed

+2582
-272
lines changed

29 files changed

+2582
-272
lines changed

docs/_posts/07-07-25-Week 4.md

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
---
2+
title: Week 4 - Docs Updates & Frequency Control with Rate (June 30 ~ July 07)
3+
date: 2025-07-06
4+
categories: [Coding Period, Phase One]
5+
tags: [robotics-academy, ros2, follow-line, coding-period, phase-one]
6+
---
7+
8+
Hey everyone!
9+
This week I got back to my **GSoC project with JdeRobot** after taking a short break for my exams. It’s been good to dive back in and continue with the **ROS 2-native port of the Follow Line exercise**.
10+
11+
---
12+
13+
### Objectives for the Week
14+
15+
- [x] Implement frequency control using `rclpy.Rate`
16+
- [x] Update the exercise documentation page with ROS 2 topics and new module info
17+
- [ ] Fix logging in the VNC Console
18+
- [ ] Image output in the GUI
19+
20+
---
21+
22+
### What I Worked On
23+
24+
We started the week with our regular mentor sync-up to review where I left off and set fresh goals for this sprint after my exam break.
25+
26+
The first major task was **updating the documentation** for the Follow Line exercise. I restructured the page to clearly include ROS 2-native instructions alongside the existing HAL approach. I also got feedback from the mentors, iterated on the structure, and then pushed the updates to a dedicated branch on `gh-pages`.
27+
28+
---
29+
30+
After finishing the docs work, I moved on to **implementing frequency control using `Rate`**. With this change, the ROS 2-native port now supports all three mechanisms for event loop control:
31+
32+
- `spin()`
33+
- `spin_once()`
34+
- `create_rate()`
35+
36+
This gives users flexibility in choosing how they want to manage execution frequency in their solutions.
37+
38+
---
39+
40+
I also continued working on **fixing the logging behavior in the VNC Console**. Right now, logs appear in the Docker terminal but not in the web-based VNC terminal. After some investigation, I found that ROS 2 needs to be initialized with the right environment variables to send logs to stdout, which the VNC console can read. I checked with my mentors and they pointed out that I’d need to modify the .env file in the RoboticsInfrastructure repo to make this work—something I hadn’t realized earlier. This is still in progress.
41+
42+
---
43+
44+
Another key focus area was **the image output in the GUI**. I managed to get the pipeline working so that user code can publish processed images to `/webgui_image`. The `GUI` module subscribes to this topic and displays the images in the frontend. However, there’s still a blocker: right now, the user still needs to *import GUI and call `showImage()`* to trigger the display, even though the message is received on the topic. This seems to be due to ROS initialization and threading issues that I’m continuing to debug.
45+
46+
![Weekly progress update meet](assets/lib/week_4.png)
47+
<sub><i>Current GUI Output</i></sub>
48+
49+
50+
---
51+
52+
### PRs & Issues Raised
53+
54+
Here are the contributions made this week:
55+
56+
**Issues**
57+
- [rclpy.Rate support](https://github.com/JdeRobot/RoboticsApplicationManager/issues/227)
58+
- [[follow_line] Exercise docs page update with ROS 2 topics and new modules info](https://github.com/JdeRobot/RoboticsAcademy/issues/3148)
59+
- [Fix logging in VNC Console](https://github.com/JdeRobot/RoboticsApplicationManager/issues/222)
60+
61+
**Pull Requests**
62+
- [Frequency control using rate](https://github.com/JdeRobot/RoboticsApplicationManager/pull/228)
63+
- [Ros native docs update](https://github.com/JdeRobot/RoboticsAcademy/pull/3150)
64+
65+
---
66+
67+
### Key Learnings & Outcomes
68+
69+
- Integrated `rclpy.Rate` to offer user-level frequency control in ROS 2-native code
70+
- Updated the Follow Line documentation to clearly cover ROS 2-native usage
71+
- Clarified what changes are required in the infrastructure to enable VNC logging from user scripts
72+
- Prototyped and validated image publishing to `/webgui_image`, identifying threading and initialization issues to fix next
73+
74+
---
75+
76+
> I will be having my **mid-phase review** this coming week.
77+
{: .prompt-info }
78+
79+
Thanks for reading! Next up, I’ll finalize the GUI image publishing mechanism and continue refining the frequency and logging logic to better support ROS 2-native workflows.
80+
81+
Until next week —
82+
_Ashish_

docs/_site/404.html

Lines changed: 5 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-3/">Week 3 - ROS 2 Frequency Control & Spin Once (June 17 ~ 23)</a>
559+
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-4/">Week 4 - Docs Updates & Frequency Control with Rate (June 30 ~ July 07)</a>
560560
</li>
561561

562562

563563

564564

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

569569

570570

571571

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

576576

577577

578578

579579
<li class="text-truncate lh-lg">
580-
<a href="/gsoc2025-Ashish_Ramesh/posts/Community-Bonding-2/">Community Bonding Week 2 (May 26 ~ June 2)</a>
580+
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-1/">Week 1 - Coding Period Begins! (June 2 ~ 9)</a>
581581
</li>
582582

583583

584584

585585

586586
<li class="text-truncate lh-lg">
587-
<a href="/gsoc2025-Ashish_Ramesh/posts/Community-Bonding/">Community Bonding (May 16 ~ 25)</a>
587+
<a href="/gsoc2025-Ashish_Ramesh/posts/Community-Bonding-2/">Community Bonding Week 2 (May 26 ~ June 2)</a>
588588
</li>
589589

590590
</ul>

docs/_site/about/index.html

Lines changed: 7 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-06-23T20:47:04+05:30" />
41+
<meta property="article:published_time" content="2025-07-07T18:18:59+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-06-23T20:47:04+05:30","datePublished":"2025-06-23T20:47:04+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-07T18:18:59+05:30","datePublished":"2025-07-07T18:18:59+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-3/">Week 3 - ROS 2 Frequency Control & Spin Once (June 17 ~ 23)</a>
565+
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-4/">Week 4 - Docs Updates & Frequency Control with Rate (June 30 ~ July 07)</a>
566566
</li>
567567

568568

569569

570570

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

575575

576576

577577

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

582582

583583

584584

585585
<li class="text-truncate lh-lg">
586-
<a href="/gsoc2025-Ashish_Ramesh/posts/Community-Bonding-2/">Community Bonding Week 2 (May 26 ~ June 2)</a>
586+
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-1/">Week 1 - Coding Period Begins! (June 2 ~ 9)</a>
587587
</li>
588588

589589

590590

591591

592592
<li class="text-truncate lh-lg">
593-
<a href="/gsoc2025-Ashish_Ramesh/posts/Community-Bonding/">Community Bonding (May 16 ~ 25)</a>
593+
<a href="/gsoc2025-Ashish_Ramesh/posts/Community-Bonding-2/">Community Bonding Week 2 (May 26 ~ June 2)</a>
594594
</li>
595595

596596
</ul>

docs/_site/archives/index.html

Lines changed: 22 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/archives/" />
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-06-23T20:47:04+05:30" />
41+
<meta property="article:published_time" content="2025-07-07T18:18:59+05:30" />
4242
<meta name="twitter:card" content="summary" />
4343
<meta property="twitter:title" content="Archives" />
4444
<meta name="twitter:site" content="@Ashish_Ramesh03" />
4545
<script type="application/ld+json">
46-
{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2025-06-23T20:47:04+05:30","datePublished":"2025-06-23T20:47:04+05:30","description":"Weekly GSoC updates, ROS 2 development logs, and open source contributions with JdeRobot during Google Summer of Code 2025.","headline":"Archives","mainEntityOfPage":{"@type":"WebPage","@id":"http://localhost:4000/gsoc2025-Ashish_Ramesh/archives/"},"url":"http://localhost:4000/gsoc2025-Ashish_Ramesh/archives/"}</script>
46+
{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2025-07-07T18:18:59+05:30","datePublished":"2025-07-07T18:18:59+05:30","description":"Weekly GSoC updates, ROS 2 development logs, and open source contributions with JdeRobot during Google Summer of Code 2025.","headline":"Archives","mainEntityOfPage":{"@type":"WebPage","@id":"http://localhost:4000/gsoc2025-Ashish_Ramesh/archives/"},"url":"http://localhost:4000/gsoc2025-Ashish_Ramesh/archives/"}</script>
4747
<!-- End Jekyll SEO tag -->
4848

4949

@@ -469,6 +469,21 @@ <h1 class="dynamic-title">
469469

470470

471471

472+
<li>
473+
474+
<span class="date day" data-ts="1751740200" data-df="DD">06</span>
475+
<span class="date month small text-muted ms-1" data-ts="1751740200" data-df="MMM">
476+
Jul
477+
</span>
478+
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-4/">Week 4 - Docs Updates & Frequency Control with Rate (June 30 ~ July 07)</a>
479+
</li>
480+
481+
482+
483+
484+
485+
486+
472487
<li>
473488

474489
<span class="date day" data-ts="1750617000" data-df="DD">23</span>
@@ -575,35 +590,35 @@ <h2 class="panel-heading">Recently Updated</h2>
575590

576591

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

581596

582597

583598

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

588603

589604

590605

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

595610

596611

597612

598613
<li class="text-truncate lh-lg">
599-
<a href="/gsoc2025-Ashish_Ramesh/posts/Community-Bonding-2/">Community Bonding Week 2 (May 26 ~ June 2)</a>
614+
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-1/">Week 1 - Coding Period Begins! (June 2 ~ 9)</a>
600615
</li>
601616

602617

603618

604619

605620
<li class="text-truncate lh-lg">
606-
<a href="/gsoc2025-Ashish_Ramesh/posts/Community-Bonding/">Community Bonding (May 16 ~ 25)</a>
621+
<a href="/gsoc2025-Ashish_Ramesh/posts/Community-Bonding-2/">Community Bonding Week 2 (May 26 ~ June 2)</a>
607622
</li>
608623

609624
</ul>

docs/_site/assets/js/data/search.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,22 @@
11
[
22

3+
{
4+
"title": "Week 4 - Docs Updates & Frequency Control with Rate (June 30 ~ July 07)",
5+
"url": "/gsoc2025-Ashish_Ramesh/posts/Week-4/",
6+
"categories": "Coding Period, Phase One",
7+
"tags": "robotics-academy, ros2, follow-line, coding-period, phase-one",
8+
"date": "2025-07-06 00:00:00 +0530",
9+
10+
11+
12+
13+
14+
15+
16+
"snippet": "Hey everyone!This week I got back to my GSoC project with JdeRobot after taking a short break for my exams. It’s been good to dive back in and continue with the ROS 2-native port of the Follow Line...",
17+
"content": "Hey everyone!This week I got back to my GSoC project with JdeRobot after taking a short break for my exams. It’s been good to dive back in and continue with the ROS 2-native port of the Follow Line exercise.Objectives for the Week Implement frequency control using rclpy.Rate Update the exercise documentation page with ROS 2 topics and new module info Fix logging in the VNC Console Image output in the GUIWhat I Worked OnWe started the week with our regular mentor sync-up to review where I left off and set fresh goals for this sprint after my exam break.The first major task was updating the documentation for the Follow Line exercise. I restructured the page to clearly include ROS 2-native instructions alongside the existing HAL approach. I also got feedback from the mentors, iterated on the structure, and then pushed the updates to a dedicated branch on gh-pages.After finishing the docs work, I moved on to implementing frequency control using Rate. With this change, the ROS 2-native port now supports all three mechanisms for event loop control: spin() spin_once() create_rate()This gives users flexibility in choosing how they want to manage execution frequency in their solutions.I also continued working on fixing the logging behavior in the VNC Console. Right now, logs appear in the Docker terminal but not in the web-based VNC terminal. After some investigation, I found that ROS 2 needs to be initialized with the right environment variables to send logs to stdout, which the VNC console can read. I checked with my mentors and they pointed out that I’d need to modify the .env file in the RoboticsInfrastructure repo to make this work—something I hadn’t realized earlier. This is still in progress.Another key focus area was the image output in the GUI. I managed to get the pipeline working so that user code can publish processed images to /webgui_image. The GUI module subscribes to this topic and displays the images in the frontend. However, there’s still a blocker: right now, the user still needs to import GUI and call showImage() to trigger the display, even though the message is received on the topic. This seems to be due to ROS initialization and threading issues that I’m continuing to debug.Current GUI OutputPRs &amp; Issues RaisedHere are the contributions made this week:Issues rclpy.Rate support [follow_line] Exercise docs page update with ROS 2 topics and new modules info Fix logging in VNC ConsolePull Requests Frequency control using rate Ros native docs updateKey Learnings &amp; Outcomes Integrated rclpy.Rate to offer user-level frequency control in ROS 2-native code Updated the Follow Line documentation to clearly cover ROS 2-native usage Clarified what changes are required in the infrastructure to enable VNC logging from user scripts Prototyped and validated image publishing to /webgui_image, identifying threading and initialization issues to fix next I will be having my mid-phase review this coming week.Thanks for reading! Next up, I’ll finalize the GUI image publishing mechanism and continue refining the frequency and logging logic to better support ROS 2-native workflows.Until next week —Ashish"
18+
},
19+
320
{
421
"title": "Week 3 - ROS 2 Frequency Control & Spin Once (June 17 ~ 23)",
522
"url": "/gsoc2025-Ashish_Ramesh/posts/Week-3/",

docs/_site/assets/js/data/swconf.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const swconf = {
22

3-
cacheName: 'chirpy-1750691824',resources: [
3+
cacheName: 'chirpy-1751892539',resources: [
44
'/gsoc2025-Ashish_Ramesh/assets/css/jekyll-theme-chirpy.css',
55
'/gsoc2025-Ashish_Ramesh/',
66

docs/_site/assets/lib/week_4.png

711 KB
Loading

docs/_site/categories/coding-period/index.html

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -456,11 +456,35 @@
456456
<h1 class="ps-lg-2">
457457
<i class="far fa-folder-open fa-fw text-muted"></i>
458458
Coding Period
459-
<span class="lead text-muted ps-2">3</span>
459+
<span class="lead text-muted ps-2">4</span>
460460
</h1>
461461

462462
<ul class="content ps-0">
463463

464+
<li class="d-flex justify-content-between px-md-3">
465+
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-4/">Week 4 - Docs Updates & Frequency Control with Rate (June 30 ~ July 07)</a>
466+
<span class="dash flex-grow-1"></span>
467+
<!--
468+
Date format snippet
469+
See: ${JS_ROOT}/utils/locale-dateime.js
470+
-->
471+
472+
473+
474+
475+
<time
476+
477+
class="text-muted small text-nowrap"
478+
479+
data-ts="1751740200"
480+
data-df="ll"
481+
482+
>
483+
Jul 6, 2025
484+
</time>
485+
486+
</li>
487+
464488
<li class="d-flex justify-content-between px-md-3">
465489
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-3/">Week 3 - ROS 2 Frequency Control & Spin Once (June 17 ~ 23)</a>
466490
<span class="dash flex-grow-1"></span>
@@ -568,35 +592,35 @@ <h2 class="panel-heading">Recently Updated</h2>
568592

569593

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

574598

575599

576600

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

581605

582606

583607

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

588612

589613

590614

591615
<li class="text-truncate lh-lg">
592-
<a href="/gsoc2025-Ashish_Ramesh/posts/Community-Bonding-2/">Community Bonding Week 2 (May 26 ~ June 2)</a>
616+
<a href="/gsoc2025-Ashish_Ramesh/posts/Week-1/">Week 1 - Coding Period Begins! (June 2 ~ 9)</a>
593617
</li>
594618

595619

596620

597621

598622
<li class="text-truncate lh-lg">
599-
<a href="/gsoc2025-Ashish_Ramesh/posts/Community-Bonding/">Community Bonding (May 16 ~ 25)</a>
623+
<a href="/gsoc2025-Ashish_Ramesh/posts/Community-Bonding-2/">Community Bonding Week 2 (May 26 ~ June 2)</a>
600624
</li>
601625

602626
</ul>

0 commit comments

Comments
 (0)