(57)【要約】【課題】三次元視覚センサの性能に被写界深度方向の制約があっても、作業部の教示点を正確に補正できる教示点補正方法を提供する。【解決手段】指標は、作業台１０４に位置決められたマーカ１０５に目標教示点に対応させて設定される。ステレオカメラ１０３は、ロボットハンド１０２に位置決められた状態で指標を撮影してマーカ１０５の三次元の位置を測定する。ロボットアーム制御工程では、オフライン教示点に対してステレオカメラ１０３の被写界深度方向を含む方向にオフセットしたオフライン補正用教示点にロボットハンド１０２を位置させる。撮影工程では、ロボットハンド１０２をオフライン補正用教示点に位置させた状態で、ステレオカメラ１０３により指標を撮影する。補正工程では、指標の撮影結果に基づいて、オフライン教示点を目標教示点に向かって補正してオンライン教示点を取得する。【選択図】図１
2017077614.tif 000002
【特許請求の範囲】
【請求項１】
作業部を移動させる多関節ロボットアームと、前記多関節ロボットアームを制御する制御部と、を有するロボット装置において、前記作業部を用いて処理される対象物側に前記作業部を位置決める目標教示点に対応させて指標が設定され、前記指標を撮影して前記指標の三次元の位置を測定する三次元視覚センサが前記作業部に位置決められた状態で、補正前の教示点を前記目標教示点に向かって補正する教示点補正方法であって、
前記制御部が、前記作業部を、前記補正前の教示点に対して前記三次元視覚センサの被写界深度方向を含む方向にオフセットした撮影点に位置させるように前記多関節ロボットアームを制御するロボットアーム制御工程と、
前記制御部が、前記ロボットアーム制御工程により前記作業部を前記撮影点に位置させた状態で前記三次元視覚センサにより前記指標を撮影する撮影工程と、
前記制御部が、前記撮影工程による前記指標の撮影結果に基づいて、前記補正前の教示点を補正する補正工程と、を有することを特徴とする教示点補正方法。
【請求項２】
前記補正工程では、前記制御部が、前記撮影工程による前記指標の撮影結果に基づいて、前記補正前の教示点と前記目標教示点の位置ずれ量を推定することを特徴とする請求項１に記載の教示点補正方法。
【請求項３】
前記補正工程では、前記制御部が、前記撮影工程による前記指標の撮影結果に基づいて、前記撮影点と前記目標教示点に対応する目標撮影点との位置ずれ量を推定することを特徴とする請求項１に記載の教示点補正方法。
【請求項４】
前記撮影工程では、前記制御部が、前記撮影工程による前記指標の撮影結果に基づいて、前記多関節ロボットアームを制御することにより、前記作業部を、前記目標教示点に対応する目標撮影点に移動させることを特徴とする請求項１に記載の教示点補正方法。
【請求項５】
前記補正工程では、前記制御部が、前記教示点から前記撮影点まで前記指標に対してオフセットするベクトルを前記目標撮影点から差し引くことにより前記補正前の教示点を補正することを特徴とする請求項４に記載の教示点補正方法。
【請求項６】
前記撮影工程では、前記制御部が、前記三次元視覚センサの被写界深度内に前記指標が位置する範囲で前記撮影点に向かってオフセットする反対方向へ移動させた補助撮影点へ前記作業部を位置決めて前記指標を前記三次元視覚センサにより１回以上撮影する補助撮影を実行し、
前記補正工程では、前記制御部が、前記撮影工程における前記指標の撮影結果と、前記補助撮影における前記指標の撮影結果と、に基づいて、前記補正前の教示点を補正することを特徴とする請求項５に記載の教示点補正方法。
【請求項７】
前記撮影点に前記作業部を位置決めたときの前記三次元視覚センサによる前記指標の測定精度は、前記教示点に前記作業部を位置決めたときの前記三次元視覚センサによる前記指標の測定精度よりも高いことを特徴とする請求項１乃至６のいずれか１項に記載の教示点補正方法。
【請求項８】
前記撮影点に前記作業部を位置決めた状態では前記指標が前記三次元視覚センサの測定可能範囲内であって、前記教示点に前記作業部を位置決めた状態では前記指標が前記三次元視覚センサの測定可能範囲外であることを特徴とする請求項１乃至６のいずれか１項に記載の教示点補正方法。
【請求項９】
前記三次元視覚センサは、前記作業部であるロボットハンドに把持されることを特徴とする請求項１乃至８のいずれか１項に記載の教示点補正方法。
【請求項１０】
前記指標は、前記対象物を支持する支持部に位置決められた治具に設けられることを特徴とする請求項１乃至９のいずれか１項に記載の教示点補正方法。
【請求項１１】
請求項１乃至１０のいずれか１項に記載の教示点補正方法をコンピュータに実行させるためのプログラム。
【請求項１２】
請求項１１に記載のプログラムを記録した記録媒体。
【請求項１３】
作業部を移動させる多関節ロボットアームと、前記多関節ロボットアームを制御する制御部と、を有し、
前記作業部を用いて処理される対象物側に、前記作業部を位置決める目標教示点に対応させて指標が設定され、前記指標を撮影して前記指標の三次元の位置を測定する三次元視覚センサが前記作業部に位置決められた状態で、補正前の教示点を前記目標教示点に向かって補正するロボット装置であって、
前記制御部は、前記作業部を、前記補正前の教示点に対して前記三次元視覚センサの被写界深度方向を含む方向にオフセットした撮影点に位置させるように前記多関節ロボットアームを制御するロボットアーム制御処理と、前記ロボットアーム制御処理により前記作業部を前記撮影点に位置させた状態で前記三次元視覚センサにより前記指標を撮影する撮影処理と、前記撮影工程による前記指標の撮影結果に基づいて、前記補正前の教示点を補正する補正処理と、を実行することを特徴とするロボット装置。
【請求項１４】
前記撮影処理では、前記制御部が、前記三次元視覚センサの被写界深度内に前記指標が位置する範囲で前記撮影点に向かってオフセットする反対方向へ移動させた補助撮影点へ前記作業部を位置決めて前記指標を前記三次元視覚センサにより１回以上撮影する補助撮影を実行し、
前記補正処理では、前記制御部が、前記撮影工程における前記指標の撮影結果と、前記補助撮影における前記指標の撮影結果と、に基づいて、前記補正前の教示点を補正することを特徴とする請求項１３に記載のロボット装置。
【請求項１５】
請求項１３又は１４に記載のロボット装置に供給される撮影点を作成する撮影点作成方法であって、
コンピュータが、前記指標の位置情報に基づいて、前記作業部を前記補正前の教示点に位置させたときの前記被写界深度方向における前記三次元視覚センサの測定可能範囲内に前記指標が存在するか否かを判断する判断工程と、
コンピュータが、前記判断工程において前記測定可能範囲外に前記指標が存在すると判断した場合に前記教示点から前記三次元視覚センサの被写界深度方向にオフセットした位置を前記撮影点として設定する撮影点設定工程と、を有することを特徴とする撮影点作成方法。
【請求項１６】
請求項１３又は１４に記載のロボット装置に供給される撮影点を作成する撮影点作成装置であって、
前記指標の位置情報に基づいて、前記作業部を前記補正前の教示点に位置させたときの前記被写界深度方向における前記三次元視覚センサの測定可能範囲内に前記指標が存在するか否かを判断する判断処理と、前記判断処理において前記測定可能範囲外に前記指標が存在すると判断した場合に前記教示点から前記三次元視覚センサの被写界深度方向にオフセットした位置を前記撮影点として設定する撮影点設定処理と、を実行する制御部を有することを特徴とする撮影点作成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多関節ロボットアームを用いて組立作業を実現するロボット装置における教示点補正方法、プログラム、記録媒体、ロボット装置、撮影点作成方法、及び撮影点作成装置に関する。
【背景技術】
【０００２】
多関節ロボットアームにより作業部を移動させて、対象物を把持するなどの処理をし、組立作業を実現するロボット装置が広く用いられている。ロボット装置では、作業部による対象物の処理位置や作業部の移動経路を、事前にコンピュータで仮想的にシミュレーションして設定する手法が実用化されている。この手法をオフライン教示と呼び、ここで決定される処理位置をオフライン教示点と呼ぶ。
【０００３】
しかし、オフライン教示点には、ロボット装置の機体差によって、ミリメートル単位の累積誤差が発生することがある。このため、ロボット装置ごとに実機を用いてオンライン教示を行うことにより、オフライン教示点を修正している。
【０００４】
特許文献１には、教示点に対応させて対象物側に設定された指標を、作業部に位置決められた三次元視覚センサで撮影して、三次元位置を測定することにより、オフライン教示点の位置ずれ量を求めて、教示点を修正するオンライン教示方法が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平７−８４６３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１では、教示点に作業部を位置決めたときに、指標が三次元視覚センサの被写界深度方向の測定範囲外にある場合、三次元視覚センサによって指標の位置を高精度に求めることができない。指標が三次元視覚センサの被写界深度方向の測定範囲内にあっても、画角の端付近などの測定精度の低い範囲にある場合、三次元視覚センサによって指標の位置を正確に求めることができない。
【０００７】
本発明は、三次元視覚センサの性能に被写界深度等の制約があっても、作業部の教示点を正確に修正できる教示点補正方法、プログラム、記録媒体、ロボット装置、撮影点作成方法、及び撮影点作成装置を提供することを目的としている。
【課題を解決するための手段】
【０００８】
本発明の教示点補正方法は、作業部を移動させる多関節ロボットアームと、前記多関節ロボットアームを制御する制御部と、を有するロボット装置において、前記作業部を用いて処理される対象物側に前記作業部を位置決める目標教示点に対応させて指標が設定され、前記指標を撮影して前記指標の三次元の位置を測定する三次元視覚センサが前記作業部に位置決められた状態で、補正前の教示点を前記目標教示点に向かって補正する教示点補正方法であって、前記制御部が、前記作業部を、前記補正前の教示点に対して前記三次元視覚センサの被写界深度方向を含む方向にオフセットした撮影点に位置させるように前記多関節ロボットアームを制御するロボットアーム制御工程と、前記制御部が、前記ロボットアーム制御工程により前記作業部を前記撮影点に位置させた状態で前記三次元視覚センサにより前記指標を撮影する撮影工程と、前記制御部が、前記撮影工程による前記指標の撮影結果に基づいて、前記補正前の教示点を補正する補正工程と、を有する。
【発明の効果】
【０００９】
本発明の教示点補正方法では、作業部を指標に対して三次元視覚センサの被写界深度方向を含む方向にオフセットした撮影点に位置させてから、指標位置を計測する。このため、三次元視覚センサに被写界深度等の制約があっても、作業部の教示点を正確に修正できる。
【図面の簡単な説明】
【００１０】
【図１】ロボットシステムの構成の説明図である。
【図２】ステレオカメラを把持したロボットハンドの説明図である。
【図３】ハンドカメラ校正装置の説明図である。
【図４】マーカの説明図である。
【図５】ロボットコントローラの動作の説明図である。
【図６】オフライン補正用教示点の説明図である。
【図７】オフライン補正用教示点の設定制御のフローチャートである。
【図８】オンライン補正用教示点の説明図である。
【図９】オンライン教示点の設定制御のフローチャートである。
【図１０】オンラインオフセットの傾きの説明図である。
【図１１】実施の形態２のオンライン教示点の設定制御のフローチャートである。
【図１２】オンラインオフセットの湾曲の説明図である。
【図１３】実施の形態３のオンライン教示点の設定制御のフローチャートである。
【発明を実施するための形態】
【００１１】
本発明の実施の形態を、図面を参照して詳細に説明する。
【００１２】
＜実施の形態１＞
実施の形態１のロボットシステムは、修正前の教示点からステレオカメラ１０３の被写界深度方向にオフセットさせた撮影点にロボットハンド１０２を位置決めて、マーカ１０５を撮影する。
【００１３】
（ロボットシステム）
図１はロボットシステムの構成の説明図である。図１に示すように、ロボット装置の一例であるロボットシステム１００は、人手による組立作業にかえて、ロボットアーム１０１により複数工程の組立作業を実現する。ロボットシステム１００は、多関節（例えば６関節）のロボットアーム１０１を用いて、ロボットシステム１００の作業台１０４上に保持されたワークの組立処理を行う。
【００１４】
多関節ロボットアームの一例であるロボットアーム１０１は、作業部の一例であるロボットハンド１０２を移動させる。ロボットハンド１０２は、ロボットアーム１０１のエンドエフェクタとして、ロボットアーム１０１に取り付けられている。ロボットハンド１０２は、多指（例えば３指）の把持工具である。
【００１５】
作業台１０４は、ロボットハンド１０２を用いて処理される対象物を支持する。制御部の一例であるロボットコントローラ１０９は、ロボットアーム１０１を制御する。
【００１６】
（ステレオカメラ）
図２はステレオカメラを把持したロボットハンドの説明図である。図２に示すように、ステレオカメラ１０３は、２台のカメラを備えた三次元視覚センサである。ステレオカメラ１０３は、パッシブ式のステレオカメラを用いた三次元視覚センサである。
【００１７】
オンライン教示作業を自動化するため、ロボットハンド１０２は、ステレオカメラ１０３を把持する仕様に設計されている。ロボットハンド１０２の座面に、位置決め用のピン穴２０１が２つ形成されている。ステレオカメラ１０３の下面にはピン１０３ｐが２本装着されている。ピン穴２０１にピン１０３ｐを挿入することで、ロボットハンド１０２とステレオカメラ１０３とは高精度に位置決めされる。
【００１８】
（ハンドカメラ校正）
図３はハンドカメラ校正装置の説明図である。図２に示すように、ロボットハンド１０２のピン穴２０１を原点としてロボットハンド１０２に固定された座標系をハンド座標系Ｈと定義する。これに対して、ステレオカメラ１０３が出力する位置情報の座標系をカメラ座標系Ｃと定義する。
【００１９】
ステレオカメラ１０３の撮影画像を画像処理して求めた三次元の位置計測結果は、カメラ座標系Ｃ上での位置を表す。自動化されたオンライン教示作業では、ステレオカメラ１０３による三次元計測結果からロボットハンド１０２の位置を推測する。このため、自動化されたオンライン教示前に、ハンドカメラ校正を実行して、ハンド座標系Ｈとカメラ座標系Ｃとの相対位置・姿勢を表すハンドカメラ間変換行列ＨＴＣを求める。ここでＴは、同次変換行列である。たとえば、座標系Ｈと座標系Ｃの回転行列をＨＲＣとし、座標系Ｈと座標系Ｃの平行移動行列をＨｔＣとすると、同次変換行列ＨＴＣは以下のように表せる。
【００２０】
【数１】
2017077614.tif 000003
【００２１】
図３に示すように、ハンドカメラ校正装置３００は、ロボットハンド１０２の座面のピン穴２０１と同形状のピン穴を持つハンドモック３０１を設置している。ユーザーは、ハンドモック３０１にステレオカメラ１０３を設置する。
【００２２】
ハンドカメラ校正装置３００は、ハンドモック３０１に対して高精度に位置決めされた位置に校正用マーカ治具３０２を設置している。校正用マーカ治具３０２には、ステレオカメラ１０３で計測可能な指標３０２ｍが黒地に白円のパターンで複数配置されている。ハンド座標系における各指標３０２ｍの位置は、機械的に高精度に設定されている。一方、指標３０２ｍをステレオカメラ１０３で計測すると、カメラ座標系Ｃにおける指標３０２ｍの位置が求まる。ハンド座標系における各指標３０２ｍの位置と、指標３０２ｍの計測結果を用いて、最適化計算を解くことにより、ハンドカメラ間変換行列ＨＴＣを求める。ハンドカメラ校正装置３００は、ロボットシステム１００を介さずに測定を行うため、高精度にハンドカメラ間変換行列ＨＴＣを算出可能である。
【００２３】
（マーカ）
図４はマーカの説明図である。図４に示すように、マーカ１０５は、インク印刷により、黒地の板に白円を施して指標１３１、１３２、１３３を形成している。マーカ１０５における指標の個数は、三次元のマーカ座標系Ｍを定義する必要があるため、オンライン教示点の１点当たり３個以上が望ましい。指標の個数が多いほど、三次元位置計測の誤差を平均化できるため、システムとしての精度が上がる。
【００２４】
図１に示すように、ロボットシステム１００を作動させて行うオンライン教示において、ロボットシステム１００の作業台１０４上に、目標教示点に対応させてマーカ１０５が設置される。支持部の一例である作業台１０４に位置決め保持された治具の一例であるマーカ１０５に指標１３１、１３２、１３３が準備されている。マーカ１０５は、ロボットシステム１００のオンライン教示において実作業時の対象物であるワークの代わりに使用される。
【００２５】
マーカ１０５は、ロボットシステム１００の実作業時におけるワークとの相対位置・姿勢が高精度に求まる場所に設置される。具体的には、マーカ１０５は、実作業でワークが載置される作業台１０４上に直接設置されている。
【００２６】
ステレオカメラ１０３は、オンライン教示を実行する際に、ロボットハンド１０２により把持される。ステレオカメラ１０３は、ロボットハンド１０２に把持される過程で自動的にロボットハンド１０２に対して位置決められる。ステレオカメラ１０３は、ロボットハンド１０２に位置決められた状態で、指標１３１、１３２、１３３を撮影して、マーカ１０５の三次元の位置・姿勢を測定する。
【００２７】
オンライン教示では、ロボットハンド１０２に把持させたステレオカメラ１０３を用いてマーカ１０５を計測することにより、カメラマーカ間変換行列ＣＴＭを求める。Ｍはマーカ１０５から定義されるマーカ座標系である。カメラマーカ間変換行列ＣＴＭと、ハンドカメラ間変換行列ＨＴＣとを元に、ロボットハンド１０２とマーカ１０５の相対位置・姿勢を表す行列ＨＴＭを求める。
ＨＴＭ＝ＨＴＣＣＴＭ
【００２８】
（ビジョンコントローラ）
ビジョンコントローラ１０６は、画像処理部１０７と通信部１０８とを有するステレオカメラ１０３の制御コントローラである。ビジョンコントローラ１０６は、ソフトウェアにより動作するコンピュータに、付随するハードウェア及び専用回路を組み合わせて構成される。
【００２９】
画像処理部１０７は、ステレオカメラ１０３から伝送されたマーカ１０５の撮影画像の画像データに対して画像処理を行う。画像処理部１０７は、マーカ１０５の指標１３１、１３２、１３３の中心位置を三次元計測する。実施の形態１では、マーカ１０５の指標１３１、１３２、１３３の形状は白丸であるため、白丸中心位置の三次元計測処理について述べる。
【００３０】
画像処理部１０７は、ステレオカメラ１０３の２台のカメラの撮影画像の輝度レベルに着目して、指標１３１、１３２、１３３が識別できるような適当な閾値を設けて二値化処理を実行する。次に、画像処理部１０７は、撮影画像の閾値以上の領域のエッジについて楕円近似を行い、楕円中心の画像座標を求める。次に、画像処理部１０７は、指標１３１、１３２、１３３の撮影画像の楕円中心から求まる視差と、ステレオカメラ１０３の校正結果とを用いて、三次元位置計測を実施し、指標１３１、１３２、１３３のカメラ座標系Ｃにおける位置を求める。
【００３１】
画像処理部１０７は、カメラ座標系Ｃにおける各指標位置ＣＰｉにハンドカメラ間変換行列ＨＴＣを乗じて、ハンド座標系Ｈにおける各指標位置を求める。
【００３２】
通信部１０８は、ロボットコントローラ１０９との間で双方向の通信を行う。ビジョンコントローラ１０６からロボットコントローラ１０９へは、画像処理部１０７が三次元計測した、マーカ１０５のハンド座標系Ｈにおける各指標１３１、１３２、１３３の位置を送信する。
【００３３】
ユーザインタフェース１１５は、ユーザーがロボットを制御するためのインタフェースである。ユーザインタフェース１１５は、撮影画像・教示結果の表示を行なう表示部１１６と、教示点情報の入力を行なう操作部１１７と、を有する。表示部１１６は、ディスプレイ等である。操作部１１７は、マウス、キーボード、ティーチングペンダント等である。
【００３４】
（ロボットコントローラ）
図５はロボットコントローラの動作の説明図である。図５は不揮発性メモリ１１３に書き込まれるデータを示す。図１に示すように、ロボットコントローラ１０９は、ロボットアーム１０１やロボットハンド１０２の制御を司る装置である。ロボットコントローラ１０９は、ロボット制御部１１０、演算部１１１、通信部１１２、不揮発性メモリ１１３から成る。ロボットコントローラ１０９は、ソフトウェアにより動作するコンピュータに、付随するハードウェア及び専用回路を組み合わせて構成される。
【００３５】
ロボット制御部１１０は、ロボットアーム１０１及びロボットハンド１０２の駆動を制御する。ロボットアーム１０１、ロボットハンド１０２に移動命令を送信し、ロボットアーム１０１、ロボットハンド１０２の位置・姿勢を制御する。
【００３６】
演算部１１１は、ビジョンコントローラ１０６から受信した、マーカ１０５のハンド座標系Ｈにおける各指標位置や、不揮発性メモリ１１３内のデータを用いて、ロボットアーム１０１の移動量を算出し、ロボット制御部１１０に移動量を送信する。移動量の算出方法に関しては後述する。また、オンライン教示の完了後に、オンライン教示点を不揮発性メモリ１１３に書き込む。
【００３７】
通信部１１２は、ビジョンコントローラ１０６と通信を行う。ロボットコントローラ１０９からビジョンコントローラ１０６へはステレオカメラ１０３の撮影指令を送信する。撮影指令に応答して、ステレオカメラ１０３は、撮影工程における撮影処理を実行する。
【００３８】
図５に示すように、不揮発性メモリ１１３には、演算部１１１が移動量を算出するために必要な情報や、オンライン教示点のデータが書き込まれる。
【００３９】
（オフライン教示装置）
図１に示すように、ロボットシステム１００では、ロボットアーム１０１を教示点から教示点に移動させることにより、ワークの組立処理を実現している。そして、教示点を効率よく作成するために、コンピュータを用いて処理をシミュレーションするオフライン教示が利用されている。
【００４０】
図５に示すように、オフライン教示装置１１４は、ＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）ソフトウェアを用いて、生産工程をシミュレーションするコンピュータである。ユーザーは、オフライン教示装置１１４上でソフトウェアを操作してロボットハンド１０２によるワーク（７０１：図６）の処理プログラムを作成する。そして、処理プログラム上の重要な作業位置や移動経路の要所に仮想教示点の一例であるオフライン教示点が設定されている。
【００４１】
しかし、オフライン教示装置１１４により設定されたオフライン教示点は、ロボットアーム１０１やワークの加工・組立誤差などの様々な誤差要因を含んでいるので、実機でそのまま使用すると大きく位置ずれが発生する。そして、ロボットアーム１０１やワークの加工・組立誤差、ロボットシステム１００の機体差等をオフライン教示で正確に補正するのは困難である。
【００４２】
そこで、ロボットシステム１００では、図１に示すように、オフライン教示で設定されたオフライン教示点を、ロボットシステム１００の実機で測定して誤差を測定し、誤差を除いたオンライン教示点に修正している。
【００４３】
（比較例）
比較例１では、処理対象物上とロボットハンド１０２にそれぞれピンを取り付け、一対のピンの間の相対位置・姿勢のずれが基準内に収まるように、ロボットアーム１０１を手動操作してオフライン教示点をオンライン教示点に修正する。
【００４４】
しかし、比較例１の治具を用いた手作業のオンライン教示は、作業時間が膨大となり、工場におけるロボットシステムの稼働率を低下させてしまう。
【００４５】
比較例２では、特許文献１に示されるように、処理対象物上にマーカを設置し、ロボットアームの作業部に搭載した三次元視覚センサでマーカ位置を計測する。そして、三次元視覚センサによるマーカ位置の計測結果に基づいて、オフライン教示点をオンライン教示点へ移動させる三次元修正量を取得している。
【００４６】
しかし、比較例２では、オンライン教示の際に、オフライン教示点でロボットアームの作業部が作業することが前提となっている。しかし、ロボットアームの作業部をオフライン教示点に位置決めたときに、作業部に搭載された三次元視覚センサの被写界深度方向の撮影可能範囲内に常にマーカが存在するとは限らない。つまり、ロボットアームが作業する位置にある時に、処理対象物上のマーカを三次元視覚センサのピントが合った状態で撮影できるとは限らない。このため、ロボットアームの作業部が作業する位置で、三次元視覚センサを用いてオフライン教示点をオンライン教示点に高精度に修正できない場合がある。
【００４７】
そこで、実施の形態１では、オンライン教示の際に、三次元視覚センサをオフライン教示点から被写界深度方向にオフセットしたオフライン補正用教示点に位置決めて、マーカ１０５を撮影する。
【００４８】
（オフライン補正用教示点）
図６はオフライン補正用教示点の説明図である。図６中、（ａ）はオフライン教示点、（ｂ）はオフライン補正用教示点である。ここでは、オフラインオフセットをＴｏＴＷｏとベクトル表示し、オフライン教示点をＭＰＷｏ、オフライン補正用教示点をＭＰＴｏ、オンライン補正用教示点をＭＰＴｒ、オンライン教示点をＭＰＷｒとそれぞれ座標表示している。ここで、Ｐとは左上の添え字の座標系から見た、右下の添え字の座標系の原点、Ｘ軸、Ｙ軸を定義する３点の位置を組み合わせた同次座標系の行列とする。たとえば、マーカ座標系からみた座標系Ｗｏの原点を（Ｘｏ，Ｙｏ，Ｚｏ）、Ｘ軸上の点を（Ｘｘ，Ｙｘ，Ｚｘ）、Ｙ軸上の点を（Ｘｙ，Ｙｙ，Ｚｙ）とすると、オフライン教示点ＭＰＷｏは以下のように表せる。
【００４９】
【数２】
2017077614.tif 000004
【００５０】
図６の（ａ）に示すように、オフライン教示装置１１４は、ロボットハンド１０２がオフライン教示点ＭＰＷｏにおいてワーク７０１を把持するように、生産工程をシミュレーションしている。そして、図１に示すように、ロボットシステム１００の実機で行うオンライン教示では、ワーク７０１に対応させて配置したマーカ１０５をロボットハンド１０２に把持させたステレオカメラ１０３で撮影する。
【００５１】
図６の（ｂ）に示すように、オンライン教示では、ステレオカメラ１０３を把持したロボットハンド１０２を、オフライン教示点ＭＰＷｏからオフセットＴｏＴＷｏだけ遠ざけたオフライン補正用教示点ＭＰＴｏに位置決めて、マーカ１０５を撮影する。
【００５２】
オフライン補正用教示点ＭＰＴｏにロボットハンド１０２を位置決めた状態では、指標１３１、１３２、１３３がステレオカメラ１０３の測定可能範囲内である。しかし、オフライン教示点ＭＰＷｏにロボットハンド１０２を位置決めた状態では、指標１３１、１３２、１３３がステレオカメラ１０３の測定可能範囲外である。すなわち、オフライン補正用教示点ＭＰＴｏにロボットハンド１０２を位置決めたとき、ステレオカメラ１０３による指標１３１、１３２、１３３の測定精度は、オフライン教示点ＭＰＷｏにロボットハンド１０２を位置決めたときよりも高い。
【００５３】
撮影点作成装置の一例であるオフライン教示装置１１４は、ロボットシステム１００に供給される撮影点の一例であるオフライン補正用教示点ＭＰＴｏを作成する。オフライン教示装置１１４は、判断工程の判断処理において、ロボットハンド１０２をオフライン教示点ＭＰＷｏに位置させたとき、ステレオカメラ１０３の測定可能範囲内に指標が存在するか否かを判断する。続いて、撮影点設定工程の撮影点設定処理では、測定可能範囲内に指標が存在する場合、オフライン教示点ＭＰＷｏをそのまま撮影点のオフライン補正用教示点ＭＰＴｏとして設定する。しかし、測定可能範囲外に指標が存在する場合、オフライン教示点ＭＰＷｏからステレオカメラ１０３の被写界深度方向にオフセットした位置を撮影点の一例であるオフライン補正用教示点ＭＰＴｏとして設定する。
【００５４】
（オフライン補正用教示点の設定制御）
図７はオフライン補正用教示点の設定制御のフローチャートである。図７に示すように、オフライン教示装置１１４は、オフライン教示で作成した処理プログラム上のいくつかのタイミングにオフライン教示点を決定する（Ｓ７０１）。オフライン教示点を作成する際に使用されるのは、ワーク等の処理対象物の設計データ、ロボットハンド１０２とワークの相対位置・姿勢を表すデータ等である。
【００５５】
オフライン教示装置１１４は、ロボットシステム１００におけるマーカ１０５の設置個所を決定する（Ｓ７０２）。実施の形態１では、図６の（ｂ）に示すように、ワーク７０１を置き換えて作業台１０４上にマーカ１０５が設置されている。オフライン教示装置１１４は、ロボットハンド１０２がオフライン教示点ＭＰＷｏにあるときに、マーカ１０５をステレオカメラ１０３の被写界深度内で撮影可能か否か判断する（Ｓ７０３）。
【００５６】
オフライン教示装置１１４は、マーカ１０５を被写界深度内で撮影不可能である場合（Ｓ７０３のＮｏ）、オフライン教示点ＭＰＷｏから被写界深度内で撮影可能な位置までの移動量であるオフラインオフセットＴｏＴＷｏを算出する（Ｓ７０４）。オフライン教示装置１１４は、オフライン教示点ＭＰＷｏからオフラインオフセットＴｏＴＷｏ離れた位置をオフライン補正用教示点ＭＰＴｏとして設定する（Ｓ７０５）。
【００５７】
オフライン教示装置１１４は、マーカ１０５を撮影可能である場合（Ｓ７０３のＹｅｓ）、オフライン教示点ＭＰＷｏと等しいオフライン補正用教示点ＭＰＴｏを設定する（Ｓ７０５）。オフライン教示装置１１４は、オフライン補正用教示点ＭＰＴｏとオフラインオフセットＴｏＴＷｏとを、ロボットコントローラ１０９内の不揮発性メモリ１１３に保存する（Ｓ７０６）。また、オフライン教示装置１１４は、オフライン補正用教示点にロボットハンド１０２がある際の、ハンド座標系基準のマーカ１０５の各指標位置であるマーカ目標位置及び、ステレオカメラ１０３の被写界深度の各データを不揮発性メモリ１１３に書き込む。
【００５８】
このような操作を、シミュレーションされた生産工程の処理プログラムに設定された複数のオフライン教示点で繰り返す。
【００５９】
（オンライン補正用教示点）
図８はオンライン補正用教示点の説明図である。図８中、（ａ）はオンライン補正用教示点、（ｂ）はオンライン教示点である。
【００６０】
ロボットシステム１００は、オフライン補正用教示点においてステレオカメラ１０３でマーカ１０５を測定して、オフライン補正用教示点をオンライン補正用教示点に修正してから、オフライン教示点をオンライン教示点に修正する。このため、ロボットハンド１０２が作業する位置とは異なる位置で教示を実施する場合においても、精度の粗いオフライン補正用教示点ＭＰＴoを精度の高いオンライン教示点ＭＰＷｒへ修正できる。
【００６１】
図６の（ａ）に示すように、オフライン教示において設定されたオフライン教示点ＭＰＷｏは、ロボットコントローラ１０９の中で定義された「ロボットアーム１０１が処理を実施するときのロボットハンド１０２の位置・姿勢」を表すデータである。
【００６２】
図８の（ａ）に示すように、オンライン補正用教示点ＭＰＴｒは、オンライン教示においてステレオカメラ１０３を用いて計測した三次元補正量を、オフライン補正用教示点ＭＰＴｏに加えたロボットハンド１０２の位置・姿勢データである。
【００６３】
図８の（ｂ）に示すように、オンラインオフセットＴｒＴＷｒは、オンライン補正用教示点ＭＰＴｒからオンライン教示点ＭＰＷｒを求めるための位置・姿勢データである。
【００６４】
実施の形態１では、オンラインオフセットＴｒＴＷｒは、オフラインオフセットＴｏＴＷｏと同じ値とする。オンライン補正用教示点ＭＰＴｒにオンラインオフセットＴｒＴＷｒを加えることによりオンライン教示点ＭＰＷｒを算出する。
【００６５】
（オンライン教示点の設定制御）
図９は実施の形態１のオンライン教示点の設定制御のフローチャートである。図９に示すように、ユーザーは、ステレオカメラ１０３が着脱式の場合、ロボットハンド１０２にステレオカメラ１０３を把持させる（Ｓ９０１）。ユーザーが操作部１１７にあるオンライン教示の開始ボタンを押すと、ロボットコントローラ１０９は、オンライン教示を自動的に実行する（Ｓ９０２〜Ｓ９０７）。
【００６６】
ロボットコントローラ１０９は、不揮発性メモリ１１３から演算部１１１へオフライン補正用教示点を読み出し、ロボットアーム制御工程におけるロボットアーム制御処理を行う。ロボットアーム制御処理では、ロボットアーム１０１をオフライン補正用教示点ＭＰＴｏに移動させる（Ｓ９０２）。
【００６７】
ロボットコントローラ１０９は、撮影工程（処理）を行うために、通信部１１２を介して、ビジョンコントローラ１０６に撮影指令を送信する。ビジョンコントローラ１０６は、ステレオカメラ１０３に撮影指令を送り、マーカ１０５の撮影画像を得る。画像処理部１０７は、撮影画像に対して画像処理を行い、現在のマーカ位置の計測を行なう。ビジョンコントローラ１０６は、通信部１０８を介して、計測結果をロボットコントローラ１０９に送信する（Ｓ９０３）。
【００６８】
ロボットコントローラ１０９は、受信した現在のマーカ位置と不揮発性メモリ１１３内のマーカ目標位置から、現在のマーカ位置の位置ずれ量を計測し、位置ずれ量が０に近づくようにロボットハンド１０２を移動させる（Ｓ９０４）。つまり、補正工程における補正処理では、指標１３１、１３２、１３３の撮影結果に基づいて、ロボットアーム１０１を制御することにより、ロボットハンド１０２を目標撮影点に移動させる。これにより、ロボットハンド１０２は、オンライン補正用教示点ＭＰＴｒに位置決められ、ロボットコントローラ１０９は、ロボットハンド１０２の移動結果に基づいてオンライン補正用教示点ＭＰＴｒのデータを取得する。
【００６９】
ロボットコントローラ１０９は、不揮発性メモリ１１３からオフラインオフセットＴｏＴＷｏを読み出し、オフライン補正用教示点ＭＰＴｏにおいてオフラインオフセットＴｏＴＷｏが設定されているか否かを判断する（Ｓ９０５）。ロボットコントローラ１０９は、オフラインオフセットＴｏＴＷｏが設定されていない場合（Ｓ９０５のＮｏ）、オンライン補正用教示点ＭＰＴｒをそのままオンライン教示点ＭＰＷｒとして登録する（Ｓ９０７）。
【００７０】
ロボットコントローラ１０９は、オフラインオフセットＴｏＴＷｏが設定されている場合（Ｓ９０５のＹｅｓ）、オンライン補正用教示点ＭＰＴｒからオフラインオフセットＴｏＴＷｏを差し引いた位置をオンライン教示点ＭＰＷｒとして登録する（Ｓ９０６、Ｓ９０７）。
【００７１】
このような操作を、シミュレーションされた生産工程に設定された複数のオフライン教示点ＭＰＴｏで繰り返して、それぞれに対応するオンライン教示点ＭＰＷｒに修正する。
【００７２】
図１に示すように、カードリーダ１１８に挿入された記録媒体の一例であるメモリカード１１８ｍには、図９に示すロボットシステム１００の教示点補正方法をコンピュータに実行させるためのプログラムが記録されている。
【００７３】
（ロボットハンドの移動量の算出）
ロボットコントローラ１０９は、不揮発性メモリ１１３からマーカ目標位置を読み出す。実施の形態１では、マーカ１０５の指標の点数を３点としているので、３点のマーカ目標位置の情報を用いて目標マーカ座標系Ｍｏを設定する。次に、現在のマーカ位置情報から、現在マーカ座標系Ｍｎを設定する。ロボットコントローラ１０９は、目標マーカ座標系Ｍｏと現在マーカ座標系Ｍｎ間の相対位置・姿勢を算出して、ロボットアーム１０１の移動量を算出し、算出した移動量分、ロボットアーム１０１を移動させる。移動後のロボットハンド１０２の位置・姿勢を、オンライン補正用教示点ＭＰＴｒと呼ぶ。オフラインオフセットをＴｏＴＷｏとし、オンライン補正用教示点をＭＰＴｒとすると、オンライン教示点ＭＰＷｒは次式（１）により求まる。
【００７４】
【数３】
2017077614.tif 000005
【００７５】
式１において、Ｔは同次変換行列を表し、左上の添え字は移動前、右下の添え字は移動後の座標系を意味する。
【００７６】
（実施の形態１の効果）
実施の形態１では、オフライン補正用教示点においてマーカ１０５を撮影するので、ステレオカメラ１０３に被写界深度の制約があっても、ロボットハンド１０２のオフライン教示点を正確に補正できる。
【００７７】
実施の形態１では、ステレオカメラ１０３は、ロボットハンド１０２に位置決められた状態で、指標１３１、１３２、１３３を撮影して、マーカ１０５の三次元の位置・姿勢を測定する。このため、オンライン教示点におけるロボットハンド１０２の位置誤差と姿勢誤差とを同時に修正できる。
【００７８】
実施の形態１では、指標１３１、１３２、１３３に対してステレオカメラ１０３の被写界深度方向を含む方向にオフセットしたオフライン教示点にロボットハンド１０２を位置させる。このため、ロボットハンド１０２にステレオカメラ１０３を位置決めできる範囲が広くなり、実施の形態１のように、ロボットハンド１０２に把持させる簡易な取り付け方法、不要な場合には簡単に取り外せる取り付け方法が可能になる。
【００７９】
実施の形態１では、ロボットハンド１０２をオフライン補正用教示点に位置させた状態で、ステレオカメラ１０３により指標を撮影する。このため、ステレオカメラ１０３の被写界深度方向の撮影可能範囲の制約があっても、指標の位置を高精度に測定できる。
【００８０】
実施の形態１では、指標１３１、１３２、１３３の撮影結果に基づいて、ロボットアーム１０１を制御することにより、ロボットハンド１０２を目標撮影点に移動させる。このため、目標撮影点でさらにマーカ１０５を撮影して、目標撮影点が正確であることを確認できる。
【００８１】
実施の形態１では、オフライン教示点からオフライン補正用教示点まで離反方向にオフセットする。離反ベクトルとは反対方向で大きさが等しい接近ベクトルを目標撮影点に加算することにより修正された教示点を求める。このため、ステレオカメラ１０３を把持したロボットハンド１０２をオンライン教示点まで実際に移動させる必要が無い。
【００８２】
実施の形態１では、オフライン補正用教示点にロボットハンド１０２を位置決めたとき、ステレオカメラ１０３による指標の測定精度は、オフライン教示点にロボットハンド１０２を位置決めたときよりも高い。このため、オフライン教示点又はオフライン補正用教示点の位置ずれ量を正確に求めることができる。オフライン補正用教示点を出発点として、オンライン補正用教示点へロボットハンド１０２を正確に移動させることができる。
【００８３】
実施の形態１では、オフライン補正用教示点にロボットハンド１０２を位置決めた状態では、指標がステレオカメラ１０３の測定可能範囲内である。しかし、オフライン教示点にロボットハンド１０２を位置決めた状態では、指標がステレオカメラ１０３の測定可能範囲外である。このため、ステレオカメラ１０３により指標を確実に測定して、オンライン教示点を高い信頼性で確実に設定できる。
【００８４】
実施の形態１では、ステレオカメラ１０３は、ロボットハンド１０２により把持された段階で、既にロボットハンド１０２に位置決められている。このため、把持後にステレオカメラ１０３の位置調整をする必要が無い。
【００８５】
実施の形態１では、指標は作業台１０４に位置決め保持されたマーカ１０５に設けられる。このため、通常はマーカ１０５を取り外してコンパクトにワークを処理できる。ワークの処理に伴うマーカ１０５の汚れも回避できる。
【００８６】
＜実施の形態２＞
実施の形態２では、オンライン補正用教示点を起点にして補助撮影を行うことにより、オンライン教示点を再修正する。ロボットシステム及び補助撮影以外の構成及び制御は実施の形態１と同一であるため、図１０中、実施の形態１と共通する部材には、図１と共通の符号を付して重複する説明を省略する。
【００８７】
（オンラインオフセットの傾き）
図１０はオンラインオフセットの傾きの説明図である。図１０中、（ａ）はオフライン教示、（ｂ）はオンライン教示、（ｃ）はオンラインオフセットの補正である。
【００８８】
図６の（ａ）、（ｂ）及び図８の（ａ）、（ｂ）に示すように、実施の形態１では、離反ベクトルの一例であるオフラインオフセットＴｏＴＷｏと接近ベクトルの一例であるオンラインオフセットＴｒＴＷｒとが等しいと仮定した。ここで、オフラインオフセットＴｏＴＷｏが短い場合はオフラインオフセットＴｏＴＷｏとオンラインオフセットＴｒＴＷｒとを等しいとみなせるが、長い場合は両者の相対的な角度差が問題になる。そこで、実施の形態２では、オフラインオフセットＴｏＴＷｏとオンラインオフセットＴｒＴＷｒの角度差の影響を取り除くようにオンライン教示を行う。
【００８９】
図１０の（ａ）、（ｂ）に示すように、座標系Ｔ、Ｎ、Ｗは、それぞれ補正用教示点、ステレオカメラ１０３の被写界深度内での移動時、及び補正用教示点にオフセットを加えた教示点でのハンド座標系である。
【００９０】
図１０の（ａ）がオフライン教示時にオフラインオフセットを印加した状態を示した図である。実施の形態２でも、実施の形態１と同様な手順でオフライン教示点ＭＰＷｏが設定され、オフライン教示点ＭＰＷｏにオフラインオフセットＴｏＴＷｏを付与してオフライン補正用教示点ＭＰＴｏを設定する。
【００９１】
そして、ロボットハンド１０２をオフライン補正用教示点ＭＰＴｏに位置決めてステレオカメラ１０３によりマーカ１０５を撮影して、マーカ１０５の位置ずれ量を測定する。そして、ロボットハンド１０２をオフライン補正用教示点ＭＰＴｏからオンライン補正用教示点ＭＰＴｒへ移動させて位置ずれ量を０に近づける。
【００９２】
図１０の（ｂ）は、オンライン教示において、ロボットコントローラ１０９が補正前のオンラインオフセットをオンライン補正用教示点に印加した状態である。ロボットハンド１０２をオンライン補正用教示点ＭＰＴｒに位置決めたとき、ステレオカメラ１０３によりマーカ１０５を撮影すれば、マーカ１０５の位置ずれ量は０に近い値となっている。
【００９３】
しかし、オンライン補正用教示点ＭＰＴｒにおいて位置ずれが０に近い値であっても、オンライン補正用教示点ＭＰＴｒからオンラインオフセットＴｒＴＷｒだけ移動したオンライン教示点MＰＷｒにおいて位置ずれが０に近くなるとは限らない。
【００９４】
ロボットコントローラ１０９がオフラインオフセットＴｏＴＷｏと等しいオンラインオフセットＴｒＴＷｒをオンライン補正用教示点ＭＰＴｒに印加したとする。このとき、ロボットアーム１０１の加工誤差や撓みによるリンクパラメータ算出誤差が累積して、ロボットコントローラ１０９は、オフラインオフセットＴｏＴＷｏに対して傾いたオンラインオフセットＴｒＴＷｒを印加する可能性がある。オンラインオフセットＴｒＴＷｒの方向とオフラインオフセットＴｏＴＷｏの方向とが異なる場合、オンライン教示点ＭＰＷｒとオフライン教示点ＭＰＷｏとが大きく異なってしまう。
【００９５】
そこで、実施の形態２では、オンライン補正用教示点ＭＰＴｒへ位置決めたロボットアーム１０１をオンラインオフセットＴｒＴＷｒの方向へ移動させたステレオカメラ１０３の被写界深度内でマーカ１０５を補助撮影する。
【００９６】
補助撮影では、オンライン補正用教示点ＭＰＴｒからオンラインオフセットＴｒＴＷｒの方向へオンラインオフセットＴｒＴＷｒよりも小さく移動させた補助撮影点へロボットハンド１０２を位置決める。そして、補助撮影点へロボットハンド１０２を位置決めた状態で指標１３１、１３２、１３３をステレオカメラ１０３により撮影する。
【００９７】
ロボットコントローラ１０９は、補助撮影点における指標１３１、１３２、１３３の撮影画像に基づいて、オフラインオフセットＴｏＴＷｏとオンラインオフセットＴｒＴＷｒの角度ずれを補正する。補正後のオンラインオフセットを用いて、オンライン補正用教示点をオンライン教示点に補正する。
【００９８】
（実施の形態２の制御）
図１１は実施の形態２のオンライン教示点の設定制御のフローチャートである。図１１中、ステップＳ１１０１〜１１０５は図９に示す実施の形態１のステップＳ９０１〜９０５と同一であるため、詳細な説明を省略する。
【００９９】
ユーザーは、ロボットハンド１０２にステレオカメラ１０３を把持させて、オンライン教示を開始する（Ｓ１１０１）。
【０１００】
ロボットコントローラ１０９は、ステレオカメラ１０３を把持したロボットアーム１０１をオフライン補正用教示点ＭＰＴｏに移動させる（Ｓ１１０２）。
【０１０１】
ロボットコントローラ１０９は、ステレオカメラ１０３によりマーカ１０５の撮影画像を取得し、画像処理部１０７によりマーカ位置の計測を行なう（Ｓ１１０３）。
【０１０２】
ロボットコントローラ１０９は、ロボットアーム１０１を移動させて、オフライン補正用教示点ＭＰＴｏをオンライン補正用教示点ＭＰＴｒに修正する（Ｓ１１０４）。
【０１０３】
ロボットコントローラ１０９は、オフライン補正用教示点ＭＰＴｏにおいてオフラインオフセットＴｏＴＷｏが設定されていない場合（Ｓ１１０５のＮｏ）、オンライン補正用教示点ＭＰＴｒをそのままオンライン教示点ＭＰＷｒとして登録する（Ｓ１１０９）。
【０１０４】
ロボットコントローラ１０９は、オフライン補正用教示点ＭＰＴｏにおいてオフラインオフセットＴｏＴＷｏが設定されている場合（Ｓ１１０５のＹｅｓ）、ロボットアーム１０１をオンラインオフセットＴｒＴＷｒ方向に移動する（Ｓ１１０６）。
【０１０５】
ロボットコントローラ１０９は、ステレオカメラ１０３の被写界深度内にマーカ１０５が入る範囲内の撮影点で、マーカ１０５を再び撮影し、マーカ１０５とロボットハンド１０２の相対関係ＮｃＴＭを計測する（Ｓ１１０７）。
【０１０６】
ロボットコントローラ１０９は、相対関係ＮｃＴＭを用いて、補正後オンラインオフセットＴｒＴＷｏを算出する（Ｓ１１０８）。補正後オンラインオフセットＴｒＴＷｏは、オンライン補正用教示点ＭＰＴｒの位置ずれを加味したオフセットである。
【０１０７】
ロボットコントローラ１０９は、オンライン補正用教示点ＭＰＴｒと補正後オンラインオフセットＴｒＴＷｏとを用いて、補正後オンライン教示点ＭＰＷｒ’を算出し、不揮発性メモリ１１３に保存する（Ｓ１１０９）。
ＭＰＷｒ’＝ＴｒＴＷｏＭＰＴｒ（≒ＭＰＷｏ）
【０１０８】
このような操作を、ロボットアーム１０１の処理プログラム上の複数のオフライン補正用教示点で繰り返して、複数のオフライン教示点を、それぞれに対応するオンライン教示点に修正する。
【０１０９】
（オンラインオフセットの補正）
図１０の（ｃ）は、オンラインオフセットを印加した時に、ステレオカメラ１０３とマーカ１０５、ハンドカメラ間変換行列ＨＴＣを用いて計測されるハンド座標系を記した図である。図２に示すように、ＨＴＣはカメラ座標系Ｃからハンド座面上のピン穴２０１で定義されるハンド座標系Ｈへの変換行列である。
【０１１０】
オンラインオフセットの補正方法について、数式を用いながら説明する。オフライン補正用教示点はＭＰＴｏ、オンライン補正用教示点はＭＰＴｒである。ステップＳ１１０４によりＭＰＴｏ≒ＭＰＴｒである。オフライン教示装置１１４から求まるオフラインオフセットはＴｏＴＷｏである。補正前のオンラインオフセットはＴｒＴＷｒである。
【０１１１】
これらの値を用いると、オフライン教示点ＭＰＷｏ及び補正前のオンライン教示点ＭＰＷｒは次式のように表せる。
ＭＰＷｏ＝ＴｏＴＷｏＭＰＴｏ
ＭＰＷｒ＝ＴｒＴＷｒＭＰＴｒ
【０１１２】
理想はオンラインオフセット印加後に、オフライン教示点ＭＰＷｏにロボットハンド１０２を持ってくることなので、オンラインオフセットをＴｒＴＷｒから補正後オンラインオフセットＴｒＴＷｏに補正する必要がある。補正後オンラインオフセットＴｒＴＷｏは式(２)のように変形できる。
【０１１３】
【数４】
2017077614.tif 000006
【０１１４】
オフラインオフセットＴｏＴＷｏは既知なので、オンラインオフセットを補正するにはＴｒＴＴｏを求める必要がある。算出方法について説明する。
【０１１５】
図１１のステップＳ１１０６におけるロボットハンド１０２の移動量をＴｒＴＮｒとし、ステップＳ１１０７において計測したマーカ１０５とロボットハンド１０２の相対関係をＮｃＴＭとする。ＮｃＴＭは、式（３）のように変形できる。
【０１１６】
【数５】
2017077614.tif 000007
【０１１７】
式（３）において、オンライン補正用教示点ＰＴｒでのロボットハンド１０２とマーカ１０５の位置関係ＴｃＴＭは、ステップＳ１１０４の処理で既知となっている。式（３）から、オンラインオフセット印加前後のロボットハンド１０２の相対関係ＮｃＴＴｃは式（４）のように求まる。
【０１１８】
【数６】
2017077614.tif 000008
【０１１９】
式（４）の相対関係ＮｃＴＴｃの平行移動成分ＴｃｔＮｃが求まる。オンライン補正用教示点にてステレオカメラ１０３が計測するハンド座標系Ｔｃは、オフライン補正用教示点でのハンド座標系Ｔｏとほぼ等しい。また、座標系ＮｃとＮｒの原点位置もほぼ等しい。よって、ＴｃｔＮｃ≒ＴｏｔＮｒである。このＴｏｔＮｒは次式（５）のように変形できる。
【０１２０】
【数７】
2017077614.tif 000009
【０１２１】
オンラインオフセット印加時、オフセット長に対して線形にロボットハンド１０２位置は推移すると仮定し、ＴｒｔＮｒ≒ＴｏｔＮｏを用いた。ＴｏＴＴｒの平行移動成分がすべて０であると仮定すると、回転成分の３変数のみが残るため、式（５）は解くことが可能である。これを解くことによりＴｒＴＴｏを求め、得られたＴｒＴＴｏを式（２）に代入することにより、補正後オンラインオフセットＴｒＴＷｏを算出することができる（Ｓ１１０８）。
【０１２２】
その後、オンライン補正用教示点ＭＰＴｒと補正後オンラインオフセットＴｒＴＷｏとを用いて、補正後オンライン教示点ＭＰＷｒ´＝ＮｃＴＭ（≒ＭＰＷｏ）を算出することができる（Ｓ１１０９）。
【０１２３】
このようにして一点のオンライン教示点ＭＰＷｒの座標が算出される。ロボットアーム１０１の処理プログラム上に教示点が複数ある場合、全ての教示点に対して同様の演算を行う。
【０１２４】
なお、実施の形態２では、ステレオカメラ１０３の被写界深度内で１点だけ補助撮影を実行したが、被写界深度内の複数点で補助撮影を実行してオンライン教示点を補正してもよい。これにより、ステレオ計測誤差などの誤差が平均化されるため、より高精度にオンライン教示点を補正できる。
【０１２５】
この場合、ロボットハンド１０２を被写界深度内で１点移動させたごとに式（５）を算出し、式（５）の左辺と右辺の差分が０となるように、ＴｏＴＴｒの６自由度の変数を最適化計算で求めればよい。これを式（２）に代入することにより、補正後オンラインオフセットを算出できる。
【０１２６】
（実施の形態２の効果）
実施の形態２は、目標撮影点からオフラインオフセットのベクトルの反対方向に、オフラインオフセットよりも小さく移動させた補助撮影点へ、ロボットハンド１０２を位置決めてマーカ１０５を撮影する補助撮影を実行する。そして、補助撮影におけるマーカ１０５の撮影結果に基づいてオンラインオフセットを修正する。このため、オフラインオフセットとオンラインオフセットの方向のずれに伴うオンライン教示点の誤差を取り除くことができる。
【０１２７】
＜実施の形態３＞
実施の形態３では、オンライン補正用教示点を起点にして１回以上撮影する補助撮影を行うことにより、オンライン教示点を再修正する。ロボットシステム及び補助撮影以外の構成及び制御は実施の形態１と同一であるため、図１２中、実施の形態１と共通する部材には、図１と共通の符号を付して重複する説明を省略する。
【０１２８】
（オンラインオフセットの湾曲）
図１２はオンラインオフセットの説明図である。図１２中、（ａ）はオフライン教示、（ｂ）はオンライン教示、（ｃ）はオンラインオフセットの補正である。
【０１２９】
実施の形態２では、図１０の（ｂ）に示すように、オンライン補正用教示点へロボットハンド１０２を移動後、オンラインオフセット印加時にロボットハンド１０２が直線的に移動すると仮定してオンライン教示点の座標を計算した。
【０１３０】
これに対して、実施の形態３では、図１２の（ｂ）に示すように、オンライン補正用教示点へロボットハンド１０２を移動後、オンラインオフセット印加時にロボットハンド１０２が曲線的に移動する場合も想定して、オンライン教示点の座標を計算する。オンラインオフセットのオフセット長が長い場合、オンラインオフセットの印加時のロボットハンド１０２の軌跡を線形と見なせない場合がある。
【０１３１】
すなわち、オンラインオフセットのオフセット長が短ければ、オンラインオフセット印加時のロボットハンド１０２の軌跡を線形と見なせる。そこで、実施の形態３では、ステレオカメラ１０３の被写界深度内で実施の形態２の操作と処理とを繰り返して、オンラインオフセットのベクトルを修正することにより、より正確なオンライン教示点の座標を求める。
【０１３２】
（実施の形態３の制御）
図１３は実施の形態３のオンライン教示点の設定制御のフローチャートである。図１３に示すステップＳ１３０１〜Ｓ１３０７は、図１１に示す実施の形態２のステップＳ１１０１〜Ｓ１１０７と同一であるため、詳細な説明を省略する。
【０１３３】
ユーザーは、ロボットハンド１０２にステレオカメラ１０３を把持させて、オンライン教示を開始する（Ｓ１３０１）。
【０１３４】
ロボットコントローラ１０９は、ステレオカメラ１０３を把持したロボットアーム１０１をオフライン補正用教示点ＭＰＴｏに移動させる（Ｓ１３０２）。
【０１３５】
ロボットコントローラ１０９は、ステレオカメラ１０３によりマーカ１０５の撮影画像を取得し、画像処理部１０７によりマーカ位置の計測を行なう（Ｓ１３０３）。
【０１３６】
ロボットコントローラ１０９は、ロボットアーム１０１を移動させて、オフライン補正用教示点ＭＰＴｏをオンライン補正用教示点ＭＰＴｒに修正する（Ｓ１３０４）。
【０１３７】
ロボットコントローラ１０９は、オフライン補正用教示点ＭＰＴｏにおいてオフラインオフセットＴｏＴＷｏが設定されていない場合（Ｓ１３０５のＮｏ）、オンライン補正用教示点ＭＰＴｒをオンライン教示点ＭＰＷｒとして登録する（Ｓ１３１１）。
【０１３８】
ロボットコントローラ１０９は、オフライン補正用教示点ＭＰＴｏにおいてオフラインオフセットＴｏＴＷｏが設定されている場合（Ｓ１３０５のＹｅｓ）、ロボットアーム１０１をオンラインオフセットＴｏＴＷｏ方向に移動する（Ｓ１３０６）。
【０１３９】
ロボットコントローラ１０９は、ステレオカメラ１０３の被写界深度内でロボットハンド１０２を少しずつ移動してマーカ１０５を撮影し、撮影画像を画像処理してマーカ１０５とロボットハンド１０２の相対関係ＮｃＴＭを計測する（Ｓ１３０７）。
【０１４０】
ロボットコントローラ１０９は、あらかじめ不揮発性メモリ１１３に保存された移動点数（ｎ回）の全点に移動完了したかを判断する（Ｓ１３０８）。全点移動完了していない場合（Ｓ１３０８のＮｏ）、ロボットアーム１０１をオンラインオフセット方向に再び移動させる（Ｓ１３０６）。
【０１４１】
ロボットコントローラ１０９は、ステレオカメラ１０３の被写界深度内で移動点数（ｎ回）の移動を終えると（Ｓ１３０８のＹｅｓ）、取得した複数の相対関係ＮｃＴＭによりオンラインオフセットの補正量のオフセット長特性を求める（Ｓ１３０９）。
【０１４２】
ロボットコントローラ１０９は、オンラインオフセットの補正量のオフセット長特性を用いて、オンラインオフセットの補正量を算出し、オフセット長に対応するオンラインオフセットの補正量を算出する（Ｓ１３１０）。
【０１４３】
ロボットコントローラ１０９は、実施の形態２のステップＳ９０９と同様の処理を行って補正後オンライン教示点ＭＰＷｒ´を算出し、不揮発性メモリ１１３にオンライン教示点ＭＰＷｒとして登録する（Ｓ１３１１）。
【０１４４】
（オンラインオフセットの補正量のオフセット長特性）
実施の形態３のオンラインオフセットの補正方法について、数式を用いながら説明する。図１２の（ａ）に示すように、オフラインオフセットをＴｏＴＷｏとする。図１２の（ｂ）に示すように、補正前オンラインオフセットをＴｒＴＷｒとする。
【０１４５】
このとき、理想はオンラインオフセットＴｒＴＷｒ印加後に、オンライン教示点ＭＰＷｏにロボットハンド１０２を持ってくることなので、オンラインオフセットをＴｒＴＷｒから補正後オンラインオフセットＴｒＴＷｏに補正する必要がある。補正後オンラインオフセットＴｒＴＷｏは次式（６）のように変形できる。
【０１４６】
【数８】
2017077614.tif 000010
【０１４７】
オフラインオフセットＴｏＴＷｏは既知なので、オンラインオフセットを補正するにはＴｒＴＴｏを求める必要がある。算出方法について説明する。
【０１４８】
移動回数がｊ回目でのハンド座標系をＮ（ｊ）とすると、ｊ−１回目からｊ回目のロボットハンド１０２の移動量は次式のように表せる。
Ｎｒ（ｊ−１）ＴＮｒ（ｊ）（≒Ｎｃ（ｊ−１）ＴＮｃ（ｊ））
【０１４９】
図１２の（ｂ）に示すように、１回の移動量は小さく、ロボットハンド１０２の位置変化は線形と見なせる。各回の撮影で取得した（Ｓ１３０７）マーカ１０５とロボットハンド１０２の相対位置関係Ｎｃ（ｊ−１）ＴＭ及びＮｃ（ｊ）ＴＭを用いてＮｃ（ｊ−１）ＴＮｃ（ｊ）は、次式（７）のように変形される。
【０１５０】
【数９】
2017077614.tif 000011
【０１５１】
Ｎｃ（ｊ−１）ＴＮｃ（ｊ）の平行移動成分からＮｃ（ｊ−１）ｔＮｃ（ｊ）が求まる。ステレオカメラ１０３が計測するハンド座標系Ｎｃは、オフラインハンド座標系Ｎｏとほぼ等しい。また、ハンド座標系ＮｒとＮｃの原点位置もほぼ等しい。
【０１５２】
このため、Ｎｃ（ｊ−１）ｔＮｃ（ｊ）≒Ｎｏ（ｊ−１）ｔＮｒ（ｊ）である。このＮｏ（ｊ−１）ｔＮｒ（ｊ）は次式（８）のように変形できる。
【０１５３】
【数１０】
2017077614.tif 000012
【０１５４】
ここで、ロボットハンド１０２の位置変化は線形とみなせると考えているので、Ｎｒ（ｊ−１）ｔＮｒ（ｊ）≒Ｎｏ（ｊ−１）ｔＮｏ（ｊ）とした。Ｎｏ（ｊ−１）ＴＮｒ（ｊ−１）の平行移動成分がすべて０であると仮定すると、回転成分の３変数のみが残るため、式（８）は解くことが可能である。これを解くことにより、ロボットハンド１０２がＰＮ（ｊ）にあるときの、オフラインハンド座標系Ｎｏとロボットコントローラ１０９が算出するハンド座標系Ｎｒの相対姿勢成分Ｒｘ（ｊ）、Ｒｙ（ｊ）、Ｒｚ（ｊ）が求まる。
【０１５５】
移動回数ｊが全移動回数ｎになるまで同様な計算繰り返して取得したデータより、オフセット長に対して、Ｒｘ、Ｒｙ、Ｒｚがどのように推移するかがわかるので、Ｒｘ、Ｒｙ、Ｒｚのオフセット長特性を求めることができる（Ｓ１３０９）。
【０１５６】
ＴｒＴＴｏの回転成分Ｒｘ、Ｒｙ、Ｒｚは、Ｒｘ、Ｒｙ、Ｒｚのオフセット長特性にオフセット長＝０を代入すれば求まる（Ｓ１３１０）。
【０１５７】
ＴｒＴＴｏの回転成分Ｒｘ、Ｒｙ、Ｒｚを式（６）に代入することにより、オンラインオフセットを高精度に補正できる（Ｓ１３１１）。
【０１５８】
（実施の形態３の効果）
実施の形態３は、目標撮影点からオフラインオフセットのベクトルの反対方向へ、オフラインオフセットよりも小さく移動させた補助撮影点へロボットハンド１０２を位置決めて、マーカ１０５を撮影する補助撮影を実行する。そして、補助撮影におけるマーカ１０５の撮影結果に基づいてオンラインオフセットを非線形に修正する。このため、オフラインオフセットとオンラインオフセットのずれが非線形に発生した場合でもオンライン教示点の誤差を取り除くことができる。
【０１５９】
＜その他の実施の形態＞
実施の形態１では、ロボットハンド１０２をオフライン補正用教示点へ位置決めてステレオカメラ１０３によりマーカ１０５を撮影した。そして、撮影後、撮影画像の処理結果に基づいてロボットアーム１０１を移動させてロボットハンド１０２をオンライン補正用教示点へ移動させた。
【０１６０】
しかし、撮影後、撮影画像の処理結果に基づいてロボットアーム１０１を移動させることなく、撮影画像の処理結果に基づいて単にオンライン教示点の座標値及び傾きを求めてもよい。ロボットコントローラ１０９は、指標１３１、１３２、１３３の撮影結果に基づいて、オフライン教示点とオンライン教示点との位置ずれ量を推定してもよい。
【０１６１】
あるいは、撮影後、撮影画像の処理結果に基づいてロボットアーム１０１を移動させることなく、撮影画像の処理結果に基づいて単にオンライン補正用教示点の座標値及び傾きを求めてもよい。マーカ１０５を撮影画像上で目標教示点へ移動可能なロボットハンド１０２の移動ベクトルを求めてもよい。ロボットコントローラ１０９は、指標１３１、１３２、１３３の撮影結果に基づいて、オフライン補正用教示点とオンライン補正用教示点との位置ずれ量を推定してもよい。
【０１６２】
実施の形態１では、三次元視覚センサとしてパッシブ式のステレオカメラ１０３を用いたが、アクティブ式の光レーザ法、アクティブステレオ法、照度差ステレオ法の作動原理に基づく三次元視覚センサに置き換えてもよい。マーカ１０５の撮影手段とマーカ１０５までの距離の計側手段とを別々に備えた三次元視覚センサに置き換えてもよい。
【０１６３】
実施の形態１では、ロボットハンド１０２にステレオカメラ１０３を把持させて着脱可能に構成した。しかし、ステレオカメラ１０３をロボットハンド１０２付近に固定して常設してもよい。作業中にワークや作業台１０４の指標を撮影するカメラと兼用してもよい。
【０１６４】
実施の形態１では、マーカ１０５は、直方体の板材料に３つの円形の指標を形成したものである。しかし、マーカ１０５及び指標は、ステレオカメラ１０３で三次元の位置及び傾きを正確に測定可能なものであれば、別の形状、形式、サイズ、材料等を任意に選択することができる。マーカ１０５の指標１３１、１３２、１３３は、ステレオカメラ１０３で計測できる形状であれば白円には限らない。マーカ１０５の指標は、レーザマーキングやシール等で形成してもよい。ロボットシステム１００の実作業で用いるワークが元来備えている開口部やエッジ等の特徴点を指標として設定してもよい。
【０１６５】
実施の形態１では、マーカ１０５は、作業台１０４上に位置決められていた。しかし、マーカ１０５は、作業台１０４上に固定した載置台に設置してもよい。指標は、マーカ１０５ではなく、実際のワーク上に形成してもよい。
【０１６６】
実施の形態１では、オンライン教示作業時だけ、作業台１０４上にマーカ１０５を設置する構成とした。しかし、実作業で常時用いる治具や、作業台１０４そのものに指標を形成してもよい。
【符号の説明】
【０１６７】
１００  ロボットシステム、１０１  ロボットアーム、１０２  ロボットハンド
１０３  ステレオカメラ、１０４  作業台、１０５  マーカ
１０６  ビジョンコントローラ、１０７  画像処理部、１０９  ロボットコントローラ
１１０  ロボット制御部、１１１  演算部、１１３  不揮発性メモリ
１１４  オフライン教示装置、１１５  ユーザインタフェース、１１８  カードリーダ
１１８ｍ  メモリカード、１３１、１３２、１３３  指標
【図１】
2017077614.tif 000013
【図２】
2017077614.tif 000014
【図３】
2017077614.tif 000015
【図４】
2017077614.tif 000016
【図５】
2017077614.tif 000017
【図６】
2017077614.tif 000018
【図７】
2017077614.tif 000019
【図８】
2017077614.tif 000020
【図９】
2017077614.tif 000021
【図１０】
2017077614.tif 000022
【図１１】
2017077614.tif 000023
【図１２】
2017077614.tif 000024
【図１３】
2017077614.tif 000025