TOP > 国内特許検索 > 高速検索方法を用いたロボットの駆動方法 > 明細書

明細書 :高速検索方法を用いたロボットの駆動方法

発行国 日本国特許庁(JP)
公報種別 特許公報(B2)
特許番号 特許第4410208号 (P4410208)
公開番号 特開2006-294018 (P2006-294018A)
登録日 平成21年11月20日(2009.11.20)
発行日 平成22年2月3日(2010.2.3)
公開日 平成18年10月26日(2006.10.26)
発明の名称または考案の名称 高速検索方法を用いたロボットの駆動方法
国際特許分類 G06F  17/30        (2006.01)
B25J   9/22        (2006.01)
FI G06F 17/30 350C
G06F 17/30 150A
G06F 17/30 170B
B25J 9/22 Z
請求項の数または発明の数 5
全頁数 28
出願番号 特願2006-075505 (P2006-075505)
出願日 平成18年3月17日(2006.3.17)
優先権出願番号 2005078256
優先日 平成17年3月17日(2005.3.17)
優先権主張国 日本国(JP)
審査請求日 平成18年3月20日(2006.3.20)
特許権者または実用新案権者 【識別番号】503360115
【氏名又は名称】独立行政法人科学技術振興機構
発明者または考案者 【氏名】星野 聖
【氏名】谷本 貴頌
個別代理人の代理人 【識別番号】100091443、【弁理士】、【氏名又は名称】西浦 ▲嗣▼晴
審査官 【審査官】野田 佳邦
参考文献・文献 特開2003-208436(JP,A)
添石 幸憲,ヒト型ロボットハンド制御のための手指形状推定,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,2002年 1月17日,第101巻,第594号,p.25-29
久保正明,ウェーブレットとSOMを用いたエッジ特徴による類似画像検索システムの開発,第13回データ工学ワークショップ(DEWS2002)論文集 B1-3,電子情報通信学会,2002年 3月 4日
片山 幸治,大規模気象画像データにおけるデータマイニング法,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,1998年12月17日,第98巻,第486号,p.33-40
谷本 貴頌,データベースを用いた手指形状の実時間推定,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,2004年 6月11日,第104巻,第125号,p.1-6
谷本 貴頌,自己増殖型SOMを用いた画像データベースからの手指形状の実時間推定,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,2005年 3月18日,第104巻,第747号,p.13-18
調査した分野 G06F 17/30
B25J 9/22
特許請求の範囲 【請求項1】
動作指令に応じて動作するロボットの駆動方法であって、
ロボットに対応する動作物と、前記動作物に設けられて前記動作物の動きを検出する複数のセンサと、前記複数のセンサの出力に基づいて前記動作指令を発生する動作指令発生装置とを用い、前記動作物に所定の動作を行わせたときの前記複数のセンサの出力に基づいて前記動作指令発生装置が発生する前記動作指令を事前収集動作指令として事前収集動作指令記憶装置に記憶させる第1のステップと、
前記動作物またはその擬似物に前記所定の動作と同じ動作をさせたときの前記動作物またはその擬似物の複数の画像データを時系列で画像データ記憶装置に記憶させる第2のステップと、
前記複数の画像データに含まれる画像データと前記事前収集動作指令とを対応付けて対応データとして画像対応動作指令記憶手段に記憶させる第3のステップと、
前記ロボットを動作させるために、前記動作物またはその擬似物に所望の動作を行わせ、その際に前記動作物またはその擬似物の動作画像データを時系列でロボット動作用画像データとして取得してロボット動作用画像データ記憶装置に記憶させる第4のステップと、
前記ロボット動作用画像データに含まれる前記動作画像データに対応する画像データを前記画像対応動作指令記憶手段に記憶している前記複数の画像データから時系列で特定し、特定した前記画像データに対応する前記事前収集動作指令を前記動作指令として前記ロボットの駆動装置に与える第5のステップとをそれぞれコンピュータが実行し、
前記第1のステップで収集する事前収集動作指令は、前記複数のセンサの出力に対応した複数の真値から構成され、
前記第3のステップは、前記複数の画像データのそれぞれについて特徴量を演算する演算ステップと、複数の前記対応データを複数のクラスに分ける基準として前記複数の真値を用いて自己組織化を行い前記複数の対応データを前記複数のクラスに分ける自己組織化ステップと、1つの前記クラスに含まれる複数の前記対応データのそれぞれの前記特徴量を代表する代表特徴量を決定する代表特徴量決定ステップと、前記複数の真値及び前記特徴量を含む前記対応データを前記複数のクラスに分け且つ該複数のクラスに対応する複数の前記代表特徴量と一緒に前記画像対応動作指令記憶手段に記憶する記憶ステップを含んで構成されており、
前記第5のステップは、前記動作画像データから求めた特徴量を前記複数の前記代表特徴量と対比して対応する前記クラスを検索する第1の検索ステップと、前記動作画像データから求めた前記特徴量を前記第1の検索ステップで検索した前記クラスに含まれる前記複数の対応データ中の前記複数の特徴量と対比して前記画像データを特定する第2の検索ステップとを含んで構成されていることを特徴とするロボットの駆動方法。
【請求項2】
動作指令に応じて動作するロボットの駆動方法であって、
ロボットに対応する動作物と、前記動作物に設けられて前記動作物の動きを検出する複数のセンサと、前記複数のセンサの出力に基づいて前記動作指令を発生する動作指令発生装置とを用い、前記動作物に所定の動作を行わせたときの前記複数のセンサの出力に基づいて前記動作指令発生装置が発生する前記動作指令を事前収集動作指令として事前収集動作指令記憶装置に記憶させる第1のステップと、
前記動作物またはその擬似物に前記所定の動作と同じ動作をさせたときの前記動作物またはその擬似物の複数の画像データを時系列で画像データ記憶装置に記憶させる第2のステップと、
前記複数の画像データに含まれる画像データと前記事前収集動作指令とを対応付けて対応データとして画像対応動作指令記憶手段に記憶させる第3のステップと、
前記ロボットを動作させるために、前記動作物またはその擬似物に所望の動作を行わせ、その際に前記動作物またはその擬似物の動作画像データを時系列でロボット動作用画像データとして取得ロボット動作用画像データ記憶装置に記憶させる第4のステップと、
前記ロボット動作用画像データに含まれる前記動作画像データに対応する画像データを前記画像対応動作指令記憶手段に記憶している前記複数の画像データから時系列で特定し、特定した前記画像データに対応する前記事前収集動作指令を前記動作指令として前記ロボットの駆動装置に与える第5のステップとをコンピュータがそれぞれ実行し、
前記第1のステップで収集する前記事前収集動作指令は、前記複数のセンサの出力に対応した複数の真値から構成され、
前記第3のステップは、前記複数の画像データのそれぞれについて特徴量を演算する演算ステップと、複数の前記対応データを複数のクラスに分ける基準として、少なくとも最初の段階では前記複数の真値を用いて自己組織化を行って前記複数の対応データをn段階(nは2以上の整数)の前記複数のクラスに分ける多重自己組織化ステップと、1つの前記クラスに含まれる複数の前記対応データのそれぞれの前記特徴量を代表する代表特徴量を決定する代表特徴量決定ステップと、前記複数の真値及び前記特徴量を含む前記対応データを前記複数のクラスに分け且つ該複数のクラスに対応する複数の前記代表特徴量と一緒に前記画像対応動作指令記憶手段に記憶する記憶ステップを含んで構成されており、
前記第5のステップは、前記動作画像データから求めた特徴量を前記複数の前記代表特徴量と対比して対応する前記クラスを検索する第1の検索ステップと、前記動作画像データから求めた前記特徴量を前記第1の検索ステップで検索した前記クラスに含まれる前記複数の対応データ中の前記複数の特徴量と対比して前記画像データを特定する第2の検索ステップとを含んで構成されていることを特徴とするロボットの駆動方法。
【請求項3】
前記第5のステップの前記第1の検索ステップでは、前回の検索で決定された一つのクラスと該一つのクラスの前記代表特徴量と近似する代表特徴量を有する1以上の他のクラスだけを、次回の第1の検索ステップにおける検索対象のクラスとすることを特徴とする請求項1または2に記載のロボットの駆動方法。
【請求項4】
前記第1の検索ステップ及び第2の検索ステップでは、データの対比にユークリッド距離を用いている請求項1または2に記載のロボットの駆動方法。
【請求項5】
前記自己組織化において、各クラスの前記対応データが予め定めた数より小さいか否かを確認し、各クラスが概ね同数の前記対応データを持つように、クラスの増殖及び消滅を行う請求項1または2に記載のロボットの駆動方法。
発明の詳細な説明 【技術分野】
【0001】
本発明は、ロボットの駆動方法に関するものである。
【背景技術】
【0002】
特開2004-46612号公報等には、自己組織化技術を用いてデータベースを構築し、データの検索を高速化する技術が記載されている。従来は、自己組織化をする場合に、特にデータベースに蓄積されるデータの種類を考慮していない。そのため自己組織化の基準とするデータの精度が、検索精度に大きな影響を与えている。
【0003】
また特開2005-14166号公報に示されるロボットハンドの駆動方法や、PCT/JP2004/16968に示されたロボットの駆動方法のように、データベースに蓄積されたデータを用いてロボットを駆動する場合には、データベースから所望のデータを高速で検索することや、検索に要する時間の均等化が望まれている。

