説明

ロボットの動作を制御する方法およびロボットシステム

【課題】ロボットの動作を制御する方法およびロボットシステムにおいて、人間の手とは異なる構造を有するロボットに対し、人間の手のようなリアルタイムの動作の制御を行うことができるものを提供する。
【解決手段】単眼カメラ30およびステレオカメラ40が、教示者10の手首22および手21を含む教示画像を取得する(教示情報取得ステップ、ステップS1)。制御装置200は、教示画像に基づいて、手指の関節および指先の位置を表す手指座標を決定し(手指座標決定ステップ、ステップS3)、この手指座標に基づいて、ロボットハンドの各関節の角度を算出する(ロボットハンド関節角度算出ステップ、ステップS4)。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ロボットの動作を制御する方法およびロボットシステムに関する。
【背景技術】
【0002】
ロボットを用いて作業を行う際には、ロボットに動作のパターンを教示する必要がある。この教示の方法としては、動作のパターンを表す教示データを数値としてキーボードから直接入力する方法、教示者がロボットの制御装置を操作して動作を実行させ、これに伴って教示データを作成させる方法、および、人間の手の画像を入力して、これにロボットハンドの姿勢を一致させる教示データを自動的に作成させる方法、等がある。引用文献1には、人間の手の画像にロボットハンドの姿勢を一致させる方法の例が記載されている。
【0003】
引用文献1のロボットは、その構造が人間の手の構造と完全に一致している。このような場合には、指の関節の位置や角度もすべて一致するので、人間の指の関節等の座標を測定し、これをそのまま実現するようにロボットを駆動することにより、人間と同様の動作をロボットに行わせることができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平4−365570号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来の技術では、人間の手とは異なる構造を有するロボットについて、人間の手のようなリアルタイムの動作の制御を行うことは困難であった。
ロボットの構造が人間の手とは異なる場合には、引用文献1のように人間の指の姿勢データをそのままロボットの制御に用いることができない。また、制御データを数値としてキーボードから入力する場合や、教示者がロボットの制御装置を操作して予め動作の教示を行うような場合には、リアルタイムの制御を行うことができない。
【0006】
この発明はこのような問題点を解消するためになされたものであり、ロボットの動作を制御する方法およびロボットシステムにおいて、人間の手とは異なる構造を有するロボットに対し、人間の手のようなリアルタイムの動作の制御を行うことができるものを提供することを目的とする。
【課題を解決するための手段】
【0007】
この発明に係る、ロボットの動作を制御する方法は、ロボットハンドを備える、少なくとも1台のロボットの動作を制御する方法であって、人間の手を含む教示情報を取得する、教示情報取得ステップと、教示情報に基づいて、手指に関連する位置を表す手指座標を決定する、手指座標決定ステップと、手指座標に基づいて、ロボットハンドの各関節の角度を表すロボットハンド関節角度を算出する、ロボットハンド関節角度算出ステップと、ロボットハンド関節角度算出ステップにおいて算出されたロボットハンド関節角度に基づいて、ロボットハンドに駆動指令を送信する、駆動指令送信ステップとを含む。
教示情報は教示画像であってもよく、教示情報取得ステップは教示画像取得ステップであってもよい。
【0008】
この方法によれば、教示画像に基づいて手指座標を決定し、手指座標をロボットハンド関節角度に変換し、このロボットハンド関節角度に基づいてロボットを駆動する。
【0009】
ロボットハンドの関節の運動パターンを表す所定の運動パターンデータに基づいてロボットハンドを駆動する、パターン駆動指令送信ステップをさらに含み、所定の条件が満たされた場合には、駆動指令送信ステップの代わりにパターン駆動指令送信ステップが実行されてもよい。
所定の条件が満たされたかどうかを判定する、パターン判定ステップをさらに含み、パターン判定ステップにおいて、一時点におけるロボットハンド関節角度に基づいて、または、所定時間にわたるロボットハンド関節角度の変動の状態に基づいて、ロボットハンド関節角度と所定の運動パターンデータとの関連性が判定されてもよい。
ロボットは、さらにロボットアームを備え、教示画像は、さらに人間の手首を含み、方法は、教示画像に基づいて、手首の位置および向きを表す手首座標を決定する、手首座標決定ステップと、手首座標に基づいてロボットアームに駆動指令を送信する、ロボットアーム駆動指令送信ステップとをさらに含んでもよい。
ロボットは少なくとも2台であり、教示画像は、人間の両腕について、それぞれの手首および手を含み、ロボットハンド関節角度および手首座標は、それぞれ両腕について算出または決定されてもよい。
【0010】
また、この発明に係るロボットシステムは、少なくとも1台のロボットと、上述の方法を実行してロボットを制御する機能を有する制御装置とを備える。
【発明の効果】
【0011】
この発明に係る、ロボットの動作を制御する方法およびロボットシステムは、教示者の手指座標に基づいて、ロボットハンドの各関節の角度を算出するので、人間の手とは異なる構造を有するロボットに対し、人間の手のようなリアルタイムの動作の制御を行うことができる。
【図面の簡単な説明】
【0012】
【図1】この発明の実施の形態1に係るロボット制御システムに関連する構成を示す図である。
【図2】図1のロボット制御システムの動作を説明するフローチャートである。
【図3】手首の位置を決定する方法の一例を説明する図である。
【図4】(a)は図1のロボット制御システムが決定する手指座標の例を示す図である。(b)は図1のロボット制御システムが決定するロボットハンド関節角度の例を示す図である。
【図5】この発明の実施の形態2に係るロボット制御システムに関連する構成を示す図である。
【図6】この発明の実施の形態3に係るロボット制御システムに係る単眼カメラの構成を示す図である。
【図7】この発明の実施の形態3の変形例に係るロボット制御システムに係る単眼カメラの構成を示す図である。
【図8】この発明の実施の形態4に係るロボット制御システムに係る構成を示す図である。
【図9】この発明の実施の形態5に係るロボット制御システムの動作を説明するフローチャートである。
【図10】この発明の実施の形態6に係るロボット制御システムの動作を説明するフローチャートである。
【図11】手首の位置を決定する方法について、図3とは異なる例を示す図である。
【発明を実施するための形態】
【0013】
以下、この発明の実施の形態を添付図面に基づいて説明する。
実施の形態1.
図1は、この発明の実施の形態1に係るロボット制御システムに関連する構成を示す。ロボット制御システムは、教示の対象となるロボット100と、ロボット100に接続された制御装置200とを含む。ロボット100は、マニピュレータと呼ばれるものであってもよい。
【0014】
ロボット100は、ロボットアーム110およびロボットハンド120を含む。ロボットハンド120は、全体として人間の手指とは異なる構造を有する。すなわち、指の数、関節の数、各節の長さ、関節の自由度の数、等のうち、少なくとも1つが人間の手指とは異なる。図1ではロボットハンド120の指は3本であるが、これは少なくとも2本であればよい。ロボットハンド120の根元はロボットアーム110の先端に連結されており、ロボットアーム110の位置および向きが決まればこれに応じてすべてのロボットハンド120の根元の位置が一意に決まる構成となっている。
このロボット100は、対象物130に対して作業を行うものである。作業としては、把持、運搬、組み付け等が可能である。
【0015】
制御装置200は、その内部の構成については図示しないが、演算手段(CPU等)と記憶手段(半導体メモリ装置、磁気ディスク装置等)とを備えるコンピュータである。この制御装置200は、その記憶手段に格納された教示データ作成プログラムを実行することにより、ロボット100の教示データを作成する教示データ作成装置として機能し、また、その記憶手段に格納された駆動制御プログラムを実行することにより、ロボット100の動作を制御する駆動制御装置として機能する。これらの教示データ作成プログラムおよび駆動制御プログラムは、情報記憶媒体に記憶することができる。
【0016】
制御装置200は、人間の手を含む画像に基づいて、手指の各関節の空間的位置および指先の空間的位置を表す座標を決定する機能を有する。このような機能は、たとえば、谷本らの研究(谷本貴頌他により2006年3月に作成され公知となった「ロボットハンド制御のための自己増殖型SOMを用いた画像データベースからの手指形状の実時間推定」と題する筑波大学大学院博士課程システム情報工学研究科修士論文)に記載される方法を使用することによって実現することができる。この方法によれば、手を撮像した一つの二次元画像から手の姿勢の推定を行うことができる。谷本らの研究では、予め、手の関節の角度情報と手画像とを同期させて取得し、画像における輪郭抽出と特徴量化を行い、この特徴量と角度とをデータとしてデータベースを構築している。そして、手の実画像について、データベースの構築時と同様の特徴量化を行い、得られた特徴量とデータベースの特徴量との比較を行うことで手の関節の角度を推定し、手の姿勢を推定している。
【0017】
この方法によれば、手の姿勢を表すデータである特徴量について複数のパターンをデータベースに格納しておき、この複数のパターン(姿勢候補データ)のうちから実画像に基づいて1つのパターン(姿勢候補データ)を選択することが可能となる。この際、手首の位置を基準として原点を設定し、手首の向きを基準として座標軸を設定した座標系において、指の空間的位置を決定することができる。
【0018】
また、制御装置200は、手または指の一部が画像に表れない場合(たとえばカメラの視野外にある場合、対象物によってカメラの視野が遮られる場合、教示者10の体の一部、手、指等によってカメラの視野が遮られる場合、等)には、オクルージョンの部分(すなわち画像に表れない部分)を推定して補完する機能を有する。このような機能は、周知の画像処理技術を用いて実現可能である。
【0019】
ロボット制御システムは、制御装置200に接続された単眼カメラ30を含む。単眼カメラ30は、手21の教示画像取得手段として機能する。すなわち、人間である教示者10の指を含む手21を撮影し、手21を含む画像を取得して制御装置200に送信する。(なお、本明細書において「単眼カメラ」という名称は、後述のステレオカメラ40との区別のために用いるものであり、同様の機能を有するカメラであれば単眼カメラでなくともよい。)
なお、手21は手首22よりも先の部分であり、すなわち掌および指を含む部分である。腕23は手首22よりも根元側の部分である。この実施の形態では右腕であるが、左腕であってもよい。
【0020】
また、ロボット制御システムは、制御装置200に接続されたステレオカメラ40を含む。ステレオカメラ40は、手首22の教示画像取得手段として機能する。すなわち、教示者10の手首22を撮影し、手首22を含む画像を取得して制御装置200に送信する。ステレオカメラ40は周知の構成によって立体映像を撮影することができる。すなわち、ステレオカメラ40は少なくとも2つのカメラを含み、これらのカメラが互いに異なる位置から手首22を含む画像を撮影する。それぞれの画像における手首22の位置に基づいて、ステレオカメラ40と手首22との距離を含む空間的位置関係を決定することができる。
【0021】
さらに、ロボット制御システムは、ロボット100を撮影するモニタ用カメラ50と、モニタ用カメラ50によって撮影された画像を表示するモニタ60とを含む。モニタ用カメラ50はロボット状態撮影手段として機能し、モニタ60はロボット状態表示手段として機能する。
【0022】
単眼カメラ30、ステレオカメラ40およびモニタ60は、教示者10の近傍に配置される。単眼カメラ30は、教示者10が教示を行う際に手21が移動する範囲をすべて視野に収める位置に配置される。ステレオカメラ40は、たとえば、教示者10が教示を行う際に手首22が移動する範囲をすべて視野に収める位置に配置される。モニタ60は、教示者10が教示作業を行う際に、その表示内容を見ることができる位置に配置される。このような配置により、教示者10はロボット100の状態を視認しながら教示作業を行い、これによってロボット100をリアルタイムで遠隔操作することができる。
【0023】
以上のように構成されるロボット制御システムの動作を、図2のフローチャートを用いて説明する。
まず、ロボット制御システムは、教示画像取得ステップ(ステップS1)を実行する。このステップS1において、ロボット制御システムは、教示者10の手21および手首22を含む教示画像を取得する。この教示画像はロボット100の教示に用いられるものである。
【0024】
実施の形態1では、ステップS1において、単眼カメラ30が手21を含む教示画像を1つ取得し(ステップS1a)、ステレオカメラ40が手首22を含む2つの画像からなるステレオ手首画像を取得する(ステップS1b)。すなわち、ステップS1bでは、ステレオカメラ40を構成するそれぞれのカメラが、手首22を含む教示画像を1つずつ取得する。
また、ステップS1において、単眼カメラ30およびステレオカメラ40は、それぞれ取得した教示画像を制御装置200に送信し、制御装置200はこれらを受信して記憶手段に格納する。
【0025】
次に、制御装置200は、手首座標決定ステップ(ステップS2)を実行する。このステップS2において、制御装置200は、教示画像に基づいて、手首22の位置および向きを表す手首座標を決定する。ステップS2は、姿勢候補データ選択ステップ(ステップS2a)、手首位置決定ステップ(ステップS2b)、および、手首方向決定ステップ(ステップS2c)を含む。
【0026】
姿勢候補データ選択ステップ(ステップS2a)において、制御装置200は、データベースに格納されている手の姿勢を表す複数の姿勢候補データのうちから、手21を含む教示画像に基づいて、1つの姿勢候補データを選択する。この選択は公知の方法によって行うことができる。たとえば、制御装置200は、教示画像から抽出した特徴量と、姿勢候補データを表す特徴量との一致度が最も高いものを選択することができる。
【0027】
また、手首位置決定ステップ(ステップS2b)において、制御装置200は、ステレオカメラ40によって撮影されたステレオ手首画像に基づいて、手首22の位置を決定する。
図3を用いて、画像における手首22の位置を決定する方法の一例を説明する。図3はステレオ手首画像の一方である。制御装置200は、まず画像中の2点によって表されるくびれ部分22aを検出し、このくびれ部分22aの中点22bの位置を算出する。そして、その画像における中点22bの位置を、その画像における手首22の位置として決定する。
さらに、制御装置200は、ステレオ手首画像の残る一方でも同様にして手首22の位置を決定する。その後、ステレオ手首画像のそれぞれにおける手首22の位置に基づいて、ステレオカメラ40を基準とする手首22の空間的な位置を算出することができる。
【0028】
ステップS2aおよびステップS2bの後、制御装置200は手首方向決定ステップ(ステップS2c)を実行する。ステップS2cにおいて、制御装置200は、手21の教示画像と、ステップS2aにおいて選択された姿勢候補データとの対応関係に基づいて、手21の教示画像における手首22の向きを決定する。姿勢候補データは、手首の位置および向きを基準として手指の各関節の位置および指先の空間的位置を表す座標を表すものであるので、たとえば、教示画像中の手21と、選択された姿勢候補データとがある特定の向きにおいて最もよく一致する場合、その向きを手首22の向きと決定することができる。
【0029】
ステップS2の後、ステップS3〜S8を含む処理と、ステップS9〜S12を含む処理とが並列に実行される。ただし、これらは直列に実行されるものであってもよい。
【0030】
ステップS2の後、制御装置200は、手指座標決定ステップ(ステップS3)を実行する。このステップS3において、制御装置200は、手21の教示画像に基づいて、手指の各関節および指先の位置を表す手指座標を決定する。これは上述の谷本らの方法に従って行うことができる。
図4(a)は、このようにして決定される手指座標の例を示す。図4(a)では、教示者10の手21の右手の親指、人差し指および中指に関連する手指座標が示されている。たとえば、点(x11,y11,z11)、点(x12,y12,z12)、および点(x13,y13,z13)は、それぞれ親指の第2関節、第1関節および指先の位置を表す。なお、点(x,y,z)はステップS2bにおいて決定される手首位置を表す。
【0031】
ステップS3の後、制御装置200は、ロボットハンド関節角度算出ステップ(ステップS4)を実行する。このステップS4において、制御装置200は、上記ステップS3で決定された手指座標に基づいて、ロボット100のロボットハンド120の各関節の角度を表すロボットハンド関節角度を算出する。この算出方法の具体例はとくに示さないが、ロボット100の構造、ロボットハンド120の指の数およびロボットハンド120の関節の数等の条件に応じて、当業者が適宜設計することができる。このステップS4を実行することによって、制御装置200は、測定された教示者10の手指に関する座標を、ロボットハンド120を駆動するためのデータであるロボットハンド関節角度に変換する。
【0032】
図4(b)は、このようにして決定されるロボットハンド関節角度の例を示す。なおこの図ではロボット100自体の図示は省略し、各関節の角度のみを模式的に示す。ロボット100において、ロボットハンド120の各指が2つの関節を持つ。第1関節(指先側の関節)は1つの自由度(角度ω)を持ち、第2関節(根元側の関節)は2つの自由度(角度θおよびφ)を持つ。また、ロボット100は、手首すなわちロボットアーム110の先端の位置を表す点(x,y,z)および向きを表す角度(θ,φ,ψ)についてそれぞれ3自由度を持つ。このように、ロボット100は合計15の自由度をもって制御可能である。なお、図4(b)では、親指、人差し指および中指にそれぞれ対応するロボット指120a、ロボット指120bおよびロボット指120cとして表している。
【0033】
図4(a)および図4(b)において、たとえば親指については、図4(a)の点(x11,y11,z11)、点(x12,y12,z12)、および点(x13,y13,z13)の座標に基づいて、ロボット指120aの第1関節122の角度(ω)および第2関節123の角度(θ,φ)が決定される。
なお、手指とロボットハンドとではサイズや可動範囲等が異なるため、関節の数が等しい場合であっても関節の位置が一致するとは限らない。また、人差し指および中指については、手指とロボットハンドとで関節の数が異なるが、このような場合にロボットハンド関節角度を算出する方法も、当業者には周知である。
【0034】
ステップS4の後、制御装置200は、ロボットハンド関節角度差分算出ステップ(ステップS5)を実行する。このステップS5において、制御装置200は、ステップS4で算出されたロボットハンド関節角度と、過去のロボットハンド関節角度との差分Δθを算出する。ここで、過去のロボットハンド関節角度とは、たとえばNフレーム前(ただしNは所定の整数)の教示画像に基づいて算出されたロボットハンド関節角度である。または、過去のロボットハンド関節角度とは、最後にロボットハンド120が駆動され停止した状態のロボットハンド関節角度、すなわち実際にロボットハンド120が実現しているそのロボットハンド関節角度であってもよい。
この差分Δθは、たとえばロボットハンド120の関節のすべてについて算出される。ただし、この差分Δθは少なくとも1つの関節について算出されるものであればよい。
【0035】
次に、制御装置200は、ステップS5で算出された差分Δθが、所定の閾値より大きいかどうかを判定する(ステップS6)。この判定は、教示者10の手指がある程度大きな動きを示したかどうかの判定に相当する。この判定は、ロボットハンド120の関節のすべてについての差分Δθに基づいて1つの値を算出し、この1つの値が所定の閾値より大きいかどうかに基づいて行われてもよく、または、ロボットハンド120の各関節についての差分Δθのそれぞれに基づいて行われてもよい。
【0036】
ステップS6において、差分Δθが閾値より大きいと判定された場合、制御装置200は、ロボットハンド教示データ作成ステップ(ステップS7)を実行する。このステップS7において、制御装置200は、ステップS4で算出されたロボットハンド関節角度に基づいて、ロボットハンド120の動作を教示するロボットハンド教示データを作成する。たとえば、ロボットハンド120の関節角度を図4(b)に示すものに制御することを指令するロボットハンド教示データを作成することができる。なお、上述のようにロボットハンド関節角度(図4(b))は手指座標(図4(a))に基づいて算出されるので、ロボットハンド教示データは手指座標に基づいて作成されるものであるということもできる。
【0037】
ステップS7の後、制御装置200は、ロボットハンド駆動指令送信ステップ(ステップS8)を実行する。このステップS8において、制御装置200は、ステップS7で作成されたロボットハンド教示データに基づいてロボットハンド120の各関節にロボットハンド駆動指令を送信し、これによってロボットハンド120を駆動する。なお、上述のようにロボットハンド教示データはロボットハンド関節角度に基づいて算出されるので、ロボットハンド120はロボットハンド関節角度に基づいて駆動されるものであるということもできる。
なお、上記ステップS6において、差分Δθが閾値以下であると判定された場合には、ステップS7およびS8は実行されず、ロボットハンド120は停止したままとなる。
【0038】
また、ステップS2の後、制御装置200は、手首位置差分算出ステップ(ステップS9)を実行する。このステップS9において、制御装置200は、ステップS2bで算出された手首位置と、過去の手首位置との差分ΔLを算出する。ここで、過去の手首位置とは、たとえばNフレーム前(ただしNは所定の整数)の教示画像に基づいて算出された手首位置である。または、過去の手首位置とは、最後にロボットアーム110が駆動され停止した時点の手首位置、すなわち実際にロボットアーム110が実現している姿勢に対応する手首位置であってもよい。
【0039】
次に、制御装置200は、ステップS9で算出された差分ΔLが、所定の閾値より大きいかどうかを判定する(ステップS10)。この判定は、教示者10の手首がある程度大きな動きを示したかどうかの判定に相当する。
なお、この例では判定は手首位置の差分ΔLのみに基づいて行われるが、手首位置の差分および手首方向の差分に基づいて行われてもよい。
【0040】
ステップS10において、差分ΔLが閾値より大きいと判定された場合、制御装置200は、ロボットアーム教示データ作成ステップ(ステップS11)を実行する。このステップS11において、制御装置200は、ステップS2aで決定された手首位置およびステップS2bで決定された手首方向に基づいて、ロボットアーム110の動作を教示するロボットアーム教示データを作成する。ここで、手首位置および手首方向は、ロボットアーム110の先端の位置および向きを表すロボットアーム座標に変換される。たとえば、制御装置200は、ロボットアーム110の先端の位置を図4(b)の点(x,y,z)に制御し、かつ、ロボットアーム110の向きを図4(b)の角度(θ,φ,ψ)に制御することを指令するロボットアーム教示データを作成することができる。
【0041】
ステップS11の後、制御装置200は、ロボットアーム駆動指令送信ステップ(ステップS12)を実行する。このステップS12において、制御装置200は、ステップS11で作成されたロボットアーム教示データに基づいてロボットアーム110にロボットアーム駆動指令を送信し、これによってロボットアーム110を駆動する。なお、上述のようにロボットアーム教示データは手首座標に基づいて算出されるので、ロボットアーム110は手首座標に基づいて駆動されるものであるということもできる。
なお、上記ステップS10において、差分ΔLが閾値以下であると判定された場合には、ステップS11およびS12は実行されず、ロボットアーム110は停止したままとなる。
【0042】
ステップS3〜S8およびステップS9〜S12の実行が完了すると、図2の処理が終了し、制御装置200は再び図2の処理を最初から繰り返す。
【0043】
また、図1に示すように、ロボット100の状態は、モニタ用カメラ50によって常時撮影され、モニタ60に表示される。これが教示者10に対するフィードバックとなる。教示者10は、この表示を見ながら腕23および手21を動かし、ロボット100を適切に制御することができる。
【0044】
以上のように、実施の形態1に係るロボットの教示データを作成する方法およびロボット制御システムによれば、教示者10の手首22を教示画像により認識し、その座標を利用して自動的に教示データを作成し、これによってロボット100を駆動するので、ロボットアーム110を含むロボット100の制御を簡単に行うことができる。
【0045】
特に、ロボットの操作方法を知らない教示者であっても教示を行うことができる。また、教示者10のジェスチャがそのまま教示動作となるので、複雑な教示動作も簡単に行うことができ、また、人間特有の器用さを要する動作も簡単に教示することができる。
また、単眼カメラ30およびステレオカメラ40が教示画像を取得し、また、モニタ用カメラ50がロボット100の状態を表す画像を取得するので、システム全体が安価に構築できる。また、これらのカメラによって遠隔操作が可能となるので、人間が作業困難場所での作業の制御も行うことができる。
【0046】
また、図2に示す処理はリアルタイムで行うことができるので、いわゆる運動計画のようなデータ作成処理を事前に行う必要がない。この際、ロボットアームの特異点(実現することができない姿勢等)については、マッピングなどにより回避することができる。
【0047】
実施の形態2.
実施の形態2は、実施の形態1において、同一の教示データによって複数のロボットの制御を行うものである。
図5に、実施の形態2に係るロボット制御システムに関連する構成を示す。図5のロボット101〜103は、いずれも図1のロボット100と同様の構成を有する。また、図5の制御装置201は、図1の制御装置200と同様の構成を有するが、3台のロボット101〜103に接続されており、これら3台に関する処理を同時に行うことが可能である。
【0048】
このような構成は、同一の構成を有する複数の対象物131〜133に対して、それぞれ対応するロボット101〜103が同一の動作を行う場合において、特に効率的である。教示者10は、一度の教示によって同時にすべてのロボット101〜103の制御を行うことができる。
なお、図5には示さないが、図1と同様にモニタ用カメラ50およびモニタ60によるフィードバックが行われてもよい。
【0049】
実施の形態3.
実施の形態3は、実施の形態1および2において、カメラの視野をより広くするものである。
図6に、実施の形態3に係るロボット制御システムに係る単眼カメラ31の構成を示す。単眼カメラ31は、教示者10の手21または手首22の動きに応じ、その向きを変更することが可能である。たとえば、図6において、手21が(a)の位置にある場合には単眼カメラ31は(A)の向きに制御され、手21が(b)の位置にある場合には単眼カメラ31は(B)の向きに制御される。
【0050】
このような単眼カメラ31の方向制御は、制御装置によって、周知の技術を用いて行うことができる。たとえば、教示画像をリアルタイムで処理し、特徴点を抽出してこれを追尾するように単眼カメラ31の方向を制御することができる。なお、この場合、手21の移動を完全に追尾する必要はなく、手21が単眼カメラ31の視野に収まる範囲とすればよい。
なお、図6には単眼カメラ31のみを示すが、ステレオカメラについても同様の制御がなされる。
【0051】
このような構成によれば、より広い範囲にわたる動作の教示が可能となる。
なお、図6では単眼カメラ31は向きのみを変更可能であるが、向きではなく位置を変更可能としてもよく、向きおよび位置の双方を変更可能としてもよい。
【0052】
図7に、実施の形態3の変形例に係るロボット制御システムに係る単眼カメラ32および33の構成を示す。単眼カメラ32および33は異なる位置に配置され、異なる視野を有する。たとえば、図7において、手21が(a)の位置にある場合には単眼カメラ32が教示画像を撮影し、手21が(b)の位置にある場合には単眼カメラ33が教示画像を撮影する。単眼カメラ32および33のいずれが教示画像を撮影するかは、たとえば制御装置によって、周知の技術を用いて決定することができる。
なお、図7には単眼カメラ32および33のみを示すが、ステレオカメラについても同様の配置がなされる。
【0053】
実施の形態4.
実施の形態4は、実施の形態1〜3において、教示動作を1本の腕でなく2本の腕で行うものである。
図8に、実施の形態4に係るロボット制御システムに係る構成を示す。図8のロボット104は、図1のロボット100と同様の構成を有する。また、図8のロボット105は、図1のロボット100と左右対称となる構成を有する。また、図8の制御装置202は、図1の制御装置200と同様の構成を有するが、2台のロボット104および105に接続されており、これら2台に関する処理を同時に行うことが可能である。
【0054】
単眼カメラ30は、教示者10の両手を含む画像を撮影し、ステレオカメラ40は、教示者10の両手首を含む画像を撮影する。すなわち、教示画像は、教示者10の両腕について、それぞれの手首および手を含むことになる。また、手首座標、手指座標、ロボットアーム教示データ、およびロボットハンド教示データは、それぞれ両腕について決定されまたは作成される。
なお、単眼カメラおよびステレオカメラはそれぞれ2台設けられてもよく、右腕20aおよび左腕20bを個別に撮影してもよい。
【0055】
なお、制御装置202は、教示画像において、教示者10の手および手首について、右腕20aのものと左腕20bのものとを区別して認識する機能を有するものとする。制御装置202は、教示者10の右腕20aの手首および手の教示画像に基づいてロボット104を制御し、教示者10の左腕20bの手首および手の教示画像に基づいてロボット105を制御する。
【0056】
このような構成によれば、両腕を用いる作業についても、実施の形態1と同様に簡単に制御を行うことができる。
また、一方の手首(たとえば右手首)を基準として座標系を設定すれば、作業空間全体を相対座標によって表すことができ、座標の誤差が小さくなるとともに制御性が向上する。
【0057】
上述の実施の形態4では、一人の教示者10が2本の腕(両腕)を用いて教示を行うが、2本の腕は異なる教示者のものであってもよい。すなわち、二人の教示者が、それぞれの腕を用いて教示を行ってもよい。このような構成は、対象物130の受け渡しのような作業に特に有効である。
また、二人の教示者の一方または双方が両腕を用いて教示を行ってもよく、三人以上の教示者が同様にそれぞれ片腕または両腕を用いて教示を行ってもよい。
【0058】
実施の形態5.
実施の形態5は、実施の形態1〜4において、所定の条件に応じてロボットを定義済みの駆動パターンに従って駆動するものである。
実施の形態5において、制御装置は、その記憶手段に、ロボット100の動作に関する予め定義された所定の駆動パターンを少なくとも1つ格納している。この所定の駆動パターンは、ロボットハンド120における関節の運動パターンを表す。駆動パターンは特定の動作についての標準的なモデルデータであり、周知のものであってもよい。駆動パターンの例としては、円筒形の対象物を周方向から丸みに添って握る動作、円筒形の対象物を軸方向から(端部から中央に向かって)掴む動作、球形の対象物を上方向からわしづかみにして持ち上げる動作、等の動作を実現するためのものが考えられる。
これらの駆動パターンは、たとえばロボットハンド関節角度の時間的変化を表すデータとすることができる。このデータは、制御装置の記憶手段内に設けられる駆動パターンデータベースに格納される。
【0059】
図9は、実施の形態5に係るロボット制御システムの動作を説明するフローチャートである。実施の形態1に係る動作(図2)におけるロボットハンド駆動指令送信ステップ(ステップS8)は、実施の形態5に係る動作(図9)では、パターン判定ステップ(ステップS8a)、遠隔駆動指令送信ステップ(ステップS8b)およびパターン駆動指令送信ステップ(ステップS8c)に置き換えられている。
なお、遠隔駆動指令送信ステップにおける「遠隔」という用語は、本実施形態では教示者10とロボット100との通信が電気通信回線等を介して行われることを意味するものであるが、必ずしも地理的に距離が大きいということを意味しない。
【0060】
ステップS1〜S7およびS9〜S12の動作は実施の形態1と同様である。
ステップS7の後、制御装置は、パターン判定ステップ(ステップS8a)を実行する。このステップS8aにおいて、制御装置は、ステップS4で算出されたロボットハンド関節角度と、駆動パターンデータベース内の各駆動パターンとを比較し、その関連性を判定する。
【0061】
関連性の判定は、様々な方法によって行うことができる。
たとえば、一時点におけるロボットハンド関節角度(すなわち、最後に決定されたロボットハンド関節角度)に基づいて行うことができる。ステップS4で算出されたロボットハンド関節角度と、駆動パターンデータのロボットハンド関節角度とを用いて、それぞれ対応する関節の角度を比較する。すべての関節について角度が近似している場合には、ステップS4で算出されたロボットハンド関節角度と、その駆動パターンとは関連していると判定する。
ここで「角度が近似している」とは、たとえば、それぞれ対応する関節の角度の差分が所定角度(たとえば5度)以下である状態を意味する。または、それぞれ対応する関節の位置の差分が所定距離(たとえば5mm)以下である場合を意味してもよい。
【0062】
あるいは、関連性の判定は、所定時間にわたるロボットハンド関節角度の変動の状態に基づいて行うことができる。ステップS4で算出されたロボットハンド関節角度を所定時間にわたって記憶しておき、その変動の状態と、これと対応する時間にわたる駆動パターンデータのロボットハンド関節角度の状態とを比較する。すべての関節について角度の変動の状態が近似している場合には、ステップS4で算出されたロボットハンド関節角度と、その駆動パターンとは関連していると判定する。
【0063】
ここで「ロボットハンド関節角度の変動の状態が近似している」とは、たとえば、それぞれ対応する関節の角度の差分が、所定時間にわたって常に所定角度(たとえば5度)以下である状態を意味する。または、それぞれ対応する関節の位置の差分が、所定時間にわたって常に所定距離(たとえば5mm)以下である場合を意味してもよい。なお、ここでいう「所定時間」とは、教示画像を動画としてみた場合には連続する所定数のフレームに対応する。
【0064】
このようにして、ステップS8aにおける判定の結果、ステップS4で算出されたロボットハンド関節角度と、いずれかの駆動パターンとが関連しているか否かが判定される。いずれの駆動パターンも関連していないと判定された場合には、制御装置は遠隔駆動指令送信ステップ(ステップS8b)を実行する。ステップS8bの処理は図2のロボットハンド駆動指令送信ステップ(ステップS8)と同一である。
なお、ステップS4で算出されたロボットハンド関節角度が複数の駆動パターンと関連していると判定された場合には、制御装置はそのうち1つの駆動パターンを適宜選択する。この選択方法は当業者であれば適宜設計することができる。
【0065】
ステップS8aにおいて、ステップS4で算出されたロボットハンド関節角度と、いずれかの駆動パターンとが関連していると判定された場合には、制御装置は、パターン駆動指令送信ステップ(ステップS8c)を実行する。このステップS8cにおいて、制御装置は、その関連している駆動パターンに基づいてロボットハンド120を駆動する。
【0066】
この場合には、教示者10の手21のその後の動作とは関係なく、ロボット100は予め定義された動作を行うことになる。
たとえば、円筒形の対象物を周方向から握る動作に対応する駆動パターンが格納されており、教示者10が円筒形の対象物130を周方向から握ろうとする動作を行う場合を考える。この場合、教示者10の手21の動きに対応して、実際にロボットハンド120が対象物130に接触する前の段階で、手21の動きとその駆動パターンとが関連していると判定され、その後は自動的に対象物130を握る動作が実行される。
【0067】
このような制御によれば、教示者10の教示の巧拙に関わらず、予め定義されたパターンを用いて迅速かつ精密にロボット100を制御することができる。とくに、対象物130が既知の物体である場合には、これに対応する駆動パターンを定義しておくことにより、より的確な動作が可能となる。
【0068】
また、複数の駆動パターンを準備しておけば、同一の対象物を把持するための異なる姿勢に対応することができる。
たとえば、対象物130が円筒形であり、一方の端面を下にして配置されている場合、水平方向(周方向)から丸みに添って握るように把持する場合と、上方向(軸方向)から掴むように把持する場合とでは適切なロボットハンド120の駆動パターンが異なる。このような場合であっても、教示者10の手21がいずれの駆動パターンと関連するか判定することにより、常に適切な把持動作を行うことができる。
【0069】
実施の形態6.
実施の形態6は、実施の形態5において、パターン判定ステップに関連する処理を変更するものである。実施の形態5では、手21の動きと駆動パターンとが近似しているかどうかに基づいて、いわば自動的に駆動方式の切り替えを行ったが、実施の形態6では、教示者10からの指示に基づいて、いわば手動で切り替えを行う。
図10は、実施の形態6に係るロボット制御システムの動作を説明するフローチャートである。実施の形態5(図9)におけるパターン判定ステップ(ステップS8a)は、パターン指示判定ステップ(ステップS0)に置き換えられ、当該ステップの実行タイミングも変更されている。
【0070】
パターン指示判定ステップ(ステップS0)は、ステップS1の前に実行される。このステップS0において、制御装置は、教示者10からパターン駆動を行う旨の指示があったかどうかを判定する。この指示は、たとえばボタン入力によって行うことができ、特定のボタンが押下された場合にはパターン駆動を行う旨の指示があったと判定し、押下されていない場合にはパターン駆動を行う旨の指示がなかったと判定する。
なお、複数の駆動パターンについて、各駆動パターンに個別に対応するボタンが設けられてもよい。
【0071】
パターン駆動を行う旨の指示がなかった場合、制御装置はステップS7の後にステップS8bを実行する。すなわち、この場合、ステップS1〜S7、S8bおよびS9〜S12の処理は実施の形態1と同様のものとなる。
パターン駆動を行う旨の指示があった場合、制御装置はパターン駆動指令送信ステップ(ステップS8c)を実行し、駆動パターンに基づいてロボットハンド120を駆動する。
【0072】
このような構成によれば、教示者10は教示に従う遠隔駆動から自動的なパターン駆動への移行を任意のタイミングでボタンを押下することによって行うことができ、より的確にロボット100を制御することができる。たとえば、ロボットハンド120を対象物130に対して最適な位置関係をもって配置する動作は教示によって行い、その後の把持動作はパターン駆動によって実行することができる。
【0073】
上述の実施の形態1〜6において、以下に示すような変形を施すことができる。
実施の形態1、2および4〜6では、単眼カメラが手21を含む教示画像を1つ取得し、ステレオカメラが手首22を含む教示画像を2つ取得するので、一時点で3つの教示画像が取得されることになるが、教示画像の数は3つでなくともよい。
たとえば、単眼カメラおよびステレオカメラの代わりにただ1つのカメラを用い、このカメラが手21および手首22の双方を含む教示画像を1つ取得してもよい。この場合、この1つの教示画像に基づいて手21の姿勢候補データの選択および手首座標の決定を行うことができる。
また、2つの単眼カメラを用いてもよく、その一方が単眼カメラと同様に手21を含む教示画像を取得し、他方は手首22を含む1つの教示画像を取得してもよい。あるいは、1つのステレオカメラのみを用いてもよく、ステレオカメラによって取得されるステレオ手首画像の一方または双方を手21の教示画像として用いてもよい。
教示画像取得手段として、TOF(Time Of Flight)カメラを用いてもよい。TOFカメラは、被写体までの距離情報を得ることができる。この距離情報をもとに手21の姿勢候補データの選択および手首座標の決定を行うことができる。
また教示画像以外に教示情報取得手段で教示情報を得てもよい。たとえば、各種センサから構成される入力手段より得られる教示情報、記憶装置に記録されている教示画像を用いてもよい。
【0074】
実施の形態1〜6では、図3に示すように、教示画像中のくびれ部分22aに基づいて手首22の位置を決定しているが、手首22の位置はこれとは異なる方法で決定されてもよい。
図11は、手首22の位置を決定する他の方法を示す。図11では、教示者10は手首にリストバンド25を付して教示動作を行う。この場合、制御装置は、教示画像中でリストバンド25に対応する部分を特定し、これに関連して手首22の位置を決定することができる。リストバンド25の色を教示者10の肌の色とは異なる特定の色としておけば、制御装置はその特定の色を検出することによって手首22の位置を決定することができ、位置決定の処理が簡素になるとともに精度が向上する。
【0075】
また、実施の形態4(図8)のように複数の腕が関わる教示作業の場合には、右手首のリストバンドと左手首のリストバンドとを互いに異なる色としておけば、制御装置は第1の色を検出することによって一方の手首の位置を決定することができ、第1の色とは異なる第2の色を検出することによって他方の手首の位置を決定することができる。このように、教示画像中で右手と左手とを区別して認識する処理が簡素になるとともに精度が向上する。
なお、実施の形態4の変形例のように複数人の腕が関わる動作についても、すべての腕について異なる色のリストバンドを用いれば、教示画像中でそれぞれの手首を区別して認識することができる。
【0076】
さらに、教示画像における背景(すなわち教示者10の手21、手首22、腕23および体以外の部分)に対する手21、手首22または腕23の微小な動き、いわゆる「手ぶれ」に基づいて、手21、手首22または腕23を認識し、その位置を決定してもよい。この場合、手21または腕23が認識できれば、これに基づいて手首22の位置を決定することができる。
また、図11のようなリストバンドを用いない場合であっても、色の違い(たとえば教示者10の肌の色、服装、等)に基づいて手首22の位置を決定することができる。
【0077】
実施の形態1〜6では、姿勢候補データ選択ステップ(図2のステップS2a)において、手首の位置に関する情報を用いずに姿勢候補データの選択を行うが、これは手首の位置に関する情報を用いて行ってもよい。この場合、姿勢候補データ選択ステップ(ステップS2a)は、手首位置決定ステップ(ステップS2b)の後に実行されてもよい。また、教示画像において手首22よりも先の部分を手21として認識し、これを姿勢候補データの選択に用いてもよい。
【0078】
実施の形態1〜6では、教示データを作成した直後にその教示データに基づいて実際の駆動を行っているが、駆動は行わなくともよい。たとえば、作成された教示データを単に記録するものであってもよい。この場合、後に記録された教示データを読み出し、これに基づいてロボットを駆動することができる。
【0079】
実施の形態1〜6では、ロボットは3本のロボットハンドの指を備え合計15の制御可能な自由度を持つが、ロボットハンドの指の数および自由度の数はこれに限られない。ロボットハンドの指の数は少なくとも1本あればよく、把持動作等がある場合は2本以上あればよい。また、自由度の数は、少なくとも、ロボットアームの先端の位置を3次元で表す3変数、ロボットアームの先端の向きを3次元で表す3変数、第1指の第1関節の角度を表す1変数、第1指の第2関節の角度を表す2変数、第2指の第1関節の角度を表す1変数、および、第2指の第2関節の角度を表す2変数の、合計12あればよい。さらに、ロボットの自由度がこれより少ない場合には、さらに少ない変数によって教示を行ってもよい。
【0080】
実施の形態1〜6では、手指座標は、手指の各関節の位置を表す座標と、指先の位置を表す座標とを含むが、手指座標の構成はこれに限られない。たとえば、手指座標は手指の各関節の位置を表す座標のみからなってもよく、また、指先の位置を表す座標のみからなってもよい。あるいは、手指に関連するなんらかの位置を表す座標であってもよく、これに対応してロボットハンド関節角度を決定することができるものであればよい。
【0081】
実施の形態1〜6では、ロボット100は3本のロボットハンド120の指を有しており、教示者10の手指のうち親指・人差し指・中指がロボットハンド120の各指に対応したが、教示に用いる3本の指はこれとは異なる組合せであってもよい。また、ロボットハンドの指が2本であるロボットの場合には、たとえば親指および人差し指のみを用いて教示を行うことができ、また、4本または5本のロボットハンドの指を持つロボットの場合には、4本または5本の手指を用いて教示を行うことができる。
【0082】
実施の形態5および6では、駆動パターンはロボットハンド120における関節の運動パターンを表すものであるが、これはロボットアーム110における関節の運動パターンを表すものであってもよく、また、ロボットハンド120およびロボット100の双方の関節の運動パターンを表すものであってもよい。このような構成によれば、腕と指とが連動する動作についてもパターン制御を行うことができる。
なお、駆動パターンがロボットアーム110に関する運動パターンを含む場合には、実施の形態5(図9)のパターン判定ステップ(ステップS8a)において、ステップS4で算出されたロボットハンド関節角度だけでなく、ステップS2で決定された手首座標にも基づいて判定が行われてもよい。
【符号の説明】
【0083】
10 教示者(人間)、21 手、22 手首、23 腕、100〜105 ロボット、110 ロボットアーム、120 ロボットハンド、120a〜120c ロボットハンドの指、200〜202 制御装置、S1 教示画像取得ステップ(教示情報取得ステップ)、S2 手首座標決定ステップ(S2a 姿勢候補データ選択ステップ、S2b 手首位置決定ステップ、S2c 手首方向決定ステップ)、S3 手指座標決定ステップ、S7 ロボットハンド教示データ作成ステップ、S8 ロボットハンド駆動指令送信ステップ(駆動指令送信ステップ)、S8a パターン判定ステップ、S8b 遠隔駆動指令送信ステップ(駆動指令送信ステップ)、S8c パターン駆動指令送信ステップ、S11 ロボットアーム教示データ作成ステップ。

