Week 10: Coding Period

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

Video

After consulting with Jose Maria Canas, I added extra slides and description to the video. Finally I capped it off by adding subtitles and background music. As my video editing skills have improved somewhat, this video was pretty good :).

Conditions

The next aspect of this week was the focus on Multiprocessing Conditions for the FSM implementation. After trawling through many examples and Python’s Documentation, I got the hang of how Conditions were implemented.

Subsequently I used them through Visual Circuit to implement the FSM. Using Conditions and a shared Value variable, I was able to implement a perfectly working FSM with virtually no changes to the code of the original Visual Circuit program.

The only the differences were as follows: Adding Value and Condition to the main.py file:

fsm = Value('i', 1)
condition = Condition()
.
.
processes.append(
            multiprocessing.Process(target=method, args=(inputs, outputs, parameters, fsm, condition, Synchronise(1 / (freq if freq != 0 else 30))))
        )

This made me change the template of the blocks as follows:

def main(inputs, outputs, parameters, fsm, condition, synchronise):

Finally an example of a block made using Conditions:

def main(inputs, outputs, parameters, fsm, condition, synchronise):
    IS_INITIAL = True

    with condition:
        while True:
            if fsm.value == 1 or IS_INITIAL:
                IS_INITIAL = False
                print("Block 1 is executing ...")
                sleep(1)
                outputs.share_number('o', 2)
                fsm.value = 2
                condition.notify_all()
            else:
                condition.wait()
            synchronise()

Note that the above block was made as a test for how the Conditions worked together with sleep statements. However this method didn’t exactly achive the ‘Visual’ aspect of Visual Circuit’s goal. We’ve decided to look into a way to integrate the Multiprocessing Values with the Visual Circuit interface, maybe by using it as a block?

2022

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 ↑