【特許文献1】特開2004-46612号公報
【特許文献2】特開2005-14166号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、従来公知の自己組織化により構築されたデータベースを利用する場合には、検索時間を速くしてしかも検索精度を高めることには、限界があった。
【0005】
本発明の目的は、従来よりも検索時間を速くすることができてしかも検索精度を高めることができるデータベースの高速検索方法を提供することにある。
【0006】
本発明の更に他の目的は、検索に要する時間の均等化が可能なデータベースの高速検索方法を提供することにある。
【0007】
本発明の他の目的は、データベースの高速検索方法を利用したロボットの駆動方法を提供することにある。
【課題を解決するための手段】
【0008】
値と推定量とが組になった複数のデータが自己組織化により複数のクラスにより分けられて保存されているデータベースから、ある推定量を持った未知のデータに対応するデータを高速で検索するデータベースの高速検索方法を対象とする。ここで真値とは、センサ等から出力された変動しないまたは確定した値である。また推定量とは、演算によって求める特徴量等のように、条件が異なることによって変動する量のことである。本発明の方法では、真値をクラス分けの際の基準として自己組織化を行って複数のデータを複数のクラスに分け、且つ複数のクラスに含まれる複数のデータのそれぞれの推定量を代表する代表推定量を複数のクラスに対してそれぞれ有している構造のデータベースを用いる。なお自己組織化において、クラスの自己増殖及び自己消滅を導入すると、データが特徴空間内に均等に存在し、また各クラスが概ね同数のデータを持つようになるので、特徴空間内にクラスがまんべんなく分散配置され、かつ各クラスに含まれるデータの数に偏りが無くなって、検索に要する時間の均等化が可能になる。
【0009】
なおデータベースの構造を、真値をクラス分けの際の基準として自己組織化を行って前記複数のデータを第1段階の複数のクラスに分け、第1段階の複数のクラスにそれぞれ分けられた複数のデータを、真値をクラス分けの際の基準として自己組織化を行って、さらに第2段階の複数のクラスに分け、さらに必要に応じて前の段階の複数のクラスに分けられた複数のデータを、真値をクラス分けの際の基準として自己組織化を行って、さらに次の段階の複数のクラスに分ける多重自己組織化を行い、各段階における複数のクラスに含まれる複数のデータのそれぞれの推定量を代表する代表推定量を各段階における複数のクラスに対してそれぞれ設けた構造としてもよい。なおこの多重自己組織化は、前述のように本願明細書によって定義されたものである。このような多重自己組織化を実行すると、さらに検索時間を速くしてしかも検索精度を高めることができる。
【0010】
また第2段階以降のクラス分けでは、クラス分けの基準として真値だけでなく、推定量を用いてもよい。第1段階のクラス分けにおいて、クラス分けの基準として真値を用いるだけで、他の段階では推定量をクラス分けの基準として用いたとしても、推定量のみをクラス分けの基準とする場合と比べると、検索時間を速くして、しかも検索精度を高めることができ、更に検索に要する時間の均等化を図ることが可能になる。
【0011】
検索の対象が推定量である場合、従来の考え方であれば、推定量を自己組織化におけるクラス分けの基準として使用する。しかしながら推定量は条件によって変動する量であって、条件の定め方によってその量の精度は低下する。そこで本発明では、変動しない確定した真値をクラス分けの基準として使用して、クラス分けを行ったデータベースを使用する。また多層自己組織化を利用する場合にも、少なくとも最初の段階のクラス分けにおいて、真値をクラス分けの基準として使用して、クラス分けを行ったデータベースを使用する。これによってクラス分けの精度は向上する。そして本発明では、推定量を検索対象とするため、複数のクラスに含まれる複数のデータのそれぞれの推定量を代表する代表推定量を複数のクラスに対してそれぞれ定めることとした。この代表推定量を定めることによって、真値をクラス分けの基準として用いても、クラスを基準とした検索が可能になる。そこで本発明では、まず第1の検索ステップで、未知の入力データの推定量と複数の代表推定量との対比により該当するクラスを決定する。次に第2の検索ステップにより、第1の検索ステップで決定されたクラスに含まれる複数のデータのそれぞれの推定値と未知の入力データの推定値との対比により該当する最類似データを決定する。このように2段階の検索を実行すると、データベース内の全てのデータを検索対象とする必要がないので、データの検索を高速で行うことができる。
【0012】
また複数のデータが時系列で取得されたデータであり、複数の未知の入力データも時系列で取得されたデータである場合には、次のようにすると、更に検索の高速化を図ることができる。すなわち第1の検索ステップで、前回の検索で決定された一つのクラスと該一つのクラスの代表推定量と近似する代表推定量を有する1以上の他のクラスだけを、次回の第1の検索ステップにおける検索対象のクラスとすることである。ロボットの動作に関するデータのように、時系列で取得されるデータは、殆どの場合、連続して変化する。そのため、前回のデータと次回のデータとが極端に相違することはない。したがって前述のように、次回の検索の際に前回の検索で決定された一つのクラスと該一つのクラスの代表推定量と近似する代表推定量を有する1以上の他のクラスだけを、次回の第1の検索ステップにおける検索対象のクラスとして、検索対象とするクラスを減らしても、検索不能になるといった事態が発生することはない。したがって時系列で取得するデータの検索については、前述のようにすると、更に高速化を図ることができる。
【0013】
このデータベースの高速検索方法は、種々の用途に適用が可能である。特に、ロボットの駆動方法にこのデータベースの高速検索方法を適用すると、膨大なデータを蓄積したデータベースを用いても、迅速に必要なデータを検索することができ、リアルタイムで遅延なくロボットを駆動制御することが可能になる。具体的に本発明のロボットの駆動方法では、以下の第1乃至第5のステップを実行することによりロボットを駆動する。第1のステップでは、ロボットに対応する動作物と、この動作物に設けられて動作物の動きを検出する複数のセンサと、これら複数のセンサの出力に基づいて動作指令を発生する動作指令発生装置とを用いる。そして動作物に所定の動作を行わせたときの複数のセンサの出力に基づいて動作指令発生装置が発生する動作指令を事前収集動作指令として記憶する。ここで動作物とは、典型的には人間自体または人間の手や足等の動作する部位等であるが、動作物は人間以外の動物等でもよい。また事前収集動作指令は、複数のセンサの出力に基づく複数の値(真値)であり、例えば複数のセンサが角度を検出するセンサであれば、この事前収集動作指令は、複数のセンサが検出した角度に対応する値であってもよい。したがって事前収集動作指令がセンサの出力に対応するものであれば、複数のセンサが動作指令発生装置を兼ねることなる。
【0014】
第2のステップでは、動作物またはその擬似物に所定の動作と同じ動作をさせたときの動作物またはその擬似物の複数の画像データを時系列で取得する。ここで「動作物またはその擬似物」における「動作物」とは第1のステップの動作物と同じものでもよいが、同様の形状及び構造を有し(言換えると、同じ場所に同じ関節があり)且つ同じ動作を行い得るものであれば別の動作物であってもよい。また「動作物またはその擬似物」における「その擬似物」とは、その動作物をコンピュータグラフィック技術等の擬似物生成技術を用いて作成したものや、その動作物の人形等である。この場合疑似物の画像データは、疑似画像データである。特にコンピュータグラフィック技術を用いる場合の疑似物の画像データは、コンピュータグラフィック画像データである。複数の画像データを時系列で取得する方法または手法は、任意であり、単眼カメラ、両眼カメラのいずれにより撮影したものであってもよい。
【0015】
動作物が人間の手である場合、第2のステップでは、疑似物の複数の画像データに、人間の手に現れる個人差を考慮した画像データを含めておくと、後述する第5のステップにおける画像データの特定精度を高めることができる。ここで個人差が生じる相違要素には、拇指以外の4指の基節位置の曲率、拇指基節の張り出し具合、隣り合う二本の指の開き具合、開いた二本の指の基準角度の違い、拇指の反り具合等がある。このような個人差は、コンピュータグラフィック技術等の擬似物生成技術を用いて疑似物の画像データ(疑似画像データ)を作成する場合には、前述の相違要素をパラメータとして既に作成した基本となる疑似物の画像データを変更することにより簡単に得ることができる。したがって個人差を考慮した画像データの作成は、難しいものではなく、簡単である。
【0016】
また第2のステップで作成する複数の画像データには、疑似物の複数の画像データの解像度を変えて作成した複数の解像度変更画像データを含めてもよい。これは画像データの解像度を変えたほうが、画像の特徴が現れやすくなるものもあるからである。画像データの解像度は、基本となる画像データがあれば、簡単に変更することは可能である。
【0017】
第3のステップでは、第2のステップで得た複数の画像データに含まれる各画像データと事前収集動作指令とを対応付けて画像対応動作指令記憶手段(データベース)に記憶する。なお擬似物の画像データを用いる場合には、第3のステップでは、実際に撮影した画像だけでなく、第2のステップで取得した前の画像データと後の画像データとの間の未作成(未撮影)の画像データをコンピュータグラフィック技術により作成したものも対象とする。この場合には、未作成の画像データに対応する事前収集動作指令を、前の画像データに対応する事前収集動作指令と後の画像データに対応する事前収集動作指令とに基づいて推定により作成し、これを未作成の画像データと対応付けて記憶することができる。このようにすれば、少ない実際の画像データを用いて、より多くの画像データと事前収集動作指令との対応データを得ることができ、対応データ(画像データと事前収集動作指令とを対応付けたもの)の収集が大幅に簡単になる。
【0018】
また第3のステップは、対応データを取得するために、演算ステップと、自己組織化ステップと、代表特徴量決定ステップと記憶ステップとを含んで構成される。演算ステップでは、複数の画像データのそれぞれについて特徴量を演算する。自己組織化ステップでは、複数の対応データを複数のクラスに分ける基準として複数の真値を用いて自己組織化を行い複数の対応データを複数のクラスに分ける。代表特徴量決定ステップでは、1つのクラスに含まれる複数の対応データのそれぞれの特徴量(推定量)を代表する代表特徴量(代表推定量)を決定する。なおこの自己組織化ステップにおいて、前述の多重自己組織化を行って複数の対応データをn段階(ただしnは2以上の整数)の複数のクラスに分けても良いのは勿論である。この自己組織化ステップにおいて、少なくとも最初の段階において、複数の真値を用いて自己組織化を行えばよく、残りの段階では、画像データの特徴量をクラス分けの基準として用いることもできる。このようにしても全て画像データの特徴量をクラス分けの基準とする場合と比べれば、検索速度及び検索精度を向上させることが可能であり、また推定に要する時間を概ね均等にすることができる。
【0019】
そして記憶ステップでは、複数の真値及び特徴量を含む対応データを複数のクラスに分け且つ該複数のクラスに対応する複数の代表特徴量と一緒に画像対応動作指令記憶手段(データベース)に記憶する。ここでセンサの出力が角度に相当するものであれば、複数の真値は複数の角度に相当するものである。
【0020】
第4のステップでは、ロボットを動作させるために、動作物またはその擬似物に所望の動作を行わせ、その際に動作物またはその擬似物の画像データを時系列でロボット動作用画像データとして取得する。動作物にセンサを装着する必要はない。そして第5のステップでは、ロボット動作用画像データに含まれる動作画像データに対応する画像データを画像対応動作指令記憶手段に記憶している複数の画像データ(対応データ)から時系列で特定する。なおロボット動作用画像データに含まれる動作画像データと画像対応動作指令記憶手段に記憶されている複数の画像データとの対応は、画像データから演算により求めた特徴量を用いて、例えば類似度に基づいて判断することができる。したがって対応データには、各画像データの特徴量を含めている。類似度の求め方は任意であり、特定の方法に限定されるものではない。そして第5のステップでは、特定した画像データに対応する事前収集動作指令を動作指令としてロボットに与える。
【0021】
なお人間型ロボットにおいて不良設定性が多いのは、手である。したがってロボットハンドの駆動に本発明を適用すると、従来よりも簡単にロボットハンドを駆動することができる。なおこの場合、動作物としては人間の手またはその擬似物が用いられることになる。そして第1のステップでは、人間の手に装着するデータグローブを用いる。このデータグローブは、グローブ本体にロボットの手の動作部に対応した人間の手の動作部の動きを検出する位置に複数のセンサが装着された構造を有している。
【0022】
なお第1のステップは事前に行う作業であるため、第1のステップを切り離して、ロボットを駆動する装置に用いられる駆動方法においては、第2乃至第5のステップだけを用いてロボットを駆動することができるのは当然である。
【発明の効果】
【0023】
本発明によれば、リアルタイムで遅延なくロボットを駆動制御することが可能になる。
【発明を実施するための最良の形態】
【0024】
以下図面を参照して、データベースの高速検索方法をロボットの駆動方法に適用した実施の形態について説明する。なお実施の形態について説明する前に、本実施の形態で用いる技術の基礎について説明する。両眼あるいは単眼カメラによるヒト手指の3次元形状を推定する場合には、手指の形状が複雑で、しかも自己遮蔽も多く、形状の認識における不良設定性が存在する。そのため、赤外線レンジセンサや複数台のコンピュータを用いた並列計算装置といった周辺機器類を使用しない限り、高速で且つ高精度に推定することはできない。
【0025】
そこで、発明者らは、形状が複雑で自己遮蔽の多いヒトの手の形状推定とロボット制御を同時に解決できる非常に有効な、場合によっては唯一の方法が、人間の見まね能力であると考えて、人と同じような精度と処理速度で手指動作の再現が可能なロボットハンドの制御方法の開発を行った。そしてこの開発において、データベースから高速でデータを検索しなければならに問題に直面し、本発明の検索方法を発明した。
【0026】
以下、この開発に係わる本発明のロボットの駆動方法についての実施例を説明し、併せて本発明のデータベースの高速検索方法についての実施例を説明する。まず本実施の形態で用いる多指ロボットハンド(ロボット)の機構について説明する。図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°である。これらの構成によって、拇指と小指の接触が可能になり人の手指の可動域を十分に実現できている。
【0027】
各関節のアクチュエータ2には、DCマイクロモータを使用している。各指の第2関節、拇指の内外旋、内外転部位と拇指以外の4指間の開閉(アブダクション)用に掌の内部にそれぞれアクチュエータ2が設置されている。各関節の制御は、図示しない制御用計算機からの指令を受けて動作し、内部にD/Aコンバータや、小型サーボモータ専用ドライバー(マイクロサーボ)が配置された駆動装置3を介して、各アクチュエータ2のモータにかける電圧を変化させることで行う。各アクチュエータ2のモータには、インクリメンタルシャフトエンコーダが内蔵されている。このエンコーダの出力は、軸速度、回転方向の検出の他に、位置制御に使用できる。各関節の角度情報は、ギヤを介して分解能を挙げたエンコーダを介して図示しない制御用計算機にフィードバックされる機構を持っている。
【0028】
図3は、遠隔指令装置として使用するデータグローブ4の一例の概略構成を示す図である。このデータグローブ4には、手袋形の本体の関節部分を中心にして約16箇所の位置に分散して位置センサが備えられた構成を有している。具体的には、Virtual technologies社製のcyberglove(商標)をデータグローブとして用いている。このデータグローブのセンサ5は、拇指を除く各指のMP(中手指節関節),PIP(近位指節間関節)に一つずつ、拇指にはMP、PIP、DIP(遠位節間関節)についており、また各指の間にあるアブダクションを計測するセンサと掌の中央のセンサとで計16ヶ所に設置されている各センサ5はそれぞれ歪曲(ひずみ)度を数値化して30~40Hzで出力する仕様を有している。掌の中央に設置されているセンサ5は掌全体の歪曲度を計測するものであり、対する人型ロボットハンドにはその機構は備わっていないため、この実施の形態では、この中央のセンサ5は使用しない。
【0029】
人の手指動作を操作者が手に装着したデータグローブによりデータ化し、これを計算機に取り込んで多指型ロボットハンドの制御指令値に変換すれば、データグローブを装着した操作者の手の動作と同様の動作をロボットハンドで実現させることができる。
【0030】
データグローブによるロボットハンドの制御法において、一つの簡単な方法としては、サイバーグローブから出力されるデータを3次元座標位置に変換しロボットハンドの関節と対になる部分の角度情報を時系列で取り出し、それをロボットハンドに実行させて、ロボットハンドを動作させるという手段がある。しかし、この方法を用いるとデータグローブの各センサから出力される16個の値がそれぞれ各関節のX座標、Y座標、Z座標、ピッチ角、ヨー角、ロール角に変換され、一単位時刻あたり100ものデータが生成されることとなり、これからロボットハンドの動作に必要な8関節分のデータを抽出して使用することは計算効率や時間効率を考える面からも最適ではない。
【0031】
人の手指は拇指を除く四指に至って、他の四指の影響を少なからず受ける。その特徴を定量的に表すこともこの制御方法及び装置において重要であると考える。そこでデータグローブで得られるデータからロボットハンド制御用の指令値への変換式に本発明の実施の形態では、重回帰式を用いる。
【0032】
ロボットハンドの各関節に対し重回帰式、すなわちすべてのデータグローブからの出力の重み付き線形和によりそれぞれのロボットハンドの関節を記述するためには、まず重回帰分析を行い偏回帰係数を求める必要がある。そこで重回帰分析用のデータを取得するためにデータグローブ装着者は予め定めた時系列関節角度パターンに従って関節角度指令値を駆動装置3に入力して、ロボットハンドを動作させる。なお駆動装置3に指令を与える制御装置は、ロボットハンド1にあらかじめ重回帰分析に有効な動作を行わせる予め定めた時系列関節角度パターンの関節角度指令値を記憶している。そしてこのロボットハンドの動作に従い即ち倣って、データグローブを装着した操作者には、データグローブを装着した手において、指の屈伸、アブダクション等の動作を事前に行ってもらう。本発明では、このようにして計測したデータグローブ4の出力と計測に用いたロボットハンドの時系列関節角度パターンとを重回帰分析にかけ、各関節ごとの偏回帰係数を導き出す。下記の式は本実施の形態で用いる重回帰式である。
【数1】
JP0004410208B2_000002t.gif

