ロボットの駆動システム、及び、ロボットの駆動プログラム
【課題】 形状が複雑で自己遮蔽の多い動作物の動作にもとづき、見まね(非接触的方法)によりロボットを駆動するシステムを提供することにある。
【解決手段】 ロボットの複数の画像データと事前収集動作指令とを対応付けて画像対応動作指令記憶手段11に記憶する。ロボットを動作させるために、動作物に所望の動作を行わせ、その際に動作物の画像データを時系列でロボット動作用画像データとして取得する。画像データ特定及び動作指令発生装置14は、ロボット動作用画像データに含まれる画像データに対応する画像データを画像対応動作指令記憶手段11に記憶している複数の画像データから時系列で特定し、特定した画像データに対応する事前収集動作指令を動作指令としてロボットに与えてロボットを駆動する。これによりロボットは、動作物の形状の複雑さや自己遮蔽を解消して見まねにより動作する。
【解決手段】 ロボットの複数の画像データと事前収集動作指令とを対応付けて画像対応動作指令記憶手段11に記憶する。ロボットを動作させるために、動作物に所望の動作を行わせ、その際に動作物の画像データを時系列でロボット動作用画像データとして取得する。画像データ特定及び動作指令発生装置14は、ロボット動作用画像データに含まれる画像データに対応する画像データを画像対応動作指令記憶手段11に記憶している複数の画像データから時系列で特定し、特定した画像データに対応する事前収集動作指令を動作指令としてロボットに与えてロボットを駆動する。これによりロボットは、動作物の形状の複雑さや自己遮蔽を解消して見まねにより動作する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットの駆動システム及びロボットの駆動プログラムに関するものであり、特にロボットを動作させるためにそのロボットに対応する動作物またはその擬似物に所望の動作を行わせ、その動作物または疑似物の画像データと同じ動作をロボットに行わせるのに適したロボットの駆動システム及びロボットの駆動プログラムに関するものである。
【背景技術】
【0002】
例えば、人の動作を見まねで再現できるロボットに関する技術としては、操作者がセンサを付けて歩行したときや、操作者が複数のセンサを備えたデータグローブを手に嵌めて手を動かしたときに、それらのセンサから出力される情報に基いてロボットを駆動している。非特許文献1及び非特許文献2には、この種の技術が開示されている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Y.Kuniyoshi著の“A robotic approach to the foundation of communication and symbols”と題する論文:Proc.of 12th World Congress of Applied Linguistics(AILA’99),94頁,1999年発行
【非特許文献2】T.Inamura,Y.Nakamura,H.Ezaki及びI.Toshima著の“Imitation and primitive symbol acquisition of humanoids by the integrated mimesis loop”と題する論文:Proc. of Intl. Conf.on Robotics and Automation(ICRA 2001),4208頁−4213頁,2001年発行
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記従来の技術では、多くの場合、不良設定性(センサの出力または認識によって正確に判別できない動き)がほとんど存在せず、解が一意に決まり、比較的容易にロボットを駆動することができる。一方,不良設定性が存在するような問題に対しては、常にロボットに対応する動作物またはその擬似物にセンサを装着しておく必要があり、汎用性に欠ける問題がある。
【0005】
本発明の目的は、実際にロボットを駆動する際に、ロボットに対応する動作物またはその擬似物にセンサを装着しておく必要のないロボットの駆動システムを提供することにある。
【0006】
本発明の他の目的は、動作画像データを入力データとしてロボットを駆動することを可能にするロボットの駆動システムを提供することにある。
【0007】
本発明の他の目的は、動作物またはその模擬物の形状が複雑であったり、画像上の自己遮蔽が頻繁に起こる場合でも、安定して高速にロボットを駆動することを可能にするロボットの駆動システムを提供することにある。
【0008】
本発明の更に他の目的は、コンピュータグラフィック画像データを利用してロボットを駆動することが可能なロボットの駆動システムを提供することにある。
【0009】
本発明の別の目的は、入力される動作画像データの特定精度を高めることができるロボットの駆動システムを提供することにある。
【0010】
本発明の他の目的は、入力された動作画像データと事前に記憶した多数の画像データとの照合を迅速に行うことができるロボットの駆動システムを提供することにある。
【0011】
本発明の更に他の目的は、見まね学習により不良設定性を解消してロボットを駆動するシステムを提供することにある。
【課題を解決するための手段】
【0012】
本発明のロボットの駆動システムでは、次のステップ従って、動作指令によりロボットを駆動する。まずロボットに対応する動作物またはその擬似物に所定の動作と同じ動作をさせたときの動作物またはその擬似物の複数の画像データと、これら複数の画像データに対応した動作指令を得るために事前に収集された事前収集動作指令とを対応付けて画像対応動作指令記憶手段に記憶する。事前収集動作指令を事前に収集するための方法は任意である。次に、ロボットを動作させるために、動作物またはその擬似物に所望の動作を行わせ、その際に動作物またはその擬似物の動作画像データを時系列でロボット動作用画像データとして取得する。そしてロボット動作用画像データに含まれる動作画像データに対応する画像データを、画像対応動作指令記憶手段に記憶している複数の画像データから時系列で特定し、特定した画像データに対応する事前収集動作指令を動作指令としてロボットに与える。なお画像対応動作指令記憶手段に記憶する画像データは、撮影した画像に基づいて処理を行って得たその画像に関する特徴を示す特徴量のデータを伴うものまたは特徴量のデータそのものであってもよいのは勿論である。そしてロボット動作用画像データに含まれる動作画像データに対応する画像データの特定方法は、任意である。画像データが特徴量のデータであれば、特徴量の類似度によって、動作画像データに対応する画像データの特定を行うことができる。
【0013】
本発明のロボットの駆動システムにより実際にロボットを動かすと、ロボットに対応する動作物またはその擬似物の画像を得るだけで、センサを使用することなく、その動作物または擬似物と同じ動作を、ロボットに行わせることができる。したがって本発明によれば、画像データを入力データとしてロボットを簡単に駆動することが可能になる。
【0014】
なおロボット動作用画像データに含まれる画像データと画像対応動作指令記憶手段に記憶されている複数の画像データとの対応を、両者の類似度に基づいて判断することができる。その場合には、画像対応動作指令記憶手段に記憶している複数の画像データから動作画像データに対応する画像データを特定する際に、動作画像データの特徴量を基準にして照合用の複数の画像データを選択し、照合用の複数の画像データと動作画像データとの類似度に基づいて動作画像データに対応する画像を特定することが好ましい。
【0015】
本発明のより具体的なロボットの駆動システムは、事前収集動作指令記憶装置と、画像データ記憶装置と、ロボット動作用画像データ記憶装置と、画像データ特定及び動作指令発生装置とを備え、各部の構成を以下のようにする。事前収集動作指令記憶装置は、ロボットに対応する動作物と、動作物に設けられて動作物の動きを検出する複数のセンサと、複数のセンサの出力に基づいて動作指令を発生する動作指令発生装置とを用い、動作物に所定の動作を行わせたときの複数のセンサの出力に基づいて動作指令発生装置が発生する動作指令を事前収集動作指令として記憶する。ここで動作物とは、典型的には人間全体または人間の手や足等の動作する部位等であるが、動作物は人間以外の動物等でもよい。
【0016】
画像データ記憶装置は、動作物に所定の動作を行わせたときの動作物の複数の画像データを取得するか、または動作物またはその擬似物に所定の動作と同じ動作を行わせたときの動作物またはその擬似物の複数の画像データを時系列で取得する。ここで「動作物またはその擬似物」における「動作物」とは事前収集動作指令記憶装置の動作物と同じものでもよいが、同様の形状及び構造を有し(言換えると、同じ場所に同じ関節があり)且つ同じ動作を行い得るものであれば別の動作物であってもよい。また「動作物またはその擬似物」における「その擬似物」とは、その動作物をコンピュータグラフィック技術等の擬似物生成技術を用いて作成したものや、その動作物の人形等である。この場合に得る画像データは、疑似画像データである。特にコンピュータグラフィック技術を用いる場合の疑似物の画像データは、コンピュータグラフィック画像データである。複数の画像データを時系列で取得する方法または手法は、任意であり、単眼カメラ、両眼カメラ、あるいはマルチカメラのいずれにより撮影したものであってもよい。
【0017】
動作物が人間の手である場合、画像データ記憶装置で、複数の画像データに、人間の手に現れる個人差を考慮した画像データを含めておくと、後述する画像データ特定及び動作指令発生装置における画像データの特定精度を高めることができる。ここで個人差が生じる相違要素には、拇指以外の4指の基節位置の曲率、拇指基節の張り出し具合、隣り合う二本の指の開き具合、開いた二本の指の基準角度の違い、拇指の反り具合等がある。このような個人差は、コンピュータグラフィック技術等の擬似物生成技術を用いて画像データ(疑似画像データ)を作成する場合には、前述の相違要素をパラメータとして既に作成した基本となる画像データを変更することにより(骨の長さや関節の可動角度といったような、前述の相違要素を生み出しているパラメータを変更することにより)簡単に得ることができる。したがって個人差を考慮した画像データの作成は、難しいものではなく、簡単である。
【0018】
また画像データ記憶装置で作成する複数の画像データには、複数の画像データの解像度を変えて作成した複数の解像度変更画像データを含めてもよい。これは画像データの解像度を変えたほうが、画像の特徴が現れやすくなるものもあるからである。画像データの解像度は、基本となる画像データがあれば、簡単に変更することは可能である。
【0019】
なお、複数のセンサを備えた動作物の表面を、複数のセンサを含めて被覆物によって覆い、画像データ記憶装置では、事前収集動作指令記憶装置の事前収集動作指令の記憶動作と同時に動作物の複数の画像データを取得するようにしてもよい。被覆物によって動作物を覆うと、動作物の表面の不要な情報を物理的に取り去ることができる。したがって被覆物は、不要な情報をできるだけ排除できる構成を有しているのが好ましい。そのためできるだけ無地(一色で無模様:不要な凹凸がないもの)であることが好ましい。このような被覆物で覆った動作物の画像データからは、その画像データに含まれる特徴(特に輪郭についての特徴)を短い時間で、しかも高精度に取得することができる。
【0020】
画像対応動作指令記憶手段は、画像データ記憶装置で得た複数の画像データに含まれる各画像データと事前収集動作指令とを対応付けて画像データ記憶装置で得た複数の画像データと事前収集動作指令とを記憶する。なお画像対応動作指令記憶手段では、実際に撮影した画像だけでなく、画像データ記憶装置で取得した前の画像データと後の画像データとの間の未作成(未撮影)の画像データをコンピュータグラフィック技術により作成したものも記憶の対象とすることができる。この場合には、未作成の画像データに対応する事前収集動作指令を、前の画像データに対応する事前収集動作指令と後の画像データに対応する事前収集動作指令とに基づいて推定により作成し、これを未作成の画像データと対応付けて記憶することができる。このようにすれば、少ない実際の画像データを用いて、より多くの画像データと事前収集動作指令との対応データを得ることができ、基礎データ(画像データと事前収集動作指令とを対応付けたデータ)の収集が大幅に簡単になる。
【0021】
ロボット動作用画像データ記憶装置は、ロボットを動作させるために、動作物またはその擬似物に所望の動作を行わせ、その際に動作物またはその擬似物の動作画像データを時系列でロボット動作用画像データとして取得する。この場合に、動作物にセンサを装着する必要はない。そして画像データ特定及び動作指令発生装置は、ロボット動作用画像データに含まれる動作画像データに対応する画像データを画像対応動作指令記憶手段に記憶している複数の画像データ(基礎データ)から時系列で特定する。なおロボット動作用画像データに含まれる動作画像データと画像対応動作指令記憶手段に記憶されている複数の画像データとの対応は、動作画像データを分割して得られる複数の分割画像において抽出された特徴量を基準にして照合用の複数の画像データを選択し、照合用の複数の画像データと前記動作画像データとの類似度に基づいて判断することが好ましい。類似度の求め方は任意であり、特定の方法に限定されるものではない。そしてロボット動作用画像データ記憶装置は、特定した画像データに対応する事前収集動作指令を動作指令としてロボットに与える。
【0022】
なお人間型ロボットにおいて不良設定性が多いのは、手である。したがってロボットハンドの駆動に本発明を適用すると、従来よりも簡単にロボットハンドを駆動することができる。なおこの場合、動作物としては人間の手またはその擬似物が用いられることになる。そして事前収集動作指令記憶装置の上記処理では、人間の手に装着するデータグローブを用いる。このデータグローブは、グローブ本体にロボットの手の動作部に対応した人間の手の動作部の動きを検出する位置に複数のセンサが装着された構造を有している。
【0023】
基礎データとなる画像データが多くなるほど(画像データベースのデータ量が多くなるほど)、基礎データとなる画像データの中から、入力である動作画像データに対応した画像データを特定するには時間がかかるようになる。そこでこのような問題を解消するためには、画像対応動作指令記憶手段で、画像データと事前収集動作指令とを対応付けて記憶する際に、次のようにすることができる。まず複数の画像データのそれぞれの特徴量を個々に演算する(特徴量ステップ)。次に複数の画像データのそれぞれの特徴量を主成分分析して、複数の画像データのそれぞれについて主成分ごとの主成分得点を演算し、且つ累積寄与率に基づいて第1主成分から第k主成分までの主成分の数を決定する(主成分決定ステップ)。そして第1主成分から第k主成分までの各主成分ごとに、複数の画像データを主成分得点の大きさを基準にして並べ替えて得たk種類の画像データソース[画像情報の表(テーブル)]を作成して記憶する(記憶ステップ)。すなわち例えば、15,000枚分の画像データがあるとした場合に、10種類の主成分を決定したとすると、15,000枚分の画像データを10種類の主成分ごとに、その主成分得点の大きさを基準にして並べ替えた10種類の画像データソース(15,000×10=150,000枚分画像データに相当)として記憶する。画像データソース内の並べ変えた各画像データは、それぞれ事前収集動作指令と対応付けられて記憶されている。このようにした場合には、画像データ特定及び動作指令発生装置は、入力された動作画像データについても主成分得点を求め、この主成分得点を基準にしてk種類の画像データソースから照合用の複数の画像データをそれぞれ選出する。動作画像データの解像度を変えた複数種類の解像度の異なる動作画像データを作り、この複数種類の解像度の異なる動作画像データについて主成分得点を求め、この主成分得点を基準にしてk種類の画像データソースから照合用の複数の画像データをそれぞれ選出するようにしてもよい。この照合用の複数の画像データは、各画像データソースから各主成分ごとの主成分得点を基準にして所定枚数分ずつ選出される。このようにすると記憶されているすべての画像データと動作画像データとを照合する場合と比べて、照合対象となる画像データの数を少なくすることができるので、照合時間が短くてすむ利点が得られる。そして主成分得点を基準にして動作画像データと照合用の複数の画像データの類似度を判定し、前記類似度に基づいて動作画像データに対応する画像データを特定するようにしてもよい。このように解像度の異なる動作画像データを作成してそれらの因子負荷量も利用して類似度の判定を行うと、画像の特定精度を上げることができる。
【0024】
なお事前収集動作指令記憶装置の上記処理は事前に行う作業であるため、事前収集動作指令記憶装置を切り離して、ロボットを駆動するシステムにおいては、画像データ記憶装置、画像対応動作指令記憶手段、ロボット動作用画像データ記憶装置、並びに、画像データ特定及び動作指令発生装置だけを用いてロボットを駆動することができるのは当然である。
【図面の簡単な説明】
【0025】
【図1】発明者等が開発した本実施の形態で制御の対象とする公知の多指ロボットハンド1の平面図である。
【図2】図1のロボットハンドの内部に配置されたアクチュエータの配置構成を示す図である。
【図3】サイン波入力に対する追従性能を示す図である。
【図4】サインFM変調波入力に対する追従性能を示す図である。
【図5】遠隔指令装置として使用するデータグローブの一例の概略構成を示す図である。
【図6】多指ロボットハンドの制御装置及び本発明の駆動方法を実施する装置の一例の概略構成を示す図である。
【図7】図6の対応関係決定手段の主要部をコンピュータを用いて実現する場合に用いるソフトウエアのアルゴリズムを示すフローチャートである。
【図8】第1乃至第3のステップをコンピュータを用いて実現する場合に用いるソフトウエアのアルゴリズムを示す図である。
【図9】第1乃至第3のステップを説明するたに用いる図である。
【図10】第4及び第5のステップをコンピュータを用いて実現する場合に用いるソフトウエアのアルゴリズムを示す図である。
【図11】高次局所自己相関特徴のための局所パターンの例を示す図である。
【図12】(A)乃至(C)は、人の手に現れる個人差の相違要素を示している。
【図13】コンピュータグラフィック編集ソフトのパラメータを変えて、基節位置の曲率と拇指基節の張り出し具合を変えた場合の画像データの相違を示す図である。
【図14】解像度を変えた3種類の画像データを示す図である。
【図15】(A)及び(B)は、320×240画素から構成された1画面を4×4画面に分割した状態と、8×8画面に分割した状態を示す図である。
【図16】画像データを並べ替えたイメージを示す図である。
【図17】画像データのデータベース作成の手順を示すフローチャートである。
【図18】具体的な照合手順の流れを示すフローチャートである。
【図19】本発明の方法の別の実施の形態を説明するために用いる概念図である。
【図20】データベースを作成するためのアルゴリズムを示すフローチャートである。
【図21】図20のアルゴリズムの詳細を示すフローチャートである。
【図22】輪郭抽出した画像データを示す図である。
【図23】データベース作成に使用する高次局所自己相関特徴のための局所パターンの例を示す図である。
【図24】特徴量の抽出を説明するために用いる図である。
【図25】動作画像データに対応する画像データをデータベースに記憶した画像データから選ぶ際のアルゴリズムを示すフローチャートである。
【図26】図25のアルゴリズムの詳細を示すフローチャートである。
【図27】クラスタリングを説明するために用いる図である。
【発明を実施するための形態】
【0026】
以下図面を参照して本発明の方法の実施の形態について説明する。
【0027】
なお実施の形態について説明する前に、本実施の形態で用いる技術の基礎について説明する。なお実施の形態について説明する前に、本実施の形態で用いる技術の基礎について説明する。両眼あるいは単眼カメラによるヒト手指の3次元形状を推定する場合には、手指の形状が複雑で、しかも自己遮蔽も多く、形状の認識における不良設定性が存在する。そのため、赤外線レンジセンサや複数台のコンピュータを用いた並列計算装置といった周辺機器類を使用しない限り、高速で且つ高精度に推定することはできない(参考文献:E. Ueda, Y. Matsumoto, M. Imai and T. Ogasawara: “Hand pose estimation using multi-viewpoint silhouette images,” Proc. 2001 IEEE/RSJ Intl. Conf. on Intelligent Robots and Systems (IROS'2001), pp.1989-1996, 2001。M. H. Jeong, Y. Kuno, N. Shimada and Y. Shirai: “Recognition of shape-changing hand gestures,” IEICE Transactions Division D, E85-D, 10, pp.1678-1687, 2002。N. Shimada, K. Kimura, Y. Kuno and Y. Shirai: “3-D hand posture estimation by indexing monocular silhouette images,” Proc. 6th Workshop on Frontier of Computer Vision, pp.150-155, 2000)。一方、ヒト型のロボット等の上肢制御には、少なくとも軌道選択、関節角度の組み合わせ、筋張力の組み合わせなどの不良設定問題があることが知られている(Y.Uno,K.Kawato及びR.Suzuki著の“Formation and control of optimal trajectory in human multijoint arm movement−minimum torque−change model”と題する論文:Biological Cybernetics,61,pp.89−101,1989.)。ところが、両方の不良設定性を、人は巧く解決して、複雑精緻な随意運動を実現している。経験則から言えば、自分自身の身体での運動経験、すなわち身体性(R.Pfeifer,“Dynamics,morphology,and materials in the emergence of cognition,”In Advances in Artificial Intelligence,ed.W. Burgard,A.B.Cremers,and T.Christaller,Proc.KI−99,23th Annual German Conference on Artificial Intelligence,1999.)の存在が、認識における不良設定問題の重要な解決になっていると言うこともできる。
【0028】
そこで、発明者らは、認識と制御の両方における不良設定問題を同時に解決できる非常に有効な、場合によっては唯一の方法が、見まね学習であると考えて、人と同じような精度と処理速度で手指動作の再現が可能なロボットハンド・システムの開発を行った。
【0029】
以下、このシステムに基づいて本発明のロボットの駆動方法の実施の形態の幾つかの例を説明する。
【0030】
まず本実施の形態で用いる多指ロボットハンド(ロボット)の機構について説明する。図1は、発明者等が開発した本実施の形態で制御の対象とする公知の多指ロボットハンド1の平面図であり、図2は図1のロボットハンドの内部に配置されたアクチュエータ2(エンコーダ内蔵型超小形モータ)の配置構成を示す図である。なおこの多指ロボットハンドの詳細は、特開2003−117873号公報に示されている。この多指ロボットハンド1の各関節の可動範囲は、親指の内外旋が120°であり、内外転が60°である。そして各5本指の屈曲、伸展は第2関節に連動して行われ、第2関節の可動範囲は112°であり、第1関節は第2関節の可動範囲の7/10倍、第3関節は第2関節の可動範囲の5/7倍となっている。指の開閉は薬指に連動して、人指し指、小指が動き、中指は動かない。また薬指の開閉可動範囲は15°であり、人指し指は13°であり、小指は31°である。これらの構成によって、拇指と小指の接触が可能になり人の手指の可動域を十分に実現できている。
【0031】
各関節のアクチュエータ2には、DCマイクロモータを使用している。各指の第2関節、拇指の内外旋、内外転部位と拇指以外の4指間の開閉(アブダクション)用に掌の内部にそれぞれアクチュエータ2が設置されている。各関節の制御は、図示しない制御用計算機からの指令を受けて動作し、内部にD/Aコンバータや、小型サーボモータ専用ドライバー(マイクロサーボ)が配置された駆動装置3を介して、各アクチュエータ2のモータにかける電圧を変化させることで行う。各アクチュエータ2のモータには、インクリメンタルシャフトエンコーダが内蔵されている。このエンコーダの出力は、軸速度、回転方向の検出の他に、位置制御に使用できる。各関節の角度情報は、ギヤを介して分解能を挙げたエンコーダを介して図示しない制御用計算機にフィードバックされる機構を持っている。エンコーダ自体の分解能は16[Pulse/Revolution]である。指の開閉部のエンコーダには減速比1/400のギアが設けられており、換算分解能は6400[Pulse/Revolution]となる。その他のエンコーダには減速比1/50のギアを設けており、換算分解能は800[Pulse/Revolution]となる。
【0032】
PID制御等を用いて、サイン波、FM変調波の時系列角度変化指令を入力したときの追従結果を図3及び図4に示す。図3はサイン波入力に対する追従性能を示し、図4はサインFM変調波入力に対する追従性能を示す。これらの結果から、ゆっくりとした動作から比較的早い動作、変調波に対しても良好な追従特性が得られることが分かる。
【0033】
図5は、遠隔指令装置として使用するデータグローブ4の一例の概略構成を示す図である。このデータグローブ4には、手袋形の本体の関節部分を中心にして約16箇所の位置に分散して位置センサが備えられた構成を有している。具体的には、Virtual technologies社製のcyberglove(商標)をデータグローブとして用いている。このデータグローブのセンサ5は、拇指を除く各指のMP(中手指節関節),PIP(近位指節間関節)に一つずつ、拇指にはMP、PIP、DIP(遠位節間関節)についており、また各指の間にあるアブダクションを計測するセンサと掌の中央のセンサとで計16ヶ所に設置されている各センサ5はそれぞれ歪曲(ひずみ)度を数値化して30〜40Hzで出力する仕様を有している。掌の中央に設置されているセンサ5は掌全体の歪曲度を計測するものであり、対する人型ロボットハンドにはその機構は備わっていないため、この実施の形態では、この中央のセンサ5は使用しない。
【0034】
人の手指動作を操作者が手に装着したデータグローブによりデータ化し、これを計算機に取り込んで多指型ロボットハンドの制御指令値に変換すれば、データグローブを装着した操作者の手の動作と同様の動作をロボットハンドで実現させることができる。
【0035】
データグローブによるロボットハンドの制御法において、一つの簡単な方法としては、サイバーグローブから出力されるデータを3次元座標位置に変換しロボットハンドの関節と対になる部分の角度情報を時系列で取り出し、それをロボットハンドに実行させて、ロボットハンドを動作させるという手段がある。しかし、この方法を用いるとデータグローブの各センサから出力される16個の値がそれぞれ各関節のX座標、Y座標、Z座標、ピッチ角、ヨー角、ロール角に変換され、一単位時刻あたり100ものデータが生成されることとなり、これからロボットハンドの動作に必要な8関節分のデータを抽出して使用することは計算効率や時間効率を考える面からも最適ではない。
【0036】
人の手指は拇指を除く四指に至って、他の四指の影響を少なからず受ける。その特徴を定量的に表すこともこの制御方法及び装置において重要であると考える。そこでデータグローブで得られるデータからロボットハンド制御用の指令値への変換式に本発明の実施の形態では、重回帰式を用いる。
【0037】
ロボットハンドの各関節に対し重回帰式、すなわちすべてのデータグローブからの出力の重み付き線形和によりそれぞれのロボットハンドの関節を記述するためには、まず重回帰分析を行い偏回帰係数を求める必要がある。そこで重回帰分析用のデータを取得するためにデータグローブ装着者は予め定めた時系列関節角度パターンに従って関節角度指令値を駆動装置3に入力して、ロボットハンドを動作させる。なお駆動装置3に指令を与える制御装置は、ロボットハンド1にあらかじめ重回帰分析に有効な動作を行わせる予め定めた時系列関節角度パターンの関節角度指令値を記憶している。そしてこのロボットハンドの動作に従い即ち倣って、データグローブを装着した操作者には、データグローブを装着した手において、指の屈伸、アブダクション等の動作を事前に行ってもらう。本発明では、このようにして計測したデータグローブ4の出力と計測に用いたロボットハンドの時系列関節角度パターンとを重回帰分析にかけ、各関節ごとの偏回帰係数を導き出す。下記の式は本実施の形態で用いる重回帰式である。
【0038】
【数1】
【0039】
ここで、目的変数θiはロボットハンド1での制御対象となる関節各度の指令値、説明変数xinはデータグローブ4からの出力値、ainは偏回帰係数、a0nは残差である。この重回帰式で出される値はデータグローブ4での各指の関節角度の値であるので、この値をロボットハンドの角度指令値として制御を行えばよいことになる。
【0040】
図6には、事前収集動作指令を得る際に用いる多指ロボットハンドの制御装置と本発明のロボットの駆動方法を用いてロボットハンドを駆動する装置の構成の一例の概略構成を示してある。図6に示した動作指令を事前に収集する際に用いる制御装置では、関節角度を指示する関節角度指令値yに応じて動作するアクチュエータを備えたk個(kは正の整数)の関節を有する多指ロボットハンド1を制御するものとする。そしてデータグローブ4は、操作者の手に装着されて操作者の手の動きに応じてn個(nは正の整数)の出力信号xnを出力する遠隔指令装置を構成している。この多指ロボットハンドの制御装置は、対応関係決定手段6と制御信号発生手段7とを備えている。対応関係決定手段6は、k個の関節のためのk個の関節角度指令値yそれぞれについて、各関節角度指令値yとn個の出力信号xnとの間の対応関係を予め定めるように構成されている。具体的には、対応関係決定手段6は、時系列関節角度パターン記憶手段61と、サンプリング手段62と、偏回帰係数導出手段63と、重回帰式決定手段64とを備えている。
【0041】
サンプリング手段63は、k個の関節(実際にはアクチュエータ2)にそれぞれ予め定めた時系列関節角度パターン記憶手段61に記憶した時系列関節角度パターンに従って関節角度指令値を入力して多指ロボットハンド1を動作させた状態において、多指ロボットハンド1の動きに倣うように操作者がデータグローブ4を操作したときにn個の出力信号xnを時系列でm回(mはnより大きい正の整数)サンプリングする。サンプリング手段62はサンプリングを開始する前に時系列関節角度パターン記憶手段61に指令を与え、時系列関節角度パターン記憶手段61は駆動装置3に予め定めた関節角度指令値を出力する。なお時系列関節角度パターンは、N次元空間をまんべんなく動くような任意の関数指令を多指ロボットハンドの関節(アクチュエータ)に与えるように構成するのが好ましい。駆動手段3は、これを受けて多指ロボットハンド1を動作させる。
【0042】
偏回帰係数導出手段63は、時系列関節角度パターン記憶手段61に記憶した時系列関節角度パターンと、サンプリング手段62から出力されるm回のサンプリングにより求めたm組のn個の出力信号xnとに基づいて重回帰分析を行い、k個の関節のそれぞれについて偏回帰係数を導出する。
【0043】
重回帰式決定手段64、偏回帰係数導出手段63が定めたk個の関節毎の偏回帰係数を用いて、k個の関節毎の関節角度指令値yとn個の出力信号xnとの間の対応関係を定めるk個の重回帰式を決定する。
【0044】
そして制御信号発生手段7は、対応関係決定手段6の重回帰式決定手段64が求めた対応関係とn個の出力信号xnとに基づいて、k個の関節角度指令値yを求め、k個の関節角度指令値yを示す制御信号(動作指令)を多指ロボットハンドのk個の関節を駆動するための駆動装置3に出力するように構成されている。この制御信号発生手段7は、重回帰式決定手段64が求めたk個の重回帰式を対応関係として用い、n個の出力信号xnを入力としてk個の関節角度指令値yを求める。これらk個の関節角度指令値yが動作指令となる。なおデータグローブ4の動きに応じて制御指令発生手段7からは処理速度に応じた時間間隔で動作指令が出力される。なお図6の例においては、対応関係決定手段6及び制御信号発生手段7により動作物(操作者の手)に所定の動作を行わせたときの複数のセンサの出力に基づいて動作指令を発生する動作指令発生装置が構成されている。
【0045】
重回帰式決定手段64で決定するデータグローブ4の出力と多指ロボットハンド1の関節角度との対応を示す重回帰式は以下のようの形で記述することもできる。
【0046】
【数2】
【0047】
上記式においてHANDは、多指ロボットハンド関節値,aは偏回帰係数,GLOVE[n]はn自由度のデータグローブ出力、iは多指ロボットハンドの関節数である。なお上記式を用いる場合には、行が列より大きくなり優決定となる。そのため特異値分解を用いて最適解としての偏回帰係数を求めることが好ましい。
【0048】
図7は、図6の対応関係決定手段6の主要部をコンピュータを用いて実現する場合に用いるソフトウエアのアルゴリズムを示すフローチャートである。まずステップST1では、データグローブ4と時系列関節角度パターンのデータ対を獲得する。即ち多指ロボットハンド1の各関節可動域をまんべんなく動かすような関数を多指ロボットハンド1に与えて駆動し、多指ロボットハンド1に合わせて操作者の手指も同じ動作を行う。多指ロボットハンド1のある関節角度または関節角度指令値をyとし、n個のデータグローブ出力をanとすると,次式のように時刻1〜mまでの時系列データが得られる。
【0049】
【数3】
【0050】
ただし上記式において、m>nである。また前提として、aにはシステム雑音,量子化誤差などの雑音が含まれるものとする。
【0051】
次にステップST2進んで、データ対をベクトルと行列の形式で表現すると、y=[H]xのように表現することができる。ただしこの式におけるy、x及び[H]は下記の通りである。
【0052】
【数4】
【0053】
次にステップST3で、最小二乗法による解x−の推定を開始する。この推定の過程において、偏回帰係数が求められる。最小二乗法に用いる式は以下の式である。
【0054】
【数5】
【0055】
次にステップST4から、ヤコビ法による([H]t[H])の計算を開始する。すなわち直交行列Pを使って([H]t[H])(=[A])を簡単な形の類似行列[B]に変換する。言い換えれば、すなわち,[P]−1[A][P]=[B]を計算する。
【0056】
次にステップST5で、行列[A]の非対角要素のうちの絶対値最大のものakl(=alk)を選ぶ。そして次にステップST6において、akk=all=cosθ、akl=−sinθ、alk=sinθとする単位行列[P]を作る。
【0057】
次にステップST7へと進んでcとθの値を決定する。θは、下記の行列により求める。
【0058】
【数6】
【0059】
ただし、上記式においてk<lである。
【0060】
次にステップST8へと進んで、[P]t[A][P]を計算して新しい[A]とする。次にステップST9で、行列[P]の積から固有ベクトルVを下記の式で求める。
【0061】
【数7】
【0062】
ただし、上記式において[P]t(N)はN回目の変換に用いた行列[P]である。
【0063】
次にステップST10へと進み、[A]のどの非対角要素も収束条件<0.0001なら終了し、そうでなければステップST5へと戻る。ここで行列[B]の対角要素が固有値となる。
【0064】
次にステップST11へと進んで解に含まれる雑音を抑制する。ステップST12では、固有値(λ1,λ2,…λn)を(1/(λ1+υ),1/(λ2+υ),…1/(λn+υ))と置き換えて逆行列([H]t[H])-1を求める。ただし([H]t[H])-1=[U][A]-1[U]tである。またベクトルuiは[H]t[H]の固有ベクトルである。また[U]=[u1,u2,…uN]である。更に[A]-1は下記のように表される。
【0065】
【数8】
【0066】
ただしυ=σn2/σx2である。ここで、雑音成分n−をy=[H]xの右辺に加え、n−=y−[H]xと変形することでσn2を計算することができる。またσx2はyから直接、計算が可能である。そしてステップST13で最小二乗法による解x−の推定を終了する。
【0067】
上記フローチャートのアルゴリズムに従えば、偏回帰係数を導出するために最小二乗法と特異値分解とを用いて重回帰分析を行うことになる。なお上記ステップST4〜ST10までが特異値分解を実施しているステップである。
【0068】
図6と図8乃至図10を用いて、本発明の方法によりロボットハンドを駆動する実施の形態の一例の説明をする。本発明の実施の形態の第1のステップでは、事前収集動作指令記憶装置8が、データグローブ4を嵌めた手(動作物)に所定の動作を行わせたときのデータグローブ4の複数のセンサ5の出力に基づいて動作指令発生装置(6,7)が発生する動作指令を事前収集動作指令として記憶する。この記憶動作をコンピュータを用いて実現する場合に用いるソフトウエアのアルゴリズムを図8に示す。
【0069】
第2のステップでは、図9に示すように、単眼カメラまたは両眼カメラ等からなるカメラ9によりデータグローブ4を手に装着して事前収集動作指令を取得するときと同じ動作(所定の動作)を人の手Hで行う。そしてこのときの手(動作物)Hの画像データを時系列で取得する。なおこの画像データの取得は、事前収集動作指令を取得するのと同時に行ってもよいが、後から行ってもよい。図9の例では、手Hで「グー」の形を作った状態の画像データをとり、この画像データに基づいてコンピュータグラフィック技術で手の擬似物の画像データPD1を作成する。そして手Hで「パー」の形を作った状態の画像データをとり、この画像データに基づいてコンピュータグラフィック技術で手の擬似物の画像データPDnを作成する。「グー」から「パー」まで変化するまでの間の過程の画像を実際に撮影してもよいが、図9のようにその間の画像をコンピュータグラフィック技術で作成してもよい。このようにして作成した画像データは、画像データ記憶装置10に記憶される。
【0070】
第3のステップでは、第2のステップで得た複数の画像データに含まれる各画像データと事前収集動作指令記憶装置8に記憶された事前収集動作指令とを対応付けて画像対応動作指令記憶手段11に記憶する。なお本例では、画像対応動作指令記憶手段11は、実際に撮影した画像だけでなく、時系列で取得した前の画像データPD1と後の画像データPDnとの間の未作成の画像データをコンピュータグラフィック技術により作成する場合には、作成した画像データに対応する事前収集動作指令を前の画像データPD1に対応する事前収集動作指令と後の画像データPDnに対応する事前収集動作指令とに基づいて推定により作成して未作成の画像データと対応付けて記憶することができる。このようにすれば、少ない画像データによりより多くの画像データと事前収集動作指令との対応データを得ることができ、基礎データ(画像データと事前収集動作指令とを対応付けたデータ)の収集が大幅に簡単になる。
【0071】
第1から第3までのステップは、ロボットハンドを駆動するための事前作業として実施される。なお自由度ごとに5度刻みの精度の関節角度制御をロボットハンドの駆動において実現しようとすると、1億個(20の7乗)程度の数の画像が必要となるが、上述のようにコンピュータグラフィック技術を用いれば、基礎データの収集は簡単になる。この場合に用いることができるCG編集ソフトウエアとしては「Poser 5(Curious Labs Incorporated製)」を使用することができる。このソフトウエアを用いれば、データグローブ出力から得られた関節データから、撮像した手指2次元画像と類似した理想的な手指CG画像を補間生成することができる。そして補間生成した画像データに対応する事前収集動作指令は、関節角度の線形補間により生成することができる。なお、画像1枚あたりの手指CGのファイルサイズは5kB程度である。
【0072】
第4のステップ及び第5のステップは、実際にロボットハンドを駆動する際のステップである。第4のステップでは、ロボットハンドを動作させるために、手で所望の動作を行い。図6に示すように、その際の手の画像データをカメラ12を用いて時系列でロボット動作用画像データとして取得する。このロボット動作用画像データ(動作画像データ)は、ロボット動作用画像データ記憶装置13に記憶される。そして第5のステップでは、ロボット動作用画像データに含まれる動作画像データに対応する画像データを画像対応動作指令記憶手段11に記憶している複数の画像データから時系列で特定する。この特定作業は、画像データ特定及び動作指令発生装置14で行う。この例では、ロボット動作用画像データに含まれる動作画像データと画像対応動作指令記憶手段に記憶されている複数の画像データとの対応は、両者の類似度に基づいて判断する。類似度の求め方は任意である。そして第5のステップでは、特定した画像データに対応する事前収集動作指令を動作指令として駆動装置3に与え、駆動装置3の出力で多指ロボットハンドを駆動する。第4及び第5のステップの主要部をコンピュータ用いて実現する場合のソフトウエアのアルゴリズムは図10に示す通りである。
【0073】
画像データ特定及び動作指令発生装置14で行う画像データの特定の際に特徴量を抽出する技術として、例えば、高次局所自己相関関数を用いる特徴量抽出技術を利用することができる。高次局所自己相関関数については、1993年発行の電総研研究報告,j957の126頁乃至140に「柔らかな情報処理のための統計的手法の応用に関する研究」と題する論文に詳しく説明されている。手指2次元画像の特徴抽出には,高次局所自己相関関数を用いた。画面内の対象画像をf(r)とすると、N次自己相関関数は変位方向(a1,a2,…an)に対して次式のように定義される。
【0074】
【数9】
【0075】
実証試験では、高次自己相関係数の次数Nを2とし、また変位方向を参照点rの周りの局所的な3×3画素の領域に限定した。これより、平行移動による等価な特徴を除くと特徴Mの数は図11に示す25個になる。図11中の黒の四角は、局所パターンの対応する画素の位置に対応する。各特徴の計算は、局所パターンの対応する画素の値の積を全画素に対して足し合わせることで得られる。
【0076】
上記の方法によれば、実際にロボットハンド1を動かすために、ロボットハンド1に対応する手の画像を得るだけで、センサを使用することなく、手の動きと同じ動作を、見まねにより不良設定性を解消してロボットハンドに動作させることができる。
【0077】
上記実施の形態では、第3のステップで実際に人の手の画像を撮影しているが、すべてコンピュータグラフィック技術により手の画像データ(手の擬似物の画像データ)を作成してもよいのは勿論である。
【0078】
次に上記実施の形態を改善または改良する手法について詳しく説明する。
【0079】
[個人差の考慮]
まず前述の第2のステップにおいて、複数の画像データ(コンピュータグラフィックの画像データに、人間の手に現れる個人差を考慮した画像データを含めておくと、第5のステップにおける画像データの特定精度を高めることができる。図12(A)乃至(C)は、人の手に現れる個人差の相違要素を示している。図12(A)は手をグーの形に握った状態を示している。拇指以外の4指の基節位置の曲率に個人差が現れる。すなわち4指の基節位置が直線的になる手もあれば、湾曲した形状になる手もある。また拇指基節の張り出し具合にも顕著な個人差が現れる。これらの個人差は、2つの関節間の長さの相違によって生じる。また図12(B)は手をチョキの形にした場合の状態を示している。この状態においては、二本の指の開き具合と開いた二本の指の基準角度の違いに個人差が現れる。更に図12(C)は手をパーの形に開いた状態を示している。この状態では、拇指と人差し指との間の開き具合と拇指の反り具合に個人差が大きく現れる。このような個人差は、コンピュータグラフィック技術を用いて手の形の画像データ(疑似画像データ)を作成する場合に、相違要素をパラメータとして既に作成した基本となる画像データを変更することにより簡単に得ることができる。図13は、コンピュータグラフィック編集ソフトのパラメータを変えて、基節位置の曲率と拇指基節の張り出し具合を変えた場合の画像データの相違を示す図である。この2つの相違要素を変更するだけでも、かなり異なった個人差の画像データを得ることができる。なおこれらの画像データを作成する際に、新たに作成する未作成の画像データに対応する事前収集動作指令を、前の画像データに対応する事前収集動作指令と後の画像データに対応する事前収集動作指令とに基づいて推定により作成し、これを未作成の画像データと対応付けて記憶することができるのは勿論である。
【0080】
[解像度の変更]
次に第2のステップで作成する複数の画像データには、複数の画像データの解像度を変えて作成した複数の解像度変更画像データを含めてもよい。これは画像データの解像度を変えたほうが、画像の特徴が現れやすくなるものもあるからである。画像データの解像度は、基本となる画像データがあれば、簡単に変更することは可能である。図14は解像度を変えた3種類の画像データを示している。左端の画像は、原画像であり、中央の画像は、縦2画素×横2画素を1画素にして解像度を下げた状態の画像であり、右端の画像は、縦4画素×横4画素を1画素として更に解像度を下げた画像である。例えば、原画像が15,000枚あるとすると、解像度を2段階変更することにより、45,000種類の画像データが得られることになる。手をグーの形に握っている状態では、指が重なり合うため、解像度が高いほうが特徴量を正確に把握することができる。しかし手をチョキの形にしている状態では、立っている二本の指の部分から得られる画像の特徴量が重要であるが、その他の部分の特徴量はかえって誤った判断をする原因となる。そこで解像度の異なる画像データを予め基礎データとして用意しておけば、照合の精度は高くなる。
【0081】
[各画像データにおける特徴量の計算]
先に、画像データの特定のために、高次局所自己相関関数を用いる特徴量抽出技術を用いる点について説明した。従来の技術では、画像全体について特徴量を抽出しているが、精度を高めるために画像をいくつかの分割画像に分けて分割画像単位で特徴量を抽出することが好ましい。これを実現するためには、まず画像データにおける手の重心を推定する。そのためには、コンピュータグラフィックの画像データを二値化して、白黒画像とする。そしてこの白黒画像について、下記式を用いてX軸方向、Y軸方向のそれぞれで中心を求める。
【0082】
【数10】
【0083】
上記式においては、xg、ygは重心のX、Y座標であり、xi,yiは白画素のX、Y座標であり、kは白画素の数である。
【0084】
このようにして画像の中心を求めた後は、この重心をもとに各画像を画面分割する。図15(A)及び(B)は、320×240画素から構成された1画面を4×4画面に分割した状態と、8×8画面に分割した状態を示している。なお上記画素数であれば、16×16画面に分割することも可能である。
【0085】
このようにして分割した各分割画像について、特徴量の計算を行う。即ち画面分割ごとの高次局所自己相関パターンを算出する。先に説明した高次局所自己相関パターンの求め方に従って画面分割ごとの高次局所自己相関パターンを算出すればよい。下記の式は高次局所自己相関パターンの算出に用いる式である。
【0086】
【数11】
【0087】
上記式において、xNはN次元の参照点rの周りの局所的な相関関数である。したがってNは2である。(a1,a2,…an)は、N次自己相関関数の変位方向であり、f(r)は画面内の対象画像の画素位置rの輝度値である。図12に示した局所パターンを用いれば25パターンとなるが、重複を認めれば35パターンを使用してもよい。
【0088】
[特徴量低減]
上記のように特徴量を計算した場合、画像データが多くなると処理すべき特徴量が多くなりすぎる。例えば、図14に示したように3つの解像度の画像データを利用する場合の特徴量は、特徴量=解像度3×画面分割64×高次局所自己相関パターン25=4800(次元)となる。そこで公知の主成分分析技術を利用して特徴量を低減することが好ましい。まず主成分分析による各主成分ごとの因子負荷量を算出する必要がある。下記の式は、主成分分析で用いる主成分得点の演算式である。
【0089】
【数12】
【0090】
上記式において、Zkpは第k主成分におけるデータpの主成分得点であり、xplmnはデータpの第l解像度(lはアルファベットのLの小文字)の第m画面の第n特徴量であり、aklmnは第k主成分の第l解像度の第m画面の第n特徴量の因子負荷量であり、divは解像度の数(たとえば3)で有り、pnumは画面分割数(たとえば8×8)である。
【0091】
ここで因子負荷量aklmnを算出して上記式に代入すれば、第k主成分におけるデータpの主成分得点を求めることができる。なお因子負荷量aklmnの求め方には、主因子法、最小2乗法、最尤法などがある。主因子法で因子負荷量を求める場合には、次のようににする。
【0092】
(1)各変量の分散を1に標準化して,標本相関行列C=(rjk)を求める。
【0093】
(2)xjと残りの変量との相関係数のなかの最大値rmax(j)(ただしj!=k)を、Cの対角要素に代入してC*を作る。
【0094】
(3)C*の固有値問題を解き、固有値λ1,λ2,・・・,λpと、それに対応する固有ベクトルc1,c2,・・・,cpを求める。この固有ベクトルが因子負荷量に相当する。
【0095】
次に特徴量低減のために、各主成分の寄与率を求める。ここで寄与率とは、各主成分が元の情報をどれだけ説明しているかを表す係数であり、下記のように表すことができる。
【0096】
【数13】
【0097】
ここで,Ckは第k主成分の寄与率であり、bklmnは主成分得点Zkpとxplmnの相関係数で,次式のように定義される。
【0098】
【数14】
【0099】
aklmnは第k主成分の第l解像度の第m画面の第n特徴量の因子負荷量であり、λkはk番目に大きい相関行列の固有値である。
【0100】
次に累積寄与率に基づいた主成分の数の決定を行う。前述の寄与率Ckは、各主成分が元の情報をどれだけ説明しているかを表す係数であり、以下の関係式が成り立つ。
【0101】
【数15】
【0102】
そこで,累積寄与率95%程度を目処に,特徴量低減で使用する主成分の数を下記の式で決定する。
【0103】
【数16】
【0104】
本実施の形態では、累積寄与率が約97%となる第10主成分までを用いることにする。
【0105】
次に主成分得点に応じたデータの並び替えを行う。第1から第10主成分までの各主成分ごとに,主成分得点の大きさに応じて全データを並べ替え(ソート)する。この並べ替えによって10種類の画像データソースが作成されることになる。図16は、並べ替えのイメージを示している。このような並べ替えによって、オリジナルの画像数が15,000枚とすれば、15,000×10=150,000枚の画像データが記憶されることになる。
【0106】
なお未知のヒト手指画像が入力された場合に、効率よく類似画像を検索するため、範囲を限定した検索対象数をあらかじめ決めておくのが好ましい。具体的には,各主成分において未知画像と同じか,最も近い主成分得点Zkpを持つデータと、各主成分の寄与率に応じた数の前後データを検索対象とする。各主成分の候補数は,以下の通りである。
【0107】
【数17】
【0108】
ここで,dcpは第p主成分(p=1,2,・・・・10)の推定候補数である。
【0109】
Ccは推定候補数の総和で,あらかじめ決めておくものである。
【0110】
そしてλpを含む分数式は、第10主成分中のp成分の寄与率である。
【0111】
上記の式によって各主成分の寄与率に応じた数の前後データが検索対象となることが決まる。例えば、図16を参照して説明すると、照合対象となる動作画像データの第1主成分の主成分得点Zkpが13点であるとすると、第1主成分の主成分得点の得点順に並べ替えた基礎となる画像データのうち主成分得点が13点に近い画像データを中心に含んで、前述の推定候補数の画像データが照合用画像データとして抽出される。
【0112】
上記の改良点を含めた画像データのデータベース作成の手順(実施の形態の第1のステップから第3のステップに相当)を図17に示す。
【0113】
次に上記のようにして作成したデータベースを利用して、本発明の第4及び第5のステップ(照合処理)を主成分分析技術を用いて処理する処理手順について説明する。図18は、具体的な照合手順の流れを示している。まず手の実画像の撮像を得る。前述の特徴量の低減技術を用いると、ビデオレート以上の速さの処理速度が出せるので、撮像には高速度カメラを使用することができる。不必要な情報を除去するために、撮像からは背景を除去する。そのためには(手映像+背景映像)の撮像から(背景映像)を差し引く処理を行う。
【0114】
次に撮影した画像(動作画像データ)の特徴量を計算する。撮影したときの解像度そのままで特徴量を計算してもよいが、図18の例では、撮像した動作画像データの解像度を変えて3種類(複数種類)の解像度の異なる動作画像データを得る。すなわち単純に見ると同じ動作画像データについて3倍のデータを作成する。そしてこれら解像度を変えた3種類の動作画像データ(手画像のデータ)について、前述のデータベースの作成時と同様に、手の画像の重心推定を行い、画面を分割する。この場合も、画面を16分割、64分割または246分割する。分割数は任意である。しかにあまり分割数を多くしても精度が上がらないことが確認されているので、16分割または64分割程度の分割数が好ましい。
【0115】
次に各画面分割ごとの高次局所自己相関パターンを算出する。このときの高次局所自己相関パターンの算出も前述のデータベースを作成する際に用いた高次局所自己相関パターンの算出手法と同じである。
【0116】
次に算出した高次局所自己相関パターンに基づいて主成分分析により主成分得点の計算を行う。この主成分得点の計算も前述のデータベース作成の際の主成分得点の計算方法と同じ計算方法を採用する。
【0117】
次にデータベースに記憶されている基礎となる複数の画像データとの照合を行う。照合の候補となる照合用の複数の画像データを、計算により求めた主成分得点を基準にしてデータベースから選出する。なお各主成分からの候補数は、前述の[数17]の式により、あらかじめ決められている。そこでそれぞれの主成分において最も近い主成分得点Zkpを持つ画像データと、この画像データの前後の画像データを各主成分の寄与率に応じて予め定めた候補数の数分選出して照合用の画像データとする。データベースに記憶されている10種類の主成分を基準にして並べ替えられた10種類の画像データソースから、それぞれ予め定められた候補数の画像データが選出される。仮に各主成分について予め候補数が20と定められているものとすると、20×10=200枚の画像データがデータベースから選出されることになる。これらの画像データ中には重複しているものがあるのは勿論である。
【0118】
次に類似度の計算を行う。具体的には、入力画像(動作画像データ)と候補となった複数枚の照合用の画像データ(候補CGハンド画像)との間で、次式により、ユークリッド距離Erの計算を行う。
【0119】
【数18】
【0120】
ここで、fi(x)は特徴量から算出した第i主成分の主成分得点であり、xrは候補rの高次局所自己相関関数による特徴量であり、xtは時刻tにおける高次局所自己相関関数による特徴量であり、Erを最小にするデータpを検索画像とし,データpが持つ関節角度データを推定角度とする。
【0121】
時刻tと時刻t−1の検索結果が許容される関節角度の範囲であれば、時刻tでの探索を終了する。そして時刻t−1から大幅に異なる関節角度が選ばれている場合は、ユークリッド距離Erが次に小さい次候補を選び,許容範囲かどうかを下記の式で計算する。
【0122】
【数19】
【0123】
ここで,Apは許容値であり、iはデータグローブの関節番号である(本例ではi=24)。
【0124】
またangi(t)は時刻tにおけるi番目の関節角度データである。
【0125】
許容値が許容は範囲内であれば、その画像データが動作画像データに対応するものと特定される。
【0126】
次に、本発明の方法の別の実施の形態について説明する。この実施の形態では、前述の実施の形態とは異なって、図19に示すように、データグローブを嵌めた手の上にさらに無地(無模様:一色)の手袋(被覆物)を嵌めて、前述の第1のステップと第2のステップとを同時に実施する。図19において、下側の図がデータグローブを嵌めた手であり、上側の図がデータグローブを嵌めた手の上に手袋を嵌めた図である。図20は、事前にデータベースを作成する際の手順を示すフローチャートであり、図21は図20のフローチャートの詳細を示すフローチャートである。
【0127】
まずビデオカメラ109で、手袋を嵌めた状態の手を撮影する。本実施の形態では、高速ビデオカメラ109で撮影した手画像データおよびデータグローブから得た角度データを用いてデータベースを構築する。そのために画像データと角度データとを組にして取得する。本実施の形態では、モノクロ高速度カメラ(MEGAPLUS社製、ES310/T)を使い、解像度を320*240画素として、手指が画面内に十分な大きさで映っている状態を想定する。また角度データの測定には、Virtual Technologies社製の「CyberGlove」(商標)と呼ばれるデータグローブを用いた。そして手袋は、白一色で無模様のものを用いた。手袋をデータグローブの上に嵌めることにより、データグローブ固有の画像特徴(センサの形状やグローブの形状)が出るのを防止している。前の実施の形態と異なって、白手袋を撮影すると、ヒトの手とは色が違い、画像としても違うものとなる。しかしながら、手袋を嵌めた手の画像データであっても、後に説明するように、特徴量化により一般の手画像として扱うことができる。なおデータベース作成に際しては、背景画像が影響を及ぼさないようにするために、背面に無模様一色のスクリーンを用いて撮影を行う。そして連続する複数の画像データと一緒に、データグローブから取得した手指角度データを組にして1次データベースを作成する。必要十分な情報を得るために、手を連続的に動かして必要な画像データと角度データを同時に取得して、保存する。
【0128】
本実施の形態では、1次データベースの画像データを、実際に撮影した手画像の推定に必要な特徴量へと変換する画像処理を行なう。この画像処理のために背景除去、解像度変更、エッジ抽出、輪郭抽出(特徴量抽出)を行なう。
【0129】
まず画像情報から背景除去を行う。あらかじめ取得しておいた背景画像を用いて対象画像との差分を取る。その差分が閾値以上の場合は対象画像の画素を使い、以下ならば0とする。
【0130】
次に背景を除去した画像の解像度を変更する。今回取得した画像は320×240の画素値を持つ画像である。しかしこれをそのまま用いて各種画像処理を施して推定処理をするには、計算に時間がかかる。また人間が推定する際には、本実施の形態で用いた画像のサイズより小さくとも推定が可能である。そこで本実施の形態では、解像度を、320×240の画素値から64×64のサイズに変更する。解像度変更後の画素値は次式により得られる。
【0131】
【数20】
【0132】
ここでgr(i、j)は解像度変更後のi行j列番目の画素値である。go(i、j)は、解像度変更前のi行j列番目の画素値である。この式では、縦についても320で計算しているが、これは変更後の画素値を64×64にしているため縦横比を合わせるためである。またk、lについてはi×320/64から(i+1)×320/64−1まで計算し、rはkの個数×lの個数とする。
【0133】
以上の操作で得られた解像度変更画像を用いてエッジ抽出を行なう。この作業で推定に必要な特徴を抜き出す。具体的にはソーベルフィルタで解像度変更画像をフィルタ処理する。その後、この画像の最外周のみを二値化することでエッジを抽出する。
【0134】
ソーベルフィルタによる処理は、次式で表現できる。
【0135】
【数21】
【0136】
ここでfr(i、j)は下記の式で表すことができる。
【0137】
【数22】
【0138】
上記式において、fi(i、j)は処理前の横i番目、縦j番目の画素を示す。fsが処理後の最終的な値となる。
【0139】
ここでの画像の最外周の二値化は、輪郭抽出で輪郭が途切れないように、比較的低い閾値で二値化することを意味する。この最後の画像処理として、エッジ抽出で得られた二値化画像上を走査することで輪郭抽出を行う。前段階のエッジ抽出により得た画像を輪郭として使用しない理由として、環境光の変化を上げることができる。実際の推定時とデータベース作成時とでは、環境光や人の肌の色等に違いがある。ましてやデータベース作成時には白手袋を使用しているため、エッジ抽出を行っても、エッジの値や幅などが実際の画像のエッジとは異なってくる。その結果、データベースの画像データと実際の画像データとを比較するとき(推定時)とで、両者のエッジには大幅な相違が生じる可能性がある。そこで輪郭抽出を行って、エッジの幅や値を一定にする。輪郭抽出は、データベースから得られる情報と推定時に得られる情報との差を少なくし、環境の影響などを排除することで、推定時の誤差を減少させるために採用する。図22は、エッジ抽出後に輪郭抽出を行って得た解像度変更後の画像である。
【0140】
なお最外周のみ二値化するための輪郭抽出アルゴリズムでは、画像を上から走査して行き、最初の127の点を始点とした。始点から左回りに近傍画素を探索して行き、127の点があればそこへ移動し、値を255に書き換える。移動後は前回の位置を参考にして探索開始地点を8パターンに分けて探索を継続する。始点に再び戻った時点で輪郭を抽出したと判断し、探索を終了させる。最後に残りの点は輪郭ではないので127の点は全て0とする。
【0141】
次に輪郭抽出を行った画像データの特徴量化を実施する。本実施の形態では、Otsu等(N.Otsu and T.Kurita,“A new scheme for practical, flexible and intelligent vision systems,”Proc.IAPR.Workshop on Computer Vision,pp.431−435,1998.)が提案している高次局所自己相関関数を特徴量化に使用した。高次局所自己相関特徴は、画像の認識や計測のために有効な特徴であり、下記の式で定義される高次相関関数について、参照点とその近傍についての計算をしたものである。
【0142】
【数23】
【0143】
上記式でxNはN次元でのr点近傍の相関関数である。一般に自然画像を処理対象とする場合には、対象点回りの画素が重要になるため、係数Nを2次までとする。また、平行移動すると等価なものになるものを除くと、図23に示す25の特徴量で表現できる。ただしNo.1からNo.5までは、No.6以降の特徴量に比べスケールが小さいので、スケールを合わせる必要がある。No.2〜No.5までは、参照点の画素をさらにかけあわせ、No.1は参照点の画素の2乗をかけることで他の特徴量にスケールを一致させる。
【0144】
本実施の形態では、図24に示すように、画像の画面を縦8分割、横8分割にした。そして、計64分割した分割画面に対して、それぞれ画素全てを参照点として、高次局所自己相関関数によって25の特徴量に次元低減を行なった。すなわち、全体の画像で考えれば、25×画面分割数の特徴量により、その全体画像の特徴量化を行うことができる。
【0145】
このようにして1つの画像データを特徴量化した画像データとデータグローブからの角度データ(事前収集動作指令に対応)を組みにした特徴データを画像対応動作指令記憶手段(データベース)に記憶する。本実施の形態では、このデータベースを利用して、実際に撮影した画像の特定を行う。
【0146】
次に、上記のようにして作成したデータベース(画像対応動作指令記憶手段)を利用して、実際に撮影した手の画像から手指角度を推定する方法について説明する。図25は推定時の手順を示すアルゴリズムであり、図26はより詳細にアルゴリズムである。まず推定時には、データベース作成時と同様に高速カメラで動く手の画像(動作画像データ)を取得する。そして取得した動作画像データに対し、データベース作成時と同様の画像処理を施し特徴量を抽出する。そしてこの動作画像データの特徴量とデータベースに記憶されている複数の画像データの特徴量とを後述の処理により比較し、動作画像データと最も近い画像データと組になる角度データを、その動作画像データに対応する動作指令として出力する。
【0147】
特に、「データベースとの照合」処理では、データベースに記憶されている画像データ全てに対して、動作画像データの特徴量との間の距離算出を行なった。距離の算出は単純なユークリッド距離で行なった。最終的な距離は、下記式より算出した。
【0148】
【数24】
【0149】
上記式において、xnは候補rの高次局所自己相関関数による特徴量i、xtiは時刻tでの高次局所自己相関関数による特徴量iである。Erを最小にするデータrの角度を、その動作画像データの推定角度とした。ただし、角度の大幅に違うものの中に特徴量の近いデータが紛れ込むことがあるので、前回(t−1時刻)の推定角度との比較を行って角度制限を行う。具体的には、距離が近いものについて、下記式で示す評価関数Apが規定値を超える場合には、推定候補から除外した。そして評価関数Apが規定値以内であれば、その推定角度を採用することとする。
【0150】
【数25】
【0151】
ここでangi(t)は時刻tのi番目の角度データである。また、データグローブから得られる角度情報は24となっている。以上の操作により現在の推定角度を求める。
【0152】
実際の推定時に、データベースに記憶されている全ての画像データとの全てについて距離算出の処理を行なうと、データベースの大きさによっては計算コストがかかりすぎ、実時間処理が不可能になる。そこで本実施の形態では、データのクラスタリングにより推定候補数の削減を行なうことにより、実時間処理を可能にする。
【0153】
図27は、クラスタリングを説明するための概念図である。図27においては、一つの行は複数枚の画像データによって構成される一つの組を示している。着色の濃い行が最初の探索対象となるデータ、着色の薄い行が詳細な探索対象となるデータである。データベースに含まれるデータを、先に説明したデータベース作成時のアルゴリズムで作成すると、画像データの並びにおいて、手の形状の近いものが集まるようになる。これを利用することで距離計算の対象画像データを削減する。具体的には複数枚の画像データを一組と考える。そして、始めの距離計算時に使う画像データは、複数組の中からそれぞれ1つを選び、選んだ画像データと距離計算を行う。これにより距離計算による計算コストは、各組に含まれる枚数−1がすべての組において削減されることになり、大幅なコスト減となる。ただし、この段階では真に近い角度の画像データも計算から除いている可能性があるので、推定結果が元のデータベースの画像データ全てと対比する場合に比べ精度が落ちる。そのため1段階目の距離計算で距離の近いものについては、各画像データが含まれる組内のすべての画像データと動作画像データとの間の距離計算を行なう。このようにすれば各データ近傍には角度的に近いものが集まっているため、より精度の良い推定結果が得られる。クラスタリングの効果を確認する実験では、10枚の画像データを一組と考え、1枚の動作画像データについて1段階目の距離計算を複数組内の1枚の画像データとそれぞれ行った。次にこの操作で得られた距離が近い上位の組5組に含まれる全ての画像データについて距離計算と角度制限を行ない、最終的な角度を推定した。その結果、すべての画像データと比較を行う場合と比べて、遜色の無い比較精度が得られることが確認できた。
【0154】
上記実施の形態では、特徴量を求めるにあたって、高次局所自己相関関数を用いた。しかしながらその他の特徴量の求め方を採用することができるのは勿論である。例えば、廣池敦、武者義則著の「大規模な画像集合のための表現モデル」(日本写真学会誌、66巻、1号、93〜101頁、2003年発行)に記載の特徴量ベクトルの求め方を採用することもできる。
【産業上の利用可能性】
【0155】
本発明によれば、実際にロボットを動かすために、ロボットに対応する動作物またはその擬似物の画像を得るだけで、センサを使用することなく、その動作物または擬似物と同じ動作を、不良設定性を解消してロボットに見まね動作させることができる。したがって本発明によれば、画像データを入力データとしてロボットを簡単に駆動することが可能になる。
【符号の説明】
【0156】
1…多指ロボットハンド、3…駆動装置、4…データグローブ、6…対応関係決定手段、7…制御信号発生手段、8…事前収集動作指令記憶装置、9,12…カメラ、10…画像データ記憶装置、11…画像対応動作指令記憶手段、13…ロボット動作用画像データ記憶装置、14…画像データ特定及び動作指令発生装置、61…時系列関節角度パターン記憶手段、62…サンプリング手段、63…偏回帰係数導出手段、64…重回帰式決定手段
【技術分野】
【0001】
本発明は、ロボットの駆動システム及びロボットの駆動プログラムに関するものであり、特にロボットを動作させるためにそのロボットに対応する動作物またはその擬似物に所望の動作を行わせ、その動作物または疑似物の画像データと同じ動作をロボットに行わせるのに適したロボットの駆動システム及びロボットの駆動プログラムに関するものである。
【背景技術】
【0002】
例えば、人の動作を見まねで再現できるロボットに関する技術としては、操作者がセンサを付けて歩行したときや、操作者が複数のセンサを備えたデータグローブを手に嵌めて手を動かしたときに、それらのセンサから出力される情報に基いてロボットを駆動している。非特許文献1及び非特許文献2には、この種の技術が開示されている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Y.Kuniyoshi著の“A robotic approach to the foundation of communication and symbols”と題する論文:Proc.of 12th World Congress of Applied Linguistics(AILA’99),94頁,1999年発行
【非特許文献2】T.Inamura,Y.Nakamura,H.Ezaki及びI.Toshima著の“Imitation and primitive symbol acquisition of humanoids by the integrated mimesis loop”と題する論文:Proc. of Intl. Conf.on Robotics and Automation(ICRA 2001),4208頁−4213頁,2001年発行
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記従来の技術では、多くの場合、不良設定性(センサの出力または認識によって正確に判別できない動き)がほとんど存在せず、解が一意に決まり、比較的容易にロボットを駆動することができる。一方,不良設定性が存在するような問題に対しては、常にロボットに対応する動作物またはその擬似物にセンサを装着しておく必要があり、汎用性に欠ける問題がある。
【0005】
本発明の目的は、実際にロボットを駆動する際に、ロボットに対応する動作物またはその擬似物にセンサを装着しておく必要のないロボットの駆動システムを提供することにある。
【0006】
本発明の他の目的は、動作画像データを入力データとしてロボットを駆動することを可能にするロボットの駆動システムを提供することにある。
【0007】
本発明の他の目的は、動作物またはその模擬物の形状が複雑であったり、画像上の自己遮蔽が頻繁に起こる場合でも、安定して高速にロボットを駆動することを可能にするロボットの駆動システムを提供することにある。
【0008】
本発明の更に他の目的は、コンピュータグラフィック画像データを利用してロボットを駆動することが可能なロボットの駆動システムを提供することにある。
【0009】
本発明の別の目的は、入力される動作画像データの特定精度を高めることができるロボットの駆動システムを提供することにある。
【0010】
本発明の他の目的は、入力された動作画像データと事前に記憶した多数の画像データとの照合を迅速に行うことができるロボットの駆動システムを提供することにある。
【0011】
本発明の更に他の目的は、見まね学習により不良設定性を解消してロボットを駆動するシステムを提供することにある。
【課題を解決するための手段】
【0012】
本発明のロボットの駆動システムでは、次のステップ従って、動作指令によりロボットを駆動する。まずロボットに対応する動作物またはその擬似物に所定の動作と同じ動作をさせたときの動作物またはその擬似物の複数の画像データと、これら複数の画像データに対応した動作指令を得るために事前に収集された事前収集動作指令とを対応付けて画像対応動作指令記憶手段に記憶する。事前収集動作指令を事前に収集するための方法は任意である。次に、ロボットを動作させるために、動作物またはその擬似物に所望の動作を行わせ、その際に動作物またはその擬似物の動作画像データを時系列でロボット動作用画像データとして取得する。そしてロボット動作用画像データに含まれる動作画像データに対応する画像データを、画像対応動作指令記憶手段に記憶している複数の画像データから時系列で特定し、特定した画像データに対応する事前収集動作指令を動作指令としてロボットに与える。なお画像対応動作指令記憶手段に記憶する画像データは、撮影した画像に基づいて処理を行って得たその画像に関する特徴を示す特徴量のデータを伴うものまたは特徴量のデータそのものであってもよいのは勿論である。そしてロボット動作用画像データに含まれる動作画像データに対応する画像データの特定方法は、任意である。画像データが特徴量のデータであれば、特徴量の類似度によって、動作画像データに対応する画像データの特定を行うことができる。
【0013】
本発明のロボットの駆動システムにより実際にロボットを動かすと、ロボットに対応する動作物またはその擬似物の画像を得るだけで、センサを使用することなく、その動作物または擬似物と同じ動作を、ロボットに行わせることができる。したがって本発明によれば、画像データを入力データとしてロボットを簡単に駆動することが可能になる。
【0014】
なおロボット動作用画像データに含まれる画像データと画像対応動作指令記憶手段に記憶されている複数の画像データとの対応を、両者の類似度に基づいて判断することができる。その場合には、画像対応動作指令記憶手段に記憶している複数の画像データから動作画像データに対応する画像データを特定する際に、動作画像データの特徴量を基準にして照合用の複数の画像データを選択し、照合用の複数の画像データと動作画像データとの類似度に基づいて動作画像データに対応する画像を特定することが好ましい。
【0015】
本発明のより具体的なロボットの駆動システムは、事前収集動作指令記憶装置と、画像データ記憶装置と、ロボット動作用画像データ記憶装置と、画像データ特定及び動作指令発生装置とを備え、各部の構成を以下のようにする。事前収集動作指令記憶装置は、ロボットに対応する動作物と、動作物に設けられて動作物の動きを検出する複数のセンサと、複数のセンサの出力に基づいて動作指令を発生する動作指令発生装置とを用い、動作物に所定の動作を行わせたときの複数のセンサの出力に基づいて動作指令発生装置が発生する動作指令を事前収集動作指令として記憶する。ここで動作物とは、典型的には人間全体または人間の手や足等の動作する部位等であるが、動作物は人間以外の動物等でもよい。
【0016】
画像データ記憶装置は、動作物に所定の動作を行わせたときの動作物の複数の画像データを取得するか、または動作物またはその擬似物に所定の動作と同じ動作を行わせたときの動作物またはその擬似物の複数の画像データを時系列で取得する。ここで「動作物またはその擬似物」における「動作物」とは事前収集動作指令記憶装置の動作物と同じものでもよいが、同様の形状及び構造を有し(言換えると、同じ場所に同じ関節があり)且つ同じ動作を行い得るものであれば別の動作物であってもよい。また「動作物またはその擬似物」における「その擬似物」とは、その動作物をコンピュータグラフィック技術等の擬似物生成技術を用いて作成したものや、その動作物の人形等である。この場合に得る画像データは、疑似画像データである。特にコンピュータグラフィック技術を用いる場合の疑似物の画像データは、コンピュータグラフィック画像データである。複数の画像データを時系列で取得する方法または手法は、任意であり、単眼カメラ、両眼カメラ、あるいはマルチカメラのいずれにより撮影したものであってもよい。
【0017】
動作物が人間の手である場合、画像データ記憶装置で、複数の画像データに、人間の手に現れる個人差を考慮した画像データを含めておくと、後述する画像データ特定及び動作指令発生装置における画像データの特定精度を高めることができる。ここで個人差が生じる相違要素には、拇指以外の4指の基節位置の曲率、拇指基節の張り出し具合、隣り合う二本の指の開き具合、開いた二本の指の基準角度の違い、拇指の反り具合等がある。このような個人差は、コンピュータグラフィック技術等の擬似物生成技術を用いて画像データ(疑似画像データ)を作成する場合には、前述の相違要素をパラメータとして既に作成した基本となる画像データを変更することにより(骨の長さや関節の可動角度といったような、前述の相違要素を生み出しているパラメータを変更することにより)簡単に得ることができる。したがって個人差を考慮した画像データの作成は、難しいものではなく、簡単である。
【0018】
また画像データ記憶装置で作成する複数の画像データには、複数の画像データの解像度を変えて作成した複数の解像度変更画像データを含めてもよい。これは画像データの解像度を変えたほうが、画像の特徴が現れやすくなるものもあるからである。画像データの解像度は、基本となる画像データがあれば、簡単に変更することは可能である。
【0019】
なお、複数のセンサを備えた動作物の表面を、複数のセンサを含めて被覆物によって覆い、画像データ記憶装置では、事前収集動作指令記憶装置の事前収集動作指令の記憶動作と同時に動作物の複数の画像データを取得するようにしてもよい。被覆物によって動作物を覆うと、動作物の表面の不要な情報を物理的に取り去ることができる。したがって被覆物は、不要な情報をできるだけ排除できる構成を有しているのが好ましい。そのためできるだけ無地(一色で無模様:不要な凹凸がないもの)であることが好ましい。このような被覆物で覆った動作物の画像データからは、その画像データに含まれる特徴(特に輪郭についての特徴)を短い時間で、しかも高精度に取得することができる。
【0020】
画像対応動作指令記憶手段は、画像データ記憶装置で得た複数の画像データに含まれる各画像データと事前収集動作指令とを対応付けて画像データ記憶装置で得た複数の画像データと事前収集動作指令とを記憶する。なお画像対応動作指令記憶手段では、実際に撮影した画像だけでなく、画像データ記憶装置で取得した前の画像データと後の画像データとの間の未作成(未撮影)の画像データをコンピュータグラフィック技術により作成したものも記憶の対象とすることができる。この場合には、未作成の画像データに対応する事前収集動作指令を、前の画像データに対応する事前収集動作指令と後の画像データに対応する事前収集動作指令とに基づいて推定により作成し、これを未作成の画像データと対応付けて記憶することができる。このようにすれば、少ない実際の画像データを用いて、より多くの画像データと事前収集動作指令との対応データを得ることができ、基礎データ(画像データと事前収集動作指令とを対応付けたデータ)の収集が大幅に簡単になる。
【0021】
ロボット動作用画像データ記憶装置は、ロボットを動作させるために、動作物またはその擬似物に所望の動作を行わせ、その際に動作物またはその擬似物の動作画像データを時系列でロボット動作用画像データとして取得する。この場合に、動作物にセンサを装着する必要はない。そして画像データ特定及び動作指令発生装置は、ロボット動作用画像データに含まれる動作画像データに対応する画像データを画像対応動作指令記憶手段に記憶している複数の画像データ(基礎データ)から時系列で特定する。なおロボット動作用画像データに含まれる動作画像データと画像対応動作指令記憶手段に記憶されている複数の画像データとの対応は、動作画像データを分割して得られる複数の分割画像において抽出された特徴量を基準にして照合用の複数の画像データを選択し、照合用の複数の画像データと前記動作画像データとの類似度に基づいて判断することが好ましい。類似度の求め方は任意であり、特定の方法に限定されるものではない。そしてロボット動作用画像データ記憶装置は、特定した画像データに対応する事前収集動作指令を動作指令としてロボットに与える。
【0022】
なお人間型ロボットにおいて不良設定性が多いのは、手である。したがってロボットハンドの駆動に本発明を適用すると、従来よりも簡単にロボットハンドを駆動することができる。なおこの場合、動作物としては人間の手またはその擬似物が用いられることになる。そして事前収集動作指令記憶装置の上記処理では、人間の手に装着するデータグローブを用いる。このデータグローブは、グローブ本体にロボットの手の動作部に対応した人間の手の動作部の動きを検出する位置に複数のセンサが装着された構造を有している。
【0023】
基礎データとなる画像データが多くなるほど(画像データベースのデータ量が多くなるほど)、基礎データとなる画像データの中から、入力である動作画像データに対応した画像データを特定するには時間がかかるようになる。そこでこのような問題を解消するためには、画像対応動作指令記憶手段で、画像データと事前収集動作指令とを対応付けて記憶する際に、次のようにすることができる。まず複数の画像データのそれぞれの特徴量を個々に演算する(特徴量ステップ)。次に複数の画像データのそれぞれの特徴量を主成分分析して、複数の画像データのそれぞれについて主成分ごとの主成分得点を演算し、且つ累積寄与率に基づいて第1主成分から第k主成分までの主成分の数を決定する(主成分決定ステップ)。そして第1主成分から第k主成分までの各主成分ごとに、複数の画像データを主成分得点の大きさを基準にして並べ替えて得たk種類の画像データソース[画像情報の表(テーブル)]を作成して記憶する(記憶ステップ)。すなわち例えば、15,000枚分の画像データがあるとした場合に、10種類の主成分を決定したとすると、15,000枚分の画像データを10種類の主成分ごとに、その主成分得点の大きさを基準にして並べ替えた10種類の画像データソース(15,000×10=150,000枚分画像データに相当)として記憶する。画像データソース内の並べ変えた各画像データは、それぞれ事前収集動作指令と対応付けられて記憶されている。このようにした場合には、画像データ特定及び動作指令発生装置は、入力された動作画像データについても主成分得点を求め、この主成分得点を基準にしてk種類の画像データソースから照合用の複数の画像データをそれぞれ選出する。動作画像データの解像度を変えた複数種類の解像度の異なる動作画像データを作り、この複数種類の解像度の異なる動作画像データについて主成分得点を求め、この主成分得点を基準にしてk種類の画像データソースから照合用の複数の画像データをそれぞれ選出するようにしてもよい。この照合用の複数の画像データは、各画像データソースから各主成分ごとの主成分得点を基準にして所定枚数分ずつ選出される。このようにすると記憶されているすべての画像データと動作画像データとを照合する場合と比べて、照合対象となる画像データの数を少なくすることができるので、照合時間が短くてすむ利点が得られる。そして主成分得点を基準にして動作画像データと照合用の複数の画像データの類似度を判定し、前記類似度に基づいて動作画像データに対応する画像データを特定するようにしてもよい。このように解像度の異なる動作画像データを作成してそれらの因子負荷量も利用して類似度の判定を行うと、画像の特定精度を上げることができる。
【0024】
なお事前収集動作指令記憶装置の上記処理は事前に行う作業であるため、事前収集動作指令記憶装置を切り離して、ロボットを駆動するシステムにおいては、画像データ記憶装置、画像対応動作指令記憶手段、ロボット動作用画像データ記憶装置、並びに、画像データ特定及び動作指令発生装置だけを用いてロボットを駆動することができるのは当然である。
【図面の簡単な説明】
【0025】
【図1】発明者等が開発した本実施の形態で制御の対象とする公知の多指ロボットハンド1の平面図である。
【図2】図1のロボットハンドの内部に配置されたアクチュエータの配置構成を示す図である。
【図3】サイン波入力に対する追従性能を示す図である。
【図4】サインFM変調波入力に対する追従性能を示す図である。
【図5】遠隔指令装置として使用するデータグローブの一例の概略構成を示す図である。
【図6】多指ロボットハンドの制御装置及び本発明の駆動方法を実施する装置の一例の概略構成を示す図である。
【図7】図6の対応関係決定手段の主要部をコンピュータを用いて実現する場合に用いるソフトウエアのアルゴリズムを示すフローチャートである。
【図8】第1乃至第3のステップをコンピュータを用いて実現する場合に用いるソフトウエアのアルゴリズムを示す図である。
【図9】第1乃至第3のステップを説明するたに用いる図である。
【図10】第4及び第5のステップをコンピュータを用いて実現する場合に用いるソフトウエアのアルゴリズムを示す図である。
【図11】高次局所自己相関特徴のための局所パターンの例を示す図である。
【図12】(A)乃至(C)は、人の手に現れる個人差の相違要素を示している。
【図13】コンピュータグラフィック編集ソフトのパラメータを変えて、基節位置の曲率と拇指基節の張り出し具合を変えた場合の画像データの相違を示す図である。
【図14】解像度を変えた3種類の画像データを示す図である。
【図15】(A)及び(B)は、320×240画素から構成された1画面を4×4画面に分割した状態と、8×8画面に分割した状態を示す図である。
【図16】画像データを並べ替えたイメージを示す図である。
【図17】画像データのデータベース作成の手順を示すフローチャートである。
【図18】具体的な照合手順の流れを示すフローチャートである。
【図19】本発明の方法の別の実施の形態を説明するために用いる概念図である。
【図20】データベースを作成するためのアルゴリズムを示すフローチャートである。
【図21】図20のアルゴリズムの詳細を示すフローチャートである。
【図22】輪郭抽出した画像データを示す図である。
【図23】データベース作成に使用する高次局所自己相関特徴のための局所パターンの例を示す図である。
【図24】特徴量の抽出を説明するために用いる図である。
【図25】動作画像データに対応する画像データをデータベースに記憶した画像データから選ぶ際のアルゴリズムを示すフローチャートである。
【図26】図25のアルゴリズムの詳細を示すフローチャートである。
【図27】クラスタリングを説明するために用いる図である。
【発明を実施するための形態】
【0026】
以下図面を参照して本発明の方法の実施の形態について説明する。
【0027】
なお実施の形態について説明する前に、本実施の形態で用いる技術の基礎について説明する。なお実施の形態について説明する前に、本実施の形態で用いる技術の基礎について説明する。両眼あるいは単眼カメラによるヒト手指の3次元形状を推定する場合には、手指の形状が複雑で、しかも自己遮蔽も多く、形状の認識における不良設定性が存在する。そのため、赤外線レンジセンサや複数台のコンピュータを用いた並列計算装置といった周辺機器類を使用しない限り、高速で且つ高精度に推定することはできない(参考文献:E. Ueda, Y. Matsumoto, M. Imai and T. Ogasawara: “Hand pose estimation using multi-viewpoint silhouette images,” Proc. 2001 IEEE/RSJ Intl. Conf. on Intelligent Robots and Systems (IROS'2001), pp.1989-1996, 2001。M. H. Jeong, Y. Kuno, N. Shimada and Y. Shirai: “Recognition of shape-changing hand gestures,” IEICE Transactions Division D, E85-D, 10, pp.1678-1687, 2002。N. Shimada, K. Kimura, Y. Kuno and Y. Shirai: “3-D hand posture estimation by indexing monocular silhouette images,” Proc. 6th Workshop on Frontier of Computer Vision, pp.150-155, 2000)。一方、ヒト型のロボット等の上肢制御には、少なくとも軌道選択、関節角度の組み合わせ、筋張力の組み合わせなどの不良設定問題があることが知られている(Y.Uno,K.Kawato及びR.Suzuki著の“Formation and control of optimal trajectory in human multijoint arm movement−minimum torque−change model”と題する論文:Biological Cybernetics,61,pp.89−101,1989.)。ところが、両方の不良設定性を、人は巧く解決して、複雑精緻な随意運動を実現している。経験則から言えば、自分自身の身体での運動経験、すなわち身体性(R.Pfeifer,“Dynamics,morphology,and materials in the emergence of cognition,”In Advances in Artificial Intelligence,ed.W. Burgard,A.B.Cremers,and T.Christaller,Proc.KI−99,23th Annual German Conference on Artificial Intelligence,1999.)の存在が、認識における不良設定問題の重要な解決になっていると言うこともできる。
【0028】
そこで、発明者らは、認識と制御の両方における不良設定問題を同時に解決できる非常に有効な、場合によっては唯一の方法が、見まね学習であると考えて、人と同じような精度と処理速度で手指動作の再現が可能なロボットハンド・システムの開発を行った。
【0029】
以下、このシステムに基づいて本発明のロボットの駆動方法の実施の形態の幾つかの例を説明する。
【0030】
まず本実施の形態で用いる多指ロボットハンド(ロボット)の機構について説明する。図1は、発明者等が開発した本実施の形態で制御の対象とする公知の多指ロボットハンド1の平面図であり、図2は図1のロボットハンドの内部に配置されたアクチュエータ2(エンコーダ内蔵型超小形モータ)の配置構成を示す図である。なおこの多指ロボットハンドの詳細は、特開2003−117873号公報に示されている。この多指ロボットハンド1の各関節の可動範囲は、親指の内外旋が120°であり、内外転が60°である。そして各5本指の屈曲、伸展は第2関節に連動して行われ、第2関節の可動範囲は112°であり、第1関節は第2関節の可動範囲の7/10倍、第3関節は第2関節の可動範囲の5/7倍となっている。指の開閉は薬指に連動して、人指し指、小指が動き、中指は動かない。また薬指の開閉可動範囲は15°であり、人指し指は13°であり、小指は31°である。これらの構成によって、拇指と小指の接触が可能になり人の手指の可動域を十分に実現できている。
【0031】
各関節のアクチュエータ2には、DCマイクロモータを使用している。各指の第2関節、拇指の内外旋、内外転部位と拇指以外の4指間の開閉(アブダクション)用に掌の内部にそれぞれアクチュエータ2が設置されている。各関節の制御は、図示しない制御用計算機からの指令を受けて動作し、内部にD/Aコンバータや、小型サーボモータ専用ドライバー(マイクロサーボ)が配置された駆動装置3を介して、各アクチュエータ2のモータにかける電圧を変化させることで行う。各アクチュエータ2のモータには、インクリメンタルシャフトエンコーダが内蔵されている。このエンコーダの出力は、軸速度、回転方向の検出の他に、位置制御に使用できる。各関節の角度情報は、ギヤを介して分解能を挙げたエンコーダを介して図示しない制御用計算機にフィードバックされる機構を持っている。エンコーダ自体の分解能は16[Pulse/Revolution]である。指の開閉部のエンコーダには減速比1/400のギアが設けられており、換算分解能は6400[Pulse/Revolution]となる。その他のエンコーダには減速比1/50のギアを設けており、換算分解能は800[Pulse/Revolution]となる。
【0032】
PID制御等を用いて、サイン波、FM変調波の時系列角度変化指令を入力したときの追従結果を図3及び図4に示す。図3はサイン波入力に対する追従性能を示し、図4はサインFM変調波入力に対する追従性能を示す。これらの結果から、ゆっくりとした動作から比較的早い動作、変調波に対しても良好な追従特性が得られることが分かる。
【0033】
図5は、遠隔指令装置として使用するデータグローブ4の一例の概略構成を示す図である。このデータグローブ4には、手袋形の本体の関節部分を中心にして約16箇所の位置に分散して位置センサが備えられた構成を有している。具体的には、Virtual technologies社製のcyberglove(商標)をデータグローブとして用いている。このデータグローブのセンサ5は、拇指を除く各指のMP(中手指節関節),PIP(近位指節間関節)に一つずつ、拇指にはMP、PIP、DIP(遠位節間関節)についており、また各指の間にあるアブダクションを計測するセンサと掌の中央のセンサとで計16ヶ所に設置されている各センサ5はそれぞれ歪曲(ひずみ)度を数値化して30〜40Hzで出力する仕様を有している。掌の中央に設置されているセンサ5は掌全体の歪曲度を計測するものであり、対する人型ロボットハンドにはその機構は備わっていないため、この実施の形態では、この中央のセンサ5は使用しない。
【0034】
人の手指動作を操作者が手に装着したデータグローブによりデータ化し、これを計算機に取り込んで多指型ロボットハンドの制御指令値に変換すれば、データグローブを装着した操作者の手の動作と同様の動作をロボットハンドで実現させることができる。
【0035】
データグローブによるロボットハンドの制御法において、一つの簡単な方法としては、サイバーグローブから出力されるデータを3次元座標位置に変換しロボットハンドの関節と対になる部分の角度情報を時系列で取り出し、それをロボットハンドに実行させて、ロボットハンドを動作させるという手段がある。しかし、この方法を用いるとデータグローブの各センサから出力される16個の値がそれぞれ各関節のX座標、Y座標、Z座標、ピッチ角、ヨー角、ロール角に変換され、一単位時刻あたり100ものデータが生成されることとなり、これからロボットハンドの動作に必要な8関節分のデータを抽出して使用することは計算効率や時間効率を考える面からも最適ではない。
【0036】
人の手指は拇指を除く四指に至って、他の四指の影響を少なからず受ける。その特徴を定量的に表すこともこの制御方法及び装置において重要であると考える。そこでデータグローブで得られるデータからロボットハンド制御用の指令値への変換式に本発明の実施の形態では、重回帰式を用いる。
【0037】
ロボットハンドの各関節に対し重回帰式、すなわちすべてのデータグローブからの出力の重み付き線形和によりそれぞれのロボットハンドの関節を記述するためには、まず重回帰分析を行い偏回帰係数を求める必要がある。そこで重回帰分析用のデータを取得するためにデータグローブ装着者は予め定めた時系列関節角度パターンに従って関節角度指令値を駆動装置3に入力して、ロボットハンドを動作させる。なお駆動装置3に指令を与える制御装置は、ロボットハンド1にあらかじめ重回帰分析に有効な動作を行わせる予め定めた時系列関節角度パターンの関節角度指令値を記憶している。そしてこのロボットハンドの動作に従い即ち倣って、データグローブを装着した操作者には、データグローブを装着した手において、指の屈伸、アブダクション等の動作を事前に行ってもらう。本発明では、このようにして計測したデータグローブ4の出力と計測に用いたロボットハンドの時系列関節角度パターンとを重回帰分析にかけ、各関節ごとの偏回帰係数を導き出す。下記の式は本実施の形態で用いる重回帰式である。
【0038】
【数1】
【0039】
ここで、目的変数θiはロボットハンド1での制御対象となる関節各度の指令値、説明変数xinはデータグローブ4からの出力値、ainは偏回帰係数、a0nは残差である。この重回帰式で出される値はデータグローブ4での各指の関節角度の値であるので、この値をロボットハンドの角度指令値として制御を行えばよいことになる。
【0040】
図6には、事前収集動作指令を得る際に用いる多指ロボットハンドの制御装置と本発明のロボットの駆動方法を用いてロボットハンドを駆動する装置の構成の一例の概略構成を示してある。図6に示した動作指令を事前に収集する際に用いる制御装置では、関節角度を指示する関節角度指令値yに応じて動作するアクチュエータを備えたk個(kは正の整数)の関節を有する多指ロボットハンド1を制御するものとする。そしてデータグローブ4は、操作者の手に装着されて操作者の手の動きに応じてn個(nは正の整数)の出力信号xnを出力する遠隔指令装置を構成している。この多指ロボットハンドの制御装置は、対応関係決定手段6と制御信号発生手段7とを備えている。対応関係決定手段6は、k個の関節のためのk個の関節角度指令値yそれぞれについて、各関節角度指令値yとn個の出力信号xnとの間の対応関係を予め定めるように構成されている。具体的には、対応関係決定手段6は、時系列関節角度パターン記憶手段61と、サンプリング手段62と、偏回帰係数導出手段63と、重回帰式決定手段64とを備えている。
【0041】
サンプリング手段63は、k個の関節(実際にはアクチュエータ2)にそれぞれ予め定めた時系列関節角度パターン記憶手段61に記憶した時系列関節角度パターンに従って関節角度指令値を入力して多指ロボットハンド1を動作させた状態において、多指ロボットハンド1の動きに倣うように操作者がデータグローブ4を操作したときにn個の出力信号xnを時系列でm回(mはnより大きい正の整数)サンプリングする。サンプリング手段62はサンプリングを開始する前に時系列関節角度パターン記憶手段61に指令を与え、時系列関節角度パターン記憶手段61は駆動装置3に予め定めた関節角度指令値を出力する。なお時系列関節角度パターンは、N次元空間をまんべんなく動くような任意の関数指令を多指ロボットハンドの関節(アクチュエータ)に与えるように構成するのが好ましい。駆動手段3は、これを受けて多指ロボットハンド1を動作させる。
【0042】
偏回帰係数導出手段63は、時系列関節角度パターン記憶手段61に記憶した時系列関節角度パターンと、サンプリング手段62から出力されるm回のサンプリングにより求めたm組のn個の出力信号xnとに基づいて重回帰分析を行い、k個の関節のそれぞれについて偏回帰係数を導出する。
【0043】
重回帰式決定手段64、偏回帰係数導出手段63が定めたk個の関節毎の偏回帰係数を用いて、k個の関節毎の関節角度指令値yとn個の出力信号xnとの間の対応関係を定めるk個の重回帰式を決定する。
【0044】
そして制御信号発生手段7は、対応関係決定手段6の重回帰式決定手段64が求めた対応関係とn個の出力信号xnとに基づいて、k個の関節角度指令値yを求め、k個の関節角度指令値yを示す制御信号(動作指令)を多指ロボットハンドのk個の関節を駆動するための駆動装置3に出力するように構成されている。この制御信号発生手段7は、重回帰式決定手段64が求めたk個の重回帰式を対応関係として用い、n個の出力信号xnを入力としてk個の関節角度指令値yを求める。これらk個の関節角度指令値yが動作指令となる。なおデータグローブ4の動きに応じて制御指令発生手段7からは処理速度に応じた時間間隔で動作指令が出力される。なお図6の例においては、対応関係決定手段6及び制御信号発生手段7により動作物(操作者の手)に所定の動作を行わせたときの複数のセンサの出力に基づいて動作指令を発生する動作指令発生装置が構成されている。
【0045】
重回帰式決定手段64で決定するデータグローブ4の出力と多指ロボットハンド1の関節角度との対応を示す重回帰式は以下のようの形で記述することもできる。
【0046】
【数2】
【0047】
上記式においてHANDは、多指ロボットハンド関節値,aは偏回帰係数,GLOVE[n]はn自由度のデータグローブ出力、iは多指ロボットハンドの関節数である。なお上記式を用いる場合には、行が列より大きくなり優決定となる。そのため特異値分解を用いて最適解としての偏回帰係数を求めることが好ましい。
【0048】
図7は、図6の対応関係決定手段6の主要部をコンピュータを用いて実現する場合に用いるソフトウエアのアルゴリズムを示すフローチャートである。まずステップST1では、データグローブ4と時系列関節角度パターンのデータ対を獲得する。即ち多指ロボットハンド1の各関節可動域をまんべんなく動かすような関数を多指ロボットハンド1に与えて駆動し、多指ロボットハンド1に合わせて操作者の手指も同じ動作を行う。多指ロボットハンド1のある関節角度または関節角度指令値をyとし、n個のデータグローブ出力をanとすると,次式のように時刻1〜mまでの時系列データが得られる。
【0049】
【数3】
【0050】
ただし上記式において、m>nである。また前提として、aにはシステム雑音,量子化誤差などの雑音が含まれるものとする。
【0051】
次にステップST2進んで、データ対をベクトルと行列の形式で表現すると、y=[H]xのように表現することができる。ただしこの式におけるy、x及び[H]は下記の通りである。
【0052】
【数4】
【0053】
次にステップST3で、最小二乗法による解x−の推定を開始する。この推定の過程において、偏回帰係数が求められる。最小二乗法に用いる式は以下の式である。
【0054】
【数5】
【0055】
次にステップST4から、ヤコビ法による([H]t[H])の計算を開始する。すなわち直交行列Pを使って([H]t[H])(=[A])を簡単な形の類似行列[B]に変換する。言い換えれば、すなわち,[P]−1[A][P]=[B]を計算する。
【0056】
次にステップST5で、行列[A]の非対角要素のうちの絶対値最大のものakl(=alk)を選ぶ。そして次にステップST6において、akk=all=cosθ、akl=−sinθ、alk=sinθとする単位行列[P]を作る。
【0057】
次にステップST7へと進んでcとθの値を決定する。θは、下記の行列により求める。
【0058】
【数6】
【0059】
ただし、上記式においてk<lである。
【0060】
次にステップST8へと進んで、[P]t[A][P]を計算して新しい[A]とする。次にステップST9で、行列[P]の積から固有ベクトルVを下記の式で求める。
【0061】
【数7】
【0062】
ただし、上記式において[P]t(N)はN回目の変換に用いた行列[P]である。
【0063】
次にステップST10へと進み、[A]のどの非対角要素も収束条件<0.0001なら終了し、そうでなければステップST5へと戻る。ここで行列[B]の対角要素が固有値となる。
【0064】
次にステップST11へと進んで解に含まれる雑音を抑制する。ステップST12では、固有値(λ1,λ2,…λn)を(1/(λ1+υ),1/(λ2+υ),…1/(λn+υ))と置き換えて逆行列([H]t[H])-1を求める。ただし([H]t[H])-1=[U][A]-1[U]tである。またベクトルuiは[H]t[H]の固有ベクトルである。また[U]=[u1,u2,…uN]である。更に[A]-1は下記のように表される。
【0065】
【数8】
【0066】
ただしυ=σn2/σx2である。ここで、雑音成分n−をy=[H]xの右辺に加え、n−=y−[H]xと変形することでσn2を計算することができる。またσx2はyから直接、計算が可能である。そしてステップST13で最小二乗法による解x−の推定を終了する。
【0067】
上記フローチャートのアルゴリズムに従えば、偏回帰係数を導出するために最小二乗法と特異値分解とを用いて重回帰分析を行うことになる。なお上記ステップST4〜ST10までが特異値分解を実施しているステップである。
【0068】
図6と図8乃至図10を用いて、本発明の方法によりロボットハンドを駆動する実施の形態の一例の説明をする。本発明の実施の形態の第1のステップでは、事前収集動作指令記憶装置8が、データグローブ4を嵌めた手(動作物)に所定の動作を行わせたときのデータグローブ4の複数のセンサ5の出力に基づいて動作指令発生装置(6,7)が発生する動作指令を事前収集動作指令として記憶する。この記憶動作をコンピュータを用いて実現する場合に用いるソフトウエアのアルゴリズムを図8に示す。
【0069】
第2のステップでは、図9に示すように、単眼カメラまたは両眼カメラ等からなるカメラ9によりデータグローブ4を手に装着して事前収集動作指令を取得するときと同じ動作(所定の動作)を人の手Hで行う。そしてこのときの手(動作物)Hの画像データを時系列で取得する。なおこの画像データの取得は、事前収集動作指令を取得するのと同時に行ってもよいが、後から行ってもよい。図9の例では、手Hで「グー」の形を作った状態の画像データをとり、この画像データに基づいてコンピュータグラフィック技術で手の擬似物の画像データPD1を作成する。そして手Hで「パー」の形を作った状態の画像データをとり、この画像データに基づいてコンピュータグラフィック技術で手の擬似物の画像データPDnを作成する。「グー」から「パー」まで変化するまでの間の過程の画像を実際に撮影してもよいが、図9のようにその間の画像をコンピュータグラフィック技術で作成してもよい。このようにして作成した画像データは、画像データ記憶装置10に記憶される。
【0070】
第3のステップでは、第2のステップで得た複数の画像データに含まれる各画像データと事前収集動作指令記憶装置8に記憶された事前収集動作指令とを対応付けて画像対応動作指令記憶手段11に記憶する。なお本例では、画像対応動作指令記憶手段11は、実際に撮影した画像だけでなく、時系列で取得した前の画像データPD1と後の画像データPDnとの間の未作成の画像データをコンピュータグラフィック技術により作成する場合には、作成した画像データに対応する事前収集動作指令を前の画像データPD1に対応する事前収集動作指令と後の画像データPDnに対応する事前収集動作指令とに基づいて推定により作成して未作成の画像データと対応付けて記憶することができる。このようにすれば、少ない画像データによりより多くの画像データと事前収集動作指令との対応データを得ることができ、基礎データ(画像データと事前収集動作指令とを対応付けたデータ)の収集が大幅に簡単になる。
【0071】
第1から第3までのステップは、ロボットハンドを駆動するための事前作業として実施される。なお自由度ごとに5度刻みの精度の関節角度制御をロボットハンドの駆動において実現しようとすると、1億個(20の7乗)程度の数の画像が必要となるが、上述のようにコンピュータグラフィック技術を用いれば、基礎データの収集は簡単になる。この場合に用いることができるCG編集ソフトウエアとしては「Poser 5(Curious Labs Incorporated製)」を使用することができる。このソフトウエアを用いれば、データグローブ出力から得られた関節データから、撮像した手指2次元画像と類似した理想的な手指CG画像を補間生成することができる。そして補間生成した画像データに対応する事前収集動作指令は、関節角度の線形補間により生成することができる。なお、画像1枚あたりの手指CGのファイルサイズは5kB程度である。
【0072】
第4のステップ及び第5のステップは、実際にロボットハンドを駆動する際のステップである。第4のステップでは、ロボットハンドを動作させるために、手で所望の動作を行い。図6に示すように、その際の手の画像データをカメラ12を用いて時系列でロボット動作用画像データとして取得する。このロボット動作用画像データ(動作画像データ)は、ロボット動作用画像データ記憶装置13に記憶される。そして第5のステップでは、ロボット動作用画像データに含まれる動作画像データに対応する画像データを画像対応動作指令記憶手段11に記憶している複数の画像データから時系列で特定する。この特定作業は、画像データ特定及び動作指令発生装置14で行う。この例では、ロボット動作用画像データに含まれる動作画像データと画像対応動作指令記憶手段に記憶されている複数の画像データとの対応は、両者の類似度に基づいて判断する。類似度の求め方は任意である。そして第5のステップでは、特定した画像データに対応する事前収集動作指令を動作指令として駆動装置3に与え、駆動装置3の出力で多指ロボットハンドを駆動する。第4及び第5のステップの主要部をコンピュータ用いて実現する場合のソフトウエアのアルゴリズムは図10に示す通りである。
【0073】
画像データ特定及び動作指令発生装置14で行う画像データの特定の際に特徴量を抽出する技術として、例えば、高次局所自己相関関数を用いる特徴量抽出技術を利用することができる。高次局所自己相関関数については、1993年発行の電総研研究報告,j957の126頁乃至140に「柔らかな情報処理のための統計的手法の応用に関する研究」と題する論文に詳しく説明されている。手指2次元画像の特徴抽出には,高次局所自己相関関数を用いた。画面内の対象画像をf(r)とすると、N次自己相関関数は変位方向(a1,a2,…an)に対して次式のように定義される。
【0074】
【数9】
【0075】
実証試験では、高次自己相関係数の次数Nを2とし、また変位方向を参照点rの周りの局所的な3×3画素の領域に限定した。これより、平行移動による等価な特徴を除くと特徴Mの数は図11に示す25個になる。図11中の黒の四角は、局所パターンの対応する画素の位置に対応する。各特徴の計算は、局所パターンの対応する画素の値の積を全画素に対して足し合わせることで得られる。
【0076】
上記の方法によれば、実際にロボットハンド1を動かすために、ロボットハンド1に対応する手の画像を得るだけで、センサを使用することなく、手の動きと同じ動作を、見まねにより不良設定性を解消してロボットハンドに動作させることができる。
【0077】
上記実施の形態では、第3のステップで実際に人の手の画像を撮影しているが、すべてコンピュータグラフィック技術により手の画像データ(手の擬似物の画像データ)を作成してもよいのは勿論である。
【0078】
次に上記実施の形態を改善または改良する手法について詳しく説明する。
【0079】
[個人差の考慮]
まず前述の第2のステップにおいて、複数の画像データ(コンピュータグラフィックの画像データに、人間の手に現れる個人差を考慮した画像データを含めておくと、第5のステップにおける画像データの特定精度を高めることができる。図12(A)乃至(C)は、人の手に現れる個人差の相違要素を示している。図12(A)は手をグーの形に握った状態を示している。拇指以外の4指の基節位置の曲率に個人差が現れる。すなわち4指の基節位置が直線的になる手もあれば、湾曲した形状になる手もある。また拇指基節の張り出し具合にも顕著な個人差が現れる。これらの個人差は、2つの関節間の長さの相違によって生じる。また図12(B)は手をチョキの形にした場合の状態を示している。この状態においては、二本の指の開き具合と開いた二本の指の基準角度の違いに個人差が現れる。更に図12(C)は手をパーの形に開いた状態を示している。この状態では、拇指と人差し指との間の開き具合と拇指の反り具合に個人差が大きく現れる。このような個人差は、コンピュータグラフィック技術を用いて手の形の画像データ(疑似画像データ)を作成する場合に、相違要素をパラメータとして既に作成した基本となる画像データを変更することにより簡単に得ることができる。図13は、コンピュータグラフィック編集ソフトのパラメータを変えて、基節位置の曲率と拇指基節の張り出し具合を変えた場合の画像データの相違を示す図である。この2つの相違要素を変更するだけでも、かなり異なった個人差の画像データを得ることができる。なおこれらの画像データを作成する際に、新たに作成する未作成の画像データに対応する事前収集動作指令を、前の画像データに対応する事前収集動作指令と後の画像データに対応する事前収集動作指令とに基づいて推定により作成し、これを未作成の画像データと対応付けて記憶することができるのは勿論である。
【0080】
[解像度の変更]
次に第2のステップで作成する複数の画像データには、複数の画像データの解像度を変えて作成した複数の解像度変更画像データを含めてもよい。これは画像データの解像度を変えたほうが、画像の特徴が現れやすくなるものもあるからである。画像データの解像度は、基本となる画像データがあれば、簡単に変更することは可能である。図14は解像度を変えた3種類の画像データを示している。左端の画像は、原画像であり、中央の画像は、縦2画素×横2画素を1画素にして解像度を下げた状態の画像であり、右端の画像は、縦4画素×横4画素を1画素として更に解像度を下げた画像である。例えば、原画像が15,000枚あるとすると、解像度を2段階変更することにより、45,000種類の画像データが得られることになる。手をグーの形に握っている状態では、指が重なり合うため、解像度が高いほうが特徴量を正確に把握することができる。しかし手をチョキの形にしている状態では、立っている二本の指の部分から得られる画像の特徴量が重要であるが、その他の部分の特徴量はかえって誤った判断をする原因となる。そこで解像度の異なる画像データを予め基礎データとして用意しておけば、照合の精度は高くなる。
【0081】
[各画像データにおける特徴量の計算]
先に、画像データの特定のために、高次局所自己相関関数を用いる特徴量抽出技術を用いる点について説明した。従来の技術では、画像全体について特徴量を抽出しているが、精度を高めるために画像をいくつかの分割画像に分けて分割画像単位で特徴量を抽出することが好ましい。これを実現するためには、まず画像データにおける手の重心を推定する。そのためには、コンピュータグラフィックの画像データを二値化して、白黒画像とする。そしてこの白黒画像について、下記式を用いてX軸方向、Y軸方向のそれぞれで中心を求める。
【0082】
【数10】
【0083】
上記式においては、xg、ygは重心のX、Y座標であり、xi,yiは白画素のX、Y座標であり、kは白画素の数である。
【0084】
このようにして画像の中心を求めた後は、この重心をもとに各画像を画面分割する。図15(A)及び(B)は、320×240画素から構成された1画面を4×4画面に分割した状態と、8×8画面に分割した状態を示している。なお上記画素数であれば、16×16画面に分割することも可能である。
【0085】
このようにして分割した各分割画像について、特徴量の計算を行う。即ち画面分割ごとの高次局所自己相関パターンを算出する。先に説明した高次局所自己相関パターンの求め方に従って画面分割ごとの高次局所自己相関パターンを算出すればよい。下記の式は高次局所自己相関パターンの算出に用いる式である。
【0086】
【数11】
【0087】
上記式において、xNはN次元の参照点rの周りの局所的な相関関数である。したがってNは2である。(a1,a2,…an)は、N次自己相関関数の変位方向であり、f(r)は画面内の対象画像の画素位置rの輝度値である。図12に示した局所パターンを用いれば25パターンとなるが、重複を認めれば35パターンを使用してもよい。
【0088】
[特徴量低減]
上記のように特徴量を計算した場合、画像データが多くなると処理すべき特徴量が多くなりすぎる。例えば、図14に示したように3つの解像度の画像データを利用する場合の特徴量は、特徴量=解像度3×画面分割64×高次局所自己相関パターン25=4800(次元)となる。そこで公知の主成分分析技術を利用して特徴量を低減することが好ましい。まず主成分分析による各主成分ごとの因子負荷量を算出する必要がある。下記の式は、主成分分析で用いる主成分得点の演算式である。
【0089】
【数12】
【0090】
上記式において、Zkpは第k主成分におけるデータpの主成分得点であり、xplmnはデータpの第l解像度(lはアルファベットのLの小文字)の第m画面の第n特徴量であり、aklmnは第k主成分の第l解像度の第m画面の第n特徴量の因子負荷量であり、divは解像度の数(たとえば3)で有り、pnumは画面分割数(たとえば8×8)である。
【0091】
ここで因子負荷量aklmnを算出して上記式に代入すれば、第k主成分におけるデータpの主成分得点を求めることができる。なお因子負荷量aklmnの求め方には、主因子法、最小2乗法、最尤法などがある。主因子法で因子負荷量を求める場合には、次のようににする。
【0092】
(1)各変量の分散を1に標準化して,標本相関行列C=(rjk)を求める。
【0093】
(2)xjと残りの変量との相関係数のなかの最大値rmax(j)(ただしj!=k)を、Cの対角要素に代入してC*を作る。
【0094】
(3)C*の固有値問題を解き、固有値λ1,λ2,・・・,λpと、それに対応する固有ベクトルc1,c2,・・・,cpを求める。この固有ベクトルが因子負荷量に相当する。
【0095】
次に特徴量低減のために、各主成分の寄与率を求める。ここで寄与率とは、各主成分が元の情報をどれだけ説明しているかを表す係数であり、下記のように表すことができる。
【0096】
【数13】
【0097】
ここで,Ckは第k主成分の寄与率であり、bklmnは主成分得点Zkpとxplmnの相関係数で,次式のように定義される。
【0098】
【数14】
【0099】
aklmnは第k主成分の第l解像度の第m画面の第n特徴量の因子負荷量であり、λkはk番目に大きい相関行列の固有値である。
【0100】
次に累積寄与率に基づいた主成分の数の決定を行う。前述の寄与率Ckは、各主成分が元の情報をどれだけ説明しているかを表す係数であり、以下の関係式が成り立つ。
【0101】
【数15】
【0102】
そこで,累積寄与率95%程度を目処に,特徴量低減で使用する主成分の数を下記の式で決定する。
【0103】
【数16】
【0104】
本実施の形態では、累積寄与率が約97%となる第10主成分までを用いることにする。
【0105】
次に主成分得点に応じたデータの並び替えを行う。第1から第10主成分までの各主成分ごとに,主成分得点の大きさに応じて全データを並べ替え(ソート)する。この並べ替えによって10種類の画像データソースが作成されることになる。図16は、並べ替えのイメージを示している。このような並べ替えによって、オリジナルの画像数が15,000枚とすれば、15,000×10=150,000枚の画像データが記憶されることになる。
【0106】
なお未知のヒト手指画像が入力された場合に、効率よく類似画像を検索するため、範囲を限定した検索対象数をあらかじめ決めておくのが好ましい。具体的には,各主成分において未知画像と同じか,最も近い主成分得点Zkpを持つデータと、各主成分の寄与率に応じた数の前後データを検索対象とする。各主成分の候補数は,以下の通りである。
【0107】
【数17】
【0108】
ここで,dcpは第p主成分(p=1,2,・・・・10)の推定候補数である。
【0109】
Ccは推定候補数の総和で,あらかじめ決めておくものである。
【0110】
そしてλpを含む分数式は、第10主成分中のp成分の寄与率である。
【0111】
上記の式によって各主成分の寄与率に応じた数の前後データが検索対象となることが決まる。例えば、図16を参照して説明すると、照合対象となる動作画像データの第1主成分の主成分得点Zkpが13点であるとすると、第1主成分の主成分得点の得点順に並べ替えた基礎となる画像データのうち主成分得点が13点に近い画像データを中心に含んで、前述の推定候補数の画像データが照合用画像データとして抽出される。
【0112】
上記の改良点を含めた画像データのデータベース作成の手順(実施の形態の第1のステップから第3のステップに相当)を図17に示す。
【0113】
次に上記のようにして作成したデータベースを利用して、本発明の第4及び第5のステップ(照合処理)を主成分分析技術を用いて処理する処理手順について説明する。図18は、具体的な照合手順の流れを示している。まず手の実画像の撮像を得る。前述の特徴量の低減技術を用いると、ビデオレート以上の速さの処理速度が出せるので、撮像には高速度カメラを使用することができる。不必要な情報を除去するために、撮像からは背景を除去する。そのためには(手映像+背景映像)の撮像から(背景映像)を差し引く処理を行う。
【0114】
次に撮影した画像(動作画像データ)の特徴量を計算する。撮影したときの解像度そのままで特徴量を計算してもよいが、図18の例では、撮像した動作画像データの解像度を変えて3種類(複数種類)の解像度の異なる動作画像データを得る。すなわち単純に見ると同じ動作画像データについて3倍のデータを作成する。そしてこれら解像度を変えた3種類の動作画像データ(手画像のデータ)について、前述のデータベースの作成時と同様に、手の画像の重心推定を行い、画面を分割する。この場合も、画面を16分割、64分割または246分割する。分割数は任意である。しかにあまり分割数を多くしても精度が上がらないことが確認されているので、16分割または64分割程度の分割数が好ましい。
【0115】
次に各画面分割ごとの高次局所自己相関パターンを算出する。このときの高次局所自己相関パターンの算出も前述のデータベースを作成する際に用いた高次局所自己相関パターンの算出手法と同じである。
【0116】
次に算出した高次局所自己相関パターンに基づいて主成分分析により主成分得点の計算を行う。この主成分得点の計算も前述のデータベース作成の際の主成分得点の計算方法と同じ計算方法を採用する。
【0117】
次にデータベースに記憶されている基礎となる複数の画像データとの照合を行う。照合の候補となる照合用の複数の画像データを、計算により求めた主成分得点を基準にしてデータベースから選出する。なお各主成分からの候補数は、前述の[数17]の式により、あらかじめ決められている。そこでそれぞれの主成分において最も近い主成分得点Zkpを持つ画像データと、この画像データの前後の画像データを各主成分の寄与率に応じて予め定めた候補数の数分選出して照合用の画像データとする。データベースに記憶されている10種類の主成分を基準にして並べ替えられた10種類の画像データソースから、それぞれ予め定められた候補数の画像データが選出される。仮に各主成分について予め候補数が20と定められているものとすると、20×10=200枚の画像データがデータベースから選出されることになる。これらの画像データ中には重複しているものがあるのは勿論である。
【0118】
次に類似度の計算を行う。具体的には、入力画像(動作画像データ)と候補となった複数枚の照合用の画像データ(候補CGハンド画像)との間で、次式により、ユークリッド距離Erの計算を行う。
【0119】
【数18】
【0120】
ここで、fi(x)は特徴量から算出した第i主成分の主成分得点であり、xrは候補rの高次局所自己相関関数による特徴量であり、xtは時刻tにおける高次局所自己相関関数による特徴量であり、Erを最小にするデータpを検索画像とし,データpが持つ関節角度データを推定角度とする。
【0121】
時刻tと時刻t−1の検索結果が許容される関節角度の範囲であれば、時刻tでの探索を終了する。そして時刻t−1から大幅に異なる関節角度が選ばれている場合は、ユークリッド距離Erが次に小さい次候補を選び,許容範囲かどうかを下記の式で計算する。
【0122】
【数19】
【0123】
ここで,Apは許容値であり、iはデータグローブの関節番号である(本例ではi=24)。
【0124】
またangi(t)は時刻tにおけるi番目の関節角度データである。
【0125】
許容値が許容は範囲内であれば、その画像データが動作画像データに対応するものと特定される。
【0126】
次に、本発明の方法の別の実施の形態について説明する。この実施の形態では、前述の実施の形態とは異なって、図19に示すように、データグローブを嵌めた手の上にさらに無地(無模様:一色)の手袋(被覆物)を嵌めて、前述の第1のステップと第2のステップとを同時に実施する。図19において、下側の図がデータグローブを嵌めた手であり、上側の図がデータグローブを嵌めた手の上に手袋を嵌めた図である。図20は、事前にデータベースを作成する際の手順を示すフローチャートであり、図21は図20のフローチャートの詳細を示すフローチャートである。
【0127】
まずビデオカメラ109で、手袋を嵌めた状態の手を撮影する。本実施の形態では、高速ビデオカメラ109で撮影した手画像データおよびデータグローブから得た角度データを用いてデータベースを構築する。そのために画像データと角度データとを組にして取得する。本実施の形態では、モノクロ高速度カメラ(MEGAPLUS社製、ES310/T)を使い、解像度を320*240画素として、手指が画面内に十分な大きさで映っている状態を想定する。また角度データの測定には、Virtual Technologies社製の「CyberGlove」(商標)と呼ばれるデータグローブを用いた。そして手袋は、白一色で無模様のものを用いた。手袋をデータグローブの上に嵌めることにより、データグローブ固有の画像特徴(センサの形状やグローブの形状)が出るのを防止している。前の実施の形態と異なって、白手袋を撮影すると、ヒトの手とは色が違い、画像としても違うものとなる。しかしながら、手袋を嵌めた手の画像データであっても、後に説明するように、特徴量化により一般の手画像として扱うことができる。なおデータベース作成に際しては、背景画像が影響を及ぼさないようにするために、背面に無模様一色のスクリーンを用いて撮影を行う。そして連続する複数の画像データと一緒に、データグローブから取得した手指角度データを組にして1次データベースを作成する。必要十分な情報を得るために、手を連続的に動かして必要な画像データと角度データを同時に取得して、保存する。
【0128】
本実施の形態では、1次データベースの画像データを、実際に撮影した手画像の推定に必要な特徴量へと変換する画像処理を行なう。この画像処理のために背景除去、解像度変更、エッジ抽出、輪郭抽出(特徴量抽出)を行なう。
【0129】
まず画像情報から背景除去を行う。あらかじめ取得しておいた背景画像を用いて対象画像との差分を取る。その差分が閾値以上の場合は対象画像の画素を使い、以下ならば0とする。
【0130】
次に背景を除去した画像の解像度を変更する。今回取得した画像は320×240の画素値を持つ画像である。しかしこれをそのまま用いて各種画像処理を施して推定処理をするには、計算に時間がかかる。また人間が推定する際には、本実施の形態で用いた画像のサイズより小さくとも推定が可能である。そこで本実施の形態では、解像度を、320×240の画素値から64×64のサイズに変更する。解像度変更後の画素値は次式により得られる。
【0131】
【数20】
【0132】
ここでgr(i、j)は解像度変更後のi行j列番目の画素値である。go(i、j)は、解像度変更前のi行j列番目の画素値である。この式では、縦についても320で計算しているが、これは変更後の画素値を64×64にしているため縦横比を合わせるためである。またk、lについてはi×320/64から(i+1)×320/64−1まで計算し、rはkの個数×lの個数とする。
【0133】
以上の操作で得られた解像度変更画像を用いてエッジ抽出を行なう。この作業で推定に必要な特徴を抜き出す。具体的にはソーベルフィルタで解像度変更画像をフィルタ処理する。その後、この画像の最外周のみを二値化することでエッジを抽出する。
【0134】
ソーベルフィルタによる処理は、次式で表現できる。
【0135】
【数21】
【0136】
ここでfr(i、j)は下記の式で表すことができる。
【0137】
【数22】
【0138】
上記式において、fi(i、j)は処理前の横i番目、縦j番目の画素を示す。fsが処理後の最終的な値となる。
【0139】
ここでの画像の最外周の二値化は、輪郭抽出で輪郭が途切れないように、比較的低い閾値で二値化することを意味する。この最後の画像処理として、エッジ抽出で得られた二値化画像上を走査することで輪郭抽出を行う。前段階のエッジ抽出により得た画像を輪郭として使用しない理由として、環境光の変化を上げることができる。実際の推定時とデータベース作成時とでは、環境光や人の肌の色等に違いがある。ましてやデータベース作成時には白手袋を使用しているため、エッジ抽出を行っても、エッジの値や幅などが実際の画像のエッジとは異なってくる。その結果、データベースの画像データと実際の画像データとを比較するとき(推定時)とで、両者のエッジには大幅な相違が生じる可能性がある。そこで輪郭抽出を行って、エッジの幅や値を一定にする。輪郭抽出は、データベースから得られる情報と推定時に得られる情報との差を少なくし、環境の影響などを排除することで、推定時の誤差を減少させるために採用する。図22は、エッジ抽出後に輪郭抽出を行って得た解像度変更後の画像である。
【0140】
なお最外周のみ二値化するための輪郭抽出アルゴリズムでは、画像を上から走査して行き、最初の127の点を始点とした。始点から左回りに近傍画素を探索して行き、127の点があればそこへ移動し、値を255に書き換える。移動後は前回の位置を参考にして探索開始地点を8パターンに分けて探索を継続する。始点に再び戻った時点で輪郭を抽出したと判断し、探索を終了させる。最後に残りの点は輪郭ではないので127の点は全て0とする。
【0141】
次に輪郭抽出を行った画像データの特徴量化を実施する。本実施の形態では、Otsu等(N.Otsu and T.Kurita,“A new scheme for practical, flexible and intelligent vision systems,”Proc.IAPR.Workshop on Computer Vision,pp.431−435,1998.)が提案している高次局所自己相関関数を特徴量化に使用した。高次局所自己相関特徴は、画像の認識や計測のために有効な特徴であり、下記の式で定義される高次相関関数について、参照点とその近傍についての計算をしたものである。
【0142】
【数23】
【0143】
上記式でxNはN次元でのr点近傍の相関関数である。一般に自然画像を処理対象とする場合には、対象点回りの画素が重要になるため、係数Nを2次までとする。また、平行移動すると等価なものになるものを除くと、図23に示す25の特徴量で表現できる。ただしNo.1からNo.5までは、No.6以降の特徴量に比べスケールが小さいので、スケールを合わせる必要がある。No.2〜No.5までは、参照点の画素をさらにかけあわせ、No.1は参照点の画素の2乗をかけることで他の特徴量にスケールを一致させる。
【0144】
本実施の形態では、図24に示すように、画像の画面を縦8分割、横8分割にした。そして、計64分割した分割画面に対して、それぞれ画素全てを参照点として、高次局所自己相関関数によって25の特徴量に次元低減を行なった。すなわち、全体の画像で考えれば、25×画面分割数の特徴量により、その全体画像の特徴量化を行うことができる。
【0145】
このようにして1つの画像データを特徴量化した画像データとデータグローブからの角度データ(事前収集動作指令に対応)を組みにした特徴データを画像対応動作指令記憶手段(データベース)に記憶する。本実施の形態では、このデータベースを利用して、実際に撮影した画像の特定を行う。
【0146】
次に、上記のようにして作成したデータベース(画像対応動作指令記憶手段)を利用して、実際に撮影した手の画像から手指角度を推定する方法について説明する。図25は推定時の手順を示すアルゴリズムであり、図26はより詳細にアルゴリズムである。まず推定時には、データベース作成時と同様に高速カメラで動く手の画像(動作画像データ)を取得する。そして取得した動作画像データに対し、データベース作成時と同様の画像処理を施し特徴量を抽出する。そしてこの動作画像データの特徴量とデータベースに記憶されている複数の画像データの特徴量とを後述の処理により比較し、動作画像データと最も近い画像データと組になる角度データを、その動作画像データに対応する動作指令として出力する。
【0147】
特に、「データベースとの照合」処理では、データベースに記憶されている画像データ全てに対して、動作画像データの特徴量との間の距離算出を行なった。距離の算出は単純なユークリッド距離で行なった。最終的な距離は、下記式より算出した。
【0148】
【数24】
【0149】
上記式において、xnは候補rの高次局所自己相関関数による特徴量i、xtiは時刻tでの高次局所自己相関関数による特徴量iである。Erを最小にするデータrの角度を、その動作画像データの推定角度とした。ただし、角度の大幅に違うものの中に特徴量の近いデータが紛れ込むことがあるので、前回(t−1時刻)の推定角度との比較を行って角度制限を行う。具体的には、距離が近いものについて、下記式で示す評価関数Apが規定値を超える場合には、推定候補から除外した。そして評価関数Apが規定値以内であれば、その推定角度を採用することとする。
【0150】
【数25】
【0151】
ここでangi(t)は時刻tのi番目の角度データである。また、データグローブから得られる角度情報は24となっている。以上の操作により現在の推定角度を求める。
【0152】
実際の推定時に、データベースに記憶されている全ての画像データとの全てについて距離算出の処理を行なうと、データベースの大きさによっては計算コストがかかりすぎ、実時間処理が不可能になる。そこで本実施の形態では、データのクラスタリングにより推定候補数の削減を行なうことにより、実時間処理を可能にする。
【0153】
図27は、クラスタリングを説明するための概念図である。図27においては、一つの行は複数枚の画像データによって構成される一つの組を示している。着色の濃い行が最初の探索対象となるデータ、着色の薄い行が詳細な探索対象となるデータである。データベースに含まれるデータを、先に説明したデータベース作成時のアルゴリズムで作成すると、画像データの並びにおいて、手の形状の近いものが集まるようになる。これを利用することで距離計算の対象画像データを削減する。具体的には複数枚の画像データを一組と考える。そして、始めの距離計算時に使う画像データは、複数組の中からそれぞれ1つを選び、選んだ画像データと距離計算を行う。これにより距離計算による計算コストは、各組に含まれる枚数−1がすべての組において削減されることになり、大幅なコスト減となる。ただし、この段階では真に近い角度の画像データも計算から除いている可能性があるので、推定結果が元のデータベースの画像データ全てと対比する場合に比べ精度が落ちる。そのため1段階目の距離計算で距離の近いものについては、各画像データが含まれる組内のすべての画像データと動作画像データとの間の距離計算を行なう。このようにすれば各データ近傍には角度的に近いものが集まっているため、より精度の良い推定結果が得られる。クラスタリングの効果を確認する実験では、10枚の画像データを一組と考え、1枚の動作画像データについて1段階目の距離計算を複数組内の1枚の画像データとそれぞれ行った。次にこの操作で得られた距離が近い上位の組5組に含まれる全ての画像データについて距離計算と角度制限を行ない、最終的な角度を推定した。その結果、すべての画像データと比較を行う場合と比べて、遜色の無い比較精度が得られることが確認できた。
【0154】
上記実施の形態では、特徴量を求めるにあたって、高次局所自己相関関数を用いた。しかしながらその他の特徴量の求め方を採用することができるのは勿論である。例えば、廣池敦、武者義則著の「大規模な画像集合のための表現モデル」(日本写真学会誌、66巻、1号、93〜101頁、2003年発行)に記載の特徴量ベクトルの求め方を採用することもできる。
【産業上の利用可能性】
【0155】
本発明によれば、実際にロボットを動かすために、ロボットに対応する動作物またはその擬似物の画像を得るだけで、センサを使用することなく、その動作物または擬似物と同じ動作を、不良設定性を解消してロボットに見まね動作させることができる。したがって本発明によれば、画像データを入力データとしてロボットを簡単に駆動することが可能になる。
【符号の説明】
【0156】
1…多指ロボットハンド、3…駆動装置、4…データグローブ、6…対応関係決定手段、7…制御信号発生手段、8…事前収集動作指令記憶装置、9,12…カメラ、10…画像データ記憶装置、11…画像対応動作指令記憶手段、13…ロボット動作用画像データ記憶装置、14…画像データ特定及び動作指令発生装置、61…時系列関節角度パターン記憶手段、62…サンプリング手段、63…偏回帰係数導出手段、64…重回帰式決定手段
【特許請求の範囲】
【請求項1】
動作指令に応じて動作するロボットの駆動システムであって、
ロボットに対応する動作物と、前記動作物に設けられて前記動作物の動きを検出する複数のセンサと、前記複数のセンサの出力に基づいて前記動作指令を発生する動作指令発生装置とを用い、前記動作物に所定の動作を行わせたときの前記複数のセンサの出力に基づいて前記動作指令発生装置が発生する前記動作指令を事前収集動作指令として記憶する事前収集動作指令記憶装置と、
前記動作物に前記所定の動作を行わせたときの前記動作物の複数の画像データを取得するか、または前記動作物またはその擬似物に前記所定の動作と同じ動作を行わせたときの前記動作物またはその擬似物の複数の画像データを時系列で取得する画像データ記憶装置と、
前記複数の画像データに含まれる画像データと前記事前収集動作指令とを対応付けて前記複数の画像データと前記事前収集動作指令とを記憶する画像対応動作指令記憶手段と、
前記ロボットを動作させるために、前記動作物またはその擬似物に所望の動作を行わせ、その際に前記動作物またはその擬似物の動作画像データを時系列でロボット動作用画像データとして取得するロボット動作用画像データ記憶装置と、
前記ロボット動作用画像データに含まれる前記動作画像データに対応する画像データを前記画像対応動作指令記憶手段に記憶している前記複数の画像データから特定し、特定した前記画像データに対応する前記事前収集動作指令を前記動作指令として前記ロボットに与える画像データ特定及び動作指令発生装置とを備え、
前記画像データ特定及び動作指令発生装置は、前記画像対応動作指令記憶手段に記憶している前記複数の画像データから前記動作画像データに対応する画像データを特定する際に、前記動作画像データを分割して得られる複数の分割画像において抽出された特徴量を基準にして照合用の複数の画像データを選択し、前記照合用の複数の画像データと前記動作画像データとの類似度に基づいて前記動作画像データに対応する画像データを特定することを特徴とするロボットの駆動方法。
【請求項2】
前記擬似物はコンピュータグラフィック技術により作成されたものであり、前記擬似物の画像データはコンピュータグラフィック画像データである請求項1に記載のロボットの駆動システム。
【請求項3】
前記複数のセンサを備えた前記動作物の表面を、前記複数のセンサを含めて被覆物によって覆った状態で、当該動作物に前記所定の動作を行わせ、その際に、前記事前収集動作指令記憶装置が前記事前収集動作指令を記憶すると同時に、前記画像データ記憶装置が前記動作物の前記複数の画像データを時系列で取得することを特徴とする請求項1に記載のロボットの駆動システム。
【請求項4】
前記複数の画像データには、前記複数の画像データの解像度を変えて作成した複数の解像度変更画像データが含まれている請求項2または3に記載のロボットの駆動システム。
【請求項5】
前記画像データ記憶装置は、前記コンピュータグラフィック技術により作成された、時系列で取得した前の前記画像データと後の前記画像データとの間の未作成の画像データを記憶し、
前記画像対応動作指令記憶手段は、作成した前記画像データに対応する事前収集動作指令を前記前の画像データに対応する事前収集動作指令と前記後の画像データに対応する事前収集動作指令とに基づいて推定により作成して前記未作成の画像データと対応付けて記憶することを特徴とする請求項2に記載のロボットの駆動システム。
【請求項6】
前記動作物は人間の手であり、前記人間の手に装着するデータグローブのグローブ本体に前記ロボットの手の動作部に対応した人間の手の動作部の動きを検出する位置に装着された前記複数のセンサを用い、
前記事前収集動作指令記憶装置は、前記動作物に所定の動作を行わせたときの前記複数のセンサの出力に基づいて前記動作指令発生装置が発生する前記動作指令を事前収集動作指令として記憶することを特徴とする請求項1に記載のロボットの駆動システム。
【請求項7】
前記動作物は人間の手であり、前記人間の手に装着するデータグローブのグローブ本体に前記ロボットの手の動作部に対応した人間の手の動作部の動きを検出する位置に装着された前記複数のセンサを用い、さらに、前記データグローブを装着した前記人間の手に無地の手袋を嵌めた状態で、前記人間の手に前記所定の動作を行わせ、
その際に、前記事前収集動作指令記憶装置が前記事前収集動作指令を記憶すると同時に、前記画像データ記憶装置が前記人間の手の前記複数の画像データを時系列で取得することを特徴とする請求項1に記載のロボットの駆動システム。
【請求項8】
前記動作画像データの特徴量が、主成分分析により得た各主成分ごとの主成分得点である請求項1に記載のロボットの駆動システム。
【請求項9】
画像データ特定及び動作指令発生装置は、前記画像対応動作指令記憶手段が、前記画像データと前記事前収集動作指令とを対応付けて記憶する際に、
前記複数の画像データのそれぞれの特徴量を個々に演算し、
前記複数の画像データのそれぞれの特徴量を主成分分析して、前記複数の画像データのそれぞれについて主成分得点を演算し、且つ累積寄与率に基づいて第1主成分から第k主成分までの主成分の数を決定し、
前記第1主成分から第k主成分までの各主成分ごとに、前記複数の画像データを前記主成分得点の大きさを基準にして並べ替えて得たk種類の画像データソースを作成して記憶し、
さらに、画像データ特定及び動作指令発生装置は、前記動作画像データに対応する画像データを特定する際に、
前記動作画像データ及び該動作画像データの解像度が異なる複数種類の動作画像データについて求めた主成分得点を基準にして前記k種類の画像データソースから前記照合用の複数の画像データをそれぞれ抽出することを特徴とする請求項1に記載のロボットの駆動システム。
【請求項10】
動作指令に応じて動作するロボットの駆動プログラムであって、
ロボットに対応する動作物と、前記動作物に設けられて前記動作物の動きを検出する複数のセンサと、前記複数のセンサの出力に基づいて前記動作指令を発生する動作指令発生装置とを用い、前記動作物に所定の動作を行わせたときの前記複数のセンサの出力に基づいて前記動作指令発生装置が発生する前記動作指令を事前収集動作指令として記憶する第1の処理と、
前記動作物に前記所定の動作を行わせたときの前記動作物の複数の画像データを取得するか、または前記動作物またはその擬似物に前記所定の動作と同じ動作を行わせたときの前記動作物またはその擬似物の複数の画像データを時系列で取得する第2の処理と、
前記複数の画像データに含まれる画像データと前記事前収集動作指令とを対応付けて前記複数の画像データと前記事前収集動作指令とを画像対応動作指令記憶手段に記憶する第3の処理と、
前記ロボットを動作させるために、前記動作物またはその擬似物に所望の動作を行わせ、その際に前記動作物またはその擬似物の動作画像データを時系列でロボット動作用画像データとして取得する第4の処理と、
前記ロボット動作用画像データに含まれる前記動作画像データに対応する画像データを前記画像対応動作指令記憶手段に記憶している前記複数の画像データから特定し、この際、前記動作画像データを分割して得られる複数の分割画像において抽出された特徴量を基準にして照合用の複数の画像データを選択し、前記照合用の複数の画像データと前記動作画像データとの類似度に基づいて前記動作画像データに対応する画像データを特定し、特定した前記画像データに対応する前記事前収集動作指令を前記動作指令として前記ロボットに与える第5の処理とを情報処理装置に実装して実行させるロボットの駆動プログラム。
【請求項1】
動作指令に応じて動作するロボットの駆動システムであって、
ロボットに対応する動作物と、前記動作物に設けられて前記動作物の動きを検出する複数のセンサと、前記複数のセンサの出力に基づいて前記動作指令を発生する動作指令発生装置とを用い、前記動作物に所定の動作を行わせたときの前記複数のセンサの出力に基づいて前記動作指令発生装置が発生する前記動作指令を事前収集動作指令として記憶する事前収集動作指令記憶装置と、
前記動作物に前記所定の動作を行わせたときの前記動作物の複数の画像データを取得するか、または前記動作物またはその擬似物に前記所定の動作と同じ動作を行わせたときの前記動作物またはその擬似物の複数の画像データを時系列で取得する画像データ記憶装置と、
前記複数の画像データに含まれる画像データと前記事前収集動作指令とを対応付けて前記複数の画像データと前記事前収集動作指令とを記憶する画像対応動作指令記憶手段と、
前記ロボットを動作させるために、前記動作物またはその擬似物に所望の動作を行わせ、その際に前記動作物またはその擬似物の動作画像データを時系列でロボット動作用画像データとして取得するロボット動作用画像データ記憶装置と、
前記ロボット動作用画像データに含まれる前記動作画像データに対応する画像データを前記画像対応動作指令記憶手段に記憶している前記複数の画像データから特定し、特定した前記画像データに対応する前記事前収集動作指令を前記動作指令として前記ロボットに与える画像データ特定及び動作指令発生装置とを備え、
前記画像データ特定及び動作指令発生装置は、前記画像対応動作指令記憶手段に記憶している前記複数の画像データから前記動作画像データに対応する画像データを特定する際に、前記動作画像データを分割して得られる複数の分割画像において抽出された特徴量を基準にして照合用の複数の画像データを選択し、前記照合用の複数の画像データと前記動作画像データとの類似度に基づいて前記動作画像データに対応する画像データを特定することを特徴とするロボットの駆動方法。
【請求項2】
前記擬似物はコンピュータグラフィック技術により作成されたものであり、前記擬似物の画像データはコンピュータグラフィック画像データである請求項1に記載のロボットの駆動システム。
【請求項3】
前記複数のセンサを備えた前記動作物の表面を、前記複数のセンサを含めて被覆物によって覆った状態で、当該動作物に前記所定の動作を行わせ、その際に、前記事前収集動作指令記憶装置が前記事前収集動作指令を記憶すると同時に、前記画像データ記憶装置が前記動作物の前記複数の画像データを時系列で取得することを特徴とする請求項1に記載のロボットの駆動システム。
【請求項4】
前記複数の画像データには、前記複数の画像データの解像度を変えて作成した複数の解像度変更画像データが含まれている請求項2または3に記載のロボットの駆動システム。
【請求項5】
前記画像データ記憶装置は、前記コンピュータグラフィック技術により作成された、時系列で取得した前の前記画像データと後の前記画像データとの間の未作成の画像データを記憶し、
前記画像対応動作指令記憶手段は、作成した前記画像データに対応する事前収集動作指令を前記前の画像データに対応する事前収集動作指令と前記後の画像データに対応する事前収集動作指令とに基づいて推定により作成して前記未作成の画像データと対応付けて記憶することを特徴とする請求項2に記載のロボットの駆動システム。
【請求項6】
前記動作物は人間の手であり、前記人間の手に装着するデータグローブのグローブ本体に前記ロボットの手の動作部に対応した人間の手の動作部の動きを検出する位置に装着された前記複数のセンサを用い、
前記事前収集動作指令記憶装置は、前記動作物に所定の動作を行わせたときの前記複数のセンサの出力に基づいて前記動作指令発生装置が発生する前記動作指令を事前収集動作指令として記憶することを特徴とする請求項1に記載のロボットの駆動システム。
【請求項7】
前記動作物は人間の手であり、前記人間の手に装着するデータグローブのグローブ本体に前記ロボットの手の動作部に対応した人間の手の動作部の動きを検出する位置に装着された前記複数のセンサを用い、さらに、前記データグローブを装着した前記人間の手に無地の手袋を嵌めた状態で、前記人間の手に前記所定の動作を行わせ、
その際に、前記事前収集動作指令記憶装置が前記事前収集動作指令を記憶すると同時に、前記画像データ記憶装置が前記人間の手の前記複数の画像データを時系列で取得することを特徴とする請求項1に記載のロボットの駆動システム。
【請求項8】
前記動作画像データの特徴量が、主成分分析により得た各主成分ごとの主成分得点である請求項1に記載のロボットの駆動システム。
【請求項9】
画像データ特定及び動作指令発生装置は、前記画像対応動作指令記憶手段が、前記画像データと前記事前収集動作指令とを対応付けて記憶する際に、
前記複数の画像データのそれぞれの特徴量を個々に演算し、
前記複数の画像データのそれぞれの特徴量を主成分分析して、前記複数の画像データのそれぞれについて主成分得点を演算し、且つ累積寄与率に基づいて第1主成分から第k主成分までの主成分の数を決定し、
前記第1主成分から第k主成分までの各主成分ごとに、前記複数の画像データを前記主成分得点の大きさを基準にして並べ替えて得たk種類の画像データソースを作成して記憶し、
さらに、画像データ特定及び動作指令発生装置は、前記動作画像データに対応する画像データを特定する際に、
前記動作画像データ及び該動作画像データの解像度が異なる複数種類の動作画像データについて求めた主成分得点を基準にして前記k種類の画像データソースから前記照合用の複数の画像データをそれぞれ抽出することを特徴とする請求項1に記載のロボットの駆動システム。
【請求項10】
動作指令に応じて動作するロボットの駆動プログラムであって、
ロボットに対応する動作物と、前記動作物に設けられて前記動作物の動きを検出する複数のセンサと、前記複数のセンサの出力に基づいて前記動作指令を発生する動作指令発生装置とを用い、前記動作物に所定の動作を行わせたときの前記複数のセンサの出力に基づいて前記動作指令発生装置が発生する前記動作指令を事前収集動作指令として記憶する第1の処理と、
前記動作物に前記所定の動作を行わせたときの前記動作物の複数の画像データを取得するか、または前記動作物またはその擬似物に前記所定の動作と同じ動作を行わせたときの前記動作物またはその擬似物の複数の画像データを時系列で取得する第2の処理と、
前記複数の画像データに含まれる画像データと前記事前収集動作指令とを対応付けて前記複数の画像データと前記事前収集動作指令とを画像対応動作指令記憶手段に記憶する第3の処理と、
前記ロボットを動作させるために、前記動作物またはその擬似物に所望の動作を行わせ、その際に前記動作物またはその擬似物の動作画像データを時系列でロボット動作用画像データとして取得する第4の処理と、
前記ロボット動作用画像データに含まれる前記動作画像データに対応する画像データを前記画像対応動作指令記憶手段に記憶している前記複数の画像データから特定し、この際、前記動作画像データを分割して得られる複数の分割画像において抽出された特徴量を基準にして照合用の複数の画像データを選択し、前記照合用の複数の画像データと前記動作画像データとの類似度に基づいて前記動作画像データに対応する画像データを特定し、特定した前記画像データに対応する前記事前収集動作指令を前記動作指令として前記ロボットに与える第5の処理とを情報処理装置に実装して実行させるロボットの駆動プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図10】
【図11】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図9】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図10】
【図11】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図9】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2011−131376(P2011−131376A)
【公開日】平成23年7月7日(2011.7.7)
【国際特許分類】
【出願番号】特願2011−62873(P2011−62873)
【出願日】平成23年3月22日(2011.3.22)
【分割の表示】特願2005−515481(P2005−515481)の分割
【原出願日】平成16年11月15日(2004.11.15)
【出願人】(503360115)独立行政法人科学技術振興機構 (1,734)
【Fターム(参考)】
【公開日】平成23年7月7日(2011.7.7)
【国際特許分類】
【出願日】平成23年3月22日(2011.3.22)
【分割の表示】特願2005−515481(P2005−515481)の分割
【原出願日】平成16年11月15日(2004.11.15)
【出願人】(503360115)独立行政法人科学技術振興機構 (1,734)
【Fターム(参考)】
[ Back to top ]