サブサンプションアーキテクチャによる知的な振る舞いの創発

サブサンプションアーキテクチャの説明

以下の画像がわかりやすいです

 従来の知能ロボットの処理系は、モジュールが縦に並んでいます。センサからの情報をモジュールが1つずつ順に処理して、最後、アクチュエータにつながります。

 それに対して、サブサンプションアーキテクチャは、モジュールが横に並んでいます。複数のモジュールが、同時に、独立に、非同期に、動いている感じです。

f:id:wada0421514:20191003062539p:plain

 

やりたいこと

  • サブサンプションアーキテクチャを試せるシミュレーションソフト、SB-MASEを利用します
  • 知的な振る舞いをするエージェントを作りたいです。つまり、賢そう、複雑そう、考えてそう的な動きをするやつを作りたいです

 

SB-MASEの説明 

2枚目の画像がシミュレーション世界です。赤いやつがエージェントです。

1枚目の画像は、このエージェントの中身です。サブサンプションアーキテクチャでエージェントの動きを構築できます。

f:id:wada0421514:20191003062948p:plain

f:id:wada0421514:20191002174350p:plain

 

やったこと

  • サブサンプションアーキテクチャを1層ずつ重ねていく
  • 最終的に5層にして、「獲物がいないなら待機、直進を繰り返す。いるなら追いかける。見失っても数秒その方向に進む。エージェント」を作る

 

1層
  • WALK:ひたすら直進する

→ひたすら直進する

f:id:wada0421514:20191002174219p:plain

2層
  • WALK:ひたすら直進する
  • AVOID:障害物があったら避ける

→障害物を避けながら、ひたすら直進するf:id:wada0421514:20191002174238p:plain

3層
  • WALK:ひたすら直進する
  • AVOID:障害物があったら避ける
  • PROWL:獲物がいないなら待機。いるなら直進
  • STEER:獲物の方向に向き変更

→獲物がいないなら待機。いるなら追いかける

f:id:wada0421514:20191002174242p:plain

 

4層
  • WALK:ひたすら直進する
  • AVOID:障害物があったら避ける
  • PROWL:獲物がいないなら待機。いるなら直進
  • STEER:獲物の方向に向き変更
  • PROWLKEEP:見失っても、直進を数秒続ける

→獲物がいないなら待機。いるなら追いかける。見失っても数秒その方向に進む。

f:id:wada0421514:20191002174245p:plain

 

5層
  • WALK:ひたすら直進する
  • AVOID:障害物があったら避ける
  • PROWL:獲物がいないなら待機。いるなら直進
  • STEER:獲物の方向に向き変更
  • PROWLKEEP:見失っても、直進を数秒続ける
  • EXPLORE:直進、待機を繰り返す

→獲物がいないなら待機、直進を繰り返す。いるなら追いかける。見失っても数秒その方向に進む。

f:id:wada0421514:20191002174248p:plain

 

動画

以下のリンクで、5層サブサンプションアーキテクチャのエージェントの動きが確認できます。緑のやつです。

youtu.be

 

考察と結論

  • 賢そうな動きをするエージェントを作ることができました
  • 構造はかなりシンプル
  • 推論、記憶などは実現できるのか?
  • ハードウェアレベルで実装して身体性と絡めたい