(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-28
(45)【発行日】2023-12-06
(54)【発明の名称】設定装置、設定方法およびプログラム
(51)【国際特許分類】
B25J 9/22 20060101AFI20231129BHJP
【FI】
B25J9/22 A
(21)【出願番号】P 2019207051
(22)【出願日】2019-11-15
【審査請求日】2022-09-07
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】服部 宏祐
(72)【発明者】
【氏名】仁科 有貴
【審査官】中田 善邦
(56)【参考文献】
【文献】特開2018-144164(JP,A)
【文献】特開平11-058279(JP,A)
【文献】米国特許出願公開第2017/0326728(US,A1)
【文献】特開2015-085475(JP,A)
【文献】特開2013-046937(JP,A)
【文献】特開2009-214212(JP,A)
【文献】特開平10-264065(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/22
(57)【特許請求の範囲】
【請求項1】
ロボットのエンドエフェクタがワークをピッキングするときの前記エンドエフェクタの位置姿勢候補を設定するための設定装置であって、
前記ワークの三次元形状を定義する第1CADデータによって示されるワークモデル上の第1点および第2点の指定を受け付ける受付部
を備え、前記第1CADデータは、前記ワークモデルの表面を構成する複数のメッシュの各々の位置姿勢を示し、前記設定装置はさらに、
前記第1点および前記第2点から定義される点を始点とし、前記第1点から前記第2点への向きと同じ向きを有する第1位置ベクトルと、前記
複数のメッシュのうち前記第1点および前記第2点
に応じて特定されるメッシュの法線ベクトルから定義される第2位置ベクトルとを演算する演算部と、
前記エンドエフェクタの三次元形状を示すエンドエフェクタモデルに対して予め定められた第1基準位置ベクトルおよび第2基準位置ベクトルと、前記第1位置ベクトルおよび前記第2位置ベクトルとの相対位置関係が予め定められた第1基準関係に近づくように、前記エンドエフェクタモデルの位置姿勢を決定する決定部と、
前記決定部によって決定された位置姿勢を前記位置姿勢候補として登録する登録部とを備える、設定装置。
【請求項2】
前記演算部は、前記第1位置ベクトルと前記第2位置ベクトルとの外積で表される第3位置ベクトルをさらに演算し、
前記決定部は、前記第1基準位置ベクトルおよび前記第2基準位置ベクトルと前記第1位置ベクトルおよび前記第2位置ベクトルとの相対位置関係が前記第1基準関係に近づくとともに、前記エンドエフェクタモデルに対して予め定められた第3基準位置ベクトルと前記第3位置ベクトルとの相対位置関係が予め定められた第2基準関係に近づくように、前記エンドエフェクタモデルの位置姿勢を決定する、請求項1に記載の設定装置。
【請求項3】
前記演算部は、前記第1位置ベクトルに直交する第3位置ベクトルをさらに演算し、
前記決定部は、前記第1基準位置ベクトルおよび前記第2基準位置ベクトルと前記第1位置ベクトルおよび前記第2位置ベクトルとの相対位置関係が前記第1基準関係に近づくとともに、前記エンドエフェクタモデルに対して予め定められた第3基準位置ベクトルと前記第3位置ベクトルとの相対位置関係が予め定められた第2基準関係に近づくように、前記エンドエフェクタモデルの位置姿勢を決定する、請求項1に記載の設定装置。
【請求項4】
前記エンドエフェクタモデルは、前記エンドエフェクタの三次元形状を定義する第2CADデータによって示される、請求項1から3のいずれか1項に記載の設定装置。
【請求項5】
入力指示に従って前記エンドエフェクタモデルを作成するモデル作成部をさらに備え、
前記モデル作成部は、前記第1基準位置ベクトルおよび前記第2基準位置ベクトルを設定する、請求項1から3のいずれか1項に記載の設定装置。
【請求項6】
前記エンドエフェクタは回転対称性を有し、
前記モデル作成部は、前記エンドエフェクタモデルにおける回転対称軸と、自身に重なり合う最小回転角度θとを設定し、
前記登録部は、前記決定部によって決定された位置姿勢から前記回転対称軸を中心に前記最小回転角度θのn倍だけ回転させた前記エンドエフェクタモデルの位置姿勢を前記位置姿勢候補としてさらに登録し、
nは、1以上かつ360°/θ未満の整数である、請求項5に記載の設定装置。
【請求項7】
前記ワークモデルを表示装置の画面に表示させる表示制御部をさらに備え、
前記受付部は、前記画面において指定された位置に基づいて、前記第1点および前記第2点を受け付ける、請求項1から6のいずれか1項に記載の設定装置。
【請求項8】
前記表示制御部は、
前記ワークモデルを基準とする座標軸を前記画面に表示させ、
前記ワークモデルに対する操作に応じて、前記画面に表示される前記ワークモデルの位置姿勢を変更する、請求項7に記載の設定装置。
【請求項9】
前記表示制御部は、前記画面において、前記決定部によって決定された位置姿勢の前記エンドエフェクタモデルを前記ワークモデルに重畳して表示させ、
前記決定部は、予め定められた方向に沿った並進移動および当該予め定められた方向に平行な回転軸を中心とする回転移動の少なくとも一方の操作を受け付け、当該操作に応じて、決定した位置姿勢を調整する、請求項7または8に記載の設定装置。
【請求項10】
前記表示制御部は、前記画面において、前記予め定められた方向を示す軸を表示させる、請求項9に記載の設定装置。
【請求項11】
前記表示制御部は、前記エンドエフェクタモデルの先端に接する所定形状のガイド面を前記画面に表示させる、請求項9または10に記載の設定装置。
【請求項12】
前記エンドエフェクタは、2本の指部を有し、
前記ガイド面は、前記エンドエフェクタモデルにおける前記2本の指部の先端にそれぞれ対応する2点を結ぶ線分を直径とする円筒形状、または、前記線分を直径とする円の外接正方形を断面とする角筒形状である、請求項11に記載の設定装置。
【請求項13】
前記エンドエフェクタは、1以上の真空パッドを有する吸着ハンドであり、
前記ガイド面は、前記エンドエフェクタモデルにおける前記1以上の真空パッドに対応するパーツの先端面を含む平面形状である、請求項11に記載の設定装置。
【請求項14】
前記決定部によって決定された位置姿勢の前記エンドエフェクタモデルと前記ワークモデルとの干渉判定を行なう判定部をさらに備え、
前記表示制御部は、
前記画面において、前記決定部によって決定された位置姿勢の前記エンドエフェクタモデルを前記ワークモデルに重畳して表示させ、
前記判定部によって干渉していると判定されたことに応じて、前記エンドエフェクタモデルの表示形式を変更する、請求項7または8に記載の設定装置。
【請求項15】
前記決定部によって決定された位置姿勢の前記エンドエフェクタモデルと前記ワークモデルとの干渉判定を行なう判定部をさらに備え、
前記登録部は、前記判定部によって干渉していると判定された位置姿勢を前記位置姿勢候補から削除する、請求項1から13のいずれか1項に記載の設定装置。
【請求項16】
ロボットのエンドエフェクタがワークをピッキングするときの前記エンドエフェクタの位置姿勢候補の設定方法であって、
前記ワークの三次元形状を定義する第1CADデータによって示されるワークモデル上の第1点および第2点の指定を受け付けるステップ
を備え、前記第1CADデータは、前記ワークモデルの表面を構成する複数のメッシュの各々の位置姿勢を示し、前記設定方法はさらに、
前記第1点および前記第2点から定義される点を始点とし、前記第1点から前記第2点への向きと同じ向きを有する第1位置ベクトルと、前記
複数のメッシュのうち前記第1点および前記第2点
に応じて特定されるメッシュの法線ベクトルから定義される第2位置ベクトルとを演算するステップと、
前記エンドエフェクタの三次元形状を示すエンドエフェクタモデルに対して予め定められた第1基準位置ベクトルおよび第2基準位置ベクトルと、前記第1位置ベクトルおよび前記第2位置ベクトルとの相対位置関係が予め定められた基準関係に近づくように、前記エンドエフェクタモデルの位置姿勢を決定するステップと、
決定された位置姿勢を前記位置姿勢候補として登録するステップとを備える、設定方法。
【請求項17】
請求項16に記載の設定方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、設定装置、設定方法およびプログラムに関する。
【背景技術】
【0002】
従来、複数の物体(以下、「ワーク」とも称する。)の中から対象ワークをピッキングするエンドエフェクタを備えたロボットが知られている。このようなロボットの動作の制御システムでは、ワークをピッキングするときのエンドエフェクタの位置姿勢(以下、「把持位置姿勢」とも称する。)が予め登録される。制御システムは、予め登録された把持位置姿勢とワークの位置姿勢とに基づいて、ロボットを制御する。
【0003】
例えば、特開2018-144164号公報(特許文献1)は、ワークの三次元形状を仮想的に表現したワークモデルを画像表示領域に表示させた状態で把持位置姿勢を設定するロボット設定装置を開示している。具体的には、把持位置姿勢を示すX座標、Y座標、Z座標、Rx回転角、Ry回転角、Rz回転角を指定するための指定欄への入力に応じて、把持位置姿勢が設定される。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に開示の技術では、把持位置姿勢を設定するために、ユーザは6つのパラメータを指定する必要がある。そのため、把持位置姿勢の設定に要する手間が煩雑となる。
【0006】
本発明は、上記の問題に鑑みてなされたものであり、その目的は、対象物をピッキングするエンドエフェクタの位置姿勢を簡易に設定可能な設定装置、設定方法およびプログラムを提供することである。
【課題を解決するための手段】
【0007】
本開示の一例によれば、ロボットのエンドエフェクタがワークをピッキングするときのエンドエフェクタの位置姿勢候補を設定するための設定装置は、受付部と、演算部と、決定部と、登録部とを備える。受付部は、ワークの三次元形状を定義する第1CADデータによって示されるワークモデル上の第1点および第2点の指定を受け付ける。演算部は、第1点および第2点から定義される点を始点とし、第1点から第2点への向きと同じ向きを有する第1位置ベクトルと、ワークモデルにおける第1点および第2点の法線ベクトルから定義される第2位置ベクトルとを演算する。決定部は、エンドエフェクタの三次元形状を示すエンドエフェクタモデルに対して予め定められた第1基準位置ベクトルおよび第2基準位置ベクトルと、第1位置ベクトルおよび第2位置ベクトルとの相対位置関係が予め定められた第1基準関係に近づくように、エンドエフェクタモデルの位置姿勢を決定する。登録部は、決定部によって決定された位置姿勢を位置姿勢候補として登録する。
【0008】
この開示によれば、ユーザは、ワークモデル上の第1点および第2点を指定するだけで、ワークをピッキングするときのエンドエフェクタの位置姿勢候補を設定できる。すなわち、ワークをピッキングするときのエンドエフェクタの位置姿勢が簡易に設定される。
【0009】
上述の開示において、演算部は、第1位置ベクトルと第2位置ベクトルとの外積で表される第3位置ベクトルをさらに演算する。決定部は、第1基準位置ベクトルおよび第2基準位置ベクトルと第1位置ベクトルおよび第2位置ベクトルとの相対位置関係が第1基準関係に近づくとともに、エンドエフェクタモデルに対して予め定められた第3基準位置ベクトルと第3位置ベクトルとの相対位置関係が予め定められた第2基準関係に近づくように、エンドエフェクタモデルの位置姿勢を決定する。
【0010】
上記の開示によれば、決定部は、第3位置ベクトルと第3基準位置ベクトルとの相対位置関係も考慮して、位置姿勢候補として登録され得るエンドエフェクタモデルの位置姿勢を決定できる。
【0011】
なお、演算部は、第1位置ベクトルに直交する第3位置ベクトルをさらに演算してもよい。この場合でも、決定部は、第1基準位置ベクトルおよび第2基準位置ベクトルと第1位置ベクトルおよび第2位置ベクトルとの相対位置関係が第1基準関係に近づくとともに、エンドエフェクタモデルに対して予め定められた第3基準位置ベクトルと第3位置ベクトルとの相対位置関係が予め定められた第2基準関係に近づくように、エンドエフェクタモデルの位置姿勢を決定する。
【0012】
上述の開示において、エンドエフェクタモデルは、エンドエフェクタの三次元形状を定義する第2CADデータによって示される。上記の開示によれば、ユーザは、エンドエフェクタモデルを作成しなくてもよい。
【0013】
上述の開示において、設定装置は、入力指示に従ってエンドエフェクタモデルを作成するモデル作成部をさらに備える。モデル作成部は、第1基準位置ベクトルおよび第2基準位置ベクトルを設定する。上記の開示によれば、ユーザは、モデル作成部を用いてエンドエフェクタモデルを自由に作成できる。
【0014】
上述の開示において、エンドエフェクタは回転対称性を有する。モデル作成部は、エンドエフェクタモデルにおける回転対称軸と、自身に重なり合う最小回転角度θとを設定する。登録部は、決定部によって決定された位置姿勢から回転対称軸を中心に最小回転角度θのn倍だけ回転させたエンドエフェクタモデルの位置姿勢を位置姿勢候補としてさらに登録する。nは、1以上かつ360°/θ未満の整数である。
【0015】
回転対称性を有するエンドエフェクタである場合、回転対称軸に対して最小回転角度θのn倍だけ回転させたエンドエフェクタであっても、ワークを把持可能となる。上記の開示によれば、決定部によって決定された位置姿勢から回転対称軸を中心に最小回転角度θのn倍だけ回転させたエンドエフェクタモデルの位置姿勢も把持点候補として自動で登録される。これにより、ユーザによる把持点候補の登録操作の手間が削減される。
【0016】
上述の開示において、設定装置は、ワークモデルを表示装置の画面に表示させる表示制御部をさらに備える。受付部は、画面において指定された位置に基づいて、第1点および第2点を受け付ける。
【0017】
上記の開示によれば、ユーザは、画面に表示されたワークモデルを見ながら、ワークモデル上の所望の位置において第1点および第2点を指定できる。
【0018】
上述の開示において、表示制御部は、ワークモデルを基準とする座標軸を画面に表示させ、ワークモデルに対する操作に応じて、画面に表示されるワークモデルの位置姿勢を変更する。
【0019】
上記の開示によれば、ユーザは、ワークモデルを基準とする座標軸を見ながら、第1点および第2点を指定しやすいように、ワークモデルの位置姿勢を所望の状態に変更できる。
【0020】
上述の開示において、表示制御部は、画面において、決定部によって決定された位置姿勢のエンドエフェクタモデルをワークモデルに重畳して表示させる。決定部は、予め定められた方向に沿った並進移動および当該予め定められた方向に平行な回転軸を中心とする回転移動の少なくとも一方の操作を受け付け、当該操作に応じて、決定した位置姿勢を調整する。
【0021】
上述の開示において、表示制御部は、画面において、予め定められた方向を示す軸を表示させる。
【0022】
上記の開示によれば、ユーザは、第1基準位置ベクトルおよび第2基準位置ベクトルを見ながら、エンドエフェクタモデルの位置姿勢を所望の状態に調整しやすくなる。
【0023】
上述の開示において、表示制御部は、画面において、エンドエフェクタモデルの座標系の軸方向を表示させる。
【0024】
上記の開示によれば、ユーザは、エンドエフェクタモデルの座標系の軸方向を見ながら、エンドエフェクタモデルの位置姿勢を所望の状態に調整しやすくなる。
【0025】
上述の開示において、表示制御部は、エンドエフェクタモデルの先端に接する所定形状のガイド面を画面に表示させる。
【0026】
例えば、エンドエフェクタは、2本の指部を有する。ガイド面は、エンドエフェクタモデルにおける2本の指部の先端にそれぞれ対応する2点を結ぶ線分を直径とする円筒形状、または、線分を直径とする円の外接正方形を断面とする角筒形状である。
【0027】
あるいは、エンドエフェクタは、1以上の真空パッドを有する吸着ハンドである。ガイド面は、エンドエフェクタモデルにおける1以上の真空パッドに対応するパーツの先端面を含む平面形状である。
【0028】
上記の開示によれば、ガイド面が表示されることにより、ユーザは、エンドエフェクタモデルの先端とワークモデルとの相対位置関係を容易に把握できる。
【0029】
上述の開示において、設定装置は、決定部によって決定された位置姿勢のエンドエフェクタモデルとワークモデルとの干渉判定を行なう判定部をさらに備える。表示制御部は、画面において、決定部によって決定された位置姿勢のエンドエフェクタモデルをワークモデルに重畳して表示させ、判定部によって干渉していると判定されたことに応じて、エンドエフェクタモデルの表示形式を変更する。
【0030】
上記の開示によれば、ユーザは、エンドエフェクタモデルとワークモデルとが干渉していることを容易に把握できる。
【0031】
上述の開示において、設定装置は、決定部によって決定された位置姿勢のエンドエフェクタモデルとワークモデルとの干渉判定を行なう判定部をさらに備える。登録部は、判定部によって干渉していると判定された位置姿勢を位置姿勢候補から削除する。
【0032】
上記の開示によれば、ワークモデルと干渉するエンドエフェクタモデルの位置姿勢が、ワークをピッキングするときのエンドエフェクタの位置姿勢候補として登録されることを防止できる。
【0033】
本開示の一例によれば、ロボットのエンドエフェクタがワークをピッキングするときのエンドエフェクタの位置姿勢候補の設定方法は、第1~第4のステップを備える。第1のステップは、ワークの三次元形状を定義する第1CADデータによって示されるワークモデル上の第1点および第2点の指定を受け付けるステップである。第2のステップは、第1点および第2点から定義される点を始点とし、第1点から第2点への向きと同じ向きを有する第1位置ベクトルと、ワークモデルにおける第1点および第2点の法線ベクトルから定義される第2位置ベクトルとを演算するステップである。第3のステップは、エンドエフェクタの三次元形状を示すエンドエフェクタモデルに対して予め定められた第1基準位置ベクトルおよび第2基準位置ベクトルと、第1位置ベクトルおよび第2位置ベクトルとの相対位置関係が予め定められた基準関係に近づくように、エンドエフェクタモデルの位置姿勢を決定するステップである。第4のステップは、決定された位置姿勢を位置姿勢候補として登録するステップである。
【0034】
本開示の一例によれば、プログラムは、上記の設定方法をコンピュータに実行させる。これらの開示によっても、対象物をピッキングするエンドエフェクタの位置姿勢を簡易に設定できる。
【発明の効果】
【0035】
本開示によれば、対象物をピッキングするエンドエフェクタの位置姿勢を簡易に設定できる。
【図面の簡単な説明】
【0036】
【
図1】実施の形態に係る制御システムの全体構成を示す概略図である。
【
図2】
図1に示す画像処理装置のハードウェア構成の一例を示す概略図である。
【
図3】
図1に示す画像処理装置の機能構成の一例を示すブロック図である。
【
図4】エンドエフェクタモデルの作成を支援するためのモデル作成画面の一例を示す図である。
【
図5】エンドエフェクタモデルの作成中に表示されるモデル作成画面の一例を示す図である。
【
図6】エンドエフェクタモデルの作成中に表示されるモデル作成画面の他の例を示す図である。
【
図7】エンドエフェクタモデルに関する各種パラメータを設定するときのモデル作成画面の一例を示す図である。
【
図8】互いに異なるストローク幅の3つのエンドエフェクタモデルを示す図である。
【
図9】エンドエフェクタモデルの回転対称性に関する情報を設定するときのモデル作成画面の一例を示す図である。
【
図10】エンドエフェクタモデルに対して設定された基準位置ベクトルの一例を示す図である。
【
図11】エンドエフェクタモデルに対して設定された基準位置ベクトルの別の例を示す図である。
【
図12】決定部によるエンドエフェクタの位置姿勢の決定方法を説明する図である。
【
図13】把持点候補を設定するための設定画面の一例を示す図である。
【
図14】エンドエフェクタモデルの位置姿勢の調整方法の一例を説明する図である。
【
図15】エンドエフェクタモデルの位置姿勢の調整方法の他の例を説明する図である。
【
図16】複製ボタン群に含まれる「Fan」ボタンが操作されたときの設定画面の例を示す図である。
【
図17】複製ボタン群に含まれる「Cylinder」ボタンが操作されたときの設定画面の例を示す図である。
【
図18】複製ボタン群に含まれる「Hybrid」ボタンが操作されたときの設定画面の例を示す図である。
【
図19】複製ボタン群に含まれる「Circle」ボタンが操作されたときの設定画面の例を示す図である。
【
図20】設定画面に表示される補助ガイド面の一例を示す図である。
【
図21】設定画面に表示される補助ガイド面の別の例を示す図である。
【
図22】アプローチ動作の設定方法を説明する図である。
【
図23】決定部によって決定された位置姿勢のエンドエフェクタモデルとワークモデルとが干渉するときの設定画面の一例を示す図である。
【
図24】エンドエフェクタモデルの回転対称性を考慮した把持点候補の自動登録処理を説明する図である。
【
図25】把持点候補の登録処理の流れの一例を示すフローチャートである。
【
図26】吸着ハンドに対応するエンドエフェクタモデルを作成中のモデル作成画面の一例を示す図である。
【
図27】設定画面に表示される補助ガイド面のさらに別の例を示す図である。
【
図28】変形例3に係る位置ベクトルV3の演算方法を示す図である。
【
図29】変形例4に係る位置ベクトルV2の演算方法を示す図である。
【
図30】変形例5に係る位置ベクトルV2の演算方法を示す図である。
【発明を実施するための形態】
【0037】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【0038】
§1 適用例
図1を参照して、本発明が適用される場面の一例について説明する。
図1は、実施の形態に係る制御システムの全体構成を示す概略図である。
図1に例示される制御システムSYSは、生産ラインなどに組み込まれ、コンテナ5にばら積みされた物体であるワーク1に対するピックアンドプレースの制御を行なう。コンテナ5内でのワーク1の位置姿勢はランダムである。
【0039】
図1に例示される制御システムSYSは、画像処理装置100と、ロボットコントローラ200と、ロボット300と、計測ヘッド400とを備える。
【0040】
画像処理装置100には、表示装置150および入力装置160が接続されている。表示装置150は、典型的には液晶ディスプレイからなり、各種画面を表示する。入力装置160は、例えばキーボードおよびマウスを含む。なお、表示装置150および入力装置160は、一体化され、タッチパネルを構成してもよい。
【0041】
ロボット300は、ワーク1に対するピックアンドプレースを行なう。ロボット300は、ワーク1を保持するエンドエフェクタ301と、エンドエフェクタ301の位置姿勢を変更するための多関節アーム302と、多関節アーム302を支持するベース303とを含む。エンドエフェクタ301は、多関節アーム302の先端の面(フランジ面)に取り付けられる。ロボット300の動作は、ロボットコントローラ200によって制御される。
【0042】
図1に例示されるエンドエフェクタ301は、2本の指部310を有し、2本の指部310を用いてワーク1を把持する2指ハンドである。なお、指部310は、ワーク1を把持する際に、ワーク1に接触する部位であり、「爪部」とも称される。
【0043】
ロボットコントローラ200は、画像処理装置100からの情報を受けて、ロボット300の多関節アーム302を制御する。具体的には、ロボットコントローラ200は、エンドエフェクタ301がアプローチ動作、ピッキング動作およびプレース動作を順に行なうように多関節アーム302を制御する。「アプローチ動作」は、コンテナ5の外側からワーク1を把持可能な位置姿勢までの移動動作である。「ピッキング動作」は、2本の指部310を移動させることにより、ワーク1を把持する動作である。なお、ワーク1を把持する方法として、2本の指部310を閉じる方向に移動させることによりワーク1を把持する「外径把持」と、2本の指部310を開く方向に移動させることによりワーク1を把持する「内径把持」とがある。外径把持方法を用いたピッキング動作の開始時(アプローチ動作の終了時)において、ワーク1は、2本の指部310の間に位置する。内径把持方法を用いたピッキング動作の開始時(アプローチ動作の終了時)において、2本の指部310は、例えば筒状のワーク1の中空部分の内部に位置する。「プレース動作」は、ワーク1を把持しながら目標位置に搬送するまでのエンドエフェクタ301の動作である。
【0044】
ロボットコントローラ200は、画像処理装置100から、ピッキング動作の開始時にエンドエフェクタ301が取るべき位置姿勢を示す位置姿勢情報を受ける。ロボットコントローラ200は、当該位置姿勢情報に基づいて、エンドエフェクタ301がアプローチ動作、ピッキング動作およびプレース動作を順次実行するように指令を生成し、ロボット300へ出力する。この指令に応答して、ロボット300のエンドエフェクタ301は、アプローチ動作、ピッキング動作およびプレース動作を順次行なう。
【0045】
計測ヘッド400は、コンテナ5およびコンテナ5に収容されたワーク1が被写体となるように設置され、当該被写体を撮像する。計測ヘッド400は、投影部401と撮像部402とを備える。投影部401は、画像処理装置100からの指示に従って任意の投影パターン光を被写体に投影する。投影パターンは、例えば照射面内の所定方向に沿って明るさが周期的に変化するパターンである。撮像部402は、投影パターン光が投影された状態の被写体を撮像する。
【0046】
投影部401は、主要なコンポーネントとして、例えば、LED(Light Emitting Diode)やハロゲンランプなどの光源と、投影部401の照射面の側に配置されたフィルタとを含む。フィルタは、後述するような三次元形状の計測に必要な投影パターン光を発生させるものであり、画像処理装置100からの指令に従って、面内の透光率を任意に変化させることができる。投影部401は、時間的に変化しない固定の投影パターン光を投影してもよいし、時間的に変化する投影パターン光を投影してもよい。投影部401は、液晶またはDMD(Digital Mirror Device)と光源(LEDまたはレーザ光源など)とを用いた構成であってもよい。
【0047】
撮像部402は、主要なコンポーネントとして、例えば、レンズなどの光学系と、CCD(Coupled Charged Device)やCMOS(Complementary Metal Oxide Semiconductor)センサといった撮像素子とを含む。
【0048】
画像処理装置100は、計測ヘッド400から受けた画像に基づいて、コンテナ5内の複数のワーク1の中の1つを対象ワーク2として選択し、対象ワーク2をピッキングするときのエンドエフェクタ301の位置姿勢を決定する。対象ワーク2をピッキングするときのエンドエフェクタ301の位置姿勢とは、対象ワーク2に対するピッキング動作の開始時におけるエンドエフェクタ301の位置姿勢である。画像処理装置100は、決定した位置姿勢を示す位置姿勢情報を生成し、生成した位置姿勢情報をロボットコントローラ200に出力する。
【0049】
具体的には、画像処理装置100は、計測ヘッド400から受けた画像に基づいて、計測ヘッド400の視野領域の三次元形状を計測する。視野領域にはコンテナ5が含まれるため、コンテナ5にばら積みされた複数のワーク1の三次元形状が計測される。画像処理装置100は、計測した三次元形状に基づいて、複数のワーク1の中の1つをピッキング対象となる対象ワーク2として選択する。
【0050】
画像処理装置100には、ワーク1に対するピッキング動作の開始時にエンドエフェクタ301が取るべき位置姿勢候補(以下、「把持点候補」と称する。)が予め設定される。把持点候補は、ワーク1に対する、当該ワーク1に対するピッキング動作の開始時におけるエンドエフェクタ301の相対位置姿勢を示す。画像処理装置100は、対象ワーク2の位置姿勢と把持点候補とに基づいて、対象ワーク2をピッキングするときのエンドエフェクタ301の位置姿勢を決定する。
【0051】
なお、計測ヘッド400から受けた画像を用いて計測される対象ワーク2の位置姿勢は、計測ヘッド400の撮像部402を基準とする座標系(カメラ座標系)で表される。一方、画像処理装置100からロボットコントローラ200に出力する位置姿勢情報は、ロボット300を基準とする座標系(ロボットベース座標系)で表される。そのため、カメラ座標系とロボットベース座標系との相対的な位置姿勢関係を推定するためのキャリブレーションが予め実施される。キャリブレーションの方法として、公知のハンドアイキャリブレーションが採用され得る。画像処理装置100は、事前に実施されたハンドアイキャリブレーションの結果を用いて、適宜座標変換を行なう。
【0052】
画像処理装置100に1つの把持点候補のみが設定されている場合、画像処理装置100は、対象ワーク2の位置姿勢と当該1つの把持点候補とに基づいて、対象ワーク2をピッキングするときのエンドエフェクタ301の位置姿勢(把持位置姿勢)を決定する。このようにして決定された位置姿勢のエンドエフェクタ301は、対象ワーク2の周囲のワーク1またはコンテナ5と干渉する可能性がある。例えば画像処理装置100によって決定された位置姿勢のエンドエフェクタ301とコンテナ5とが干渉すると、ロボット300は、画像処理装置100によって決定された位置姿勢までエンドエフェクタ301を移動できない。
【0053】
そのため、通常、画像処理装置100には複数の把持点候補が設定される。画像処理装置100は、複数の把持点候補の中から、対象ワーク2の周囲のワーク1およびコンテナ5とエンドエフェクタ301とが干渉しない1つの把持点候補を選択する。画像処理装置100は、対象ワーク2の位置姿勢と選択した1つの把持点候補とに基づいて、対象ワーク2をピッキングするときのエンドエフェクタ301の位置姿勢を決定する。
【0054】
画像処理装置100は、把持点候補の設定を支援するための構成として把持点設定部10を備える。把持点設定部10は、受付部12と、演算部13と、決定部14と、登録部17とを含む。
【0055】
受付部12は、ワーク1の三次元形状を定義するCADデータによって示されるワークモデルM1上の第1点P1および第2点P2の指定を受け付ける。
図1に例示される画像処理装置100は、表示装置150の画面にワークモデルM1を表示させる。受付部12は、表示装置150の画面において指定された位置に基づいて、第1点P1および第2点P2を受け付ける。
【0056】
演算部13は、第1点P1および第2点P2によって定義される点P0を始点とし、第1点P1から第2点P2への向きと同じ向きを有する位置ベクトルV1を演算する。点P0は、例えばワークモデルM1の表面に沿って第1点P1と第2点P2とを結ぶ線Lの中点である。線Lは、第1点P1と第2点P2とを最短距離で結ぶ線である。なお、点P0は、第1点P1または第2点P2と同じであってもよい。位置ベクトルV1は、予め定められた長さ(例えば1)を有する。
【0057】
さらに、演算部13は、ワークモデルM1における第1点P1および第2点P2の法線ベクトルから定義される位置ベクトルV2を演算する。ワーク1に対応するCADデータがワーク1の表面を構成する複数の三角メッシュの各々の位置姿勢を示す場合、第1点P1の法線ベクトルは、第1点P1を含む三角メッシュの法線に沿った単位ベクトルである。第2点P2の法線ベクトルは、第2点P2を含む三角メッシュの法線に沿った単位ベクトルである。例えば、演算部13は、点P0を始点とし、第1点P1の法線ベクトルと第2点P2の法線ベクトルとの平均ベクトルと同じ向きを有する位置ベクトルを位置ベクトルV2として演算する。位置ベクトルV2は、位置ベクトルV1と同じ長さ(例えば1)を有する。
【0058】
決定部14は、エンドエフェクタモデルM2に対して予め定められた基準位置ベクトルV11,V12と、位置ベクトルV1,V2との相対位置関係が基準関係に近づくように、エンドエフェクタモデルM2の位置姿勢を決定する。エンドエフェクタモデルM2は、エンドエフェクタ301の三次元形状を示す。基準関係は、予め定められる。
【0059】
図1に例示される基準位置ベクトルV11,V12は、エンドエフェクタモデルM2における一方の指部310に対応するパーツの先端を始点とし、互いに直交する向きを有する。
図1に例示される基準位置ベクトルV11は、紙面に直交し、手前に向かう向きを有する。基準位置ベクトルV11,V12は、位置ベクトルV1,V2と同じ長さ(例えば1)を有する。
【0060】
登録部17は、決定部14によって決定された位置姿勢を把持点候補として登録する。具体的には、登録部17は、ワークモデルM1に対する、決定部14によって決定された位置姿勢のエンドエフェクタモデルM2の相対位置姿勢を把持点候補として登録する。
【0061】
図1に示す画像処理装置100によれば、ユーザは、ワークモデルM1上の第1点P1および第2点P2を指定するだけで、把持点候補を設定できる。すなわち、ワーク1をピッキングするエンドエフェクタ301の位置姿勢が簡易に設定される。
【0062】
§2 具体例
<A.画像処理装置のハードウェア構成例>
画像処理装置100は、典型的には、汎用的なアーキテクチャを有しているコンピュータであり、予めインストールされたプログラム(命令コード)を実行することで、本実施の形態に係る画像処理を実行する。このようなプログラムは、典型的には、各種記録媒体などに格納された状態で流通し、あるいは、ネットワークなどを介して画像処理装置100にインストールされる。
【0063】
このような汎用的なコンピュータを利用する場合には、本実施の形態に係る画像処理を実行するためのアプリケーションに加えて、コンピュータの基本的な処理を実行するためのOS(Operating System)がインストールされていてもよい。この場合には、本実施の形態に係るプログラムは、OSの一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。すなわち、本実施の形態に係るプログラム自体は、上記のようなモジュールを含んでおらず、OSと協働して処理が実行されてもよい。本実施の形態に係るプログラムとしては、このような一部のモジュールを含まない形態であってもよい。
【0064】
さらに、本実施の形態に係るプログラムは、他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には、上記のような組合せられる他のプログラムに含まれるモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。すなわち、本実施の形態に係るプログラムとしては、このような他のプログラムに組込まれた形態であってもよい。なお、プログラムの実行により提供される機能の一部もしくは全部を専用のハードウェア回路として実装してもよい。
【0065】
図2は、
図1に示す画像処理装置のハードウェア構成の一例を示す概略図である。
図2に示されるように、画像処理装置100は、演算処理部であるCPU(Central Processing Unit)110と、記憶部としてのメインメモリ112およびハードディスク114と、計測ヘッドインターフェース116と、入力インターフェース118と、表示コントローラ120と、通信インターフェース124と、データリーダ/ライタ126とを含む。これらの各部は、バス128を介して、互いにデータ通信可能に接続される。
【0066】
CPU110は、ハードディスク114にインストールされたプログラム(コード)をメインメモリ112に展開して、これらを所定順序で実行することで、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置であり、ハードディスク114から読み出されたプログラムに加えて、計測ヘッド400によって取得された画像などを保持する。さらに、ハードディスク114には、後述するような各種データなどが格納される。なお、ハードディスク114に加えて、あるいは、ハードディスク114に代えて、フラッシュメモリなどの半導体記憶装置を採用してもよい。
【0067】
計測ヘッドインターフェース116は、CPU110と計測ヘッド400との間のデータ伝送を仲介する。すなわち、計測ヘッドインターフェース116は、計測ヘッド400と接続される。計測ヘッドインターフェース116は、CPU110が発生した内部コマンドに従って、計測ヘッド400に対して投影コマンドおよび撮像コマンドを与える。計測ヘッドインターフェース116は、計測ヘッド400からの画像を一時的に蓄積するための画像バッファ116aを含む。計測ヘッドインターフェース116は、画像バッファ116aに所定コマ数の画像が蓄積されると、その蓄積された画像をメインメモリ112へ転送する。
【0068】
入力インターフェース118は、CPU110と入力装置160との間のデータ伝送を仲介する。すなわち、入力インターフェース118は、ユーザが入力装置160に入力した入力情報を受け付ける。
【0069】
表示コントローラ120は、表示装置150と接続され、CPU110における処理結果などをユーザに通知するように表示装置150の画面を制御する。
【0070】
通信インターフェース124は、CPU110とロボットコントローラ200などの外部装置との間のデータ伝送を仲介する。通信インターフェース124は、典型的には、イーサネット(登録商標)やUSB(Universal Serial Bus)などからなる。
【0071】
データリーダ/ライタ126は、CPU110と記録媒体であるメモリカード106との間のデータ伝送を仲介する。すなわち、メモリカード106には、画像処理装置100で実行されるプログラムなどが格納された状態で流通し、データリーダ/ライタ126は、このメモリカード106からプログラムを読出す。また、データリーダ/ライタ126は、CPU110の内部指令に応答して、計測ヘッド400によって撮像された画像および/または画像処理装置100における処理結果などをメモリカード106へ書込む。なお、メモリカード106は、SD(Secure Digital)などの汎用的な半導体記憶デバイスや、フレキシブルディスク(Flexible Disk)などの磁気記憶媒体や、CD-ROM(Compact Disk Read Only Memory)などの光学記憶媒体等からなる。
【0072】
<B.画像処理装置の機能構成例>
図3は、
図1に示す画像処理装置の機能構成の一例を示すブロック図である。
図3に示されるように、画像処理装置100は、把持点設定部10と、ヘッド制御部20と、画像処理部25と、モデル作成部30と、記憶部40とを備える。把持点設定部10およびモデル作成部30は、
図2に示すCPU110、入力インターフェース118および表示コントローラ120によって実現される。ヘッド制御部20は、
図2に示すCPU110および計測ヘッドインターフェース116によって実現される。画像処理部25は、
図2に示すCPU110および通信インターフェース124によって実現される。記憶部40は、
図2に示すメインメモリ112およびハードディスク114によって実現される。
【0073】
(B-1.ヘッド制御部)
ヘッド制御部20は、計測ヘッド400の動作を制御する。ヘッド制御部20は、予め定められた投影パターン光の投影を指示する投影コマンドを計測ヘッド400に出力する。ヘッド制御部20は、投影パターン光が投影されている状態で撮像コマンドを計測ヘッド400に出力する。ヘッド制御部20は、計測ヘッド400から取得した画像データ41を記憶部40に格納する。
【0074】
(B-2.記憶部)
記憶部40には、計測ヘッド400の撮像により得られた画像データ41が格納される。さらに、記憶部40には、ワーク1の三次元形状を示すCAD(Computer Aided Design)データ42が予め格納される。CADデータ42は、ワーク1の三次元形状を示すワークモデルの表面を構成する三角メッシュの位置姿勢を示す。さらに、記憶部40には、モデル作成部30によって生成されたモデルデータ43と、ワーク1を把持するときのエンドエフェクタ301の把持点候補を示す把持点データ44とが格納される。把持点データ44は、把持点設定部10によって生成される。
【0075】
(B-3.画像処理部)
画像処理部25は、計測ヘッド400の撮像により得られた画像データ41に対して以下のような処理を行なう。
【0076】
画像処理部25は、画像データ41に基づいて、計測ヘッド400の視野領域における三次元計測を行ない、三次元点群データを生成する。三次元点群データは、計測ヘッド400の視野領域に存在する物体表面(計測表面)上の各点の三次元座標を示す。例えば、画像処理部25は、三角測距方式を用いて三次元計測処理を行なう。三角測距方式として、固定パターン投影法、位相シフト法、ステレオマッチング法、光切断法などの公知の技術が採用され得る。例えば、位相シフト法では、正弦波状に濃淡を変化させた投影パターン光を被写体に投影した状態で撮像された画像を用いる方法である。濃淡の変化周期や位相を異ならせた投影パターンが複数用意され、計測ヘッド400の投影部401は、撮像部402の視野領域に対して、複数の投影パターン光を順次照射する。画像処理部25は、複数の投影パターンが投影されたときにそれぞれ撮像される画像データ41における対応する部分の明るさ(輝度や明度)の変化に基づいて、三次元座標を算出する。なお、三次元計測処理は、三角測距方式に限定されず、他の方法(例えば同軸方式など)を用いて実施されてもよい。
【0077】
画像処理部25は、予め作成された複数のテンプレートデータと三次元点群データとを照合し、三次元点群データの中からテンプレートと類似するデータを抽出する。テンプレートデータは、CADデータ42に基づいて予め作成される。画像処理部25は、三次元点群データの中から抽出した、テンプレートと類似するデータに基づいて、計測ヘッド400の視野領域に存在するワーク1の位置姿勢を検出する。画像処理部25は、検出されたワーク1を対象ワーク2として決定する。なお、画像処理部25は、複数のワーク1の位置姿勢を検出した場合、予め定められた選択基準に従って、当該複数のワーク1のうちの1つを対象ワーク2として選択する。
【0078】
画像処理部25は、対象ワーク2の位置姿勢と把持点データ44で示される把持点候補とハンドアイキャリブレーション結果とに基づいて、対象ワーク2をピッキングするときのエンドエフェクタ301の位置姿勢を決定する。画像処理部25は、決定した位置姿勢を示す位置姿勢情報をロボットコントローラ200に送信する。
【0079】
(B-4.モデル作成部)
モデル作成部30は、エンドエフェクタモデルM2の作成を支援するモデル作成画面を表示装置150に表示し、入力装置160への入力指示に従ってエンドエフェクタモデルM2を作成する。モデル作成部30は、作成したエンドエフェクタモデルM2に対して、基準位置ベクトルV11,V12,V13を設定する。例えば、基準位置ベクトルV11,V12,V13は、エンドエフェクタモデルM2上の一点を始点とし、互いに直交する向きを有する。基準位置ベクトルV11,V12,V13は、予め定められた長さ(例えば1)を有する。エンドエフェクタモデルM2の作成方法と、基準位置ベクトルV11,V12,V13の設定方法との詳細については後述する。
【0080】
(B-5.把持点設定部)
把持点設定部10は、ワーク1をピッキングするときのエンドエフェクタ301の位置姿勢候補(把持点候補)を設定する。
図3に例示される把持点設定部10は、表示制御部11と、受付部12と、演算部13と、決定部14と、複製処理部15と、判定部16と、登録部17とを含む。
【0081】
表示制御部11は、表示装置150の画面を制御する。具体的には、表示制御部11は、把持点候補を設定するための設定画面を表示装置150に表示させ、入力装置160への入力に応じて表示装置150の画面を遷移させる。設定画面には、CADデータ42によって示されるワークモデルM1が表示される。設定画面の詳細については後述する。
【0082】
受付部12は、入力装置160への入力操作に応じて、ワークモデルM1上の第1点P1および第2点P2の指定を受け付ける。
【0083】
演算部13は、第1点P1および第2点P2から定義される点P0を始点とし、第1点P1から第2点P2への向きと同じ向きを有する位置ベクトルV1を演算する。演算部13は、ワークモデルM1における第1点P1および第2点P2の法線ベクトルから定義される位置ベクトルV2を演算する。さらに、演算部13は、位置ベクトルV1と位置ベクトルV2との外積で表される位置ベクトルV3を演算する。
【0084】
決定部14は、基準位置ベクトルV11,V12,V13と位置ベクトルV1,V2,V3との相対位置関係が基準関係に近づくように、エンドエフェクタモデルM2の位置姿勢を決定する。基準関係は、エンドエフェクタモデルM2に対する基準位置ベクトルV11,V12,V13の設定位置姿勢、エンドエフェクタ301とワーク1との所望のクリアランスなどに応じて予め定められる。
【0085】
複製処理部15は、エンドエフェクタモデルM2の複製処理を実行し、複製されたエンドエフェクタモデルの位置姿勢を決定する。例えば、複製処理部15は、決定部14によって決定された位置姿勢のエンドエフェクタモデルM2を指定方向に指定量だけ回転させることによって複製されたエンドエフェクタモデルを生成する。
【0086】
判定部16は、決定部14および複製処理部15によって決定された各位置姿勢のエンドエフェクタモデルM2とワークモデルM1との干渉の有無を判定する。
【0087】
登録部17は、決定部14および複製処理部15によって決定された各位置姿勢を把持点候補として登録する。具体的には、登録部17は、ワークモデルM1に対する、決定部14および複製処理部15によって決定された各位置姿勢のエンドエフェクタモデルM2の相対位置姿勢を示す把持点データ44を生成し、生成した把持点データ44を記憶部40に格納する。
【0088】
<C.エンドエフェクタモデルの作成>
図4~9を参照して、モデル作成部30の処理例について説明する。
図4は、エンドエフェクタモデルの作成を支援するためのモデル作成画面の一例を示す図である。
図4に例示されるモデル作成画面70は、モデル作成部30によって表示装置150に表示される。
図4には、エンドエフェクタモデルM2の作成を開始する前のモデル作成画面70が示される。
【0089】
モデル作成画面70は、エンドエフェクタモデルM2を表示するための領域71と、編集用ボタン群73と、パーツ一覧74とを含む。領域71には、エンドエフェクタ座標系を示す座標軸72が表示されている。座標軸72を構成するX軸、Y軸およびZ軸は、互いに直交する。座標軸72の原点は、エンドエフェクタ301が取り付けられる多関節アーム302の先端のフランジ面に中心に対応する。XY平面は、当該フランジ面に対応する。Z軸は、フランジ面の法線に対応する。
【0090】
編集用ボタン群73は、エンドエフェクタモデルM2を構成するパーツの追加、複製、削除、反転の操作を受け付けるための複数のボタンを含む。パーツ一覧74は、エンドエフェクタモデルM2を構成するパーツの一覧である。
図4に例示されるモデル作成画面70は、編集用ボタン群73に対する操作を受け付ける前の状態に対応している。そのため、パーツ一覧74にはパーツが表示されていない。
【0091】
図5は、エンドエフェクタモデルの作成中に表示されるモデル作成画面の一例を示す図である。
図5に例示されるモデル作成画面70の領域71には、2指ハンドであるエンドエフェクタモデルM2を構成する6つのパーツ75~80が表示されている。
【0092】
モデル作成画面70は、パーツの色表示に関するラジオボタン群81を含む。ラジオボタン群81は、例えば、全てのパーツに対して色を付けるためのラジオボタンと、選択されたパーツのみに色を付けるためのラジオボタンと、パーツに色を付けないためのラジオボタンとを含む。ユーザは、ラジオボタン群81を操作することにより、複数のパーツを区別しやすくなる。
【0093】
モデル作成画面70は、エンドエフェクタモデルM2の外接直方体の辺およびサイズを表示するためのチェックボックス82を含む。チェックボックス82がチェックされることに応じて、モデル作成部30は、エンドエフェクタモデルM2の外接直方体の辺を示す線83と、当該外接直方体のサイズを示すテキスト84とを領域71に表示する。これにより、ユーザは、エンドエフェクタモデルM2のサイズを把握しやすくなる。
【0094】
各パーツの形状は、編集用ボタン群73に含まれるパーツ追加用のボタンの種類に応じて定められる。
図5に例示されるパーツ75は、「円柱追加」ボタンの操作に応じて追加されたパーツであり、円柱形状である。
図5に例示されるパーツ76~80は、「直方体追加」ボタンの操作に応じて追加されたパーツであり、直方体形状である。
【0095】
編集用ボタン群73は、「複製」ボタンと「削除」ボタンとを含む。「複製」ボタンが操作されると、モデル作成部30は、選択されたパーツと同形状のパーツを追加する。「削除」ボタンが操作されると、モデル作成部30は、選択されたパーツを削除する。
【0096】
さらに、編集用ボタン群73は、「反転(XZ平面)」ボタンと、「反転(YZ平面)」ボタンとを含む。「反転(XZ平面)」ボタンが操作されると、モデル作成部30は、選択されたパーツをXZ平面に対して鏡像反転させる。「反転(YZ平面)」ボタンが操作されると、モデル作成部30は、選択されたパーツをYZ平面に対して鏡像反転させる。
【0097】
パーツ一覧74は、エンドエフェクタモデルM2を構成するパーツ76~80の各々について、当該パーツの名前と当該パーツが属するグループとを含む。モデル作成部30は、ユーザの入力に応じて各パーツの名前を設定し、設定した名前を表示する。各パーツのグループは、当該パーツの属性を示し、予め定められた複数のグループの中から選択される。モデル作成部30は、プルダウンボタン74aの操作に応じて複数のグループを含むプルダウンメニューを表示し、ユーザの選択入力に応じてグループを設定する。モデル作成部30は、設定したグループを表示する。
【0098】
複数のグループは、エンドエフェクタ301が取りうる形態に応じて予め定められている。モデル作成部30は、設定されたグループに応じて、各パーツが固定部(非可動部)であるか可動部であるかを認識できる。
【0099】
例えば、2指ハンドであるエンドエフェクタについて、「Base」、「Left tip finger」、「Left finger」、「Right tip finger」および「Right finger」の5つのグループが予め定められる。「Base」グループは、指部を支持する部分(固定部)に対応する。「Left tip finger」グループは、2本の指部のうちの一方の先端部分に対応する。「Left finger」グループは、当該一方において、先端部分を除く部分に対応する。「Right tip finger」グループは、2本の指部のうちの他方の先端部分に対応する。「Right finger」グループは、当該他方において、先端部分を除く部分に対応する。モデル作成部30は、「Base」グループに属するパーツを固定部として認識する。モデル作成部30は、「Right tip finger」グループまたは「Right finger」グループに属するパーツを、2本の指部のうちの一方に対応する可動部であると認識する。モデル作成部30は、「Left tip finger」グループまたは「Left finger」グループに属するパーツを、2本の指部のうちの他方に対応する可動部であると認識する。さらに、モデル作成部30は、「Right tip finger」グループまたは「Right finger」グループに属するパーツの移動方向と、「Left tip finger」グループまたは「Left finger」グループに属するパーツの移動方向とが互いに反対向きであると認識する。
【0100】
図5に例示されるモデル作成画面70では、パーツ75,76が「Base」グループに属する。さらに、パーツ77、78,79,80が「Right finger」,「Right tip finger」,「Left finger」および「Left tip finger」グループにそれぞれ属する。
図5に例示されるエンドエフェクタモデルM2において、「Right tip finger」および「Left tip finger」にそれぞれ属するパーツ78,80は、Z軸に平行に延びている。
【0101】
全てのパーツに対して色を付けるためのラジオボタン(ラジオボタン群81に含まれる)がチェックされた場合、表示制御部11は、領域71に表示されるパーツの色をグループに応じて異ならせる。例えば、表示制御部11は、「Base」グループに属するパーツ75,76を灰色で表示し、「Right tip finger」グループまたは「Right finger」グループに属するパーツを水色で表示し、「Left tip finger」グループまたは「Left finger」グループに属するパーツをピンク色で表示する。これにより、ユーザは、エンドエフェクタモデルM2における固定部と2つの可動部とを区別しやすくなる。
【0102】
モデル作成画面70は、各パーツの位置、姿勢およびサイズを設定するためのタブ85,87を含む。タブ85は、パーツごとに位置、姿勢およびサイズを設定するときに操作される。タブ87は、全てのパーツの位置、姿勢およびサイズを一括で設定するときに操作される。
【0103】
図5に例示されるモデル作成画面70は、タブ85が操作されたときの状態に対応する。タブ85が操作されると、モデル作成部30は、パーツ一覧74において選択されているパーツ(
図5では「Left00」のパーツが選択されている)の位置、姿勢およびサイズを設定するための各種の入力欄を含む領域86を表示する。モデル作成部30は、領域86に表示される入力欄への入力に応じて、パーツ一覧74において選択されているパーツの位置、姿勢およびサイズを編集する。
【0104】
図6は、エンドエフェクタモデルの作成中に表示されるモデル作成画面の他の例を示す図である。
図6に例示されるエンドエフェクタモデルM2は、
図5に例示されるエンドエフェクタモデルM2と比較して、パーツ78,80の代わりに、パーツ78a,78b,80a,80bを含む点で相違する。パーツ78aは「Right finger」グループに属する。パーツ80aは「Left finger」グループに属する。パーツ78bは「Right tip finger」グループに属する。パーツ80bは「Left tip finger」グループに属する。
【0105】
図6に示されるように、パーツ78b,80bは、Z軸に対して傾斜している。ユーザは、領域86に表示される入力欄86aに傾き方向を入力することにより、パーツ78b,80bの傾き方向を設定できる。さらに、ユーザは、領域86に表示される入力欄86bに傾き角度を入力することにより、パーツ78b,80bの傾き角度を設定できる。
【0106】
図7は、エンドエフェクタモデルに関する各種パラメータを設定するときのモデル作成画面の一例を示す図である。
図7に例示されるモデル作成画面70は、タブ88が操作されたときの状態に対応する。
【0107】
図7に示されるように、モデル作成画面70は、入力欄89,90と、領域91とを含む。
【0108】
入力欄89には、作成中のエンドエフェクタモデルM2を識別するためのハンドIDが入力される。
【0109】
入力欄90には、判定部16による干渉判定に利用されるマージンが入力される。当該マージンの利用方法については後述する。
【0110】
領域91は、「Right tip finger」グループに属するパーツ78と、「Left tip finger」グループに属するパーツ80との間隔(以下、「ストローク幅」と称する。)を設定するために用いられる。ストローク幅は、「開き幅」とも称される。
【0111】
領域91には、「Right tip finger」グループに属するパーツ78と、「Left tip finger」グループに属するパーツ80との可動方向を選択するための入力欄91aが表示される。入力欄91aは、プルダウンボタンを含む。モデル作成部30は、プルダウンボタンへの操作に応じて、「X方向」および「Y方向」を含むプルダウンメニューを表示し、選択された方向を可動方向として設定する。
図7に例示されるモデル作成画面70の入力欄91aには、「Y方向」が選択入力されている。なお、可動方向は、通常、「Right tip finger」および「Left tip finger」グループにそれぞれ属するパーツ78,80における端面(「Base」グループに属するパーツと反対側の面)に平行である。
【0112】
領域91には、最大のストローク幅を設定するための入力欄91bが表示される。ユーザは、エンドエフェクタ301の仕様に応じた数値を入力欄91bに入力すればよい。
【0113】
領域91には、エンドエフェクタモデルM2が取りうるストローク幅のリスト91cと、リスト91cを作成するためのボタン91d,91eとが表示される。ボタン91dは、リスト91cに新たなストローク幅を追加するときに操作される。ボタン91eは、リスト91cから不要なストローク幅を削除するときに操作される。ユーザは、ワーク1の種類に応じて、複数のストローク幅をリスト91cに追加できる。リスト91cにおいて、ストローク幅を識別するインデックス番号とストローク幅の数値とが対応付けられている。
【0114】
図8は、互いに異なるストローク幅の3つのエンドエフェクタモデルを示す図である。
図8には、
図5に示すエンドエフェクタモデルM2が示される。
図8(a)には、インデックス番号「No.0」に対応するストローク幅「0mm」のエンドエフェクタモデルM2が示される。
図8(b)には、インデックス番号「No.2」に対応するストローク幅「15mm」のエンドエフェクタモデルM2が示される。
図8(c)には、インデックス番号「No.7」に対応するストローク幅「30mm」のエンドエフェクタモデルM2が示される。
【0115】
図8(c)を参照して、インデックス番号に対応するストローク幅のエンドエフェクタモデルM2の作成方法を説明する。モデル作成部30は、「Right tip finger」グループに属するパーツ78の端面の重心と、「Left tip finger」グループに属するパーツ80の端面の重心との中点P100の座標を演算する。
【0116】
モデル作成部30は、中点P100から可動方向に沿って「Right tip finger」グループに属するパーツ78側にストローク幅の半分だけ離れた点P101の座標を演算する。可動方向は、入力欄91aに入力された方向である。モデル作成部30は、「Right tip finger」グループに属するパーツ78の端面におけるパーツ80側の辺が点P101を通るように、「Right finger」グループに属するパーツ77と「Right tip finger」グループに属するパーツ78とを可動方向に沿って並進移動させる。
【0117】
同様に、モデル作成部30は、中点P100から可動方向に沿って「Left tip finger」グループに属するパーツ80側にストローク幅の半分だけ離れた点P102の座標を演算する。モデル作成部30は、「Left tip finger」グループに属するパーツ80の先端の点P102が点P102に一致するように、「Left finger」グループに属するパーツ79と「Left tip finger」グループに属するパーツ80とを可動方向に沿って並進移動させる。このようにして、インデックス番号に対応するストローク幅のエンドエフェクタモデルM2が作成される。
【0118】
図7に戻って、領域91には、初期インデックス番号を入力するための入力欄91fが表示される。入力欄91fには、リスト91cに含まれる少なくとも1つのインデックス番号から選択された1つのインデックス番号(初期インデックス番号)が入力される。ユーザは、ワーク1をピッキングするときのエンドエフェクタ301の2本の指部310間の隙間に対応するインデックス番号を入力欄91fに入力する。
図7に示す例では、インデックス番号「0」が入力欄91fに入力されている。モデル作成部30は、初期インデックス番号に対応するストローク幅のエンドエフェクタモデルM2を領域71に表示する。
【0119】
図9は、エンドエフェクタモデルの回転対称性に関する情報を設定するときのモデル作成画面の一例を示す図である。
図9には、
図5に示すエンドエフェクタモデルM2が示される。
図9に例示されるモデル作成画面70は、チェックボックス92と入力欄93とを含む。
【0120】
チェックボックス92は、エンドエフェクタモデルM2の回転対称性の有無を選択するために操作される。チェックボックス92がチェックされたことに応じて、モデル作成部30は、エンドエフェクタモデルM2を回転させたときに、「Right tip finger」グループに属するパーツ78および「Left tip finger」グループに属するパーツ80の一方が他方に重なり、かつ、他方が一方に重なる回転対称軸96を設定する。
図9に例示されるモデル作成画面70では、Z軸が回転対称軸96として設定される。
【0121】
入力欄93には、回転対称軸96を中心にパーツ78を回転させたときにパーツ80に重なり合う最小回転角度θが入力される。
図9に例示されるモデル作成画面70では、最小回転角度θとして180°が入力されている。
【0122】
モデル作成画面70は、保存ボタン94と終了ボタン95とを含む。保存ボタン94が操作されると、モデル作成部30は、現在の設定を保存する。終了ボタン95が操作されると、モデル作成部30は、エンドエフェクタモデルM2の作成処理を終了する。
【0123】
モデル作成部30は、作成されたエンドエフェクタモデルM2に対して、基準位置ベクトルV11,V12,V13を設定する。
【0124】
図10は、エンドエフェクタモデルに対して設定された基準位置ベクトルの一例を示す図である。
図10には、
図5に示すエンドエフェクタモデルM2が示される。
図11は、エンドエフェクタモデルに対して設定された基準位置ベクトルの別の例を示す図である。
図11には、
図6に示すエンドエフェクタモデルM2が示される。モデル作成部30は、入力欄91fに入力された初期インデックス番号に対応するストローク幅のエンドエフェクタモデルM2に対して、基準位置ベクトルV11,V12,V13を設定する。
【0125】
モデル作成部30は、例えば以下の条件(a)~(c)を満たすように、基準位置ベクトルV11,V12,V13を設定する。条件(a)~(c)は、予め定められる。
条件(a):基準位置ベクトルV11,V12,V13の始点は、「Left tip finger」グループに属するパーツ(
図10ではパーツ80,
図11ではパーツ80b)の端面80S内において、重心P11を通り、かつ可動方向に平行な線上の点のうち、「Right tip finger」グループに属するパーツに最も近い点P10である。端面80Sは、「Left tip finger」グループに属するパーツにおいて、「Base」グループに属するパーツと反対側の面である。
条件(b):基準位置ベクトルV11,V12,V13は、予め定められた長さ(例えば1)を有する。
条件(c):基準位置ベクトルV12は、可動方向に平行であり、「Right tip finger」グループに属するパーツに向いた向きを有する。
条件(d):基準位置ベクトルV13は、端面80Sの法線方向と同じ向きを有する。
条件(e):基準位置ベクトルV11は、端面80Sに平行であり、基準位置ベクトルV12と直交する向きを有する。ただし、基準位置ベクトルV11と基準位置ベクトルV12との外積V11×V12は、「Base」グループに属するパーツと反対側を向く。
【0126】
上述したように、可動方向は、通常、「Left tip finger」グループに属するパーツ78の端面80Sに平行である。そのため、上記の条件(c)~(e)に従った基準位置ベクトルV11,V12,V13が設定されることにより、基準位置ベクトルV11,V12,V13は、互いに直交する。
【0127】
モデル作成部30は、上記のようにして設定したエンドエフェクタモデルM2の各種の設定情報を示すモデルデータ43を生成し、生成したモデルデータ43を記憶部40に格納する。具体的には、モデルデータ43は、少なくとも以下の情報を示す。
・初期インデックス番号に対応するストローク幅のエンドエフェクタモデルを構成する各パーツの位置、姿勢およびサイズ
・各パーツが属するグループ
・「Right tip finger」グループに属するパーツと「Left tip finger」グループに属するパーツとの可動方向(入力欄91aに入力された方向)
・基準位置ベクトルV11,V12,V13
・回転対称性の有無
・回転対称性が有りの場合、回転対称軸および最小回転角度θ
・入力欄90に入力されたマージン。
【0128】
<D.把持点候補の登録方法>
<D-1.決定部によるエンドエフェクタの位置姿勢の決定方法>
図12は、決定部によるエンドエフェクタの位置姿勢の決定方法を説明する図である。
図12に示されるように、ワークモデルM1の表面上において第1点P1と第2点P2とが指定される。演算部13は、例えば、ワークモデルM1の表面に沿って第1点P1と第2点P2とを最短距離で結ぶ線Lの中点P0を始点とし、第1点P1から第2点P2への向きと同じ向きを有する位置ベクトルV1を演算する。位置ベクトルV1は、予め定められた長さ(例えば1)を有する。
【0129】
演算部13は、ワークモデルM1における第1点P1の法線ベクトルVaと、ワークモデルM1における第2点P2の法線ベクトルVbとの平均ベクトルを演算する。法線ベクトルVa,Vbは、ワークモデルM1を構成する三角メッシュの法線に沿った単位ベクトルである。演算部13は、点P0を始点とし、法線ベクトルVaと法線ベクトルVbとの平均ベクトルと同じ向きを有する位置ベクトルV2を演算する。位置ベクトルV2は、予め定められた長さ(例えば1)を有する。
【0130】
さらに、演算部13は、位置ベクトルV1と位置ベクトルV2との外積で表される位置ベクトルV3を演算する。
【0131】
上述したように、基準位置ベクトルV11,V12,V13は、初期インデックス番号に対応するストローク幅のエンドエフェクタモデルM2に対して設定される。モデルデータ43は、例えば、基準位置ベクトルV11,V12,V13それぞれの始点および終点の座標を示す。
【0132】
決定部14は、基準位置ベクトルV11,V12,V13と位置ベクトルV1,V2,V3との相対位置関係が基準関係に近づくように、エンドエフェクタモデルM2の位置姿勢を決定する。
【0133】
本実施の形態では、基準関係は、2指ハンドによる外径把持を想定して、以下のように予め定められる。すなわち、基準関係は、位置ベクトルV2の向きに位置ベクトルV1,V2,V3を規定距離だけ並進移動させたときに、基準位置ベクトルV11,V12,V13にそれぞれ一致する関係である。規定距離は、ピッキング動作の開始時においてエンドエフェクタ301とワーク1との間の必要な隙間を考慮して定められる。
【0134】
基準位置ベクトルV11,V12,V13は、エンドエフェクタ座標系で示される。位置ベクトルV1,V2,V3は、ワーク座標系で示される。決定部14は、基準位置ベクトルV11~V13と位置ベクトルV1~V3との相対位置関係が基準関係に最も近づくようにエンドエフェクタ座標系を剛体変換させるための座標変換行列を決定する。当該座標変換行列を用いてエンドエフェクタモデルM2を座標変換することにより、基準位置ベクトルV11~V13と位置ベクトルV1~V3との相対位置関係が基準関係に最も近づくときのエンドエフェクタモデルM2の位置姿勢が特定される。
【0135】
決定部14は、ワーク座標系において、基準関係に基づいて位置ベクトルV1~V3を補正する。具体的には、決定部14は、位置ベクトルV2の向きに規定距離だけ位置ベクトルV1,V2,V3を並進移動させる。決定部14は、補正後の位置ベクトルV1,V2,V3の各々の終点のXYZ座標を演算する。決定部14は、座標変換後の基準位置ベクトルV11,V12,V13の終点のXYZ座標と補正後の位置ベクトルV1,V2,V3の終点のXYZ座標とのそれぞれの差分が最小となるように、座標変換行列を決定すればよい。
【0136】
<D-2.設定画面>
図13は、把持点候補を設定するための設定画面の一例を示す図である。
図13に例示される設定画面50は、把持点設定部10の表示制御部11によって表示装置150に表示される。
図11に例示される設定画面50は、タブ67が操作されたときの状態に対応し、エンドエフェクタ301が2指ハンドであるときに表示される。
【0137】
図13に示されるように、設定画面50は、領域51を含む。表示制御部11は、記憶部40からCADデータ42を読み出し、CADデータ42によって示されるワークモデルM1を領域51に表示させる。なお、ワークモデルM1の表示形式は特に限定されない。例えば、ワークモデルM1は、ワイヤーフレーム形式で表示されてもよい。
【0138】
表示制御部11は、領域51に表示されたワークモデルM1に対する操作を受け付ける。表示制御部11は、受け付けた操作に応じて、ワークモデルM1の位置姿勢を変更する。例えば、表示制御部11は、ワークモデルM1を拡大縮小、並進移動または回転移動させる。
【0139】
表示制御部11は、ユーザによる操作を補助するために、X軸52x、Y軸52yおよびZ軸52zと、線53x、線53yおよび線53zとを領域51に表示させる。
【0140】
X軸52x、Y軸52yおよびZ軸52zは、ワークモデルを基準とする座標軸であり、ワークモデルM1の重心を原点とするワーク座標系を表す。なお、CADデータ42において設定されている原点は、必ずしもワークモデルM1の重心とは限らない。そのため、表示制御部11は、原点がワークモデルM1の重心と一致するように、CADデータ42に含まれる座標を変換する。
【0141】
線53x,53y,53zは、それぞれX軸52x,Y軸52yおよびZ軸52zを中心とする回転方向を示す円状の線である。
【0142】
受付部12は、設定画面50の領域51において入力装置160によって指定された位置に基づいて、ワークモデルM1上の第1点P1および第2点P2を受け付ける。例えば、領域51においてワークモデルM1と重なる2点が順にクリックされると、受付部12は、当該2点のうち先にクリックされた点を第1点P1として受け付け、当該2点のうち後にクリックされた点を第2点P2として受け付ける。
【0143】
上述したように、受付部12が受け付けた第1点P1および第2点P2に応じて、ワークモデルM1に対して位置ベクトルV1,V2,V3が演算される。そして、モデルデータ43によって示される基準位置ベクトルV11,V12,V13と位置ベクトルV1、V2,V3との相対位置関係が基準関係に近づくように、エンドエフェクタモデルM2の位置姿勢が決定される。
【0144】
受付部12が第1点P1および第2点P2を受け付けるたびに、当該第1点P1および第2点P2に応じて、エンドエフェクタモデルM2の位置姿勢が決定される。そのため、受付部12が第1点P1および第2点P2をN回(Nは2以上の整数)受け付けた場合、エンドエフェクタモデルM2のN個の位置姿勢が決定される。
【0145】
設定画面50は、把持点候補の登録処理を補助するための各種のボタンを含む。
図13に示されるように、設定画面50は、把持点選択ボタン群55と、削除ボタン56と、調整ボタン群57と、反転ボタン群58と、リセットボタン59と、複製ボタン群60とを含む。
【0146】
把持点選択ボタン群55は、受付部12が第1点P1および第2点P2をN回(Nは2以上の整数)受け付けた場合に、決定されたエンドエフェクタモデルM2のN個の位置姿勢のうちの1つを選択するためのボタンを含む。表示制御部11は、把持点選択ボタン群55の操作に応じて、選択された位置姿勢のエンドエフェクタモデルM2を領域51にワークモデルM1と重ねて表示させる。
【0147】
削除ボタン56は、決定されたエンドエフェクタモデルM2の位置姿勢を削除するためのボタンである。削除ボタン56の操作に応じて、登録部17は、把持点選択ボタン群55の操作によって選択された位置姿勢を把持点候補から削除する。
【0148】
<D-3.エンドエフェクタモデルの位置姿勢の調整>
図12を用いて説明したように、ワークモデルM1における第1点P1の法線ベクトルVaと、ワークモデルM1における第2点P2の法線ベクトルVbとの平均ベクトルと同じ向きを有する位置ベクトルV2が設定される。そのため、位置ベクトルV2は、位置ベクトルV1と直交しない可能性がある。一方、基準位置ベクトルV11,V12,V13は互いに直交する。従って、第1点P1および第2点P2の指定の仕方によっては、決定部14によって決定された位置姿勢が所望の位置姿勢からずれ得る。本実施の形態に係る画像処理装置100は、決定部14によって決定された位置姿勢を調整する機能を有する。
【0149】
図14は、エンドエフェクタモデルの位置姿勢の調整方法の一例を説明する図である。
図15は、エンドエフェクタモデルの位置姿勢の調整方法の他の例を説明する図である。
図14に例示される設定画面50の領域51には、把持点選択ボタン群55の操作によって選択された位置姿勢のエンドエフェクタモデルM2が表示されている。
図14には、
図5に示すエンドエフェクタモデルM2が示される。
図15には、
図6に示すエンドエフェクタモデルM2が示される。表示制御部11は、モデルデータ43によって示されるエンドエフェクタモデルM2の座標を決定部14によって決定された座標変換行列を用いて変換する。表示制御部11は、座標変換後のエンドエフェクタモデルM2を領域51に表示させる。
【0150】
さらに、表示制御部11は、決定部14によって決定された座標変換行列を用いて、モデルデータ43によって示される基準位置ベクトルV11,V12,V13を座標変換する。表示制御部11は、座標変換後の基準位置ベクトルV11,V12,V13を領域51に表示させる。
【0151】
調整ボタン群57(
図13参照)は、ボタン57a~57hを含む。決定部14は、ボタン57a~57hの操作に応じて、決定した位置姿勢を調整する。さらに、表示制御部11は、調整された位置姿勢のエンドエフェクタモデルM2を領域51に表示させる。
【0152】
ボタン57a,57b,57cは、エンドエフェクタモデルM2を並進移動させるためのボタンである。並進移動の方向は、予め定められている。例えば、ボタン57a,57b,57cが操作されることにより、決定部14は、基準位置ベクトルV11,V12,V13と同じ方向(すなわち、エンドエフェクタ座標系のX軸,Y軸,Z軸の正方向)にエンドエフェクタモデルM2をそれぞれ並進移動させる。そして、表示制御部11は、並進移動されたエンドエフェクタモデルM2を領域51に表示させる。
【0153】
ボタン57d,57e,57fは、エンドエフェクタモデルM2を回転移動させるためのボタンである。回転移動の軸は、予め定められている。例えば、ボタン57d,57e,57fが操作されることにより、決定部14は、基準位置ベクトルV11,V12,V13(または、基準位置ベクトルV11,V12,V13に平行な軸)を回転軸としてエンドエフェクタモデルM2をそれぞれ回転移動させる。表示制御部11は、回転移動されたエンドエフェクタモデルM2を領域51に表示させる。
【0154】
ボタン57gが操作されることにより、表示制御部11は、エンドエフェクタモデルM2のストローク幅を変更する。具体的には、表示制御部11は、「Left tip finger」、「Left finger」、「Right tip finger」および「Right finger」グループに属するパーツを並進移動させる。移動方向は、決定部14によって決定された座標変換行列を用いて、モデルデータ43で示される可動方向を示すベクトルを座標変換することにより得られるベクトルの方向である。
【0155】
ボタン57hが操作されることにより、決定部14は、エンドエフェクタモデルM2を基準位置ベクトルV13の方向に沿って並進移動させる。そして、表示制御部11は、並進移動されたエンドエフェクタモデルM2を領域51に表示させる。なお、ボタン57c,57hのいずれが操作されても、エンドエフェクタモデルM2は、基準位置ベクトルV13の方向に沿って並進移動する。ただし、ボタン57c,57hのいずれが操作されたかに応じて、複製ボタン群60(
図13参照)が操作されたときに複製されるエンドエフェクタモデルの位置姿勢に差異が生じる。
【0156】
調整ボタン群57は、ボタン57a~57hが操作されたときの単位移動量を設定するためのプルダウンボタン57iを含む。
図14および
図15に例示される設定画面50では、ボタン57a~57c,57g,57hが操作されたときの単位移動量がエンドエフェクタモデルM2の外接直方体の辺の長さの1%であり、ボタン57d~57fが操作されたときの単位移動量が1°である。なお、ボタン57a~57hの各々は、プラスボタンとマイナスボタンとを含む。プラスボタンは、正方向に単位移動量だけエンドエフェクタモデルM2を移動させるためのボタンであり、マイナスボタンは、負方向に単位移動量だけエンドエフェクタモデルM2を移動させるためのボタンである。
【0157】
表示制御部11は、ボタン57aの操作による並進移動方向をユーザに認識させるために、当該並進移動方向と平行であるベクトルV21,V31を領域51に表示させる。ベクトルV21,V31は、基準位置ベクトルV11と平行な軸である。表示制御部11は、ベクトルV21,V31とボタン57a,57dとを同一色(例えば赤色)で表示させる。表示制御部11は、ボタン57bの操作による並進移動方向をユーザに認識させるために、当該並進移動方向と平行であるベクトルV22,V32を領域51に表示させる。ベクトルV22,V32は、基準位置ベクトルV12と平行な軸である。表示制御部11は、ベクトルV22,V32とボタン57b,57eとを同一色(例えば緑色)で表示させる。表示制御部11は、ボタン57cの操作による並進移動方向をユーザに認識させるために、当該並進移動方向と平行であるベクトルV23,V33を領域51に表示させる。ベクトルV23,V33は、基準位置ベクトルV13と平行な軸である。表示制御部11は、ベクトルV23,33とボタン57c,57fとを同一色(例えば青色)で表示させる。これにより、ユーザは、所望の移動方向に応じたボタン操作を行ないやすい。
【0158】
ベクトルV21~V23は、エンドエフェクタモデルM2における「Right tip finger」グループに属するパーツ(
図14ではパーツ78)の先端付近に表示される。ベクトルV31~V33は、エンドエフェクタモデルM2における「Left tip finger」グループに属するパーツ(
図14ではパーツ80、
図15ではパーツ80b)の先端付近に表示される。
図15に示されるように、ワークモデルM1の表示方向によって、ベクトルV21~V23とベクトルV31~V33との一方(
図15ではベクトルV21~V23)は、ワークモデルM1に隠れる。しかしながら、ユーザは、ベクトルV21~V23とベクトルV31~V33との一方がワークモデルM1またはエンドエフェクタモデルM2に隠れている場合であっても、他方を見ながら、所望の移動方向に応じたボタン操作を行なえる。
【0159】
図14および
図15に示されるように、反転ボタン群58(
図13参照)は、上下反転ボタン58aと、左右反転ボタン58bとを含む。上下反転ボタン58aが操作されると、表示制御部11は、基準位置ベクトルV12を含む直線を回転軸として、エンドエフェクタモデルM2を180°回転させる。左右反転ボタン58bが操作されると、表示制御部11は、決定部14によって決定された座標変換行列を用いて座標変換されたエンドエフェクタ座標系のZ軸を回転軸として、エンドエフェクタモデルM2を180°回転させる。ユーザは、反転ボタン群58を操作することにより、エンドエフェクタモデルM2を簡単に反転させることができる。
【0160】
リセットボタン59が操作されると、決定部14は、エンドエフェクタモデルM2の位置姿勢の調整を全てリセットする。そのため、表示制御部11は、領域51に表示されているエンドエフェクタモデルM2の位置姿勢を、調整前の位置姿勢に戻す。
【0161】
<D-4.ボタン操作に応じたエンドエフェクタモデルの自動複製>
図13および
図16~
図19を参照して、エンドエフェクタモデルM2の自動複製操作について説明する。指定された第1点P1および第2点P2に基づいて決定されたエンドエフェクタモデルの位置姿勢から指定方向に回転移動した位置姿勢であっても、把持点候補として利用できる場合がありうる。そのため、指定方向に回転移動した位置姿勢も把持点候補として登録可能なように、複製処理部15は、エンドエフェクタモデルM2の自動複製処理を行なう。
【0162】
図13に示す複製ボタン群60は、自動複製に関する設定を行なうためのボタン群である。
図13に示されるように、複製ボタン群60は、「Single」ボタン60aを含む。ボタン60aが操作されたとき、自動複製機能がオフに設定される。
【0163】
図16は、複製ボタン群に含まれる「Fan」ボタン60bが操作されたときの設定画面の例を示す図である。
図17は、複製ボタン群に含まれる「Cylinder」ボタン60cが操作されたときの設定画面の例を示す図である。
図18は、複製ボタン群に含まれる「Hybrid」ボタン60dが操作されたときの設定画面の例を示す図である。
図19は、複製ボタン群に含まれる「Circle」ボタン60eが操作されたときの設定画面の例を示す図である。
【0164】
複製処理部15は、ボタン60b~60eの操作に応じて、回転軸を決定する。複製処理部15は、エンドエフェクタモデルM2における「Right tip finger」グループに属するパーツの端面の重心と「Left tip finger」グループに属するパーツの端面の重心との中点P100(
図8(c)参照)の座標を演算する。中点P100の座標は、決定部14によって決定された座標変換行列を用いて変換されたパーツの座標に基づいて演算される。
【0165】
複製処理部15は、ボタン60bの操作に応じて、中点P100を通り、基準位置ベクトルV12に平行な直線を回転軸として決定する。複製処理部15は、ボタン60cの操作に応じて、中点P100を通り、基準位置ベクトルV11に平行な直線を回転中心軸として決定する。複製処理部15は、ボタン60dの操作に応じて、中点P100を通り、基準位置ベクトルV11に平行な直線を第1の回転軸として決定し、中点P100を通り、基準位置ベクトルV12に平行な直線を第2の回転軸として決定する。複製処理部15は、ボタン60eの操作に応じて、中点P100を通り、基準位置ベクトルV13に平行な直線を回転軸として決定する。
【0166】
複製ボタン群60は、回転中心軸に対する回転角度を設定するためのボタン60f~60hを含む。ボタン60fは、開始角度を設定するために操作される。ボタン60gは、終了角度を設定するために操作される。ボタン60hは、複製個数を設定するために操作される。ボタン60f~60hの各々は、プラスボタンとマイナスボタンとを含む。プラスボタンが操作されることにより、角度または個数が正側に変更される。マイナスボタンが操作されることにより、角度または個数が負側に変更される。
【0167】
複製ボタン群60は、ボタン60f,60gが操作されたときの角度の単位変更量を選択するためのプルダウンボタン60iを含む。
図16~
図19に例示される設定画面50では、単位変更量として1°が選択されている。なお、ボタン60hが操作されたときの複製個数の変更量は1である。
【0168】
表示制御部11は、領域51において、開始角度、終了角度および複製個数を示すテキストT66を表示させる。ユーザは、テキストT66を見ながらボタン60f~60hを操作することにより、所望の開始角度、終了角度および複製個数を設定できる。
【0169】
図16に例示される設定画面50では、開始角度「-30°」、終了角度「30°」、複製個数「3個」が設定されている。そのため、複製処理部15は、回転軸に対して、エンドエフェクタモデルM2を-30°、0°、30°回転させることにより、エンドエフェクタモデルM2_1~M2_3をそれぞれ複製する。表示制御部11は、複製されたエンドエフェクタモデルM2_1~M2_3を領域51に表示する。なお、エンドエフェクタモデルM2_2は、エンドエフェクタモデルM2と一致する。
【0170】
図17に例示される設定画面50では、開始角度「-150°」、終了角度「150°」、複製個数「7個」が設定されている。そのため、複製処理部15は、回転軸に対して、エンドエフェクタモデルM2を-150°,-100°,-50°,0°,50°,100°,150°回転させることにより、エンドエフェクタモデルM2_1~M2_7をそれぞれ複製する。表示制御部11は、複製されたエンドエフェクタモデルM2_1~M2_7を領域51に表示する。なお、エンドエフェクタモデルM2_4は、エンドエフェクタモデルM2と一致する。
【0171】
図18に例示される設定画面50では、第1の回転軸に対して、開始角度「-30°」、終了角度「30°」、複製個数「3個」が設定されている。さらに、第2の回転軸に対して、開始角度「-150°」、終了角度「150°」、複製個数「7個」が設定されている。そのため、複製処理部15は、第1の回転軸に対して、エンドエフェクタモデルM2を-30°、0°、30°回転させることにより、エンドエフェクタモデルM2_1~M2_3をそれぞれ複製する。
【0172】
さらに、複製処理部15は、第2の回転軸に対して、エンドエフェクタモデルM2_1を-150°,-100°,-50°,0°,50°,100°,150°回転させることにより、7つのエンドエフェクタモデルを複製する。複製処理部15は、第2の回転軸に対して、エンドエフェクタモデルM2_2(M2)を-150°,-100°,-50°,0°,50°,100°,150°回転させることにより、7つのエンドエフェクタモデルを複製する。複製処理部15は、第2の回転軸に対して、エンドエフェクタモデルM2_3を-150°,-100°,-50°,0°,50°,100°,150°回転させることにより、7つのエンドエフェクタモデルを複製する。
【0173】
このようにして、複製処理部15は、合計24個のエンドエフェクタモデルM2_1~M2_24を複製する。表示制御部11は、複製されたエンドエフェクタモデルM2_1~M2_24を領域51に表示する。
【0174】
図19に例示される設定画面50では、開始角度「-88°」、終了角度「75°」、複製個数「3個」が設定されている。そのため、複製処理部15は、回転軸に対して、エンドエフェクタモデルM2を-88°,-6.5°,75°回転させることにより、エンドエフェクタモデルM2_1~M2_3をそれぞれ複製する。表示制御部11は、複製されたエンドエフェクタモデルM2_1~M2_3を領域51に表示する。
【0175】
なお、調整ボタン群57に含まれるボタン57a~57gが操作され、決定部14が位置姿勢の調整を行なった場合、複製処理部15は、調整後の位置姿勢に基づいてエンドエフェクタモデルの複製を行なう。具体的には、複製処理部15は、調整後の位置姿勢のエンドエフェクタモデルM2に基づいて回転軸を設定する。複製処理部15は、設定した回転軸に対して調整後のエンドエフェクタモデルM2を回転させることにより、エンドエフェクタモデルを複製する。そのため、例えば
図17においてエンドエフェクタモデルM2が基準位置ベクトルV11の向きに+1だけ並進移動された場合、複製されるエンドエフェクタモデルM2_1~M2_7も基準位置ベクトルV11の向きに+1だけ並進移動する。
【0176】
調整ボタン群57に含まれるボタン57hが操作された場合も、複製処理部15は、調整後の位置姿勢に基づいてエンドエフェクタモデルの複製を行なう。ただし、複製処理部15は、調整前の位置姿勢のエンドエフェクタモデルM2に基づいて回転軸を設定する。そして、複製処理部15は、設定した回転軸に対して調整後のエンドエフェクタモデルM2を回転させることにより、エンドエフェクタモデルを複製する。そのため、例えば
図17においてボタン57hの操作によりエンドエフェクタモデルM2が基準位置ベクトルV13の向きに+1だけ並進移動された場合、複製されるエンドエフェクタモデルM2_1~M2_7の各々は、回転軸に近づくように+1だけ並進移動する。
【0177】
<D-5.エンドエフェクタモデルの手動複製>
図13に示されるように、設定画面50は、コピーボタン61を含む。コピーボタン61の操作に応じて、複製処理部15は、決定部14によって決定された位置姿勢のエンドエフェクタモデルM2を複製する。複製されたエンドエフェクタモデルの初期の位置姿勢は、決定部14によって決定された位置姿勢と同一である。表示制御部11は、複製されたエンドエフェクタモデルを領域51に表示する。複製処理部15は、複製されたエンドエフェクタモデルに対する操作に応じて、当該複製されたエンドエフェクタモデルの位置姿勢を変更する。
【0178】
図13に示されるように、設定画面50は、反転コピーボタン62を含む。反転コピーボタン62の操作に応じて、複製処理部15は、ワーク座標系の原点(ワークモデルM1の重心)に対して、決定部14によって決定された位置姿勢のエンドエフェクタモデルM2と点対称であるエンドエフェクタモデルを複製する。表示制御部11は、複製されたエンドエフェクタモデルを領域51に表示する。
【0179】
<D-6.補助ガイド面の表示機能>
表示制御部11は、エンドエフェクタモデルM2の先端とワークモデルM1との相対位置関係が容易に把握されるように、補助ガイド面の表示機能を有している。補助ガイド面は、設定画面50のプルダウンボタン63(
図13参照)の操作に応じて表示される。
【0180】
図20は、設定画面に表示される補助ガイド面の一例を示す図である。
図20に例示される設定画面50では、プルダウンボタン63により「Cylinder(X)」が選択されている。
図20に示されるように、設定画面50の領域51には、エンドエフェクタモデルM2の「Right tip finger」グループに属するパーツ78と「Left tip finger」グループに属するパーツ80との間に補助ガイド面69aが表示される。補助ガイド面69aは、パーツ78,80の端面にそれぞれ位置する点P101,P102(
図8(c)参照)を結ぶ線分を直径とし、基準位置ベクトルV11に平行な軸を有する円筒形状である。点P101は、パーツ78の端面において、当該端面の重心を通り、かつ可動方向に平行な線上の点のうちパーツ80に最も近い点である。点P102は、パーツ80の端面において、当該端面の重心を通り、かつ可動方向に平行な線上の点のうちパーツ78に最も近い点P10(
図10参照)と一致する。補助ガイド面69aが表示されることにより、エンドエフェクタモデルM2の先端とワークモデルM1との相対位置関係が容易に把握される。
【0181】
なお、プルダウンボタン63により、「Cylinder(Z)」が選択されてもよい。この場合、設定画面50の領域51には、点P101,P102を結ぶ線分を直径とし、基準位置ベクトルV13に平行な軸を有する円筒形状の補助ガイド面が表示される。
【0182】
図21は、設定画面に表示される補助ガイド面の別の例を示す図である。
図21に例示される設定画面50では、プルダウンボタン63により「Rectangular(Z)」が選択されている。
図21に示されるように、設定画面50の領域51には、エンドエフェクタモデルM2の「Right tip finger」グループに属するパーツ78と「Left tip finger」グループに属するパーツ80との間に角筒形状の補助ガイド面69bが表示される。補助ガイド面69bの断面は、パーツ78,80の先端にそれぞれ位置する点P101,P102を結ぶ線分を直径とする円の外接正方形である。さらに、角筒形状の補助ガイド面69bの軸は、基準位置ベクトルV13に平行である。補助ガイド面69bが表示されることにより、エンドエフェクタモデルM2の先端と直方体形状のワークモデルM1との相対位置関係が容易に把握される。
【0183】
なお、プルダウンボタン63により、「Rectangular(X)」が選択されてもよい。この場合、設定画面50の領域51には、点P101,P102を結ぶ線分を直径とする円の外接正方形を断面とし、基準位置ベクトルV11に平行な軸を有する角筒形状の補助ガイド面が表示される。
【0184】
ユーザは、ワークモデルM1の形状、エンドエフェクタモデルM2とワークモデルM1との相対位置関係などに応じてプルダウンボタン63を操作し、補助ガイド面の形状および向きを適宜変更すればよい。
【0185】
なお、調整ボタン群57に含まれるボタン57a~57gが操作され、決定部14が位置姿勢を調整した場合、表示制御部11は、調整後の位置姿勢に基づいて補助ガイド面を表示させる。そのため、例えば
図20においてエンドエフェクタモデルM2が基準位置ベクトルV11の向きに+1だけ並進移動された場合、補助ガイド面69aも基準位置ベクトルV11の向きに+1だけ並進移動する。また、
図20においてエンドエフェクタモデルM2のストローク幅が+1だけ変更された場合、補助ガイド面69aの直径も+1だけ変更される。
【0186】
一方、調整ボタン群57に含まれるボタン57hが操作された場合、表示制御部11は、調整前の位置姿勢(すなわち、決定部14によって決定された位置姿勢)のエンドエフェクタモデルM2に基づいて補助ガイド面を表示させる。そのため、例えば
図20においてボタン57hの操作によりエンドエフェクタモデルM2が基準位置ベクトルV13の向きに+1だけ並進移動されたとしても、補助ガイド面69aは並進移動しない。
【0187】
<D-7.他の設定機能>
図13に戻って、設定画面50は、ボタン群64,65,66をさらに含む。ボタン群64は、アプローチ動作における進行方向を設定するために操作される。
【0188】
図22は、アプローチ動作の設定方法を説明する図である。
図22に示されるように、ボタン群64は、「Tip」ボタン64aと、「ToolZ」ボタン64bとを含む。「Tip」ボタン64aは、指部310の延伸方向に沿ってエンドエフェクタ301をワーク1に近づけるアプローチ動作を設定するときに操作される。指部310の延伸方向は、エンドエフェクタモデルM2における「Right tip finger」および「Left tip finger」グループに属するパーツ(
図22ではパーツ78b)の端面の法線方向に対応する。「ToolZ」ボタン64bは、多関節アーム302のフランジ面の法線方向(エンドエフェクタ座標系のZ軸方向)に沿ってエンドエフェクタ301をワーク1に近づけるアプローチ動作を設定するときに操作される。
【0189】
ボタン群65は、決定部14によって決定された位置姿勢の優先度を設定するために操作される。ボタン群65は、「High」ボタンと「Low」ボタンとを含む。ユーザは、優先度の高い位置姿勢に対して「High」ボタンを操作し、優先度の低い位置姿勢に対して「Low」ボタンを操作する。登録部17は、「High」ボタンが操作された位置姿勢を、高優先度の把持点候補として登録する。登録部17は、「Low」ボタンが操作された位置姿勢を、低優先度の把持点候補として登録する。
【0190】
まず、画像処理部25は、高優先度の把持点候補に基づいて、対象ワーク2をピッキングするときのエンドエフェクタ301の位置姿勢を決定する。ただし、高優先度の把持点候補を用いて決定した位置姿勢のエンドエフェクタ301が他のワーク1やコンテナ5と干渉する可能性がある。このような場合、画像処理部25は、低優先度の把持点候補に基づいて、対象ワーク2をピッキングするときのエンドエフェクタ301の位置姿勢を決定する。
【0191】
ボタン群66は、2本の指部310を用いた把持方法を設定するために操作される。ボタン群66は、外径把持を設定するための「Closing」ボタンと、内径把持を設定するための「Open」ボタンとを含む。
【0192】
表示制御部11は、現在の設定状態を示すテキスト54を領域51内に表示する。テキスト54は、「Object ID」と「Hand ID」と「Grasp point」と「DB ID」と「Priority」と「Approach」と「Pattern」と「Direction」とを示す。「Object ID」は、ワークモデルM1を識別するIDである。「Hand ID」は、エンドエフェクタモデルM2を識別するIDである。「Hand ID」は、
図7の入力欄89に入力されたIDの中から選択される。「Grasp point」は、第1点P1および第2点P2の指定に応じて決定部14によって決定された位置姿勢の総数(分母)と、領域51に現在表示されているエンドエフェクタモデルM2の位置姿勢の番号(分子)とを示す。「DB ID」は、決定部14によって決定された位置姿勢と自動複製されたエンドエフェクタモデルの位置姿勢との総数(分母)と、領域51に現在表示されているエンドエフェクタモデルM2の位置姿勢の番号(分子)とを示す。「Priority」は、ボタン群65への操作によって現在設定されている優先度を示す。「Approach」は、ボタン群64への操作によって現在設定されているアプローチ動作を示す。「Pattern」は、複製ボタン群60への操作によって現在設定されている自動複製パターンを示す。「Direction」は、ボタン群66への操作によって現在設定されている把持方法を示す。
【0193】
<D-8.干渉判定>
判定部16は、決定部14によって決定された位置姿勢のエンドエフェクタモデルM2と複製処理部15によって複製されたエンドエフェクタモデルM2_kとの各々について、ワークモデルM1との干渉判定を行なう。なお、調整ボタン群57が操作されている場合、判定部16は、調整後の位置姿勢のエンドエフェクタモデルM2,M2_kとワークモデルM1との干渉判定を行なう。
【0194】
判定部16は、エンドエフェクタモデルM2,M2_kを構成する各パーツの座標と、ワークモデルM1の表面を構成する三角メッシュの位置座標とに基づいて、干渉判定を行なう。エンドエフェクタモデルM2を構成する各パーツの座標は、決定部14によって決定された座標変換行列を用いて、モデルデータ43によって示される各パーツの座標を変換することにより算出される。エンドエフェクタモデルM2_kを構成する各パーツの座標は、さらに複製ボタン群60への操作に応じて定められる回転軸および回転角度に基づいて算出される。
【0195】
モデル作成部30によって作成されたエンドエフェクタモデルM2の形状およびサイズは、エンドエフェクタ301の形状およびサイズと一致していないことがありうる。そのため、判定部16は、モデルデータ43によって示されるマージン(
図7の入力欄90に入力されたマージン)だけ、エンドエフェクタモデルM2,M2_kを拡大させてもよい。これにより、対象ワーク2と干渉するエンドエフェクタ301の位置姿勢が誤って把持点候補として登録されることを抑制できる。
【0196】
図23は、決定部によって決定された位置姿勢のエンドエフェクタモデルとワークモデルとが干渉するときの設定画面の一例を示す図である。エンドエフェクタモデルM2とワークモデルM1とが干渉している場合、表示制御部11は、エンドエフェクタモデルM2の表示形式を変更する。例えば、表示制御部11は、エンドエフェクタモデルM2において指部310に対応するパーツ77~80の表示色を変更する。これにより、ユーザは、パーツ77~80の表示色を確認することにより、エンドエフェクタモデルM2とワークモデルM1とが干渉していることを認識できる。エンドエフェクタモデルM2とワークモデルM1とが干渉している場合、ユーザは、調整ボタン群57を操作して、ワークモデルM1と干渉しないようにエンドエフェクタモデルM2の位置姿勢を調整すればよい。
【0197】
<D-9.登録処理>
登録部17は、決定部14によって決定された位置姿勢と複製処理部15によって決定された位置姿勢(複製されたエンドエフェクタモデルの位置姿勢)とを把持点候補として登録する。なお、登録部17は、調整ボタン群57の操作を受けた場合には、調整後の位置姿勢を把持点候補として登録する。ただし、登録部17は、判定部16によってワークモデルM1と干渉していると判定されたエンドエフェクタモデルM2,M2_kの位置姿勢を把持点候補から除外する。
【0198】
<D-10.エンドエフェクタモデルの回転対称性を考慮した把持点候補の自動登録処理>
エンドエフェクタモデルM2が回転対称性を有する場合、登録部17は、当該回転対称性を考慮して把持点候補の自動登録処理を行なう。エンドエフェクタモデルM2の回転対称性は、
図9に示すモデル作成画面において、チェックボックス92がチェックされ、入力欄93に最小回転角度θが入力されることにより設定される。これにより、回転対称軸と最小回転角度θとを示すモデルデータ43が作成される。
【0199】
登録部17は、モデルデータ43が回転対称軸と最小回転角度θとを示す場合、決定部14によって決定された位置姿勢から当該回転対称軸を中心にn×θだけ回転させたエンドエフェクタモデルの位置姿勢も把持点候補として登録する。なお、nは、1以上かつ360/θ未満の整数である。同様に、登録部17は、複製ボタン群60の操作に応じて自動複製されたエンドエフェクタモデルM2_kの位置姿勢から当該回転対称軸を中心にn×θだけ回転させたエンドエフェクタモデルの位置姿勢も把持点候補として登録する。
【0200】
図24は、エンドエフェクタモデルの回転対称性を考慮した把持点候補の自動登録処理を説明する図である。
図24には、最小回転角度θとして180°(2回対称)が設定されたときの自動登録処理の例が示される。
図24(a)には、決定部14によって決定された位置姿勢のエンドエフェクタモデルM2が示される。
図24(b)には、
図24(a)に示すエンドエフェクタモデルM2の位置姿勢から回転対象軸(エンドエフェクタ座標系のZ軸)を中心に180°だけ回転させたエンドエフェクタモデルM2(1)が示される。
図24に示されるように、エンドエフェクタモデルM2とエンドエフェクタモデルM2(1)とは重なり合う。そのため、登録部17は、
図24(a)に示されるエンドエフェクタモデルM2の位置姿勢を把持点候補として登録するときに、
図24(b)に示されるエンドエフェクタモデルM2(1)の位置姿勢も把持点候補として自動登録する。
【0201】
<E.把持点候補の登録処理の流れ>
図25は、把持点候補の登録処理の流れの一例を示すフローチャートである。まず、画像処理装置100のCPU110は、CADデータ42によって示されるワークモデルM1上の第1点P1および第2点P2の指定を受け付ける(ステップS1)。CPU110は、CADデータ42に基づいて、第1点P1および第2点P2の各々の法線ベクトルを特定する(ステップS2)。
【0202】
次に、CPU110は、第1点P1および第2点P2から定義される点P0を始点とし、第1点P1から第2点P2への向きと同じ向きを有する位置ベクトルV1を演算する(ステップS3)。CPU110は、第1点P1の法線ベクトルおよび第2点P2の法線ベクトルから定義される位置ベクトルV2を演算する(ステップS4)。さらに、CPU110は、位置ベクトルV1と位置ベクトルV2との外積で表される位置ベクトルV3を演算する(ステップS5)。
【0203】
次に、CPU110は、エンドエフェクタモデルM2に対して予め定められた基準位置ベクトルV11,V12,V13と、位置ベクトルV1,V2,V3との相対位置関係が予め定められた基準関係に近づくように、エンドエフェクタモデルM2の位置姿勢を決定する(ステップS6)。
【0204】
CPU110は、決定された位置姿勢を把持点候補として登録する(ステップS7)。具体的には、CPU110は、ワークモデルM1に対する、ステップS6において決定された位置姿勢のエンドエフェクタモデルM2の相対位置姿勢を把持点候補として登録する。
【0205】
なお、ステップS6において決定された位置姿勢が調整された場合、調整後の位置姿勢が把持点候補として登録されてもよい。また、ステップS6において決定された位置姿勢のエンドエフェクタモデルM2を指定方向に指定角度だけ回転させることにより複製されたエンドエフェクタモデルM2_kの位置姿勢も把持点候補として登録されてもよい。さらに、エンドエフェクタモデルM2の回転対称性を考慮して複製されたエンドエフェクタモデルの位置姿勢も把持点候補として登録されてもよい。
【0206】
<F.変形例>
<F-1.変形例1>
エンドエフェクタ301は、2指ハンドに限定されない。例えば、エンドエフェクタ301は、3本以上の指部を有する多指ハンドや、1以上の真空パッドを有する吸着ハンドであってもよい。
【0207】
エンドエフェクタ301が3本の指部を有する場合、エンドエフェクタモデルM2における3本の指部にそれぞれ対応する3つのパーツは、3回対称となる。そのため、
図9に示すモデル作成画面70の入力欄93には、最小回転角度θとして120°が入力される。これにより、登録部17は、決定部14によって決定された位置姿勢から回転対称軸を中心に120°,240°だけそれぞれ回転させた2つのエンドエフェクタモデルの位置姿勢を把持点候補として登録する。
【0208】
図26は、吸着ハンドに対応するエンドエフェクタモデルを作成中のモデル作成画面の一例を示す図である。
図26に例示されるモデル作成画面70では、エンドエフェクタモデルM2は、パーツ97~99によって構成される。吸着ハンドであるエンドエフェクタについて、「Base」および「Bellows」の2つのグループが予め定められる。「Base」グループは、真空パッドを支持する部分に対応する。「Bellows」グループは、真空パッドに対応する。パーツ97,98は、「Base」グループに属する。パーツ99は、「Bellows」グループに属する。
【0209】
図27は、設定画面に表示される補助ガイド面のさらに別の例を示す図である。
図27に例示される設定画面50には、
図26に示すモデル作成画面70を用いて作成されたエンドエフェクタモデルM2が表示されている。なお、
図27に例示される設定画面50は、タブ68が操作されたときの状態に対応し、エンドエフェクタ301が吸着ハンドであるときに表示される。
【0210】
図27に示されるように、タブ68が操作されると、プルダウンボタン63により「Plane」が選択可能となる。「Plane」が選択されると、表示制御部11は、「Bellows」グループに属するパーツ99の先端面を含む平面形状の補助ガイド面69cを表示させる。これにより、パーツ99の先端とワークモデルM1との相対位置関係が容易に把握される。
【0211】
<F-2.変形例2>
上記の具体例では、決定部14は、基準位置ベクトルV11,V12,V13と位置ベクトルV1,V2,V3との相対位置関係が基準関係に最も近づくようにエンドエフェクタ座標系を剛体変換させるための座標変換行列を決定する。すなわち、決定部14は、ワーク座標系において、基準関係に基づいて位置ベクトルV1,V2,V3を補正する。決定部14は、座標変換後の基準位置ベクトルV11,V12,V13の終点のXYZ座標と補正後の位置ベクトルV1,V2,V3の終点のXYZ座標とのそれぞれの差分が最小となるように、座標変換行列を決定する。しかしながら、決定部14による座標変換行列の決定方法はこれに限定されない。
【0212】
剛体変換の座標変換行列は、各座標系における、一直線上にない少なくとも3つの点の座標を用いることにより決定される。そのため、決定部14は、座標変換後の基準位置ベクトルV11,V12の共通の始点および各々の終点のXYZ座標と、補正後の位置ベクトルV1,V2の共通の始点および各々の終点のXYZ座標とのそれぞれの差分が最小となるように、座標変換行列を決定してもよい。この場合、演算部13は、位置ベクトルV13を演算しなくてもよい。また、モデル作成部30は、エンドエフェクタモデルM2に対して基準位置ベクトルV13を設定しなくてもよい。
【0213】
<F-3.変形例3>
上記の具体例では、演算部13は、位置ベクトルV1と位置ベクトルV2との外積で表される位置ベクトルを位置ベクトルV3として演算した。しかしながら、演算部13は、別の方法で位置ベクトルV3を演算してもよい。例えば、演算部13は、位置ベクトルV1と同じ点P0を始点とし、位置ベクトルV1に直交する位置ベクトルを位置ベクトルV3として演算してもよい。
【0214】
図28は、変形例3に係る位置ベクトルV3の演算方法を示す図である。
図28(a)には、設定画面50の領域51が示される。演算部13は、上記の具体例と同様に、第1点P1および第2点P2が定義される点P0を始点とし、第1点P1から第2点P2への向きと同じ向きを有する位置ベクトルV1を演算する。さらに、演算部13は、点P0を通り、画面に平行な平面上において、点P0を始点とし、位置ベクトルV1に直交する位置ベクトルを位置ベクトルV3として演算する。
【0215】
図28(b)には、異なる視点からの位置ベクトルV1,V2,V3が示される。なお,演算部13は、上記の具体例と同様に、位置ベクトルV2を演算する。
図28(b)に示されるように、変形例3に従って演算された位置ベクトルV1,V2,V3は、互いに直交しない可能性が高い。
【0216】
図28(c)には、決定部14によって決定された位置姿勢のエンドエフェクタモデルM2とワークモデルM1との相対位置関係が示される。決定部14は、上記の具体例と同様に、基準位置ベクトルV11~V13と位置ベクトルV1~V3との相対位置関係が基準関係に近づくように、エンドエフェクタモデルM2の位置姿勢を決定する。例えば、基準関係は、位置ベクトルV2の向きと基準位置ベクトルV12の向きとが一致する関係を含む。ただし、位置ベクトルV1,V2,V3が互いに直交しないため、
図28(c)に示されるように、位置ベクトルV2の向きと基準位置ベクトルV12の向きとにずれが生じうる。このような場合、調整ボタン群57の操作によってエンドエフェクタモデルM2の位置姿勢が調整される。
【0217】
<F-4.変形例4>
上記の具体例では、演算部13は、ワークモデルM1における第1点P1および第2点P2の法線ベクトルから定義される位置ベクトルを位置ベクトルV2として演算した。しかしながら、演算部13は、別の方法で位置ベクトルV2を演算してもよい。
【0218】
図29は、変形例4に係る位置ベクトルV2の演算方法を示す図である。
図29(a)には、設定画面50の領域51が示される。演算部13は、上記の具体例と同様に、第1点P1および第2点P2が定義される点P0を始点とし、第1点P1から第2点P2への向きと同じ向きを有する位置ベクトルV1を演算する。さらに、演算部13は、上記の変形例3と同様に、点P0を通り、画面に平行な平面上において、点P0を始点とし、位置ベクトルV1に直交する位置ベクトルを位置ベクトルV3として演算する。
【0219】
図29(b)には、異なる視点からの位置ベクトルV1,V2,V3が示される。演算部13は、位置ベクトルV1と位置ベクトルV3との外積を位置ベクトルV2として演算する。
図29(b)に示されるように、変形例4に従って演算された位置ベクトルV1,V2,V3は、互いに直交する。
【0220】
図29(c)には、決定部14によって決定された位置姿勢のエンドエフェクタモデルM2とワークモデルM1との相対位置関係が示される。決定部14は、上記の具体例と同様に、基準位置ベクトルV11~V13と位置ベクトルV1~V3との相対位置関係が基準関係に近づくように、エンドエフェクタモデルM2の位置姿勢を決定する。例えば、基準関係は、位置ベクトルV2の向きと基準位置ベクトルV12の向きとが一致する関係を含む。位置ベクトルV1,V2,V3が互いに直交するため、
図29(c)に示されるように、位置ベクトルV2の向きと基準位置ベクトルV12の向きとは一致する。ただし、変形例4では、位置ベクトルV2の向きは、ワークモデルM1の表面における法線方向とは限らず、第1点P1および第2点P2の位置、および、第1点P1および第2点P2を指定するときのワークモデルM1の姿勢に依存する。そのため、
図29(c)に示されるように、エンドエフェクタモデルM2とワークモデルM1とが干渉してしまうことがある。このような場合、調整ボタン群57の操作によってエンドエフェクタモデルM2の位置姿勢が調整される。
【0221】
<F-5.変形例5>
図30は、変形例5に係る位置ベクトルV2の演算方法を示す図である。
図30(a)には、設定画面50の領域51が示される。演算部13は、上記の具体例と同様に、第1点P1および第2点P2が定義される点P0を始点とし、第1点P1から第2点P2への向きと同じ向きを有する位置ベクトルV1を演算する。
【0222】
位置ベクトルV1が演算されると、表示制御部11は、領域51に表示されるワークモデルM1の姿勢を変更する。具体的には、表示制御部11は、点P0を通り、位置ベクトルV1に直交する線上の点がユーザの視点となるように、領域51に表示されるワークモデルM1の姿勢を変更する。
【0223】
図30(b)には、ワークモデルM1の姿勢が変更された後の領域51が示される。受付部12は、
図30(b)に示す領域51において、点P0を通り、位置ベクトルV1に直交する平面上の第3点P3の指定を受け付ける。演算部13は、点P0を始点とし、点P0から第3点P3への向きと同じ向きを有する位置ベクトルを位置ベクトルV2として演算する。さらに、演算部13は、上記の具体例と同様に、位置ベクトルV1と位置ベクトルV2との外積を位置ベクトルV3として演算する。
【0224】
決定部14は、上記の具体例と同様に、基準位置ベクトルV11~V13と位置ベクトルV1~V3との相対位置関係が基準関係に最も近づくように、エンドエフェクタモデルM2の位置姿勢を決定する。これにより、ユーザは、第1点P1、第2点P2および第3点P3を指定だけで、把持点候補を設定できる。
【0225】
<F-6.変形例6>
上記の具体例では、モデル作成部30は、ユーザによる入力指示に従ってエンドエフェクタモデルM2を作成する。しかしながら、モデル作成部30は、エンドエフェクタ301の三次元形状を定義するCADデータの指定を受け付け、指定されたCADデータによって示されるエンドエフェクタモデルに対して基準位置ベクトルV11,V12,V13を設定してもよい。
【0226】
<F-7.変形例7>
上記の具体例では、画像処理装置100が把持点設定部10を備えるものとした。しかしながら、画像処理装置100と通信可能に接続された設定装置が把持点設定部10を備えていてもよい。
【0227】
<G.作用・効果>
以上のように、画像処理装置100は、ロボット300のエンドエフェクタ301がワーク1をピッキングするときのエンドエフェクタ301の位置姿勢候補(把持点候補)を設定する。画像処理装置100は、受付部12と、演算部13と、決定部14と、登録部17とを備える。受付部12は、ワーク1の三次元形状を定義するCADデータ42によって示されるワークモデルM1上の第1点P1および第2点P2の指定を受け付ける。演算部13は、第1点P1および第2点P2から定義される点P0を始点とし、第1点P1から第2点P2への向きと同じ向きを有する位置ベクトルV1を演算する。さらに、演算部13は、ワークモデルM1における第1点P1および第2点P2の法線ベクトルから定義される位置ベクトルV2を演算する。決定部14は、エンドエフェクタ301の三次元形状を示すエンドエフェクタモデルM2に対して予め定められた基準位置ベクトルV11,V12と位置ベクトルV1,V2との相対位置関係が予め定められた第1基準関係に近づくように、エンドエフェクタモデルM2の位置姿勢を決定する。なお、第1基準関係は、例えば、位置ベクトルV2の向きに位置ベクトルV1,V2を規定距離だけ並進移動させたときに、基準位置ベクトルV11,V12にそれぞれ一致する関係である。登録部17は、決定部14によって決定された位置姿勢を把持点候補として登録する。
【0228】
上記の構成によれば、ユーザは、ワークモデルM1上の第1点P1および第2点P2を指定するだけで、把持点候補を設定できる。すなわち、ワーク1をピッキングするエンドエフェクタ301の位置姿勢が簡易に設定される。
【0229】
演算部13は、位置ベクトルV1と位置ベクトルV2との外積で表される位置ベクトルV3をさらに演算する。決定部14は、基準位置ベクトルV11,V12と位置ベクトルV1,V2との相対位置関係が前記第1基準関係に近づくとともに、エンドエフェクタモデルM2に対して予め定められた基準位置ベクトルV13と位置ベクトルV3との相対位置関係が予め定められた第2基準関係に近づくように、エンドエフェクタモデルM2の位置姿勢を決定する。なお、第2基準関係は、例えば、位置ベクトルV2の向きに位置ベクトルV3を規定距離だけ並進移動させたときに、基準位置ベクトルV13に一致する関係である。
【0230】
上記の構成によれば、決定部14は、位置ベクトルV3と基準位置ベクトルV13との相対位置関係も考慮して、把持点候補として登録され得る位置姿勢を決定できる。
【0231】
なお、変形例3のように、演算部13は、位置ベクトルV1に直交する位置ベクトルを位置ベクトルV3として演算してもよい。
【0232】
画像処理装置100は、入力指示に従ってエンドエフェクタモデルM2を作成するモデル作成部30をさらに備える。モデル作成部30は、エンドエフェクタモデルM2に対して、基準位置ベクトルV11,V12,V13を設定する。
【0233】
上記の構成によれば、ユーザは、モデル作成部30を用いてエンドエフェクタモデルM2を自由に作成できる。
【0234】
なお、変形例6のように、エンドエフェクタモデルM2は、エンドエフェクタ301の三次元形状を定義するCADデータによって示されてもよい。この場合、ユーザは、モデル作成部30を用いてエンドエフェクタモデルM2を作成しなくてもよい。
【0235】
エンドエフェクタ301は回転対称性を有する。モデル作成部30は、エンドエフェクタモデルM2における回転対称軸と、自身に重なり合う最小回転角度θとを設定する。登録部17は、決定部14によって決定された位置姿勢から回転対称軸を中心に最小回転角度θのn倍だけ回転させたエンドエフェクタモデルM2の位置姿勢を把持点候補としてさらに登録する。nは、1以上かつ360°/θ未満の整数である。
【0236】
回転対称性を有するエンドエフェクタ301である場合、回転対称軸に対して最小回転角度θのn倍だけ回転させたエンドエフェクタ301であっても、ワーク1を把持可能となる。上記の構成によれば、決定部14によって決定された位置姿勢から回転対称軸を中心に最小回転角度θのn倍だけ回転させたエンドエフェクタモデルM2の位置姿勢も把持点候補として自動で登録される。これにより、ユーザによる把持点候補の登録操作の手間が削減される。
【0237】
画像処理装置100は、ワークモデルM1を表示装置150の設定画面50に表示させる表示制御部11をさらに備える。受付部12は、設定画面50において指定された位置に基づいて、第1点P1および第2点P2を受け付ける。これにより、ユーザは、設定画面50に表示されたワークモデルM1を見ながら、ワークモデルM1上の所望の位置において第1点P1および第2点P2を指定できる。
【0238】
表示制御部11は、ワークモデルM1を基準とする座標軸(X軸52x、Y軸52yおよびZ軸52z)を設定画面50に表示させる。表示制御部11は、ワークモデルM1に対する操作に応じて、設定画面50に表示されるワークモデルM1の位置姿勢を変更する。これにより、ユーザは、ワークモデルM1を基準とする座標軸を見ながら、第1点P1および第2点P2を指定しやすいように、ワークモデルM1の位置姿勢を所望の状態に変更しやすくなる。
【0239】
表示制御部11は、設定画面50において、決定部14によって決定された位置姿勢のエンドエフェクタモデルM2をワークモデルM1に重畳して表示させる。決定部14は、エンドエフェクタモデルM2の座標系(エンドエフェクタ座標系)の軸方向に沿った並進移動および当該軸方向に平行な回転軸を中心とする回転移動の少なくとも一方の操作を受け付け、当該操作に応じて、決定した位置姿勢を調整する。これにより、ユーザは、基準位置ベクトルV11,V12、V13と位置ベクトルV1,V2,V3との相対位置関係が基準関係に近づくように決定されたエンドエフェクタモデルM2の位置姿勢を調整し、調整後の位置姿勢を把持点候補として登録できる。
【0240】
基準位置ベクトルV11,V12,V13は、エンドエフェクタ座標系におけるX軸、Y軸およびZ軸とそれぞれ平行である。表示制御部11は、設定画面50において、基準位置ベクトルV11,V12,V13を表示させる。これにより、ユーザは、基準位置ベクトルV11,V12,V13を見ながら、エンドエフェクタモデルM2の位置姿勢を所望の状態に調整しやすくなる。
【0241】
表示制御部11は、設定画面50において、エンドエフェクタ座標系の軸方向を表示させてもよい。具体的には、表示制御部11は、エンドエフェクタ座標系におけるX軸、Y軸およびZ軸にそれぞれ平行なベクトルV11’,V12’,V13’を表示させる。これにより、ユーザは、ベクトルV11’,V12’,V13’を見ながら、エンドエフェクタモデルM2の位置姿勢を所望の状態に調整しやすくなる。
【0242】
表示制御部11は、エンドエフェクタモデルM2の先端に接する所定形状の補助ガイド面69a,69b,69cを設定画面50に表示させる。
【0243】
エンドエフェクタ301は、例えば2本の指部310を有する。この場合、エンドエフェクタモデルM2における2本の指部310の先端にそれぞれ対応する2点を結ぶ線分を直径とする円筒形状の補助ガイド面69aが表示される。または、当該線分を直径とする円の外接正方形を断面とする角筒形状の補助ガイド面69bが表示される。
【0244】
あるいは、エンドエフェクタ301は、1以上の真空パッドを有する吸着ハンドであってもよい。この場合、エンドエフェクタモデルM2における1以上の真空パッドに対応するパーツの先端面を含む平面形状の補助ガイド面69cが表示される。
【0245】
補助ガイド面69a,69b,69cが表示されることにより、ユーザは、エンドエフェクタモデルM2の先端とワークモデルM1との相対位置関係を容易に把握できる。
【0246】
画像処理装置100は、決定部14によって決定された位置姿勢のエンドエフェクタモデルM2とワークモデルM1との干渉判定を行なう判定部16をさらに備える。表示制御部11は、設定画面50において、決定部14によって決定された位置姿勢のエンドエフェクタモデルM2をワークモデルM1に重畳して表示させる。表示制御部11は、判定部16によって干渉していると判定されたことに応じて、エンドエフェクタモデルM2の表示形式を変更する。これにより、ユーザは、エンドエフェクタモデルM2とワークモデルM1とが干渉していることを容易に把握できる。
【0247】
登録部17は、判定部16によって干渉していると判定された位置姿勢を把持点候補から削除する。これにより、ワークモデルM1と干渉するエンドエフェクタモデルM2の位置姿勢が把持点候補として登録されることを防止できる。
【0248】
§3 付記
以上のように、本実施の形態は以下のような開示を含む。
【0249】
(構成1)
ロボット(300)のエンドエフェクタ(301)がワーク(1)をピッキングするときの前記エンドエフェクタ(301)の位置姿勢候補を設定するための設定装置(100)であって、
前記ワーク(1)の三次元形状を定義する第1CADデータ(42)によって示されるワークモデル(M1)上の第1点(P1)および第2点(P2)の指定を受け付ける受付部(12)と、
前記第1点(P1)および前記第2点(P2)から定義される点(P0)を始点とし、前記第1点(P1)から前記第2点(P2)への向きと同じ向きを有する第1位置ベクトル(V1)と、前記ワークモデル(M1)における前記第1点(P1)および前記第2点(P2)の法線ベクトル(Va,Vb)から定義される第2位置ベクトル(V2)とを演算する演算部(13)と、
前記エンドエフェクタ(301)の三次元形状を示すエンドエフェクタモデル(M2)に対して予め定められた第1基準位置ベクトル(V11)および第2基準位置ベクトル(V12)と、前記第1位置ベクトル(V1)および前記第2位置ベクトル(V2)との相対位置関係が予め定められた第1基準関係に近づくように、前記エンドエフェクタモデル(M2)の位置姿勢を決定する決定部(14)と、
前記決定部(14)によって決定された位置姿勢を前記位置姿勢候補として登録する登録部(17)とを備える、設定装置(100)。
【0250】
(構成2)
前記演算部(13)は、前記第1位置ベクトル(V1)と前記第2位置ベクトル(V2)との外積で表される第3位置ベクトル(V3)をさらに演算し、
前記決定部(14)は、前記第1基準位置ベクトル(V11)および前記第2基準位置ベクトル(V12)と前記第1位置ベクトル(V1)および前記第2位置ベクトル(V2)との相対位置関係が前記第1基準関係に近づくとともに、前記エンドエフェクタモデル(M2)に対して予め定められた第3基準位置ベクトル(V13)と前記第3位置ベクトル(V3)との相対位置関係が予め定められた第2基準関係に近づくように、前記エンドエフェクタモデル(M2)の位置姿勢を決定する、構成1に記載の設定装置(100)。
【0251】
(構成3)
前記演算部(13)は、前記第1位置ベクトル(V1)に直交する第3位置ベクトル(V3)をさらに演算し、
前記決定部(14)は、前記第1基準位置ベクトル(V11)および前記第2基準位置ベクトル(V12)と前記第1位置ベクトル(V1)および前記第2位置ベクトル(V2)との相対位置関係が前記第1基準関係に近づくとともに、前記エンドエフェクタモデル(M2)に対して予め定められた第3基準位置ベクトル(V13)と前記第3位置ベクトル(V3)との相対位置関係が予め定められた第2基準関係に近づくように、前記エンドエフェクタモデル(M2)の位置姿勢を決定する、構成1に記載の設定装置(100)。
【0252】
(構成4)
前記エンドエフェクタモデル(M2)は、前記エンドエフェクタ(301)の三次元形状を定義する第2CADデータによって示される、構成1から3のいずれかに記載の設定装置(100)。
【0253】
(構成5)
入力指示に従って前記エンドエフェクタモデル(M2)を作成するモデル作成部(30)をさらに備え、
前記モデル作成部(30)は、前記第1基準位置ベクトル(V11)および前記第2基準位置ベクトル(V12)を設定する、構成1から3のいずれかに記載の設定装置(100)。
【0254】
(構成6)
前記エンドエフェクタ(301)は回転対称性を有し、
前記モデル作成部(30)は、前記エンドエフェクタモデル(M2)における回転対称軸と、自身に重なり合う最小回転角度θとを設定し、
前記登録部(17)は、前記決定部(14)によって決定された位置姿勢から前記回転対称軸を中心に前記最小回転角度θのn倍だけ回転させた前記エンドエフェクタモデルの位置姿勢を前記位置姿勢候補としてさらに登録し、
nは、1以上かつ360°/θ未満の整数である、構成5に記載の設定装置(100)。
【0255】
(構成7)
前記ワークモデル(M1)を表示装置(150)の画面(50)に表示させる表示制御部(11)をさらに備え、
前記受付部(12)は、前記画面(50)において指定された位置に基づいて、前記第1点(P1)および前記第2点(P2)を受け付ける、構成1から6のいずれかに記載の設定装置(100)。
【0256】
(構成8)
前記表示制御部(11)は、
前記ワークモデル(M1)を基準とする座標軸(52x,52y,52z)を前記画面(50)に表示させ、
前記ワークモデル(M1)に対する操作に応じて、前記画面(50)に表示される前記ワークモデル(M1)の位置姿勢を変更する、構成7に記載の設定装置(100)。
【0257】
(構成9)
前記表示制御部(11)は、前記画面(50)において、前記決定部(14)によって決定された位置姿勢の前記エンドエフェクタモデル(M2)を前記ワークモデル(M1)に重畳して表示させ、
前記決定部(14)は、予め定められた方向に沿った並進移動および当該予め定められた方向に平行な回転軸を中心とする回転移動の少なくとも一方の操作を受け付け、当該操作に応じて、決定した位置姿勢を調整する、構成7または8に記載の設定装置(100)。
【0258】
(構成10)
前記表示制御部(11)は、前記画面(50)において、前記予め定められた方向を示す軸を表示させる、構成9に記載の設定装置(100)。
【0259】
(構成11)
前記表示制御部(11)は、前記エンドエフェクタモデル(M2)の先端に接する所定形状のガイド面(69a~69c)を前記画面(50)に表示させる、構成9または10に記載の設定装置(100)。
【0260】
(構成12)
前記エンドエフェクタ(301)は、2本の指部(310)を有し、
前記ガイド面(69a,69b)は、前記エンドエフェクタモデル(M2)における前記2本の指部(310)の先端にそれぞれ対応する2点(P101,P102)を結ぶ線分を直径とする円筒形状、または、前記線分を直径とする円の外接正方形を断面とする角筒形状である、構成11に記載の設定装置(100)。
【0261】
(構成13)
前記エンドエフェクタ(301)は、1以上の真空パッドを有する吸着ハンドであり、
前記ガイド面(69c)は、前記エンドエフェクタモデル(M2)における前記1以上の真空パッドに対応するパーツ(99)の先端面を含む平面形状である、構成11に記載の設定装置(100)。
【0262】
(構成14)
前記決定部(14)によって決定された位置姿勢の前記エンドエフェクタモデル(M2)と前記ワークモデル(M1)との干渉判定を行なう判定部(16)をさらに備え、
前記表示制御部(11)は、
前記画面(50)において、前記決定部(14)によって決定された位置姿勢の前記エンドエフェクタモデル(M2)を前記ワークモデル(M1)に重畳して表示させ、
前記判定部(16)によって干渉していると判定されたことに応じて、前記エンドエフェクタモデル(M2)の表示形式を変更する、構成7または8に記載の設定装置(100)。
【0263】
(構成15)
前記決定部(14)によって決定された位置姿勢の前記エンドエフェクタモデル(M2)と前記ワークモデル(M1)との干渉判定を行なう判定部(16)をさらに備え、
前記登録部(17)は、前記判定部(16)によって干渉していると判定された位置姿勢を前記位置姿勢候補から削除する、構成1から13のいずれかに記載の設定装置(100)。
【0264】
(構成16)
ロボット(300)のエンドエフェクタ(301)がワーク(1)をピッキングするときの前記エンドエフェクタ(301)の位置姿勢候補の設定方法であって、
前記ワーク(1)の三次元形状を定義する第1CADデータ(42)によって示されるワークモデル(M1)上の第1点(P1)および第2点(P2)の指定を受け付けるステップと、
前記第1点(P1)および前記第2点(P2)から定義される点(P0)を始点とし、前記第1点(P1)から前記第2点(P2)への向きと同じ向きを有する第1位置ベクトル(V1)と、前記ワークモデル(M1)における前記第1点(P1)および前記第2点(P2)の法線ベクトル(Va,Vb)から定義される第2位置ベクトル(V2)とを演算するステップと、
前記エンドエフェクタ(301)の三次元形状を示すエンドエフェクタモデル(M2)に対して予め定められた第1基準位置ベクトル(V11)および第2基準位置ベクトル(V12)と、前記第1位置ベクトル(V1)および前記第2位置ベクトル(V2)との相対位置関係が予め定められた第1基準関係に近づくように、前記エンドエフェクタモデル(M2)の位置姿勢を決定するステップと、
前記決定部(14)によって決定された位置姿勢を前記位置姿勢候補として登録するステップとを備える、設定方法。
【0265】
(構成17)
構成16に記載の設定方法をコンピュータに実行させるプログラム。
【0266】
本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0267】
1 ワーク、2 対象ワーク、5 コンテナ、10 把持点設定部、11 表示制御部、12 受付部、13 演算部、14 決定部、15 複製処理部、16 判定部、17 登録部、20 ヘッド制御部、25 画像処理部、30 モデル作成部、40 記憶部、41 画像データ、42 CADデータ、43 モデルデータ、44 把持点データ、50 設定画面、51,71,86,91 領域、52x X軸、52y Y軸、52z Z軸、53x~53z,83,L 線、54,T66,84 テキスト、55 把持点選択ボタン群、56 削除ボタン、57 調整ボタン群、57a~57h,60a~60h,91d,91e ボタン、57i,60i,63,74a プルダウンボタン、58 反転ボタン群、58a 上下反転ボタン、58b 左右反転ボタン、59 リセットボタン、60 複製ボタン群、61 コピーボタン、62 反転コピーボタン、64,65,66 ボタン群、67,68,85,87,88 タブ、69a~69c 補助ガイド面、70 モデル作成画面、72 座標軸、73 編集用ボタン群、74 パーツ一覧、75~80,97~99 パーツ、81 ラジオボタン群、82,92 チェックボックス、86a,86b,89,90,91a,91b,91f,93 入力欄、91c リスト、94 保存ボタン、95 終了ボタン、96 回転対称軸、100 画像処理装置、106 メモリカード、110 CPU、112 メインメモリ、114 ハードディスク、116 計測ヘッドインターフェース、116a 画像バッファ、118 入力インターフェース、120 表示コントローラ、124 通信インターフェース、126 データリーダ/ライタ、128 バス、150 表示装置、160 入力装置、200 ロボットコントローラ、300 ロボット、301 エンドエフェクタ、302 多関節アーム、303 ベース、310 指部、400 計測ヘッド、401 投影部、402 撮像部、M1 ワークモデル、P0 点、P1 第1点、P2 第2点、P3 第3点、SYS 制御システム、V1,V2,V3,V13 位置ベクトル、V11,V12,V13 基準位置ベクトル、Va,Vb 法線ベクトル。