以下、添付図面を参照して本発明の実施形態を説明する。図示される実施形態の構成要素は、本発明の理解を助けるために寸法が適宜変更されている。また、同一又は対応する構成要素には、同一の参照符号が使用される。
図1は、一実施形態に係るロボットシステム10の全体構成図である。ロボットシステム10は、ロボット1と、ロボット1を制御するロボット制御装置2と、ロボット1によって順次取出される対象物3の上方に設置された視覚センサ4と、を備えている。ロボットシステム10は、複数の対象物3の位置を表す情報を視覚センサ4によって検出し、検出された情報に基づいて、ロボット1によって対象物3を1つずつ取出経路に従って取出すように構成されている。
ロボット1は、複数の関節軸をそれぞれ駆動するモータ13と、アーム12の末端に装着された把持装置11と、を備えている。図1においては、幾つかのモータ13のみが視認可能である。各々のモータ13は、把持装置11が所望の位置及び姿勢を有するように、ロボット制御装置2から送信される制御指令に従って駆動される。把持装置11は、ロボット制御装置2から送信される制御指令に従って開閉する爪14を有しており、それら爪14によって対象物3を開放可能に把持できる。
図示されるロボット1は垂直多関節ロボットであるものの、対象物の搬送を実行できる他の任意の構成を有するロボットが用いられてもよい。例えば、ロボットシステム10は、移動機構、平行リンク機構又は直動機構を有するロボットを備えていてもよい。
図2A及び図2Bを参照して、ロボット1の制御に利用される座標系について説明する。ロボット1には、ロボット1の動作及び視覚センサ4の計測の基準になるロボット座標系R0が予め定義されている。また、ロボット1のアーム12の先端点、すなわち把持装置の取付箇所には、アーム座標系T0が定義される。ロボット1の機構パラメータに基づいて、アーム座標系T0とロボット座標系R0との間の位置関係が求められることは公知である。
本明細書において、「ロボットの位置」とは、アーム12に取付けられるツール(把持装置11)の先端に設定されるツール先端点(TCP)RPの位置を意味する。前述したように、アーム座標系T0とロボット座標系R0との間の位置関係は既知である。したがって、アーム座標系T0におけるツール先端点RPの位置が分かれば、ロボット座標系R0におけるツール先端点RPの位置は計算により求められる。アーム座標系T0におけるツール先端点RPの位置は、把持装置11のCADデータから計算により求められてもよいし、又は3次元測定器によって計測して求められてもよい。ツール先端点RPは、必要に応じて把持装置11の先端から離間した位置に設定されてもよい。
再び図1を参照すれば、視覚センサ4は、台座5の平坦な上面に載置されている複数の対象物3を検出可能な位置において、架台41によって固定されている。破線43は、視覚センサ4のカメラの視野を表している。本実施形態において、対象物3は、ロボット1の可動範囲内において、互いに重なり合わないように配置されている。視覚センサ4は、対象物3を検出可能であれば任意の位置に設けられていてもよい。視覚センサ4を固定する固定手段も図示された例に限定されない。一実施形態において、視覚センサ4は、ロボット1のアーム12の末端に取付けられていてもよい。
視覚センサ4は、ロボット座標系R0に対して予めキャリブレーションされている。したがって、視覚センサ4によって取得された画像における任意の部位の位置は、画像処理装置42の不揮発性メモリに記憶されたキャリブレーションデータに基づいて、ロボット座標系R0における位置に変換可能である。キャリブレーション方法は特に限定されないものの、例えば特許文献4に記載された公知技術を用いることができる。
視覚センサ4によって取得された画像データは、画像処理装置42に入力される。画像処理装置42は、画像データを処理し、各々の対象物3の位置を検出する。画像データから対象物3の二次元位置情報を検出できれば、対象物3の位置を検出するための画像処理方法は特定の方法に限定されない。例えば、画像処理装置42は、正規化相関を利用したテンプレートマッチングによって対象物3の位置を検出できる。
また、画像処理装置42は、視覚センサ4によって取得された画像データに複数の対象物3が含まれる場合、各々の対象物3の取出順序を決定する。一実施形態において、画像処理装置42は、テンプレートマッチングにおける相関値が高い順番に対象物3が取出されるように取出順序を決定する。
別の実施形態において、画像処理装置42は、画像上の対象物3の位置又はロボット座標系R0における対象物3の位置に応じて、対象物3の取出順序を決定する。例えば、ロボット座標系R0におけるX軸の値が大きい順番に対象物3が取出されるように取出順序が決定されてもよい。
画像処理装置42による画像処理の結果はロボット制御装置2に送信される。画像処理装置42は、汎用のコンピュータであってもよいし、専ら画像処理のために構成されたデバイスであってもよい。或いは、画像処理装置42は、ロボット制御装置2に内蔵されていてもよい。
ロボット制御装置2は、CPU、ROM、RAM、揮発性メモリなどの公知のハードウェア構成を有するデジタルコンピュータである。ロボット制御装置2は、外部機器との間でデータ及び信号を送受信するためのインターフェイスを備えており、入力デバイス又は表示デバイス、外部記憶装置などと必要に応じて接続される。
図3は、ロボット制御装置2の機能ブロック図である。ロボット制御装置2は、取出順序に従ってロボット1によって取出されるべき目標対象物31(図5参照)を選択するとともに、他の対象物32に干渉することなく目標対象物31を取出すようにロボット1を制御する。図示された実施形態に係るロボット制御装置2は、目標対象物選択部21と、近接状態判定部22と、回避ベクトル決定部23と、取出経路補正部24と、取出動作実行部25と、を備えている。
目標対象物選択部21は、視覚センサ4によって検出される情報に基づいて、ロボット1によって取出される目標対象物31を選択する。目標対象物31は、対象物3のうち、ロボット1によって取出されるべき対象物である。目標対象物31は、所定の取出順序に従って順次選択される。従って、目標対象物選択部21は、視覚センサ4によって取得された画像データの画像処理の結果として画像処理装置42から出力される信号に従って目標対象物31を選択する。
近接状態判定部22は、視覚センサ4によって検出される情報に基づいて、目標対象物31以外の対象物32が、目標対象物31に近接して配置されているか否かを判定する。
回避ベクトル決定部23は、近接状態判定部22によって、少なくとも1つの対象物32が目標対象物31に近接して配置されていると判定された場合に、視覚センサ4によって検出される情報に基づいて、回避ベクトルを決定する。回避ベクトルは、ロボット1によって目標対象物31を取出す際に、目標対象物31に近接する対象物32との干渉が起きないように決定される。回避ベクトルは、目標対象物31及び他の対象物32が載置された平面に対して平行な回避方向と、回避量と、によって定められる。
取出経路補正部24は、回避ベクトル決定部23によって決定される回避ベクトルに基づいて、他の対象物32との干渉が起きないように、目標対象物31を取出す際の取出経路を補正した補正経路を作成する。
取出動作実行部25は、ロボット1を制御して、目標対象物31を所定の経路に従って取出す。本実施形態によれば、取出動作実行部25は、近接状態判定部22によって目標対象物31に近接して配置されている他の対象物32がないと判定された場合、プログラムによって指定される取出経路に従って目標対象物31を取出す。取出経路を指定するプログラムは、ロボット制御装置2の不揮発性メモリ又は外部記憶装置に記憶されている。
他方、近接状態判定部22によって少なくとも1つの対象物32が目標対象物31に近接して配置されていると判定された場合には、取出動作実行部25は、取出経路補正部24によって作成された補正経路に従って目標対象物31を取出す。
図4は、一実施形態に係るロボットシステム10において実行される処理を示すフローチャートである。ロボット制御装置2が、対象物3の取出工程を開始する開始信号を受信すると、ステップS401〜S410の処理が開始される。ステップS401において、視覚センサ4によって、台座5に載置されている複数の対象物3の画像データを取得する。1つの対象物3のみが検出された場合、後述するステップS402〜S410の処理を実行する必要はない。したがって、その場合、ロボットシステム10は、予め定められるプログラムに従って、ロボット1によって対象物3を取出す。
複数の対象物3が検出された場合、ステップS402に進み、視覚センサ4によって取得された画像データを画像処理装置42によって処理し、対象物3の取出順序を決定する。
ステップS403では、目標対象物選択部21が、ステップS402において決定された取出順序に従って、複数の対象物3のうち、ロボット10によって取出されるべき目標対象物31を選択する。
ステップS404では、近接状態判定部22が、目標対象物31に近接する他の対象物32が存在するか否かを判定する。ステップS404の判定が否定された場合、ロボット1は、周囲の対象物に干渉することなく目標対象物31を取出すことができる。したがって、その場合、ステップS405に進み、取出動作実行部25が、予め定められる動作プログラムによって規定される取出経路に従ってロボット1を移動させて、目標対象物31を取出す。
それに対し、ステップS404での判定が肯定された場合、ステップS406に進み、回避ベクトル決定部23が回避ベクトルを決定する。
ステップS407では、回避ベクトルがステップS406において決定されたか否かを判定する。ステップS407での判定が肯定された場合、ステップS408に進み、取出経路補正部24が、ステップS406で決定された回避ベクトルに従って取出経路を補正し、補正経路を作成する。次いで、ステップS409に進み、取出動作実行部25が、取出経路補正部24によって作成された補正経路に従ってロボット1を移動させて目標対象物31を取出す。
ステップS407の判定が否定された場合、すなわち回避ベクトル決定部23が回避ベクトルを求めることができなかった場合、ステップS410に進む。ステップS410では、目標対象物選択部21が、回避ベクトルを求められなかった目標対象物31とは異なる別の対象物3の中から目標対象物31を新たに選択する。そして、新たに選択された目標対象物31について、ステップS404以降の処理が実行される。
本実施形態に係るロボットシステムによれば、次のような効果が得られる。
目標対象物31に近接して配置される対象物32が存在する場合に、対象物32との干渉が起こらないように、目標対象物31の取出経路が補正される。したがって、目標対象物31を取出す際に、目標対象物31の周囲の対象物32の位置が不意に変化するのを防止できる。それにより、視覚センサ4による対象物3の撮像、及び画像処理装置42による画像処理を再実行する必要がなくなり、サイクルタイムを短縮できる。
また、目標対象物31に対して回避ベクトルが決定できない場合、すなわち周囲の対象物32との干渉を確実に避けられない場合には、その目標対象物31を取出すことなく、別の対象物が目標対象物31として新たに選択される。このように、対象物3の配置状態に応じて目標対象物31が自動的に切替えられるので、操作者の負担が軽減される。さらに、対象物3の初期配置に対する要求が緩和されるので、作業効率を向上させられる。
次に、近接状態判定部22の機能についてより詳細に説明する。一実施形態において、近接状態判定部22は、目標対象物31を含む二次元の画像上において、目標対象物31の位置情報に基づいて、目標対象物31の周囲に複数の近接状態判定領域33a〜33dを設定する。図5は、目標対象物31及び目標対象物31の周囲に位置する対象物32を示す平面図である。
図示される実施形態では、目標対象物31の各辺31a〜31dの周囲に長方形の近接状態判定領域33a〜33dが設定される。近接状態判定領域33a〜33dの幅W1,W2は、目標対象物31を取出す際に確保されるべき間隙に応じて適宜定められる。近接状態判定領域は、目標対象物31の周囲に設定されれば、その個数、形状は特に限定されない。例えば、近接状態判定領域33dが2つに分割されていてもよい。
近接状態判定部22は、対象物32が近接状態判定領域33a〜33dのうちの少なくとも1つ(図5の場合、近接状態判定領域33d)に重なり合っている場合、対象物32が目標対象物31に近接して配置されていると判定する。具体的には、近接状態判定領域33a〜33d内の画素の明るさ又は色を計測する。そして、対象物32が存在しない場合に想定される画素の明るさ又は色と異なる場合、対象物32が近接状態判定領域33a〜33dに重なり合っていると判定する。
画素の明るさ又は色の違いが、実際には対象物32の存在に起因するものでない場合であっても、同様に回避動作を実行するのが好ましい。なぜなら、他の対象物32ではなくても異物が混入している可能性があるためである。
図6は、円形の目標対象物31について設定される近接状態判定領域33a〜33hの例を示している。図示された例では、45度ごとに分割された近接状態判定領域33a〜33hが目標対象物31の周囲に設定されている。しかしながら、任意の間隔で任意の個数に分割された近接状態判定領域が用いられてもよい。
図示されない別の実施形態において、目標対象物31の外形が曲線によって形成される場合、目標対象物31の外形に外接する長方形を求め、その長方形の周囲に近接状態判定領域を設定するようにしてもよい。
一実施形態において、近接状態判定部22は、数値計算により近接状態を判定するように構成されてもよい。その場合、対象物3の外形及び対象物3の周囲に設けられる近接状態判定領域の外形をそれぞれ予め設定しておく。そして、目標対象物31の外形と、周囲の対象物32の周囲に設定された近接状態判定領域の外形とが重なり合っているか否かを計算する。目標対象物31が近接状態判定領域と重なり合っている場合、近接状態判定部22は、対象物32が目標対象物31に近接して配置されていると判定する。
これら実施形態の変形例において、近接状態判定部22は、目標対象物31の外縁から離間されるべき距離に応じて、計算により、目標対象物31又は対象物32の周囲に自動生成される近接状態判定領域を利用してもよい。
対象物が円形である一実施形態において、近接状態判定部22は、目標対象物31の中心と、周囲の対象物32の中心との間の距離が予め定められる閾値を下回った場合に、周囲の対象物32が目標対象物31に近接して配置されていると判定するように構成されてもよい。
図7には、目標対象物31とともに、目標対象物31の周囲に位置する2つの対象物32、すなわち第1の対象物321、第2の対象物322が示されている。破線で示されている目標対象物31と同心の円34は、目標対象物31の直径(=対象物32の直径)と、目標対象物31を取出す際に確保されるべき間隙の大きさGとの合計に等しい大きさの半径D1を有している。近接状態判定部22は、第1及び第2の対象物321,322の中心321c,322cが円34の範囲内に入っている場合、それら対象物321,322が目標対象物31に近接して配置されていると判定する。
図7に示される例の場合、第1の対象物321の中心321cが円34の範囲内に入っているので、第1の対象物321は、目標対象物31に近接して配置されていると判定される。他方、第2の対象物322の中心322cは、円34の範囲外に位置しているので、第2の対象物322は、目標対象物31に近接して配置されていないと判定される。
対象物が円形ではない一実施形態において、近接状態判定部22は、対象物の輪郭に外接する凸多角形に基づいて、対象物の近接状態を判定してもよい。その場合、目標対象物31に対応する多角形の各辺と、周囲の対象物32に対応する多角形の各頂点との間の距離が、予め定められる閾値を下回った場合に、それら目標対象物31と対象物32とが近接していると判定される。
図8は、目標対象物31に対応する、すなわち目標対象物31の輪郭に外接していて辺131a〜131dを有する長方形(以下、「目標対象物形状131」と称する。)と、周囲の対象物32に対応する、すなわち対象物32の輪郭に外接する長方形(以下、「対象物形状132」と称する。)とを示している。
本実施形態によれば、対象物形状132の頂点P22から目標対象物形状131の辺131cに下ろした垂線L1の足P1の位置を計算によって求める。また、目標対象物形状の辺131cの中点P2から垂線L1の足P1までの距離D2を計算によって求める。近接状態判定部22は、垂線L1の長さ(頂点P22から垂線L1の足P1までの距離)及び距離D2の両方が、予め定められるそれぞれ対応した閾値を下回る場合、対象物32が目標対象物31に近接して配置されていると判定する。なお、垂線L1の長さに対する閾値は、目標対象物31を取出す際に周囲の対象物32との間に確保されるべき間隙に応じて定められる。また、距離D2に対する閾値は、少なくとも目標対象物形状の辺131cの半分の長さ以上になるように設定される。
別の実施形態において、対象物形状132の頂点P22から目標対象物形状131の辺131cに下ろした垂線L1の足P1が、辺131cの線分上に位置していない場合、対象物形状132の頂点P22と、頂点P22に近い131cの端点P14(図8参照)との間の距離を予め定められる閾値と比較することによって、近接状態が判定されてもよい。その場合、垂線L1の足P1が辺131cの線分上に位置している場合には、垂線L1の長さと対応する閾値とを比較することによって、近接状態が判定される。
近接状態判定部22は、目標対象物形状131のすべての辺131a〜131d、及び対象物形状132のすべての頂点P21〜P24について前述した処理を実行する。さらに、近接状態判定部22は、対象物形状132のすべての辺132a〜132d、及び目標対象物形状131のすべての頂点P11〜P14について前述した処理を実行する。
次に、回避ベクトル決定部23の機能について詳細に説明する。図5に示される例においては、目標対象物31の辺31dに沿って設定される近接状態判定領域33dと、対象物32が重なり合っている。回避ベクトル決定部23は、目標対象物31の辺31dに対して垂直な方向であって、目標対象物31の内側に向かう方向を回避方向として決定する。また、回避ベクトル決定部23は、近接状態判定領域33dの幅W1を回避量として決定する。こうして求められた回避方向及び回避量に従って、回避ベクトルVが求められる。
図9を参照して、目標対象物31に近接して配置される複数の対象物32が存在する実施形態において、回避ベクトルVを決定する態様について説明する。本実施形態において、辺31a〜31fを有する六角形の目標対象物31の周囲に近接状態判定領域33a〜33fがそれぞれ設定される。近接状態判定領域33a〜33fの幅は、目標対象物31を取出す際に、周囲の対象物32との間に確保されるべき間隙に応じて定められる。
図9に示される例では、第1の対象物321、第2の対象物322及び第3の対象物323が、近接状態判定領域33c,33d,33eにそれぞれ重なり合っている。したがって、3つの対象物321,322,323が目標対象物31に近接して配置されている。
回避ベクトル決定部23は、目標対象物31の3つの辺31c,31d,31eに対して垂直であって、目標対象物31の内側に向かう方向を回避ベクトルVc,Vd,Veの回避方向として決定する。また、回避ベクトル決定部23は、近接状態判定領域33c,33d,33eのそれぞれの幅を回避ベクトルVc,Vd,Veの回避量として決定する。
このように3つの回避ベクトルVc,Vd,Veが求められた場合、各々の回避ベクトルVc,Vd,Ve同士の間に形成される角度を計算し、角度が最大になる2本のベクトルVc,Veを抽出する。
一実施形態によれば、ベクトルVc,Veの始点が目標対象物31の重心CGに一致するように移動し、ベクトルVcの終点を通過し、ベクトルVcに対して垂直な直線L2を求める。また、ベクトルVeの終点を通過し、ベクトルVeに対して垂直な直線L3を求める。そして、目標対象物31の重心CGを始点とし、それら直線L2,L3の交点を終点とするベクトルVを求める。回避ベクトル決定部23は、このようにして求められたベクトルVを回避ベクトルとして決定する。
別の実施形態において、回避ベクトル決定部23は、回避量が十分である場合には、ベクトルVc,Veの合成ベクトルを回避ベクトルとして単に決定してもよい。
一実施形態において、回避ベクトル決定部23は、回避ベクトル決定部23によって決定された回避ベクトルが適切であるか否かを確認する機能を有していてもよい。回避ベクトルVは、目標対象物31に近接して配置された対象物32との接触を回避するために取出経路を補正するのに使用される。しかしながら、目標対象物31の取出経路を補正した結果として、目標対象物31の周囲にある別の対象物に接近し、場合によっては接触する可能性がある。
一実施形態によれば、回避ベクトルの大きさ、すなわち回避量が予め定められる閾値を超える場合、補正経路に従って取出動作を実行すれば、別の対象物に接触する可能性があるとみなし、対象物との干渉が回避不能であるとみなしてもよい。この場合、回避ベクトルが決定されなかったものと判定され、目標対象物31は、ロボット1によって取出されることなく、別の対象物3が目標対象物31として選択される。
或いは、回避ベクトルに従って目標対象物31を移動させたと仮定して、移動後の目標対象物31に近接する対象物32が存在するか否かを判定してもよい。移動後の目標対象物31に近接する対象物32が存在する場合は、対象物32との干渉が回避不能であるとみなし、別の対象物3が目標対象物31として選択される。
一実施形態において、複数の回避ベクトルVc,Vd,Veによって形成される角度が概ね180度である場合、対象物32との干渉が回避不能であるとみなしてもよい。2つの回避ベクトルの間に形成される角度が概ね180度である場合、2つの回避ベクトルが互いに対して平行に近いことを意味する。そのため、2つの回避ベクトルから求められる回避ベクトルV(図参照)の終点を決定する直線L2,L3の交点を計算できない。
2つのベクトルが概ね180度である場合、2つの対象物の間に目標対象物が存在することを意味する。図10は、目標対象物31の対向する2つの辺31a,31dに沿って設定される近接状態判定領域33a,33dに重なり合う対象物321,322が存在する状態を示している。
この場合、矢印A1,A2で示されるように、回避ベクトルVa,Vdに対して垂直な方向に目標対象物31を移動させたとしても、目標対象物31を真上に持ち上げて取出す場合と同様に、対象物321,322に干渉する可能性がある。そのため、目標対象物31及び対象物321,322が図に示されるような位置関係にある場合、目標対象物31と対象物321,322との干渉が回避不能であると決定されるべきである。
図に示されていない別の対象物が目標対象物31に近接して配置されている場合も、最大角を形成する2つのベクトルは同じベクトルVa,Vdになるので、同様に対象物321,322との干渉が回避不能であると判定される。目標対象物31の周囲の近接状態判定領域33a〜33fのすべての範囲内に対象物が存在する場合、目標対象物31は当然に対象物との干渉が回避不能であると決定される。
図11を参照して、複数のベクトルから回避ベクトルを決定する別の実施形態について説明する。図に示される例では、3つの対象物321,322,323が目標対象物31の近接状態判定領域33c,33d,33eと重なり合っており、3つのベクトルを用いて回避ベクトルを決定する。先ず、3つのベクトルVc,Vd,Veの始点がそれぞれ目標対象物31の重心CGに一致するように、ベクトルVc,Vd,Veを移動させる。次いで、各々のベクトルVc,Vd,Veの終点を通り、それらベクトルVc,Vd,Veの方向に垂直な方向に延びる直線L2〜L4を求める。
次いで、重心CGに対してそれら直線L2〜L4の外側に形成される領域どうしが重なり合う共通領域Rを求める。さらに、共通領域Rのうち重心CGに最も近い点P5を求める。回避ベクトル決定部23は、目標対象物31の重心CGを始点とし、共通領域Rにおける点P5を終点とするベクトルを回避ベクトルVとして決定する。本実施形態において、共通領域Rが存在しない場合は、目標対象物31と対象物321,322,323との干渉を回避できないと判定する。前述した実施形態と同様に、回避ベクトル決定部23は、求められた回避ベクトルVが適切であるか否かを判定する機能を有していてもよい。
図12は、1つの対象物32が2つの近接状態判定領域33g,33hにわたって重なり合っている状態を示している。このような場合、各々の近接状態判定領域33g,33hの重心CGh,CGgから目標対象物31の重心CGに向かう方向にベクトルVg,Vhをそれぞれ求める。ベクトルVg,Vhの大きさは、近接状態判定領域33g,33hの幅に等しい。回避ベクトル決定部23は、このようにして求められた複数のベクトルから、図9を参照して前述した方法に従って、回避ベクトルVを決定する。
図7を参照して説明したように、目標対象物31と対象物32との間の距離を利用して対象物32の近接状態を判定した場合における回避ベクトルVの決定方法について説明する。この場合、回避ベクトル決定部23は、目標対象物31と対象物32との間の距離を利用して回避ベクトルVを決定する。
図13に示されるように、3つの対象物321,322,323が目標対象物31に近接して配置されている。ベクトルV1,V2,V3は、対象物321,322,323の中心C1,C2,C3を始点として目標対象物31の中心Cに向けられている。各々のベクトルV1,V2,V3の大きさは、目標対象物31を取出す際に周囲の対象物との間に確保されるべき間隙の大きさに等しい。それらベクトルV1,V2,V3のうち、互いの間に形成される角度が最大になるような2つのベクトルを抽出する。図示された例においては、ベクトルV1,V3が抽出される。
一実施形態において、図9に関連して説明したように、ベクトルV1,V3の終点を通り、かつベクトルV1,V3に垂直な方向に延びる直線に基づいて回避ベクトルを決定してもよい。
別の実施形態において、互いの間に形成される角度が最大になるベクトルV1,V3の合成ベクトルを利用して回避ベクトルVを決定してもよい。
具体的には、ベクトルV1,V3の合成ベクトルに従って目標対象物31を移動させ、移動後の目標対象物31の中心を計算する。次いで、新たに取得された移動後の目標対象物31の中心と、周囲の対象物321,322,323の中心C1,C2,C3との間の距離を計算する。次いで、対象物321,322,323が目標対象物31に近接しているか否かを判定する。移動後の目標対象物31と対象物321,322,323とが互いに近接していないと判定された場合は、ベクトルV1,V3の合成ベクトルを回避ベクトルVとして決定する。
他方、移動後の目標対象物31と対象物321,322,323とのいずれかが依然として互いに近接していると判定された場合、合成ベクトルに所定の係数を乗算して合成ベクトルの大きさを変更する。係数には上限値が定められていてもよく、上限値以下の係数で適切な回避ベクトルVを決定できなかった場合、目標対象物31と対象物321,322,323との干渉が回避不能であるとみなし、別の目標対象物31を選択する。
図14を参照して、ベクトルV1,V3を合成して得られる合成ベクトルVRを利用する別の実施形態について説明する。本実施形態において、合成ベクトルVRの方向を回避方向として決定する。他方、回避ベクトルの大きさは次のような処理に従って決定される。
先ず、合成ベクトルVRに対して平行で、かつ目標対象物31の中心Cを通る直線L5を計算する。次いで、周囲の対象物、例えば対象物323の中心C3を中心とする円35を求める。円35は、対象物323の直径と、目標対象物31を取出す際に周囲の対象物との間に確保されるべき間隙と、の合計に等しい半径D3を有する。
次いで、直線L5と円35との交点P6,P7を求める。それら交点P6,P7のうち、目標対象物31の中心Cにより近い交点(図示された例では交点P6)を求める。次いで、目標対象物31の中心Cから交点P6までの距離を計算する。こうして求められた距離が、目標対象物31を取出す際に対象物323との接触を確実に回避できる最小限の回避量である。目標対象物31に近接する他の対象物321,322それぞれに対して前述した処理と同様の処理を実行し、各々の対象物321,322,323を回避するのに必要な最小限の回避量を求める。それら最小限の回避量のうちの最大値を、回避ベクトルVの大きさ(回避量)として設定する。
図15を参照して、ベクトルV1,V3を利用せずに回避ベクトルVを決定する実施形態について説明する。円36,37,38は、対象物321,322,323の中心C1,C2,C3を中心とし、対象物321,322,323の直径と、目標対象物31を取出す際に周囲の対象物321,322,323との間に確保されるべき間隙と、の合計に等しい半径を有している。
次いで、対象物321,322,323の周りに形成される円36,37,38の外側の領域のうち互いに重なり合う領域のうち、目標対象物31の中心Cから最も小さい距離に位置する点P8を計算する。回避ベクトル決定部23は、目標対象物31の中心Cを始点とし、点P8を終点とするベクトルを回避ベクトルVとして決定する。
次に、取出経路補正部24及び取出動作実行部25の機能について詳細に説明する。図16は、取出経路補正部24によって、回避ベクトルVに従って補正される取出経路を示す図である。図16には、プログラムされた取出経路の通過点P31,P32、及び取出経路補正部24によって作成された補正経路の通過点P41,P42がそれぞれ示されている。各々の通過点は、ロボット1の把持装置11のツール先端点RPが通過する位置を表している。点P10は、ロボット1の把持装置11が目標対象物31を把持するときのツール先端点RPの位置(把持位置)を表している。
目標対象物31に近接して配置される対象物が存在しない場合、ロボット1は、把持装置11で目標対象物31を把持した後、通過点P31,P32を通過して目標対象物31を取出す。それに対し、対象物32が目標対象物31に近接して配置されている場合、プログラムされた取出経路に従って目標対象物31を取出すと、目標対象物31又はロボット1が対象物32に接触して対象物32の位置を変更してしまう虞がある。
そこで、対象物32が目標対象物31に近接して配置されている場合、ロボット1は、回避ベクトルVによって補正された通過点P41,P42を通過する補正経路に従って目標対象物31を取出す。なお、把持位置P10は変更されていない。補正経路の第1の通過点P41は、プログラムされた取出経路の第1の通過点P31を始点とする回避ベクトルVの終点に等しい。同様に、補正経路の第2の通過点P42は、プログラムされた取出経路の第2の通過点P32を始点とする回避ベクトルVの終点に等しい。
図17は、別の実施形態に従って作成される補正経路を示している。目標対象物31を取出す際に、周囲の対象物32と接触する可能性が最も高いのは、最初の通過点に向かって移動するときである。したがって、本実施形態によれば、回避ベクトルVに従って最初の通過点である取出経路の第1の通過点P31をP41に変更するものの、第2の通過点P32以降は変更しない。それにより、本実施形態によれば、図7に示されるように、補正経路の第2の通過点P42は、プログラムされた取出経路P32と一致するようになる。
図18は、また別の実施形態に従って作成される補正経路を示している。本実施形態においては、把持位置P10及び目標点P11のみがプログラムによって指定される。すなわち、図16及び図17を参照して説明した実施形態とは異なり、第1の通過点P31,P32は、プログラムによって指定されていない。そのような場合、把持位置P10を始点とする回避ベクトルVの終点によって指定される位置に通過点P41を追加するように取出経路を補正してもよい。さらに、図18に示されるように、第2の通過点P42を追加するように取出経路を補正してもよい。
図19は、さらに別の実施形態に従って補正された取出経路を示している。本実施形態は、図18の実施形態と同様に、把持位置P10及び目標点P11のみがプログラムによって指定されている。また、取出経路補正部24によって補正経路の通過点P41,P42が追加される。しかしながら、本実施形態において、補正によって追加される第1の通過点P41は、把持位置P10から回避ベクトルVに上向きのベクトルV’’を加算して得られるベクトルV’に従って計算される。
上向きのベクトルV’’を加算したベクトルV’に従って、補正経路の第1の通過点P41を指定すれば、目標対象物31を床面から持ち上げられるように目標対象物31が移動するので、目標対象物31を床面に擦らせることなく取出せる。
図20は、図1を参照して説明された実施形態とは異なる実施形態に係るロボットシステム10の全体構成図である。本実施形態に係るロボットシステム10は、概ね平坦な載置面を有するコンベア51によって搬送される対象物3を、ロボット1の把持装置11によって1つずつ順次取出すように構成されている。本実施形態に係るロボットシステム10は、ビジュアルトラッキング技術を利用して、コンベア51によって搬送される対象物3の動きに追従して対象物3の取出工程を実行できるように構成される。搬送方向におけるロボット1の上流側には、検出領域52の範囲内に含まれる対象物3を撮像する視覚センサ4が設置されている。視覚センサ4によって取得される画像データは、画像処理装置42に入力され、対象物3の位置などの情報が計算される。
コンベア51には、エンコーダ54が取付けられており、エンコーダ54の検出情報に基づいて、コンベア51の移動量、すなわち対象物3の移動量が計算されるようになっている。ロボット制御装置2は、視覚センサ4の検出情報から求められる対象物3の位置情報、及びエンコーダ54の検出情報から求められる対象物3の移動量に基づいて、コンベア51と一緒に移動する対象物3の位置を追跡できるようになっている。ロボット1は、対象物3が作業領域53に到達したことを検出したときに、対象物3を順次取出すように構成されている。このようなビジュアルトラッキングは周知の技術であるので、本明細書では詳細な説明を省略する。例えば、特許文献5に記載された技術を利用してもよい。
ロボット1の上流に視覚センサ4が設けられたロボットシステム10において、対象物3が視覚センサ4の検出領域52の外部に移動した後は、対象物3の位置情報を視覚センサ4で取得することはできない。したがって、或る対象物3を取出す際に、別の対象物3に接触して該対象物3の位置を変更してしまうと、視覚センサ4によって取得された位置情報がもはや正確ではなくなる。そのため、周囲の対象物3の位置を変更しないように対象物3を正確に取出すことがとりわけ重要である。
本実施形態において、コンベア51は、図20に矢印で示される方向(右側から左側)に一定の速度で移動する。対象物3は、コンベア51上で不規則に配置されていてよいものの、対象物3同士が上下に重なり合うことはないものとする。また、対象物3に対してロボット1又は他の対象物3が接触しない限り、対象物3はコンベア51に対してスライドすることなく一体的に移動するものとする。
本実施形態において、近接状態判定部22及び回避ベクトル決定部23は、前述した実施形態と同様の機能を有する。しかしながら、取出経路補正部24及び取出動作実行部25は、対象物3の位置が常時移動する点を考慮して設定を必要しておくのが好ましい。具体的には、特許文献5にも記載されているように、コンベア51とともに移動するトラッキング座標系を設定し、対象物3の取出経路及び補正経路をトラッキング座標系において定義するのが便利である。
図21は、トラッキング座標系T1において表現した取出経路の通過点P31を示している。前述したように、トラッキング座標系T1は、コンベア51の動作に追従して移動する動的な座標系である。コンベア51の位置はエンコーダ54によって検出され、ロボット制御装置2はエンコーダ54の検出情報に基づいて、トラッキング座標系T1の位置を取得できるように構成されている。
図21には、或る時点におけるトラッキング座標系T1及び取出経路の通過点P31が、別の時点におけるトラッキング座標系T1における通過点P31とともに示されている。このように、ロボット座標系R0又はツール座標系T0における通過点P31の位置が常時変化する一方で、トラッキング座標系T1における通過点P31は一定である。
したがって、本実施形態において、固定された座標系、例えばロボット座標系R0の代わりに、コンベア51とともに移動するトラッキング座標系T1を基準にしてロボット1に取出動作を実行させれば、前述した実施形態と同様の処理を容易に実行可能である。すなわち、動的なトラッキング座標系T1に対して、ロボット1が相対的に移動することによって、対象物3の取出工程が実行されるようになる。
このように、ビジュアルトラッキングを利用した本発明に係るロボットシステムによれば、目標対象物の取出工程において、周囲の対象物の位置が不意に変化するのを防止できる。それにより、取出工程を安定して実行できるようになる。
以上、本発明の種々の実施形態について説明したが、当業者であれば、他の実施形態によっても本発明の意図する作用効果を実現できることを認識するであろう。特に、本発明の範囲を逸脱することなく、前述した実施形態の構成要素を削除又は置換することができるし、或いは公知の手段をさらに付加することができる。また、本明細書において明示的又は暗示的に開示される複数の実施形態の特徴を任意に組合せることによっても本発明を実施できることは当業者に自明である。