IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社キーエンスの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-21
(45)【発行日】2024-11-29
(54)【発明の名称】制御装置
(51)【国際特許分類】
   B25J 9/10 20060101AFI20241122BHJP
   B25J 13/08 20060101ALI20241122BHJP
【FI】
B25J9/10 A
B25J13/08 A
【請求項の数】 10
(21)【出願番号】P 2021020016
(22)【出願日】2021-02-10
(65)【公開番号】P2022122648
(43)【公開日】2022-08-23
【審査請求日】2023-12-11
(73)【特許権者】
【識別番号】000129253
【氏名又は名称】株式会社キーエンス
(74)【代理人】
【識別番号】110001427
【氏名又は名称】弁理士法人前田特許事務所
(72)【発明者】
【氏名】上原 大和
(72)【発明者】
【氏名】中尾 政史
【審査官】國武 史帆
(56)【参考文献】
【文献】特開2015-174191(JP,A)
【文献】特開2015-136770(JP,A)
【文献】特開2019-028773(JP,A)
【文献】特開2020-040796(JP,A)
【文献】特開2019-217571(JP,A)
【文献】特開2022-065714(JP,A)
【文献】特開平07-098208(JP,A)
【文献】国際公開第2020/121399(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
(57)【特許請求の範囲】
【請求項1】
ロボットハンドに固定された三次元カメラを用いてワークの形状を測定し、測定されたワークの形状データに基づいて、前記三次元カメラのカメラ座標を前記ロボットハンドのロボット座標に変換するためのキャリブレーションを実行する制御装置であって、
前記ロボットハンドをXYZ方向へ移動させる動作を実行し、前記ロボットハンドの停止位置で前記ワークを前記三次元カメラにより測定して得られた形状データに基づいてワーク座標を検出するとともに、当該ワーク座標を得た時のロボット座標を取得し、取得した複数のワーク座標とロボット座標の組に基づいて、前記カメラ座標における位置をロボット座標上の位置に変換するためのパラメータを算出する第1の通常キャリブレーション処理と、
前記ロボットハンドを所定の軸周りに回転させる動作を実行し、前記ロボットハンドの停止位置で前記ロボットハンドの回転に伴って回転した前記三次元カメラにより前記ワークを測定して得られた形状データに基づいてワーク座標を検出するとともに、当該ワーク座標を得た時のロボット座標を取得し、取得した複数のワーク座標とロボット座標の組に基づいて、ロボット座標を基準とした前記ロボットハンドの暫定回転中心を決定する第2の通常キャリブレーション処理と、
前記暫定回転中心を前記ロボットハンドの原回転中心とし、当該原回転中心周りに前記ロボットハンドを回転させる動作を実行し、前記ロボットハンドの回転に伴って回転した前記三次元カメラにより前記ロボットハンドの停止位置で前記ワークを測定して得られた形状データに基づいてワーク座標を検出するとともに、当該ワーク座標を得た時のロボット座標を取得し、取得した複数のワーク座標とロボット座標の組に基づいて次の回転中心を求め、前記ロボットハンドの原回転中心を当該次の回転中心に更新し、更新された各原回転中心周りに前記ロボットハンドを回転させる動作を繰り返し、前記ロボットハンドの最終的な回転中心を決定する高精度キャリブレーション処理と、
を実行するキャリブレーション実行部を備え
前記キャリブレーション実行部は、前記高精度キャリブレーション処理において、原回転中心に基づいて推定した前記ロボットハンドが回転した後のワーク座標と、前記三次元カメラによる測定に基づいて検出した前記ロボットハンドが回転した後のワーク座標とのずれに基づいて当該原回転中心に対応する前記次の回転中心を求める制御装置。
【請求項2】
請求項1に記載の制御装置において、
前記キャリブレーション実行部は、前記高精度キャリブレーション処理において前記回転中心周りに回転させる前記ロボットハンドの回転角度を、前記第2の通常キャリブレーション処理において前記所定の軸周りに回転させる前記ロボットハンドの回転角度よりも大きな回転角度とする制御装置。
【請求項3】
請求項1または2に記載の制御装置において、
前記キャリブレーション実行部は、前記更新された各原回転中心に対応する次の回転中心を求める処理を繰り返し実行して前記ロボットハンドの回転中心を複数取得し、取得された複数の回転中心に基づいて、前記最終的な回転中心を決定する制御装置。
【請求項4】
請求項に記載の制御装置において、
前記キャリブレーション実行部は、前記繰り返しを実行して取得された複数の前記回転中心が予め定められた所定の収束条件を満たすか否かを判定し、前記所定の収束条件を満たすと判定した場合には、前記繰り返しを終了する制御装置。
【請求項5】
請求項1からのいずれか1つに記載の制御装置において、
前記キャリブレーション実行部は、前記高精度キャリブレーション処理において前記ロボットハンドを前記原回転中心周りに所定角度回転させるとともに、当該所定角度回転後の前記ワークが前記三次元カメラの視野に入るように前記ロボットハンドを移動させる制御装置。
【請求項6】
請求項1からのいずれか1つに記載の制御装置において、
前記キャリブレーション実行部は、前記ワークを前記三次元カメラにより測定して得られた三次元の形状データに基づいて前記ワークの代表点のXYZ座標を求め、求めた前記代表点のXYZ座標をワーク座標とする制御装置。
【請求項7】
請求項1からのいずれか1つに記載の制御装置において、
前記キャリブレーション実行部は、前記ワークを前記三次元カメラにより測定して得られた二次元の形状データに基づいて前記ワークの代表点のXY座標を求めるとともに、平面式から前記代表点Z座標を求め、求めた前記代表点のXYZ座標をワーク座標とする制御装置。
【請求項8】
請求項1からのいずれか1つに記載の制御装置において、
前記キャリブレーション実行部は、前記ロボットハンドを第1の位置に移動させて前記ワークを前記三次元カメラにより測定して得られた形状データに基づいてワーク座標を検出するとともに、前記ロボットハンドを前記第1の位置とZ座標が異なる第2の位置に移動させて前記ワークを前記三次元カメラにより測定して得られた形状データに基づいてワーク座標を検出し、前記第1の位置で検出したワーク座標と、前記第2の位置で検出したワーク座標と、を前記三次元カメラの画角に非依存の画素位置に換算する制御装置。
【請求項9】
請求項1からのいずれか1つに記載の制御装置において、
キャリブレーションを実行するキャリブレーションモードの選択が可能に構成されており、
前記キャリブレーション実行部は、前記キャリブレーションモードが選択されたことを検出すると、前記第1の通常キャリブレーション処理と前記第2の通常キャリブレーション処理と前記高精度キャリブレーション処理とを順に連続的に実行する制御装置。
【請求項10】
請求項1からのいずれか1つに記載の制御装置において、
前記キャリブレーション実行部は、前記高精度キャリブレーション処理で検出された前記ワーク座標の検出結果と、前記回転中心の収束値とを更新表示可能な表示領域を有するユーザインタフェースを生成し、前記キャリブレーション実行部で生成された前記ユーザインタフェースを表示する表示部を備えている制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットを制御する制御装置に関する。
【背景技術】
【0002】
従来、ロボットと、ロボットハンドに固定された三次元カメラとを組み合わせた、いわゆるハンドアイと呼ばれる方式のロボットシステムが知られている(例えば、特許文献1参照)。この種のロボットシステムでは、運用前に、カメラ座標をロボットハンドのロボット座標に変換するためのキャリブレーションが必要である。特許文献1では、ロボット座標系に一つのキャリブレーション用マークを配置し、三次元カメラをキャリブレーション用マークに向けたままで平行移動させた複数の観測箇所と、これら観測箇所とは異なる方向からキャリブレーション用マークを臨む複数の観測箇所とでキャリブレーション用マークの観測を行い、各観測箇所で得られたマーク位置認識データと、ロボットハンドの姿勢データとを対応付けることによってキャリブレーションデータを取得するようにしている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2012-91280号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、特許文献1では、キャリブレーションを行う際にキャリブレーション用マークを用意する必要がある。キャリブレーション用マークは、ロボットシステムの運用時にピッキングするワークとは材質、形状、大きさなどが異なっているので、カメラの撮像用パラメータ(露光時間、ゲインなど)や、ピント位置などをワークの撮像時とは変えてキャリブレーション用マークの撮像を行う必要がある。つまり、運用時と異なるパラメータでキャリブレーションを行うことになるので、運用に最適な状態のキャリブレーションとは言い難い。
【0005】
そこで、キャリブレーション用マークでなく、ワークをキャリブレーション用マークとして使用することが考えられる。ところが、カメラ座標をロボット座標に変換するためのパラメータを求める際には、ロボットハンドを回転させる動作が必要であり、特にロボットハンドを大きく回転させることで、原理上、より正確性が増すので、キャリブレーション時にはロボットハンドを大きく回転させたいという要求がある。
【0006】
しかしながら、カメラの視野やワークはロボットハンドの可動範囲に対して小さいので、ロボットハンドを大きく回転させると、ワークがカメラの視野の外に出てしまい、キャリブレーションデータが取得できなくなる。
【0007】
また、ロボットハンドを回転させたときにワークがカメラの視野から出ない場合であっても、ワークの一部しか撮像できない場合には、正確なキャリブレーションに足るデータが取得できない。
【0008】
さらに、一般的に三次元カメラの視野周辺部は中央部近傍に比べて測定精度が劣るが、ロボットハンドを大きく回転させると、三次元カメラの視野周辺部のデータを使ってキャリブレーションを行うことになり、この点でも正確なキャリブレーションが期待できなくなるおそれがあった。
【0009】
本開示は、かかる点に鑑みたものであり、その目的とするところは、ワークを使用してキャリブレーションを実行する場合に正確なキャリブレーションデータを取得できるようにすることにある。
【課題を解決するための手段】
【0010】
上記目的を達成するために、本開示の第1の側面では、ロボットハンドに固定された三次元カメラを用いてワークの形状を測定し、測定されたワークの形状データに基づいて、前記三次元カメラのカメラ座標を前記ロボットハンドのロボット座標に変換するためのキャリブレーションを実行する制御装置を前提とすることができる。制御装置は、通常キャリブレーション処理と、高精度キャリブレーション処理とを実行可能なキャリブレーション実行部を備えている。
【0011】
前記通常キャリブレーション処理では、前記ロボットハンドをXYZ方向へ移動させる動作と、前記ロボットハンドを所定の軸周りに複数回回転させる動作とを繰り返し実行し、各動作後、前記ロボットハンドの停止位置で前記ワークを前記三次元カメラにより測定して得られた形状データに基づいてワーク座標を検出するとともに、当該ワーク座標を得た時のロボット座標を取得し、取得した複数のワーク座標とロボット座標の組に基づいて、前記カメラ座標における位置をロボット座標上の位置に変換するためのパラメータを算出することができる。
【0012】
一方、前記高精度キャリブレーション処理では、前記通常キャリブレーション処理により求められた前記ロボットハンドのツール中心と前記三次元カメラの相対位置に基づいて、暫定回転中心を決定し、該暫定回転中心周りに前記ロボットハンドを複数回回転させた各位置で、前記ワークを前記三次元カメラにより測定して得られた形状データに基づいてワーク座標を検出するとともに、当該ワーク座標を得た時のロボット座標を取得し、取得した複数のワーク座標とロボット座標の組に基づいて、前記ロボットハンドの最終的な回転中心を決定することができる。
【0013】
この構成では、ワークの三次元形状を測定する三次元カメラがロボットハンドに固定されたロボットシステムを前提とすることができるので、ロボットシステムの運用時には、ロボットハンドを大きく退避させることなく、三次元カメラによってワークの位置を測定することが可能になるとともに、測定対象のワークに近いところから当該ワークの三次元形状を測定することができ、測定精度が向上する。尚、本発明の対象は、ロボットシステムであってもよいし、ロボットの制御装置(ロボットコントローラ)であってもよい。
【0014】
三次元カメラがロボットハンドに固定されている場合には、三次元カメラのカメラ座標をロボットハンドのロボット座標に変換するためのキャリブレーションを実行する必要があり、本構成では、運用時にピッキングするワークを使用して複数段階のキャリブレーション処理を実行する。
【0015】
すなわち、はじめに、通常キャリブレーション処理として、ロボットハンドをXYZ方向へ移動させる動作と、回転動作とを繰り返し、各動作後のワークを三次元カメラにより測定してワーク座標を検出するとともに、そのワーク座標を得た時のロボット座標も取得する。これにより取得した複数のワーク座標とロボット座標の組に基づいて、カメラ座標における位置をロボット座標上の位置に変換するためのパラメータを算出し、ロボットハンドのツール中心と三次元カメラの相対位置関係が求められる。
【0016】
ロボットハンドのツール中心と三次元カメラの相対位置関係を求めた後、高精度キャリブレーション処理を実行する。まず、上記のようにして求めたロボットハンドのツール中心と三次元カメラの相対位置に基づいて、ロボットハンドの暫定回転中心を決定する。この暫定回転中心は、仮に設定した回転中心である。暫定回転中心周りにロボットハンドを複数回回転させることで、三次元カメラの視野の外にワークが出ないようにすること、ワークの全体が三次元カメラの視野に入るようにすること、及び三次元カメラの視野中央部近傍にワークを置くことが可能になる。そして、各位置で、ワークを三次元カメラにより測定してワーク座標を検出するとともに、当該ワーク座標を得た時のロボット座標を取得し、取得した複数のワーク座標とロボット座標の組に基づいて、ロボットハンドの最終的な回転中心を高精度に決定することができる。
【0017】
ワーク座標を得た時のロボット座標は、例えば、ロボットハンドの動作状態に基づいて取得することや、ロボットを制御するロボットコントローラなどから取得することが可能である。
【0018】
本開示の第2の側面では、前記キャリブレーション実行部が、前記高精度キャリブレーション処理において前記暫定回転中心周りに回転させる前記ロボットハンドの回転角度を、前記通常キャリブレーション処理において所定の軸周りに回転させる前記ロボットハンドの回転角度よりも大きな回転角度とするものである。
【0019】
この構成によれば、高精度キャリブレーション処理でロボットハンドの回転角度を大きくすることで、得られるキャリブレーションデータの正確性が増す。高精度キャリブレーション処理では、ロボットハンドを暫定回転中心周りに回転させるので、上記のように回転角度を大きくしたとしても、ワークの全部または一部が三次元カメラの視野の外に出る可能性が低くなる。
【0020】
本開示の第3の側面では、前記キャリブレーション実行部は、前記高精度キャリブレーション処理において前記複数のワーク座標と前記ロボット座標の組に基づいて前記ロボットハンドの回転中心を求める第1処理と、第1処理で求めた回転中心を次の回転中心として、前記ロボットハンドを複数回回転させた各位置で、前記ワークを前記三次元カメラにより測定して得られた形状データに基づいてワーク座標を検出するとともに、当該ワーク座標を得た時のロボット座標を取得し、取得した複数のワーク座標とロボット座標の組に基づいて、前記ロボットハンドの回転中心を求める第2処理とを実行してから、前記ロボットハンドの最終的な回転中心を決定することができる。
【0021】
すなわち、暫定回転中心は、最終的に回転中心とされるべき中心からずれている場合があるので、この暫定回転中心に基づいて最終的な回転中心を直接決定するのではなく、第1処理で求めた回転中心を次の回転中心としてロボットハンドの回転中心を新たに求める第2処理を実行し、第2処理で新たに求めた回転中心を次の回転中心としてロボットハンドを回転させてロボットハンドの最終的な回転中心を決定することで、最終的な回転中心の誤差を少なくすることができる。
【0022】
本開示の第4の側面では、前記第2処理で求めた回転中心を前記次の回転中心として前記ロボットハンドの回転中心を求める処理と、当該処理で求めた回転中心を前記次の回転中心として前記ロボットハンドの回転中心を求める処理とを繰り返し実行してから、前記ロボットハンドの最終的な回転中心を決定することができる。
【0023】
この構成によれば、最終的な回転中心を決定するまでに、回転中心を求める処理を複数回繰り返すことができるので、誤差が少ない回転中心に収束させることができる。
【0024】
本開示の第5の側面では、前記キャリブレーション実行部は、前記高精度キャリブレーション処理を繰り返し実行して前記ロボットハンドの回転中心を複数取得し、取得された複数の回転中心に基づいて、最終的な回転中心を決定することができる。
【0025】
すなわち、高精度キャリブレーション処理を1回だけで終了した場合、決定された最終的な回転中心が何らかの要因で正確でないおそれがあるが、本構成のように高精度キャリブレーション処理を複数回実行して取得した複数の回転中心に基づいて最終的な回転中心を決定することで、正確な回転中心を取得できる。最終的な回転中心を決定する際には、例えば複数の回転中心の平均処理などを実行すればよい。
【0026】
本開示の第6の側面では、前記キャリブレーション実行部は、前記高精度キャリブレーション処理を繰り返し実行して取得された複数の回転中心が予め定められた所定の収束条件を満たすか否かを判定し、所定の収束条件を満たすと判定した場合には、前記高精度キャリブレーション処理を終了することができる。
【0027】
すなわち、高精度キャリブレーション処理を繰り返し実行して取得された複数の回転中心が収束しなければ、取得した回転中心は正確でないおそれがある。本構成では、所定の収束条件を満たすまで高精度キャリブレーション処理を実行するので、正確な回転中心を取得できる。所定の収束条件としては、例えば高精度キャリブレーション処理によって取得された回転中心の誤差の変化分が一定以下であることを挙げることができる。
【0028】
本開示の第7の側面では、前記キャリブレーション実行部は、前記高精度キャリブレーション処理において前記ロボットハンドを暫定回転中心周りに所定角度回転させるとともに、当該所定角度回動後の前記ワークが前記三次元カメラの視野に入るように前記ロボットハンドを移動させることができる。
【0029】
すなわち、ロボットハンドを暫定回転中心周りに所定角度回転させる際に、ワークの位置や大きさによっては所定角度回動後にワークが三次元カメラの視野の外に出てしまうおそれがあるが、本構成では、所定角度回動後においてもワークが三次元カメラの視野に入っているので、正確なキャリブレーションデータを取得できる。
【0030】
本開示の第8の側面では、前記キャリブレーション実行部は、前記ワークを前記三次元カメラにより測定して得られた三次元の形状データに基づいて前記ワークの代表点のXYZ座標を求め、求めた前記代表点のXYZ座標をワーク座標とすることができる。
【0031】
本開示の第9の側面では、前記キャリブレーション実行部は、前記ワークを前記三次元カメラにより測定して得られた二次元の形状データに基づいて前記ワークの代表点のXY座標を求めるとともに、平面式から前記代表点をZ座標を求め、求めた前記代表点のXYZ座標をワーク座標とすることができる。
【0032】
本開示の第10の側面では、前記キャリブレーション実行部は、前記ロボットハンドを第1の位置に移動させて前記ワークを前記三次元カメラにより測定して得られた形状データに基づいてワーク座標を検出するとともに、前記ロボットハンドをZ座標が異なる第2の位置に移動させて前記ワークを前記三次元カメラにより測定して得られた形状データに基づいてワーク座標を検出し、前記第1の位置で検出したワーク座標と、前記第2の位置で検出したワーク座標とを前記三次元カメラの画角に非依存の画素位置に換算することができる。
【0033】
すなわち、ロボットハンドが第1の位置にあるときと、ロボットハンドが第2の位置にあるときとでは、三次元カメラのZ方向の位置が異なるので、カメラの画角によってワーク座標のX座標が異なり、正確なキャリブレーションデータが得られなくなることがある。本構成では、三次元カメラのZ方向の位置が異なっていても、ワーク座標を三次元カメラの画角に非依存の画素位置に換算することができるので、正確なキャリブレーションデータが得られる。
【0034】
本開示の第11の側面では、キャリブレーションを実行するキャリブレーションモードの選択が可能に構成されており、前記キャリブレーション実行部は、前記キャリブレーションモードが選択されたことを検出すると、前記通常キャリブレーション処理と前記高精度キャリブレーション処理とを順に連続的に実行するものである。
【0035】
この構成によれば、例えば運用モードとキャリブレーションモードとが搭載されている場合、運用モードの前にキャリブレーションモードが選択されると、はじめに通常キャリブレーション処理が実行され、その後に高精度キャリブレーション処理が実行されるので、通常キャリブレーション処理から高精度キャリブレーション処理へのユーザによる切替操作が不要になる。
【0036】
本開示の第12の側面では、前記キャリブレーション実行部は、前記高精度キャリブレーション処理で検出された前記ワーク座標の検出結果と、回転中心の収束値とを更新表示可能な表示領域を有するユーザインタフェースを生成する。前記制御装置は、前記キャリブレーション実行部で生成された前記ユーザインタフェースを表示する表示部を備えているので、収束値の変化をユーザに提示することができる。
【発明の効果】
【0037】
以上説明したように、通常キャリブレーション処理により求めたロボットハンドのツール中心と三次元カメラの相対位置に基づいて暫定回転中心を決定し、該暫定回転中心周りにロボットハンドを複数回回転させて取得した複数のワーク座標とロボット座標の組に基づいてロボットハンドの最終的な回転中心を高精度に決定することができる。これにより、ワークを使用してキャリブレーションを実行する場合に正確なキャリブレーションデータを取得できる。
【図面の簡単な説明】
【0038】
図1】ロボットシステムを用いてワークを搬送する様子を示す模式図である。
図2】ロボットシステムの構成を示すブロック図である。
図3】三次元カメラの一例を示す斜視図である。
図4A】ロボットハンドでワークを把持する例を示す模式図である。
図4B】ロボットハンドで空洞を有するワークを内面から把持する例を示す模式図である。
図4C】ロボットハンドで板状のワークを吸引して把持する例を示す模式図である。
図5】サーチモデルの設定の手順を示すフローチャートである。
図6】ハンドモデル及び把持位置の設定の手順を示すフローチャートである。
図7】ロボットの基本制御のフローチャートの一例を示す図である。
図8】キャリブレーションの手順の一例を示すフローチャートである。
図9】キャリブレーションの第1ステップの詳細手順を示すフローチャートである。
図10】キャリブレーション用ユーザインタフェースの例を示す図である。
図11】第1ステップでロボットハンドを平行移動させる様子を示す概略図である。
図12】第1ステップでロボットハンドを1点目の位置に移動させた場合に表示されるキャリブレーション用ユーザインタフェースの例を示す図である。
図13】第1ステップでロボットハンドを27点目の位置に移動させた場合に表示されるキャリブレーション用ユーザインタフェースの例を示す図である。
図14A】第1ステップでの測定中におけるワークと三次元カメラとの位置関係を示す側面図である。
図14B】第1ステップでの測定中におけるワークと三次元カメラの視野との関係を示す図である。
図15】画角補正時に用いるカメラ中央からの代表点までの距離を示す表である。
図16】第1ステップの完了時に表示されるキャリブレーション用ユーザインタフェースの例を示す図である。
図17】キャリブレーションの第2ステップの詳細手順を示すフローチャートである。
図18】第2ステップで表示されるキャリブレーション用ユーザインタフェースの例を示す図である。
図19】第2ステップでロボットハンドの動作を大きくした場合の視野とワークとの位置関係を説明する図である。
図20】第2ステップの完了時に表示されるキャリブレーション用ユーザインタフェースの例を示す図である。
図21】キャリブレーションの第3ステップの詳細手順を示すフローチャートである。
図22】高精度キャリブレーション設定時に表示されるキャリブレーション用ユーザインタフェースの例を示す図である。
図23A】第3ステップにおいて暫定回転中心周りにロボットハンドを回転させる場合を説明する図である。
図23B】第3ステップにおいてワークを視野に入れつつ、ロボットハンドを回転させる場合を説明する図である。
図24】原回転中心と真の回転中心位置のずれを求める場合を説明する図である。
図25】原回転中心を更新する場合を説明する図である。
図26】高精度キャリブレーション処理完了時に表示されるキャリブレーション用ユーザインタフェースの例を示す図である。
【発明を実施するための形態】
【0039】
以下、本発明の実施形態を図面に基づいて詳細に説明する。尚、以下の好ましい実施形態の説明は、本質的に例示に過ぎず、本発明、その適用物或いはその用途を制限することを意図するものではない。
【0040】
図1は、本発明の実施形態に係る制御装置100を備えたロボットシステム1000の構成例を示す模式図である。この図1は、各種製品の製造工場等にある作業空間に配置された複数のワークWKを、ロボットRBTに1つずつ把持させ、所定の場所に設置されているステージSTGまで搬送して該ステージSTG上に載置するばら積みピッキングを行う例について示している。
【0041】
ロボットシステム1000は、ロボットRBTと、ロボットRBTを制御するロボットコントローラ6とを備えている。ロボットRBTは、産業用の汎用ロボットであり、ベース部が工場等の床面に対して固定されている。ロボットRBTは、例えばマニピュレータ等とも呼ばれており、6軸制御が可能に構成されている。このロボットRBTは、ベース部から延びるアーム部ARMと、アーム部ARMの先端部に設けられたロボットハンドHNDとを備えている。アーム部ARMは、可動部としての関節部を複数備えた多関節型に構成することができる。アーム部ARMの各関節部の動作及びアーム部ARM自体の回転動作によってロボットハンドHNDを可動範囲内の所望の位置まで移動させることができる。
【0042】
ロボットハンドHNDは、ワークWKを把持することが可能に構成されており、その構造は特に限定されるものではない。例えば、ロボットハンドHNDは、図4Aに示すようにワークWKの外側を挟み込んで把持する構造のロボットハンドHND1、図4Bに示すように空洞部を有するワークWK2の内部に爪部を挿入して拡開させることによって保持する構造のロボットハンドHND2、図4Cに示すように板状のワークWK3を吸引して保持するロボットハンドHND3等があり、いずれのロボットハンドも使用することができる。また、本明細書で「把持」とは、図4Aに示すワークWKの外側を挟み込む方法、空洞部に爪部を挿入して拡開させる方法、吸引する方法等の全ての例を含む意味で使用する。
【0043】
ロボットコントローラ6はアーム部ARMの動作やロボットハンドHNDの開閉動作(把持動作)等を制御する。またロボットコントローラ6は図2に示す制御装置100から、ロボットRBTの制御に必要な情報を取得する。例えば、図1に示す容器BXに無作為に投入された多数の部品であるワークWKの位置姿勢を、三次元カメラ2を使用して取得し、制御装置100でワークWKの位置や姿勢を検出して、その情報をロボットコントローラ6が取得する。
【0044】
ロボットシステム1000の機能ブロック図を図2に示す。この図に示すロボットシステム1000は、ロボットRBT及びロボットコントローラ6の他に、制御装置100と、操作部4と、ロボット操作具7とを備える。ロボットシステム1000は、表示部3も備えている。ロボットコントローラ6が制御装置100を備えていてもよいし、制御装置100が単独で構成されていて、ロボットコントローラ6に接続されていてもよい。また、制御装置100が操作部4やロボット操作具7を備えていてもよい。
【0045】
操作部4は各種設定を行うための部分である。また、制御装置100は、測定部20を備えており、測定部20は、ワークWKを撮像してワークWKの位置姿勢等を測定する。さらにユーザは、表示部3で、各種設定や、ロボットRBTの動作状態の確認、制御装置100の動作状態の確認、後述するキャリブレーションの確認等を行うことができる。表示部3は、制御装置100の一部とすることもできる。
【0046】
一方、ロボットコントローラ6は制御装置100から出力される信号に従い、ロボットRBTの制御を行うように構成された周知の部材である。またロボット操作具7は、ロボットRBTの動作設定を行う。なお、図2の例では操作部4とロボット操作具7を別個の部材としているが、これらを共通の部材としてもよい。
【0047】
三次元カメラ2は、ロボットビジョンなどと呼ばれる、作業空間やワークWKを撮像する部材である。三次元カメラ2は、ロボットハンドHNDに固定されていて、三次元カメラ2とロボットハンドHNDとの相対的な位置関係が変化しないようになっている。従って、本実施形態のロボットシステム1000は、ハンドアイと呼ばれる方式のロボットシステムである。
【0048】
三次元カメラ2の撮像対象物には、少なくともワークWKが含まれており、撮像対象物には容器BXが含まれていてもよい。ワークWKにもよるが、ロボットハンドHNDが下にあるワークWKをピッキングする位置姿勢となったときに、三次元カメラ2が下を撮像可能となるように当該三次元カメラ2の光軸の向きを設定することができる。
【0049】
三次元カメラ2で撮像された画像から、ワークWKの三次元形状を示す三次元形状データ(画像データ)を取得することが可能になる。容器BXの三次元形状を示す三次元形状データも、三次元カメラ2で撮像された画像から取得することができる。また、三次元カメラ2で撮像された画像から、ワークWKの二次元形状を示す二次元形状データを取得することも可能である。三次元カメラ2は、ワークWKを撮像したカラー画像や白黒画像を出力することもできる。
【0050】
尚、ワークWKや容器BXの三次元形状を取得する方法は、例えば、パターン投影法、ステレオ法、レンズ焦点法、光切断法、光レーダ法、干渉法(白色干渉法)、TOF方式などがあり、これらの方法のうち、どの方法を用いてもよい。各方法は、従来から周知であるため、詳細な説明は省略する。本実施形態においては、パターン投影法のうち、周期的な照度分布を有するパターン光を撮像対象物に照射し、撮像対象物の表面で反射した光を受光する位相シフト法を用いている。
【0051】
三次元カメラ2と形状測定処理部200とにより、測定部20が構成されている。形状測定処理部200は三次元カメラ2の一部に含むこともできる。形状測定処理部200は、三次元カメラ2で取得した画像データに基づいてワークWKの位置姿勢、形状、各部の寸法だけでなく、容器BXの位置、形状や寸法も測定することができる。形状測定処理部200は、制御装置100の一部とすることができるが、別部材として構成することもできる。
【0052】
測定部20は、X方向及びY方向に加えてZ方向(高さ方向)を含む三次元の測定を行うことが可能な三次元測定部である。測定部20が備える三次元カメラ2の具体的な構成は、三次元形状の計測技術に応じて決定される。この例では、三次元カメラ2は、カメラ、照明又はプロジェクタ等を備えている。例えば位相シフト法でワークWKの三次元形状を計測する場合は、三次元カメラ2として図3に示すように、プロジェクタ(投光部)PRJと、複数のカメラ(受光部)CME1、CME2、CME3、CME4とを備える。プロジェクタPRJは、ワークWKに光を照射する部材である。カメラCME1、CME2、CME3、CME4は、プロジェクタPRJにより投光されてワークWKの表面で反射した光を受光する撮像素子を有する部材である。投光部の光源は、例えば複数の発光ダイオード、液晶パネル、有機ELパネル、デジタルマイクロミラーデバイス(DMD)等で構成することができる。三次元カメラ2が有するカメラや照明の数は、特に限定されない。また、三次元カメラ2やロボットRBT、ロボットコントローラ6との接続は、有線接続に限られず、周知の無線接続としてもよい。
【0053】
三次元カメラ2は、カメラCME1、CME2、CME3、CME4やプロジェクタPRJといった複数の部材で構成する他、これらを一体的に構成してもよい。例えばカメラCME1、CME2、CME3、CME4やプロジェクタPRJを統合してヘッド状とした3D撮像ヘッドを、三次元カメラ2とすることができる。
【0054】
また三次元形状データの生成自体を三次元カメラ2で行うこともできる。この場合、三次元カメラ2に三次元形状データの生成機能を実現する画像処理IC等を設ける。あるいは、三次元形状データの生成を、形状測定処理部200側で行わず、三次元カメラ2で撮像した生画像を、制御装置100の別の部分で画像処理して三次元画像等の三次元形状データを生成する構成としてもよい。
【0055】
制御装置100は、測定部20で得られたワークWKの位置姿勢等の三次元形状データに基づいて、三次元サーチ、干渉判定、把持解算出等を行う。この制御装置100は、専用の画像処理プログラムをインストールした汎用のコンピュータや、専用に設計された画像処理コントローラ、専用のハードウェアで構成することができる。また、グラフィックボードなどのハードウェアを画像検査処理に特化させた専用のコンピュータに、画像処理プログラムをインストールした構成とすることもできる。
【0056】
尚、図2の例では、測定部20が備える三次元カメラ2と形状測定処理部200とを別個の部材で構成する例を示しているが、本発明はこの構成に限られず、例えば三次元カメラ2と形状測定処理部200とを一体化したり、あるいは三次元カメラ2の一部を形状測定処理部200に組み込んだり、形状測定処理部200の一部を三次元カメラ2に組み込むこともできる。このように、図2に示す部材の区分けは一例であって、複数の部材を統合させたり、1つの部材を分けることもできる。例えば操作部4とロボット操作具7とを共通の部材としてもよい。
【0057】
表示部3は、例えば、液晶モニタや有機ELディスプレイ、CRT等を利用できる。操作部4は、各種シミュレーションや画像処理等の各種設定を行うための部材であり、キーボードやマウス等の入力デバイスが利用できる。また表示部3をタッチパネルとすることで、操作部4と表示部3を一体化することもできる。
【0058】
例えば制御装置100を、画像処理プログラムをインストールしたコンピュータで構成した場合、後述するように、表示部3上には画像処理プログラムを実行することによって生成されるグラフィカルユーザインターフェース(GUI)画面が表示される。表示部3上に表示されたGUI上から各種の設定を行うことができ、また処理結果等を表示させることができる。この場合、表示部3を各種の設定を行うための設定部や入力部としても利用でき、設定部や入力部には操作部4が含まれていてもよい。
【0059】
ロボットコントローラ6は、例えば三次元カメラ2で撮像した情報や制御装置100から出力される情報等に基づいてロボットの動作を制御する。またロボット操作具7は、ロボットRBTの動作設定を行うための部材であり、いわゆるペンダントなどが利用できる。
【0060】
ロボットコントローラ6は、三次元カメラ2で得られたワークWKの三次元形状に基づいて、複数のワークWKの内から、把持対象のワークWKを特定して、このワークWKを把持するよう、ロボットRBTを制御する。そして、ワークWKを把持位置で把持したまま、アーム部ARMを動作させて予め定められた載置位置、例えばステージSTG上まで移動させ、所定の姿勢でワークWKを載置する。いいかえると、ロボットコントローラ6は、三次元カメラ2及び制御装置100で特定されたピッキング対象(把持対象)のワークWKをロボットハンドHNDで把持して、把持したワークWKを所定の基準姿勢にて、載置場所(ステージSTG)に載置してロボットハンドHNDを開放するようにロボットRBTの動作を制御する。ステージSTGは、例えばコンベアベルト上やパレット等を挙げることができる。また、把持動作のことをピッキングということもでき、把持位置はピッキング位置ということもできる。また、載置動作のことをプレースということもでき、載置位置はプレース位置ということもできる。
【0061】
ここで、本実施形態が対象とするピッキングは、ばら積みピッキングに限られるものではなく、どのように載置されたワークWKであってもロボットRBTによって搬送することが可能である。本明細書において、ばら積みピッキングとは、容器BXに入れられて無作為に積み上げられたワークWKを、ロボットRBTで把持して、所定の位置に載置する他、容器を用いずに所定の領域に積み上げられたワークWKに対して把持、載置を行う例、あるいは所定の姿勢で並べられて積み上げられたワークWKを順次把持、載置する例も含む意味で使用する。また、必ずしもワークWK同士が積み重ねられている状態であることは要さず、ワークWK同士の重なりがない状態で平面上にランダムに置かれたワークWKについても、本明細書においてはばら積みと呼ぶ(順次ピッキングされていき、ピッキングの終盤でワークWK同士の重なりがない状態となった場合でも依然としてばら積みピッキングと呼ばれるのと同じ理由である)。なお、本発明はばら積みピッキングに必ずしも限定されるものでなく、ばら積みされていないワークWKをピックアップする用途にも適用できる。
【0062】
ロボットシステム1000でばら積みピッキング動作を行うにあたり、予めばら積みピッキング動作を行わせるための設定を含めたティーチングを行うこともできる。具体的には、ワークWKのどの部位を、ロボットハンドHNDがどのような姿勢で把持するのか、把持位置及び把持時の姿勢などの登録や、載置位置及び載置時の姿勢などの登録を行うことができる。このような設定は、ペンダント等のロボット操作具7で行うことができる。また、実際のロボットRBTを操作せずに、ビジョン空間上で設定を行うこともできる。
【0063】
表示部3は、ワークWKの三次元形状を仮想的に表現するワークモデルや、ロボットハンドHNDの三次元形状を仮想的に表現する、三次元CADデータで構成されたロボットハンドモデルを、仮想的な三次元空間上でそれぞれ三次元状に表示させる。さらにこの表示部3は、ワークモデルの基本方向画像を六面図として表示させることもできる。これにより、ワークモデルの各姿勢を六面図で表示させて把持位置の設定作業を行えるようになる。
【0064】
(設定手順)
図5は、サーチモデルの設定の手順を示すフローチャートである。ステップSB1では、ワークWKのサーチモデルを登録する。ワークWKのサーチモデルとは、後述するサーチ処理を実行する際に使用されるワークWKの形状を表したモデルである。ステップSB1でワークWKのサーチモデルを登録する際には、ワークWKの三次元CADデータ(CADモデル)を読み込んで、制御装置100が有する記憶装置42に一旦記憶させておく。CADデータは、ワークWKのサーチモデルのデータであり、従来から一般的に用いられているフォーマットのデータを使用することができる。
【0065】
また、ワークWKのサーチモデルとしては、例えばある面から見たサーフェス形状をもとに生成した干渉判定モデル(後述する干渉判定部25で使用される)であってもよい。また、ワークWKのサーチモデルとしては、CADデータのフォーマットとして最もシンプルなSTL形式を用いることができる。
【0066】
ステップSB1でワークWKのサーチモデルのCADデータを読み込んだ後、ステップSB2に進み、ワークWKのサーチモデルの確認及び登録を行う。
【0067】
また、ステップSB1で読み込んだCADモデルの六面の各方向から見た高さ画像データをステップSB2で生成する。まず、CADモデルの平面図、底面図、左側面図、右側面図、正面図、背面図となるように、6つの高さ画像データを生成する。この高さ画像データから高さ画像が得られる。ワークWKのCADデータが無い場合には、ワークWKのサーチモデルを異なる方向から見た複数の高さ画像データをサーチモデルとして登録するようにしてもよい。すなわち、登録したい面を上向きにしたワークWKを平面上に置き、三次元計測を行う。この三次元計測は、ロボットシステム1000の三次元カメラ2及び形状測定処理部200を利用して行うことができる。形状測定処理部200による三次元計測で得られた計測データは形状測定処理部200から出力され、計測データに基づいて、ワークWKの登録したい面の高さ画像データを得ることができる。高さ画像を得た後、その高さ画像をサーチモデルとして登録する。
【0068】
図5に示すフローチャートのステップSB3では、サーチ条件を設定する。サーチ条件には、例えば、サーチ時に検出可能なワークWKの数、サーチモデルとワークWKとの相関値の下限、特徴抽出条件(エッジ抽出の閾値等)等が含まれている。サーチ条件は使用者が設定することで、設定部21により受け付けられる。
【0069】
次に、図6に示すハンドモデル及び把持位置の設定の手順を示すフローチャートについて説明する。開始後のステップSC1では、現場で使用されるロボットRBTに関する各種情報を規定するロボットモデルを登録する。
【0070】
ステップSC1でロボットモデルを登録した後、ステップSC2に進み、ロボットハンドモデルを登録する。ロボットハンドモデルとは、ロボットハンドの形状を表したモデルであり、例えばロボットハンドのポリゴンデータ(CADデータ)を読み込む。
【0071】
その後、ステップSC3に進み、ステップSC2で登録したロボットハンドモデルと、そのロボットハンドモデルが装着されるロボットモデル(ステップSC1で登録済み)のフランジ面との相対的な位置及び姿勢を定義する。具体的には、ロボットハンドモデルにおける取付面と、ロボットモデルのフランジ面とが一致するように、両者の位置関係を定義しておく。
【0072】
ステップSC3に続くステップSC4では、ロボットモデルのフランジ面に装着された状態にあるロボットハンドモデルの先端座標を指定する。この先端座標は、ロボットコントローラ6から取得することも可能であるが、ユーザが設定することも可能である。その後、ステップSC5では、ロボットハンドモデルの登録完了確認を行う。
【0073】
その後、ステップSC6では、ハンドモデルで把持するサーチモデルの面を選択する。サーチモデルの面は、図5に示すフローチャートで登録した高さ画像で表すことができ、登録されている複数の高さ画像の中から、ロボットハンドモデルで把持することが可能な面に対応した高さ画像をユーザが選択する。
【0074】
ステップSC6で高さ画像を選択した後、ステップSC7に進み、ステップSC6で選択した面を把持する時のロボットハンドHNDの位置及び姿勢を登録する。ワークWKの把持候補位置及びロボットハンドHNDの姿勢を示す把持情報は、サーチモデルと対応付けられた状態で制御装置100が有する記憶装置42の把持情報記憶部42a(図2に示す)に記憶することができる。
【0075】
実際のロボットハンドHNDでワークWKをピッキングする際には、三次元カメラ2でワークWKを撮像した三次元空間(ビジョン空間)の座標であるビジョン座標から、ロボットコントローラ6がロボットRBTを実際に動作させる際に用いるロボット座標に変換する必要がある。尚、座標はロボット座標(XYZ、RxRyRz)で与えることもできるが、アーム部ARMの軸角度(joint angle)で与えることもできる。また、制御装置100内で把持位置等のロボット座標から、軸角度を求め、その軸角度をロボットコントローラ6側に伝えることもできるようになっている。
【0076】
具体的には、ワークWKのサーチモデルの位置及び姿勢は、ビジョン空間における位置と姿勢で求められる。また、これを把持するロボットハンドモデルの姿勢についても、同様に制御装置100の仮想三次元空間における位置と姿勢として求められる。このようなビジョン空間における位置及び姿勢に基づいて、ロボットコントローラ6がロボットRBTを動作させるには、これらをロボット空間における位置と姿勢に変換する必要がある。この表示される座標系で算出された位置及び姿勢を、ロボットコントローラ6がロボットハンドHNDを動作させる座標系の位置及び姿勢に座標変換するための変換式を算出する処理は、従来から周知の手法で行うことができる。
【0077】
図6に示すフローチャートのステップSC8では、必要数の把持候補位置を登録できたか否かを判定する。ステップSC8でNOと判定して必要数の把持候補位置を登録できていない場合には、ステップSC6を経てステップSC7に進み、他の把持候補位置を設定し、登録する。一方、ステップSC8でYESと判定した場合には、ステップSC9に進む。
【0078】
ステップSC9では、開始位置と、把持したワークWKを載置する載置位置とを登録する。ここでの開始位置は、ロボットハンドHNDによってワークWKの把持を行う位置であり、搬送開始位置に相当する。開始位置は、容器内にばら積みされているワークWKの把持候補位置とすることができる。開始位置は、ワークWKが容器内のどこに存在しているかによって異なることになるが、これは三次元サーチによって取得することができる。一方、載置位置は、ロボットハンドHNDによりワークWKが載置される位置であり、例えば図1に示すステージSTG上に設定することができる。
【0079】
ステップSC10では、ワークWKを把持位置から載置位置へ移動する間に経由する経由点を登録する。経由点が登録された場合、ロボットハンドHNDがワークWKを把持して開始位置から載置位置へ搬送する途中で、ロボットハンドHNDの一部またはワークWKの一部が経由点を通過するように、アーム部ARM及びロボットハンドHNDの動作が設定される。
【0080】
(ロボットの基本制御)
図7は、ロボットRBTの基本制御のフローチャートの一例を示す図である。スタート後のステップSD1では、測定部20がワークWKを撮像してワークWKの位置姿勢を測定し、ステップSD2で実行されるサーチ処理用データ(高さ画像データ)を生成する。測定部20によって三次元計測が可能であるため、サーチ処理用データには高さ情報を含むことができる。
【0081】
その後、ステップSD2に進み、ステップSD1で生成されたサーチ処理用データに対し、ワークWKの位置及び姿勢を検出するサーチ処理を実行する。具体的には、登録されたワークWKのサーチモデルを用いて、ワークWKの姿勢と位置を特定するのであるが、まずサーチモデルの各特徴点が、最も一致する状態の位置及び姿勢を、サーチ処理用データの中から探索する。
【0082】
登録されたサーチモデルが存在するか否かをサーチした結果、サーチ処理用データ中に、サーチモデルが存在しない場合、即ちワークWKを検出できない場合には、このフローチャートを終了する。
【0083】
また、ステップSD2では、図2に示す位置決定処理部22が、測定部20による測定結果と、把持情報記憶部42aに記憶された把持情報とに基づいて、作業空間に配置されたワークWKのロボットハンドHNDによる把持位置を決定する。さらに、位置決定処理部22は、把持位置を決定した後、当該把持位置を把持するためのロボットハンドHNDの移動目標座標を算出するように構成されている。
【0084】
このとき図2に示す干渉判定部25の判定結果を使用することができる。干渉判定部25は、ロボットハンドHNDと障害物との干渉判定を行う部分である。例えば、図6に示すフローチャートに示す処理で登録されたロボットハンドHNDのモデルが容器BXの壁等の障害物に接触するか否かを判定することができる。
【0085】
また、ステップSD3では、図2に示す経路生成部23が、ロボットハンドHNDで把持したワークWKをプレース位置まで搬送する搬送経路を生成する。ステップSD4では、出力部24が、把持位置、載置位置、経由点等の座標及びステップSD2で算出した移動目標座標をロボットコントローラ6に出力する。ロボットコントローラ6は、出力部24から出力された把持位置、載置位置、経由点等の座標を受け取って制御信号を生成し、生成した制御信号をロボットRBTに出力する。その後、ステップSD5では、ロボットRBTが制御信号に従って動作してワークWKを所定の経路で搬送する。
【0086】
(キャリブレーション)
図7に示すフローチャートに従ってロボットシステム1000を運用することができるが、本ロボットシステム1000は、ハンドアイ方式のロボットシステムであることから、運用前には、三次元カメラ2のカメラ座標をロボットハンドHNDのロボット座標に変換するためのキャリブレーション、いわゆるhand-eyeキャリブレーションを実行する必要がある。
【0087】
キャリブレーションを実行する際には、上記特許文献1に開示されているようにキャリブレーション用マークやキャリブレーションボード等を使用する場合があるが、キャリブレーション用マークやキャリブレーションボードと、上記ワークWKとは、材質、形状、大きさなどが異なっているので、三次元カメラ2の撮像用パラメータや、ピント位置などを実際のワークWKの撮像時とは変えてキャリブレーション用マークやキャリブレーションボードの撮像を行う必要がある。つまり、ロボットシステム1000の運用時と異なる撮像用パラメータでキャリブレーションを行うことになるので、運用に最適な状態のキャリブレーション結果が得られるとは言い難い。
【0088】
そこで、本実施形態では運用時に実際にピッキングされるワークWKをキャリブレーションに使用する。そして、制御装置100は、ロボットハンドHNDに固定された三次元カメラ2を用いてワークWKの形状を測定し、測定されたワークWKの形状データに基づいて複数段階のキャリブレーションを実行するように構成されている。
【0089】
キャリブレーションの手順は、大きく分けると、図8に示すように第1~第3ステップSE1~SE3で構成されている。スタート後の第1ステップSE1では、ロボットハンドHNDと三次元カメラ2とをXYZ方向へ平行移動させ、ロボットハンドHNDと三次元カメラ2の移動を停止したときのカメラ座標とロボット座標を取得し、カメラ座標とロボット座標の対応関係を求める。第2ステップSE2では、ロボットハンドHNDと三次元カメラ2とを所定の軸周りに複数回回動させ、ロボットハンドHNDと三次元カメラ2の移動を停止したときのカメラ座標とロボット座標を取得し、回転中心と三次元カメラ2の位置との暫定的な対応関係を求める。第3ステップSE3では、第2ステップSE2で求めた暫定的な対応関係を元に、ロボットハンドHNDと三次元カメラ2と回転させ、回転中心の補正値を得る。得られた補正値を元に、第2ステップSE2で求めた暫定的な回転中心を補正する。
【0090】
図8に示すフローチャートでは、第1ステップSE1と第2ステップSE2とを分けて別ステップとして示しているが、これに限らず、第1ステップSE1における処理内容と、第2ステップSE2における処理内容とを1つのステップで実行してもよい。また、第2ステップSE2では、回転中心と三次元カメラ2の位置との暫定的な対応関係を求めているが、この関係が設計値で予め定まっている場合には、第2ステップSE2を省略し、設計値の読み込みで代用できる。
【0091】
また、第1ステップSE1及び第2ステップSE2は、カメラ座標における位置をロボット座標上の位置に変換するためのパラメータを算出し、回転中心と三次元カメラ2の位置との暫定的な対応関係を求めるためのステップであることから、通常キャリブレーション処理と定義する。第3ステップSE3は、第2ステップSE2で求めた暫定的な回転中心を補正して精度を高めるステップであることから、高精度キャリブレーション処理と定義する。通常キャリブレーション処理及び高精度キャリブレーション処理は、図2に示すキャリブレーション実行部26が実行する。
【0092】
制御装置100は、上述したロボットシステム1000を運用する際に選択される運用モードと、キャリブレーションを実行する際に選択されるキャリブレーションモードとを実行可能に構成されている。ユーザがロボットシステム1000の運用前にキャリブレーションを実行するキャリブレーションモードを選択すると、キャリブレーション実行部26は、制御装置100でキャリブレーションモードが選択されたことを検出する。キャリブレーション実行部26は、キャリブレーションモードが選択されたことを検出すると、通常キャリブレーション処理と高精度キャリブレーション処理とを順に連続的に実行する。「連続的に実行する」とは、通常キャリブレーション処理の終了後に、ユーザが特別な操作を行わなくても、通常キャリブレーション処理の結果を用いて高精度キャリブレーション処理を開始することであり、これにより、ユーザの負担を軽減できる。尚、通常キャリブレーション処理と高精度キャリブレーション処理とを連続的に実行することなく、通常キャリブレーション処理の終了後に、ユーザからの指示を待って高精度キャリブレーション処理を開始するようにしてもよい。以下、第1~第3ステップSE1~SE3の各ステップの詳細について説明する。
【0093】
(第1ステップの詳細)
図9は、上記図8に示す第1ステップSE1の詳細手順を示すフローチャートである。第1ステップSE1が開始されると、キャリブレーション実行部26は、図10に示すような画像からなるキャリブレーション用ユーザインタフェース50を生成して表示部3に表示させる。キャリブレーション用ユーザインタフェース50には、三次元カメラ2で撮像したワークWKのカラー画像を表示する二次元画像表示領域51と、三次元カメラ2で撮像された画像から取得した三次元形状データに基づく高さ画像を表示する三次元画像表示領域52とが設けられている。実際には、三次元画像表示領域52に、高さに応じて異なる色に着色されたワーク画像が表示されるが、本例の図では着色を省略している。
【0094】
さらに、キャリブレーション用ユーザインタフェース50には、キャリブレーションモードであるか否かを表示するモード表示領域53と、ロボットハンドHNDの移動量を表示する移動量表示領域54と、回転中心誤差を表示する誤差表示領域55と、通常キャリブレーション処理時におけるロボットハンドHNDの移動量を設定する移動量設定領域56とが設けられている。移動量表示領域54には、ロボットハンドHNDのX方向の移動量(X)、Y方向の移動量(Y)、Z方向の移動量(Z)、X軸周りの回転量(Rx)、Y軸周りの回転量(Ry)及びZ軸周りの回転量(Rz)が表示される。X方向の移動量(X)、Y方向の移動量(Y)、Z方向の移動量(Z)の単位はmmであり、X軸周りの回転量(Rx)、Y軸周りの回転量(Ry)及びZ軸周りの回転量(Rz)の単位はdegである。
【0095】
移動量設定領域56にも移動量表示領域54と同様なX方向の移動量(X)、Y方向の移動量(Y)、Z方向の移動量(Z)、X軸周りの回転量(Rx)、Y軸周りの回転量(Ry)及びZ軸周りの回転量(Rz)が表示されており、ユーザが各値を個別に入力することが可能になっている。移動量設定領域56の各値は、予め決められた値が入力されていてもよく、その入力されている値をユーザが変更可能であってもよい。各値の入力や変更は操作部4をユーザが操作することによって可能である。
【0096】
図9に示すフローチャートのステップSF1では、ロボットハンドHNDをキャリブレーションの開始位置に移動させる。開始位置に移動させると、ステップSF2に進み、図11に示すように、ロボットハンドHNDを、開始位置を中心に、縦3点×横3点×高さ3点(計27点)の格子状に平行移動させる。このときの移動量は、図10に示すキャリブレーション用ユーザインタフェース50の移動量設定領域56に入力されたX方向の移動量(X)、Y方向の移動量(Y)、Z方向の移動量(Z)である。
【0097】
このステップSF1では、ロボットハンドHNDは回転させずに、X方向、Y方向、Z方向に沿う方向へのみ移動させる。つまり、ロボットハンドHNDの姿勢(θx,θy,θz)は変えずに、θx,θy,θzは一定の値を保ったままにする。これは、ツール中心と三次元カメラ2の位置との関係を崩さないようにするためである。尚、縦とはY方向であり、横とはX方向であり、高さとはZ方向である。X方向の複数点の間隔、Y方向の複数点の間隔、Z方向の複数点の間隔は全て同じにすることができる。また、本実施形態では、計27点移動させているが、これは一例であり、移動点の数は27より少なくてもよいし、多くてもよい。また、ロボットハンドHNDは、必ずしもX方向、Y方向、Z方向に沿う方向へ移動させなくてもよく、X方向に対して所定の傾斜角を持って直線移動させてもよいし、XY向に対して所定の傾斜角を持って直線移動させてもよいし、Z方向に対して所定の傾斜角を持って直線移動させてもよい。
【0098】
各動作後、ロボットハンドHNDの停止位置でワークWKを三次元カメラ2で撮像する。図12は、ロボットハンドHNDを1点目の位置に移動させた場合に表示されるキャリブレーション用ユーザインタフェース50の例を示す図である。また、図13は、ロボットハンドHNDを27点目の位置に移動させた場合に表示されるキャリブレーション用ユーザインタフェース50の例を示す図である。1点目と27点目とでは、三次元カメラ2のワークWKに対する位置が変わっているので、図12の三次元画像表示領域52と、図13に示す三次元画像表示領域52とには、異なる角度及び位置から見たワークWKの三次元画像が表示されている。1点目~27点目までの各点で撮像されたワークWKの三次元画像が三次元画像表示領域52に順次表示されるようにしてもよいし、ワークWKの三次元画像を表示しなくてもよい。図12及び図13に示すように、1点目~27点目までの各点で撮像を開始すると、キャリブレーション用ユーザインタフェース50には、オプション表示領域57が表示される。オプション表示領域57には、位置公差、法線公差、角度公差等が表示される。尚、公差は、キャリブレーション時には関係なく、運用時に適用されるものである。
【0099】
キャリブレーション実行部26は、三次元カメラ2で測定して得られた三次元形状データに基づいてワーク座標を検出するとともに、当該ワーク座標に対応するロボット座標を取得する。ワーク座標に対応するロボット座標とは、ワーク座標を得た時のロボット座標である。これを27点全て実行し、各点のワーク座標及びロボット座標を組(27の組)にして記憶装置42等に保持しておく。
【0100】
各点でのワークWKの位置の特定方法としては、例えば、三次元カメラ2で取得された三次元の形状をサーチし、その代表点(中心位置など)のXYZを検出座標とする特定法法や、二次元の形状をサーチし、その代表点のXY座標を代表点とし、別途求めた平面式からその代表点のZを求める特定方法などがある。本実施形態では、後者の特定方法を採用しており、画角に依るワークWKの見え方の変化に追従するように、多点のエッジ検出した後、円の中心座標を最小二乗法で算出している。代表点の座標は、ワークWKの特徴的な部分の座標として求めてもよい。例えばワークWKの中央に穴がある場合、その穴の中心を代表点としてもよい。
【0101】
その後、図9に示すフローチャートのステップSF3に進む。ステップSF3では、三次元カメラ2の画角を補正する補正処理を行う。三次元カメラ2の画角が補正されている場合には、このステップSF3は省略できる。また、本実施形態で使用される三次元カメラ2はレンズ交換式であり、画角補正がカメラ側ではなされないように構成されているが、レンズを交換した際に画角補正がカメラ側または制御装置100内でなされるように構成されていてもよい。本実施形態においてレンズ非交換式のカメラを用いてもよい。
【0102】
ここで、三次元カメラ2でワークWKを撮像した時の視野に対するワークWKの見え方について説明する。上記ステップSF1では三次元カメラ2が固定されているロボットハンドHNDを縦、横、高さ方向に平行移動させるため、ワークWKの位置が三次元カメラ2の視野に対し相対的にずれる。画角の補正がされない三次元カメラ2の場合は、三次元カメラ2からの距離が変わると、視野に占めるワークWKの面積も変わることになる。画角の補正がされない三次元カメラ2では、Z方向はmm単位、XY方向は画素単位ということができ、画角の補正がされる三次元カメラ2では、XY方向もmm単位といえる。
【0103】
このことを図14A及び図14Bに基づいて説明する。図14Aは、第1ステップで1点目~27点目まで測定している時のワークWKと三次元カメラ2とが取り得る位置関係を示す側面図である。面S1は、ワークWKの天面を水平方向に延長した面である。面S2は、三次元カメラ2が基準位置、即ち中段位置(第1の位置)にある時の受光素子(またはレンズの受光面)を通る水平面である。面S3は、三次元カメラ2が上段位置(第2の位置)にある時の受光素子(またはレンズの受光面)を通る水平面である。ワークWKの代表点を点P1とすると、点P1の物理的な座標は、基準位置では(X,Z)で表すことができ、上段位置では(X,Z’)で表すことができる。
【0104】
直線L1は三次元カメラ2の光軸を示しており、Z方向に沿っている。2本の直線L2、L2は、三次元カメラ2が基準位置にある時の当該三次元カメラ2の視野範囲を示している。また、2本の直線L3、L3は、三次元カメラ2が上段位置にある時の当該三次元カメラ2の視野範囲を示している。
【0105】
図14Bにおける符号2Aで示す矩形は、三次元カメラ2で撮像した時の視野範囲を示している。三次元カメラ2が基準位置にある時に撮像されたワークWKを実線で、三次元カメラ2が上段位置にある時に撮像されたワークWKを破線でそれぞれ示している。三次元カメラ2が基準位置にある時に撮像されたワークWKの代表点P1の座標は(xp,Z)であり、三次元カメラ2が上段位置にある時に撮像されたワークWKの代表点P1の座標は(xp’,Z’)である。
【0106】
図14A図14Bに示す関係を表で表すと図15に示すようになる。すなわち、三次元カメラ2の中央(光軸L1)からワークWKの代表点P1までの水平距離は、画素距離で示すと中段位置の時にxpとなり、上段位置の時にxp’となり、これらxp,xp’は検出された代表点であることから既知である。また、三次元カメラ2からワークWKの代表点P1までの垂直距離(Z方向の距離)は、物理距離で示すと中段位置の時にZとなり、上段位置の時にZ’となり、これらZ,Z’は検出された代表点であることから既知である。三次元カメラ2の中央(光軸L1)からワークWKの代表点P1までの水平距離のうち、物理距離Xは未知であるが、幾何関係Z’:Z=xp:xp’が成り立つ。
【0107】
三次元カメラ2が上段位置にあるときの画素位置xp’は、画角によって、物理的な大きさ(位置)Xと三次元カメラ2からの距離Z’との関係で求まるが、このままでは、カメラ座標自体が高さに依存してしまうため、キャリブレーションに使いにくい。そこで、本実施形態のキャリブレーション実行部26は、上記関係を、カメラの画角に非依存の(すなわちテレセントリックレンズを使った場合の)画素位置に換算する。xcpとXとは比例関係、すなわち、補正後画素位置xcpはXに依存する関係にある。この関係から以下の式1(基準面での相当画素位置を求める式)でxcpを求めることができる。尚、レンズの歪みを考慮する場合などでは、他の算出方法を採用することもできるので、式1を使った算出方法に限定されるものではない。
【0108】
xcp=xp’*(Z’/Z) … 式1
【0109】
以上が図9に示すフローチャートのステップSF3で実行される補正処理である。その後、ステップSF4に進み、カメラ座標からロボット座標への対応関係をAffine変換行列として最小二乗法で求める。具体的には、本例では27点でワークWKの測定を行っているので、27点のロボット位置Prと、カメラ座標の位置Pcとの関係から、最小二乗法によりAffine変換行列を求めることができる。ここで、Pcは補正後のカメラ位置となる。補正後のカメラ位置Pcは、XYZがmm単位でなくともよい。本例ではXYが画素単位座標、Zがmm座標としており、XYZ座標が均等な空間であれば、計算に使用することが可能である。
【0110】
ステップSF4を経ることで図8に示すフローチャートの第1ステップSE1が完了する。図16は、第1ステップSE1が完了した時に表示部3に表示されるキャリブレーション用ユーザインタフェース50である。このキャリブレーション用ユーザインタフェース50には、キャリブレーション結果表示領域58が設けられている。キャリブレーション結果表示領域58には、第1ステップSE1によって求められた三次元カメラ2の視野、画素分解能、座標軸角度、座標軸回転角度、回転中心位置等が表示される。
【0111】
(第2ステップの詳細)
図17は、上記図8に示す第2ステップSE2の詳細手順を示すフローチャートである。第2ステップSE2が開始されると、キャリブレーション実行部26は、図18に示すキャリブレーション用ユーザインタフェース50を生成して表示部3に表示させる。第2ステップSE2で表示されるキャリブレーション用ユーザインタフェース50には、モード表示領域53に回転中心算出モードであることが表示される。
【0112】
図17に示すフローチャートのステップSG1では、ロボットハンドHNDをキャリブレーションの開始位置に移動させる。開始位置に移動させると、ステップSG2に進み、ツール中心座標に対し、開始位置、±θx,±θy,±θzだけずらした各点(計7点)でロボットハンドHNDを停止させ、ロボットハンドHNDの停止位置でワークWKを三次元カメラ2で撮像する。三次元カメラ2で測定して得られた三次元形状データに基づいてワーク座標を検出するとともに、当該ワーク座標に対応するロボット座標を取得する。各点のワーク座標及びロボット座標を組にして記憶装置42等に保持しておく。その後、ステップSG3に進み、ロボット座標を基準とした暫定的な回転中心を求める。
【0113】
具体的には、7点の検出座標から回転中心を求める際には、球面の方程式を利用した最小二乗法を採用することができる。本例では点の数を7つとしているが、4つ以上であれば三次元で回転中心を求めることは可能である。点数が多い方が求めた結果が良好になる。
【0114】
球面の方程式を利用することなく、回転中心を幾何的に求めることもできる。例えば、ズレベクトルの二等分線・二等分面を複数求め、それら交点から回転中心を推定でき、また、ズレの距離とずらした角度の関係からarctanで中心位置の距離が分かり、これらの複数の関係から、中央座標を求めることも可能である。
【0115】
以上がキャリブレーションの第2ステップSE2であるが、原理的に、ロボットハンドHNDの回転動作を大きくしないと回転中心が正確に求まりにくい。ところが、図19に示すように、ロボットハンドHNDの回転動作を大きくすると、ワークWKが視野に収まりきらず、代表点P1の検出が不安定になる。図19における3つの符号2Aは、三次元カメラ2の視野を示しており、右の視野2Aは回転前の視野、中央の視野2A及び左の視野2Aは回転後の視野をそれぞれ示している。
【0116】
第2ステップが完了すると、図20に示すようなキャリブレーション用ユーザインタフェース50が表示され、上記図8に示す第3ステップSE3が開始される。
【0117】
(第3ステップの詳細)
図21は、上記図8に示す第3ステップSE3の詳細手順を示すフローチャートである。第3ステップSE3では、図22に示すキャリブレーション用ユーザインタフェース50に設けられている高精度キャリブレーション設定領域60で設定された移動量でロボットハンドHNDを移動させる。図22に示すキャリブレーション用ユーザインタフェース50は、第1ステップSE1を開始する前に表示部3に表示させて各値を入力可能にしてもよいし、第2ステップSE2が完了した後に表示部3に表示させて各値を入力可能にしてもよい。高精度キャリブレーション設定領域60で設定される移動量は、予め所定決定された値であってもよい。
【0118】
図21に示すフローチャートのステップSH1では、上記通常キャリブレーション処理により求められたロボットハンドHNDのツール中心と三次元カメラ2の相対位置に基づいて、暫定的な回転中心(暫定回転中心)を決定する。決定した暫定回転中心を原回転中心として記憶装置42等に保持する。その後、ステップSH2に進み、ワークWKの代表点P1が安定的に求まる位置(開始位置)にロボットハンドHNDを移動させる。
【0119】
次いで、ステップSH3に進み、カメラ位置と原回転中心位置との関係を用い、開始位置でロボットハンドHND(三次元カメラ3)を回転させ、開始位置、±θx,±θy,±θzだけずらした各点(計7点)でロボットハンドHNDを停止させ、ロボットハンドHNDの停止位置でワークWKを三次元カメラ2で撮像する。三次元カメラ2で測定して得られた三次元形状データに基づいてワーク座標(代表点P1の座標)を検出するとともに、当該ワーク座標に対応するロボット座標を取得する。各点のワーク座標及びロボット座標を組にして記憶装置42等に保持しておく。
【0120】
回転角度を設定する際、キャリブレーション実行部26は、高精度キャリブレーション処理において暫定回転中心周りに回転させるロボットハンドHNDの回転角度(θx,θy,θz)を、通常キャリブレーション処理においてXYZ軸周りに回転させるロボットハンドHNDの回転角度よりも大きな回転角度とする。尚、高精度キャリブレーション処理と、通常キャリブレーション処理とで、ロボットハンドHNDの回転角度を同じにしてもよい。
【0121】
ステップSH3では、上記通常キャリブレーション処理によりツール中心とカメラ位置との暫定的な位置関係を求めているので、その位置関係を利用してワークWKの代表点P1が安定的に求まるようにワークWKを視野に入れつつ、ロボットハンドHNDを回転させることができる。すなわち、図23Aに示すように、単純に暫定回転中心周りにロボットハンドHNDを回転させると、回転後の視野2AからワークWKの一部が出てしまい、その結果、代表点P1が視野2A外に位置し、測定不可になる。一方、図23Bに示すように、キャリブレーション実行部26が、本高精度キャリブレーション処理においてロボットハンドHNDを暫定回転中心周りに所定角度回転させるとともに、当該所定角度回動後のワークWKが三次元カメラ2の視野2Aに入るようにロボットハンドHNDを移動させるので、ワークWKの全体が視野2A内に位置し、その結果、代表点P1を視野2A内に位置付けることができる。
【0122】
つまり、所定角度回転させた場合に予想される移動量を、原回転中心に基づき計算し、その移動量を使ってロボットハンドHNDを移動または回転させて三次元カメラ2で撮像する。そこから求めた代表点から、本来求めたかった代表点の位置を求めることができる。具体的には、通常キャリブレーション処理で暫定回転中心が求まっていて、回転による移動後の位置を推定できるので、その移動ベクトルの逆方向にツール中心を移動させる制御を行うことで、カメラ位置の移動を相殺することができる。これにより、ワークWKの代表点を安定的に検出しつつ、ロボットハンドHNDを大きく回転させることが可能となる。
【0123】
例えば、図24に示すように原回転中心と真の回転中心位置のずれが生じている場合、以下のようにしてずれを求めることができる。尚、p,c,dはベクトル、Qは回転行列である。原点回転中心をcとし、代表点pの検出ズレをdとすると以下の関係が成立する。
【0124】
Q(p-c)+d+c … 式2
Q(p-(c+x))+(c+x) … 式3
【0125】
式2と式3とは等価であるという関係から、中心のズレx、真の回転中心c+xを求めることができる。尚、Iは単位ベクトルである。
【0126】
d=-Qx+x
d=(I-Q)x
x=(I-Q)^-1d
【0127】
二次元の場合は、(I-Q)の逆行列が安定的に求まる。また、三次元の場合は、上記の関係だけではランク落ちするため、関係式を増やし、最小二乗法で求める。そのために、θx,θy,θzをそれぞれ±方向で振る。
【0128】
その後、図21に示すフローチャートのステップSH4~SH6に進み、ステップSH3で保持した各点のワーク座標及びロボット座標の組に基づいてロボットハンドHNDの最終的な回転中心を決定する。具体的に説明すると、まず、ステップSH4では、ステップSH3で保持した各点のワーク座標及びロボット座標の組に基づいて回転中心を再計算(補正)する。再計算後の値を保存し、この値を次の原回転中心として上書きする。ステップSH2~SH4は、N回繰り返し、各回の回転中心の値を保存する。例えば、1回目のループを第1処理、2回目のループを第2処理と呼ぶことができ、キャリブレーション実行部26は、少なくとも第1処理と第2処理とを経た後に、ロボットハンドHNDの最終的な回転中心を決定することができる。
【0129】
ステップSH2~SH4をN回繰り返した後、ステップSH5に進む。ステップSH5では、N個の回転中心の値の平均を算出する。そして、平均から所定の閾値以上離れた回転中心を異常値除去するためにマークしておく。
【0130】
その後、ステップSH6に進み、ステップSH5でマークされなかった回転中心のみを使って平均算出し、得られた平均を最終の回転中心とする。
【0131】
このフローチャートでは、原回転中心をループ(ステップSH2~4で構成されるループ)ごとに更新している。原回転中心をループごとに更新する場合の概念図を図25に示す。図25では、最初の原回転中心を通常キャリブレーション処理で求めた暫定回転中心としており、矢印で示すように、上記ループを経るごとに回転中心が更新される。この例に示すように、回転中心が平均から大きく外れることもある。回転中心が大きく外れた場合、その回転中心は異常値であると推定できるので、原回転中心を更新する際には、異常値を除去する処理を実行してもよい。具体的には、このフローでは、上記ループをN回経ることで回転中心をN個算出した後で、算出した回転中心の中で平均から所定の閾値以上ずれているものを省いているが、他の方法として、ループごとの補正量に対し、閾値を引き、誤差の多い回転中心を省くこともできる。この処理もキャリブレーション実行部26で行うことができる。
【0132】
原回転中心をループごとに更新していくと、得られた回転中心が次第に真の回転中心に近づいていき、得られた回転中心が収束していく。本実施形態では、例えば図20に示すキャリブレーション用ユーザインタフェース50に収束値表示領域62を設けている。収束値表示領域62には、回転中心が収束していく様子を表示することができる。その表示の一例として、回転中心の収束値(単位mm)を表示している。例えば、3回目のループで得られた回転中心の収束値は2回目で得られた回転中心の収束値よりも小さな値が表示され、ループの回数が増えるごとに収束値表示領域62に表示される収束値が小さくなっていく。したがって、ユーザは、収束値表示領域62に表示される収束値を見ることで、得られた回転中心が次第に真の回転中心に近づいていっていることを把握できる。ループの回数は2回であってもよい。
【0133】
ループの回数を増やしても収束値が所定以上変化しなければ、その時点で高精度キャリブレーション処理を終了させることができる。具体的には、キャリブレーション実行部26は、高精度キャリブレーション処理を繰り返し実行して取得された複数の回転中心が予め定められた所定の収束条件を満たすか否かを判定する。キャリブレーション実行部26は、所定の収束条件を満たすと判定した場合には、高精度キャリブレーション処理を終了する一方、所定の収束条件を満たさないと判定した場合には、高精度キャリブレーション処理を継続するように構成できる。所定の収束条件としては、例えば高精度キャリブレーション処理によって取得された回転中心の誤差の変化分が一定以下であることを挙げることができる。回転中心の誤差の変化分が一定以下である場合が、複数回(例えば3回)続いたら、所定の収束条件を満たすと判定してもよい。所定の収束条件は、予め決められていてもよいし、ユーザが任意に設定できるようにしてもよい。
【0134】
高精度キャリブレーション処理が完了して最終の回転中心が決定されると、キャリブレーション実行部26は、図26に示すキャリブレーション用ユーザインタフェース50を生成して表示部3に表示させるとともに、ユーザに対して高精度キャリブレーション処理が完了したことを報知する。高精度キャリブレーション処理完了後に表示されるキャリブレーション用ユーザインタフェース50には、キャリブレーション結果表示領域61が設けられている。キャリブレーション結果表示領域61には、通常キャリブレーション処理及び高精度キャリブレーション処理の両処理を経て取得された三次元カメラ2の視野、画素分解能、座標軸角度、座標軸回転角度、最終の回転中心位置等が表示される。
【0135】
(実施形態の作用効果)
以上説明したように、この実施形態によれば、三次元カメラ2がロボットハンドHNDに固定されているので、ロボットシステム1000の運用時には、ロボットハンドHNDを大きく退避させることなく、三次元カメラ2によってワークWKの位置を測定することが可能になるとともに、測定対象のワークWKに近いところから当該ワークWKの三次元形状を測定することができ、測定精度が向上する。
【0136】
また、キャリブレーション時には、キャリブレーション用マークやキャリブレーションボード等を使用することなく、ワークWKを使用することができる。このとき、はじめに通常キャリブレーション処理によってカメラ座標における位置をロボット座標上の位置に変換するためのパラメータを算出することができるので、ロボットハンドHNDのツール中心と三次元カメラ2の相対位置関係を求めることができる。その後、ロボットハンドHNDの暫定回転中心を決定し、暫定回転中心周りにロボットハンドHNDを複数回回転させることで、三次元カメラ2の視野の外にワークWKが出ないようにすること、ワークWKの全体が三次元カメラ2の視野に入るようにすること、及び三次元カメラ2の視野中央部近傍にワークWKを置くことが可能になる。そして、各位置で、ワークWKを三次元カメラ2により測定してワーク座標を検出するとともに、当該ワーク座標を得た時のロボット座標を取得し、取得した複数のワーク座標とロボット座標の組に基づいて、ロボットハンドHNDの最終的な回転中心を高精度に決定することができる。
【0137】
上述の実施形態はあらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。さらに、特許請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内のものである。
【産業上の利用可能性】
【0138】
以上説明したように、本発明に係る制御装置は、ロボットシステムに適用することができる。
【符号の説明】
【0139】
2 三次元カメラ
3 表示部
26 キャリブレーション実行部
50 キャリブレーション用ユーザインタフェース
100 制御装置
HND ロボットハンド
RBT ロボット
WK ワーク
図1
図2
図3
図4A
図4B
図4C
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14A
図14B
図15
図16
図17
図18
図19
図20
図21
図22
図23A
図23B
図24
図25
図26