親子型群ロボットの協調行動

1. はじめに
ジュール・ヴェルヌの「海底二万海里」や、ロバート・A・ハインラインの「宇宙の戦士」といったSF小説が書かれたのはずいぶん前のことです。 これらは当時の技術力では夢物語で、これだけの小説をまとめた著者らの筆力には感心するばかりです。

なぜこれらの本を出してきたかと言うと、海底や宇宙について考えていただきたかったからです。
私達は普段、地球上の陸地で生活しています。 特に我々が暮らす日本について考えてみると、1気圧・20℃程度の空気に囲まれ、蛇口をひねれば水が出て、近所のコンビニでおにぎりが買える、という非常に恵まれた環境であることが再認識されます。

もし、上司に「海底二万海里に転勤しろ」と言われたらどうします?
就職して「あなたの配属先は冥王星です」なんてことになったら困ってしまいますよね。

もちろん、そんなところに転勤したり配属になったりする時代なら、その頃には人が暮らせる程度の環境にはなっているのだろうと思います。 でも、そこが前人未踏の「海底」や「宇宙」だったら、生活し作業するのは並大抵のことではなさそうだ、ということは想像できると思います。

そのような極限環境で便利なのが、我々に代わって作業してくれるロボットです。
近年、このロボット技術が爆発的な発展を続けていることによって、先ほど挙げたSF小説の内容がそのまま実現可能となってきました。
(戦争だけは実現して欲しくないですが)

高機能なロボットは極限環境で大きく活躍してくれることでしょう。
しかし、作業場である極限環境にはどうやって運べばいいでしょう? 高機能で何でもできちゃう素晴しいロボットでも運送中に壊れてしまったら、目的地に着いた時にはただのガラクタになってしまいます。
また、作業中に壊れちゃったらどうします? 「海底」や「宇宙」まで修理に行くのはちょっと大変そうです。

そこで、ちょっとくらい機能が劣ってもたくさんのロボットが協調して働くようにすれば、運送中や作業中に1台や2台壊れちゃってもその他のロボットでなんとかできそうです。
これが群ロボットシステムというアイデアです。

2. 親子型群ロボットシステム(SMC)
群ロボットのメリットは上で挙げたリスク分散だけではありません。
簡単な作業であれば、複数の作業を同時進行することができます。

しかし、遠い惑星での作業などでは全てのロボットをリアルタイムに遠隔操作することは難しいと思われます。 そこで、群の中に高性能な頭脳を持つロボットを混ぜ、その他の子ロボットはこの親ロボットの指示に従って自律的に行動する、親子型群ロボットシステム(Super-Mechano Colony, SMC)が 東工大廣瀬研究室によって提案されました。

SMC system

実際に製作した親ロボットと12台の子ロボットを用いて、現在東工大内の5研究室( 松尾研山北研倉林研廣瀬研、 伊能研 )で分担して親子型群ロボットシステムについて研究しています。

3. SMC子ロボット
SMC子ロボットについてもう少し詳しく説明します。
彼らは視覚として、CCDカメラを持っています。 そして、普通のパソコンと同じものが搭載されているので、CCDカメラで認識した情報を処理してモータを回転させることにより、自律的に行動することがプログラムによって可能となります。 そして、ちょっとしたハンドを持っているので、簡単な作業であれば単独で行うことができます。

ロボット同士の通信には無線LANを用いています。 これを使ってロボット同士で情報交換するようにプログラムしてあげると、複数のロボットが協調することによって1台では実現不可能な作業を行うことができるようになります。

例えば、親ロボットは単独では動けないようになっているのですが、複数の子ロボットがハンドを使って親ロボットと合体して運ぶことができます。 この時、目的に応じて「おみこし」のように親ロボットのまわりを取り囲んだり、「山車」のように一列に並んで引っ張ったりと、様々な形態で行動することができます。

4. 形状対応型ハンド
私達の研究室では、SMC子ロボットが未知領域で物体を探索し、それを回収する部分を担当しています。 未知領域で物体を探索するとはどういうことかって?
ここでは、どこかの惑星で鉱石を探査することを想定してみましょう。

