教示動作の視覚処理に基づく 物体の機能情報の抽出 A Sampling Process for Information of Objects Function Based on Motion Recognition by Vision 電気通信大学 情報システム学研究科 佐藤啓宏、木村浩 東京大学 生産技術研究所 池内克史 「教示動作の視覚処理に基づく物体の機能情報の抽出」 というタイトルで、電気通信大学の佐藤が発表します。
発表内容 はじめに 人の作業解析 物体の機能情報の抽出 3次元トラッキング まとめ 本日の発表は次の手順で行います。 まず、「はじめに」研究の背景を説明します。 次に「人の作業解析」を行ったその内容と結論として得たアイデアを説明します。 「物体の機能情報の抽出」では、システムへの実装について話します。 「3次元トラッキング」では、ビジョンシステムについて紹介します。 最後に「まとめ」で、現在までの成果と今後の課題について述べます。
はじめに 1.研究の背景 ・人とロボットの協調作業 ・人まねロボット 2.従来の研究 Fig.1 CVL Robot (仮称) 視覚による人の動作認識に基づくロボットへの教示や人との協調作業は、ロボットに必要とされる重要な技術の1つであり、さまざまな研究が進められています。私達も、写真1のようなヒューマノイドロボットを開発し人とロボットの協調作業の研究を進めています。 従来の研究では、木村らは物体や人の動作を認識しそれに基づくロボットの動作計画の組み立てを自動的に行う手法を提案し、玩具の組立作業を対象に人とロボットの協調作業を実現しています。 2.従来の研究 ・人の教示動作の視覚による動作認識に基づきタスクモデルを自動構築 (H.Kimura、’99)
タスクモデルの枠組 Preconditions State obj(a).f(i){ & obj(b).f(j)}operated Attributes Frame for grasping. Point coincided. Axes aligned. ・・・・・・ Operation operate obj(a).f(i) {to obj(b).f(j)} スキルモデル State #1 State #2 ・・・・・・・ Result obj(a).f(i)& obj(b).f(j) operated 木村らは、ロボットが行う作業を「プリコンディション」と「リザルト」という概念を用いて、このようなタスクモデルで記述しました。 「プリコンディション」は「リザルト」が発生する前提条件を示し、「リザルト」は取り扱う2つの対象物の機能部の状態を示します。 「プリコンディション」の「ステート(状態)」は、具体的な物体の取り扱い方(スキルモデル)で記されます。物体の「オペレーション」(操作)は、「アトリビュート(属性情報)」を用いて「ステート」(状態)が満たされると、呼びだされます。 物体の持つ機能に関しての属性情報のことを機能情報と呼び、ロボットが物体を扱うために必要な機能座標と操作を意味すると定義しています。 タスクモデル Fig.2a Task Model
タスクモデルの自動生成 graspedとfixedを検出することでEventを生成. Events Task Model #1 #parts1.f(1) & Result #parts2.f(1) fixed #parts2 grasped Precondition 次にタスクモデルの自動生成の手法について説明します.視覚によりEventを検出し、イベントスタックと呼ばれるバッファに積みます.状態fixedが検出された時、機能部レベルのタスクモデルを生成します. 先の研究では、対象が組み立て作業でしたので、graspedとfixedに注目するだけで実現できていました。 #parts1 grasped #parts1 grasped Fig.2b Event Stack graspedとfixedを検出することでEventを生成.
研究の目的 問題点の解決 組み立て動作だけしか対応できない. 一般化. 物体の機能をプログラミングしておく必要がある. 先の研究で、タスクモデルを教示動作から自動構築することは実現しましたが、2つの問題がありました. 1つは、graspedとfixedという事象の要素しか考慮していないことです。 もう1つは、従来の研究ではロボットが物体を扱うにあたり、莫大な量の情報とプログラムを必要としたということです。 そこで本研究では、タスクモデルを拡張し一般的なタスクを扱えるように拡張し、人間が物体を取り扱う様子をロボットの視覚システムにより観察することで、物体を取り扱うために必要な情報をシステムが自動的に抽出できる手法の開発を目標とします。 教示動作より、物体の機能情報を抽出する.
人の作業解析 接触部位の偏移には、機能ごと法則がある. 物体の機能を伴う動きは、平面や軸に拘束されることが多い. 動作の拘束面 接触部位の偏移には、機能ごと法則がある. 物体の機能を伴う動きは、平面や軸に拘束されることが多い. 例.のこぎり、レンチ、きり、ドライバー、ハンマー、ナイフ、はさみ、など. まず私達は、のこぎりやレンチなどのハンドツールやはさみやペンなどの日常品を対象に15種類の物について、それぞれ異なる簡単なタスクを想定し、特に道具と対象物の2つの物体の関係に注目して観察しました。 図に示したのこぎりで板を切るといった、物体の機能をOperation(操作)している状態に注目すると、2つの事柄に気づきます。 1つは、物体の接触部位の偏移に注意して見ると、機能ごとにそのパターンの特色が出ていること、そしてある動作の中の連続した部位の移り変わりは同じ機能であることが多く、そのことから機能部位の特定ができることです。 2つめには、その動作は道具と対象物で構成されるような平面や軸で拘束されていることが多いと気づきます。例として、のこぎりだけでなく、レンチやきり、ドライバーやハンマー、ナイフ・はさみなどにも、そのような平面や軸を見つけることができます。 このような平面や軸のことを、ここでは動作の拘束面、拘束軸と呼ぶことにします。 (ハンドツールは、元々扱いやすいように規格化されているので、動きの要素が簡潔になっていますので、その様子が特に強く現れます。) Fig.3 作業の解析
接触部位の偏移 のこぎりの接触部は直線状に偏移. 木の接触部はほぼ一定. 共に接触部は一定. obj(a) obj(a) obj(b) 締める obj(b) obj(b) のこぎりで木を切るというタスクを、物体の接触部位の変化に注目して観察します。のこぎりは、木の一ヶ所を目標位置として、のこぎりの歯を前後して使用しますので、のこぎりの接触部は前後に偏移するのに対して木の方は一ヶ所で一定のままです。 ドライバーでネジを締めるというタスクでは、部位はドライバーの先とネジの頭であり、一度かみ合わせたあとは機能の実行中に変化することはないということが分かります。 Fig.4 接触部位の偏移の観察 のこぎりの接触部は直線状に偏移. 木の接触部はほぼ一定. 共に接触部は一定.
接触部位によるタスクの分割 物体の接触状態 → 機能を実行中 接触状態の変化 →機能部位の特定 →操作を示す. Fig.5 接触部位の変化例 → 機能を実行中 接触部位 接触状態の変化 →機能部位の特定 →操作を示す. このような接触状態に注目すると、機能と関連した法則があるように考えられます。また、連続した接触部位の偏移は、その部分が同じ機能を有する部位だと示していると考えられ、機能部の座標が得られます。逆に、ある接触状態の偏移を作り出すことが、そのまま機能の操作を示していると言えます。 時間 Fig.5 接触部位の変化例 のこぎりの場合のイメージ
動作の拘束面・拘束軸 動きの拘束面 動きの拘束軸 obj(a) 拘束されない obj(b) obj(b) obj(a) (II) (I) x Y z 動きの拘束面 動きの拘束軸 obj(a) 拘束されない 締める obj(b) obj(b) この図(I)は、レンチobj(a)でナットobj(b)を締めるといったタスクを想定して、一連の動作を模擬的に物体の重心の動きで示したものです。同様に、(II)は、ドライバーobj(a)でネジobj(b)を締めるといったタスクを想定したものです。 この図では、obj(b)は座標系に固定されていますので、obj(a)はobj(b)との相対位置の軌跡を描いていることになります。 レンチは、ナットに歯を噛ませて回転するという機能があります。回転の操作に注目して観察すると、図に示したような動きの拘束面を発見できます。また、ドライバーはネジを回すという機能があり、その操作に注目すると図のような拘束軸が発見できます。また、逆に何も規則だった動きがないように見えるところ見られます。あとで、それぞれの状態について考察します。 obj(a) (II) (I) Fig.6 動作の拘束面(I)・拘束軸(II)の概念
動作の拘束面によるタスク分割 分割されたタスクの状態 = Event 動きの拘束面1 f(2) obj(b) 拘束されない動作 x Y z 分割されたタスクの状態 = Event obj(b) 拘束されない動作 ここで、同じ拘束軸・拘束面上での連続した動きは、同一の機能であると考えられます。このような動きの拘束軸・拘束面といったアイデアを導入すると、3次元空間の運動を2次元の運動の組み合わせとして分割して扱うことができ、タスクの解析が容易になります。分割されたタスクの状態は、木村タスクモデルのEventにあたります。 (この図は、その動きの拘束軸・拘束面の概念を示します。図中の赤○・黄○は、それぞれobj(a),obj(b)の重心位置を示し、その偏移を矢印で示しています。この図では、obj(b)は座標系に固定されていますので、obj(a)はobj(b)との相対座標で表されていると見ることができます。 obj(a)の軌跡は、拘束軸1に近似されるような動きでobj(b)に近づきます。次に、obj(b)の周りを拘束面1の上で周り、次に拘束面2上でまた円を描いていくといったように見ることができます。) 動きの拘束軸 f(1) obj(a) 動きの拘束面2 f(3) Fig.7 動作の拘束面・拘束軸によるタスクの分割
機能をともなう動作の検出 機能をともなう動作状態 = Operation レンチ締め のこぎり ハンマー ドライバー obj(a) obj(b) 拘束面 ドライバー 物体の各機能は、動作プリミティブ(要素)の知識ベースから比較的簡単な幾何解析で検出することができます。また逆に言えば、これらについては個別に取り扱うほかないと考えます. 多くの機能を伴う動きは、回転運動や並進運動で記述することができ、例えば、レンチ締めでは、obj(a)はobj(b)を中心に円弧を描く動作と記述できます。のこぎりは、obj(a)はobj(b)と結ばれる線の法線方向に往復運動をします。ハンマーでは、obj(a)はobj(b)に向かって円弧を描く往復運動を描きます。またドライバーは、obj(a)は拘束軸に沿った方向に回転運動をします。 検出した動作は、タスクモデルでのoperationの状態に当たると考えられます。 動作の拘束面と共に、物体の機能として記述することができます。 (とはいうものの、動きの意味を考慮すると軌跡は同じようでも、位置が重要なのか、エネルギーが重要なのかといったように分類でき、このように一概に軌跡だけで論じることはできない。) Fig.8 機能ごとの動作要素 緩める 機能をともなう動作状態 = Operation 締める 拘束軸
拘束されない動作 拘束されない動作状態 = Precondition 機能座標の検出 拘束された動きへ切り替わる時点の物体の位置関係 自由に動くことができる obj(b) 機能座標の検出 拘束された動きへ切り替わる時点の物体の位置関係 何の拘束もなく物体が動ける状態は、次の機能を発生するためのプリコンディションの状態だと考えられます。obj(a).f(i)の機能点の座標をobj(b).f(j)の機能点の座標に位置合わせすることが、プリコンディションを満たすための1つの状態となります。 この機能座標を検出することは、重要な問題となります。検出方法は、次の操作が行われる直前の位置関係を調べることで、機能座標を抽出できます。また経験的には、人間はそのような点を目で見て確認する事が多いので動作が一度静止する事が多く、止まった瞬間の点が、機能点であると記述できると思われます。 (人間の動きを観察しないと正確には、分類できない。 人間は、そのような点を目で見て確認する事が多いので、動作が一度静止する。 止まった瞬間の点が、機能点。 その静止点を機能点として、記述する。) obj(a) Fig.9 拘束されない動き
拡張タスクモデルの自動生成 #wrench & Nat released #wrench.f(1) & Nat.f(1) rotated Precondition Result Task Model #2 Operation (rotate) #wrench.f(1)& Nat.f(1) contact Precondition Result Operation (Make contact) Task Model #1 次に、レンチでナットを回すというタスクを例に、接触状態と動作の拘束面によりイベントの検出を行った例を示します。 # wrench.f(1) move on plane #wrench grasped
拡張タスクモデルでの記述例 Preconditions Preconditions #wrench grasped ・・・ # wrench.f(1) move on nat.f(1).plane # wrench.f(1) move on nat.f(1).plane #wrench.f(1)& Nat.f(1) contact Result #wrench.f(1)& Nat.f(1) contact 拡張タスクモデルに書き直すと、このように書くことができます. Result #wrench.f(1) & Nat.f(1) rotated Task Model #1 Task Model #2
物体の機能情報の抽出 入力データ 物体の重心位置と姿勢 前提条件 物体の幾何モデル・色情報 ・接触部位の特定 ・動作の拘束平面・拘束軸の抽出 物体の重心位置と姿勢 前提条件 物体の幾何モデル・色情報 次に、システムへの実装について話します。データは、3次元トラッキングシステムを用いて観察した物体の重心位置と姿勢・時間とし、物体の幾何モデルはあらかじめ与えられているものとします。これを基にシミュレータ上で観察物の動きを再現し、機能情報の抽出を試みます。 1つは、物体の接触判定です。幾何モデルの線と面との位置関係を逐一調べて、接触の有無と位置を出します。 2つめは、物体の軌跡から拘束面の検出をします。これには、平面のハフ変換を使用します。 そのような機能をただいま実装中です。 Fig.10 シミュレータ ・接触部位の特定 ・動作の拘束平面・拘束軸の抽出 ・・・・・・
視覚処理適応への課題 拘束軸・拘束面は、必ずしも重心の動きに現れない. 同じ拘束軸・拘束面上で異なる機能が見られる場合がある. プリコンディションの状態でも拘束面、軸が検出されることがある. 動きの速さやエネルギーが重要なのか、位置が重要なのか分からない. ・・・・・・ しかしながら、これらのアイデアを視覚処理に適用するには、いくつかの問題があります。 1つは、必ずしも見かけの動作中に拘束軸・拘束面が現れるわけではないということです。実際の物体の動作は、物体表面の幾何形状によって動作の制限を受けていることが多く、重心の動きに加え物体の幾何モデルの解析も必要になると考えています。また、人は手を力センサとして駆使して、物体の接触状態を観察しながら物体を動かすことが多く、別のアプローチの観察が必要になります. 2つめは、プリコンディションと見られる状態でも、物体の自由な動きの中から見かけ上、拘束軸・拘束面が検出されうることです。 3つめには、個々の動きを観察する際に、動きの意味を考慮すると、その位置が重要なのかそれとも動きの速さやエネルギーが重要なのか、ビジョンだけでは分かりづらいということです。その解決のためには、力センサなどの手助けが必要だと考えています。 これらの問題は、視覚処理だけで物体機能の抽出をすることの限界を示しています。
3次元トラッキング Fig.11 9eye Stereo Vision System 作業場面の時系列ステレオ画像の取得 物体の3次元位置の特定には、開発しているトラッキングシステムを使って行います。まず、図11の9眼ステレオビジョンシステムを使い、教示動作を観察します。約15frame/secでカラー画像と距離画像、SADや信頼度画像を記録します。 ・約15frame/secでカラー画像・距離画像・ SAD画像・信頼度画像を録画
3次元トラッキング(2) 距離画像からの物体の切り出し テンプレートマッチングによる物体の位置・姿勢の取得 ・色情報に基づく認識と位置の推定 ・物体輪郭の鮮鋭化処理 ・人間の手と腕によるオクルージョン対策 テンプレートマッチングによる物体の位置・姿勢の取得 位置の特定はオフラインで行います。 記録した距離画像から、物体領域の切り出しを行います。同時に、距離の計算にブロックマッチングを使用していることで起こる、実物よりも距離画像の物体の方が膨らんで見えてしまうという問題がありますので、SAD画像を基に物体輪郭の先鋭化処理を行います。また、人の手や腕は認識しませんので除去します。 あらかじめ、物体のCADモデルや色情報をもっていることを仮定しています。物体認識は2段階の処理で行います。まず、物体の色ヒストグラムのマッチングを取ることで、およその物体の識別と位置の特定を行います。次に、距離画像とCADモデルを用いて3次元テンプレートマッチングを行います。 このような処理を取得した全ての時間の画像に適応することで、3次元トラッキングを実現します。 この結果として、物体の種類の特定と3次元位置および姿勢を得ます。 ・色情報に基づく認識と位置の推定 ・3次元テンプレートマッチング 複数物体の3次元トラッキングを実現
まとめ タスクの分割、機能部位の特定. 従来手法のタスクモデルの拡張 開発中の視覚システムの紹介 視覚処理における問題の考察 接触状態の偏移を観察することで、機能部位の特定および機能の抽出ができるというアイデアを示しました。 動作の拘束面・拘束軸という概念を示し、3次元運動を2次元運動に落として扱うことで、視覚による機能情報の抽出ができるというアイデアを示しました。また同時に、プリコンディションの概念を拡張し、より一般的なタスクを記述できるようにタスクモデルを拡張しました。 さらに、視覚処理における問題と開発中の視覚システムについて紹介しました。 これらのアイデアの更なる利点と展望を述べますと、ロボットにタスクを実装する際には、動作の拘束面を考慮することで、アテンションポイント(観察点)を決めることができ、ステレオカメラを用いずとも物体の動きの観察が容易にできます。また、7自由度アームの冗長分を拘束面によって規定することで、より良い姿勢で物体を扱うことができるのではないかと思われます。 今後の発展として、このようなシステムの開発を進めていき、次には物体の幾何形状と動作要素の関係を調べることで、物体の機能座標を割り出すことを考えています。 以上で、発表を終わります。ありがとうございました。
トラッキング実験 Fig.12 レンチの回転運動のトラッキング結果 このシステムを利用して、レンチの回転運動を観察した結果を示します。 問題点:結構ぶれる、 Fig.12 レンチの回転運動のトラッキング結果
接触状態の抽出実験 また、接触状態の偏移の検出を行った結果を示します。 Fig.13 ナットとレンチの接触状態の抽出