GSoC '15 Community Bonding

Siddhant Shrivastava

May 23, 2015

Filed under “

Third Post in the GSoC 2015 series. Here I’ll take you through the engaging community bonding experience.

Introduction to Community Bonding

Community Bonding is arguably one of the most important phases of the Google Summer of Code. In the 2015 edition, it took place from April 27 to May 25. This is what the GSoC FAQ has to say about this period -

Students get to know mentors, read documentation, get up to speed to begin working on their projects.

About the community

ERAS logo

The Italian Mars Society is a highly motivated group of incredibly smart and friendly scientists and developers who share the vision of working towards manned missions to Mars. I have been interacting with the community since March 2015 and I’ve never looked back. I was interested in the projects even during the brief period when it was unclear whether IMS would be able to participate or not. I’m grateful to the community members for applying under the Python Software Foundation umbrella and giving students like me a brilliant opportunity to explore real world Open Source development. From what I’ve heard, this organization comes up with the coolest projects for GSoC. And I concur with them - my project seems to blend in all the cool fields required for exploration - Robotics, Body-tracking, Virtual Reality, Oculus Rift, Real-time 3-D video streaming, Augmented Reality, etc.

Understanding the Codebase

Mercurial logo

To this end, there is a stable amount of software/hardware development shared on the Bitbucket platform. While interacting with Franco and Ezio, I discovered that all students are given write access to the ERAS and V-ERAS repositories using the Mercurial revision control system. This imparts tremendous responsiblity as new developers which I very much appreciate since it fosters trust and makes us mature community members.

Going through the codebase a couple of weeks ago, I found well-documented code, almost all of which follows the PEP8 guidelines and written in Python 3. The heart of the V-ERAS project is the Tango Controls server which is a distributed device server for Supervisory Control and Data Acquistion systems. This is ideal for a complex environment like ERAS where multiple hardware and software devices like the Oculus VR, Kinect, Linux Machines, Husky Rover, and Blender Game Engine applications are involved in a distributed setup. The entire networking subsystem of ERAS is well-explained in Ezio’s thesis.

Interacting with the Community

My experience with the Italian Mars Society has been memorable and pleasant right from the word go when I first entered the hallowed IMS channel of IRC (Internet Relay Chat) and introduced myself. I was promptly pointed to the right person for my project of interest. Within a single IRC Chat session with Franco, I got a clear idea of what to expect from this GSoC. The IRC channel though frequented by a small number of people is always bustling with activity. We’ve had fruitful discussion for each and every part of the project - from software architecture diagrams in the proposal, to the collaboration between two GSoC projects, and even some fun interactions about Python software development and Mars exploration. I always appreciate the levels of responsibity and feedback that the community members muster during interacting with students. Helping my fellow GSoC aspirants and seeking help from them is always a refreshing experience. Apart from IRC and Email, I got the chance to video-conference with all the project mentors on two occasions - during my GSoC interview and in the Kickoff meeting after the GSoC selection. This was the first time I had a teleconference interview and I thank IMS for that. It felt more like a sincere discussion of the things that I had in mind for the GSoC project rather than a test of my skills. The trust these guys had in me let me confidently speak out my mind which helped me make my points. The big GSoC Kickoff meeting meetup took place on April 29, 2015 where we all gathered on Google Hangouts to discuss various important points for the upcoming summer of code such as -

  1. The importance of blogging
  2. Hardware/Software requirements
  3. Strategic timeline of events
  4. Software engineering guidelines
  5. Suggestions of joint code review sessions

I helped prepare the meeting minutes for this session since some members faced connection problems to join the Hangout. These are shared in this document.

Setup and Technologies

Husky Rover

I have been exposed to an ample number of new concepts and technologies with this project.

To this end, I set up my workstation for the project requirements.

My current machine configuration for this GSoC project is as follows:

-Ubuntu 14.04.2 (Trusty Tahr) -ROS Indigo -Python 3 -Blender 2.74 -Tango Controls 1.99 -Linux Kernel 3.2 -Mercurial 3.4 -Hardware: 8 GB RAM, Intel Core i7 processor, Nvidia 2GB GPU GT650M

In the last couple of weeks, I have been busy with setting up the various ROS packages which are required for bodytracking based semi-autonmous teleoperation. The list of ROS packages will be added to the project documentation soon.

Learning Experience so far

ffmpeg

I’ve learnt an unexpected great deal about a lot of different things during this project. I had to do a lot of reading to get up to speed with the existing state of V-ERAS. Franco pointed me to the project documentation pages. I learned about Blender and Blender Game Engine after pulling an all-nighter. FFMPEG followed soon after that where I had to set up a MJPEG streaming server for the BGE client. That was followed by my first experience with PEP8, Mercurial, architecture diagrams, Tango Control system. My GSoC proposal has been an extensive piece of work with 61 revisions and brilliant feedback from my mentors. The proposal can be found here. A more comprehensive description of the project is taken up in this post.

To be continued…about ROS, Software Testing, Mapping, algorithms, etc