Community Bonding - Week 1

I’m looking forward to working on the Improvement of Web templates using React project with the JdeRobot community! The Google Summer of Code programme begins with a period of getting to know the community and exploring the project to have a better grasp.

Goals

  • Setup a Blogging website to write about the progress of GSoC project

  • Get more familiar with the Current architecture of the GUI at Robottics Academy

This repository will be used for all the code developed as well as the blog website.

Accomplishment and Challenges

  • Blog Website [Task 1]

Website is written using Jekyll based on the minimal-mistakes template. Jekyll is a static site generator written in ruby. To get started with jekyll, I first had to install ruby, which can get a little problematic if you don’t follow the instruction carefully. I first installed ruby without openssl, because of which I wasn’t able to install jekyll. I had to go through several articles and discussion to solve the problem.

After completing the Installation, learning and developing blog website with jekyll is easy and fun. It provides great theme and easy to use codes.

  • Robot Academy Architecture [Task 2]

To understand the architecture, I read the ClientSide.md present in the RoboticsAcademy.

A Django web server running inside the Robotics Academy Docker Image (RADI) serves the frontend. The RADI has several exercises available using Gazebo and Simple two dimensional robot simulator (STDR). Each exercise consists of two files: exercise.html and exercise.py. The exercise.py is executed within the RADI, whereas the exercise.html is generated by the browser. Both use websockets to communicate.

Two Websockets that are used to communicate between exercise.py and browser are -

  1. Code  websocket (Port 1905) - To interact with the brain of the robot, this websocket is used. User’s source code is sent from the browser to the exercise.py through this websocket. 

  2. GUI websocket (Port 2303) - Since exercise.py lacks a graphical interface, this websocket is typically used to communicate data from the backend to the frontend. Gui websocket transmits images to the browser to be shown (for example, a robot camera), and html widgets display them. This websocket has more diversity because it fluctuates according to the requirements of each exercise. 

Updated: