(57)【要約】【課題】簡単に教示を行う技術の提供。【解決手段】ロボットのアームの動作に連動する操作対象物と操作対象物の教示位置とを含む画像を取得する画像取得部と、アームを制御して画像内の操作対象物を教示位置に移動させる移動制御部と、画像内の操作対象物が教示位置に存在する状態におけるアームの状態を教示情報として取得する教示情報取得部と、を備える教示装置が構成される。【選択図】図４
2018167334.tif 000002
【特許請求の範囲】
【請求項１】
ロボットに教示を行う教示装置であって、
ロボットのアームの動作に連動する操作対象物と前記操作対象物の教示位置とを含む画像を取得する画像取得部と、
前記アームを制御して前記画像内の前記操作対象物を前記教示位置に移動させる移動制御部と、
前記画像内の前記操作対象物が前記教示位置に存在する状態における前記アームの状態を教示情報として取得する教示情報取得部と、
を備える教示装置。
【請求項２】
前記教示位置は、前記画像に含まれる基準対象物に対する相対的な位置によって規定される、
請求項１に記載の教示装置。
【請求項３】
前記基準対象物に対する相対的な位置の入力を受け付ける入力受付部を備え、
前記移動制御部は、前記操作対象物および前記基準対象物の前記画像に基づいて前記操作対象物の前記基準対象物に対する相対的な位置を取得し、当該相対的な位置が前記教示位置となるように前記アームを制御する、
請求項２に記載の教示装置。
【請求項４】
前記移動制御部は、前記画像に基づいて前記基準対象物を検出し、前記基準対象物を強調した前記画像をディスプレイに表示させる、
請求項２または請求項３のいずれかに記載の教示装置。
【請求項５】
前記移動制御部は、前記画像に基づいて前記操作対象物を検出し、前記操作対象物を強調した前記画像をディスプレイに表示させる、
請求項２〜請求項４のいずれかに記載の教示装置。
【請求項６】
前記画像取得部は、前記操作対象物および前記教示位置を除く背景の少なくとも一部を除去した前記画像を取得する、
請求項１〜請求項５のいずれかに記載の教示装置。
【請求項７】
前記移動制御部は、前記画像内で前記操作対象物を前記教示位置に存在する目標画像に一致させるように前記アームを制御する、
請求項１〜請求項６のいずれかに記載の教示装置。
【請求項８】
ロボットに教示を行う教示方法であって、
ロボットのアームの動作に連動する操作対象物と前記操作対象物の教示位置とを含む画像を取得し、
前記アームを制御して前記画像内の前記操作対象物を前記教示位置に移動させ、
前記画像内の前記操作対象物が前記教示位置に存在する状態における前記アームの状態を教示情報として取得する、
教示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、教示装置および教示方法に関する。
【背景技術】
【０００２】
ロボットに作業を行わせる際には、作業を複数の工程に分解し、各工程において複数の教示位置間を操作対象物が移動するように制御されることが多い。教示位置は、通常、ロボットの動作開始前に教示されている必要がある。教示を行うための技術としては、ティーチングペンダントを利用する技術（例えば、特許文献１参照）や、教示者自身がロボットを移動させてダイレクトティーチを行う技術（例えば、特許文献２参照）が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−２３６７８４号公報
【特許文献２】特開２０１６−１２４０６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ティーチングペンダントによる教示は、ティーチングペンダントの操作や、操作によるロボットの移動、回転を熟知する必要があり、熟練者以外の者が教示を行うことが困難であった。ダイレクトティーチによる教示は、教示者自身でロボットを移動させる必要があり、重量の大きいロボットでの教示や微妙な位置調整を伴う教示等を行うことが困難であった。すなわち、利用者が、直接的または間接的にロボットを移動させて教示を行う構成においては教示の難易度が高い。
【課題を解決するための手段】
【０００５】
上記課題の少なくとも一つを解決するために、教示装置は、ロボットのアームの動作に連動する操作対象物と操作対象物の教示位置とを含む画像を取得する画像取得部と、アームを制御して画像内の操作対象物を教示位置に移動させる移動制御部と、画像内の操作対象物が教示位置に存在する状態におけるアームの状態を教示情報として取得する教示情報取得部と、を備える。
【０００６】
すなわち、画像に基づいて操作対象物の教示位置への移動が行われ、操作対象物の教示位置への移動が完了した状態でのアームの状態が教示情報として取得される。この構成によれば、利用者は、直接的な接触によるアームの移動や、ティーチングペンダントを利用した間接的な操作によるアームの移動を行う必要がなく、自動で教示を行うことができる。従って、極めて簡単に教示を行うことが可能である。
【０００７】
また、教示位置は、画像に含まれる基準対象物に対する相対的な位置によって規定される構成であっても良い。この構成によれば、画像に基づいて教示位置を特定することが可能になる。
【０００８】
さらに、基準対象物に対する相対的な位置の入力を受け付ける入力受付部を備え、移動制御部は、操作対象物および基準対象物の画像に基づいて基準対象物に対する操作対象物の相対的な位置を取得し、当該相対的な位置が教示位置となるようにアームを制御する構成であっても良い。この構成によれば、利用者が、基準対象物に対する相対的な位置を入力することにより、簡単に教示を行うことができる。
【０００９】
さらに、移動制御部は、画像に基づいて基準対象物を検出し、基準対象物を強調した画像をディスプレイに表示させる構成であっても良い。この構成によれば、利用者は、ディスプレイを視認することにより、教示位置を特定する際の基準となる基準対象物が画像内で正確に検出さているか否かを判断することができる。
【００１０】
さらに、移動制御部は、画像に基づいて操作対象物を検出し、操作対象物を強調した画像をディスプレイに表示させる構成であっても良い。この構成によれば、利用者は、ディスプレイを視認することにより、アームが教示すべき状態であるか否かを判定する際の基準となる操作対象物が、画像内で正確に検出されているか否かを判定することができる。
【００１１】
さらに、画像取得部は、操作対象物および教示位置を除く背景の少なくとも一部を除去した画像を取得する構成であっても良い。この構成によれば、操作対象物を移動させるためのノイズとなり得る部位を画像から除去することができる。
【００１２】
さらに、移動制御部は、画像内で操作対象物を教示位置に存在する目標画像に一致させるようにアームを制御する構成であっても良い。この構成によれば、画像に基づいて仮想的な位置を特定することなく、操作対象物を教示位置に移動させることができる。
【図面の簡単な説明】
【００１３】
【図１】ロボットの斜視図である
【図２】教示装置の機能ブロック図である。
【図３】教示処理のフローチャートである。
【図４】ユーザーインターフェイスの例を示す図である。
【図５】ユーザーインターフェイスの例を示す図である。
【図６】ビジュアルサーボ処理のフローチャートである。
【図７】ビジュアルサーボの例を示す図である。
【図８】ユーザーインターフェイスの例を示す図である。
【図９】ユーザーインターフェイスの例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態について添付図面を参照しながら以下の順に説明する。なお、各図において対応する構成要素には同一の符号が付され、重複する説明は省略される。
（１）ロボットの構成：
（２）教示装置の構成：
（３）教示処理：
（４）ビジュアルサーボ処理：
（５）他の実施形態：
【００１５】
（１）ロボットの構成：
図１は本発明の一実施形態にかかるロボット１の斜視図である。図１に示すように、ロボット１は、アーム１０とエンドエフェクター２０とを備える。アーム１０は、３個の曲げ関節Ｂ１〜Ｂ３と３個のねじり関節Ｒ１〜Ｒ３とを有する６軸アームである。曲げ関節Ｂ１〜Ｂ３とは、アーム１０を構成する部材同士が、アーム１０の長さ方向に直交する軸を中心に回転する関節である。ねじり関節Ｒ１〜Ｒ３とは、アーム１０を構成する部材同士が、アーム１０の長さ方向の軸を中心に回転する関節である。アーム１０は、曲げ関節Ｂ１〜Ｂ３とねじり関節Ｒ１〜Ｒ３とを動作させるための駆動部としてのモーター（不図示）を備えている。また、アーム１０は、各モーターの回転角度に対応する値を検出するエンコーダー（不図示）を備えている。
【００１６】
エンドエフェクター２０は、アーム１０の先端に装着されている。ロボット１は、６軸のアーム１０を駆動させることによって、可動範囲内においてエンドエフェクター２０を任意の位置に配置し、任意の姿勢（角度）とすることができる。なお、本明細書において単に位置と記述された場合、姿勢も含み得る。エンドエフェクター２０には力覚センサーＰとグリッパー２１が備えられている。力覚センサーＰは、エンドエフェクター２０に作用する３軸の並進力と、当該３軸まわりに作用する回転力（トルク）を計測するセンサーである。
【００１７】
ロボット１は、教示を行うことにより各種作業が可能となる汎用ロボットである。本実施形態においては、操作対象物Ｗ1を基準対象物Ｗ2に挿入する組立作業を行うための教示が行われ、当該組立作業が行われる場合を例として説明する。すなわち、ロボット１は、グリッパー２１を操作対象物Ｗ1のストック位置に移動させ、グリッパー２１によって操作対象物Ｗ1をピックアップし、基準対象物Ｗ2の上空まで運ぶ。そして、ロボット１は、当該基準対象物Ｗ2の凹部に対して操作対象物Ｗ1を挿入する作業を行う。
【００１８】
本実施形態において、ロボット１およびカメラ３０ａ，３０ｂは、ロボット制御装置４０に接続されている。ロボット１は、当該ロボット制御装置４０によって制御される。また、ロボット制御装置４０は、カメラ３０ａ，３０ｂを利用したビジュアルサーボを実行することができる。本実施形態においては、教示装置５０を利用してロボット１に対する教示を行うことができる。
【００１９】
ロボット制御装置４０は、図示しないプログラムの実行部（ＣＰＵ，ＲＡＭ，ＲＯＭ等）を備えている。ロボット制御装置４０は、図示しないインタフェースを介して信号の入出力を行うことが可能であり、ロボット１のエンドエフェクターに装着された力覚センサーＰの出力やアーム１０に組み込まれたエンコーダーＥ（不図示）の出力を取得し、アーム１０が備える各モーターを制御するための制御信号を出力することが可能である。また、ロボット制御装置４０は、図示しないインタフェースを介してカメラ３０ａ，３０ｂが出力する画像を取得することが可能である。
【００２０】
すなわち、ロボット制御装置４０は、カメラ３０ａ，３０ｂが出力した画像に基づいて、目標の動作を決定し、力覚センサーＰ、エンコーダーＥの出力に基づいて目標の動作を実行するようにロボット１を制御するビジュアルサーボを行うことができる。また、ロボット制御装置４０は、ＲＯＭ等の記憶媒体に教示情報を記憶することが可能である。本実施形態において教示情報は、予め教示された教示位置に操作対象物Ｗ1を移動させるために必要な制御情報であり、ロボット制御装置４０は当該教示情報に基づいてロボット１を制御し、教示位置に操作対象物Ｗ1を移動させることができる。
【００２１】
これらの制御においては、複数の座標系によって各部の位置や各部に作用する力が規定される。例えば、ロボット１のアーム１０やエンドエフェクター２０、グリッパー２１、操作対象物Ｗ1、基準対象物Ｗ2の位置や作用する力はロボット座標系（図１に示す直交ｘｙｚ座標系）によって規定され得る。
【００２２】
また、ビジュアルサーボが行われる際には、ロボット１に対するカメラ３０ａ，３０ｂの相対的な姿勢が定義される。本実施形態において、ロボット１に対するカメラ３０ａ，３０ｂの姿勢はロボット座標系に対するカメラ座標系の向きによって規定されている。具体的には、カメラ３０ａ，３０ｂは、複数の画素を備えるラインが複数個並べられたエリアセンサーを備えている。本実施形態においては、当該エリアセンサーのライン方向およびラインが並ぶ方向のそれぞれ平行な２軸と、エリアセンサーに光を導く光学系の光軸方向に平行な１軸とによって、直交座標系が形成され、既定の位置（例えば、カメラ３０ａ，３０の光軸間の中点等）を原点とする座標系がカメラ座標系として定義されている。図１においては、当該カメラ座標系の各軸をｉ軸、ｊ軸、ｋ軸として示している。
【００２３】
当該カメラ座標系は、カメラ３０ａ，３０ｂに対して固定されており、カメラ３０ａ，３０ｂの位置および姿勢の変化に応じて原点および軸の向きが変化する。そして、カメラ座標系の向きは、ロボット座標系の各軸（ｘ軸、ｙ軸、ｚ軸）に対するカメラ座標系の各軸（ｉ軸、ｊ軸、ｋ軸）の向きによって規定されている。具体的には、ｘ軸、ｙ軸、ｚ軸のそれぞれとｉ軸、ｊ軸、ｋ軸のそれぞれとが平行である状態を基準とし、カメラ座標系がｚ軸に対して回転している角度ｕと、カメラ座標系がｙ軸に対して回転している角度ｖと、カメラ座標系がｘ軸に対して回転している角度ｗとによってカメラ座標系の姿勢が特定されることで、ロボット１に対するカメラ３０ａ，３０ｂの向きが定義されている。
【００２４】
なお、本実施形態においては、ロボット１からみたカメラ３０ａ，３０ｂの位置も規定されている。すなわち、カメラ座標系の原点の位置がロボット座標系における座標として規定されている。ただし、ビジュアルサーボにおいて当該ロボット１からみたカメラ３０ａ，３０ｂの位置が考慮されない場合、ビジュアルサーボにおいてロボット１からみたカメラ３０ａ，３０ｂの位置が規定されていることは必須ではない。以上のように、本実施形態においては座標系の関係が予め定義され、ロボット制御装置４０の記憶媒体に記録されている。
【００２５】
（２）教示装置の構成：
教示装置５０は、図示しないプログラムの実行部（ＣＰＵ，ＲＡＭ，ＲＯＭ等）を備えている。教示装置５０は、図示しないインタフェースを介してロボット制御装置４０と信号の入出力を行うことが可能である。すなわち、教示装置５０は、ロボット制御装置４０からカメラ３０ａ，３０ｂの出力画像等を取得してロボット制御装置４０に指示を出力し、ロボット１のビジュアルサーボを実行させることができる。本実施形態において教示装置５０は、当該ビジュアルサーボによってロボット１に対する教示を行うための機能を備えている。
【００２６】
図２は、教示装置５０の構成を示すブロック図である。教示装置５０は、ロボット制御装置４０に対して指示を行うことにより、カメラ３０ａ，３０ｂの出力画像、エンコーダーＥ、力覚センサーＰの出力を取得し、アーム１０が備えるモーターＭを制御することができる。図２においては、ロボット制御装置４０を介する信号の入出力をロボット制御装置４０内の破線によって示している。また、教示装置５０には、ディスプレイ５０ａ、入力部５０ｂが接続されており、教示装置５０は、ディスプレイ５０ａに任意の画像を表示させることができる。入力部５０ｂは、キーボードやポインティングデバイス等を備えており、教示装置５０は、利用者の入力を受け付けることができる。
【００２７】
教示装置５０は、図示しないプログラムにより、画像取得部５１、入力受付部５２、移動制御部５３、教示情報取得部５４として機能する。画像取得部５１は、ロボット１のアーム１０の動作に連動する操作対象物Ｗ1と操作対象物Ｗ1の教示位置とを含む画像を取得する機能である。すなわち、教示装置５０は、画像取得部５１の機能により、ロボット制御装置４０に対して指示を行い、操作対象物Ｗ1および基準対象物Ｗ2がカメラ３０ａ，３０ｂの視野に含まれる状態でカメラ３０ａ，３０ｂが取得した画像を取得する。
【００２８】
本実施形態において教示位置は、操作対象物Ｗ1の移動目標となる位置であり、基準対象物Ｗ2に対する相対的な位置によって規定される。例えば、図１に示す操作対象物Ｗ1を基準対象物Ｗ2の凹部Ｃｖに挿入する作業において、操作対象物Ｗ1の重心Ｃｇを重ねるべき位置Ｐｏが基準対象物Ｗ2から見た位置として規定される。そこで、教示を行う際に教示装置５０は、画像取得部５１の機能により、当該基準対象物Ｗ2に対する相対的な位置（図１に示す例であれば位置Ｐｏ）と、操作対象物Ｗ1とが視野に含まれた状態でカメラ３０ａ，３０ｂが撮影を行った画像を取得する。
【００２９】
また、教示装置５０は、画像取得部５１の機能により、当該取得した画像をディスプレイ５０ａに出力し、ディスプレイに当該画像を表示させる。従って、利用者は、ディスプレイ５０ａを視認することにより、操作対象物Ｗ1と基準対象物Ｗ2とがカメラ３０ａ，３０ｂによって撮像されている状態であるか否かを確認することができる。
【００３０】
入力受付部５２は、基準対象物Ｗ2に対する相対的な位置の入力を受け付ける機能である。すなわち、教示装置５０は、入力受付部５２の機能により、ディスプレイ５０ａを制御し、教示位置を入力するためのユーザーインターフェイス画面を表示させる。また、教示装置５０は、入力受付部５２の機能により、入力部５０ｂに対する利用者の入力を受け付け、教示位置を取得する。
【００３１】
教示位置は、基準対象物Ｗ2に対する相対的な位置によって規定されていれば良く、本実施形態においては、基準対象物Ｗ2に固定された基準対象物座標系において、操作対象物Ｗ1に固定された操作対象物座標系の位置および姿勢が入力されることによって教示位置が特定される。基準対象物Ｗ2に固定された基準対象物座標系としては、例えば、基準対象物Ｗ2の重心に原点が存在し、基準対象物Ｗ2の稜に平行な軸を有する直交座標系が挙げられ、操作対象物Ｗ1に固定された操作対象物座標系としては、例えば、操作対象物Ｗ1の重心に原点が存在し、操作対象物Ｗ1の稜に平行な軸を有する直交座標系が挙げられる。
【００３２】
教示装置５０は、入力受付部５２の機能により、操作対象物座標系の原点の位置および各軸の角度の入力を受け付け、基準対象物座標系での位置および角度と見なすことにより、教示位置を受け付ける。この構成によれば、教示位置を簡易かつ明快に定義することができる。
【００３３】
移動制御部５３は、アーム１０を制御して画像内の操作対象物Ｗ1を教示位置に移動させる機能である。すなわち、教示装置５０は、移動制御部５３の機能により、操作対象物Ｗ1および基準対象物Ｗ2の画像に基づいて基準対象物Ｗ2に対する操作対象物Ｗ1の相対的な位置を取得し、当該相対的な位置が教示位置となるようにアーム１０を制御する。すなわち、教示装置５０は、画像取得部５１の機能によって取得された画像からテンプレートマッチング等によって操作対象物Ｗ1の画像と基準対象物Ｗ2の画像とを特定する。また、特定された画像に基づいて、教示装置５０は、カメラ座標系における操作対象物Ｗ1と基準対象物Ｗ2との位置（および姿勢）を特定する。位置（および姿勢）の特定は、例えば、テンプレートに対して位置（および姿勢）が対応づけられた構成等によって実現可能である。
【００３４】
カメラ座標系における操作対象物Ｗ1と基準対象物Ｗ2との位置（および姿勢）が特定されると、教示装置５０は、座標系の関係に基づいて、基準対象物Ｗ2に対する操作対象物Ｗ1の相対的な位置を特定し、教示位置と比較する。両者が異なる場合、教示装置５０は、ロボット１を移動させる。すなわち、教示装置５０は、エンコーダーＥの出力に基づいて現在のアーム１０の位置（および姿勢）を特定し、操作対象物Ｗ1を教示位置に近づけるように微小移動させるための制御目標を特定する。そして、教示装置５０は、当該制御目標をロボット制御装置４０に出力し、当該制御目標を実現するようにロボット１を制御させる。教示装置５０が以上の処理を繰り返すと、やがて、画像内の操作対象物Ｗ1が教示位置に到達する。
【００３５】
以上の構成によれば、利用者が入力部５０ｂによって指示した教示位置に操作対象物Ｗ1が移動するようにロボット１を制御することができ、ティーチングペンダントやダイレクトティーチを行うことなくロボット１を教示すべき状態にすることができる。また、利用者は、入力部５０ｂによって基準対象物Ｗ2に対する相対的な位置を入力するのみで教示位置を指定し、教示を行うことができるため、簡単に試行錯誤を行うことが可能である。
【００３６】
教示情報取得部５４は、画像内の操作対象物Ｗ1が教示位置に存在する状態におけるアーム１０の状態を教示情報として取得する機能である。すなわち、画像内の操作対象物Ｗ1が教示位置に到達すると、教示装置５０は、ロボット制御装置４０を介してエンコーダーＥの出力値を取得し、操作対象物Ｗ1が教示位置に存在する状態を実現する各アーム１０の角度を取得する。そして、教示装置５０は、各アーム１０の角度を示す情報を教示情報としてロボット制御装置４０に対して出力する。ロボット制御装置４０は、当該教示情報を図示しないＲＯＭ等に記録する。教示情報が記録されると、ロボット制御装置４０は、当該教示情報が示す教示位置に操作対象物Ｗ1を移動させる作業をロボット１に実行させることができる。なお、教示情報は、自動的に図示しないＲＯＭ等に保存されても良いし、利用者等によるロボット１の位置姿勢の確認の後に保存されても良く、種々の構成を採用可能である。
【００３７】
以上の構成によれば、利用者は、利用者自身が直接的なアーム１０に触れることによるアーム１０の移動や、ティーチングペンダントを利用した間接的な操作によるアーム１０の移動を行う必要がない。また、利用者が入力部５０ｂによって教示位置を入力するのみで、自動的に教示を行うことができる。従って、極めて簡単に教示を行うことが可能である。
【００３８】
（３）教示処理：
次に、教示装置５０が実行する教示処理を図３に示すフローチャートに沿って詳細に説明する。教示装置５０が起動されると、教示装置５０は、入力受付部５２の機能によりディスプレイ５０ａを制御し、教示処理のためのユーザーインターフェイスをディスプレイ５０ａに表示させる。
【００３９】
図４は、ユーザーインターフェイスの例を示す図である。図４に示すユーザーインターフェイスにおいては、タスク番号、カメラ、操作対象物、基準対象物の指定ボックスＢ1〜Ｂ4が設けられており、各指定ボックスでタスク番号、カメラ、操作対象物、基準対象物を指定可能である。すなわち、利用者は、入力部５０ｂを操作することにより、タスク番号を数値で指定可能であり、教示に使用するカメラをカメラ３０ａ，３０ｂの少なくとも一方を指定することが可能であり、操作対象物、基準対象物を指定可能である。図４に示す例においては、図１に示す操作対象物Ｗ1が基準対象物Ｗ2が指定されている。
【００４０】
図４に示すユーザーインターフェイスにおいては、さらに、画像取得、対象物検出、教示実行のそれぞれを指示するためのボタンＢ5〜Ｂ7が設けられている。また、図４に示すユーザーインターフェイスにおいては、カメラ３０ａが撮像した画像の表示部Ｂ8と、カメラ３０ｂが撮像した画像の表示部Ｂ9が設けられている。
【００４１】
各指定ボックスでタスク番号、カメラ、操作対象物、基準対象物が指定された状態で、利用者がボタンＢ5によって画像取得を指示すると、教示装置５０は、画像取得部５１の処理により、画像を取得する（ステップＳ１００）。すなわち、指定ボックスＢ2で指定されたカメラの撮像画像を取得する。画像が取得されると、教示装置５０は、ディスプレイ５０ａを制御し、指定されたカメラの撮像画像をユーザーインターフェイスの表示部Ｂ8、Ｂ9に表示させる。
【００４２】
この状態で利用者が表示部Ｂ8、Ｂ9を視認すれば、カメラ３０ａ，３０ｂの視野に、操作対象物Ｗ1と基準対象物Ｗ2とが含まれているか否かを確認することができる。カメラ３０ａ，３０ｂの視野に、操作対象物Ｗ1と基準対象物Ｗ2とが含まれていなければ、利用者は、ロボット１の制御や基準対象物Ｗ2の移動等を行うことで、カメラ３０ａ，３０ｂの視野に、操作対象物Ｗ1と基準対象物Ｗ2とが含まれるまでやり直すことができる。むろん、ロボット１の制御と画像の解析により、カメラ３０ａ，３０ｂの視野に操作対象物Ｗ1と基準対象物Ｗ2とが含まれる状態が自動的に実現されても良い。
【００４３】
カメラ３０ａ，３０ｂの視野に操作対象物Ｗ1と基準対象物Ｗ2とが含まれる状態で、利用者がボタンＢ6によって対象物検出を指示すると、教示装置５０は、移動制御部５３の機能により、操作対象物Ｗ1と基準対象物Ｗ2を検出する（ステップＳ１０５）。すなわち、教示装置５０は、図示しないＲＯＭ等に記録されたテンプレート画像を取得し、テンプレートマッチング処理を行うことによって画像内の操作対象物Ｗ1と基準対象物Ｗ2とを検出する。
【００４４】
適正に検出が行われると、教示装置５０は、テンプレート画像に基づいて操作対象物Ｗ1と基準対象物Ｗ2の位置および姿勢を特定する。基準対象物Ｗ2が検出されると、教示装置５０は、移動制御部５３の処理により基準対象物Ｗ2を強調した画像をディスプレイ５０ａに表示させる。本実施形態においては、基準対象物Ｗ2の画像の輪郭（最外周エッジ）を強調して示す構成が採用されており、図４においては、基準対象物Ｗ2の輪郭が太い線で強調されている状態を示している。むろん、強調態様は他にも種々の態様を採用可能であり、特定の色で輪郭を表示する構成等であっても良い。
【００４５】
当該強調は、基準対象物Ｗ2の検出が失敗した状態、または適正に検出されていない状態では適正な位置に表示されない。従って、以上の構成によれば、利用者は、ディスプレイ５０ａを視認することにより、教示位置を特定する際の基準となる基準対象物Ｗ2が画像内で正確に検出さているか否かを判断することができる。
【００４６】
次に、教示装置５０は、移動制御部５３の機能により、動作条件を設定する（ステップＳ１１０）。本実施形態においては、動作条件は、ビジュアルサーボ動作の正常終了条件および異常終了条件と、教示位置であり、動作条件を示す情報はＲＯＭ等に記録される。本実施形態において終了条件は予め決められているが、教示位置は利用者が入力可能である。むろん、終了条件が利用者によって定義可能であってもよい。
【００４７】
教示位置の入力において、教示装置５０は、入力受付部５２の機能によりディスプレイ５０ａを制御し、教示位置を入力するためのユーザーインターフェイスをディスプレイ５０ａに表示させる。図５は、教示位置を入力するためのユーザーインターフェイスの例を示している。図５に示す例においては、上述の図４に示すユーザーインターフェイスの表示部Ｂ8、Ｂ9が表示部Ｂ10および指定ボックスＢ11に置換されている。
【００４８】
表示部Ｂ10においては、基準対象物座標系内で操作対象物Ｗ1と基準対象物Ｗ2の３次元モデルが表示される（図５においては、各対象物が模式的に示されている）。すなわち、教示装置５０は、ＲＯＭ等の記録媒体に操作対象物Ｗ1と基準対象物Ｗ2の３次元モデルを示すデータを記憶している。基準対象物座標系の原点や軸の方向は基準対象物Ｗ2に対して固定されており、表示部Ｂ10においては基準対象物Ｗ2の３次元モデルとともに基準対象物座標系の軸が示される。なお、図５においては、基準対象物座標系の２軸（Ｘ軸およびＺ軸）が視認可能な状態であり、当該２軸が破線によって示されている。
【００４９】
操作対象物座標系の原点や軸の方向は操作対象物Ｗ1に対して固定されており、表示部Ｂ10においては操作対象物Ｗ1の３次元モデルとともに操作対象物座標系の軸が示される。なお、図５においては、操作対象物座標系においても２軸（Ａ軸およびＢ軸）が視認可能な状態であり、当該２軸が一点鎖線によって示されている。本実施形態における操作対象物座標系は、操作対象物Ｗ1の重心に原点が存在する座標系であるが、他の位置が原点であっても良い。
【００５０】
指定ボックスＢ11においては、操作対象物座標系の原点の位置および姿勢を、基準対象物座標系における位置および姿勢として指定することができる。すなわち、指定ボックスＢ11に示された位置Ｘ，Ｙ，Ｚは、操作対象物座標系の原点の位置を基準対象物座標系で表現した値であり、基準対象物座標系を構成するＸ，Ｙ，Ｚ軸の各軸方向の位置として定義される。また、指定ボックスＢ11に示された姿勢Ｕ，Ｖ，Ｗは、操作対象物座標系の軸（Ａ軸，Ｂ軸，Ｃ軸）の姿勢を、基準対象物座標系の軸（Ｘ軸，Ｙ軸，Ｚ軸）に対する角度で表現した値である。
【００５１】
また、本実施形態において教示装置５０は、入力受付部５２の機能により、指定ボックスＢ11に入力された値に応じて、操作対象物Ｗ1および操作対象物座標系の画像を変化させる。すなわち、図５に示す例においては、指定ボックスＢ11において位置Ｚのみが４０であり他の値が０であるため、操作対象物Ｗ1の重心Ｃｇは基準対象物座標系の原点からＺ軸方向に距離４０だけ離れた位置となり、Ｘ軸方向、Ｙ軸方向において重心Ｃｇと基準対象物座標系の原点は一致する。また、基準対象物座標系の各軸と操作対象物座標系の各軸が平行になる。他の値、例えば、姿勢Ｕが入力されると、入力値に応じてＡ軸がＸ軸に対して傾斜した状態の画像が描画される。
【００５２】
以上の構成により、利用者は、指定ボックスＢ11に対して数値を入力し、表示部Ｂ10上で操作対象物Ｗ1の画像を移動させながら教示位置を入力することができる。なお、図５に示す表示部Ｂ10の表示内容は一例であり、ポインティングデバイス等による操作で各対象物の斜視状態が表示されても良いし、ポインティングデバイス等による操作で操作対象物Ｗ1の位置や姿勢が入力されても良い。
【００５３】
動作条件を構成する終了条件は、種々の条件であって良く、正常終了条件としては、画像に基づいて特定される操作対象物Ｗ1の基準対象物Ｗ2に対する相対位置と、利用者に入力された教示位置との差分が閾値以下であること等が挙げられる。異常終了条件としては、教示処理開始後の操作対象物Ｗ1の累積移動量が閾値以上であること、力覚センサーＰの出力値が閾値以上であること、操作対象物Ｗ1、基準対象物Ｗ2の検出失敗、タイムアウトのいずれかまたは組み合わせが挙げられる。
【００５４】
次に、教示装置５０は、移動制御部５３の機能により、ビジュアルサーボ処理を実行する（ステップＳ１１５）。すなわち、教示装置５０は、指定ボックスＢ2で指定されたカメラの撮像画像を取得し、撮像画像に基づいてロボット制御装置４０に指示を行い、アーム１０を制御させ、操作対象物Ｗ1を教示位置に移動させる処理を行う。なお、ビジュアルサーボ処理の詳細は後述する。
【００５５】
ビジュアルサーボ処理が正常終了した場合、または、異常終了した場合、教示装置５０は、移動制御部５３の機能により、終了条件が異常終了条件、正常終了条件のいずれであったか判定する（ステップＳ１２０）。終了条件が異常終了条件であったとステップＳ１２０において判定された場合、教示装置５０は、ステップＳ１１５以降の処理を繰り返す。
【００５６】
終了条件が正常終了条件であったとステップＳ１２０において判定された場合、教示装置５０は、教示情報取得部５４の機能により、教示情報を取得する（ステップＳ１２５）。すなわち、教示装置５０は、ロボット制御装置４０を介してエンコーダーＥの出力値を取得し、各アーム１０の角度を示す情報を教示情報として取得し、ロボット制御装置４０に対して出力する。
【００５７】
（４）ビジュアルサーボ処理：
次に、ステップＳ１１５のビジュアルサーボ処理を詳細に説明する。図６は、ビジュアルサーボ処理のフローチャートである。本実施形態においては、カメラ３０ａ，３０ｂの視野に操作対象物Ｗ1および基準対象物Ｗ2が含まれている状態でビジュアルサーボ処理が実行される。ビジュアルサーボ処理において教示装置５０は、カメラの画像を取得し、操作対象物Ｗ1の位置を取得する（ステップＳ２００）。すなわち、教示装置５０は、カメラ３０ａ，３０ｂが出力する画像を取得する。
【００５８】
また、教示装置５０は、画像に対して特徴量抽出やパターンマッチング等の解析を行い、操作対象物Ｗ1の位置および姿勢を特定する。なお、本実施形態のようにカメラ３０ａ，３０ｂが２台以上存在する場合、カメラ間の視差を利用して操作対象物Ｗ1とカメラとの距離を特定し、距離に基づいて操作対象物Ｗ1の位置および姿勢が特定されても良い。以上の解析の結果、カメラ座標系における操作対象物Ｗ1の位置および姿勢が特定された状態になる。図７は、カメラ３０ａ，３０ｂで撮影される画像内の対象物を模式的に示す図であり、ステップＳ２００が行われると、操作対象物Ｗ1の位置および姿勢として重心Ｃｇの位置および姿勢が特定される。
【００５９】
ステップＳ２００において教示装置５０は、画像に基づいて操作対象物Ｗ1を検出し、操作対象物Ｗ1を強調した画像をディスプレイ５０ａに表示させる。本実施形態においては、操作対象物Ｗ1の画像の輪郭（最外周エッジ）を強調して示す構成が採用されている。図８は、ビジュアルサーボ実行中のユーザーインターフェイスの例を示しており、強調表示は当該ユーザーインターフェイスの表示部Ｂ8，Ｂ9で行われる。この例においては、操作対象物Ｗ1の輪郭が太い線で強調されている状態を示している。むろん、強調態様は他にも種々の態様を採用可能であり、特定の色で輪郭を表示する構成等であっても良い。
【００６０】
当該強調は、操作対象物Ｗ1の検出が失敗した状態、または適正に検出されていない状態では適正な位置に表示されない。従って、以上の構成によれば、利用者は、ディスプレイ５０ａを視認することにより、教示可能な状態であるか否かの基準となる操作対象物Ｗ1が画像内で正確に検出さているか否かを判断することができる。
【００６１】
次に、教示装置５０は、教示位置と、現在の位置との差分を取得する（ステップＳ２０５）。すなわち、教示装置５０は、画像に対して特徴量抽出やパターンマッチング等の解析を行い、基準対象物Ｗ2の位置および姿勢を特定する。ここでも、カメラ３０ａ，３０ｂが２台以上存在する場合には、カメラ間の視差を利用して操作対象物Ｗ1とカメラとの距離を特定し、距離に基づいて操作対象物Ｗ1の位置および姿勢が特定されて良い。以上の解析の結果、カメラ座標系における基準対象物Ｗ2の位置および姿勢が特定された状態になる。
【００６２】
さらに、教示装置５０は、基準対象物Ｗ2の位置および姿勢に基づいて、基準対象物座標系における基準対象物Ｗ2と操作対象物Ｗ1との位置および姿勢を特定する。すなわち、教示装置５０は、カメラ座標系における位置および姿勢を基準対象物座標系における位置および姿勢に変換する。教示位置は、基準対象物Ｗ2に対する相対的な位置、すなわち、基準対象物Ｗ2に固定された基準対象物座標系における操作対象物座標系の原点位置および軸方向として規定されている。
【００６３】
そこで、教示装置５０は、ステップＳ２００で特定された現在の操作対象物Ｗ1の重心Ｃｇの位置および姿勢と、教示位置の位置および姿勢（操作対象物座標系の原点位置および軸方向）とを比較し、差分を取得する。図７においては、操作対象物Ｗ1を教示位置に配置した状態における操作対象物Ｗ1の位置および姿勢を破線によって示しており（符号Ｗ11）、教示位置は当該状態における重心Ｃｇの位置Ｐｏおよび姿勢である（ただし、図７に示す例において姿勢の差分は０（すなわち、姿勢を変化させる必要がない）である）。そして、位置の差分がベクトルｄＰである。以下、この例について説明するが姿勢の差分が有限であっても制御に本質的な差は無い。
【００６４】
次に、教示装置５０は、終了条件が充足したか否かを判定する（ステップＳ２１０）。すなわち、教示装置５０は、ステップＳ２０５で取得された差分が閾値以下となった場合、例えば、差分が０である場合に、正常終了条件を充足したと判定する。また、教示処理開始後の操作対象物Ｗ1の累積移動量が閾値以上であるなど、予め決められた異常終了条件が充足されていると、教示装置５０は、異常終了条件を充足したと判定する。ステップＳ２１０において、終了条件が充足したと判定された場合、教示装置５０は、ビジュアルサーボ処理を終了する。なお、差分と比較される閾値は、種々の値であって良く、固定値であっても良いし利用者によって設定されても良い。差分の値を大きい値に設定すれば、収束までの時間が短縮される。
【００６５】
一方、ステップＳ２１０において、終了条件が充足したと判定されない場合、教示装置５０は、ステップＳ２０５で取得された差分を基準対象物座標系での表現からロボット座標系での表現に変換する（ステップＳ２１５）。すなわち、本実施形態においては、ロボット座標系に対するカメラ座標系の向きによってロボット１に対するカメラ３０ａ，３０ｂの姿勢が規定され、カメラ座標系と基準対象物座標系との対応関係は、ステップＳ２０５で基準対象物Ｗ2の位置および姿勢が特定されることで取得される。そこで、教示装置５０は、これらの座標系の対応関係に基づいて差分をロボット座標系での表現に変換する。図７に示す例であれば、基準対象物座標系での差分であるベクトルｄＰに相当する位置変化がロボット座標系（図１に示すｘｙｚ座標系）において特定される。
【００６６】
次に教示装置５０は、ステップＳ２１５で取得された差分にゲインをかけて移動量を取得する（ステップＳ２２０）。すなわち、本実施形態においては、微小移動を繰り返すことによって徐々に操作対象物Ｗ1の重心Ｃｇを教示位置に向けて移動させる制御を繰り返す構成が採用されている。このため、差分に対してゲイン（＜１）をかけることにより、ロボット１が徐々に差分を解消し、基準対象物Ｗ2の凹部に対して操作対象物Ｗ1を挿入する作業を行うように構成されている。
【００６７】
ゲインを乗じることによって移動量が取得されると、教示装置５０は、ロボット制御装置４０に指示を行い、当該移動量だけロボット１を移動させる（ステップＳ２２５）。すなわち、教示装置５０は、当該移動量だけ移動した後の重心Ｃｇの位置をロボット座標系で特定し、当該重心Ｃｇの位置を目標位置とした位置制御をロボット制御装置４０に実行させる。移動が行われると、教示装置５０は、ステップＳ２００以降の処理を繰り返す。この結果、操作対象物Ｗ1が教示位置に対して徐々に近づき、最終的に操作対象物Ｗ1が基準対象物Ｗ2の凹部に挿入される。
【００６８】
（５）他の実施形態：
以上の実施形態は本発明を実施するための一例であり、他にも種々の実施形態を採用可能である。例えば、教示装置は、ロボット制御装置やロボットに内蔵されていても良いし、ロボットの設置場所と異なる場所、例えば外部のサーバ等に備えられていても良い。さらに、教示装置が複数のロボットを制御するように構成されていても良い。教示装置が複数の装置に分散して配置されていても良い。例えば、教示装置の一部がロボットに内蔵され、他の一部がロボットの外部のサーバ等に配置されていても良い。さらに、上述の実施形態の一部の構成が省略されてもよいし、処理の順序が変動または省略されてもよい。
【００６９】
アームは、ロボットの設置位置に対して相対的に移動し、姿勢が変化するように構成されていれば良く、その自由度（可動軸の数等）は任意である。ロボットの態様は、種々の態様であって良く、直交ロボット、水平多関節ロボット、垂直多関節ロボット、双腕ロボット等であって良い。むろん、軸の数やアームの数、エンドエフェクターの態様等は種々の態様を採用可能である。
【００７０】
さらに、上述の実施形態においては、カメラ３０ａ，３０ｂの撮像画像に基づいてロボットがビジュアルサーボを実行可能であるが、ロボット運用の際にはカメラ３０ａ，３０ｂが利用されない構成であっても良い。すなわち、カメラ３０ａ，３０ｂの撮像画像は教示に利用されるが、教示後のロボットの実運用に際してはカメラ３０ａ，３０ｂが利用されない構成であってもよい。
【００７１】
教示装置５０は、ロボット制御装置４０を介してカメラ３０ａ，３０ｂの出力画像等を取得していたが、むろん、カメラ３０ａ，３０ｂやロボット１と接続され、直接的に出力画像の取得やロボット１の制御等が行われてもよい。
【００７２】
画像取得部は、ロボットのアームの動作に連動する操作対象物と操作対象物の教示位置とを含む画像を取得することができればよい。すなわち、ビジュアルサーボによって操作対象物の位置を教示する際の基になる画像を取得することができればよい。画像を撮像するカメラは、上述の実施形態のように２台であっても良いし、１台であっても良く、種々の構成を採用可能である。また、カメラの固定位置も上述の実施形態のような態様に限定されず、例えば、ロボットに取り付けられていても良い。
【００７３】
操作対象物は、アームの動作に連動し、特定の位置に存在する場合にアームの状態が教示される物体であれば良い。従って、上述のように、ロボットに把持された対象物が操作対象物となっても良いし、ロボットのエンドエフェクターの一部（例えば、マニピュレーターの先端部）が操作対象物となっても良く、種々の格子を採用可能である。
【００７４】
操作対象物の教示位置は、アームの状態を教示する際に操作対象物が配置されるべき位置である。教示位置は、上述のように、基準対象物に関連していない状態（例えば、作業スペースの特定の位置がロボット座標系で特定される等）であっても良い。教示位置が、物体の表面ではなく、物体から特定の距離等にある位置として定義された場合、教示前において、教示位置には操作対象物が存在せず空間が存在するのみである場合がある。この場合であっても、画像取得部は、操作対象物が教示位置まで移動したか否かを判定できるように、少なくとも当該教示位置を含む画像を取得する。
【００７５】
移動制御部は、アームを制御して画像内の操作対象物を教示位置に移動させることができればよい。すなわち、移動制御部は、画像に基づいて操作対象物と教示位置との相対関係を特定し、画像から特定される操作対象物と教示位置との相対位置差が実質的になくなるようにフィードバック制御するビジュアルサーボを実施することができればよい。
【００７６】
操作対象物を教示位置に移動させるための構成は、種々の構成を採用可能である。例えば、画像に基づいて仮想的な３次元空間内で操作対象物や教示位置を特定し、当該３次元空間での位置を変化させるアームの動作を特定することで操作対象物を教示位置に移動させてもよい。また、例えば、画像に基づいてアームを移動させ、操作対象物が教示位置に達することが画像によって確認できるまでアームを移動させる構成であっても良い。アームの移動方向は、画像に基づいて特定されても良いし、画像に基づいてどのような方向に移動させるべきであるのか、機械学習等によって学習されても良い。
【００７７】
教示情報取得部は、画像内の操作対象物が教示位置に存在する状態におけるアームの状態を教示情報として取得することができればよい。すなわち、操作対象物が教示位置に達したことが画像に基づいて特定される場合、そのアームの状態を再現すれば、操作対象物を他の位置から教示位置に移動させることができる。従って、当該アームの状態を教示情報として利用することができる。
【００７８】
教示情報は、種々の態様で定義可能である。すなわち、後にロボットを動作させる過程において、再現すべき要素に応じて定義されれば良い。例えば、操作対象物が教示位置に存在する状態におけるアームの状態を、位置、姿勢ともに再現したい場合、教示情報にはアームの状態を再現する情報（例えば、全アームの可動部のパラメーター（関節の角度等））が含まれる。少なくとも操作対象物の位置が再現されればよい構成であれば、当該位置に操作対象物を配置するためにアームに対して最低限与えるべき情報が教示情報となり得る。例えば、操作対象物の位置が指定された場合に当該位置に操作対象物を移動させるためのアームの条件が特定される構成であれば、操作対象物の位置が教示情報となり得る。また、アームの状態を規定し得る複数のパラメーターのいずれかまたは組み合わせが教示情報となり得る。
【００７９】
基準対象物に対する相対的な位置として教示位置が定義される構成としては、上述の実施形態以外にも種々の定義が採用可能である。例えば、基準対象物の特定の部位（面、辺等）に対して特定の関係（特定の距離、平行、垂直、特定の角度等）にある位置が教示位置として定義されても良い。
【００８０】
入力受付部は、基準対象物に対する相対的な位置の入力を受け付けることができればよく、上述の実施形態のように数値を入力する構成以外にも種々の構成が採用されてよい。例えば、画面上で操作対象物の３次元モデルの位置や姿勢を変化させる入力を実行可能であり、入力が確定した段階で相対位置が特定される構成等が採用されてもよい。
【００８１】
さらに、教示装置５０は、画像取得部５１の機能により、操作対象物および教示位置を除く背景の少なくとも一部を除去した画像を取得する構成であっても良い。すなわち、カメラ３０ａ，３０ｂの撮像画像には、教示に必要な操作対象物および教示位置（基準対象物を利用する場合には基準対象物）が含まれていれば良い。操作対象物および教示位置と異なる物体の画像が含まれていると、例えば、テンプレートマッチングや現在位置と教示位置との差分の取得に時間を要したり、これらの処理が困難になったりする場合がある。
【００８２】
そこで、画像から背景が除去される構成とすれば、教示に関する処理の高速化や困難性の低下を実現することができる。なお、背景の除去は種々の手法で実施されて良く、例えば、操作対象物と基準対象物とが存在しない画像をカメラ３０ａ，３０ｂで撮影し、操作対象物と基準対象物とが存在する画像と比較して変化がない部分の画素の階調値を一定値に修正する等の処理で実現可能である。背景の除去が行われた場合、カメラ３０ａ，３０ｂの画像は図４の表示部Ｂ8，Ｂ9に示すような状態となる（背景の除去が行われなければ表示部Ｂ8，Ｂ9に示す画像に背景が含まれ得る）。
【００８３】
さらに、教示装置５０は、移動制御部５３の機能により、画像内で操作対象物を教示位置に存在する目標画像に一致させるようにアームを制御する構成であっても良い。すなわち、ビジュアルサーボを行う際の手法としては、上述のように画像に基づいて各種の座標系での位置や姿勢を演算し、目標に近づける構成に限定されず、画像の比較によって目標に近づける構成が採用されてもよい。
【００８４】
図９は、目標画像が設定される構成におけるユーザーインターフェイスを示す例である。同図９に示されるように、カメラ３０ａ，３０ｂで撮像された画像には、目標画像Ｉ1，Ｉ2が重ねられている。この状態において、教示装置５０は、操作対象物Ｗ1の画像が目標画像に重なるようにロボット制御装置４０による制御を実行させる。この構成によれば、簡易な処理によって操作対象物Ｗ1を教示位置まで移動させることができる。なお、目標画像は、種々の手法で作成されて良く、例えば、操作対象物Ｗ1の３次元モデルを利用者がディスプレイ上で任意の位置および姿勢に移動させることができるようにユーザーインターフェイスが構成されている構成等が採用可能である。この構成において、操作対象物Ｗ1の３次元モデルが教示位置に配置されれば、目標画像の位置および姿勢を定義することが可能になる。
【符号の説明】
【００８５】
１…ロボット、１０…アーム、２０…エンドエフェクター、２１…グリッパー、３０…カメラ、３０ａ…カメラ、３０ｂ…カメラ、４０…ロボット制御装置、５０…教示装置、５０ａ…ディスプレイ、５０ｂ…入力部、５１…画像取得部、５２…入力受付部、５３…移動制御部、５４…教示情報取得部
【図１】
2018167334.tif 000003
【図２】
2018167334.tif 000004
【図３】
2018167334.tif 000005
【図４】
2018167334.tif 000006
【図５】
2018167334.tif 000007
【図６】
2018167334.tif 000008
【図７】
2018167334.tif 000009
【図８】
2018167334.tif 000010
【図９】
2018167334.tif 000011