Summary Report
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...
This week I looked into MultiProcessing Conditions and finished the video of the FSM.
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 :).
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?
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...
Going by the suggestions of my mentors, I spent this week working on the documentation of the blocks and some updates to my blog.
This week I looked into MultiProcessing Conditions and finished the video of the FSM.
This week saw the completion of the FSM video and the solution to the block size bug.
I made more progress with the documentation and some other auxillary bug fixes this week.
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...
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...
This was a week where I started to work on the Finite State Machine that I had mentioned in my proposal.
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...
This week I finally finished the remaining templates from last week. I also managed to upload my created videos to the JdeRobot YouTube Channel.
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.
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.
This was the last week of community bonding, however due to other commitments in college I had a hard time working on Visual Circuit.
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...
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...
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...