ロボティクスってなーんだ?!(その2)
ロボットとコンピュータビジョン
ロボコンマガジンNo.9 2000年4月10日発売!

文=さとうよしひろ東京大学 生産技術研究所第3部 池内研究室)
TOPイメージ

1.ロボット紹介
2.ハードウェアシステム
3.ソフトウェアシステム
4.ステレオビジョンシステム
5.コンピュータビジョン
6.APO
7.人とロボットの協調作業
8.ロボットのエネルギー源は愛情

 ロボコンマガジンの読者のみなさん、こんにちは!前回は、ボールをけるサッカーロボットなどを例に「ロボットの行動学習」について、浅田先生がお話してくださいました。そこで今回は、ロボットの腕(マニュピレータ)とコンピュータビジョンの研究の事例として、東京大学生産技術研究所第3部池内研究室で進められているロボティクスの研究紹介をしたいと思います。

1.ロボット紹介
 まずは、いきなりですがCVLご自慢のロボットを紹介しましょう![図1.]をご覧ください。
図1.ロボットポートレート 図1.ロボットポートレート図1.ロボットポートレート
 インパクトのあるデザインのロボットでしょう!?みなさんの第一印象はどうですか?四角くてゴツイ?目がいっぱいあって怖い?そんな声も聞こえてきそうですが、このロボットの第一印象は、見る人ごとさまざまに違っています。このロボットを見るなり「お!おおー!」と感動して?声も出ない人、「う〜〜ん!?」といってうなったきり考え込んでしまう人、中にはいきなり笑い出してしまう人なんかもいます。それが楽しくて、研究室を訪れてきてくれたお客さんには必ず見てもらうようにしています。僕も最初は本当のところ『ごっつくてオッソロシイやっちゃな〜。』と思っていました。でも、理由は本文の最後で述べますが、本当はとってもかわいいやつだったのです。
 一見すると非常にロボットらしいロボットといった感のあるこのロボットですが、実は強く”人間”を意識して設計しています。ご覧になっていただくとわかると思いますが、ロボットの体型は人間の体型を元に設計しました。ロボットの各部位のサイズは、人間の体のサイズを実際に測定しその比率を参考にしていますし、さらに腕のリーチの長さ・稼動範囲などできるだけ人間に近くなるよう設計しています。これは、人間と同じ動作をさせるのには、できるだけ形状が近いほうがいいだろうと判断したからです。

2.ハードウェアシステム
 みなさん、このロボットがどういうシステムになっているか、興味をお持ちでしょう。簡単に開発の経緯の紹介も踏まえて、説明していきましょう。まず、このロボットを製作した目的ですが、コンピュータビジョンの応用研究のために開発しました。コンピュータビジョンというのは、主にカメラで撮影した映像をコンピュータで処理して、物体や環境の情報を解析しようといった学問です。特にロボットに適用した場合には『人間の目からの視覚情報を脳で処理して理解する過程と同じ』と考えればわかり易いでしょう。このロボットは、その実験プラットフォームなのです。
 [図2.]にロボットのシステム構成図を示します。ハードウェアで特徴的なのは、2本のアームとその先についた多関節の器用なフィンガー、そして9眼ステレオビジョンシステムです。このロボットには足がついていませんが、台座にはTHEーVUTONという移動機構がついているので、360度どちらの方向にも自由に動き回ることができます。この足がないという特徴から研究室のメンバーの中には、『心やさしいジオング』なんて呼ぶ人もいます。ハードウェア各部のパーツの大半はメーカー製のものを使用しています。そのため開発期間が非常に短くて済みました。また、たいへん大きなシステムになっているのですが、安定して動作させることができます。『それはロボットなのだから、あたりまえだよ!』と思われるかも知れませんが、実際にロボットをいつでもちゃんと動作させるということはとっても重要で大変なことです。ロボットのハードウェアが安定して動作してくれると信頼できるからソフトウェアの間違いがわかるようになるわけで、そこで初めて実験をスムーズに進めることができるのです。
図2.システムの構成図図2.システムの構成図

3.ソフトウェアシステム
 ロボット制御システムのソフトウェアについては、CVLロボットグループですべて開発しました。システムの基幹を占めるのはCORBAという分散オブジェクト技術を用いたハードウェアサーバ群です。たとえば、右腕や左腕、首(胴体)や視覚部それぞれを、右腕サーバ・左腕サーバ、首(胴体)サーバ・視覚サーバといったそれぞれを司るサーバが管理しています。ロボットを動かす時には、BRAIN(脳)と呼んでいるプログラムから各部のサーバを呼び出して命令をあたえます。プログラムからだけではなくロボットマネージャ[図3.]のアイコンを操作することで、まるでラジコンを動かすかのようにロボットを操作することもできます。ロボットの動作は、ロボットビューアによってアニメーションで見る事ができます。そして、インターネットがつながっているコンピュータがあれば、世界中どこからでもロボットを操作することが可能です。