【0033】
ここで、目的変数θiはロボットハンド1での制御対象となる関節各度の指令値、説明変数xinはデータグローブ4からの出力値、ainは偏回帰係数、a0nは残差である。この重回帰式で出される値はデータグローブ4での各指の関節角度の値であるので、この値をロボットハンドの角度指令値として制御を行えばよいことになる。
【0034】
図4には、事前収集動作指令を得る際に用いる多指ロボットハンドの制御装置と本発明のデータベースの高速検索方法を採用したロボットの駆動方法を用いてロボットハンドを駆動する装置の構成の一例の概略構成を示してある。図4に示した動作指令を事前に収集する際に用いる制御装置では、関節角度を指示する関節角度指令値yに応じて動作するアクチュエータを備えたk個(kは正の整数)の関節を有する多指ロボットハンド1を制御するものとする。そしてデータグローブ4は、操作者の手に装着されて操作者の手の動きに応じてn個(nは正の整数)の出力信号xnを出力する遠隔指令装置を構成している。この多指ロボットハンドの制御装置は、対応関係決定手段6と制御信号発生手段7とを備えている。対応関係決定手段6は、k個の関節のためのk個の関節角度指令値yそれぞれについて、各関節角度指令値yとn個の出力信号xnとの間の対応関係を予め定めるように構成されている。具体的には、対応関係決定手段6は、時系列関節角度パターン記憶手段61と、サンプリング手段62と、偏回帰係数導出手段63と、重回帰式決定手段64とを備えている。
【0035】
サンプリング手段63は、k個の関節(実際にはアクチュエータ2)にそれぞれ予め定めた時系列関節角度パターン記憶手段61に記憶した時系列関節角度パターンに従って関節角度指令値を入力して多指ロボットハンド1を動作させた状態において、多指ロボットハンド1の動きに倣うように操作者がデータグローブ4を操作したときにn個の出力信号xnを時系列でm回(mはnより大きい正の整数)サンプリングする。サンプリング手段62はサンプリングを開始する前に時系列関節角度パターン記憶手段61に指令を与え、時系列関節角度パターン記憶手段61は駆動装置3に予め定めた関節角度指令値を出力する。なお時系列関節角度パターンは、N次元空間をまんべんなく動くような任意の関数指令を多指ロボットハンドの関節(アクチュエータ)に与えるように構成するのが好ましい。駆動手段3は、これを受けて多指ロボットハンド1を動作させる。
【0036】
偏回帰係数導出手段63は、時系列関節角度パターン記憶手段61に記憶した時系列関節角度パターンと、サンプリング手段62から出力されるm回のサンプリングにより求めたm組のn個の出力信号xnとに基づいて重回帰分析を行い、k個の関節のそれぞれについて偏回帰係数を導出する。
【0037】
重回帰式決定手段64、偏回帰係数導出手段63が定めたk個の関節毎の偏回帰係数を用いて、k個の関節毎の関節角度指令値yとn個の出力信号xnとの間の対応関係を定めるk個の重回帰式を決定する。
【0038】
そして制御信号発生手段7は、対応関係決定手段6の重回帰式決定手段64が求めた対応関係とn個の出力信号xnとに基づいて、k個の関節角度指令値yを求め、k個の関節角度指令値yを示す制御信号(動作指令)を多指ロボットハンドのk個の関節を駆動するための駆動装置3に出力するように構成されている。この制御信号発生手段7は、重回帰式決定手段64が求めたk個の重回帰式を対応関係として用い、n個の出力信号xnを入力としてk個の関節角度指令値yを求める。これらk個の関節角度指令値yが動作指令(データベースの高速検索方法における真値)となる。なおデータグローブ4の動きに応じて制御指令発生手段7からは処理速度に応じた時間間隔で動作指令が出力される。なお図4の例においては、対応関係決定手段6及び制御信号発生手段7により動作物(操作者の手)に所定の動作を行わせたときの複数のセンサの出力に基づいて動作指令を発生する動作指令発生装置が構成されている。
【0039】
図6と図5乃至図7を用いて、ロボットハンドを駆動する方法の一例を説明する。第1のステップでは、事前収集動作指令記憶装置8が、データグローブ4を嵌めた手(動作物)に所定の動作を行わせたときのデータグローブ4の複数のセンサ5の出力に基づいて動作指令発生装置(6,7)が発生する動作指令を事前収集動作指令(データベースの高速検索方法における真値)として記憶する。この記憶動作をコンピュータを用いて実現する場合に用いるソフトウエアのアルゴリズムを図5に示す。
【0040】
第2のステップでは、図6に示すように、単眼カメラまたは両眼カメラ等からなるカメラ9によりデータグローブ4を手に装着して事前収集動作指令を取得するときと同じ動作(所定の動作)を人の手Hで行う。そしてこのときの手(動作物)Hの画像データを時系列で取得する。なおこの画像データの取得は、事前収集動作指令を取得するのと同時に行ってもよいが、後から行ってもよい。図6の例では、手Hで「グー」の形を作った状態の画像データをとり、この画像データに基づいてコンピュータグラフィック技術で手の擬似物の画像データPD1を作成する。そして手Hで「パー」の形を作った状態の画像データをとり、この画像データに基づいてコンピュータグラフィック技術で手の擬似物の画像データPDnを作成する。「グー」から「パー」まで変化するまでの間の過程の画像を実際に撮影してもよいが、図6のようにその間の画像をコンピュータグラフィック技術で作成してもよい。このようにして作成した画像データは、画像データ記憶装置10に記憶される。なおこの画像データは、データ処理が行われたデータであり、画像データから得た特徴量も画像データの一部として記憶される。この特徴量が、本発明のデータベースの高速検索方法における推定量に該当する。
【0041】
第3のステップでは、第2のステップで得た複数の画像データに含まれる各画像データ(特徴量を含む)と事前収集動作指令記憶装置8に記憶された事前収集動作指令(真値)とを対応付けて、対応データとして画像対応動作指令記憶手段11に記憶する。本例では、画像対応動作指令記憶手段11が高速検索の対象となるデータベースである。
【0042】
第3のステップは、対応データを取得するために、演算ステップと、自己組織化ステップと、代表特徴量決定ステップと記憶ステップとを実行する。演算ステップでは、複数の画像データのそれぞれについて特徴量を演算する。自己組織化ステップでは、複数の対応データを複数のクラスに分ける基準として複数の事前収集動作指令(真値)を用いて自己組織化を行い複数の対応データを複数のクラスに分ける。代表特徴量決定ステップでは、1つのクラスに含まれる複数の対応データのそれぞれの特徴量(推定量)を代表する代表特徴量(代表推定量)を決定する。そして記憶ステップでは、複数の真値及び特徴量を含む対応データを複数のクラスに分け且つ該複数のクラスに対応する複数の代表特徴量と一緒に画像対応動作指令記憶手段11(データベース)に記憶する。なお第3のステップで採用する演算ステップと、自己組織化ステップと、代表特徴量決定ステップと記憶ステップ自己組織化については、後の実施の形態の説明の中において併せて説明する。
【0043】
なお本例では、画像対応動作指令記憶手段11は、実際に撮影した画像のデータとこの画像から得た各画像データの特徴量だけでなく、時系列で取得した前の画像データPD1と後の画像データPDnとの間の未作成の画像データをコンピュータグラフィック技術により作成する場合には、作成した画像データに対応する事前収集動作指令を前の画像データPD1に対応する事前収集動作指令と後の画像データPDnに対応する事前収集動作指令とに基づいて推定により作成して未作成の画像データ及びこの画像データの特徴量と対応付けて記憶することができる。このようにすれば、少ない画像データによりより多くの画像データと事前収集動作指令との対応データを得ることができ、基礎データ(画像データと事前収集動作指令とを対応付けたデータ)の収集が大幅に簡単になる。
【0044】
第1から第3までのステップは、ロボットハンドを駆動するための事前作業として実施される。なお自由度ごとに5度刻みの精度の関節角度制御をロボットハンドの駆動において実現しようとすると、1億個(20の7乗)程度の数の画像が必要となるが、上述のようにコンピュータグラフィック技術を用いれば、基礎データの収集は簡単になる。この場合に用いることができるCG編集ソフトウエアとしては「Poser 5(Curious Labs Incorporated製)」を使用することができる。このソフトウエアを用いれば、データグローブ出力から得られた関節データから、撮像した手指2次元画像と類似した理想的な手指CG画像を補間生成することができる。そして補間生成した画像データに対応する事前収集動作指令は、関節角度の線形補間により生成することができる。なお、画像1枚あたりの手指CGのファイルサイズは5kB程度である。
【0045】
第4のステップ及び第5のステップは、実際にロボットハンドを駆動する際のステップである。第4のステップでは、ロボットハンドを動作させるために、手で所望の動作を行い。図6に示すように、その際の手の画像データをカメラ12を用いて時系列でロボット動作用画像データとして取得する。このロボット動作用画像データ(動作画像データ)は、ロボット動作用画像データ記憶装置13に記憶される。そして第5のステップでは、ロボット動作用画像データに含まれる動作画像データ(未知の画像データ)に対応する画像データを画像対応動作指令記憶手段11に記憶している複数の画像データから演算により求めた特徴量から時系列で特定する。この特定作業(検索作業)は、画像データ特定及び動作指令発生装置14で行う。この例では、ロボット動作用画像データに含まれる動作画像データの特徴量と画像対応動作指令記憶手段に記憶されている複数の画像データの特徴量との対応は、両者の特徴量の類似度に基づいて判断する。類似度の求め方は任意である。そして第5のステップでは、特定した画像データに対応する事前収集動作指令を動作指令として駆動装置3に与え、駆動装置3の出力で多指ロボットハンドを駆動する。第4及び第5のステップの主要部をコンピュータ用いて実現する場合のソフトウエアの一例のアルゴリズムは図10に示す通りである。
【0046】
画像データ特定及び動作指令発生装置14で画像データの検索に使用する画像データの特徴量を抽出する技術としては、例えば、高次局所自己相関関数を用いる特徴量抽出技術を利用することができる。高次局所自己相関関数については、1993年発行の電総研研究報告,j957の126頁乃至140に「柔らかな情報処理のための統計的手法の応用に関する研究」と題する論文に詳しく説明されている。手指2次元画像の特徴抽出には,高次局所自己相関関数を用いた。画面内の対象画像をf(r)とすると、N次自己相関関数は変位方向(a1,a2,…an)に対して次式のように定義される。
【数2】
JP0004410208B2_000003t.gif

