The Final Report

1. VisualStates Tool
2. The Task
3. Work Completed
4. Work Left
5. Explanation Videos
6. People Involved
7. Links
8. Development Status
9. Documentation

VisualStates Tool

VisualStates is a tool for programming robot behaviors using automata. It combines a graphical language to specify the states and the transitions with a text language (Python or C++). Hierarchical Finite State Machines are used to program robot behaviors and each state is a reactive controller which can be active or not at a particular instant. It automatically generates a Robotics Operating System node as output, in C++ or Python, which connects to the configured drivers at runtime and implements the automata. This tool speeds up the development of robot applications, reducing the code that has to be manually created.

The Task

Visual States is a great tool but some features were felt missing. I had to work on two of these.

  • The variables inside the tool had to be dug out from the heaps of code. This was a problem as it took a lot of time to tweak variables whose values had to be tuned perfectly. Hence parameterization had become a necessity for the tool.
  • The main objective of creating the tool was to make the creation of automata behaviours easy and promote faster development. One of of the ways to promote this was code reuse. So I was tasked with the creation of a library(which is a github repository) of prebuilt behaviours. The library was to be made accessible such that the user could access it through the tool. The list of behaviours were to be listed inside the tool and imported right there. The user could even add his behaviour to the library.

The task also involved developing examples that would show the working of these features.

Work Completed

Parameterization of Visual States: This feature has been added but it hasn’t been merged with master. The code has been thoroughly reviewed by my mentors and the bugs fund has been squashed. One of the previously existing examples in the VisualStates examples repository has been modified to use parameters to show it working.

Online Library Import and Export: The code for this has been created but it is pending to be reviewed by the mentors. The library repository hasn’t been created. It has to go through these before it can be merged.

Work Left

  • The online library and importer need to be checked for bugs and both of them are to be merged to master.
  • More examples need to be created that can be added to the library and uses parameters.
  • ArDrone2 model is being changed so that it uses ROS publishers and subscribers instead of ICE drivers.
  • The VisualStates tool would benefit from a tabbed design. The design has to be discussed before it can be executed which is done here.

Explanation Videos

People Involved

  • Baidyanath Kundu (kundubaidya99 [at] gmail [dot] com) [GSoC Student]
  • Pushkal Katara (katarapushkal [at] gmail [dot] com) [Mentor]
  • Okan Aşık (asik [dot] okan [at] gmail [dot] com) [Mentor]
  • José María Cañas Plaza (jmplaza [at] gsyc [dot] es) [Mentor]

Development Status

 Phase 1: Parameterization of VisualStates May 27, 2019 - June 16, 2019
1.Add the feature to Visual States ToolDone 
2.Create example with parametersDone 
 Phase 2: Creating a library of automatas June 17, 2019 - July 21, 2019
1.Create the repository for online library  
2.Add feature to export to online libraryDone 
3.Add feature to import from online libraryDone 
4.Create examples for the library  


The weekly documentation is available here.

© 2019. All rights reserved.

Powered by Hydejack v8.4.0