Week 6: Coding Period

This week was quite hectic for me. My college started offline after a while, due to travelling and a few other events the time I could spend on Visual Circuit was reduced to a certain exent.

Still, I managed to make some progress on last week’s goals.


I continued work on the FSM, I realized that the old block model I was using was unsustainable. This was due to a flaw in which all of the states were not updated, i.e. when the control moved from block 0 -> block 1 -> block 2 the state changes from 0 -> 1 -> 2. However block 1 will keep supplying state 1 to block 2 even though block 2 supplies 0 to block 0, this cause block 2 to repeatedly execute.

To fix this I switched to a Master-Controller relationship between the blocks as suggessted by my mentors last week. This involved having one block just to oversee the state and control the other blocks, the diagram looked something like this: Block Diagram Master-Controller

After this implementation I was able to get the Vacuum Cleaner implementation working the way it was intended. However there were certain cases in which it showed erratic behavior still. I showed it to my mentors and the conclusion seemed to be that the multiprocessing aspect of the application was causing some unexpected behavior. To fix this I suggested having a lock for the process what was currently being executed, however we did not come to a fixed conclusion about this issue.


Last week I had found pdoc as a useful tool for documenting the application. This week I extended on last week’s work by writing a simple Python script to extract all the json data from the block files, store them as python files and then run pdoc on them to generate some rudimentary documentation.

The next step for this was to adapt the tool to work according to our needs. That part will be worked on next week. The problem with the json implementation and custom block type work meant that this will require some rewriting of the code of pdoc itself. Perhaps, not 100% sure about it yet.

General Bugs

While giving a demo of some blocks I found that the Threshold block was incorrectly saved in the Tool, that will be fixed in a PR soon. Aside from that I identified what was causing the bug of the blocks opening with very small sizes. Apparently while saving the blocks their size was saved incorrectly. By editing these values in the JSON I was able to restore them to a normal size. This meant that would open in the correct size by default and the user would not have to spend time trying to re-size them.

Example of a shrunken block

On an unrelated note, the Mid-Term evaluations of GSoC were this week. Quite happy that the project is on track!


No new Issues were raised this week

Pull Requests

No new Pull Requests were issued this week however some corrections and updates were made on already active ones from the previous week.


Summary Report

4 minute read

Late nights, excitement and learning are how I would describe the GSoC period in a few words. These past two months have been a lot of fun, from starting off...

Week 11: Coding Period

1 minute read

Going by the suggestions of my mentors, I spent this week working on the documentation of the blocks and some updates to my blog.

Week 10: Coding Period

1 minute read

This week I looked into MultiProcessing Conditions and finished the video of the FSM.

Week 9: Coding Period

1 minute read

This week saw the completion of the FSM video and the solution to the block size bug.

Week 8: Coding Period

1 minute read

I made more progress with the documentation and some other auxillary bug fixes this week.

Week 7: Coding Period

1 minute read

Another pretty busy week for me personally. This led to a bit of slowdown in the work done. However I started with the documentation editing through Jinja an...

Week 6: Coding Period

2 minute read

This week was quite hectic for me. My college started offline after a while, due to travelling and a few other events the time I could spend on Visual Circui...

Week 5: Coding Period

1 minute read

This was a week where I started to work on the Finite State Machine that I had mentioned in my proposal.

Week 4: Coding Period

3 minute read

This week marked a focus on completing the remaining PRs from last week. I also finished adding a new IMU block and worked on general share() and read() func...

Week 3: Coding Period

2 minute read

This week I finally finished the remaining templates from last week. I also managed to upload my created videos to the JdeRobot YouTube Channel.

Week 2: Coding Period

1 minute read

This week was about identifying and solving some bugs I had noticed during usage of the tool. I also started with the work template updation.

Week 1: Coding Period

1 minute read

This week marked the official beginning of the coding period. Going by last week’s set goals I started on the video creation part first and foremost.

Week 3: Community Bonding

less than 1 minute read

This was the last week of community bonding, however due to other commitments in college I had a hard time working on Visual Circuit.

Week 2: Community Bonding

1 minute read

In my previous posts I had highlighted the challenges I faced while installing Jde Drones and getting code running on it. Next after these steps was to solve...

Getting Code Running on Drones

1 minute read

After I got the drones running now it was time to actually write the code to solve some exercises. The goal for this week of the GSoC period was to get 1-2 a...

Installing JDE Drones

2 minute read

Getting started with my GSoC period, one of my goals during the project was to make drone applications using Visual Circuit. JdeRobot’s Academy already has s...

Back to Top ↑