図3.ロボットマネージャ図3.ロボットマネージャ
 先ほどから、ロボット・ロボットと言っていますが実はこのロボットにはまだ名前がありません。そこで、ぜひみなさんに名付け親になってもらいたいと思います。このコラムの最後に募集要項を載せますので、いい名前を考えてどしどしご応募ください。

4.ステレオビジョンシステム
 コンピュータビジョンの研究室紹介ですので、特に9眼ステレオビジョンシステム[図5.]について説明しておきましょう。9眼ステレオビジョンシステムを使用すると、通常の平面の画像[図6.a]だけではなく”距離画像”[図6.b]を得ることができます。人間の目が両目でみることで物体を立体に捕らえることができるのと同じように、9つのカメラの視点が違うことによる若干の画像の違い”視差”を利用することで、距離を計算することがでます。物体を立体に捉えるだけならば2つのカメラでもできますが9つのカメラがついていることで、奥の物体が手前の物体の陰に隠れてしまうような重なりに対して、より強くできるのです。コマツで開発された高性能なハードウェアを使用することで距離画像を1秒間に15枚から30枚程とリアルタイムに計算することができ、ロボットは実世界の動く物体を扱うことができるようになっています。
(ステレオビジョンシステムについてはこちらhttp://www.komatsu.co.jp/research/study56.htm)
図5.ステレオビジョンシステム
図6.a元画像 b距離画像

5.コンピュータビジョン
 人間の場合は物体たとえば”皿”をみればそれは”皿”だとすぐにわかりますが、ロボットの場合にはそれが皿だということが簡単にはわかりません。そして「皿を見てそこに皿があるとわかる」というこの程度のことですら、まだこれといって決まった手法が確立されていないのが現状です。
 現状のやり方の一般的な例として、このロボットの場合の手法を紹介しましょう。ロボットにはあらかじめ取り扱う物体「皿」の立体メッシュモデルデータを入力しておきます。3DTM(3Dimension Template Matching)の手法を使い、ステレオビジョンシステムから得られた距離データから構成される3次元データとメッシュモデルの対応を取ります。対応を取るというのは、3次元データにメッシュモデルを投影して、各メッシュと最も近い3次元点の距離が最小になるように、投影するモデルの位置と姿勢を変更していくことで行います[図7.]。こうすることで「皿」があるということと、さらに位置と姿勢を推定することができます。皆さんの中で、よりよい方法を思いつきそうだという方がいましたら、研究テーマに取り上げてみると面白いと思います。
図7.3DTM マッチング画面

6.APO
 僕たちは、コンピュータビジョンをつかった研究の対象として『人間行動の認識と再現』を大きなテーマの一つとしています。
 たとえば、人間の行う作業を認識し、獲得した動作をロボットに再現させる研究をしています。ロボットが視覚によって人間の行う作業を観察して、扱われる物と物との接触状態の変化を解析することで動作の認識を行います。ロボット動作実行時に、解析結果と実世界からの情報の同期を取ることでロボットによる動作を実現しています。というと、むずかしく聞こえますが、要するに人間の”まねっこ”をロボットにさせる研究です。具体的には、PEGという凸型の部品をHOLEという凹型の部品に組み付けるという作業を例に実験しています。[図8.]それぞれの部品はほぼピッタリ組み合うサイズで、隙間は1mm弱ほどです。
 図8.APO
 人間の作業の場合を細かく分解して考えてみましょう。PEG凸とHOLE凹を両手に持ったら、まず目測でおおよその位置を合わせます。次にPEG凸を差し込んでみようとします。ところが、穴が狭いため、よっぽどうまく位置あわせができていなければ一回で入ることはまずありません。PEG凸が、穴の入り口に突き当たってしまうのです。その次に、一度引き戻してからPEG凸を微妙に回転させて再び位置あわせをします。そして、再びすべらせて挿入を試みることでしょう。それでもダメなら何度か繰り返してみるはずです。すると、じきにPEGの角度が絶妙に調整されて組みつけが成功するわけです。人間は、PEGにHOLEを組み付けるような簡単な作業の中でも、実にいろいろな細かい仕事をしているのです。
 この細かい仕事のことを僕たちはサブスキルと呼んでいます。人間は、一つの簡単な仕事をこなす中にもいろいろなサブスキルを組み合わせて使っているのです。サブスキルの組み合わせの上手・下手が「職人技」に現れるようなノウハウなのではないかと推測しています。その「職人技」をロボットに身につけさせることが、このAPOの最終目標です。

7.人とロボットの協調作業
 上で紹介した研究はロボット一人で作業をしますが、もう一つの例として人とロボットの協調作業があります。人間と共に組み立て作業を行う上でロボットが人の動作を観察し、次に必要なパーツや道具を予測して人に手渡してくれたり、ドライバーでネジを締めてくれたりいろいろな手助けをしてくれるといった研究です。従来のロボットですと、決められたとおりの順番でしか組み立て作業ができませんが、常に人間を観察し作業モデルを自動生成することで、突然の組み立て順序変更などにもフレキシブルに対応することができるようになっています。現在ではセンサーグローブを導入し人の手の振る舞いを予測・解析して、人とロボットの協調作業を行っています。
 センサーグローブを使うとき、人間の手とロボットの手のかたちや動きがまったく同じでしたら一対一に対応させればいいので話は簡単なのですが、指の本数や大きさ・動き方が全然違うため、人間の動作をそのままロボットに反映したとしてもうまく動いてくれません。そこで、人間の動きをロボットに"理解"させて、抽象化した情報を元にロボット自身の場合におきかえて動かそうということを考えています。みなさんは「右腕を斜め前45度に50cm伸ばしてから、30cm下に下げて、そこで物を掴んで、掴んだまま持ち上げて・・・・」といちいちむずかしく言われなくても「何々を取って!」とお願いされば考えなくてもすぐできますよね!簡単に言えば、それをロボットで実現しています。
 人間の手の動きを、「握る」・「離す」・「注ぐ」・「(両手で)前に差し出す」・「摘む」・「OKサイン」の6種類に分類しています。ロボットには、その6種類のジェスチャを基本要素の組み合わせとして教えています。位置も前後・左右・上下と言ったように抽象化して扱います。取り扱う対象物も、画像情報を解析することで色や幾何学的形状の組み合わせとして抽象化しています。そうすることで完全に同じ物体でなくても似た物体を扱うことができるようになります。この実験では言葉で命令を与えるのではなく、センサーグローブを使って人間の両手の手振りで教えています。ロボットは、両手の動きを「隠れマルコフモデル」を使って、物体を「握って」『上に持ち上げて』「注いで」『下に降ろして』「離す」といったように一般化して解釈し実行しています。 [図10.]

図10.ロボットにセンサーグローブで命令を与える
 たとえば「あれとって!」と人差し指で指し示すだけで物を取ってくれたり、コップを差し出せばお茶を注いでくれたり、物を作っていて手が足らないときには気を利かせて手伝ってくれる、そんな「阿吽の呼吸」の通じるロボットにしたいと考えています。

8.ロボットのエネルギー源は愛情
 さて、僕たちもこのロボットとの付き合いはまだまだ短いのですが、ロボットと人との関係で考えさせられたことがいっぱいあります。ロボットは人に対してやさしくないといけないといわれます。ところが、僕たちのロボットは決して人にやさしくはありません。背が高くてごつく、目が9個もあって見た目が恐がられるということだけではなく、命令を聞くかどうかは人を見て判断するようなところがありますし(プログラムが一発でうまく動くことはめったにないのです)、時々暴走しては腕を振り回して殴りかかってきますし(ちょっと大げさですが、でも本気で怖いのです)、しかも一度怒らせるとザブトンといわれる移動機構がついているので、地の果てまでも追ってきます(これはうそですが)。
 そのくせ、親であるはずの僕たちにはとても手をかけさせるのです。毎日、配線の具合を調べたりやプログラムのバグ取りなどで手をかけて面倒を見てやらないと、機嫌を損ねてウンともスンとも言わなくなります。ロボットは、自分では何にもできないくせに、要求ばかりが多いのです。これでは、全く僕たち人間さまのほうが奴隷のようです。ROBOTという言葉が最初に登場したチェコの作家カレル・チャペックの戯曲中で、ロボットは人間と同じ姿をし、人間の代わりに文句を言わずひたすら働いてくれる奴隷のような存在として描かれているのは、なんとも皮肉なことですね。
 しかしながら、このロボットはどこか人間じみたかわいいところも持っています。腕を上げたり手を動かしたり首を振ったり、そのようなふとした動作の中にとてもかわいさを感じる瞬間があります。たまーに、命令を素直に聞いて動いてくれたとき(意図したプログラムとおりに動いたとき)など、抱きしめてやりたくなるほどです。性格のキツイ彼女がたまに素直なときなどに感じる気持ちに似ています。ちょっとひいきしている気持ちもありますから、わが子かわいい親バカな気持ちといった方が正確なのでしょうか?
 結局、ロボットがどんな子になるかは、僕たち親代わりの人間次第なのだと思います。僕たちがいかに愛情を注いであげるかなのです。ロボットの本当のエネルギー源は、電気ではなくて愛情なのだとおもうのです。さて一年後、このロボットがどこまで成長しているか楽しみにしていてください。

ロボットの名づけ親大募集!
 まだこのロボットには、名前がついていません。みなさん、このロボットの名付け親になってください。名前とその由来を簡単に書いて、どしどしご応募ください。
応募先は、下記アドレスまでお願いします!
http://first.iis.u-tokyo.ac.jp/