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.
Permalink
Failed to load latest commit information.
Install_ltl2ba
Intro
P_MAS_TG
.gitignore
LICENSE
README.md
office_sim.py
test.py

README.md

P-MAS-TG

Planner for Multiple Agent System with Temporal Goals


Description

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.


References

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]


Features

  • 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.set_initial(initial_node)
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
robot_planner.optimal(10,'static')
  • Generate .dat for MatLAB to load Buchi and product automata model. See square_world.py.

Debugging

  • 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 test.py and other examples in the Examples folder.