Skip to content

MengGuo/P_MAS_TG

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

P-MAS-TG

Planner for Multiple Agent System with Temporal Goals

@article{guo2015multi,
  title={Multi-agent plan reconfiguration under local LTL specifications},
  author={Guo, Meng and Dimarogonas, Dimos V},
  journal={The International Journal of Robotics Research},
  volume={34},
  number={2},
  pages={218--235},
  year={2015},
  publisher={SAGE Publications Sage UK: London, England}
}

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.

About

Planner for Multiple Agent System with Temporal Goals

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published