【0047】
実証試験では、高次自己相関係数の次数Nを2とし、また変位方向を参照点rの周りの局所的な3×3画素の領域に限定した。これより、平行移動による等価な特徴を除くと特徴Mの数は後に説明する図12に示す25個になる。図12中の黒の四角は、局所パターンの対応する画素の位置に対応する。各特徴量の計算は、局所パターンの対応する画素の値の積を全画素に対して足し合わせることで得られる。
【0048】
上記の方法によれば、実際にロボットハンド1を動かすために、ロボットハンド1に対応する手の画像を得るだけで、センサを使用することなく、手の動きと同じ動作を、見まねにより不良設定性を解消してロボットハンドに動作させることができる。
【0049】
上記実施の形態では、第3のステップで実際に人の手の画像を撮影しているが、すべてコンピュータグラフィック技術により手の画像データ(手の擬似物の画像データ)を作成してもよいのは勿論である。画像データの特定のために、高次局所自己相関関数を用いる特徴量抽出技術を用いる場合、画像全体について特徴量を抽出せずに、精度を高めるために画像をいくつかの分割画像に分けて分割画像単位で特徴量を抽出してもよい。
【0050】
次に、本発明の別の実施の形態について説明する。この実施の形態では、前述の実施の形態とは異なって、図8に示すように、データグローブを嵌めた手の上にさらに無地(無模様:一色)の手袋(被覆物)を嵌めて、前述の第1のステップと第2のステップとを同時に実施する。図8において、下側の図がデータグローブを嵌めた手であり、上側の図がデータグローブを嵌めた手の上に手袋を嵌めた図である。図9は、事前にデータベースを作成する際の手順を示すフローチャートであり、図10は図9のフローチャートの詳細を示すフローチャートである。
【0051】
まずビデオカメラ109で、手袋を嵌めた状態の手を撮影する。本実施の形態では、高速ビデオカメラ109で撮影した手画像データおよびデータグローブから得た角度データを用いてデータベースを構築する。そのために画像データと角度データとを組にして取得する。本実施の形態では、モノクロ高速度カメラ(MEGAPLUS社製、ES310/T)を使い、解像度を320*240画素として、手指が画面内に十分な大きさで映っている状態を想定する。また角度データの測定には、Virtual Technologies社製の「CyberGlove」(商標)と呼ばれるデータグローブを用いた。そして手袋は、白一色で無模様のものを用いた。手袋をデータグローブの上に嵌めることにより、データグローブ固有の画像特徴(センサの形状やグローブの形状)が出るのを防止している。前の実施の形態と異なって、白手袋を撮影すると、ヒトの手とは色が違い、画像としても違うものとなる。しかしながら、手袋を嵌めた手の画像データであっても、後に説明するように、特徴量化により一般の手画像として扱うことができる。なおデータベース作成に際しては、背景画像が影響を及ぼさないようにするために、背面に無模様一色のスクリーンを用いて撮影を行う。そして連続する複数の画像データと一緒に、データグローブから取得した手指角度データを組にして1次データベースを作成する。必要十分な情報を得るために、手を連続的に動かして必要な画像データと角度データを同時に取得して、保存する。
【0052】
本実施の形態では、1次データベースの画像データを、実際に撮影した手画像の推定に必要な特徴量へと変換する画像処理を行なう。この画像処理のために背景除去、解像度変更、エッジ抽出、輪郭抽出(特徴量抽出)を行なう。
【0053】
まず画像の解像度を変更する。今回取得した画像は320×240の画素値を持つ画像である。しかしこれをそのまま用いて各種画像処理を施して推定処理をするには、計算に時間がかかる。また人間が推定する際には、本実施の形態で用いた画像のサイズより小さくとも推定が可能である。そこで本実施の形態では、解像度を、320×240の画素値から64×64のサイズに変更する。解像度変更後の画素値は次式により得られる。
【数3】
JP0004410208B2_000004t.gif

