初めての投稿になります٩( ”ω” )و
私の専門分野はロボットなのです。研究室で毎日ロボットロボット。今日もロボットの本を読んでいてロボット工学の2つの考え方におお!ってなったので書きたいなと思います!
2つの考え方というのは、「モデルベース」と「ビヘイビアベース」の2つでございます。それぞれどんなものかというと
- モデルベース(model:型、原型、モデル(‘ω’))
- 部屋全体をセンサで把握したり、あらかじめ入力して置いた地図を用いてロボットが家具とか壁にぶつからないように、部屋を網羅する経路を移動するようにする。無駄な動きを極力させないようにする。
- ビヘイビアベース(behavior:ふるまい、行動)
- 壁とか家具にぶつかりまくりながらランダムに動き回ることで、部屋全体を網羅する。
いままで(といっても、iRobot社のルンバが出るまでだから15年くらい前)の掃除ロボット、特に80年代とかはモデルベースで作るのが当たり前な風潮でした。80年代のロボットは日本のロボットが強くて、日本人は生真面目ですからね。無駄な動きをさせないように作ろうとしたんでしょう。日本人の私も初めてロボットのプログラミングしたときは、そんなに複雑な動きをする必要性は薄いのに、地図作って、センサで自己位置特定して・・・みたいなことをしてましたから。
そんな中で、ルンバはロドニー・ブルックスによって、ビヘイビアベースで作られました。家具にぶつかりまくって、適当に方向を変えて動き回る。掃除のやり残しがあっても多少はしょうがない。みたいな感じで。
これの元になったのは、モデルベースは考えすぎる(計算し過ぎる)!昆虫とかの生物はそんなに考えて動いてない!ということからです。モデルベースは部屋が少し変わったら計算やり直しですからね。計算量が多くてリアルタイムで動句の難しいし、そもそも生物はそんなに考えて動いてないだろうという、自然のものをロボットの行動にして見た感じですね。
モデルベースは考えすぎる!のも問題でしたが、たくさん考えるために機能が多すぎる!のも問題でした。いくつかある機能の1つでも働かなくなるとシステム全体が動かない恐れがあります。さらに、機能が多いので、非常に高コストなものとなっていました。しかし、ビヘイビアベースのルンバはぶつかったらランダムに方向変えるだけ!なのです。
いろいろ上げましたが、この考え方の肝は
モデルベースは人間が考えて与えた世界の中(モデルの中)でロボットが行動するから、そのモデルがロボットの動きを阻害しているのではないか?ということです。
ロボットの体とロボットのいる環境の相互作用が上手くできればロボット自身が自動で目的に到達するのではないか?と言っているのです。
ビヘイビアベースは、とりあえずロボットを作って、テストして、いらない部分を削除して足りない部分を追加して、テストして、・・・を繰り返します。まさに、生物の進化のように!
私もいままで、「ちゃんとしたロボットは地図もって自分の位置を把握しながら最適な経路をプランニングして・・・」などと思っていましたが、かの有名なルンバまさかぶつかりまくりながら動くだけみたいなものだったとは。。。考え方を変えられました。インパクト大です(*ノωノ)
ロドニー・ブルックスさん凄い!!
しかし、今ではどれもこれもビヘイビアベースのロボットばかり!というわけではありません。むしろ、モデルベースが主流です。というのも、
- とりあえずロボットを動かしたらこんな動きをした
- いらなそうなものを削除して足りなそうなものを追加した
- とりあえずロボットを動かしてみた
を繰り返すので、非常に設計が難しい(らしいです)。
今度、ブルックスの本をちゃんと読んでみよっと(●´ω`●)
No responses yet