【特許請求の範囲】
【請求項1】
ロボットハンドを備える、少なくとも1台のロボットの動作を制御する方法であって、
人間の手を含む教示情報を取得する、教示情報取得ステップと、
前記教示情報に基づいて、手指に関連する位置を表す手指座標を決定する、手指座標決定ステップと、
前記手指座標に基づいて、前記ロボットハンドの各関節の角度を表すロボットハンド関節角度を算出する、ロボットハンド関節角度算出ステップと、
前記ロボットハンド関節角度算出ステップにおいて算出された前記ロボットハンド関節角度に基づいて、前記ロボットハンドに駆動指令を送信する、駆動指令送信ステップと
を含む、ロボットの動作を制御する方法。
【請求項2】
前記教示情報は教示画像であって、前記教示情報取得ステップは教示画像取得ステップである請求項1に記載のロボットの動作を制御する方法。
【請求項3】
前記ロボットハンドの関節の運動パターンを表す所定の運動パターンデータに基づいて前記ロボットハンドを駆動する、パターン駆動指令送信ステップをさらに含み、
所定の条件が満たされた場合には、前記駆動指令送信ステップの代わりに前記パターン駆動指令送信ステップが実行される
請求項1又は2に記載のロボットの動作を制御する方法。
【請求項4】
前記所定の条件が満たされたかどうかを判定する、パターン判定ステップをさらに含み、
前記パターン判定ステップにおいて、一時点における前記ロボットハンド関節角度に基づいて、または、所定時間にわたる前記ロボットハンド関節角度の変動の状態に基づいて、前記ロボットハンド関節角度と前記所定の運動パターンデータとの関連性が判定される
請求項3に記載のロボットの動作を制御する方法。
【請求項5】
前記ロボットは、さらにロボットアームを備え、
前記教示画像は、さらに人間の手首を含み、
前記方法は、
前記教示画像に基づいて、手首の位置および向きを表す手首座標を決定する、手首座標決定ステップと、
前記手首座標に基づいて前記ロボットアームに駆動指令を送信する、ロボットアーム駆動指令送信ステップと
をさらに含む
請求項2〜4のいずれか一項に記載のロボットの動作を制御する方法。
【請求項6】
前記ロボットは少なくとも2台であり、
前記教示画像は、人間の両腕について、それぞれの手首および手を含み、
前記ロボットハンド関節角度および前記手首座標は、それぞれ両腕について算出または決定される
請求項5に記載のロボットの動作を制御する方法。
【請求項7】
少なくとも1台のロボットと、
請求項1〜6のいずれか一項に記載の方法を実行して前記ロボットを制御する機能を有する制御装置と
を備えるロボットシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2011−110620(P2011−110620A)
【公開日】平成23年6月9日(2011.6.9)
【国際特許分類】
【出願番号】特願2009−266319(P2009−266319)
【出願日】平成21年11月24日(2009.11.24)
【出願人】(000003218)株式会社豊田自動織機 (4,162)
【Fターム(参考)】