【0054】
ここで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の個数とする。
【0055】
次に画像情報から背景除去を行う。あらかじめ取得しておいた背景画像を用いて対象画像との差分を取る。その差分が閾値以上の場合は対象画像の画素を使い、以下ならば0とする。
【0056】
次に背景を除去した以上の操作で得られた解像度変更画像を用いてエッジ抽出を行なう。この作業で推定に必要な特徴を抜き出す。具体的にはソーベルフィルタで解像度変更画像をフィルタ処理する。その後、この画像の最外周のみを二値化することでエッジを抽出する。
【0057】
ソーベルフィルタによる処理は、次式で表現できる。
【数4】
JP0004410208B2_000005t.gif

【0058】
ここでfr(i、j)は下記の式で表すことができる。
【数5】
JP0004410208B2_000006t.gif

【0059】
上記式において、fi(i、j)は処理前の横i番目、縦j番目の画素を示す。fsが処理後の最終的な値となる。
【0060】
ここでの画像の最外周の二値化は、輪郭抽出で輪郭が途切れないように、比較的低い閾値で二値化することを意味する。この最後の画像処理として、エッジ抽出で得られた二値化画像上を走査することで輪郭抽出を行う。前段階のエッジ抽出により得た画像を輪郭として使用しない理由として、環境光の変化を上げることができる。実際の推定時とデータベース作成時とでは、環境光や人の肌の色等に違いがある。ましてやデータベース作成時には白手袋を使用しているため、エッジ抽出を行っても、エッジの値や幅などが実際の画像のエッジとは異なってくる。その結果、データベースの画像データと実際の画像データとを比較するとき(推定時)とで、両者のエッジには大幅な相違が生じる可能性がある。そこで輪郭抽出を行って、エッジの幅や値を一定にする。輪郭抽出は、データベースから得られる情報と推定時に得られる情報との差を少なくし、環境の影響などを排除することで、推定時の誤差を減少させるために採用する。図11は、エッジ抽出後に輪郭抽出を行って得た解像度変更後の画像である。
【0061】
なお最外周のみ二値化するための輪郭抽出アルゴリズムでは、画像を上から走査していき、最初の127の点を始点とした。始点から左回りに近傍画素を探索して行き、127の点があればそこへ移動し、値を255に書き換える。移動後は前回の位置を参考にして探索開始地点を8パターンに分けて探索を継続する。始点に再び戻った時点で輪郭を抽出したと判断し、探索を終了させる。最後に残りの点は輪郭ではないので127の点は全て0とする。
【0062】
次に輪郭抽出を行った画像データの特徴量化を実施する(特徴量決定のための演算ステップ)。本実施の形態では、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.)が提案している高次局所自己相関関数を特徴量化に使用した。高次局所自己相関特徴は、画像の認識や計測のために有効な特徴であり、下記の式で定義される高次相関関数について、参照点とその近傍についての計算をしたものである。
【数6】
JP0004410208B2_000007t.gif

