Planner for Multiple Agent System with Temporal Goals
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Planner for Multiple Agent System with Temporal Goals


This package contains implementation for plan synthesis algorithms given a finite transition system (as the agent motion model) and a Linear temporal logic formula (as the agent task). It outputs the static plan as a sequence of agent motion and action, required to fulfill the task.


Multi-agent Plan Reconfiguration under Local LTL Specifications. Meng Guo and Dimos V. Dimarogonas. International Journal of Robotics Research (IJRR), 34(2): 218-235, Feb 2015. [link] [PDF]

Task and Motion Coordination for Heterogeneous Multi-agent Systems with Loosely-coupled Local Tasks. Meng Guo and Dimos V. Dimarogonas. IEEE Transactions on Automation Science and Engineering (T-ASE), 4(2): 797-808, Apr 2017. [link] [PDF]


  • Allow both normal and co-safe LTL task formulas.
  • Action model can be muted if only motion is concerned.
  • Soft specification is optional.
  • NetworkX structure for FTS, Buchi and Product automata.
  • Static or on-the-fly construction of the product automaton.
  • Stand-alone planner.
from P_MAS_TG.ts import MotionFts, ActionModel, MotActModel
from P_MAS_TG.planner import ltl_planner

# construct your motion and action model
robot_motion = MotionFts(node_dict, symbols, 'your_ws_name')
robot_motion.add_un_edges(edge_list, unit_cost = 0.1)
robot_action = ActionModel(action_dict)
robot_model = MotActModel(robot_motion, robot_action)

# specify your hard and soft tasks
hard_task = '(([]<> r3) && ([]<> r4))'
soft_task = None

# set planner
robot_planner = ltl_planner(robot_model, hard_task, soft_task)

# synthesis
  • Generate .dat for MatLAB to load Buchi and product automata model. See


  • Install python packages like networkx, ply. [Update to networkx 2.0]
  • Add this package to your PYTHONPATH, to import it in your own project.
  • ltlba_32 and ltlba_64 are executable files complied under OS X. For other OS, please follow ltl2ba/README.txt.
  • Try and other examples in the Examples folder.