It represents visually the robot’s behavior as a graph on a canvas composed of states (nodes,vertices) and transitions (edges, links). When the automaton is in a certain state it will pass from one state to another depending on the conditions established in the transitions. This graphical representation allows a higher level of abstraction for the programmer. It combines a graphical language to specify the states and the transitions with a text language (Python) to detail the behavior on each state or the conditions in the transitions.

VisualStates generates a ROS node which implements the automata and shows a GUI at runtime with the active state every time, for debugging.

Get started now View it on GitHub

Getting started

Installation from Ubuntu ROS Package

If you have already installed ROS on your system, you can install visualstates with the following command.

sudo apt install ros-kinetic-visualstates

Installation from Source

Install the following dependencies:

ROS Kinetic Kame

VisualStates is built as a Robotics Operating System package and currently developed using ROS Kinetic Kame. Follow the instructions given here to install ROS Kinetic on your desktop.

sudo apt install ros-kinetic-desktop

The frontend depends on PyQT to interactively develop robotic visual behavior.

sudo apt install python-pyqt5
sudo apt install python-pyqt5.qsci

The VisualStates tool is distributed as a ROS package. You can directly clone VisualStates repository in an active catkin workspace. Follow the steps below in your ROS workspace:

cd catkin_ws/src
git clone
cd ..
source devel/setup.bash
rosrun visualstates

About the project

VisualStates is © 2017-2019 by JdeRobot.


When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change. Read more about becoming a contributor in our GitHub repo.

Code of Conduct

VisualStates is committed to fostering a welcoming community.

View our Code of Conduct on our GitHub repository.