【0063】
上記式でxNはN次元でのr点近傍の相関関数である。一般に自然画像を処理対象とする場合には、対象点回りの画素が重要になるため、係数Nを2次までとする。また、平行移動すると等価なものになるものを除くと、図12に示す25の特徴量で表現できる。ただしNo.1からNo.5までは、No.6以降の特徴量に比べスケールが小さいので、スケールを合わせる必要がある。No.2~No.5までは、参照点の画素をさらにかけあわせ、No.1は参照点の画素の2乗をかけることで他の特徴量にスケールを一致させる。
【0064】
本実施の形態では、図13に示すように、画像の画面を縦8分割、横8分割(64分割)にした。そして、計64分割した分割画面に対して、それぞれ画素全てを参照点として、高次局所自己相関関数によって25の特徴量に次元低減を行なった。すなわち、全体の画像で考えれば、25×画面分割数の特徴量により、その全体画像の特徴量化を行うことができる。
【0065】
このようにして1つの画像データを特徴量化した画像データとデータグローブからの角度データ(事前収集動作指令に対応)を組みにした対応データを一次データベースに記憶する。そしてすべての手指形状のパターン(画像データの特徴量と角度)の記録を行い、最後にデータベースの構築を行う。
【0066】
データベースの構築は、図14に示すコンピュータのアルゴリズムに従って、自己組織化を用いて実行される。一次データベースに記録されているデータは、図15に示すように、各データ1~nが角度と特徴量とデータ番号とを少なくとも有している。なおここで角度は、データグローブから得られた複数の角度データの全てまたは代表的な1以上の部分の角度である。説明を容易にするため、以下の説明ではこの角度を代表的な1つの角度として説明する。また特徴量は、前述の特徴量の演算により求められた全体画像の特徴量である。
【0067】
この例では、対応データに含まれる角度(真値)と特徴量(推定量)のうち、角度をクラス分けの基準にして自己組織化を行う(自己組織化ステップ)。図16の概念図に示すように、例えば最初に3つのクラス1~3を用意し、各クラスのクラス分けの基準となる角度を5°,24°及び40°としたとする。クラス分けにおいては、各クラスの基準となる角度と、各データ1~nの角度の角度差をユークリッド距離を用いて計算する。図16においては、理解を容易にするために単なる角度差として示してある。例えばデータ1の角度12°をクラス1乃至3の基準となる角度との差をとると、-7°、12°及び28°となる。ここで最も角度差が小さくなるクラスを選ぶ。図16の例では、クラス1が最も角度差が小さくなる。そこでデータ1はクラス1に所属することを決定する。ここで所属するとは、データ番号が各クラスに記録されることを意味し、データの内容全てがクラスに記録されることを意味しない。そしてクラス1の基準となる角度を、データ1の角度に近付けるように更新する。すなわちクラス1の角度を例えば、次のように改める。なお下記の式において係数は便宜的に0.2とする。この係数は1以下の正の数である。
【0068】
クラス1の更新角度=現在角度-(データの角度-現在角度)×係数
=5-(12-5)×0.2=6.4
このようにデータ1をクラス1に所属させることにより、クラス1の基準となる角度は更新される。なお本実施の形態では、各クラスに対して基準となる角度が近い関係を有する別の1以上のクラスを子クラスとして定義する。例えば、図16ではクラス2,3がクラス1の子クラスとして定義されるものとする。このような子クラスを定義した場合には、親クラスであるクラス1の基準となる角度の更新と併せて、子クラス2及び3の基準となる角度24°及び40°の更新も行う。この更新の計算には前述の計算式を用いる。子クラスの基準となる角度の更新が終了したら、全てのクラス間の角度差をユークリッド距離で計算し、各クラスの子クラスとして距離が近いn個のクラスを定義する。クラスの数が多くなった場合には、例えばnを4程度にしてもよい。
【0069】
次に各クラスのデータの数を確認する。各クラスのデータ数が予め定めた基準数Kより大きければ、後に説明するクラスの増殖を行う。なおこの基準数Kは、使用するコンピュータの性能により決定される。たとえば、使用する計算機の性能によりリアルタイム処理が可能な検索回数が1秒あたり2,000回であり、毎回の未知データ入力に対して10クラスの検索を行うとしたら、1クラスあたりのデータ数Kは200個となる。反対に、毎回の学習の最後には各クラスのデータ数が予め定めた基準数Lより小さいか否かを確認し、小さければ該当クラスの削減を行う。この基準数Lも、使用するコンピュータの性能により決定される。図17は、クラスの自己増殖と自己削減を模擬的に示した図である。ここで自己増殖では、クラス1をコピーして別のクラス1を作成する。なおこの別のクラス1には新たなクラス番号が付されることになる。自己増殖したクラスの最初の基準となる角度及び所属するデータのデータ番号の内容は同じである。しかし後に前述のクラス分けが実施されると、自己増殖したクラスの基準となる角度及び内容は変わってくる。このような自己増殖が行われると、同じデータが複数のクラスに所属することになるが、後に説明するように全てのデータについて繰り返しクラス分けが実施されるため、最終的に一つのデータが複数のクラスに所属することはなくなる。このようにして1つのデータの所属の決定動作が、全てのデータiの所属が決まるまで繰り返される。この動作が繰り返されているうちに、各クラスの基準となる角度が変わり、またクラスの自己増殖または自己削減が行われる。
【0070】
全てのデータiのクラス分けが終了したときに、各クラスの基準となる角度の更新の幅が、予め定めた幅(角度差)より大きいときには、クラス分けが不十分であると判断して、再度全てのデータiについてのクラス分けて行う。そしてクラスの基準となる角度の更新の幅が、予め定めた幅(角度差)より小さくなった時点でクラス分けを終了する。なおこの予め定めた幅とは、例えば、前々回と前回の学習結果の差と、前回と今回の学習結果の差とを比べた時に、両者の差が絶対値の総和で0.01%以下となった時である。
【0071】
図18はクラス分けが終了したときのクラス1の内容を概念的に示す図である。更新を繰り返して基準となる角度と、子クラスが決まる。ここで実際にデータベースを完成するためには、クラス1に所属するデータの代表的な特徴量(代表特徴量即ち代表推定量)を決める必要がある。代表特徴量は、例えば所属するデータの特徴量の平均値とすることができる(代表特徴量決定ステップ)。この代表特徴量は、後の高速検索において使用される。図19は、完成したデータベースの一つのクラス1の内容を概念的に示している。データベースが完了した時点で各クラスには、基準となる角度と、代表特徴量と、子クラスと、所属するデータの角度と特徴量がそれぞれ記録される。図20は完成し自己組織化により完成したデータベースの構成を概念的に示す図である。なお実線で囲んだクラス1乃至3が親と子の関係になるクラスである。この親子関係は、後の検索の際の高速化のために使用される。
【0072】
次に、上記のようにして作成したデータベース(画像対応動作指令記憶手段)を利用して、実際に撮影した手の画像から手指角度を推定する方法について説明する。図21は検索時の手順を示すアルゴリズムであり、図22はその具体的なアルゴリズムである。まず検索すなわち推定時には、データベース作成時と同様に高速カメラで動く手の画像(動作画像データ)を取得する。そして取得した動作画像データに対し、データベース作成時と同様の画像処理を施し特徴量を抽出する。そしてこの動作画像データの特徴量とデータベースに記憶されている対応データの特徴量とを後述の処理により比較し、動作画像データと最も近い画像データと組になる角度データを、その動作画像データに対応する動作指令として出力する。
【0073】
特に、データベースとの照合処理または検索処理では、データベースにクラス分けされて記憶されている画像データの特徴量全てに対して、動作画像データの特徴量との間の距離算出を行なうのではなく、図22に示すように動作画像データの特徴量(未知のデータの推定量)とデータベースに記録されている複数のクラスの代表特徴量(代表推定量)との対比により検索の対象となるクラスを決定する(第1の検索ステップ:クラスタリング)。このクラスの決定には、ユークリッド距離の計算を用いればよい。
【0074】
前述のように、各クラスに対して子クラスが定義されている場合には、該当するクラスとその子クラスとが検索の対象となるクラスである。そして該当するクラスに所属する複数のデータと推定の対象となる画像のデータ(特徴量)との対比を行う。具体的には、推定の対象となるデータの特徴量と該当するクラスに所属するデータの特徴との距離を求める。この例では、距離の算出は単純なユークリッド距離で行なった。最終的な距離は、下記式より算出した。
【数7】
JP0004410208B2_000008t.gif

