サブサンプションアーキテクチャによる知的な振る舞いの創発
サブサンプションアーキテクチャの説明
以下の画像がわかりやすいです
従来の知能ロボットの処理系は、モジュールが縦に並んでいます。センサからの情報をモジュールが1つずつ順に処理して、最後、アクチュエータにつながります。
それに対して、サブサンプションアーキテクチャは、モジュールが横に並んでいます。複数のモジュールが、同時に、独立に、非同期に、動いている感じです。
やりたいこと
- サブサンプションアーキテクチャを試せるシミュレーションソフト、SB-MASEを利用します
- 知的な振る舞いをするエージェントを作りたいです。つまり、賢そう、複雑そう、考えてそう的な動きをするやつを作りたいです
SB-MASEの説明
2枚目の画像がシミュレーション世界です。赤いやつがエージェントです。
1枚目の画像は、このエージェントの中身です。サブサンプションアーキテクチャでエージェントの動きを構築できます。
やったこと
- サブサンプションアーキテクチャを1層ずつ重ねていく
- 最終的に5層にして、「獲物がいないなら待機、直進を繰り返す。いるなら追いかける。見失っても数秒その方向に進む。エージェント」を作る
1層
- WALK:ひたすら直進する
→ひたすら直進する
2層
- WALK:ひたすら直進する
- AVOID:障害物があったら避ける
→障害物を避けながら、ひたすら直進する
3層
- WALK:ひたすら直進する
- AVOID:障害物があったら避ける
- PROWL:獲物がいないなら待機。いるなら直進
- STEER:獲物の方向に向き変更
→獲物がいないなら待機。いるなら追いかける
4層
- WALK:ひたすら直進する
- AVOID:障害物があったら避ける
- PROWL:獲物がいないなら待機。いるなら直進
- STEER:獲物の方向に向き変更
- PROWLKEEP:見失っても、直進を数秒続ける
→獲物がいないなら待機。いるなら追いかける。見失っても数秒その方向に進む。
5層
- WALK:ひたすら直進する
- AVOID:障害物があったら避ける
- PROWL:獲物がいないなら待機。いるなら直進
- STEER:獲物の方向に向き変更
- PROWLKEEP:見失っても、直進を数秒続ける
- EXPLORE:直進、待機を繰り返す
→獲物がいないなら待機、直進を繰り返す。いるなら追いかける。見失っても数秒その方向に進む。
動画
以下のリンクで、5層サブサンプションアーキテクチャのエージェントの動きが確認できます。緑のやつです。
考察と結論
- 賢そうな動きをするエージェントを作ることができました
- 構造はかなりシンプル
- 推論、記憶などは実現できるのか?
- ハードウェアレベルで実装して身体性と絡めたい