ROS packages that enable the automatic synthesis of executable state machines.
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
vigir_behavior_synthesis Merge branch "open_source". Squashed commit of: Jul 27, 2015
vigir_ltl_synthesizer [ltl_synthesizer] Fix slugs call options May 17, 2016
vigir_sm_generation [ltl_synthesizer] Use behavior_class field of SI May 18, 2016
vigir_synthesis_manager [manager, synthesizer, generation] Update pipeline May 7, 2016
vigir_synthesis_msgs [manager, synthesizer, generation] Update pipeline May 7, 2016
.gitignore [vigir_ltl_synthesizer] Move synthesis_byproducts folder here Jul 24, 2015
LICENSE Fix LICENSE Nov 13, 2015

Team ViGIR's Behavior Synthesis stack

ROS Python packages for automatically synthesizing high-level robot behaviors (in the form of executable SMACH-based state machines) from the user's task specifications via reactive Linear Temporal Logic (LTL) synthesis.


Experimental Demonstration on ATLAS

Click on the image below to watch a demonstration of Behavior Synthesis on ATLAS.

ICRA 2016 video attachment

Synthesis Workflow

The nominal workflow is depicted in the diagram below:



For vigir_ltl_specification, you need:

  • ReSpeC for compiling LTL specifications from the high-level user requests

For vigir_ltl_synthesizer, you need:

For using the full stack, you also need:

  • flexbe_behavior_engine for sending synthesis requests via the FlexBE app's GUI and for access to the StateInstantiation.msg
  • vigir_behaviors for access to the library of states and for saving the synthesized behaviors


  • Spyros Maniatopoulos, Philipp Schillinger, Vitchyr Pong, David C. Conner, and Hadas Kress-Gazit, "Reactive High-level Behavior Synthesis for an Atlas Humanoid Robot", IEEE International Conference on Robotics and Automation (ICRA), Stockholm, Sweden, May 2016 (to appear).



BSD-3 (see LICENSE file)