簡単な説明:
ロボットは5台あり、各ロボットは「Planner」というプログラムを実行しています。各ロボットにはポストがあり、そのポストに従ってタスク (多数のタスクから選択) を実行する必要があります。メインループは(疑似コード)です:
while(true)
{
/*1*/ WorldModel::getSingelton()->update();
/*2*/ Post post = selectAPost();
/*3*/ Task task = selectATask(&post);
/*4*/ task.run();
}
また、タスクは別のタスクを実行する場合があります。実際、タスク内には決定木があります。
HardwareInterface、VisionInterface、WorldModel、Configuration、NetworkInterface などの多くのコンポーネントがあります。それらはすべて、このシステムの一部を実行します。
私の質問はアルゴリズムに関するものではなく、C++ (または Java)でのマルチエージェントおよびロボット システムの設計パターンに関するものです。
これらのシステム*(マルチエージェントおよびロボット システム)*の設計パターンはありますか? または私の質問は間違いですか?
注: 私の現在の設計パターンは、コンポーネントを管理するための Singleton です。