JP6643000B2 - 仮想環境作成方法、ロボット装置の制御方法、ロボットシステム、および情報処理装置 - Google Patents

仮想環境作成方法、ロボット装置の制御方法、ロボットシステム、および情報処理装置 Download PDF

Info

Publication number
JP6643000B2
JP6643000B2 JP2015156175A JP2015156175A JP6643000B2 JP 6643000 B2 JP6643000 B2 JP 6643000B2 JP 2015156175 A JP2015156175 A JP 2015156175A JP 2015156175 A JP2015156175 A JP 2015156175A JP 6643000 B2 JP6643000 B2 JP 6643000B2
Authority
JP
Japan
Prior art keywords
environment
information
virtual environment
robot
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015156175A
Other languages
English (en)
Other versions
JP2017035739A5 (ja
JP2017035739A (ja
Inventor
津崎 亮一
亮一 津崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2015156175A priority Critical patent/JP6643000B2/ja
Publication of JP2017035739A publication Critical patent/JP2017035739A/ja
Publication of JP2017035739A5 publication Critical patent/JP2017035739A5/ja
Application granted granted Critical
Publication of JP6643000B2 publication Critical patent/JP6643000B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Numerical Control (AREA)
  • Manipulator (AREA)

Description

本発明は生産装置の設置環境に設置された物体の3Dモデルを生成して3D仮想環境に配置する仮想環境作成方法、ロボット装置の制御方法ロボットシステム、および情報処理装置に関する。
近年、工業生産の分野で、人間の手のように複雑で高速な物品の製造作業を実現できる多関節のロボット装置(以下ロボット装置という)を利用した生産(製造)装置が普及しつつある。この種のロボット装置で組立を行う場合、ロボットの動作プログラムを作成する必要がある。この際、コンピュータグラフィックを用いた3D仮想環境を用いて動作プログラムを作成することがある。
このようなロボットプログラミング(教示)のための3D仮想環境は、CAD(Computer aided design)ツールで作成したロボット装置や被作業物(ワーク)などの仮想的な3Dモデルを配置して構築される。このような3D仮想環境をディスプレイに表示し、例えばGUI(Graphical user interface)上で動作を確認しながら動作プログラム作成を行うことができる。3D仮想環境をGUIで操作するよう構成されたロボットプログラミング環境は、直感的な操作が可能である利点がある。
上記のような3D仮想環境を構築する場合、通常、ロボット装置および被作業物(ワーク)に関しては、予め設計情報(サイズ、形状、ジオメトリ)が既知であることが多い。従って、仮想環境中に配置する空間情報として、設計情報に基きCAD処理などによって構築された3Dモデルを用意できることが多い。
しかしながら、設計情報のみを用いてCAD上で作成した空間情報は、実環境上の物体とサイズや設置位置が微妙に異なる場合がある。実環境上の物体(ロボット装置や被作業物)には、公差や部品製作誤差が存在するためである。
このため、従来では、仮想環境上で作成したロボット装置の動作プログラムは、実環境で用いる前に実環境上での動作確認などを経て調整する作業が行われる。例えば、実環境に設置されたロボット装置、あるいはさらに被作業物を用いて1ステップずつ確認動作を行わせる。そして、例えば実環境と整合しない部分をティーチングペンダントのような操作端末を用いて修正する。しかしながら、近年ではロボット装置を用いた組立工程が複雑化しつつあり、このような実環境で行う調整作業の工数や所要時間が膨大になる傾向がある。
上記のような事情に鑑み、カメラなどの撮像装置を用いて実環境を撮影し、仮想環境上に反映させる技術が提案されている。例えば、ロボット装置の先端に撮像装置を設け、ワークを撮像することで実環境上の空間情報を取得し、取得した被作業物の空間情報を仮想環境上にする技術が提案されている(例えば下記の特許文献1)。また、CTスキャナのような撮像装置により得られた空間情報と、設計情報から得た空間情報を比較し、寸法補正などを行う技術も提案されている(例えば下記の特許文献2)。
特開平5−245791号公報 特開2004−271222号公報
しかしながら、上記特許文献1では、撮像対象は被作業物に限定されており、被作業物以外を撮像して空間情報を取得するようなことは行っていない。また、CAD等で予め設計情報から作成した空間情報が存在する場合や、そのような空間情報の取り扱いには言及されていない。また、上記特許文献2では、予め作成した空間情報と撮像により得られた空間情報との比較を行うものの、両空間情報に存在する物体に差異がある場合や、物体が両空間情報の一方のみに存在している場合などの取り扱いには言及されていない。
実際には、撮像装置などを用いて環境認識によって得られた空間情報と、予め作成した空間情報に差分があることは稀ではない。例えば、ケーブルのような柔軟物は実環境でどのように配置されるか、設計情報ないしはそれに基づきCAD処理された3Dモデル上では予め決定することが困難である。
例えば、ケーブルのような柔軟物がロボット装置の設置環境に配置されることは決して珍しくない。例えば、ロボット装置と制御装置を接続したり、被作業物(ワーク)どうしがケーブルで接続されていることがある。このような場合、ロボットアームやその先端のエンドエフェクタがケーブルと緩衝しないようにロボット装置の動作プログラムを作成する必要がある。しかしながら、従来では、ケーブルのような柔軟物の場合は、実際の占有領域と比べ大きめの空間を配置領域として仮想環境上に登録し、ロボットの侵入禁止領域とするような取り扱いが行われていた。このため、ロボット装置を必ずしも効率的に動作させることができない場合があり、実工程のタクトタイムが増大する問題があった。
また、ロボット装置の設置現場では、ケーブルのような物体は必要に応じて増設されたり、取り回しが変更されたりする可能性がある。このため、ロボット装置の設置環境を3D撮像装置などにより撮像した時、ケーブルのような物体は、予め設計情報から作成した仮想環境中には対応する空間情報が存在しない状態となっていることもある。このような場合、撮像された物体の空間情報を新たに仮想環境に反映させるか否かを自動で判断することが難しいという問題があった。
本発明の課題は、3Dデータ取得装置によって得られた空間情報(3Dデータ)から、実環境に近い状態を適切に3D仮想環境上に再現できるようにすることにある。
上記課題を解決するため、本発明においては、生産装置の設置環境から3Dデータ取得装置によって取得した3Dデータを用いて制御装置が前記設置環境に設置された物体の3Dモデルを生成して前記生産装置の設置環境に対応する3D仮想環境に配置する仮想環境作成方法において、
前記制御装置が、前記3Dデータ取得装置によって取得した3Dデータと、前記設置環境に配置される物体の形状情報を含む第1の辞書データと、を照合する第1の照合工程と、前記制御装置が、前記3Dデータ取得装置によって取得した3Dデータと、前記設置環境に配置される物体へ接続される柔軟物に関する情報を含む第2の辞書データと、を照合する第2の照合工程と、前記制御装置が、前記第1または第2の照合工程に基づき、前記設置環境に配置されている物体の3Dモデルを生成して前記3D仮想環境に配置する出力処理工程と、を含み、前記第2の辞書データは、前記設置環境に配置される物体に対して前記柔軟物が接続される位置または方向の少なくとも一つを有する接続特性情報を含み、前記制御装置は、前記第2の照合工程において、前記3Dデータ取得装置によって取得した3Dデータと、前記接続特性情報と、を照合する構成を特徴とする。
本発明によれば、生産装置の設置環境から3Dデータ取得装置によって得られた空間情報(3Dデータ)と、設置環境に配置される物体の形状情報から予め生成された第1の辞書データと、を照合する。また、設置環境に配置される可能性のある物体の特徴情報から予め生成された第2の辞書データと、を照合する。そして、3Dデータ中で第1または第2の辞書データに該当する物体の3Dモデルを生成して3D仮想環境に配置する。例えば、生産装置(ロボット装置など)それ自体や、被作業物(ワーク)などのように設置環境に配置される物体は第1の辞書データと照合することにより同定される。また、例えばケーブルのように変形する可能性があり設置環境に配置される可能性のある物体は、第2の辞書データと照合することにより同定される。従って、例えばケーブルのように変形する可能性があって、第1の辞書データに形状データを用意できない物体についても第2の辞書データとの照合によって同定できる。このため、実環境から3Dデータ取得装置によって得られた空間情報(3Dデータ)を用いて、その実環境に存在する各物体の3Dデータを適切に3D仮想環境上に再現することができる。
本発明の実施例1に係るロボットシステム全体の概略構成を示す説明図である。 ロボット装置の概略構成を示す説明図である。 ロボット制御装置の機能構成を示したブロック図である。 環境認識装置の説明図である。 ロボット動作プログラム作成装置の説明図である。 組立環境の実環境を示す模式図である。 予め作成された空間情報を示す模式図である。 環境認識した空間情報を示す模式図である。 (a)は予め作成した空間情報を上から俯瞰した模式図、(b)は接続リストを示した模式図である。 本発明の実施例1における環境認識処理の流れを示したフローチャート図である。 (a)は環境認識結果入力処理の模式図、(b)は平面上物体抽出処理後の模式図、(c)は物体分離および照合処理後の模式図である。 (a)は物体分離および照合処理を示す模式図、(b)は物体分離および照合処理のマッチングを示した模式図である。 (a)は物体分離および照合処理時に物体群をグリッド上に配置した模式図、(b)は(a)に物体が存在してよい領域を追加で示した模式図である。 (a)は従来の仮想環境上で設定される仮想障害物を示した模式図、(b)は実施例1における仮想障害物を示した模式図、(c)は仮想障害物を環境認識した結果を変形した場合の模式図である。 実施例1の環境認識の効果を示した説明図である。 本発明の実施例2に関し、(a)および(b)は被作業物の距離の変化によって生じる接続物の変形を示した模式図、(c)は進入禁止領域の統合を示す模式図である。 本発明の実施例3に係る環境認識した空間情報を示す模式図である。 実施例3の環境認識処理の流れを示したフローチャート図である。 本発明の実施例4に係る環境認識した空間情報を示す模式図である。 実施例4の環境認識処理の流れを示したフローチャート図である。 本発明の実施例5に係る環境認識した空間情報を示す模式図である。 本発明の実施例6に係る(a)は環境認識した空間情報を俯瞰状態で示した模式図、(b)は拡張した接続リストを示した模式図である。
以下、添付図面に示す実施例を参照して本発明を実施するための形態につき説明する。なお、以下に示す実施例はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。また、以下の説明で取り上げる数値は、参考数値であって、本発明を限定するものではない。
図1は、本発明を適用可能なロボットシステム全体の概略的な機能構成を示している。図1において、環境認識装置500は、本実施例の仮想環境の作成方法を実施できるよう構成されている。環境認識装置500は、記録ディスク522から予め作成した空間情報520を入力する。この空間情報520は、後述の空間情報700(第1の辞書データ:図7)に相当する。環境認識装置500は、ロボット動作プログラム作成装置550で利用可能な仮想環境用空間情報530(3D仮想環境)を後述する手法によって作成し、記録ディスク532に出力する。
ロボット動作プログラム作成装置550は、環境認識装置500で作成された仮想環境用空間情報530(3D仮想環境)を入力として、ロボット動作プログラム570を作成し、記録ディスク580に出力する。ロボット装置100は記録ディスク580のロボット動作プログラム570を入力し、ロボットアームを動作させる。
図2は、本発明の実施例1に係るロボット装置の概略構成を示している。図2のロボット装置100は、例えば多関節構成のロボットアーム200と、このロボットアーム200を制御するロボット制御装置300と、を備えている。
また、ロボット装置100は、ロボット制御装置300に複数の教示点のデータを送信する教示装置としてのティーチングペンダント400を備えている。このティーチングペンダント400は、作業者によって操作され、ロボットアーム200やロボット制御装置300の動作を指定するのに用いられる。
ロボットアーム200は、本実施例1では、6関節(6軸)のロボットアームである。ロボットアーム200は、各関節J1〜J6を各関節軸A1〜A6廻りにそれぞれ回転駆動する複数(6つ)のアクチュエータ201〜206を有している。
ロボットアーム200は、可動範囲の中であれば任意の3次元位置で任意の3方向の姿勢に手先(ロボットアーム200の先端)を向けることができる。一般に、ロボットアーム200の位置と姿勢は、3次元(XYZ)座標系で表現することができる。
図2中の符号Toは、ロボットアーム200の台座を基準(原点)として配置された3次元座標系を、また、Teはロボットアーム200の手先の所定部位を基準(原点)として配置された3次元座標系を示している。
本実施例1では、アクチュエータ201〜206は、電動モータ211〜216と電動モータ211〜216に接続された減速機221〜226とから構成される。なお、これらアクチュエータ201〜206の構成は、上記の構成に限定されるものではなく、例えば人工筋肉等であってもよい。
本実施例1では、各関節J1〜J6が回転関節である場合について説明する。この場合、「関節の位置」とは、当該関節に定められた基準角度からの関節軸の回転角度を意味する。なお、各関節が直動関節の場合であってよい。その場合、「関節の位置」とは、直動関節の当該関節に定められた基準位置からの位置情報である。
ロボットアーム200は、更に、アクチュエータ201〜206の電動モータ211〜216を駆動制御する駆動制御部としてのサーボ制御装置230を有している。
サーボ制御装置230は、入力した位置指令(目標位置)に基づき、各関節J1〜J6の位置が位置指令に追従するよう、各電動モータ211〜216に電流を出力し、各電動モータ211〜216の動作を制御する。
ロボット制御装置300は、ティーチングペンダント400から複数の教示点(教示点列)の入力を受ける。
ロボット制御装置300は、ロボットアーム200の各関節J1〜J6が、複数の教示点を順次辿って動作するよう、教示点に基づき、サーボ制御装置230に所定時間間隔で出力する位置指令を生成し、所定時間間隔で位置指令を出力する。
教示点は、各関節(6つの関節)J1〜J6の教示位置をベクトル成分として含むベクトル(教示点ベクトル)である。また、ロボット制御装置300において最終的に求められる位置指令は、各関節(6つの関節)J1〜J6の目標位置をベクトル成分として含むベクトルである。即ち、ロボット制御装置300は、入力した教示点から軌道の計算をして軌道に沿った多数の位置指令を生成し、これら位置指令を所定時間間隔でサーボ制御装置230に出力する。
ここで、教示によるロボットアーム200の位置姿勢を制御する制御方式として、主に次の2種類が考えられる。
(1)関節空間移動(Motion in configuration space)
ロボットの関節角度を変位とする座標系を関節空間という。この関節空間移動方式は、上記関節空間でロボットアーム200の教示点を指定し、指定した教示点で決定される軌道に沿ってロボットを動かす方式である。
(2)タスク空間移動(Motion in task space)
三次元的な位置と姿勢で表す座標系をタスク空間という。このタスク空間移動方式は、上記タスク空間で教示点を指定し、指定した教示点とロボットアーム200の手先で決定される軌道に沿ってロボットアーム200を動かす方式である。
図2では、4つの教示点p1,p2,p3,p4を模式的に図示している。いずれの場合でもロボットアーム200は、教示点で決まる軌道に沿って動くよう制御される。なお、教示点p1,p2,p3,p4とともに示される矢印は、ロボットアーム200の手先に配置された上述の3次元座標系Teに相当する。
図2の教示点p1,p2,p3,p4のデータ表現は、必ずしも3次元空間内の座標情報であるとは限らない。例えば上記の関節空間移動(1)の場合では、教示点は全関節J1〜J6の関節角度(各モータの回転角度)によって表現される。
一方、上記のタスク空間移動(2)の場合では、教示点は、ロボットアーム200の手先部位の3次元空間の位置、姿勢に相当し、これは図2のように、p1,p2,p3,p4を座標系として表現される。
本明細書の各実施例では、ロボットプログラミング(教示)において、上記の(1)、(2)のいずれの位置姿勢制御方式を用いても構わない。
図3は、ロボット制御装置300の構成を示している。本実施例1では、ロボット制御装置300は、図3に示すように、演算部としてのCPU301を備えたコンピュータ装置として構成されている。
図3において、ロボット制御装置300は、記憶部としてROM302、RAM303、HDD304を備えている。また、ロボット制御装置300は、記録ディスクドライブfおよび各種のインターフェース306〜309を備えている。
図3において、CPU301には、ROM302、RAM303、HDD304、記録ディスクドライブ305および各種のインターフェース306〜309が、バス310を介して接続されている。ROM302には、BIOS等の基本プログラムが格納されている。
RAM303は、CPU301の演算処理結果を一時的に記憶する記憶部である。HDD304は、演算処理結果である各種のデータを記憶するための記憶部であると共に、プログラム330が格納されている。
このプログラム330は、CPU301に各種演算処理を実行させるためのプログラムである。CPU301は、HDD304に格納されたプログラム330に基づいて各種演算処理を実行する。
ティーチングペンダント400はインターフェース306に接続されており、CPU301はインターフェース306およびバス310を介してティーチングペンダント400からの教示点のデータや補間方法の指定の入力を受ける。
HDD304には、CPU301による演算結果を示すデータ(位置指令のデータ)等がCPU301の指令の下で記憶される。
ロボットアーム200のサーボ制御装置230は、インターフェース309に接続されており、CPU301は、位置指令のデータを所定時間間隔でバス310およびインターフェース309を介してサーボ制御装置230に出力する。
インターフェース307には、モニタ321が接続されている(図2では不図示)。モニタ321は、ロボットアーム200の現在の状態などを表現する各種画像やテキストデータの表示に用いられる。
インターフェース308には、書き換え可能な不揮発性メモリや外付けHDD等の外部記憶装置322を接続できるよう構成されている。記録ディスクドライブ305は、記録ディスク580に対して、各種データやプログラム等の読み出し、あるいは書き込みを行うことができる。
図4は、本実施例1に係る環境認識装置500の概略図である。この環境認識装置500は、環境入力装置501と環境認識処理装置502からなり、予めロボットアーム200およびワークなどの設計情報に基づき作成された空間情報520を記録ディスク522から入力する。
環境入力装置501は、ロボットアーム200の設置環境の3次元の空間情報を取得するための3Dカメラのような3Dデータ取得装置から構成される。3Dカメラの撮影方式はステレオ撮影方式に限らず、任意の撮影方式で構成してよい。また、機構的に可能であれば、多数のプローブ(触針)を配置した形状測定装置などを用いることも考えられる。環境入力装置501は、環境認識処理装置502に対して、各種パラレル(あるいはシリアル)インターフェースなどを介して接続される。環境入力装置501によって、ロボットアーム200の設置環境から取得された3次元空間情報は環境認識処理装置502に入力される。
環境認識処理装置502は、設計情報に基づき作成された空間情報520と、環境入力装置501によりロボットアーム200の設置環境から取得された3次元空間情報は環境認識処理装置502を用いて仮想環境用空間情報530を作成する。仮想環境用空間情報530は、例えば記録ディスク532に対して出力することができる。
環境認識処理装置502は、環境入力装置501から得られた空間情報を処理するコンピュータでありモニタ、キーボード、記録ドライブを備えている。環境認識処理装置502は、図4にノートパソコン様の形状で図示してある通り、(ロボット制御装置300と同様に)例えば既成のPC(Personal Computer)のハードウェアを利用して成るコンピュータ装置である。
環境認識処理装置502の具体的な構成は、例えば図3の構成からロボットアーム関係のブロック、例えばティーチングペンダント400、サーボ制御装置230、電動モータ211〜216、インターフェース306、309などを除く部分とほぼ同等である。以下では、環境認識処理装置502の(同等の)構成部材として図3中のCPU301、ROM302、RAM303やHDD304などに言及することがある。
図4において、環境認識処理装置502の機能として、環境認識部510が示されている。環境認識部510は、コンピュータ(図3のCPU301)のハードウェアおよびそのソフトウェアにより実装される。特に、後述するコンピュータ(CPU301)が実行する制御手順に相当する仮想環境作成プログラムは、例えば図3中のROM302やHDD304に格納される。これらのROM302やHDD304のような記憶手段は、当然ながらコンピュータ読み取り可能な記録媒体である。これらの例えばROM302やHDD304のようなコンピュータ読み取り可能な記録媒体(の一部)は、着脱可能なフラッシュメモリデバイスや磁気/光ディスクによって構成されていてもよい。また、環境認識処理装置502のソフトウェアは、ネットワークなどを経由してダウンロードされ、例えばHDD304のような記録媒体に導入したり、あるいは導入済みのソフトウェアを更新するような構成も考えられる。なお、ロボット動作プログラム作成装置550のソフトウェアや、ロボット制御装置300のソフトウェア(ロボット制御プログラム)の格納先や、導入、更新などのための構成についても、上記と同様である。
環境認識部510は、環境認識情報入力部511、平面抽出部512、物体分離部513、照合部514、空間情報作成部515の各機能ブロックを含む。
予め作成した空間情報520は、ロボットアーム200やそれにより操作されるワークなどの設計情報からCAD等で作成した空間情報であり、例えば記録ディスク522を介して環境認識処理装置502に入力される。
環境認識処理装置502の環境認識部510は、後述する認識処理によって、環境入力装置501で得られた3次元空間情報、および予め設計情報から作成された空間情報520に基づき、仮想環境用空間情報530を作成する。作成された仮想環境用空間情報530は、記録ディスク532に格納される。
環境認識処理装置502の環境認識部510は、例えばロボット設置環境から環境入力装置501により得た3次元空間情報と、予め設計情報から作成されたロボットアーム200やワークに相当する3Dモデルである空間情報520を照合する。そして、環境入力装置501により得た3次元空間情報中の物体で、空間情報520に該当する空間情報を仮想環境用空間情報530に配置(登録)する。
予め設計情報から作成 されたロボットアーム200やワークに相当する空間情報520は、環境認識部510が用いる、環境認識のための第1の辞書データ、と考えてよい。
しかしながら、実際のロボット設置環境から環境入力装置501で得られた3次元空間情報中には、予め設計情報から作成された空間情報520(第1の辞書データ)と照合しても該当しない物体の空間情報が含まれていることがある。また、予め設計情報から作成された空間情報520(第1の辞書データ)の中には、実際のロボット設置環境に配置されるべき必須の物体が含まれることがある。そして、例えば配置忘れなどによって、実際のロボット設置環境に配置されるべき必須の該当の物体の空間情報が環境入力装置501で得られた3次元空間情報中に含まれていない可能性もある。
また、特に、ケーブルのような柔軟物は実環境でどのように配置されるか、設計情報ないしはそれに基づきCAD処理された3Dモデル上では予め決定することが困難である。
本実施例1では、ケーブルのような柔軟物を介して接続された物体(例えばワーク:被作業物)が配置されているようなケースに対処するため、後述の処理では、空間情報520(第1の辞書データ)とは異なる第2の辞書データを用いる。
図5は、本実施例1のロボット動作プログラム作成装置550の概略構成を示している。
ロボット動作プログラム作成装置550は、記録ディスク532に格納された仮想環境用空間情報530を入力するコンピュータであり、モニタ、キーボード、記録ドライブを備えている。このロボット動作プログラム作成装置550も、環境認識処理装置502と同様、例えば既成のPC(Personal Computer)のハードウェアを利用して成るコンピュータ装置である。
ロボット動作プログラム作成装置550の具体的な構成は、例えば図3の構成とほぼ同等である。ただし、ロボット動作プログラム作成装置550の場合、ロボットアーム関係のブロック、例えばティーチングペンダント400、サーボ制御装置230、電動モータ211〜216、インターフェース306、309などは不要である。以下では、ロボット動作プログラム作成装置550の構成部材についても、図3中のCPU301、ROM302、RAM303やHDD304などに言及することがある。
なお、ロボット動作プログラム作成装置550と、環境認識処理装置502は、同一のPCハードウェア上にそれぞれのためのソフトウェアをインストールすることによって実装することも可能である。その場合、仮想環境用空間情報530は、同一のPCハードウェア上で授受すればよく、記録ディスク532は用いず、コンピュータ上のメモリやHDDなどを介して仮想環境用空間情報530を授受すればよい。
ロボット動作プログラム作成装置550の機能ブロックは、図5の右側に示す通り、ロボット動作プログラム作成用シミュレータ部560から成る。ロボット動作プログラム作成用シミュレータ部560は、仮想環境表示部561およびロボット動作作成部562からなる。これらの機能ブロック(560:561、562)は、コンピュータ(図3のCPU301)のハードウェアおよびそのソフトウェア(予め作成され、図3のROM302やHDD304に格納される)により実装される。
ロボット動作プログラム作成用シミュレータ部560は、具体的には、PCのモニタ上に構築されたGUI上で動作する。このGUIには、環境認識処理装置502から受信した仮想環境用空間情報530を用いて、ロボットアーム200およびその設置環境内の物体を表現した仮想環境を表示する(仮想環境表示部561)。また、ロボット動作作成部562は、ポインティングデバイスやキーボードといったユーザーインターフェース手段を介して仮想環境(仮想環境表示部561)内に表示された物体の仮想表現を操作できるよう構成される。ユーザーインターフェースのポインティングデバイスには、例えば、マウスやトラックパッド、トラックボールなどを利用できる他、モニタ上に配置されたタッチパネルなどから構成することもできる。このようなユーザ操作を介して、例えばロボットアーム200に所望の位置姿勢を取るよう動作させるための動作プログラムを作成することができる(ロボット動作作成部562)。
ロボット動作プログラム作成装置550上でユーザが作成したロボット動作プログラム570をロボット制御装置300に送り、このロボット動作プログラム570に応じてロボットアーム200を動作させることができる。ロボット動作プログラム570は、例えば記録ディスク580に格納し、ロボット制御装置300の記録ディスクドライブ305を介してロボット制御装置300に送ることができる。なお、ロボット動作プログラム作成装置550から、ロボット制御装置300へロボット動作プログラム570を転送するには、記録ディスクドライブ305を用いる他、ネットワーク通信を利用しても構わない。
以下、ロボットアーム200、およびその設置環境をより具体的に示しながら本実施例1について説明する。
図6は、実際の設置環境600に配置されたロボットアーム200、被作業物610、治工具611〜612を示している。被作業物610は、例えばロボットアーム200が組立に用いるフィクスチャ、治工具611〜612は、ロボットアーム200が組立に用いる用具である。また、図6において、接続物620〜621は、ケーブルであり、被作業物610〜612やロボットアーム200と接続されている。設置面650は、被作業物610〜612やロボットアーム200などの組立に必要な物体を設置する平面である。
一方、図7は、予め作成された空間情報700(第1の辞書データ)を模式的に表している。この空間情報700(第1の辞書データ)は、ロボット設置環境に配置される物体の設計情報に基づき、CADツールなどによって、3Dデータの形で形状データを予め作成される。また、図7の空間情報700(第1の辞書データ)は、図1、図4の空間情報520に相当し、記録ディスク522などを介して環境認識装置500に入力される。
図7において、ロボットアーム701は、実環境上のロボットアーム200に対応した空間情報(3Dモデル)、また、被作業物710〜712は実環境上の被作業物610〜612に対応する空間情報(3Dモデル)である。また、平面750は実環境上の設置面650に対応した空間情報(3Dモデル)である。これらの空間情報(3Dモデル)については、各部の形状や寸法などに関する数値化された設計情報が存在し、CADツールなどを用いて予め自動的に生成することができる。
図6の実環境と異なり、図7の空間情報700では、ケーブルなどの接続物620〜621はどのように配置するか事前に決めることが困難であるため、図7には対応する空間情報が存在しない。
さらに、図8は環境認識装置500で環境認識した空間情報800を模式的に示している。図8は、環境入力装置501により図6の設置環境600(実環境)から取得した3Dデータと、図7の空間情報700および後述の接続リスト900(第2の辞書データ)と、を用いて環境認識処理装置502が空間環境認識した結果を示している。
図8において、被作業物810〜812は図6の実環境の被作業物610〜612の環境認識結果である。ロボットアーム801は、図6の実環境のロボットアーム200の環境認識結果である。また、接続物820〜821は、図6の実環境の接続物620〜621の環境認識結果、平面850は、実環境の設置面650の環境認識結果に相当する。
以下、図9〜図14を参照して、図8に示すように生成された仮想環境(空間情報800)を取得するための情報処理につき詳細に説明する。
図9(a)は、図7の設計情報から得た空間情報700を上方から俯瞰した状態で示している。図9(a)では、簡略化のため高さ情報は省略し、XY平面のみを示している。同図において、物体A,B(901、902)およびC(903)が図7の被作業物710〜712に対応し、D(904)がロボットアーム701に対応している。これらA、B、C、D…は、便宜上の物体のIDで、本実施例では主に空間情報中における各物体を識別するのに用いる。
図9(a)において、物体AとB、CとDをそれぞれ結ぶ曲線(破線)は、ケーブル(図6の620、621)による物体間の接続を概念的に表現したものである。この例では、ケーブル(図6の620、621)は、実際はどのように配置されるか不明な接続物であり、図7の設計情報から得た空間情報700には直接含まれていない。
しかしながら、本実施例1では、設置平面(650)に配置された被作業物610や治工具611〜612(図6)が、図6や図9(a)のようにケーブル(図6の620、621)によって接続される(可能性が高い)ことが予め判明しているものとする。即ち、ケーブルのような柔軟物によって「接続」される物体A、B、C、Dが用いられることが予め判明している。
このような場合、図9(b)に示すような、接続リスト900(第2の辞書データ)を用意しておくことにより、環境認識処理装置502により高速かつ確実に図8のような空間情報800(環境認識結果)を生成することができる。
図9(b)の接続リスト900(第2の辞書データ)は、ケーブルのような柔軟物によって「接続」される物体A、B、C、Dの特徴情報をリスト化したものである。この接続リスト900(第2の辞書データ)は、例えば、環境認識処理装置502が用いるメモリ領域(例えばROM302やRAM303)に配置される。あるいは、接続リスト900は、メモリ領域(ROM302やRAM303)に展開される前はHDD304などに格納されていてもよい。接続リスト900(第2の辞書データ)の記録形式は任意であり、例えばメモリ領域ではテーブルメモリや配列などの格納形式を用いることができる。また、HDD304上では、テーブルメモリや配列などの形式に展開可能なフォーマットで任意のファイル形式を用いて接続リスト900(第2の辞書データ)を格納してよい。
ケーブルのような物体(柔軟物)の場合、予め判明している形状や寸法情報は、せいぜい直径や全長程度であることが多い。また、ケーブルのような柔軟物は、配置された時の形状なども予め予測することができない。
このため、本実施例の接続リスト900(第2の辞書データ)は、ケーブルのような柔軟物によって「接続」される物体A、B、C、Dの「接続」が生じる位置および方向、のような特徴情報をリスト(テーブルメモリ)化している。
即ち、ロボットアーム200(701)や被作業物にケーブルを接続する場合、通常、その接続のためのコネクタ(あるいはケーブルが直出しされる透孔)の位置は判明している。あるいは、そのようなケーブルの接続位置を意図して設計することは可能である。
図9(a)の物体A、Bで言えば、物体Aからはケーブルは右(right)出し、物体Bからはケーブルは左(left)出し、となっている。物体C、Dの場合は、物体からはケーブルは上(top)出し、物体Bからはケーブルは下(bottom)出し、となっている。なお、右(right)、左(left)、上(top)、下(bottom)の接続方向は、図9の平面表示上に便宜的に選んだ表示に過ぎず、接続リスト900(第2の辞書データ)のメモリ上の表現形式は任意である。また、ここでは簡略化のために4方向のみの分類で済ませているが、接続リスト900(第2の辞書データ)で、更に細分化して方向を表現できるような表現形式を用意しておくことができる。
また、図9(a)では、ケーブルの接続位置は、設置面650に相当する平面をa×bのグリッドに区切っている。そして、本実施例の接続リスト900(第2の辞書データ:図9(b))では、各物体A〜Dをこのグリッド上にマッピングし、その位置によって各物体のケーブル接続位置を定義している。なお、ここでaとbは任意の整数であり、図9(a)では6×4のグリッドを用いている。
このように、空間認識を行う空間をグリッドで(粗く)区切って取り扱うことにより、CPU(301)による演算(の一部)が簡略化され、処理の負荷を軽減することができる。
本実施例では、以上のように構成した接続リスト900(第2の辞書データ:図9(b))を用意しておく。そして、環境認識処理装置502の照合部514(図4)によって、環境入力装置501で図6のような設置環境600から得た空間情報と、接続リスト900(第2の辞書データ:図9(b))を照合する。
そして、照合部514による照合の結果、該当する物体の空間情報(3Dモデル)を配置することにより、図8の空間情報800のような環境認識結果を得ることができる。この時、環境認識装置500は、例えば、照合部514によって接続リスト900に該当すると判定した物体の空間情報(3Dモデル)を生成する。そして、図7の設計情報などに基づき予め作成された空間情報700と組み合わせる(または空間情報700に追加する)ことにより、図8の空間情報800のような環境認識結果を得ることができる。
本実施例の接続リスト900(第2の辞書データ:図9(b))は、例えば上記のケーブルのように公差や部品製作誤差といった要因により実環境と認識した空間情報の位置や形状は厳密には一致しない物体(接続媒体)の特徴情報を利用して構成している。この特徴情報は、例えば上記のケーブルのような物体の場合、上記のように接続方向や接続位置である。また、接続リスト900(第2の辞書データ:図9(b))の特徴情報は、設置空間のグリッド分割上の接続位置や、接続方向のような表現を用いているため、設置時の位置や形状の誤差を吸収して照合部514での照合を行うことができる。
なお、前述のように、図9(a)、(b)の特徴情報の例では簡易化のため高さ情報を省略しているが、接続リスト900(第2の辞書データ:図9(b))では、高さ情報を加味して、a×b×cの3次元グリッドを用いて接続位置を定義することができる。
図9(b)のように、接続リスト900には、各物体のID(A、B、C、D)に関連づけて、接続位置情報(905)、および接続方向に関する情報(906)などの特徴情報が記録される。これらの特徴情報は(905、906)は、例えば、ロボット設置環境に配置され接続物を介して相互に接続される可能性のある物体に関しては、当該物体と前記接続媒体との接続位置、および接続方向を表現した接続特性情報となっている。
本実施例における接続リスト900(第2の辞書データ)における特徴情報(特に接続物で接続される物体に関しては接続特性情報)は、設計情報から作成した空間情報700(第1の辞書データ)のように、3Dデータのような形状情報を含まない。
この点で、これら特徴情報ないし接続特性情報は、環境入力装置501で設置環境600から得た空間情報と、照合する場合、CPU(301)の演算のための負荷は小さくて済む。周知のように、実環境から得た空間情報(3Dデータ)と、空間情報700(第1の辞書データ)の3Dデータ(例えばCADデータ)のような空間情報との照合の場合は、複雑なマッチング過程を行わなければならない場合がある。ところが、本実施例の接続リスト900(第2の辞書データ)の特徴情報は、例えば接続位置や接続方向で記述された接続特性情報であって、実環境から得た空間情報(3Dデータ)との照合は小さな演算コストで実行できる。また、本実施例の接続リスト900(第2の辞書データ)の特徴情報は、例えば接続位置や接続方向のような緩やかな特性定義で構成されている。このため、ケーブルのような柔軟物の物体と照合する場合に、変形があっても確実にその物体を捉えることができる。
図9(b)の接続リスト900の接続位置情報(905)には、位置X、位置Yが含まれ、これらは図9(a)中のグリッドの番号によって表現されている。なお、図9(b)でも上記のように高さ方向(Z)の位置は簡略化のため省略しているが、接続位置情報(905)に高さ方向(Z)の情報を記録して照合するためには、例えば位置Zのフィールドが追加される。この高さ方向(Z)の情報も、Z座標により表現される空間を粗くグリッドで区切ったセルの番号により表現すればよい。
また、接続リスト900の接続方向に関する情報(906)は、上記の通り右(right)、左(left)、上(top)、下(bottom)のようなニーモニックにより表現されている。接続方向に関する情報(906)には、その他に、東(E)、西(W)、南(N)、北(N)のような任意のニーモニックを用いることも考えられる。
図10は、本実施例において、仮想環境に係る情報処理を用いてロボット装置100の動作を教示(プログラミング)する処理の全体の流れを示している。図10の制御手順は、環境認識装置500、およびロボット動作プログラム作成装置550によって実行される。この処理では、環境認識装置500によって作成された仮想環境を用いて、ロボット動作プログラム作成装置550を介してロボット動作の教示を行うことができる。
特に環境認識装置500による仮想環境の認識処理においては、予め設計情報から作成した空間情報700(図7:第1の辞書データ)、および接続リスト900(図9(a)、(b):第2の辞書データ)が用いられる。
図10のステップS901では、環境認識結果入力処理を行う。ここでは、ロボット装置100の設置環境600(図6)から環境入力装置501を介して得られた空間情報を環境認識情報入力部511に入力する。環境入力装置501が例えば3D(ステレオ)カメラのように3D画像を取得する装置であれば、空間情報は3D画像データの形式である。
ここで、ロボット装置100の設置環境600には、図6に示すように、ロボットアーム200の他、被作業物610や治工具611〜612(図6)が配置されているものとする。また、被作業物610と治工具611、ロボットアーム200と治工具612は、ケーブル(620、621)によって接続されているものとする。
ステップS902では、環境入力装置501から入力された空間情報に対して平面上物体抽出処理を実行する。この平面上物体抽出処理は、平面抽出部512で行う。この処理は、環境入力装置501から入力された空間情報からロボット装置100の設置平面上に存在する物体を抽出する処理である。この処理は、物体の抽出処理であるが、一面においては平面の除去処理であるといってもよい。
次に、ステップS903で物体分離および照合処理を行う。このうち物体分離処理は物体分離部513で行う。この物体分離処理は、環境入力装置501から入力された空間情報の輪郭検出や、画素値の連続性を解析するなどの公知の手法によって行われる。この物体分離処理が終了した段階では、分離された物体は、例えばそれがロボット装置であるかワークであるかなどはまだ同定されていない。しかしながら、さらにステップS903において、予め設計情報から作成した空間情報700(図7:第1の辞書データ)との照合(マッチング)を行う。これにより、環境入力装置501から取得した空間情報中で、空間情報700(図7:第1の辞書データ)に含まれている物体が同定される。
図7の例では、ロボットアーム701、被作業物710、治工具711、712が含まれており、これらは予め設計情報から作成した空間情報700(図7:第1の辞書データ)とステップS903の照合で該当判定され、同定される。
また、ステップS903において用いられる設計情報から作成した空間情報700(第1の辞書データ)には、図7のようにロボットアーム701、被作業物710、治工具711、712が含まれているが、ケーブルの情報は含まれていない。しかしながらケーブルに関しては、図9(a)、(b)で説明した接続リスト900(第2の辞書データ)が用意されている。
ステップS903で、分離後の物体群には、ケーブル(620、621)の空間情報が含まれている。ケーブル(620、621)の空間情報は、予め作成した空間情報700に存在しない物体に相当する。
このように、予め作成した空間情報700に存在しない物体が抽出されている場合を想定して、ステップS904の接続リスト照合処理を実行する。この接続リスト照合処理は照合部514で行う。ステップS904の接続リスト照合処理では、設計情報から作成した空間情報700に存在しない物体(ケーブルのような接続物620、621など)と、接続リスト900(第2の辞書データ:図9(b))と、が照合される。そして、接続位置や方向に相当する接続特性情報(905、906)が一致した物体(接続物)がこの照合で該当判定され、同定される。
続くステップS905(仮想環境用空間情報出力処理:出力処理工程)では、ステップS903、S904の照合(それぞれ第1の照合処理、第2の照合処理)で該当判定され、同定された物体の3Dモデルを生成する。そして、仮想環境用空間情報530(3D仮想環境)に登録する。
即ち、ステップS903で空間情報700(図7:第1の辞書データ)に該当した物体については、それらの物体に相当する3Dモデルを生成して仮想環境用空間情報530に登録する。この場合、空間情報700(図7:第1の辞書データ)は、設計情報などから生成されたCAD情報などであるから、例えば空間情報700中の当該物体に相当するCAD情報を仮想環境用空間情報530に配置することで、3D仮想環境への登録が完了する。
また、ステップS904の照合の結果、環境入力装置501から入力された空間情報中で、接続リスト900(第2の辞書データ:図9(b))に該当する物体については、その物体の空間情報(3Dモデル)を生成して仮想環境用空間情報530に登録する。
ここで、接続リスト900(第2の辞書データ:図9(b))の作成ポリシーの1つとしては、例えば次のようなものがある。接続リスト900の作成ポリシーの1つは、接続リスト900(第2の辞書データ:図9(b))が、例えばロボット動作プログラム作成時に用いられる可能性があり仮想環境用空間情報530中に存在すべき物体(のみ)を含むよう構成するものである。この場合は、上記のように接続リスト900(第2の辞書データ:図9(b))に該当する物体が存在する場合は、その全ての物体の空間情報を生成して仮想環境用空間情報530に登録すればよい。
また、接続リスト900(第2の辞書データ:図9(b))の異なる作成ポリシーとしては、仮想環境用空間情報530中に存在すべき物体と、存在すべきではない物体の双方を含むよう構成するものがある。この場合は、仮想環境用空間情報530中に存在すべき物体と、存在すべきではない物体は、両者を識別するフラグ(不図示)とともに接続リスト900に登録する。このようなポリシーで接続リスト900が構成されている場合には、接続リスト900中のフラグを参照して仮想環境用空間情報530中に存在すべき物体のみについて空間情報を生成して仮想環境用空間情報530に登録すればよい。
なお、ケーブル(620、621)のような物体は、例えば仮想環境用空間情報530中に存在すべき物体として取り扱う必要がある。例えば、仮想環境を用いたロボット動作プログラム作成時には、ケーブル(620、621)のような柔軟物は、形状が不定である。従って、ケーブル(620、621)のような柔軟物が占有する可能性のある空間は、仮想環境用空間情報530をディスプレイ上に表示する時、ロボットアームの侵入禁止領域として明示的に表示する必要がある。このようにケーブル(620、621)のような柔軟物が占める空間を生成し、仮想環境へ登録する手法の詳細については、後で別途、説明する。
以上のようにして、環境入力装置501から入力された空間情報に存在する物体のうち、設計情報から予め作成した空間情報700(第1の辞書データ)との照合の結果、該当する物体が仮想環境用空間情報530に登録される。また、環境入力装置501から入力された空間情報に存在する物体のうち、接続リスト900(第2の辞書データ:図9(b))との照合の結果、該当する物体が仮想環境用空間情報530に登録される。
図10の制御手順は、環境入力装置501から入力された3Dデータと、空間情報700(第1の辞書データ)および接続リスト900(第2の辞書データ)との照合を行う第1および第2の照合処理(S903、S904)を含む。そして、第1および第2の照合処理(S903、S904)で、空間情報700(第1の辞書データ)および接続リスト900(第2の辞書データ)に該当する物体については、入力3Dデータから3Dモデルを生成して3D仮想環境に登録する。即ち、図10の仮想環境用空間情報出力処理(S905)において、この3Dモデルの生成および、3D仮想環境(仮想環境用空間情報530)への配置を行う。この仮想環境用空間情報出力処理(S905)は空間情報作成部515で行うことができる。
さらに、図10のステップS906において、上記のようにして生成した仮想環境用空間情報530をロボット動作プログラム作成装置550に入力する。そして、ロボット動作プログラム作成装置550では、仮想環境用空間情報530に基づき、仮想環境表示部561(図5)によってモニタに環境認識した仮想環境を表示することができる。
ここで、ユーザは、ロボット動作作成部562のユーザーインターフェースを用いて、仮想環境表示部561の仮想環境表示(図8の空間情報800と同等)を操作できる。この時、上述のように各種のポインティングデバイス、タッチパネルなどから構成されたロボット動作作成部562のユーザーインターフェースを用いることができる。これにより、仮想環境表示(図8の空間情報800と同等)中の物体を直接操作するかのような直観的なユーザーインターフェース提供できる。
このようにして、仮想環境表示部561に例えば3D表示された仮想環境を用いてロボット動作プログラム570の作成のためのユーザーインターフェースを提供できる。ユーザは、仮想環境中の物体を直接操作する(例えばロボットアーム801を曲げる、など)直観的なユーザーインターフェースを介して、容易かつ手早くロボット装置100の動作をプログラム(教示)することができる。
図10のステップS907では、以上のようにして作成したロボット動作プログラム570を、ロボット制御装置300に入力し、ロボット動作プログラム570に従ってロボットアーム200を動作させる(実機動作処理)。
以下、図10の制御手順によって行われる情報処理につき、図11〜図14を参照して説明する。以下では、各ステップの情報処理の詳細な構成ないし変形例についても併せて説明する。
図11(a)、(b)、(c)は、図10の環境認識結果入力処理(S901)、平面上物体抽出処理(S902)、物体分離および照合処理(S903)のそれぞれのステップで処理される空間情報を模式的に示している。ここで、図11(a)〜(c)の処理対象は、主に環境入力装置501から入力された空間情報である。
図11(a)は、環境認識結果入力処理(図10のS901)時に環境入力装置501から入力された空間情報(800)で、同図では便宜上、図8の空間情報(800:環境認識結果)と同じ参照符号(800)を用いている。同図の平面850は、実環境の設置面650の環境認識結果である。
図11(b)は、図11(a)の空間情報800に平面上物体抽出処理(図10のS902)を加えた後の空間情報800aを示しており、図11(a)と比較すると平面850が除去されていることが判る。また、図11(b)の空間情報800aでは、複数の物体が点線(860)で囲んで示す認識物体群のように、1つの塊として認識されている。
図11(c)は、図11(b)の空間情報800aに物体分離および照合処理(図10の903)を加えた後の空間情報800bを示しており、点線で囲まれている単位で分離した物体(870〜875)として分離されている。なお、図11(c)において各物体の距離が離れているのは説明の簡略化のためであり、実際に各空間情報が移動したわけではない。
図12(a)、(b)は、物体分離および照合処理(図10のS903)の詳細を模式的に示している。図12(a)では、設計情報から予め作成した空間情報700(第1の辞書データ)に存在する物体(701、710〜712)が破線で示されている。物体分離および照合処理(図10のS903)において、空間情報700(第1の辞書データ)と照合することにより、これらの物体(701、710〜712)が分離される。
ただし、この例では、実線で示す2本のケーブルと、被作業物710から成る認識物体群860が空間情報700(第1の辞書データ)との照合で該当せず、まだ認識されていない。例えば被作業物710が、空間情報700(第1の辞書データ)上の設置位置と多少ずれた位置に置かれているような場合には、単純に空間情報700(第1の辞書データ)と照合するだけではヒットしない。
このような場合を想定して、空間情報700(第1の辞書データ)との照合を行う場合には、図12(b)に示すように許容範囲を含めたマッチング(照合)処理を行うことができる。図12(b)は、空間情報800中の被作業物710と認識物体群860のXY平面における形状を示している。
図12(b)では、被作業物710および認識物体群860は、矢印で示すようにXY方向の位置がずれている。このような場合でも、例えば、空間情報700(第1の辞書データ)と輪郭で比較を行い、輪郭の法線方向の距離が予め定めた閾値以下の場合は、予め作成された空間情報に存在する物体と判断することができる。もちろん、空間情報700(第1の辞書データ)中に対応する物体が存在しない場合は、該当なし、と判断する。なお、上記のような許容範囲を含めた輪郭比較によるマッチング(照合)処理の閾値は、ユーザが予め数値入力などにより指定しておくことができる。
なお、図12(b)では、XY平面における輪郭比較によるマッチング(照合)処理を示しているが、もちろん同様のマッチング(照合)処理はZX平面、ZY平面などについても実施できる。その場合、上記同様に許容範囲を含んでのマッチング(照合)処理を行うことができるのはいうまでもない。
図13(a)、(b)は、接続リスト照合処理(図10のS904)の詳細例を示している。接続リスト照合処理(図10のS904)は、物体分離および照合処理(同S903)後に、接続リスト900(第2の辞書データ:図9(b))を用いて行う環境認識処理である。上述のように、接続リスト900(第2の辞書データ:図9(b))は、図8の接続物(ケーブル:820、821)のように空間情報700(第1の辞書データ)に含まれない物体を環境認識することを想定して作成されている。
図13(a)は図9(a)と同様に、物体分離および照合処理(S903)において、空間情報800中の物体群(820、821)を示している。空間情報800中の環境認識すべき領域は6×4のグリッドに区画されている。
一方、図13(b)の820a、821aは、図9(b)に例示した接続リスト900(第2の辞書データ:図9(b))中で接続位置(905)および接続方向(906)の定義に該当する接続物(ケーブル:820、821)の配置領域である。配置領域820aおよび821aは、接続位置および接続方向(905、906)の定義に応じて接続物(ケーブル:820、821)が存在しうるグリッド中の領域となっている。
具体的には、配置領域820aおよび821aは、接続位置(905)のセルの、接続方向(906)に関して隣接するセルの並びとなっている。例えば、図9(b)の物体A〜Bを結ぶ接続物(ケーブル)の場合、セル(2、3)の左側、およびセル(4、2)の右側に並んだセル(3、3)およびセル(3、2)が配置領域820aとなる。
このような接続物(ケーブル:820、821)が存在しうる配置領域820aおよび821aは、接続位置および接続方向(905、906)の定義に応じてCPU(301)が予め計算によって作成しておくことができる。あるいは、CPU(301)の処理能力が充分あれば、接続リスト900(第2の辞書データ:図9(b))との照合を行う際にリアルタイムで配置領域820aおよび821aを生成してもよい。
そして、空間情報800中の物体と、接続リスト900(第2の辞書データ)とを照合(S904)する際、接続位置(905)および接続方向(906)だけではなく、配置領域820aおよび821aにおける物体の存在およびその連続性を判断する。これにより、その物体(820、821)が仮想環境用空間情報530に登録すべき空間情報か否かを自動的かつ確実に判定することができる。
なお、図13では、XY平面における配置領域820aおよび821aしか示していないが、例えば、YZ、XZのような平面についても、ケーブルのような物体の配置領域を定義できる。例えば、図9に関連して述べたように、接続リスト900に接続位置情報(905)に高さ方向(Z)の情報を記録しておく。そして、この高さ方向(Z)の情報を利用して上記同様に高さ方向(Z)を含んだ空間におけるケーブルのような物体の配置領域を定義し、仮想環境用空間情報530に登録することができる。
このように、本実施例の接続リスト900(第2の辞書データ:図9(b))を用いることにより、ケーブルのような物体の配置領域の定義を3次元(XYZ)の空間として定義できる。なお、3次元(XYZ)の空間の配置領域を例えば侵入禁止領域として定義する例については、後に図14で説明する。
図13の例では、物体(820、821)は接続リスト900(第2の辞書データ:図9(b))に含まれた接続物(ケーブル)であると判定され、接続物(ケーブル)を確実に仮想環境用空間情報530に登録することができる。
以上のように、本実施例によれば、環境入力装置501で図6のような設置環境600から得た空間情報において、予め設計情報から作成した空間情報700(図7:第1の辞書データ)に該当した物体を仮想環境用空間情報530に登録することができる。のみならず、例えばケーブルのような接続物を対象として用意した接続リスト900(第2の辞書データ:図9(b))に該当した物体も仮想環境用空間情報530に登録することができる。
そして、ロボット動作プログラム作成装置550により、仮想環境用空間情報530を用いて仮想環境をGUI表示し、GUIを介してロボットアームやワークを操作させ、その操作を介してロボット教示を行わせることができる。このため、ユーザは、仮想環境中の物体を直接操作するかのような快適かつ直観的なユーザーインターフェースを介して、迅速かつ確実にロボット装置100の動作をプログラム(教示)することができる。
このロボット教示時に用いられる仮想環境は、実際に環境入力装置501を用いて設置環境(図6の600)から得た空間情報に基づいて作成される。このため、実際に動作させるロボット装置およびその設置環境に即して正確に再現された仮想環境のGUI表示を生成することができ、誤差の少ない、正確な仮想環境を利用したロボットプログラミングを行うことができる。
ただし、仮想環境用空間情報530は、上記のようなユーザのインタラクティブな操作を介したロボットプログラミングのみに利用するものである必要はない。例えば、仮想環境用空間情報530を用いたロボット動作プログラム作成処理は、ユーザ操作を行うことなく、CPUによる何らかのアルゴリズムに基づき自動的に行われてもよい。
以上のように、本実施例1によれば、予め設計情報から作成した空間情報700(図7:第1の辞書データ)と、の照合処理のみならず、接続リスト900(第2の辞書データ:図9(b))との照合処理(接続リスト照合処理:図10のS904)も行なう。
即ち、環境入力装置501で得た空間情報1300(3Dデータ)と、空間情報700(第1の辞書データ)、接続リスト900(第2の辞書データ)との照合をそれぞれ試行する第1および第2の照合工程(S903、S904)を含む。そして、これら第1ないし第2の照合工程において、3Dデータ中で第1または第2の辞書データに該当する物体の3Dモデルを生成して3D仮想環境に配置する(出力処理工程:仮想環境用空間情報出力処理(S905))。
このため、予め作成した空間情報700(図7)に存在せず、環境認識した空間情報800(図8)に存在するケーブルのような接続物があった場合でも、その物体はCPUの自動的な処理によって、仮想環境用空間情報530に登録することができる。
ここで、図14を用いて本実施例1の作用効果の一例を説明する。図14(a)〜(c)は、ロボットアーム200が設置された実環境の設置面650を示している。
従来技術では、本実施例の接続リスト900(第2の辞書データ:図9(b))は用いられておらず、設計情報に基づき、CAD処理などにより、ロボットプログラミングのための仮想環境を作成していた。
上述のように、ケーブル等の接続物は、実際の配置形状などの予測が困難であり、CADなどによって空間情報を生成するのが難しい。このため、従来では、接続物(ケーブルなど)の物体については、ユーザが仮想環境上に図14(a)に示すように、仮想的障害物1000のような大きめの侵入禁止領域を登録することが行われていた。
ここで、図14(a)の仮想的障害物1000のような大きめの侵入禁止領域を登録すると、教示点p1からp2にロボットの手先を移動させる場合を考える。これら教示点は、例えばロボットアーム200の手先などに設定された基準位置(部位)の位置姿勢として定義される。
図14(a)に対応する仮想環境をGUI表示してロボット教示を行う場合、教示点p1からp2の間には、大きめに取られた仮想的障害物1000がある。仮想的障害物1000を回避させるためには、ユーザは教示点p1からp2の間に、教示点p3のような高い位置にある教示点を置く必要がある。教示点p1からp2の間に、教示点p3をプログラムすることにより、同図に1001で示すような手先の軌道が生成される。
これに対して、本実施例1では、図14(b)のような実環境に近い空間情報をユーザに提示できる。本実施例の接続リスト900(第2の辞書データ:図9(b))を用いる構成によれば、上述のようにケーブルのような物体の配置領域の定義を3次元(XYZ)の空間として定義できる。この3次元空間の配置領域を侵入禁止領域として仮想環境用空間情報530に登録することができる。
上述のように、接続リスト900(第2の辞書データ:図9(b))は、例えばケーブルの引き出し位置やコネクタ位置に基づき生成されている。このため、図13などに示したセル単位の空間演算によって、ごく現実的な最小の体積の3次元空間の配置領域を侵入禁止領域として仮想環境用空間情報530に登録することができる。
図14(b)の仮想的障害物1002は、上記のようにして接続リスト900(第2の辞書データ:図9(b))を用いて生成したものである。図14(b)の仮想的障害物1002は、図14(a)の仮想的障害物1000よりも小さな空間を占めるものとして生成できる。このため、ロボットアーム200の回避動作を定義する教示点p3は、図14(a)に比べて低い位置に設定することが可能となり、その結果として1003のような手先の軌道を得る。
このように、本実施例によれば、ロボットアーム200の手先を移動させるために、従来よりも短い軌道を作成することが可能となるため、ロボットの動作時間を短縮することができる。もし、本実施例のロボット装置が物品の製造(生産)環境に利用される場合には、本実施例の仮想環境プログラミングを利用することにより、タクトタイムの短縮が可能となり、効率的に工業製品などの物品の製造(生産)が可能となる。本実施例は、ケーブルのような物体が長く、どのように配置されるか不明で、特にロボットアーム200の進入禁止領域を大きく設定しなければいけないケースでの効果が高い、と考えられる。
例えば、図14(a)と図14(b)の比較では、設計での想定より実際はケーブルが低い位置に配置されたため、ロボットの動作時間は図15のように約8%程度、短縮できると考えられる。図15において、縦軸は特定のロボット動作に要する時間で、1501は従来(図14(a))方式による動作時間、1502は本実施例(図14(b))方式による動作時間に相当する。
なお、図14(b)では、侵入禁止領域を直方体で記述しているが、認識した接続物を太らせて、図14(c)の仮想障害物1004のような侵入禁止領域を生成することが考えられる。仮想障害物1004は、例えば環境入力装置501を用いて設置環境(図6の600)から得た空間情報中の物体(ケーブルのような接続物620)の輪郭を増幅(太く)することによって生成することができる。
上記実施例1の図14(b)において、仮想的障害物1002は、接続リスト900(第2の辞書データ:図9(b))を用いて生成するものとして説明した。
しかしながら、環境入力装置501が3Dカメラなどから構成されている場合、実際に設置環境(図6の600)から得た空間情報を用いて、3Dモデルを生成することができる。例えばこの3Dモデルの生成は、物体分離および照合処理(S903)によって分離した物体の空間情報を用いて行うことができる。
これにより、環境入力装置501で実際に設置環境(図6の600)から得た空間情報を用いて、接続物(例えばケーブル:図6の620、621)のような物体の現状の3Dモデルを生成できる。ここで、接続物(例えばケーブル)は接続リスト900(第2の辞書データ)のみに登録されており、形状情報は接続リスト900(第2の辞書データ)には含まれていない。
一方、ロボットアームや被作業物や治工具(図7の710〜712)については、設計情報(CADデータなど)から作成した空間情報700(図7:第1の辞書データ)を用いて物体の現状の3Dモデルを生成できる。
その場合、特に問題となるのは、被作業物や治工具(図7の710〜712)の位置が、作業規約や設計仕様と多少、異なる位置に配置されることに伴って、変形するケーブル(図6の620、621)に関する処理である。
本実施例2では、変形するケーブルのような物体の配置空間を仮想的障害物として取り扱う場合の処理例を示す。
図16(a)、(b)は、実環境のロボットアームの設置面650において、それぞれ異なる位置に配置された被作業物1100と、被作業物1101、および接続物(例えばケーブル)1102を示している。図16(a)、(b)では、被作業物1100がそれぞれ異なる位置に配置されており、これに伴なって接続物(例えばケーブル)1102が異なる形状に変形している。これに伴ない、仮想的障害物1103、1104として取り扱うべき、例えば直方体の接続物1102の配置空間の形状が異なったものとなっている。
このように、2つの異なるケースが生じる例としては、次のような状況が考えられる。例えば、図16(a)、(b)の仮想的障害物1103、1104の一方、例えば仮想的障害物1103(図16(a))が接続リスト900(第2の辞書データ:図9(b))を用いて図示のような形状で生成されているとする。
ところが、環境入力装置501で実際に得た空間情報を用いて、接続物(例えばケーブル)1102の3Dデータを生成すると、図16(b)のような形状であり、これに応じて仮想的障害物1104を図示のような形状で生成される。
また、何らかの事情で、2回(以上)、環境入力装置501で実際に得た空間情報を用いて、接続物(例えばケーブル)1102の3Dデータを生成し、その間に被作業物1100が移動されている場合にも、上記のような齟齬が生じる。
これら仮想的障害物1103、1104は、接続物(例えばケーブル)1102の占有空間であって、いずれも例えばケーブルの配置空間のXYZ方向の大きさを有する直方体形状として生成することができる。このような接続物(ケーブル)1102の占有空間、即ちロボット制御に関しては仮想的障害物(1103ないし1104)に相当する空間の3Dモデル生成は、図10の仮想環境用空間情報出力処理(S905)で実行することができる。
そして、もし、上記のように仮想環境用空間情報出力処理(S905)で、接続物(ケーブル)1102の変形の前後で、異なる占有空間(仮想的障害物1103ないし1104)が生成されていた場合、CPU(301)は、さらに次のような処理を行う。
図16(c)は、上記のようにして生成された接続物(例えばケーブル)1102の異なる仮想的障害物1103、1104を統合して新たな仮想的障害物1105を生成する処理の一例を示している。ここでは、CPU(301)は、接続物1102の変形の前後において接続物1102が占有している空間(1103、1104)を統合して得た占有空間の3Dモデルを生成する。そして、この統合により得た空間仮想的障害物1105として3D仮想環境(仮想環境用空間情報530)に配置する。
図16(c)の3次元形状に係る処理では、直方体形状の仮想的障害物1103、1104のX、Y、Z軸方向の(最大)サイズの最大値を用いて仮想的障害物1105の形状(直方体)を生成している。同様の形状演算による統合処理はCPU(301)によって、対象の仮想的障害物が3つ以上存在する場合にも適用することができる。
以上のように、接続物(例えばケーブル)1102の配置空間から複数の仮想的障害物1103、1104が生成された場合、例えば上記の3次元サイズの最大値演算などを利用して、それらを統合し仮想的障害物1105を生成することができる。生成した仮想的障害物1105は、侵入禁止領域として、仮想環境用空間情報530に登録することができる。このため、経時的に、あるいは接続リスト900(第2の辞書データ:図9(b))の作成時との状況の違いによって、接続物が変形する(可能性がある)場合にも対応できる。これにより、ロボットアームの侵入禁止領域を適切に設定することが可能となる。すなわち、本実施例によれば、環境入力装置501で実際に得た空間情報を統合することによって、より信頼性の高い仮想環境用空間情報530を生成して、ロボットプログラミングに用いることができる。本実施例2によれば、妥当性の高い仮想環境用空間情報530を生成することができ、ロボットアームの干渉などを生じることなく、信頼性の高いロボット制御を行える。
実施例1の図6に実環境のロボットアームの設置環境600の一例を示した。配置は、図7のように設計情報に基づき生成された空間情報700(図7:第1の辞書データ)と(接続物620、621を除き)一致している。図6では、ロボットアーム200の他、被作業物610や治工具611〜612(図6)がほぼ空間情報700(図7:第1の辞書データ)を照合すれば該当する位置に配置されている。
ところが、実際の設置環境(1200)では、図17に示すように、置き忘れ、作業ミスなどによって、図7の空間情報700(図7:第1の辞書データ)に存在する物体が欠けていることがある。このような置き忘れ、作業ミスは、被作業物が多い場合に設置忘れなどで起きがちである。
図17は、図8と同様に、環境入力装置501で実際に得た空間情報から環境認識した空間情報1200を示している。図8との違いは、被作業物812(図8)に対応する物体が存在しないことである。被作業物(812)は、置き忘れ、作業ミスなどによって、配置されておらず、空間情報1200には欠落している。図17では環境認識で測定されなかったこの物体を被作業物1212(破線)として示している。
また、図17のように環境認識された空間情報1200は、図7の空間情報700(図7:第1の辞書データ)に基づき、生成されたものである。また、図17では、接続リスト900(第2の辞書データ)により処理されるケーブルは不図示の状態である。
本実施例3は、図17のように、図7の空間情報700(図7:第1の辞書データ)を用いて環境認識を行なった場合に、生成された空間情報1200で、空間情報700にある物体が欠落していた場合の情報処理に関するものである。
図17の状態は、図7の空間情報700に存在する被作業物712が、実環境に配置されておらず、欠落している状態である。このような状態を想定して、図18に示すような制御手順が考えられる。
図18は、実施例1の図10の制御手順の変形例に相当し、図8との違いは設置漏れ判定(S908)、設置漏れ警告処理(S909)が、物体分離および照合処理(S903)と接続リスト照合処理(S904)の間に挿入してある点である。この設置漏れ判定(S908)および設置漏れ警告処理(S909)以外のステップは図10と同様であるため、以下では詳細な説明は省略する。
図18のステップS901〜S903では、図10と同様に環境入力装置501で実際に得た空間情報に対する環境認識を行う。特に、物体分離および照合処理(S903)では、環境入力装置501で実際に得た空間情報の物体分離を行い、さらに空間情報700(第1の辞書データ)を用いて、ロボットアームの設置面650に現状で設置されている物体の空間情報が生成される。
図18の設置漏れ判定(S908)では、物体分離および照合処理(S903)の結果を評価する。ここでは、物体分離および照合処理(S903)によって、空間情報700(第1の辞書データ)に含まれている物体が全て同定されているか否かを判定する。具体的には、物体分離および照合処理(S903)で物体毎に分離、照合し、環境認識(同定)した結果である空間情報1200(図17)と、予め作成した空間情報700を比較する。そして、予め作成した空間情報700に存在し、環境認識した空間情報1200に存在しない物体があるか否かを判定する。
図7の状態では、空間情報700に存在する被作業物712が、実環境に配置されていないため、設置漏れ警告処理(S909)実行されることになる。空間情報700に存在する被作業物712が、実環境に漏れなく配置されている場合には、ステップS908からS904へそのまま移行する。
設置漏れ警告処理(S909)では、文字情報表示や、音声表示によって、空間情報700(図7:第1の辞書データ)に存在し、環境認識した空間情報1200に存在しない物体がある、即ち設置漏れがある旨の警告情報をユーザに通知する。この時、例えば環境認識装置500に設けられているモニタ(ディスプレイ)などの表示出力装置や、音声出力装置を用いることができる。この時の表示ないし音声による警告メッセージとしては「被作業物xxxが設置されていません。ご確認願います」などが考えられる。また、この時、警告メッセージと同時に当該の物体近傍の画像や、空間情報から生成した当該の物体の3D画像などを表示してもよい。このようなダイアログを実行することにより、ユーザは置き忘れの被作業物や工具などを除去する、といった作業を行うことができる。
以上のように、本実施例3によれば、予め作成した空間情報700(図7:第1の辞書データ)に存在し、環境認識した空間情報1200に存在しない物体があった場合に、ユーザに警告を与えることによって、設置漏れを回避することができる。即ち、予め作成した空間情報700(図7:第1の辞書データ)に含まれている物体が3Dデータ取得装置によって取得した3Dデータ中に存在しなかった場合、ユーザにその旨を警告する警告情報を通知する。これにより、仮想環境用空間情報530への登録漏れが回避され、プログラミング時に存在すべき物体を欠いたまま、実用できないロボット教示データが作成されてしまう、などの障害を回避することができる。
本実施例4では、実施例3とは逆に、作成した空間情報700(図7:第1の辞書データ)に存在しない物体が環境認識した空間情報に存在している場合の処理につき述べる。
図19は、図8と同様に、環境入力装置501で実際に得た空間情報から環境認識した空間情報1300を示している。図8との違いは、(ハンマーのような)物体1313が存在することである。
ここで、図7の空間情報700(図7:第1の辞書データ)には、物体1313は含まれていないものとする。一方、図19の空間情報1300は、図7の空間情報700(図7:第1の辞書データ)との照合により、設置面1350に配置されたロボットアーム1301、被作業物1310〜1312の3Dデータが生成されている。同時に、図19の空間情報1300では、物体分離処理(図10のS903)で分離された物体のうち未照合の(照合により同定できなかった)物体1313の空間情報が含まれている。
また、この図19の(ハンマーのような)物体1313は、実施例1の接続物(ケーブルなど)とは異なり、接続リスト900(第2の辞書データ)にも含まれていない。このようなケースは組立環境に置き忘れの工具があった場合や、もしくは事前の設計では想定していない新しい被作業物が追加された場合などで生じることがある。
本実施例4は、図19のように、空間情報700(図7:第1の辞書データ)、および接続リスト900(図9:第2の辞書データ)のいずれにも含まれていない物体が存在する場合の情報処理に関するものである。このような状態を想定して、図20に示すような制御手順が考えられる。
図20は、実施例1の図10の制御手順の変形例に相当し、図8との違いは障害物判定(S910)および障害物警告処理(S911)が接続リスト照合処理(S904)と仮想環境用空間情報出力処理(S905)の間に挿入してある点である。この接続リスト照合処理(S904)と仮想環境用空間情報出力処理(S905)以外のステップは図10と同様であるため、以下では詳細な説明は省略する。
図10に関して述べたように、図20のステップS901〜S904では、CPU(301)は、環境入力装置501で実際に得た空間情報を空間情報700(図7:第1の辞書データ)、および接続リスト900(図9:第2の辞書データ)と照合する。
そして、障害物判定(S910)では、環境入力装置501で得た空間情報(1300)に、空間情報700(図7:第1の辞書データ)、接続リスト900(図9:第2の辞書データ)のいずれにも含まれていない物体(障害物)が存在するか否かを判定する。もし、環境入力装置501で得た空間情報1300にこのような物体が存在する場合には、それは障害物であるとして障害物警告処理(S911)に移行し、存在しない場合にはそのまま仮想環境用空間情報出力処理(S905)に移行する。
障害物警告処理(S911)では、文字情報表示や、音声表示によって、空間情報700にも、接続リスト900にも存在しない物体が環境認識した空間情報1300に存在する、即ち障害物がある旨の警告情報をユーザに通知する。この時、例えば環境認識装置500に設けられているモニタ(ディスプレイ)などの表示出力装置や、音声出力装置を用いることができる。この時の表示ないし音声による警告メッセージとしては「未確認の物体(環境認識できない物体)があります。ご確認願います」などが考えられる。また、より明示的に「障害物があります」、あるいはさらに「障害物があります。除去して下さい」といった作業指示を含む警告メッセージを発生してもよい。これに応じて、ユーザは、表示された障害物が組み立て環境に不要な物であれば取り除く、などの作業を行うことができる。
なお、本実施例の処理は、上記実施例3の設置忘れの処理と両立できる。即ち、図18と図20のフローは組合せることができ、ステップS908、S909およびS910、S911の両方を同じ制御手順の中に実装することができる。
以上のように、本実施例4によれば、空間情報700にも、接続リスト900にも存在しない物体1313が環境入力装置501で得た空間情報1300に存在する、即ち障害物がある場合には、その旨の警告情報を発生できる。
即ち、本実施例4によれば、環境入力装置501で得た空間情報1300(3Dデータ)と、空間情報700(第1の辞書データ)、接続リスト900(第2の辞書データ)と、の照合をそれぞれ試行する第1および第2の照合工程を含む。そして、これらの工程で、環境入力装置501で得た空間情報1300(3Dデータ)中に前記第1および第2の辞書データのいずれにも該当しない未照合の物体が含まれている場合、ユーザにその旨を警告する警告情報を通知する。
これにより、ユーザに(おそらくは)障害物である物体を現場から除去させることができ、仮想環境用空間情報530に登録した空間情報のみを用いてロボット教示を行っても、ロボットアームと当該の物体が干渉する、などの障害を回避できる。
上記の実施例4では、設計情報などから作成された空間情報700にも、接続リスト900にも存在しない物体が環境入力装置501で得た空間情報1300に存在する、即ち障害物がある場合には、警告情報を発生する例を示した。
実施例4の制御は、空間情報700にも、接続リスト900にも存在しない物体は障害物である、という認識に基づく。しかしながら、作業規約の変更や仕様変更などによって、事前の設計では想定していない新しい被作業物が追加される場合などがあり、一方、そのような変更に対応して空間情報700(あるいは接続リスト900)が更新されていない場合もあり得る。
このような事態まで想定すると、空間情報700にも、接続リスト900にも存在しない物体を直ちに(除去すべき)障害物である、と判定して警告するだけでは、充分ではない場合もあり得る。
そこで、作業規約の変更や仕様変更などによる被作業物などの物体の追加と、空間情報700(あるいは接続リスト900)の更新が同期していないようなケースまで想定すると、そのような場合にはユーザへ問い合せるのが望ましい場合も考えられる。その場合、例えば、少なくともその物体を仮想環境用空間情報530に登録するか否かをユーザに問い合せる制御を行う。
図21は、図19と同様に環境認識した空間情報1400を示している。図19との違いは、物体1313の代わりに物体1414が存在することである。本実施例の物体1414は(置き忘れのハンマーのような)物体1313ではなく、例えば作業規約の変更や仕様変更などによって追加された被作業物(ワークなど)である。
ここで、図7の空間情報700(図7:第1の辞書データ)は、例えば物体1414の追加に伴う更新が追いついておらず、空間情報700には物体1414は含まれていないものとする。一方、図21の空間情報1400は、図7の空間情報700(図7:第1の辞書データ)との照合により、設置面1450に配置されたロボットアーム1401、被作業物1410〜1412の3Dデータが生成されている。同時に、図21の空間情報1400では、物体分離処理(図10のS903)で分離された物体のうち未照合の物体1414の空間情報が含まれている。
また、この図21の物体1414は、実施例1の接続物(ケーブルなど)とは異なり、接続リスト900(第2の辞書データ)にも含まれていない。
しかしながら、物体1414は、単なる置き忘れの工具などではなく、上記のようにロボットアーム1401で行う作業工程で必要な被作業物である場合も想定される。従って、そのような場合も想定すれば、物体1414の空間情報が認識された場合には、ユーザへ問い合せるのが望ましい。
このような物体1414に関するユーザへの問い合せを行うには、例えば上記実施例4の図20の制御手順を次のように修正すればよい(以下で説明する以外のステップについては、上述同様であるから、それらについては上記実施例4を参照されたい)。
上記のような物体1414は、空間情報700にも、接続リスト900にも存在しない物体であるから、図20のステップS910の判定は「障害物有」の結果となり、ステップS911への分岐が生じる。
本実施例5の場合には、ステップS911の障害物警告処理では、単に障害物の存在(あるいはその除去の示唆など)を警告するに留まることなく、例えば仮想環境用空間情報530への登録を行うか否かを問い合せる。その場合、例えば環境認識装置500のモニタ(ディスプレイ)などの表示出力装置や、音声出力装置を用いて、仮想環境用空間情報530への登録を行うか否かを問い合せるダイアログを実行し、ユーザ応答を取得する。その場合のダイアログメッセージとしては、「未確認の物体(環境認識できない物体)があります。ロボット教示のための仮想環境に登録しますか?」のようなものが考えられる。
また、「ロボット教示のための仮想環境に登録する場合はOKボタンを、登録せず物体を除去する場合はNOボタンを操作してください」のようなダイアログメッセージを用いてもよい。その場合、マウスなどのポインティングデバイス(あるいはキーボード)によりユーザに応答操作を行わせることになる。
ステップS911において、以上のようなユーザーインターフェースを実施することにより、ユーザはダイアログ応答によって、物体1414を仮想環境用空間情報530への登録を行うか否かを決定できる。その他の制御、および変形例などについては上記実施例4と同様であり、ここでは説明を省略する。
以上のように、本実施例5によれば、空間情報700にも、接続リスト900にも存在しない物体1414が環境入力装置501で得た空間情報1400(3Dデータ)に存在する場合、問い合せを行うことができる。この問い合せでは、例えば、仮想環境用空間情報530への登録を行うか否かを問い合せる。
即ち、本実施例5によれば、空間情報700(第1の辞書データ)、接続リスト900(第2の辞書データ)との照合をそれぞれ試行する第1および第2の3Dモデル生成工程を含む。そして、これらの工程で、環境入力装置501で得た空間情報1400(3Dデータ)中に前記第1および第2の辞書データのいずれにも該当しない未照合の物体が含まれている場合、ユーザに問い合せのユーザーインターフェース工程を実行する。このユーザーインターフェース工程では、未照合の物体の3Dモデルを生成して3D仮想環境(仮想環境用空間情報530)へ配置するか否かをユーザに問い合せる。
これにより、未照合の物体1414がロボット作業に必要な、例えば被作業物であれば、ユーザは仮想環境用空間情報530に物体1414の空間情報を追加し、それを用いて必要なロボット教示を行える。また、物体1414が例えば置き忘れの工具などであれば、上記実施例4と同様に、例えば設置面1450から除去させる作業を促すことができる。
なお、以上では、ステップS911において実施するダイアログは、仮想環境用空間情報530への登録を行うか否かを問い合せるものとして説明した。これに加えて、あるいはさらに環境入力装置501で得た物体1414の空間情報から必要な情報を抽出して、空間情報700(あるいは接続リスト900)に追加登録する制御を行うことも考えられる。そのような追加登録を実施するか否かを問い合せるユーザーインターフェースは上記と同様に実施することができる。
本実施例では、上記実施例1の図9(b)で説明した接続リスト900の異なる構成(図22(b)の900a)を示す。
図22(a)、(b)は、実施例1の図9(a)、(b)と同等の様式の図示である。図22(a)は、図9(a)と同等で、図7の設計情報から得た空間情報700を上方から俯瞰した状態で示したものである。図22(a)の物体A〜D(901〜904)は、図9(a)と同等で、物体A,B(901、902)およびC(903)が図7の被作業物710〜712に対応し、D(904)がロボットアーム701に対応している。また、破線で示すように、物体A,B(901、902)間、および物体C,D(903、904)間を接続するケーブルの接続態様も図9(a)と同等である。
上記のようなロボット設置環境において、図22(a)では、さらに(ハンマー様の)障害物1500が配置されている状態が図示されている。図22(a)の障害物1500は、図示のように物体C,D(903、904)間を接続するケーブル上に重ねて配置されている。
実施例1で説明した接続リスト900(図9(b))は、上述のように、主として接続位置情報(905)、および接続方向に関する情報(906)によって構成されており、接続物(ケーブルなど)の形状ないしサイズに関する情報を含まない。
このため、図22(a)の障害物1500のように、物体の伸びる方向や姿勢が接続位置情報(905)や接続方向に関する情報(906)に類似していると、誤認識の可能性は否めない。
例えば図22(a)のような姿勢で障害物1500が接続物(破線:ケーブル)と重なっているような場合を考える。その場合、図9(b)の接続位置情報(905)および接続方向に関する情報(906)と照合すると、同図の2ライン目の物体C、Dを接続する接続物に該当してしまう可能性がある。
このようなケースを考慮して、図22(b)のような接続リスト900aの構成が考えられる。図22(b)の接続リスト900aは、図9(b)の接続位置情報(905)および接続方向に関する情報(906)に加えて物体の体積に関する情報907、および物体のアスペクト比に関する情報908が追加されている。
図22(b)の接続リスト900aは、図22(a)の接続物(ケーブル)を定義したもので、接続位置情報(905)および接続方向に関する情報(906)の値は図9(b)のものと同等である。
物体の体積に関する情報907、および物体のアスペクト比に関する情報908は、設置環境に配置される接続物(ケーブル)の寸法やサイズに応じて決定されている。物体の体積に関する情報907は、同図中の左側のフィールドにm3(メートル3乗)の単位で定義されている。また、物体のアスペクト比に関する情報908は、同図中の左側の3つのフィールドに例えば各座標軸方向のサイズの比率(X/Y、X/Z、Y/Z:単位なし)によって定義されている。また、これらの情報907、908の右側のフィールドには、体積値およびサイズ比率に関する許容誤差が定義されている。
図22(b)の物体の体積に関する情報907、および物体のアスペクト比に関する情報908の各フィールドの値は、接続物(ケーブル)のような物体の表現である。これらの情報907、908の値は、接続物(ケーブル)のような物体を同定でき、一方、例えば(ハンマー様の)障害物1500とは一致(照合該当)しないよう考慮されている。
図22(b)の接続リスト900aとの照合は、図10(実施例1)または図20(実施例4、5)の接続リスト照合処理(S904)で行うことができる。その場合、照合には、物体分離処理(図10のS903)で分離されたもののうち未照合の物体(1500)の空間情報(3Dデータ)が用いられる。接続位置(905)、および接続方向(906)の情報との照合は、CPU(301)によって、実施例1で述べたのと同様に実行される。
また、同様に物体(1500)の空間情報(3Dデータ)から、CPU(301)は、その物体の体積および各軸方向のアスペクト比を計算する。そして、算出された物体(1500)の体積および各軸方向のアスペクト比と、物体の体積に関する情報907、および物体のアスペクト比に関する情報908を比較する。この比較では、情報907、908に定義されている許容範囲内の差異は許容される。
そして、情報(905、906、907および908)の照合が全て該当している場合に、接続リスト照合処理(S904)は検索成功(ヒット:該当)と判断する。なお、図10(実施例1)または図20(実施例4、5)における他のステップは、前述同様に実行することができる。
上記の通り、図22(b)のように接続リスト900aを構成しておき、上記のような照合処理(図10、図20のS904)を行う。これにより図22(a)のように接続物(ケーブル)の中央に重なって配置されているような障害物1500が誤認識されてしまうのを防止できる。従って、接続リスト900aによって、意図したケーブルのような接続物のみを照合該当あり、として仮想環境用空間情報530に登録させることができる。
また、接続リスト900aとの照合(S904)で該当なし、と判定された場合は、実施例4、5の構成であれば、上述の障害物に関する警告ないし問い合せ処理を確実に実行することができる。
以上のようにして、本実施例6によれば、接続リスト900a(第2の辞書データ)に、設置環境に配置される可能性のある接続物のような物体に関して、その物体の形状ないしサイズ情報を含めている。特に、設置環境に配置される可能性のある接続物のような物体に関して、その物体の体積または、アスペクト比、あるいは、これらに関する許容誤差情報を含めている。このため、接続物(ケーブル)の中央に重なって配置されているような障害物(1500)が誤認識されてしまうのを防止できる。従って、接続リスト900a(第2の辞書データ)によって、意図したケーブルのような接続物のみを照合該当あり、として仮想環境用空間情報530に登録させることができる。
このため、本実施例6によれば、実際のロボット設置環境を高信頼度で再現した仮想環境用空間情報530を得ることができ、これを用いて正確かつ確実なロボット教示(プログラミング)を行うことができる。
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステムまたは装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
100…ロボット装置、200…ロボットアーム(多関節ロボット)、201〜206…アクチュエータ、211〜216…電動モータ、221〜226…減速機、230…サーボ制御装置(駆動制御部)、300…ロボット制御装置、330…プログラム、500…環境認識装置、501…環境入力装置、520…空間情報、522…記録ディスク(記録媒体)、530…仮想環境用空間情報、532…記録ディスク(記録媒体)、550…ロボット動作プログラム作成装置、570…ロボット動作プログラム、580…記録ディスク(記録媒体)。

Claims (17)

  1. 生産装置の設置環境から3Dデータ取得装置によって取得した3Dデータを用いて制御装置が前記設置環境に設置された物体の3Dモデルを生成して前記生産装置の設置環境に対応する3D仮想環境に配置する仮想環境作成方法において、
    前記制御装置が、前記3Dデータ取得装置によって取得した3Dデータと、前記設置環境に配置される物体の形状情報を含む第1の辞書データと、を照合する第1の照合工程と、
    前記制御装置が、前記3Dデータ取得装置によって取得した3Dデータと、前記設置環境に配置される物体へ接続される柔軟物に関する情報を含む第2の辞書データと、を照合する第2の照合工程と、
    前記制御装置が、前記第1または第2の照合工程に基づき、前記設置環境に配置されている物体の3Dモデルを生成して前記3D仮想環境に配置する出力処理工程と、を含み、
    前記第2の辞書データは、前記設置環境に配置される物体に対して前記柔軟物が接続される位置または方向の少なくとも一つを有する接続特性情報を含み、前記制御装置は、前記第2の照合工程において、前記3Dデータ取得装置によって取得した3Dデータと、前記接続特性情報と、を照合することを特徴とする仮想環境作成方法。
  2. 請求項1に記載の仮想環境作成方法において、前記第1の辞書データに、前記生産装置の設計情報に基づき作成されたデータが含まれることを特徴とする仮想環境作成方法。
  3. 請求項1または2に記載の仮想環境作成方法において、前記制御装置は、前記出力処理工程において、前記設置環境に前記柔軟物に対応する3Dモデルを生成する場合、その変形の前後において前記柔軟物が占有している空間を統合して得た占有空間の3Dモデルを生成し、前記3D仮想環境に配置することを特徴とする仮想環境作成方法。
  4. 請求項1または2に記載の仮想環境作成方法において、前記第2の辞書データに、前記設置環境に配置される可能性のある物体、または物体どうしを接続する前記柔軟物に関して、前記物体または前記柔軟物の体積または、アスペクト比、あるいは、これらに関する許容誤差情報が含まれることを特徴とする仮想環境作成方法。
  5. 請求項1からのいずれか1項に記載の仮想環境作成方法において、前記第1の辞書データに含まれている物体が前記3Dデータ取得装置によって取得した3Dデータ中に存在しなかった場合、前記制御装置がユーザにその旨を警告する警告情報を通知することを特徴とする仮想環境作成方法。
  6. 請求項1からのいずれか1項に記載の仮想環境作成方法において、前記3Dデータ取得装置によって取得した3Dデータに、前記第1および第2の照合工程において、前記3Dデータに前記第1および第2の辞書データのいずれにも該当しない未照合の物体が含まれている場合、前記制御装置がユーザにその旨を警告する警告情報を通知することを特徴とする仮想環境作成方法。
  7. 請求項に記載の仮想環境作成方法において、前記警告情報の通知の後、前記制御装置が、前記未照合の物体の3Dモデルを生成して前記3D仮想環境へ配置するか否かをユーザに問い合せるユーザーインターフェース工程を含むことを特徴とする仮想環境作成方法。
  8. 請求項1からのいずれか1項に記載の仮想環境作成方法おいて、前記生産装置が多関節のロボット装置であり、前記ロボット装置の設置環境から3Dデータ取得装置によって取得した3Dデータを用いて前記制御装置が前記設置環境に設置された物体の3Dモデルを生成して前記ロボット装置の設置環境に対応する3D仮想環境に配置することを特徴とする仮想環境作成方法。
  9. 請求項1からのいずれか1項に記載の仮想環境作成方法において、前記柔軟物がケーブルであることを特徴とする仮想環境作成方法。
  10. 請求項1からのいずれか1項に記載の仮想環境作成方法において、前記出力処理工程では、表示装置に前記3D仮想環境を出力することを特徴とする仮想環境作成方法。
  11. 請求項1から10に記載の仮想環境作成方法によって作成された前記3D仮想環境を用いてロボット装置のロボット制御プログラムを作成することを特徴とするロボット装置の制御方法。
  12. 請求項11に記載のロボット装置の制御方法において、前記ロボット制御プログラムに従って、前記ロボット装置の設置環境において前記ロボット装置を動作させることを特徴とするロボット装置の制御方法。
  13. 請求項11に記載の前記ロボット制御プログラムに従って、前記ロボット装置の設置環境において前記ロボット装置を動作させ、前記ロボット装置により物品を製造することを特徴とする物品の製造方法。
  14. 請求項11から13のいずれか1項に記載の前記ロボット装置および前記制御装置を含むことを特徴とするロボットシステム。
  15. 請求項1から10のいずれか1項に記載のロボット装置の制御方法の前記各工程を前記制御装置に実行させることを特徴とする仮想環境作成プログラム。
  16. 請求項15に記載の仮想環境作成プログラムを格納したことを特徴とするコンピュータ読み取り可能な記録媒体。
  17. 生産装置の設置環境に対応する3D仮想環境を生成して表示装置に表示させる情報処理装置であって、
    前記生産装置の設置環境から3Dデータ取得装置によって3Dデータを取得する取得手段と、
    取得された前記3Dデータと、前記設置環境に配置される物体の形状情報を含む第1の辞書データと、を照合する第1の照合手段と、
    前記3Dデータ取得装置によって取得した3Dデータと、前記設置環境に配置される物体へ接続される柔軟物に関する情報を含む第2の辞書データと、を照合する第2の照合手段と、
    前記第1または第2の照合手段による照合結果に基づき、前記設置環境に配置されている物体の配置を示す3D仮想環境を前記表示装置に出力する出力手段と、を含み、
    前記第2の辞書データは、前記設置環境に配置される物体に対して前記柔軟物が接続される位置または方向の少なくとも一つを有する接続特性情報を含み、前記第2の照合手段は、前記3Dデータ取得装置によって取得した3Dデータと、前記接続特性情報と、を照合することを特徴とする情報処理装置。
JP2015156175A 2015-08-06 2015-08-06 仮想環境作成方法、ロボット装置の制御方法、ロボットシステム、および情報処理装置 Active JP6643000B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015156175A JP6643000B2 (ja) 2015-08-06 2015-08-06 仮想環境作成方法、ロボット装置の制御方法、ロボットシステム、および情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015156175A JP6643000B2 (ja) 2015-08-06 2015-08-06 仮想環境作成方法、ロボット装置の制御方法、ロボットシステム、および情報処理装置

Publications (3)

Publication Number Publication Date
JP2017035739A JP2017035739A (ja) 2017-02-16
JP2017035739A5 JP2017035739A5 (ja) 2018-11-22
JP6643000B2 true JP6643000B2 (ja) 2020-02-12

Family

ID=58048696

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015156175A Active JP6643000B2 (ja) 2015-08-06 2015-08-06 仮想環境作成方法、ロボット装置の制御方法、ロボットシステム、および情報処理装置

Country Status (1)

Country Link
JP (1) JP6643000B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107263449B (zh) * 2017-07-05 2020-01-10 中国科学院自动化研究所 基于虚拟现实的机器人远程示教***
CN109255813B (zh) * 2018-09-06 2021-03-26 大连理工大学 一种面向人机协作的手持物***姿实时检测方法
JP2023506141A (ja) * 2019-12-18 2023-02-15 カール ツァイス メディテック インコーポレイテッド 眼科デバイスのための個人化患者インタフェース
JP2022186476A (ja) * 2021-06-04 2022-12-15 パナソニックIpマネジメント株式会社 情報処理装置、情報処理方法、及び、コンピュータプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11296218A (ja) * 1998-04-09 1999-10-29 Hitachi Ltd ロボットのオフライン教示方法
JP5448326B2 (ja) * 2007-10-29 2014-03-19 キヤノン株式会社 把持装置および把持装置制御方法

Also Published As

Publication number Publication date
JP2017035739A (ja) 2017-02-16

Similar Documents

Publication Publication Date Title
US20200338730A1 (en) Trajectory planning device, trajectory planning method and program
EP3166084B1 (en) Method and system for determining a configuration of a virtual robot in a virtual environment
CN106873550B (zh) 模拟装置以及模拟方法
JP6643000B2 (ja) 仮想環境作成方法、ロボット装置の制御方法、ロボットシステム、および情報処理装置
US8879822B2 (en) Robot control system, robot system and program
US11135720B2 (en) Method and system for programming a cobot for a plurality of industrial cells
US20130054030A1 (en) Object gripping apparatus, object gripping method, and object gripping program
Pang et al. Assembly feature design in an augmented reality environment
JP2014024162A (ja) ロボットシステム、ロボット制御装置、ロボット制御方法及びロボット制御プログラム
JP5113666B2 (ja) ロボット教示システム及びロボットの動作のシミュレーション結果の表示方法
JP7376268B2 (ja) 三次元データ生成装置及びロボット制御システム
JP2015071206A (ja) 制御装置、ロボット、教示データ生成方法及びプログラム
Gu et al. Automated assembly skill acquisition and implementation through human demonstration
US10406688B2 (en) Offline programming apparatus and method having workpiece position detection program generation function using contact sensor
US20240075629A1 (en) Autonomous welding robots
KR102284015B1 (ko) 로봇 제어 프로그램 생성 방법 및 장치
KR20180076966A (ko) 용접로봇의 작업대상물 용접선 검출방법
Nigro et al. Assembly task execution using visual 3D surface reconstruction: An integrated approach to parts mating
JP2015085450A (ja) ロボット制御システム、ロボット、プログラム及びロボット制御方法
Li et al. Digital twin model-based smart assembly strategy design and precision evaluation for PCB kit-box build
US20230141971A1 (en) Method and device for collision avoidance during workpiece processing by a multi-axis processing machine
CN114845843A (zh) 程序生成装置、程序生成方法以及生成程序
JP2021084218A (ja) 情報提示装置、情報提示方法、及び情報提示プログラム
JP2023505322A (ja) ロボットをプログラムするための方法及びシステム
WO2017032407A1 (en) An industrial robot system and a method for programming an industrial robot

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180803

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181005

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190716

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190718

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190906

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200106

R151 Written notification of patent or utility model registration

Ref document number: 6643000

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151