【0075】
上記式において、xriは候補rの高次局所自己相関関数による特徴量i、xtiは時刻tでの高次局所自己相関関数による特徴量iである。Erを最小にするデータrの角度を、その動作画像データの推定角度とした。ただし、角度の大幅に違うものの中に特徴量の近いデータが紛れ込むことがあるので、前回(t-1時刻)の推定角度との比較を行って角度制限を行う。具体的には、距離が近いものについて、下記式で示す評価関数Apが規定値を超える場合には、推定候補から除外した。そして評価関数Apが規定値以内であれば、その推定角度を採用することとする。
【数8】
JP0004410208B2_000009t.gif

【0076】
ここでangi(t)は時刻tのi番目の角度データである。また、データグローブから得られる角度情報は24となっている。以上の操作により現在の推定角度を求める。
【0077】
前述のように、自己組織化されたデータベースを用いると、各クラスには、画像データの並びにおいて、手の形状の近い画像データに関するデータが集まるようになる。これを利用することで距離計算の対象データを削減することができる。なお親のクラスに該当するデータが無ければ、子クラスに所属するデータについても距離計算を行う。
【0078】
なおロボットの動きのように連続している動き(時系列の動き)の動作画像は、前回の動作画像と次回の動作画像が近似したものとなる。したがって次回の動作画像に対応するデータを推定(検索)する場合の第1の検索ステップでは、前回の推定(検索)ステップで決定された一つのクラスと該一つのクラスの代表特徴量(代表推定量)と近似する代表特徴量を有する1以上の他のクラスだけを、次回の第1の検索ステップにおける検索対象のクラスとしてもよい。このようにすると第1の検索ステップにおいて該当するクラスを決定する時間が短くなる。
【0079】
図23は、前回の推定結果を利用する場合で、図22の第2の検索ステップとは異なる方法で該当クラス内のデータとの照合を行う場合のアルゴリズムを示している。このアルゴリズムでは、前回の推定結果に決定されたデータが所属するクラスの周囲の各クラスの代表特徴量と次回の動作画像のデータ(特徴量)との間の特徴量差をユークリッド距離を用いて計算する。そして最も特徴量差が小さくなるクラス(最近傍クラス)に所属する複数のデータの角度と前回の推定結果のデータの角度差をユークリッド距離を用いて計算する。そして角度差が予め定めた閾値以上のものを除外して、推定候補データとする。次に、これら推定候補データと動作画像のデータ間の特徴量差をユークリッド距離を用いて計算し、最も特徴量差が小さくなるデータを推定結果即ち検索結果とする。そしてこの推定結果のデータの角度を動作指令として用いる。
【0080】
図4に示した最初の実施の形態における画像対応動作指令記憶手段11は、図8以降に示した二番目の実施の形態におけるデータベースと同様に、図14~図20に示した自己組織化技術と同じ技術を用いてクラス分けされたデータベースとして構成されている。そして画像データ特定及び動作指令発生装置14による入力画像データの特徴量と記憶している画像データの特徴量との対比は、図21乃至図23で説明した二番目の実施の形態におけるデータベースの照合と同じ方法を用いて実行できる。
【0081】
上記実施の形態では、特徴量を求めるにあたって、高次局所自己相関関数を用いた。しかしながらその他の特徴量の求め方を採用することができるのは勿論である。例えば、廣池敦、武者義則著の「大規模な画像集合のための表現モデル」(日本写真学会誌、66巻、1号、93~101頁、2003年発行)に記載の特徴量ベクトルの求め方を採用することもできる。
【0082】
上記二つの実施の形態は、本発明のデータベースの高速検索方法を、ロボットの制御方法におけるデータの検索に用いたものである。しかしながら、本発明のデータベースの高速検索方法は、その他の用途で使用されるデータベースの検索にも当然にして適用できるものであって、ロボットの制御方法に適用されることに限定されるものではない。
【0083】
上記実施の形態では、データベースの階層構造を1段階のクラス分けにより構成している。しかしながら図24に概念を示すように、データベースの階層構造をn段階のクラス分け(または多段階の樹状構造)により構成してもよい。このようなn段階のクラス分けを行う場合には、データベースを構成するに当たって、まず真値をクラス分けの際の基準として自己組織化を行って前記複数のデータを第1段階の複数のクラスに分けるクラス分けを行う[図24の(1)]。次に、第1段階の複数のクラスにそれぞれ分けられた複数のデータを、真値をクラス分けの基準として自己組織化を行って、さらに第2段階の複数のクラスに分けるクラス分けを行う[図24の(2)]。さらに必要に応じて前の段階の複数のクラスに分けられた複数のデータを、真値をクラス分けの際の基準として自己組織化を行って、さらに次の段階の複数のクラスに分けるクラス分けを行う[図24の(3)及び(4)]。このような多段階のクラス分けを多重自己組織化と言う。そして各段階における複数のクラスに含まれる複数のデータのそれぞれの推定量を代表する代表推定量を、各段階における複数のクラスに対してそれぞれ設ける。データ構造は、概念的には、図25に示すように、各クラスの中に分けられて存在している。なお図25中の(1)及び(2)が、図24中の(1)及び(2)のレベルに相当するものである。このような多段階構造のデータベースを用いた場合には、実験によると、1段階のクラス分けを行った場合と比べて、検索速度は3倍程度速くなることが確認されている。
【0084】
また上記実施の形態では、図12に示すように、25種類の局所パターンを用いて特徴量を求めている。しかしながら図26に示すような15種類の局所パターンを用いると、精度を大幅に落すことなく、特徴量計算速度を大幅に速くすることができる。なお図26に示した15種類の局所パターンは、画像全体あるいは領域を限定して特徴量化を行うのではなく、画像の輪郭に沿って特徴量化する場合に有効に使用できる局所パターンである。
【0085】
なお図24乃至図25に示した多重自己組織化によるデータベース及び図26に示した局所パターンは、ロボットの駆動方法に用、いるデータベースを構築する際にも当然にして適用できるものであり、このようなデータベースを使用することはロボットの制御速度の向上に大きく貢献する。
【0086】
なお多層自己組織化を利用する場合には、少なくとも最初のクラス分けで、真値をクラス分けの際の基準として用いればよく、2段階以降のクラス分けで、推定量(ロボットの駆動制御においては画像データの特徴量)をクラス分けの際の基準として用いてもよい。このようにしても、最初の段階で真値をクラス分けの際の基準として用いることにより、全てのクラス分けの基準として推定量を用いる場合と比べて、検索速度及び検索精度を高めることができ、更に推定に要する時間を概ね均等にすることができる。
【図面の簡単な説明】
【0087】
【図1】発明者等が開発した本実施の形態で制御の対象とする公知の多指ロボットハンドの平面図である。
【図2】図1のロボットハンドの内部に配置されたアクチュエータ(エンコーダ内蔵型超小形モータ)の配置構成を示す図である。
【図3】遠隔指令装置として使用するデータグローブの一例の概略構成を示す図である。
【図4】事前収集動作指令を得る際に用いる多指ロボットハンドの制御装置と本発明のデータベースの高速検索方法を採用したロボットの駆動方法を用いてロボットハンドを駆動する装置の構成の一例の概略構成を示す図である。
【図5】記憶動作をコンピュータを用いて実現する場合に用いるソフトウエアのアルゴリズムを示す図である。
【図6】カメラによりデータグローブを手に装着して事前収集動作指令を取得するときと同じ動作(所定の動作)を人の手で行って事前収集動作指令を取得する過程を説明するために用いる図である。
【図7】入力画像データに対応する画像データを特定する過程のアルゴリズムを示す図である。
【図8】データグローブを嵌めた手の上にさらに無地(無模様:一色)の手袋(被覆物)を嵌めて、必要なデータを得ることを説明するために用いる図である。
【図9】事前にデータベースを作成する際の手順を示すフローチャートである。
【図10】図9のフローチャートの詳細を示すフローチャートである。
【図11】エッジ抽出後に輪郭抽出を行って得た解像度変更後の画像である。
【図12】25種類の特徴量を表現する図である。
【図13】全体画像の特徴量化を説明するために用いる図である。
【図14】自己組織化をコンピュータを用いて行う際のソフトウエアのアルゴリズムを示す図である。
【図15】一次データベースに記録されているデータの内容を概念的に示す図である。
【図16】自己組織化におけるクラス分けを説明するために用いる図である。
【図17】自己組織化における増殖と消滅を説明するために用いる図である。
【図18】クラス分けが完了したときのクラスの記憶内容を概念的に示す図である。
【図19】自己組織化により作られたデータベースのクラスの記憶内容を概念的に示す図である。
【図20】自己組織化により作られたデータベース内の各クラスの関係を示す図である。
【図21】検索時の手順を示すアルゴリズムを示す図である。
【図22】図21の具体的なアルゴリズムを示す図である。
【図23】検索時の異なる手順を示すアルゴリズムを示す図である。
【図24】多重自己組織化の概念を説明するために用いる図である。
【図25】多重自己組織化によりクラス分けが完了したときのクラスの記憶内容を概念的に示す図である。
【図26】画像の輪郭形状の特徴量を計算するのに適した局所パターンを示す図である。
【符号の説明】
【0088】
1 多指ロボットハンド
3 駆動装置
4 データグローブ
6 対応関係決定手段
8 事前収集動作指令記憶装置
10 画像データ記憶装置
11 画像対応動作指令記憶手段(データベース)
図面
【図1】
0
【図2】
1
【図3】
2
【図4】
3
【図5】
4
【図7】
5
【図9】
6
【図10】
7
【図12】
8
【図14】
9
【図15】
10
【図16】
11
【図17】
12
【図18】
13
【図19】
14
【図20】
15
【図21】
16
【図22】
17
【図23】
18
【図24】
19
【図25】
20
【図26】
21
【図6】
22
【図8】
23
【図11】
24
【図13】
25