(57)【要約】【課題】ロボットの教示データを作成する方法およびロボット教示システムにおいて、ロボットアームを含むロボットの教示を簡単に行うことができるものを提供する。【解決手段】単眼カメラ３０およびステレオカメラ４０が、教示者１０の手首２２および手２１を含む教示画像を取得する（教示画像取得ステップ、ステップＳ１）。制御装置２００は、教示画像に基づいて、手首２２の位置および向きを表す手首座標を決定し（手首座標決定ステップ、ステップＳ２）、手首座標に基づいて、ロボットアーム１１０の動作を教示するロボットアーム教示データを作成する（ロボットアーム教示データ作成ステップ、ステップＳ１１）。【選択図】図１
2011110621.tif 000002
【特許請求の範囲】
【請求項１】
ロボットアームおよびロボットハンドを備えるロボットについて、当該ロボットの少なくとも１台の動作を教示する教示データを作成する方法であって、
人間の手首および手を含む教示画像を少なくとも１つ取得する、教示画像取得ステップと、
前記教示画像に基づいて、手首の位置および向きを表す手首座標を決定する、手首座標決定ステップと、
前記教示画像に基づいて、手指に関連する位置を表す手指座標を決定する、手指座標決定ステップと、
前記手首座標に基づいて、前記ロボットアームの動作を教示するロボットアーム教示データを作成する、ロボットアーム教示データ作成ステップと、
前記手指座標に基づいて、前記ロボットハンドの動作を教示するロボットハンド教示データを作成する、ロボットハンド教示データ作成ステップと
を含む、ロボットの教示データを作成する方法。
【請求項２】
前記教示画像取得ステップにおいて、ステレオカメラが、人間の手首を含む２つの画像からなるステレオ手首画像を取得し、
前記手首座標決定ステップにおいて、前記手首の位置は、前記ステレオ手首画像に基づいて決定される
請求項１に記載のロボットの教示データを作成する方法。
【請求項３】
前記手首座標決定ステップは、
人間の手の姿勢を表す複数の姿勢候補データのうちから、前記教示画像に基づいて１つの姿勢候補データを選択する、姿勢候補データ選択ステップと、
前記教示画像と選択された前記姿勢候補データとの対応関係に基づいて、前記教示画像における手首の向きを決定する、手首方向決定ステップと
を含む
請求項１または２に記載のロボットの教示データを作成する方法。
【請求項４】
前記ロボットは少なくとも２台であり、
前記教示画像は、人間の両腕について、それぞれの手首および手を含み、
前記手首座標、前記手指座標、前記ロボットアーム教示データ、および前記ロボットハンド教示データは、それぞれ両腕について決定または作成される
請求項１〜３のいずれか一項に記載のロボットの教示データを作成する方法。
【請求項５】
請求項１〜４のいずれか一項に記載の方法を実行する、ロボット教示システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ロボットの教示データを作成する方法およびロボット教示システムに関する。
【背景技術】
【０００２】
ロボットを用いて作業を行う際には、ロボットに動作のパターンを教示する必要がある。この教示の方法としては、動作のパターンを表す教示データを数値としてキーボードから直接入力する方法、教示者がロボットの制御装置を操作して動作を実行させ、これに伴って教示データを作成させる方法、および、人間の手の画像を入力して、これにロボットハンドの姿勢を一致させる教示データを自動的に作成させる方法、等がある。引用文献１には、人間の手の画像にロボットハンドの姿勢を一致させる方法の例が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平４−３６５５７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、ロボットアームを含むロボットの教示を簡単に行うことができないという問題があった。
たとえば、教示データを数値としてキーボードから入力する場合や、教示者がロボットの制御装置を操作して動作を実行させる場合には、教示のために専門の知識が必要であり、また、複雑な動作を組み合わせての教示が困難である。また、人間の手の画像にロボットハンドを一致させる場合には、教示者の腕や体全体の動きによって手の位置が変わってしまうような動作に対応することができない。
【０００５】
この発明はこのような問題点を解消するためになされたものであり、ロボットの教示データを作成する方法およびロボット教示システムにおいて、ロボットアームを含むロボットの教示を簡単に行うことができるものを提供することを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係る、ロボットの教示データを作成する方法は、ロボットアームおよびロボットハンドを備えるロボットについて、当該ロボットの少なくとも１台の動作を教示する教示データを作成する方法であって、人間の手首および手を含む教示画像を少なくとも１つ取得する、教示画像取得ステップと、教示画像に基づいて、手首の位置および向きを表す手首座標を決定する、手首座標決定ステップと、教示画像に基づいて、手指に関連する位置を表す手指座標を決定する、手指座標決定ステップと、手首座標に基づいて、ロボットアームの動作を教示するロボットアーム教示データを作成する、ロボットアーム教示データ作成ステップと、手指座標に基づいて、ロボットハンドの動作を教示するロボットハンド教示データを作成する、ロボットハンド教示データ作成ステップとを含む。
【０００７】
この方法によれば、教示画像に基づく手首の位置および向きに応じて、ロボットのロボットアームの動作に関する教示データが作成される。
【０００８】
教示画像取得ステップにおいて、ステレオカメラが、人間の手首を含む２つの画像からなるステレオ手首画像を取得し、手首座標決定ステップにおいて、手首の位置は、ステレオ手首画像に基づいて決定されてもよい。
手首座標決定ステップは、人間の手の姿勢を表す複数の姿勢候補データのうちから、教示画像に基づいて１つの姿勢候補データを選択する、姿勢候補データ選択ステップと、教示画像と選択された姿勢候補データとの対応関係に基づいて、教示画像における手首の向きを決定する、手首方向決定ステップとを含んでもよい。
ロボットは少なくとも２台であり、教示画像は、人間の両腕について、それぞれの手首および手を含み、手首座標、手指座標、ロボットアーム教示データ、およびロボットハンド教示データは、それぞれ両腕について決定または作成されてもよい。
【０００９】
また、この発明に係るロボット教示システムは、上述の方法を実行する。
【発明の効果】
【００１０】
この発明に係る、ロボットの教示データを作成する方法およびロボット教示システムは、教示者の手首を認識してその座標を利用するので、ロボットアームを含むロボットの教示を簡単に行うことができる。
【図面の簡単な説明】
【００１１】
【図１】この発明の実施の形態１に係るロボット教示システムに関連する構成を示す図である。
【図２】図１のロボット教示システムの動作を説明するフローチャートである。
【図３】手首の位置を決定する方法の一例を説明する図である。
【図４】（ａ）は図１のロボット教示システムが決定する手指座標の例を示す図である。（ｂ）は図１のロボット教示システムが決定するロボットハンド関節角度の例を示す図である。
【図５】この発明の実施の形態２に係るロボット教示システムに関連する構成を示す図である。
【図６】この発明の実施の形態３に係るロボット教示システムに係る単眼カメラの構成を示す図である。
【図７】この発明の実施の形態３の変形例に係るロボット教示システムに係る単眼カメラの構成を示す図である。
【図８】この発明の実施の形態４に係るロボット教示システムに係る構成を示す図である。
【図９】手首の位置を決定する方法について、図３とは異なる例を示す図である。
【発明を実施するための形態】
【００１２】
以下、この発明の実施の形態を添付図面に基づいて説明する。
実施の形態１．
図１は、この発明の実施の形態１に係るロボット教示システムに関連する構成を示す。ロボット教示システムは、教示の対象となるロボット１００と、ロボット１００に接続された制御装置２００とを含む。ロボット１００は、マニピュレータと呼ばれるものであってもよい。
【００１３】
ロボット１００は、ロボットアーム１１０およびロボットハンド１２０を含む。図１ではロボットハンド１２０は３本であるが、これは少なくとも２本であればよい。ロボットハンド１２０の根元はロボットアーム１１０の先端に連結されており、ロボットアーム１１０の位置および向きが決まればこれに応じてすべてのロボットハンド１２０の根元の位置が一意に決まる構成となっている。
このロボット１００は、対象物１３０に対して作業を行うものである。作業としては、把持、運搬、組み付け等が可能である。
【００１４】
制御装置２００は、その内部の構成については図示しないが、演算手段（ＣＰＵ等）と記憶手段（半導体メモリ装置、磁気ディスク装置等）とを備えるコンピュータである。この制御装置２００は、その記憶手段に格納された教示データ作成プログラムを実行することにより、ロボット１００の教示データを作成する教示データ作成装置として機能し、また、その記憶手段に格納された駆動制御プログラムを実行することにより、ロボット１００の動作を制御する駆動制御装置として機能する。これらの教示データ作成プログラムおよび駆動制御プログラムは、情報記憶媒体に記憶することができる。
【００１５】
制御装置２００は、人間の手を含む画像に基づいて、手指の各関節の空間的位置および指先の空間的位置を表す座標を決定する機能を有する。このような機能は、たとえば、谷本らの研究（谷本貴頌他により２００６年３月に作成され公知となった「ロボットハンド制御のための自己増殖型ＳＯＭを用いた画像データベースからの手指形状の実時間推定」と題する筑波大学大学院博士課程システム情報工学研究科修士論文）に記載される方法を使用することによって実現することができる。この方法によれば、手を撮像した一つの二次元画像から手の姿勢の推定を行うことができる。谷本らの研究では、予め、手の関節の角度情報と手画像とを同期させて取得し、画像における輪郭抽出と特徴量化を行い、この特徴量と角度とをデータとしてデータベースを構築している。そして、手の実画像について、データベースの構築時と同様の特徴量化を行い、得られた特徴量とデータベースの特徴量との比較を行うことで手の関節の角度を推定し、手の姿勢を推定している。
【００１６】
この方法によれば、手の姿勢を表すデータである特徴量について複数のパターンをデータベースに格納しておき、この複数のパターン（姿勢候補データ）のうちから実画像に基づいて１つのパターン（姿勢候補データ）を選択することが可能となる。この際、手首の位置を基準として原点を設定し、手首の向きを基準として座標軸を設定した座標系において、指の空間的位置を決定することができる。
【００１７】
また、制御装置２００は、手または指の一部が画像に表れない場合（たとえばカメラの視野外にある場合、対象物によってカメラの視野が遮られる場合、教示者１０の体の一部、手、指等によってカメラの視野が遮られる場合、等）には、オクルージョンの部分（すなわち画像に表れない部分）を推定して補完する機能を有する。このような機能は、周知の画像処理技術を用いて実現可能である。
【００１８】
ロボット教示システムは、制御装置２００に接続された単眼カメラ３０を含む。単眼カメラ３０は、手２１の教示画像取得手段として機能する。すなわち、人間である教示者１０の指を含む手２１を撮影し、手２１を含む画像を取得して制御装置２００に送信する。（なお、本明細書において「単眼カメラ」という名称は、後述のステレオカメラ４０との区別のために用いるものであり、同様の機能を有するカメラであれば単眼カメラでなくともよい。）
なお、手２１は手首２２よりも先の部分であり、すなわち掌および指を含む部分である。腕２３は手首２２よりも根元側の部分である。この実施の形態では右腕であるが、左腕であってもよい。
【００１９】
また、ロボット教示システムは、制御装置２００に接続されたステレオカメラ４０を含む。ステレオカメラ４０は、手首２２の教示画像取得手段として機能する。すなわち、教示者１０の手首２２を撮影し、手首２２を含む画像を取得して制御装置２００に送信する。ステレオカメラ４０は周知の構成によって立体映像を撮影することができる。すなわち、ステレオカメラ４０は少なくとも２つのカメラを含み、これらのカメラが互いに異なる位置から手首２２を含む画像を撮影する。それぞれの画像における手首２２の位置に基づいて、ステレオカメラ４０と手首２２との距離を含む空間的位置関係を決定することができる。
【００２０】
さらに、ロボット教示システムは、ロボット１００を撮影するモニタ用カメラ５０と、モニタ用カメラ５０によって撮影された画像を表示するモニタ６０とを含む。モニタ用カメラ５０はロボット状態撮影手段として機能し、モニタ６０はロボット状態表示手段として機能する。
【００２１】
単眼カメラ３０、ステレオカメラ４０およびモニタ６０は、教示者１０の近傍に配置される。単眼カメラ３０は、教示者１０が教示を行う際に手２１が移動する範囲をすべて視野に収める位置に配置される。ステレオカメラ４０は、たとえば、教示者１０が教示を行う際に手首２２が移動する範囲をすべて視野に収める位置に配置される。モニタ６０は、教示者１０が教示作業を行う際に、その表示内容を見ることができる位置に配置される。このような配置により、教示者１０はロボット１００の状態を視認しながら、リアルタイムで教示作業を行うことができる。
【００２２】
以上のように構成されるロボット教示システムの動作を、図２のフローチャートを用いて説明する。
まず、ロボット教示システムは、教示画像取得ステップ（ステップＳ１）を実行する。このステップＳ１において、ロボット教示システムは、教示者１０の手２１および手首２２を含む教示画像を取得する。この教示画像はロボット１００の教示に用いられるものである。
【００２３】
実施の形態１では、ステップＳ１において、単眼カメラ３０が手２１を含む教示画像を１つ取得し（ステップＳ１ａ）、ステレオカメラ４０が手首２２を含む２つの画像からなるステレオ手首画像を取得する（ステップＳ１ｂ）。すなわち、ステップＳ１ｂでは、ステレオカメラ４０を構成するそれぞれのカメラが、手首２２を含む教示画像を１つずつ取得する。
また、ステップＳ１において、単眼カメラ３０およびステレオカメラ４０は、それぞれ取得した教示画像を制御装置２００に送信し、制御装置２００はこれらを受信して記憶手段に格納する。
【００２４】
次に、制御装置２００は、手首座標決定ステップ（ステップＳ２）を実行する。このステップＳ２において、制御装置２００は、教示画像に基づいて、手首２２の位置および向きを表す手首座標を決定する。ステップＳ２は、姿勢候補データ選択ステップ（ステップＳ２ａ）、手首位置決定ステップ（ステップＳ２ｂ）、および、手首方向決定ステップ（ステップＳ２ｃ）を含む。
【００２５】
姿勢候補データ選択ステップ（ステップＳ２ａ）において、制御装置２００は、データベースに格納されている手の姿勢を表す複数の姿勢候補データのうちから、手２１を含む教示画像に基づいて、１つの姿勢候補データを選択する。この選択は公知の方法によって行うことができる。たとえば、制御装置２００は、教示画像から抽出した特徴量と、姿勢候補データを表す特徴量との一致度が最も高いものを選択することができる。
【００２６】
また、手首位置決定ステップ（ステップＳ２ｂ）において、制御装置２００は、ステレオカメラ４０によって撮影されたステレオ手首画像に基づいて、手首２２の位置を決定する。
図３を用いて、画像における手首２２の位置を決定する方法の一例を説明する。図３はステレオ手首画像の一方である。制御装置２００は、まず画像中の２点によって表されるくびれ部分２２ａを検出し、このくびれ部分２２ａの中点２２ｂの位置を算出する。そして、その画像における中点２２ｂの位置を、その画像における手首２２の位置として決定する。
さらに、制御装置２００は、ステレオ手首画像の残る一方でも同様にして手首２２の位置を決定する。その後、ステレオ手首画像のそれぞれにおける手首２２の位置に基づいて、ステレオカメラ４０を基準とする手首２２の空間的な位置を算出することができる。
【００２７】
ステップＳ２ａおよびステップＳ２ｂの後、制御装置２００は手首方向決定ステップ（ステップＳ２ｃ）を実行する。ステップＳ２ｃにおいて、制御装置２００は、手２１の教示画像と、ステップＳ２ａにおいて選択された姿勢候補データとの対応関係に基づいて、手２１の教示画像における手首２２の向きを決定する。姿勢候補データは、手首の位置および向きを基準として手指の各関節の位置および指先の空間的位置を表す座標を表すものであるので、たとえば、教示画像中の手２１と、選択された姿勢候補データとがある特定の向きにおいて最もよく一致する場合、その向きを手首２２の向きと決定することができる。
【００２８】
ステップＳ２の後、ステップＳ３〜Ｓ８を含む処理と、ステップＳ９〜Ｓ１２を含む処理とが並列に実行される。ただし、これらは直列に実行されるものであってもよい。
【００２９】
ステップＳ２の後、制御装置２００は、手指座標決定ステップ（ステップＳ３）を実行する。このステップＳ３において、制御装置２００は、手２１の教示画像に基づいて、手指の各関節および指先の位置を表す手指座標を決定する。これは上述の谷本らの方法に従って行うことができる。
図４（ａ）は、このようにして決定される手指座標の例を示す。図４（ａ）では、教示者１０の手２１の右手の親指、人差し指および中指に関連する手指座標が示されている。たとえば、点（ｘ１１，ｙ１１，ｚ１１）、点（ｘ１２，ｙ１２，ｚ１２）、および点（ｘ１３，ｙ１３，ｚ１３）は、それぞれ親指の第２関節、第１関節および指先の位置を表す。なお、点（ｘ４，ｙ４，ｚ４）はステップＳ２ｂにおいて決定される手首位置を表す。
【００３０】
ステップＳ３の後、制御装置２００は、ロボットハンド関節角度算出ステップ（ステップＳ４）を実行する。このステップＳ４において、制御装置２００は、上記ステップＳ３で決定された手指座標に基づいて、ロボット１００のロボットハンド１２０の各関節の角度を表すロボットハンド関節角度を算出する。この算出方法の具体例はとくに示さないが、ロボット１００の構造、ロボットハンド１２０の指の数およびロボットハンド１２０の各指の関節の数等の条件に応じて、当業者が適宜設計することができる。
【００３１】
図４（ｂ）は、このようにして決定されるロボットハンド関節角度の例を示す。なおこの図ではロボット１００自体の図示は省略し、各関節の角度のみを模式的に示す。ロボット１００において、ロボットハンド１２０の各指が２つの関節を持つ。第１関節（指先側の関節）は１つの自由度（角度ω）を持ち、第２関節（根元側の関節）は２つの自由度（角度θおよびφ）を持つ。また、ロボット１００は、手首すなわちロボットアーム１１０の先端の位置を表す点（ｘ０，ｙ０，ｚ０）および向きを表す角度（θ０，φ０，ψ０）についてそれぞれ３自由度を持つ。このように、ロボット１００は合計１５の自由度をもって制御可能である。なお、図４（ｂ）では、親指、人差し指および中指にそれぞれ対応するロボット指１２０ａ、ロボット指１２０ｂおよびロボット指１２０ｃとして表している。
【００３２】
図４（ａ）および図４（ｂ）において、たとえば親指については、図４（ａ）の点（ｘ１１，ｙ１１，ｚ１１）、点（ｘ１２，ｙ１２，ｚ１２）、および点（ｘ１３，ｙ１３，ｚ１３）の座標に基づいて、ロボット指１２０ａの第１関節１２２の角度（ω１）および第２関節１２３の角度（θ１，φ１）が決定される。
なお、手指とロボット指とではサイズや可動範囲等が異なるため、関節の数が等しい場合であっても関節の位置が一致するとは限らない。また、人差し指および中指については、手指とロボット指とで関節の数が異なるが、このような場合にロボットハンド関節角度を算出する方法も、当業者には周知である。
【００３３】
ステップＳ４の後、制御装置２００は、ロボットハンド関節角度差分算出ステップ（ステップＳ５）を実行する。このステップＳ５において、制御装置２００は、ステップＳ４で算出されたロボットハンド関節角度と、過去のロボットハンド関節角度との差分Δθを算出する。ここで、過去のロボットハンド関節角度とは、たとえばＮフレーム前（ただしＮは所定の整数）の教示画像に基づいて算出されたロボットハンド関節角度である。または、過去のロボットハンド関節角度とは、最後にロボットハンド１２０が駆動され停止した状態のロボットハンド関節角度、すなわち実際にロボットハンド１２０が実現しているそのロボットハンド関節角度であってもよい。
この差分Δθは、たとえばロボットハンド１２０の関節のすべてについて算出される。ただし、この差分Δθは少なくとも１つの関節について算出されるものであればよい。
【００３４】
次に、制御装置２００は、ステップＳ５で算出された差分Δθが、所定の閾値より大きいかどうかを判定する（ステップＳ６）。この判定は、教示者１０の手指がある程度大きな動きを示したかどうかの判定に相当する。この判定は、ロボットハンド１２０の関節のすべてについての差分Δθに基づいて１つの値を算出し、この１つの値が所定の閾値より大きいかどうかに基づいて行われてもよく、または、ロボットハンド１２０の各関節についての差分Δθのそれぞれに基づいて行われてもよい。
【００３５】
ステップＳ６において、差分Δθが閾値より大きいと判定された場合、制御装置２００は、ロボットハンド教示データ作成ステップ（ステップＳ７）を実行する。このステップＳ７において、制御装置２００は、ステップＳ４で算出されたロボットハンド関節角度に基づいて、ロボットハンド１２０の動作を教示するロボットハンド教示データを作成する。たとえば、ロボットハンド１２０の関節角度を図４（ｂ）に示すものに制御することを指令するロボットハンド教示データを作成することができる。なお、上述のようにロボットハンド関節角度（図４（ｂ））は手指座標（図４（ａ））に基づいて算出されるので、ロボットハンド教示データは手指座標に基づいて作成されるものであるということもできる。
【００３６】
ステップＳ７の後、制御装置２００は、ロボットハンド駆動指令送信ステップ（ステップＳ８）を実行する。このステップＳ８において、制御装置２００は、ステップＳ７で作成されたロボットハンド教示データに基づいてロボットハンド１２０の各関節にロボットハンド駆動指令を送信し、これによってロボットハンド１２０を駆動する。なお、上述のようにロボットハンド教示データはロボットハンド関節角度に基づいて算出されるので、ロボットハンド１２０はロボットハンド関節角度に基づいて駆動されるものであるということもできる。
なお、上記ステップＳ６において、差分Δθが閾値以下であると判定された場合には、ステップＳ７およびＳ８は実行されず、ロボットハンド１２０は停止したままとなる。
【００３７】
また、ステップＳ２の後、制御装置２００は、手首位置差分算出ステップ（ステップＳ９）を実行する。このステップＳ９において、制御装置２００は、ステップＳ２ｂで算出された手首位置と、過去の手首位置との差分ΔＬを算出する。ここで、過去の手首位置とは、たとえばＮフレーム前（ただしＮは所定の整数）の教示画像に基づいて算出された手首位置である。または、過去の手首位置とは、最後にロボットアーム１１０が駆動され停止した時点の手首位置、すなわち実際にロボットアーム１１０が実現している姿勢に対応する手首位置であってもよい。
【００３８】
次に、制御装置２００は、ステップＳ９で算出された差分ΔＬが、所定の閾値より大きいかどうかを判定する（ステップＳ１０）。この判定は、教示者１０の手首がある程度大きな動きを示したかどうかの判定に相当する。
なお、この例では判定は手首位置の差分ΔＬのみに基づいて行われるが、手首位置の差分および手首方向の差分に基づいて行われてもよい。
【００３９】
ステップＳ１０において、差分ΔＬが閾値より大きいと判定された場合、制御装置２００は、ロボットアーム教示データ作成ステップ（ステップＳ１１）を実行する。このステップＳ１１において、制御装置２００は、ステップＳ２ａで決定された手首位置およびステップＳ２ｂで決定された手首方向に基づいて、ロボットアーム１１０の動作を教示するロボットアーム教示データを作成する。ここで、手首位置および手首方向は、ロボットアーム１１０の先端の位置および向きを表すロボットアーム座標に変換される。たとえば、制御装置２００は、ロボットアーム１１０の先端の位置を図４（ｂ）の点（ｘ０，ｙ０，ｚ０）に制御し、かつ、ロボットアーム１１０の向きを図４（ｂ）の角度（θ０，φ０，ψ０）に制御することを指令するロボットアーム教示データを作成することができる。
【００４０】
ステップＳ１１の後、制御装置２００は、ロボットアーム駆動指令送信ステップ（ステップＳ１２）を実行する。このステップＳ１２において、制御装置２００は、ステップＳ１１で作成されたロボットアーム教示データに基づいてロボットアーム１１０にロボットアーム駆動指令を送信し、これによってロボットアーム１１０を駆動する。なお、上述のようにロボットアーム教示データは手首座標に基づいて算出されるので、ロボットアーム１１０は手首座標に基づいて駆動されるものであるということもできる。
なお、上記ステップＳ１０において、差分ΔＬが閾値以下であると判定された場合には、ステップＳ１１およびＳ１２は実行されず、ロボットアーム１１０は停止したままとなる。
【００４１】
ステップＳ３〜Ｓ８およびステップＳ９〜Ｓ１２の実行が完了すると、図２の処理が終了し、制御装置２００は再び図２の処理を最初から繰り返す。
【００４２】
また、図１に示すように、ロボット１００の状態は、モニタ用カメラ５０によって常時撮影され、モニタ６０に表示される。これが教示者１０に対するフィードバックとなる。教示者１０は、この表示を見ながら腕２３および手２１を動かし、ロボット１００に適切な動作を教示することができる。
【００４３】
以上のように、実施の形態１に係るロボットの教示データを作成する方法およびロボット教示システムによれば、教示者１０の手首２２を教示画像により認識し、その座標を利用して自動的に教示データを作成するので、ロボットアーム１１０を含むロボット１００の教示を簡単に行うことができる。
【００４４】
特に、ロボットの操作方法を知らない教示者であっても教示を行うことができる。また、教示者１０のジェスチャがそのまま教示動作となるので、複雑な教示動作も簡単に行うことができ、また、人間特有の器用さを要する動作も簡単に教示することができる。
また、単眼カメラ３０およびステレオカメラ４０が教示画像を取得し、また、モニタ用カメラ５０がロボット１００の状態を表す画像を取得するので、システム全体が安価に構築できる。また、これらのカメラによって遠隔操作が可能となるので、人間が作業困難な場所での作業の教示も行うことができる。
【００４５】
実施の形態２．
実施の形態２は、実施の形態１において、同一の教示データによって複数のロボットの教示を行うものである。
図５に、実施の形態２に係るロボット教示システムに関連する構成を示す。図５のロボット１０１〜１０３は、いずれも図１のロボット１００と同様の構成を有する。また、図５の制御装置２０１は、図１の制御装置２００と同様の構成を有するが、３台のロボット１０１〜１０３に接続されており、これら３台に関する処理を同時に行うことが可能である。
【００４６】
このような構成は、同一の構成を有する複数の対象物１３１〜１３３に対して、それぞれ対応するロボット１０１〜１０３が同一の動作を行う場合において、特に効率的である。教示者１０は、一度の教示によって同時にすべてのロボット１０１〜１０３の教示を行うことができる。
なお、図５には示さないが、図１と同様にモニタ用カメラ５０およびモニタ６０によるフィードバックが行われてもよい。
【００４７】
実施の形態３．
実施の形態３は、実施の形態１および２において、カメラの視野をより広くするものである。
図６に、実施の形態３に係るロボット教示システムに係る単眼カメラ３１の構成を示す。単眼カメラ３１は、教示者１０の手２１または手首２２の動きに応じ、その向きを変更することが可能である。たとえば、図６において、手２１が（ａ）の位置にある場合には単眼カメラ３１は（Ａ）の向きに制御され、手２１が（ｂ）の位置にある場合には単眼カメラ３１は（Ｂ）の向きに制御される。
【００４８】
このような単眼カメラ３１の方向制御は、制御装置によって、周知の技術を用いて行うことができる。たとえば、教示画像をリアルタイムで処理し、特徴点を抽出してこれを追尾するように単眼カメラ３１の方向を制御することができる。なお、この場合、手２１の移動を完全に追尾する必要はなく、手２１が単眼カメラ３１の視野に収まる範囲とすればよい。
なお、図６には単眼カメラ３１のみを示すが、ステレオカメラについても同様の制御がなされる。
【００４９】
このような構成によれば、より広い範囲にわたる動作の教示が可能となる。
なお、図６では単眼カメラ３１は向きのみを変更可能であるが、向きではなく位置を変更可能としてもよく、向きおよび位置の双方を変更可能としてもよい。
【００５０】
図７に、実施の形態３の変形例に係るロボット教示システムに係る単眼カメラ３２および３３の構成を示す。単眼カメラ３２および３３は異なる位置に配置され、異なる視野を有する。たとえば、図７において、手２１が（ａ）の位置にある場合には単眼カメラ３２が教示画像を撮影し、手２１が（ｂ）の位置にある場合には単眼カメラ３３が教示画像を撮影する。単眼カメラ３２および３３のいずれが教示画像を撮影するかは、たとえば制御装置によって、周知の技術を用いて決定することができる。
なお、図７には単眼カメラ３２および３３のみを示すが、ステレオカメラについても同様の配置がなされる。
【００５１】
実施の形態４．
実施の形態４は、実施の形態１〜３において、教示動作を１本の腕でなく２本の腕で行うものである。
図８に、実施の形態４に係るロボット教示システムに係る構成を示す。図８のロボット１０４は、図１のロボット１００と同様の構成を有する。また、図８のロボット１０５は、図１のロボット１００と左右対称となる構成を有する。また、図８の制御装置２０２は、図１の制御装置２００と同様の構成を有するが、２台のロボット１０４および１０５に接続されており、これら２台に関する処理を同時に行うことが可能である。
【００５２】
単眼カメラ３０は、教示者１０の両手を含む画像を撮影し、ステレオカメラ４０は、教示者１０の両手首を含む画像を撮影する。すなわち、教示画像は、教示者１０の両腕について、それぞれの手首および手を含むことになる。また、手首座標、手指座標、ロボットアーム教示データ、およびロボットハンド教示データは、それぞれ両腕について決定されまたは作成される。
なお、単眼カメラおよびステレオカメラはそれぞれ２台設けられてもよく、右腕２０ａおよび左腕２０ｂを個別に撮影してもよい。
【００５３】
なお、制御装置２０２は、教示画像において、教示者１０の手および手首について、右腕２０ａのものと左腕２０ｂのものとを区別して認識する機能を有するものとする。制御装置２０２は、教示者１０の右腕２０ａの手首および手の教示画像に基づいてロボット１０４を制御し、教示者１０の左腕２０ｂの手首および手の教示画像に基づいてロボット１０５を制御する。
【００５４】
このような構成によれば、両腕を用いる作業についても、実施の形態１と同様に簡単に教示を行うことができる。
また、一方の手首（たとえば右手首）を基準として座標系を設定すれば、作業空間全体を相対座標によって表すことができ、座標の誤差が小さくなるとともに制御性が向上する。
【００５５】
上述の実施の形態４では、一人の教示者１０が２本の腕（両腕）を用いて教示を行うが、２本の腕は異なる教示者のものであってもよい。すなわち、二人の教示者が、それぞれの腕を用いて教示を行ってもよい。このような構成は、対象物１３０の受け渡しのような作業に特に有効である。
また、二人の教示者の一方または双方が両腕を用いて教示を行ってもよく、三人以上の教示者が同様にそれぞれ片腕または両腕を用いて教示を行ってもよい。
【００５６】
上述の実施の形態１〜４において、以下に示すような変形を施すことができる。
実施の形態１、２および４では、単眼カメラが手２１を含む教示画像を１つ取得し、ステレオカメラが手首２２を含む教示画像を２つ取得するので、一時点で３つの教示画像が取得されることになるが、教示画像の数は３つでなくともよい。
たとえば、単眼カメラおよびステレオカメラの代わりにただ１つのカメラを用い、このカメラが手２１および手首２２の双方を含む教示画像を１つ取得してもよい。この場合、この１つの教示画像に基づいて手２１の姿勢候補データの選択および手首座標の決定を行うことができる。
また、２つの単眼カメラを用いてもよく、その一方が単眼カメラと同様に手２１を含む教示画像を取得し、他方は手首２２を含む１つの教示画像を取得してもよい。あるいは、１つのステレオカメラのみを用いてもよく、ステレオカメラによって取得されるステレオ手首画像の一方または双方を手２１の教示画像として用いてもよい。
教示画像取得手段として、ＴＯＦ（Time Of Flight）カメラを用いてもよい。ＴＯＦカメラは、被写体までの距離情報を得ることができる。この距離情報をもとに姿勢候補データの選択および手首座標の決定を行うことができる。
【００５７】
実施の形態１〜４では、図３に示すように、教示画像中のくびれ部分２２ａに基づいて手首２２の位置を決定しているが、手首２２の位置はこれとは異なる方法で決定されてもよい。
図９は、手首２２の位置を決定する他の方法を示す。図９では、教示者１０は手首にリストバンド２５を付して教示動作を行う。この場合、制御装置は、教示画像中でリストバンド２５に対応する部分を特定し、これに関連して手首２２の位置を決定することができる。リストバンド２５の色を教示者１０の肌の色とは異なる特定の色としておけば、制御装置はその特定の色を検出することによって手首２２の位置を決定することができ、位置決定の処理が簡素になるとともに精度が向上する。
【００５８】
また、実施の形態４（図８）のように複数の腕が関わる教示作業の場合には、右手首のリストバンドと左手首のリストバンドとを互いに異なる色としておけば、制御装置は第１の色を検出することによって一方の手首の位置を決定することができ、第１の色とは異なる第２の色を検出することによって他方の手首の位置を決定することができる。このように、教示画像中で右手と左手とを区別して認識する処理が簡素になるとともに精度が向上する。
なお、実施の形態４の変形例のように複数人の腕が関わる教示作業についても、すべての腕について異なる色のリストバンドを用いれば、教示画像中でそれぞれの手首を区別して認識することができる。
【００５９】
さらに、教示画像における背景（すなわち教示者１０の手２１、手首２２、上腕２３および体以外の部分）に対する手２１、手首２２または上腕２３の微小な動き、いわゆる「手ぶれ」に基づいて、手２１、手首２２または上腕２３を認識し、その位置を決定してもよい。この場合、手２１または上腕２３が認識できれば、これに基づいて手首２２の位置を決定することができる。
また、図９のようなリストバンドを用いない場合であっても、色の違い（たとえば教示者１０の肌の色、服装、等）に基づいて手首２２の位置を決定することができる。
【００６０】
実施の形態１〜４では、姿勢候補データ選択ステップ（図２のステップＳ２ａ）において、手首の位置に関する情報を用いずに姿勢候補データの選択を行うが、これは手首の位置に関する情報を用いて行ってもよい。この場合、姿勢候補データ選択ステップ（ステップＳ２ａ）は、手首位置決定ステップ（ステップＳ２ｂ）の後に実行されてもよい。また、教示画像において手首２２よりも先の部分を手２１として認識し、これを姿勢候補データの選択に用いてもよい。
【００６１】
実施の形態１〜４では、教示データを作成した直後にその教示データに基づいて実際の駆動を行っているが、駆動は行わなくともよい。たとえば、作成された教示データを単に記録するものであってもよい。この場合、後に記録された教示データを読み出し、これに基づいてロボットを駆動することができる。
【００６２】
実施の形態１〜４では、ロボットは３本のロボットハンドを備え合計１５の制御可能な自由度を持つが、ロボットハンドの数および自由度の数はこれに限られない。ロボットハンドの指の数は少なくとも１本あればよく、把持動作等がある場合は２本以上あればよい。また、自由度の数は、少なくとも、ロボットアームの先端の位置を３次元で表す３変数、ロボットアームの先端の向きを３次元で表す３変数、第１指の第１関節の角度を表す１変数、第１指の第２関節の角度を表す２変数、第２指の第１関節の角度を表す１変数、および、第２指の第２関節の角度を表す２変数の、合計１２あればよい。さらに、ロボットの自由度がこれより少ない場合には、さらに少ない変数によって教示を行ってもよい。
【００６３】
実施の形態１〜４では、手指座標は、手指の各関節の位置を表す座標と、指先の位置を表す座標とを含むが、手指座標の構成はこれに限られない。たとえば、手指座標は手指の各関節の位置を表す座標のみからなってもよく、また、指先の位置を表す座標のみからなってもよい。あるいは、手指に関連するなんらかの位置を表す座標であってもよく、これに対応してロボットハンド関節角度を決定することができるものであればよい。
【００６４】
実施の形態１〜４では、ロボット１００は３本のロボットハンド１２０の指を有しており、教示者１０の手指のうち親指・人差し指・中指がロボットハンド１２０の各指に対応したが、教示に用いる３本の指はこれとは異なる組合せであってもよい。また、ロボットハンドの指が２本であるロボットの場合には、たとえば親指および人差し指のみを用いて教示を行うことができ、また、４本または５本のロボットハンドの指を持つロボットの場合には、４本または５本の手指を用いて教示を行うことができる。
【符号の説明】
【００６５】
１０  教示者（人間）、２１  手、２２  手首、２３  腕、１００〜１０５  ロボット、１１０  ロボットアーム、１２０  ロボットハンド、１２０ａ〜１２０ｃ  ロボットハンドの指、２００〜２０２  制御装置、Ｓ１  教示画像取得ステップ、Ｓ２  手首座標決定ステップ（Ｓ２ａ  姿勢候補データ選択ステップ、Ｓ２ｂ  手首位置決定ステップ、Ｓ２ｃ  手首方向決定ステップ）、Ｓ３  手指座標決定ステップ、Ｓ７  ロボットハンド教示データ作成ステップ、Ｓ１１  ロボットアーム教示データ作成ステップ。
【図１】
2011110621.tif 000003
【図２】
2011110621.tif 000004
【図３】
2011110621.tif 000005
【図４】
2011110621.tif 000006
【図５】
2011110621.tif 000007
【図６】
2011110621.tif 000008
【図７】
2011110621.tif 000009
【図８】
2011110621.tif 000010
【図９】
2011110621.tif 000011