SMC子ロボットはハンドを持っていますが、このハンドはロボット同士の結合が主な目的の形態になっており、どんな形状かわからない鉱石の把持には適していませんでした。
そこで、様々な形状に対応できるハンドを開発しました。

SMC子ロボットのような自律ロボットの場合、あまり複雑な機構にしてしまうと制御が難しかったり、また、バッテリで駆動しなくてはならないため、大電力を使うようなものではいけません。
そこで、1つだけのモータで駆動する単純な機構で、様々な形状を掴めるハンドを考えてみました。

SMC hand

このハンドは次のような流れで物体を把持します。

  1. モータにより手元リンクが閉じる
  2. 大歯車が対象物に当たる
  3. 小歯車とそれに固定された手先リンクが回転する
  4. 手先リンクも対象物にぶつかり、把持が完了する

実際にハンドを製作し、SMC子ロボットに搭載した様子と、様々な形状を掴んでいる状態を下図に示します。

SMC hand

5. テザーを用いた協調搬送
探査して回収する対象が小さい鉱石であれば、一台の子ロボットだけでもハンドで把持して運ぶことができます。 しかし、もっと大きいものを見つけてしまったらどうしますか?
それ用に新しくハンドを設計し、とりつけますか?

せっかくの群ロボットシステムなのですから、協調して物体を運ぶことを考えてみましょう。
ここでも、運ぶ対象物の形状がわからない、という条件は変わりませんので、どんな形状でも運べるようになっているのが望ましいですね。

ということで、私達は紐(テザー)で対象物を縛って運ぶことを考えました。
テザーは柔らかいですから形状への追従性も良いですし、巻き取ってしまえば非常にコンパクトになるので惑星などへ運ぶ時にもとても都合がよいのです。
搬送対象物を引っ張っている時のイメージは下図のような感じです。

Cooperative conveyance with tethers

反面、ロボットの制御はちょっとばかり面倒になります。
重いものを複数のロボットが協調して運ぶ時、その対象物とロボットをどんなに引っ張っても伸びないテザーで結んでしまうと、ロボットが一斉に「せーの」で引っ張らない限り、ロボットは動きたいのに動けずに壊れてしまうかもしれません。
これは、綱引きのようにある一方向へ引っ張るのであれば簡単ですが、障害物を避けようと引っ張る方向を変えるためには非常に綿密な計画が必要で、なかなか大変です。

そこで、荷重によってテザーが伸びるように工夫してみました。 テザーがゴム紐のように、引っ張る力に応じて伸びてくれるなら、「せーの」で同時に動かなくてもそれぞれのテザーが伸びるだけですし、複数のテザーで引っ張る力の合力が搬送物の摩擦力を越えた時にはちゃんと搬送物を移動させることができます。

テザーを使って対象物を運ぶ場合について計算機シミュレーションを行ってみました。
下図左はテザー長を変えないようなアルゴリズムで動かしてみた場合です。ずいぶんガチャガチャしていて、エネルギー効率が悪そうです。
それに対し、下図右はテザー長が変わるメリットを活かしたアルゴリズムで動かした場合です。ロボットの軌跡も搬送対象物の軌跡も滑らかで、効率的な搬送ができています。

conveyance simulation

最後に実際にハードウェアを作成してみました。
テザーに電線を使うことを考え、定荷重バネを用いてテザー長を受動的に可変にした巻き取りユニットの模式図は下図の通りです。

SMC winding unit

そして、計算機シミュレーションで確認した動作アルゴリズムと、製作した巻き取りユニットを用いて、障害物を認識しながら協調搬送することができました。

でも、まだ解決できていない問題が残っています。
今はテザーで結ばれた物体を引っ張ることはできるのですが、テザーを結ぶことができないのです。 ロボットがテザーで蝶結びするのはたいへん難しいので、テザーの先端に新たな装置をつけることを考えており、その試作は行ったのですが、まだ信頼性に乏しいのが現状です。

(初稿 2002年4月 小関道彦)