A short description:
There is 5 robots, and each robot runs a program named "Planner". Each robot has a post, and they must do a task(select it from many tasks) according to that post. the main loop is (Pseudo code):
while(true)
{
/*1*/ WorldModel::getSingelton()->update();
/*2*/ Post post = selectAPost();
/*3*/ Task task = selectATask(&post);
/*4*/ task.run();
}
And, a task may runs another task. In fact inside a task there is a decision tree.
I have many components like: HardwareInterface, VisionInterface, WorldModel, Configuration, NetworkInterface, ... . They all do a part of this system.
My question is not about algorithms, it's about design-patterns for multi-agent and robotic systems in C++ (or Java).
Is there any design-pattern for these systems*(multi-agent and robotic systems)*? or my question is a mistake?
Note: My current design pattern is Singleton for managing my components
Yes, there is a lot! Three examples of academic works on design patterns for multiagent design:
L. Sabatucci, M. Cossentino, S. Gaglio. A Semantic Description For Agent Design Patterns. In Proc. of the Sixth International Workshop "From Agent Theory to Agent Implementation" (AT2AI-6) at The Seventh International Joint Conference on Autonomous Agents and Multi-Agent Systems (AAMAS 2008), Estoril, Portugal. May, 2008.
Design Patterns for Multiagent Systems Design Sylvain Sauvage MICAI 2004: ADVANCES IN ARTIFICIAL INTELLIGENCE Lecture Notes in Computer Science, 2004, Volume 2972/2004, 352-361, DOI: 10.1007/978-3-540-24694-7_36 http://www.springerlink.com/content/bc32d3lda58rfxaj
Design patterns for self-organizing multiagent systems by Luca Gardelli , Mirko Viroli , Andrea Omicini IN: PROCEEDINGS OF EEDA http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.95.3098
If you look at the past AAMAS proceedings you can find much more.