(57)【特許請求の範囲】
【請求項１】
自律的に動作可能な脚式移動型ロボット装置において、
現在の移動面に関する情報に基づき、予め用意された複数のカテゴリから現在の移動面のカテゴリである移動面カテゴリを判別する移動面判別手段と、
上記移動面判別手段により判別された上記移動面カテゴリに応じて所定の移動制御形態を選択し、少なくとも脚部に設けられたセンサから出力されるセンサ値から、選択されている移動制御形態に基づき移動制御量を算出して移動を制御する移動制御手段とを有し、
上記移動制御手段は、上記カテゴリ毎に異なる移動制御モデル又は移動アルゴリズムを有し、入力される上記移動面カテゴリに対応した移動制御モデル又は移動アルゴリズムを選択し、上記センサ値を使用して上記移動制御モデルからの補正量又は上記移動アルゴリズムに従った適応操作量を上記移動制御量として算出し、
上記移動面判別手段は、上記移動制御量を上記現在の移動面に関する情報として使用する
ロボット装置。
【請求項２】
上記移動制御手段は、上記センサ値を所定のパラメータを使用して上記移動制御量に換算するものであって、上記カテゴリ毎に異なるパラメータを有し、入力される上記移動面カテゴリに対応したパラメータを使用して上記移動制御量を算出する
請求項１記載のロボット装置。
【請求項３】
上記移動面判別手段は、少なくとも脚部に設けられたセンサから出力されるセンサ値を上記現在の移動面に関する情報として使用する
請求項１記載のロボット装置。
【請求項４】
撮像手段を有し、
上記移動面判別手段は、上記撮像手段により撮像された入力画像から移動面領域を抽出し該移動面領域を上記現在の移動面に関する情報として使用する
請求項１記載のロボット装置。
【請求項５】
上記移動面判別手段は、上記現在の移動面に関する情報のパターン識別により移動面カテゴリを判別する
請求項１記載のロボット装置。
【請求項６】
上記移動面判別手段は、所定の基準に応じて分類されたカテゴリ毎に、その移動面に関する情報の特徴量を予め学習した学習済特徴量を有し、現在の移動面に関する情報の特徴量と上記学習済特徴量とを比較して移動面カテゴリを判別する
請求項１記載のロボット装置。
【請求項７】
上記複数のカテゴリは、移動面に関する情報の特徴量を予め学習した学習済特徴量に応じて分類されたものであって、
上記移動面判別手段は、現在の移動面に関する情報の特徴量と上記学習済特徴量とを比較して移動面カテゴリを判別する
請求項１記載のロボット装置。
【請求項８】
上記移動面カテゴリを判別するための足踏み動作を生成する動作生成手段を有する
請求項１記載のロボット装置。
【請求項９】
上記移動制御手段は、上記足踏み動作時に、少なくとも脚部に設けられたセンサから出力されるセンサ値から、選択されている移動制御形態に基づき移動制御量を算出し、
上記移動面判別手段は、上記移動制御量を上記移動面に関する情報として使用する
請求項８記載のロボット装置。
【請求項１０】
上記移動制御手段は、少なくとも脚部に設けられたセンサから出力される時系列のセンサ値から、選択されている移動制御形態に基づき時系列の移動制御量を算出し、
上記移動面判別手段は、上記時系列の移動制御量をフーリエ変換したデータを特徴量とし、該特徴量のパターン識別により移動面カテゴリを判別する
請求項５記載のロボット装置。
【請求項１１】
上記移動面判別手段は、少なくとも脚部に設けられたセンサから出力される時系列のセンサ値をフーリエ変換したデータを特徴量とし、該特徴量のパターン識別により移動面カテゴリを判別する
請求項５記載のロボット装置。
【請求項１２】
上記移動面判別手段は、移動中に連続的に移動面カテゴリを判別する
請求項１記載のロボット装置。
【請求項１３】
自律的に動作可能な脚式移動型ロボット装置の移動制御方法において、
現在の移動面に関する情報に基づき、予め用意された複数のカテゴリから現在の移動面のカテゴリである移動面カテゴリを判別する移動面判別工程と、
上記移動面判別工程にて判別された上記移動面カテゴリに応じて所定の移動制御形態を選択し、少なくとも脚部に設けられたセンサから出力されるセンサ値から、選択されている移動制御形態に基づき移動制御量を算出して移動を制御する移動制御工程とを有し、
上記移動制御工程では、上記カテゴリ毎に異なる移動制御モデル又は移動アルゴリズムを有し、入力される上記移動面カテゴリに対応した移動制御モデル又は移動アルゴリズムを選択し、上記センサ値を使用して上記移動制御モデルからの補正量又は上記移動アルゴリズムに従った適応操作量を上記移動制御量として算出し、
上記移動面判別工程では、上記移動制御量を上記現在の移動面に関する情報として使用する
ロボット装置の移動制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自律的に動作する脚式移動型のロボット装置及びロボット装置の移動制御方法に関し、床面等の歩行面の状態が大きく変わるような領域でも移動を可能とするロボット装置及びロボット装置の移動制御方法に関する。
【背景技術】
【０００２】
電気的又は磁気的な作用を用いて人間（生物）の動作に似た運動を行う機械装置を「ロボット」という。我が国においてロボットが普及し始めたのは、１９６０年代末からであるが、その多くは、工場における生産作業の自動化・無人化等を目的としたマニピュレータ及び搬送ロボット等の産業用ロボット（Industrial Robot）であった。
【０００３】
最近では、人間のパートナーとして生活を支援する、即ち住環境その他の日常生活上の様々な場面における人的活動を支援する実用ロボットの開発が進められている。このような実用ロボットは、産業用ロボットとは異なり、人間の生活環境の様々な局面において、個々に個性の相違した人間、又は様々な環境への適応方法を自ら学習する能力を備えている。例えば、犬又は猫のように４足歩行の動物の身体メカニズム及びその動作を模した「ペット型」ロボット、或いは、２足直立歩行を行う人間等の身体メカニズム及びその動作をモデルにしてデザインされた「人間型」又は「人間形」ロボット（Humanoid Robot）等のロボット装置は、既に実用化されつつある。
【０００４】
これらのロボット装置は、産業用ロボットと比較して、例えばエンターテインメント性を重視した様々な動作等を行うことができるため、エンターテインメントロボットと呼称される場合もある。また、そのようなロボット装置には、カメラ等の撮像手段や、各種センサ等を搭載して外部からの情報を取得し、これらの外部情報（外部刺激）と、自己の内部の状態に応じて自律的に行動することができる。
【０００５】
ところで、このようなロボット装置のうち、脚式移動型のロボット装置、特に２足歩行タイプのロボット装置が実際の環境下において機体全体のバランスを保ちつつ例えば傾斜があったり障害物があったりするような床面を歩行することは容易ではない。通常は、足底に設けられたセンサ等から得られる床反力等や各関節角度等を基に各関節に設けられたアクチュエータへ出力する制御信号を算出することにより歩行が可能となる。
【０００６】
例えば下記特許文献１には、足平（足部）の接地面傾斜と両足平接地面間の高低差とを同時に推定しながら歩行する脚式移動型ロボット装置の床形状推定装置の技術が開示されている。
【０００７】
【特許文献１】特開２００１−３２８０８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記特許文献１に記載の技術においては、床面の局所的な形状を推定することでスムーズな歩行を可能としているものの、実際に足部が着床するまで、床面に関する情報は全くもっておらず、このような視点からでは非常に短期的な歩行計画の修正をしているにすぎない。
【０００９】
すなわち、床面に着床しながら適応的に軌道の補正量（適応操作量）を算出することは可能だが、床面に関する一歩毎の知識をその一歩の着床前に取得することはできず、歩行制御時に、一歩単位ではなくより広い範囲（の床面）を想定した、床面に最適な制御形態を自動的に判別することができず、予め決められた制御形態に基づき適応操作量を算出する必要がある。ここで、上記特許文献１等における適応操作量とは、ある基準となる歩行制御モデルに対して、床面の傾斜や自身の姿勢等に応じた補正量である。したがって、連続的な変化、即ち歩行制御モデルの制御内容をゆっくりは変えられても、このような適応操作のみでは対応できない場合には歩行が困難になってしまうという問題点がある。
【００１０】
例えば、板面や大理石、コンクリート等の硬い接地面（床面）を歩行する場合と、絨毯や芝生のような柔らかい接地面上を歩行する場合とでは、基準となる歩行制御形態である例えば歩行制御モデルからの現在の床面に応じた適応操作量を算出するためのパラメータや係数、又は歩行アルゴリズム（歩行モデル）が全く異なり、歩行制御形態を変更せずに適応操作量を算出するのみでは、硬い接地面からやわらかい接地面へというような床面の状態が大きく変わるような領域へ移動することはできない。したがって、そのような移動の際には、ロボット装置自身では、歩行可能か否かの判別もできず、人間が手動で床面に関する知識を設定し直す、具体的には例えば床面に応じて適応操作量を算出するためのパラメータを設定し直す等の必要があった。
【００１１】
本発明は、このような従来の実情に鑑みて提案されたものであり、歩行する床面の状態を判別することで、一歩毎の歩行計画の修正ではなく、床面に応じて歩行制御形態を変更し、床面の状態が大きく変化するような場合でも安定した歩行を可能とするロボット装置及びロボット装置の移動制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した目的を達成するために、本発明のロボット装置は、自律的に動作可能な脚式移動型ロボット装置において、現在の移動面に関する情報に基づき、予め用意された複数のカテゴリから現在の移動面のカテゴリである移動面カテゴリを判別する移動面判別手段と、上記移動面判別手段により判別された上記移動面カテゴリに応じて所定の移動制御形態を選択し、少なくとも脚部に設けられたセンサから出力されるセンサ値から、選択されている移動制御形態に基づき移動制御量を算出して移動を制御する移動制御手段とを有し、上記移動制御手段は、上記カテゴリ毎に異なる移動制御モデル又は移動アルゴリズムを有し、入力される上記移動面カテゴリに対応した移動制御モデル又は移動アルゴリズムを選択し、上記センサ値を使用して上記移動制御モデルからの補正量又は上記移動アルゴリズムに従った適応操作量を上記移動制御量として算出し、上記移動面判別手段は、上記移動制御量を上記現在の移動面に関する情報として使用する。
【００１３】
本発明においては、従来のように歩行中に適宜歩行モデルの補正量を算出する方法とは異なり、床面の状態を予め用意された所定の床面カテゴリに判別し、この判別結果に応じて所定の歩行制御形態を選択することで、床面に最適な歩行制御形態に従って歩行を制御することができる。
【００１４】
また、上記歩行制御手段は、少なくとも脚部に設けられたセンサから出力されるセンサ値から、選択されている歩行制御形態に基づき歩行制御量を算出し、上記歩行面判別手段は、上記歩行制御量を上記現在の歩行面に関する情報として使用することができ、例えば脚部に関節等を有する場合には、それら関節の角度を検出したり、足底の歩行面からの反力を検出したりする各種センサのセンサ値から換算される歩行制御量はそのときの床面に関する情報を含むものであり、これを使用して床面カテゴリ判別を行うことができる。
【００１５】
更に、上記歩行制御手段は、上記カテゴリ毎に異なる歩行制御モデルを有し、入力される上記歩行面カテゴリに対応した歩行制御モデルを選択し、上記センサ値を使用して該歩行制御モデルからの補正量を上記歩行制御量として算出するか、上記歩行制御手段は、上記センサ値を所定のパラメータを使用して上記歩行制御量に換算するものであって、上記カテゴリ毎に異なるパラメータを有し、入力される上記歩行面カテゴリに対応したパラメータを使用して上記歩行制御量を算出することができ、このことにより、入力される床面カテゴリに応じて、最適な歩行制御モデル又は最適なパラメータを選択して歩行制御量を算出することができるので、安定した歩行を行うことができる。
【００１６】
更にまた、上記歩行面判別手段は、少なくとも脚部に設けられたセンサから出力されるセンサ値を上記現在の床面に関する情報として使用したり、撮像手段を有し、上記歩行面判別手段は、上記撮像手段により撮像された入力画像から歩行面領域を抽出し該歩行面領域を上記現在の歩行面に関する情報として使用したりすることができ、センサ値及び床面領域は現在の床面に関する情報を含むものであり、これらを使用して床面カテゴリ判別を行うことができる。
【００１７】
また、上記歩行面判別手段は、上記現在の歩行面に関する情報のパターン識別により歩行面カテゴリを判別することができ、例えば上記床面判別手段は、所定の基準に応じて分類されたカテゴリ毎に、その床面に関する情報の特徴量を予め学習した学習済特徴量を有し、現在の床面に関する情報の特徴量と上記学習済特徴量とを比較して床面カテゴリを判別することができ、各種の床面を必要と考えられる床面カテゴリに分類してから学習させることができる。
【００１８】
更に、上記複数のカテゴリは、歩行面に関する情報の特徴量を予め学習した学習済特徴量に応じて分類されたものであって、上記歩行面判別手段は、現在の歩行面に関する情報の特徴量と上記学習済特徴量とを比較して歩行面カテゴリを判別することができ、床面から得られる特徴量に応じて床面カテゴリを分類してもよい。
【００１９】
更にまた、歩行面カテゴリを判別するための足踏み動作を生成する動作生成手段を有し、上記歩行制御手段は、上記足踏み動作時に、少なくとも脚部に設けられたセンサから出力されるセンサ値から、選択されている歩行制御形態に基づき歩行制御量を算出し、上記歩行面判別手段は、上記歩行制御量を上記歩行面に関する情報として使用してもよく、足踏み動作により歩行前に床面カテゴリを判別することができる。
【００２０】
また、上記歩行面判別手段は、歩行中に連続的に歩行面カテゴリを判別することができ、歩行中常時床面カテゴリを判別することで、歩行により床面の状態が大きく変化するような場合であっても、安定した歩行を可能とする。
【００２１】
本発明に係るロボット装置の移動制御方法は、自律的に動作可能な脚式移動型ロボット装置の移動制御方法において、現在の移動面に関する情報に基づき、予め用意された複数のカテゴリから現在の移動面のカテゴリである移動面カテゴリを判別する移動面判別工程と、上記移動面判別工程にて判別された上記移動面カテゴリに応じて所定の移動制御形態を選択し、少なくとも脚部に設けられたセンサから出力されるセンサ値から、選択されている移動制御形態に基づき移動制御量を算出して移動を制御する移動制御工程とを有し、上記移動制御工程では、上記カテゴリ毎に異なる移動制御モデル又は移動アルゴリズムを有し、入力される上記移動面カテゴリに対応した移動制御モデル又は移動アルゴリズムを選択し、上記センサ値を使用して上記移動制御モデルからの補正量又は上記移動アルゴリズムに従った適応操作量を上記移動制御量として算出し、上記移動面判別工程では、上記移動制御量を上記現在の移動面に関する情報として使用する。
【発明の効果】
【００２２】
本発明によれば、現在の床面等の歩行面に応じて算出される、基準となる歩行制御モデルからの補正量である歩行制御量、足底や関節等に設けられたセンサからのセンサ値、又は入力画像に含まれる歩行面領域等の歩行面に関する情報を入力として現在の歩行面のカテゴリを判別し、この判別結果に応じて、歩行制御するための歩行制御形態を選択して歩行を制御するため、予め歩行面の状態を歩行面カテゴリとして認識してから歩行制御することができ、特に歩行面の状態が大きく変化するような領域間を歩行するような場合などにおいては、歩行中に適宜補正しながら歩行制御する従来の方法に比して格段に安定した歩行制御を行うことができるロボット装置及びその歩行制御方法を提供することができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、対象物に、装置の一部分等を接触させるような動作制御を行うロボット装置に適用したものである。
【００２４】
本実施の形態においては、２足歩行型のロボット装置を例にとって説明するが、２足歩行のロボット装置に拘わらず、４足又は車輪等により移動可能なロボット装置に適用できることはいうまでもない。ここでは、先ず、２足歩行型のロボット装置について説明し、次に、そのようなロボット装置の歩行の制御方法について説明する。
【００２５】
（１）ロボット装置
この人間型のロボット装置は、住環境その他の日常生活上の様々な場面における人的活動を支援する実用ロボットであり、内部状態（怒り、悲しみ、喜び、楽しみ等）に応じて行動できるほか、人間が行う基本的な動作を表出できるエンターテインメントロボットである。図１は、本実施の形態におけるロボット装置の概観を示す斜視図である。
【００２６】
図１に示すように、ロボット装置１は、体幹部ユニット２の所定の位置に頭部ユニット３が連結されると共に、左右２つの腕部ユニット４Ｒ／Ｌと、左右２つの脚部ユニット５Ｒ／Ｌが連結されて構成されている（但し、Ｒ及びＬの各々は、右及び左の各々を示す接尾辞である。以下において同じ。）。
【００２７】
このロボット装置１が具備する関節自由度構成を図２に模式的に示す。頭部ユニット３を支持する首関節は、首関節ヨー軸１０１と、首関節ピッチ軸１０２と、首関節ロール軸１０３という３自由度を有している。
【００２８】
また、上肢を構成する各々の腕部ユニット４Ｒ／Ｌは、肩関節ピッチ軸１０７と、肩関節ロール軸１０８と、上腕ヨー軸１０９と、肘関節ピッチ軸１１０と、前腕ヨー軸１１１と、手首関節ピッチ軸１１２と、手首関節ロール輪１１３と、手部１１４とで構成される。手部１１４は、実際には、複数本の指を含む多関節・多自由度構造体である。ただし、手部１１４の動作は、ロボット装置１の姿勢制御や歩行制御に対する寄与や影響が少ないので、本明細書では簡単のため、ゼロ自由度と仮定する。したがって、各腕部は７自由度を有するとする。
【００２９】
また、体幹部ユニット２は、体幹ピッチ軸１０４と、体幹ロール軸１０５と、体幹ヨー軸１０６という３自由度を有する。
【００３０】
また、下肢を構成する各々の脚部ユニット５Ｒ／Ｌは、股関節ヨー軸１１５と、股関節ピッチ軸１１６と、股関節ロール軸１１７と、膝関節ピッチ軸１１８と、足首関節ピッチ軸１１９と、足首関節ロール軸１２０と、足部１２１とで構成される。本明細書中では、股関節ピッチ軸１１６と股関節ロール軸１１７の交点は、ロボット装置１の股関節位置を定義する。人体の足部１２１は、実際には多関節・多自由度の足底を含んだ構造体であるが、本明細書においては、簡単のためロボット装置１の足底は、ゼロ自由度とする。したがって、各脚部は、６自由度で構成される。
【００３１】
以上を総括すれば、ロボット装置１全体としては、合計で３＋７×２＋３＋６×２＝３２自由度を有することになる。ただし、エンターテインメント向けのロボット装置１が必ずしも３２自由度に限定されるわけではない。設計・制作上の制約条件や要求仕様等に応じて、自由度すなわち関節数を適宜増減することができることはいうまでもない。
【００３２】
上述したようなロボット装置１がもつ各自由度は、実際にはアクチュエータを用いて実装される。外観上で余分な膨らみを排してヒトの自然体形状に近似させること、２足歩行という不安定構造体に対して姿勢制御を行うこと等の要請から、アクチュエータは小型且つ軽量であることが好ましい。
【００３３】
このようなロボット装置は、ロボット装置全体の動作を制御する制御システムを例えば体幹部ユニット２等に備える。図３は、ロボット装置１の制御システム構成を示す模式図である。図３に示すように、制御システムは、ユーザ入力等に動的に反応して情緒判断や感情表現を司る思考制御モジュール２００と、アクチュエータ３５０の駆動等ロボット装置１の全身協調運動を制御する運動制御モジュール３００とで構成される。
【００３４】
思考制御モジュール２００は、情緒判断や感情表現に関する演算処理を実行するＣＰＵ（Central Processing Unit）２１１や、ＲＡＭ（Random Access Memory）２１２、ＲＯＭ（Read Only Memory）２１３及び外部記憶装置（ハード・ディスク・ドライブ等）２１４等で構成され、モジュール内で自己完結した処理を行うことができる、独立駆動型の情報処理装置である。
【００３５】
この思考制御モジュール２００は、画像入力装置２５１から入力される画像データや音声入力装置２５２から入力される音声データ等、外界からの刺激等に従って、ロボット装置１の現在の感情や意思を決定する。ここで、画像入力装置２５１は、例えばＣＣＤ（Charge Coupled Device）カメラを複数備えており、また、音声入力装置２５２は、例えばマイクロホンを複数備えている。
【００３６】
また、思考制御モジュール２００は、意思決定に基づいた動作又は行動シーケンス、すなわち四肢の運動を実行するように、運動制御モジュール３００に対して指令を発行する。
【００３７】
一方の運動制御モジュール３００は、ロボット装置１の全身協調運動を制御するＣＰＵ３１１や、ＲＡＭ３１２、ＲＯＭ３１３及び外部記憶装置（ハード・ディスク・ドライブ等）３１４等で構成され、モジュール内で自己完結した処理を行うことができる独立駆動型の情報処理装置である。また、外部記憶装置３１４には、例えば、オフラインで算出された歩行パターンや目標とするＺＭＰ軌道、その他の行動計画を蓄積することができる。
【００３８】
この運動制御モジュール３００には、図２に示したロボット装置１の全身に分散するそれぞれの関節自由度を実現するアクチュエータ３５０、対象物との距離を測定する距離計測センサ（図示せず）、体幹部ユニット２の姿勢や傾斜を計測する姿勢センサ３５１、左右の足底の離床又は着床を検出する接地確認センサ３５２，３５３、足部１２１の足底１２１に設けられる荷重センサ、バッテリ等の電源を管理する電源制御装置３５４等の各種の装置が、バス・インターフェース（Ｉ／Ｆ）３０１経由で接続されている。ここで、姿勢センサ３５１は、例えば加速度センサとジャイロ・センサの組み合わせによって構成され、接地確認センサ３５２，３５３は、近接センサ又はマイクロ・スイッチ等で構成される。
【００３９】
思考制御モジュール２００と運動制御モジュール３００は、共通のプラットフォーム上で構築され、両者間はバス・インターフェース２０１，３０１を介して相互接続されている。
【００４０】
運動制御モジュール３００では、思考制御モジュール２００から指示された行動を体現すべく、各アクチュエータ３５０による全身協調運動を制御する。すなわち、ＣＰＵ３１１は、思考制御モジュール２００から指示された行動に応じた動作パターンを外部記憶装置３１４から取り出し、又は、内部的に動作パターンを生成する。そして、ＣＰＵ３１１は、指定された動作パターンに従って、足部運動、ＺＭＰ軌道、体幹運動、上肢運動、腰部水平位置及び高さ等を設定するとともに、これらの設定内容に従った動作を指示する指令値を各アクチュエータ３５０に転送する。
【００４１】
また、ＣＰＵ３１１は、姿勢センサ３５１の出力信号によりロボット装置１の体幹部ユニット２の姿勢や傾きを検出するとともに、各接地確認センサ３５２，３５３の出力信号により各脚部ユニット５Ｒ／Ｌが遊脚又は立脚のいずれの状態であるかを検出することによって、ロボット装置１の全身協調運動を適応的に制御することができる。更に、ＣＰＵ３１１は、ＺＭＰ位置が常にＺＭＰ安定領域の中心に向かうように、ロボット装置１の姿勢や動作を制御する。
【００４２】
また、運動制御モジュール３００は、思考制御モジュール２００において決定された意思通りの行動がどの程度発現されたか、すなわち処理の状況を、思考制御モジュール２００に返すようになっている。このようにしてロボット装置１は、制御プログラムに基づいて自己及び周囲の状況を判断し、自律的に行動することができる。
【００４３】
（２）歩行制御方法
次に、上述したロボット装置１のように、歩行機能を有する脚式移動型ロボット装置が歩行するための歩行制御方法について説明する。本ロボット装置は、歩行面に関する情報の統計的なパターン認識を行って歩行面の状態を判別し、この判別結果に対応して予め用意されている最適な歩行制御形態を選択して歩行制御するものである。具体的には、ロボット装置が歩行時又は後述するその場足踏み動作時において、各種センサ情報、歩行制御量及び画像情報等を歩行面に関する情報として取得し、これにより現在の歩行面のカテゴリ（以下、歩行面カテゴリという。）を判別し、この歩行面ガテゴリに応じて歩行制御形態を選択することにより、安定した歩行を実現するものである。
【００４４】
ここで、本実施の形態においては、ロボット装置が歩行する平面である歩行面を床面とし、床面がカテゴライズされるカテゴリを床面カテゴリとするが、歩行面は、床面のみならず、ロボット装置が歩行可能な例えば屋外の地面、芝生等や、階段等の面等についても同様に、それらの歩行面を予めカテゴリに分類しておき、判別して歩行制御形態を選択すればよいことはいうまでもない。
【００４５】
上述したように、従来のロボット装置は、歩行時の姿勢や床面からの反力等の各種センサ値に応じて、例えば所定の歩行制御モデル（モーション再生）からの軌道補正量である歩行制御量（以下、適応操作量という。）を算出して歩行制御モデルの補正を行うことで、歩行時の足部が接地する床面の傾斜等に応じてロボット装置の姿勢バランスを保って安定して歩行できるよう適応的な制御を実行するものである。しかしながら、このような歩行中のセンサ値等から算出する適応操作量等による歩行制御では、例えば、板材等をはった床面（フローリング）、又は大理石やコンクリート等の硬い床面から、毛足の長い絨毯や芝生等のやわらかい床面へ移動するというような床面の状態が大きく変わる領域を移動する場合には歩行ができなくなってしまう。これは、硬い床面を歩く際に使用するべき歩行制御形態と、やわらかい床面を歩く際に使用すべき歩行制御形態とが全く異なるものであるためである。
【００４６】
したがって、歩行中の各種センサ値から適応操作量を算出して歩行制御した場合、連続的なゆるやかな変化等には対応できても、硬い床面からやわらかい床面への移動する場合のように、床面の状態がドラスティックに変化するような場合においては、歩行制御形態を変更しない限りは歩行することが困難になる。
【００４７】
そこで、本願発明者らが鋭意研究した結果、床面に応じて得られる各種センサ値や適応操作量に基づき、現在の床面を予め用意した床面カテゴリに分類すると共にこの床面カテゴリに応じた歩行制御形態を用意しておき、現在の床面の床面カテゴリを判別することでその床面カテゴリに応じた最適な歩行制御形態を選択させてから上記適応操作量を算出することで歩行制御すると床面の状態が劇的に変化するような場合であっても、脚式移動型ロボット装置を上手に歩行させられることを見出した。
【００４８】
ここで、歩行制御形態が異なるとは、上記適応操作量を各種センサ値から換算又は算出する際に使用されるパラメータ若しくは係数等が異なる場合、及び歩行に際して使用される歩行モーション（歩行制御モデル）又は歩行アルゴリズムが異なる場合等をいう。また、この適応操作量とは、目標とする制御値からのずれ、例えば各アクチュエータの回転角のずれ等を修正するための補正値を示す。なお、本明細書においては、速く歩いたりゆっくりあるいたり等の歩き方（歩行制御モデル）、及び、上記適応操作量等の歩行動作における一連の動作制御値をまとめて歩容という。
【００４９】
以下、このように、現在の床面がいずれの床面カテゴリに分類されるかの床面カテゴリ判別を行って適応的に歩行制御することができるロボット装置の床面別歩行制御装置について説明する。
【００５０】
図４は、ロボット装置のうち、床面別歩行制御装置に必要な要部のみを機能的に示すブロック図である。床面別歩行制御装置は、ロボット装置の行動を制御する行動制御部１１と、床面を認識して床面カテゴリを出力する床面判別部１２と、行動制御部１１からの行動指令と床面判別部１２からの床面カテゴリとに基づき歩行制御形態を選択して歩行を制御する歩行制御部１３とを有する。
【００５１】
行動制御部１１は、状況に応じたロボット装置の行動を選択し実行させる。この行動制御部１１が動作指令（歩行指令）Ｄ１を出すことで、歩行制御部１３が稼動して歩行制御を実行する。なお、床面の状況、例えば障害物があるか否か等も、ロボット装置の行動に影響を与える一要因（外部刺激）となる。
【００５２】
床面判別部１２は、歩行制御部１３の適応操作量Ｄ２及び各種センサ３６０の出力値（センサ値）Ｄ３等、ロボット装置の機体が床面の状態を感じ取る量や、カメラ等の画像入力手段２５１からの画像データＤ４等を入力として、統計的な床面カテゴリのパターン識別問題を解くことをもって、予め用意された床面カテゴリの中から現在の床面の床面カテゴリを選択する。
【００５３】
ここで、センサ３６０ｎは、各関節に設けられたアクチュエータ３５０ｎの回転角や位置を検出するポテンショメータ、歩行の際の足部（足底）の加速度を検出する加速度センサ、足底に設けられ床面からの反力を検出する力センサ等であり、これらの回転角、加速度、反力等がセンサ値として入力される。
【００５４】
また、パターン認識は、適応操作量Ｄ２、各種センサ値Ｄ３、又は画像データＤ４等の入力データが入り次第行うことができるため、ロボット装置１が歩行中は常に床面カテゴリを判別し続けることが可能である。判別結果である床面カテゴリＤ５は、行動制御部１１及び歩行制御部１３等の他の要素に対して出力される。
【００５５】
歩行制御部１３は、動作指令Ｄ１により起動され、上述したような各種センサ値Ｄ３から、所定の歩行制御形態に従ってその歩行制御形態における歩行制御モデルからの補正量を適応操作量Ｄ２として算出して床面判別部１２に出力する。そして、床面判別部１２にて現在の床面のカテゴリが判別され、その床面カテゴリＤ５を受け取ることで、現在の床面の状態に対応した歩行制御形態を選択し、選択した歩行制御形態における歩行制御モデルからの補正量として適応操作量を算出することで歩容の生成を行う。すなわち、歩行制御部１３には、予め床面カテゴリに対応した歩行制御形態、例えば基準となる歩行モデルと、適応的な歩行を行わせるために、その歩行モデルからの補正量をそのときの各種センサ値から換算又は算出するための係数又はパラメータ等が用意されている。
【００５６】
ここで、床面カテゴリに対応した歩行制御形態を選択するものとするが、これは、例えば床面カテゴリＡと床面カテゴリＢとでは、床面の状態が大きく異なり、歩行アルゴリズムを全く別のものに変更する必要があるような場合は、歩行アルゴリズムを選択することを示し、床面カテゴリＡと床面カテゴリＢとで、同一の歩行制御モデルとしセンサ値から適応操作量を算出するためのパラメータを変えるのみでよい場合は、パラメータを選択することを示す。また、適応操作量Ｄ２とは、床面の形状等に応じて歩行中に適応的に姿勢を安定させて歩行を行わせるための例えば歩行モデルからの補正量、具体的にはロール軸、ピッチ軸及びヨー軸等における目標となる軌道からのずれを修正するため補正量等を示す。
【００５７】
床面判別部１２に出力する適応操作量Ｄ２の算出及び床面カテゴリに応じて選択される歩行アルゴリズムに従って次の歩行タイミングにて再度算出される適応操作量の算出に際しては、各種センサ値をその適応操作量に換算するための後述するパラメータ等が存在する。ここで、従来は、予め外部から入力する等して所定の歩行アルゴリズム又は所定のパラメータ等の歩行制御形態が選択されており、この歩行制御形態に従って適応操作量が算出されていたが、上述したように、この方法であると予め決められた歩行制御形態からの適応操作量のみしか換算できず、床面によっては、歩行制御形態を変更しなければ適切な適応操作量が算出できない場合がある。従って、歩行制御部１３では、先ず、標準として使用される所定の歩行制御形態から、各種センサ値に応じて適応操作量を算出し、床面判別部１２にて床面カテゴリを判別させる。そして、この床面カテゴリＤ５を受け取り、この床面カテゴリＤ５に応じて、上記標準の歩行制御形態から歩行制御形態を選択する。具体的には、例えば床面に応じた歩行アルゴリズム、歩行制御モデル（歩行タイプ）又は適応操作量を算出する際のパラメータ等を選択し、この床面カテゴリによって定まる歩行制御形態に従って適応操作量を再度算出することで、より安定した歩行を実現することが可能となる。なお、歩行制御形態の変更には、床面カテゴリのみでなく、機体の状態など他の要因もありうる。ここで、床面カテゴリを判別するために使用する適応操作量Ｄ２を算出するための標準の歩行制御形態とは、例えば最も標準的な歩行アルゴリズム、例えば家庭内にて使用することを目的とする場合は、板材などの床面を歩行するための歩行制御モデル等を用意しておけばよい。また、連続的に床面判別を行わせる場合には、床面判別部１２にて前回のタイミングで入力された床面カテゴリに対応した歩行制御形態に従って適応操作量Ｄ２を算出すればよい。
【００５８】
こうして、歩行制御部１３は、行動制御部１１からの行動指令Ｄ１に応じて最適な歩行制御形態を選択して適応操作量を算出することで歩容を生成し、各関節のアクチュエータ３５０ｎを駆動するコマンド（制御値）Ｄ６を出力する。
【００５９】
また、床面の種類としては、例えば、硬い床面（板、コンクリート）、カーペット、畳、ゴム等が挙げられるが、これら各種の床面は、例えば弾性係数、摩擦係数、ころがり係数、絨毯の毛足の長さ、又はこれらの組み合わせを基準にして床面カテゴリに分類することができる。分類した床面のカテゴリ毎に、予め、カテゴリ判別にて使用する適応操作量Ｄ２、センサ値Ｄ３、及び画像データＤ４のいずれか１以上の判別用入力データの特徴量を学習しておき、この学習済特徴量が床面カテゴリ別に学習データベースとして床面判別部１２に保持されているものとする。なお、上述したように、屋内のみならず屋外の地面や芝生等、ロボット装置が歩行可能な面であれば、同様にカテゴライズして学習しておけばよい。
【００６０】
または、上述したような基準により床面カテゴリを予め分類してから学習するのではなく、ロボット装置が複数種の床面にて適応操作量Ｄ２、センサ値Ｄ３及び画像データＤ４のいずれか１以上の判別用入力データを獲得しておき、その判別用入力データから得られる特徴量が所定の範囲で類似するものを１つのクラス（カテゴリ）に分類した学習結果や、その特徴量からクラスタ数既知としてクラスタリングを行った学習結果を使用して、ロボット装置自身が床面カテゴリの分類を行ってもよい。この場合も、同様に学習結果を床面カテゴリ別に学習データベースとして床面判別部１２に保持しておくものとする。
【００６１】
なお、以上、適応操作量Ｄ２、センサ値Ｄ３及び画像データＤ４等のうち１以上の判別用入力データを受け取って床面カテゴリを判別し、適切な歩容を生成する処理は、上述した運動制御モジュール３００にて行われる。
【００６２】
次に、この床面判別から歩行制御までの処理動作について説明する。図５は、床面別歩行制御処理の流れを示すフローチャートである。図５に示すように、先ず、行動制御部１１が、歩行制御部１３に対して歩行の指令を出す（ステップＳ１）。これにより歩行制御部１３が起動され、各種センサ値Ｄ３を入力させるための動作を行い適応制御により適応操作量を算出する（ステップＳ２）。このときの適応操作量Ｄ２は、上述したように標準の歩行制御形態に基づき算出されるものとする。ここで、各種センサ値Ｄ３を入力させるための動作としては、後述するようなその場で足踏みする動作や、通常の歩行動作等があるが、通常の歩行動作を行わせる場合、この時点では床面に応じた最適な歩行制御形態が選択されていないために予め用意された標準の歩行制御形態に従って歩行を行う。また、床面判別を継続して行うような場合は、前回の床面判別にて判別された床面カテゴリに応じて選択された歩行制御形態に従って歩行を行う。
【００６３】
次に、歩行又は足踏み動作を実行中、床面判別部１２は、歩行制御部１３の適応操作量Ｄ２、足センサ３６０等の各種センサのセンサ値Ｄ３、及びカメラ等の画像入力装置２５１からの画像データＤ４等を入力とし、これらの特徴量を用いて床面カテゴリのパターン認識を行う（ステップＳ３）。そして、床面判別部１２は、現在の床面が床面カテゴリのいずれに該当するかを判別し、その床面判別結果である床面カテゴリを歩行制御部１３に出力する（ステップＳ４）。歩行制御部１３は、供給される床面カテゴリに応じて、最適な歩行制御形態を選択し歩行制御を行う（ステップＳ５）。具体的には、例えば適応操作量を算出するためのパラメータを選択し直し、適応操作量を歩行制御量として再度算出する。そして、歩行を継続する場合には（ステップＳ６：Ｙｅｓ）、再びステップＳ３からの処理、即ち床面カテゴリ判別を繰り返す。ここで、床面カテゴリ判別は、歩行中常に行っても、所定のタイミングで行ってもよい。
【００６４】
次に、床面カテゴリ判別を行う際に使用される適応操作量Ｄ２の算出方法の一具体例について説明する。上述のステップＳ２において、現在の床面の状態に関する各種センサ値を入力させて適応操作量Ｄ２を算出する必要がある。これは、歩行をしながら獲得してもよいが、例えば床面カテゴリを判別するための動作を用意し、この動作により床面判別を行うようにすることができる。ここでは、そのような床面判別動作として、その場で足踏み動作を行うことにより、現在の床面を判別する方法について説明する。
【００６５】
図６（ａ）乃至図６（ｄ）及び図７（ａ）乃至図７（ｄ）は、ロボット装置１が足踏み動作を行っている様子を示す図である。先ず、直立の状態（図６（ａ））から、機体のバランスを取りつつ（図６（ｂ））、右足を一旦上げて（図６（ｃ））、床面に接地させ（図６（ｄ））、同じく機体のバランスを取りつつ（図７（ａ））、左足を一旦上げて（図７（ｂ））、床面に接地させ（図７（ｃ））、直立の状態に戻る（図７（ｄ））。
【００６６】
このような一連の足踏み動作により、床面に応じたセンサ値が取得でき、このセンサ値Ｄ３により歩行制御部１３が適応操作量Ｄ２を算出する。そして、床面判別部１２は、センサ値Ｄ３及び適応操作量Ｄ４により、現在の床面のカテゴリを判別する。ここで示す足踏み動作は、例えば歩行周期が６００ｍｓｅｃ、足上げ高さが２０ｍｍ、一連の足踏み動作中に両足が接地している時間の割合を示す両脚支持の割合が３０％等とすることができる。これらの値は、足踏み動作におけるパラメータとなるものである。
【００６７】
なお、この足踏み動作等によりセンサ値及び適応操作量を獲得して床面カテゴリ判別を行うものとして説明するが、上述したように、歩行しながら床面カテゴリ判別を行ってもよく、また床面カテゴリ判別において、センサ値及び適応操作量に合わせて又は個別に画像データＤ４を使用して床面カテゴリを判別してもよい。
【００６８】
次に、床面判別部１２の床面カテゴリ判別方法について詳細に説明する。床面判別部１２が実効するパターン認識手法としては、適応操作量Ｄ２、各種センサ値Ｄ３、及び画像データＤ４のいずれか１以上の判別用入力データに応じて床面カテゴリを判別できるものであれば、どのようなパターン認識手法を用いてもよいが、ここでは、床面判別部１２が床面カテゴリを判別する際に入力とする入力データの一具体例として、例えば、以下の表１に示すもの等を使用してフィッシャー（Fisher）判別によりカテゴリ判別する例について説明する。
【００６９】
【表１】
0004649913.tif 000002
【００７０】
ここで、ロール軸操作量及びピッチ軸操作量は、計画軌道（目標となる軌道）と実際の軌道との差を示すものであり、これを適応操作により補正する補正量として使用することができる。また、これら全ての値を用いて床面カテゴリ判別を行ってもよく、これらから選択されたいくつかの値を使用して床面判別を行ってもよいことは勿論である。
【００７１】
これらの値は、例えば、４ｍｓｅｃ毎等、運動制御の制御ループの周期毎に出力される。例えば足底加速度は図８に示す時系列データをとして入力される。図８は、横軸に時間をとり、縦軸に加速度をとって、正面方向及び横方向の足底加速度の時系列値を示すグラフ図である。図８において、破線が正面方向（進行方向）の足底加速度、実線が横方向の足底加速度についてのデータを示す。
【００７２】
図８に示すように、入力される足底加速度を時系列で保存する。このようにして得られる上記の入力データから特徴量を抽出する。例えば、足底加速度の時系列値を所定のウィンドウサイズでフーリエ変換（fast Fourier transform：ＦＦＴ）して時間軸上のデータを周波数軸上のデータに変換することで、特徴量に変換する。
【００７３】
図９は、横軸に周波数成分をとり縦軸にパワーをとって、図８に示す正面方向及び横方向の足底加速度の時系列値をフーリエ変換したフーリエパワースペクトルを示すグラフ図である。図９においても、破線が正面方向（進行方向）の足底加速度、実線が横方向の足底加速度についてのデータを示す。なお、図８及び図９では、上述の入力データのうち、簡単のため、正面及び横方向の足底加速度を入力データのみを示すが、他のデータにおいても、床面カテゴリ判別に使用する入力データを同様に時系列で保存し、その時系列値をフーリエ変換して特徴量として用いることができる。
【００７４】
このフーリエパワースペクトルが、一の値についてｄ次元の情報を持つとすると、例えば４つの入力値を使用する場合、合計で４ｄ次元の特徴ベクトルとみなすことができる。図８に示す例の場合は、ｄ＝３５次元である。したがって、このままでは次元数が多いため、主成分分析による次元圧縮を行い、更にフィッシャー規範の線形判別分析にかける。線形判別分析は、床面カテゴリの数だけのクラス数を持つマルチクラスの判別問題となる。
【００７５】
次に、床面カテゴリの分類方法について説明する。床面カテゴリは、上述したように、所定の基準に従って分類した床面カテゴリ毎に判別用入力データの特徴量を学習してもよく、又は判別用入力データの特徴量を多量に学習し、この特徴量の類似性等により分類してもよい。すなわち、この床面カテゴリの分類は、必要とされるカテゴリを予め用意してもよいし、実際に歩行させ、分類が必要と判断されたら分類するようにしてもよい。また、必要に応じてカテゴリを追加して追加学習を行ってもよい。
【００７６】
ここでは、人間側で例えば下記の床面カテゴリ分類の基準（特徴）を用いて床面カテゴリを分類する場合について説明する。
１：弾性係数（ヤング係数）
２：摩擦係数
３：ころがり係数
４：カーペット・絨毯の毛足の長さ
５：１〜４の組み合わせ
【００７７】
即ち、これら１以上の特徴が異なる床面毎に、異なる床面カテゴリを用意すれば、その床面カテゴリに応じた歩行制御形態を用意しておくことができる。この床面カテゴリは、対象となるロボット装置の構造と、実際に歩行対象となる床面に応じて、どの特徴が歩行に影響を与えるかが異なってくるため、その影響力の大きさに応じてカテゴリ分類の基準を選ぶ必要がある。
【００７８】
各種センサ、適応操作量、及び画像データのうち床面カテゴリ判別の際に使用する入力データ（判別用入力データ）の特徴量を、分類した床面（床面カテゴリ）毎に予め学習させ、床面判別部１２に学習データベースとして保持しておき、上述の足踏み動作又は歩行中に得られる現在の床面から得られる判別用入力データの特徴量と比較することで、床面カテゴリを判別することができる。
【００７９】
本実施の形態においては、家庭用のコンシューマ製品としてのロボット装置を想定し、家庭環境において必要となると考えられる床面カテゴリについて説明する。家庭環境における床面カテゴリの分類するために、「４：カーペット・絨毯の毛足の長さ」を分類基準として用いることができる。
【００８０】
具体的には、家庭環境における一般的な床面を「板材（フローリング）」と「絨毯」とし、上記分類基準において分類すると、以下の３つのカテゴリ分類が必要となる。
床面１：毛足が長い絨毯（毛足の長さ６ｍｍ以上）
床面２：毛足が短い絨毯（毛足の長さ６ｍｍ未満）
床面３：フローリング（毛足の長さ０ｍｍに相当）
【００８１】
ここで、毛足の長さを分類基準として使用するのは、本願発明者らが、ロボット装置に実際に歩行させて実験した際、毛足の長さが最も歩行性能に影響を与えることを知見したからである。すなわち、歩行制御部１３にて、これらの３つの床面カテゴリ別に異なる歩行制御形態（パラメータ又は歩行アルゴリズム）を用意する必要があることを知見したものである。
【００８２】
次に、上記３つの床面カテゴリに、実際の床面を分類するために利用する情報（判別用入力データ）について説明する。床面判別部１２の入力となる上述の入力データのうち、一又は複数の組み合わせを判別用入力データとして床面カテゴリ判別をおこなう。この判別用入力データは、上述のような時系列値を何らかの手法で加工（前処理）し、後段の線形判別にて床面カテゴリに当てはめるものである。
【００８３】
この前処理としては、以下の方法が挙げられる。先ず、１次元情報である場合、すなわち上述のセンサ値及び適応操作量は、例えば、例えば上述した場足踏み動作時又は歩行時に得られるものであるが、このような動作時に得られるセンサ値及び適応操作量は、床面に関する情報を何らかの形で含むものである。この床面に関する情報、すなわち床面の特徴量としては例えば、フーリエパワースペクトル特徴、又は自己相関特徴等が挙げられる。
【００８４】
また、２次元情報である場合、すなわち例えばカメラ等の画像入力手段２５１からの入力画像の場合、情報が２次元的であり、領域分割する必要があるために処理が異なるが、基本的には上記１次元の場合と同じ特徴量を用いることが可能である。入力画像の特徴量としてフーリエパワースペクトルの特徴を得る方法としては、例えば、先ず、入力画像中から床面領域を分離又は抽出する。入力画像から床面領域を抽出する方法としては、両眼ステレオ視差値からのハフ変換により、支配的な平面を抽出し、座標変換して床面であるか否かを判定して床面領域を抽出する方法等がある。
【００８５】
次に、抽出された床面領域の二次元フーリエパワースペクトルを求める。そして、この２次元のフーリエパワースペクトルを、走査法により１次元ベクトルに展開する。これにより、上述の１次元における床面の特徴量と同様に入力画像等の２次元情報を取り扱うことができる。
【００８６】
以下、床面カテゴリ判別の一具体例として、判別用入力データとしてロール軸操作量及びピッチ軸操作量の２つの入力データを特徴量に変換して床面カテゴリを判別する方法について説明する。図１０及び図１１は、それぞれロール軸操作量及びピッチ軸操作量のある時点における時系列値をフーリエ変換して得られたフーリエパワースペクトルを示すグラフ図である。図１０及び図１１においては、横軸は周波数、縦軸はパワーに対応したものとなっている。そして、この２つのデータを１つのデータの塊として図１２のように扱う。すなわち、ロール軸操作量のフーリエパワースペクトルの横軸（周波数成分）を例えば０〜５０とし、ピッチ軸操作量のフーリエパワースペクトルの横軸（周波数成分）を例えば５０〜１００として換算しておくことで、２つのデータを連続させて１つのデータとして取り扱うことができる。このような操作をもって、複数の特徴量を複合して利用することができる。
【００８７】
こうして得られたロール軸操作量とピッチ軸操作量との特徴量を複合したフーリエパワースペクトルを線形判別分析の入力とし、これにより床面カテゴリを判別する。この複合フーリエパワースペクトルは、例えば歩行周期８ｍｓｅｃのロボット装置の場合、１秒間に最大１２５回生成することができる。なお、線形判別分析は、所定のタイミングで行ってもよく、歩行周期毎に行わなくてもよいことは勿論である。
【００８８】
また図１０に示すデータは、下記（１）に示すようなベクトル表現をとることができる。
【００８９】
【数１】
0004649913.tif 000003
【００９０】
ここで、上述したように、ロボット装置は、予め床面カテゴリ別に、線形判別分析の入力とされる特徴量を学習しておく必要がある。床面カテゴリの学習は、例えば、各床面カテゴリに属する床面上で、上述の足踏み動作をさせることで、上記式（１）に示すベクトルｘを大量に集めておけばよい。例えば、１０秒間の場足踏み動作で１２５０個のベクトルｘを集めることができる。ここでは、３つの床面カテゴリ、すなわち、「フローリング」、「毛足の短い絨毯（毛足の長さ６ｍｍ未満）」、「毛足の長い絨毯（毛足の長さ６ｍｍ以上）」、の床面カテゴリを用意するものとして説明するため、これら３つの床面において、例えば１０秒間、その場足踏み動作を行い、各１２５０個のベクトルｘを集めることで、床面カテゴリの学習を行っておく。
【００９１】
この学習を行った際に、分類した床面カテゴリ別に特徴量の差が現れない場合は、床面カテゴリ判別が難しいことを示す。この場合には、本質的に２つの可能性が考えられる。１つは、本質的に分類不可能なカテゴリを分類しようと試みている場合である。具体的には、例えば、平らな石と平らなガラスは、いずれも硬い平らな床面であり、ロボット装置にとってほとんど違いが無く分類が不可能である場合などである。もう１つは、判別に用いた特徴量が学習アルゴリズムが解こうとしている判別問題に対して十分な自由度が無い、又は自由度が弱い場合である。例えば、たった１つのポテンショメータの値を使用するのみでは、情報量が足りないなどにより分類不可能である場合である。いずれにせよ、予めの学習により床面カテゴリを判別用入力データの特徴量別に分類することができれば、実際にその特徴量を使用してカテゴリ判別することができることを示す。
【００９２】
本実施の形態においては、この床面カテゴリ判別のため、フィッシャー規範の線形判別分析を行う。これは、各カテゴリ内の分散を最小化し各カテゴリ間の分散を最大化する空間（判別空間）への投影を行い、その空間内での距離をもってカテゴリ判別を行う手法である。
【００９３】
ここで、床面カテゴリのことを床面クラスと表し、Ｋ個のクラスのうちｋ番目のクラスをクラスＣｋという。線形判別分析は、入力ベクトルｘを下記式（２）に示す変換式によって図１３に示す判別空間におけるベクトルｙに変換し、その空間内での各点（ベクトル）間の距離を見ることで行う。
【００９４】
【数２】
0004649913.tif 000004
【００９５】
入力ベクトルｘに対する判別空間での値ｙと、クラスＣｋのデータの平均値（クラス中心）の判別空間におけるクラス中心との距離が他のクラス中心との距離と比べて短いと、その入力ベクトルｘはクラスＣｋに属していると判定する。即ち、距離が短いことは、データの値が類似していることを示す。以下、本明細書においては、クラスＣｋのデータの平均値（クラス中心）を＜ｘｋ＞とし、判別空間におけるクラス中心を＜ｙｋ＞と記載する。
【００９６】
上記（２）の変換式における係数行列Ａは以下のようにして求める。すなわち、クラス平均を＜ｘｋ＞、全平均を＜ｘＴ＞として、クラス内共分散ΣＷ及びクラス間共分散ΣＢをそれぞれ下記式（３）及び式（４）のように定義すると、係数行列Ａは、下記（５）に示す固有値問題の解として求まる。
【００９７】
【数３】
0004649913.tif 000005
【００９８】
：クラスＣｋのデータの平均値（クラス中心）＝＜ｘｋ＞
：全データの平均値＝＜ｘＴ＞
【００９９】
【数４】
0004649913.tif 000006
【０１００】
【数５】
0004649913.tif 000007
【０１０１】
係数行列Ａは、最初に述べた多くのベクトルｘを用いて予め作成しておくものであり、実際にロボット装置が床面の判別をおこなう際には、そのあらかじめ用意された係数行列Ａと、同じく予め計算しておいたクラス中心＜ｙｋ＞とを用いて、入力データＰのカテゴリ判別をおこなう。すなわち、入力データＰと、クラス中心＜ｙｋ＞との距離Ｌｎが最も小さいクラスに、入力データＰを分類することができる。
【０１０２】
こうして得られた床面判別結果としての床面カテゴリは、歩行制御部１３に供給される。歩行制御部１３は、こうして入力される床面カテゴリに応じて、ロール軸やピッチ軸等の軌道計算のためのアルゴリズムや、軌道計算に用いるパラメータ（係数）を変更することが可能となる。変更可能なパラメータとしては、例えば、歩幅、歩行周期（一歩にかける時間）、両脚支持の割合、又はＰＩＤゲイン等が挙げられる。下記表２にパラメータ変更の具体例を示す。
【０１０３】
【表２】
0004649913.tif 000008
【０１０４】
このように、床面カテゴリに応じて、最適な、歩行制御（適応操作量）を各種センサ値から換算するためのパラメータ等の歩行制御形態を選択させることが可能となり、床面の状態に応じて適切な歩行アルゴリズムを採用し、これにより床面の状態が大きく変化するような場合であっても安定した歩行が実現可能となる。また、床面カテゴリを認識することで、安定した歩行に最も適した歩行制御形態を選択するため、通常よりも早く歩くなどの他の性能を引き出すことが可能となる。
【０１０５】
更に、歩行に適さない床面を認識することで、「歩けない」として歩行を中止させるような制御が可能となり、うまくあるけないまま歩行を続行して転倒してしまうようなことがない。
【０１０６】
更にまた、床面カテゴリの情報を環境地図と関連付けさせることで、環境地図の性能を向上させることができる。即ち、床面カテゴリの情報を記憶しておけば、例えばフローリングからカーペットの部屋に移動した際に上述した足踏み動作をすることなく、自動的に歩行アルゴリズムなどの歩行制御形態を変更して適応的に歩容を生成することができる。
【０１０７】
更にまた、床面に関する知識を用いて、好きな床・嫌いな床や、得意な床・不得意な床などを識別でき、これをユーザとの対話コンテンツとして提供することができる。
【０１０８】
次に、実際のデータを用いて床面カテゴリ判別を行った本発明の実施例について説明する。ここでは、簡略化のために１つの判別用入力データのみを利用しているが、上述したように、複数のデータを１つに統合して床面判別を行ってもよいことは勿論である。また、このように、判別用入力データを適切に選択すれば、１つの判別用入力データにて床面カテゴリを判別することが可能となる。
【０１０９】
本実施例においては、床面判別に使用するデータとして、上述した足踏み動作時におけるロール軸操作量の時系列値を用いた。図１４（ａ）、図１５（ａ）、及び図１６（ａ）は、それぞれ床面がフローリングＦＡ、毛足の長さが６ｍｍ未満の絨毯ＦＢ、毛足の長さが６ｍｍ以上の絨毯ＦＣを示す模式図、図１４（ｂ）、図１５（ｂ）、及び図１６（ｂ）は、各床面にてそれぞれ足踏み動作した際に得られた時系列値、図１４（ｃ）、図１５（ｃ）、及び図１６（ｃ）は、各時系列値をそれぞれフーリエ変換して床面の特徴量としたグラフ図を示す。また、図１７は、これら３クラスを判別する際の決定境界を説明する図、図１８は、ロボット装置が足踏み動作して床面判別を行っている様子を示す模式図である。
【０１１０】
先ず、床面カテゴリを判別するために、各床面ガテゴリにおけるロール軸操作量の特徴量を学習しておく。学習時には、図１８に示すように、床面カテゴリに分類する床面を用意し、これをロボット装置に足踏みさせて多数の特徴量を確保しておく。すなわち、図１４乃至図１６に示すように、各床面のロール軸操作量の時系列データから各床面の特徴量を求める。３クラスの判別問題は、線形判別分析によって、図１７に示す２次元空間へ投影される。図１７に示すように、各床面ＦＡ〜ＦＣにて、複数の特徴量を集めて投影することで、データの分布が得られ、これにより、図中実線で示す床面毎の境界決定線を引くことができる。
【０１１１】
このように学習されクラス境界決定線が引かれた２次元空間に対して、ロボット装置が床面の状態に応じた歩行制御を行う場合は、歩行又は上述の足踏み動作により、ロール軸操作量の時系列値を獲得し、これをフーリエ変換して特徴量に変換し、図１７に示す２次元空間へ投影する。そして、各クラス中心点からのユークリッド距離を比較し、もっとも距離が短いクラスに分類することで、床面カテゴリを判別（クラス判別する）ことができる。
【０１１２】
歩行制御部では、３つの床面カテゴリ、即ちフローリングＦＡ、毛足の短い絨毯ＦＢ、毛足の長い絨毯ＦＣに応じた例えば歩行アルゴリズム等の歩行制御形態が用意されており、上述の方法にて床面カテゴリが入力されると、その床面カテゴリに対応した歩行アルゴリズムに従って適応操作量を算出し、安定した歩行を行うことができる。
【０１１３】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。上述の実施の形態においては、床面カテゴリの分類は予め床面を所定のカテゴリに分類し、カテゴリ毎に判別用入力データの特徴量を学習しておくものとしたが、複数種類の床面にて判別用入力データの特徴量（特徴ベクトル）を多量に取得し、パターン空間上のデータ（特徴ベクトル）を、パターン空間上のユークリッド距離等や分散に基づく類似度を使用して類似したいくつかの部分集合に分割するクラスタリングを行うことで、床面のカテゴリの分類を行ってもよい。
【図面の簡単な説明】
【０１１４】
【図１】本発明の実施の形態におけるロボット装置の概観を示す斜視図である。
【図２】同ロボット装置が具備する関節自由度構成を模式的に示す図である。
【図３】同ロボット装置の制御システム構成を示す模式図である。
【図４】同ロボット装置のうち、床面別歩行制御装置に必要な要部のみを機能的に示すブロック図である。
【図５】床面別歩行制御処理の流れを示すフローチャートである。
【図６】（ａ）乃至（ｄ）は、ロボット装置が足踏み動作を行っている様子を示す図である。
【図７】同じく、（ａ）乃至（ｄ）は、ロボット装置１が足踏み動作を行っている様子を示す図であって、図６（ｄ）の後の動作を示す図である。
【図８】横軸に時間をとり、縦軸に加速度をとって、正面方向及び横方向の足底加速度の時系列値を示すグラフ図である。
【図９】横軸に周波数をとり縦軸にパワーをとって、図８に示す正面方向及び横方向の足底加速度の時系列値をフーリエ変換したフーリエパワースペクトルを示すグラフ図である。
【図１０】ロール軸操作量のある時点における時系列値をフーリエ変換して得られたフーリエパワースペクトル特徴を示すグラフ図である。
【図１１】ピッチ軸操作量のある時点における時系列値をフーリエ変換して得られたフーリエパワースペクトル特徴を示すグラフ図である。
【図１２】２つのデータを１つのデータの塊りとして扱う例を示す図である。
【図１３】特徴量を投影して床面カテゴリを判別するための判別空間を示す図である。
【図１４】（ａ）は、フローリングの床面を示す模式図、（ｂ）はフローリングの床面にて足踏み動作した際に得られた時系列値、（ｃ）は、得られた時系列値をフーリエ変換してフローリングの床面の特徴量としたグラフ図である。
【図１５】（ａ）は、毛足の長さが６ｍｍ未満の絨毯の床面を示す模式図、（ｂ）は毛足の長さが６ｍｍ未満の絨毯の床面にて足踏み動作した際に得られた時系列値、（ｃ）は、得られた時系列値をフーリエ変換して毛足の長さが６ｍｍ未満の絨毯の床面の特徴量としたグラフ図である。
【図１６】（ａ）は、毛足の長さが６ｍｍ以上の絨毯の床面を示す模式図、（ｂ）は毛足の長さが６ｍｍ以上の絨毯の床面にて足踏み動作した際に得られた時系列値、（ｃ）は、得られた時系列値をフーリエ変換して毛足の長さが６ｍｍ以上の絨毯の床面の特徴量としたグラフ図である。
【図１７】３クラスを判別する際の２次元空間におけるクラス決定境界を説明する図である。
【図１８】ロボット装置が足踏み動作して床面判別を行っている様子を示す模式図である。
【符号の説明】
【０１１５】
１  ロボット装置、  ２  体幹部ユニット、  ４Ｒ／Ｌ  腕部ユニット、  １０４  体幹ピッチ軸、  １０５  体幹ロール軸、  １０６  体幹ヨー軸、  １１  行動制御部、  １２  床面判別部、  １３  歩行制御部
【図１】
0004649913.tif 000009
【図２】
0004649913.tif 000010
【図３】
0004649913.tif 000011
【図４】
0004649913.tif 000012
【図５】
0004649913.tif 000013
【図６】
0004649913.tif 000014
【図７】
0004649913.tif 000015
【図８】
0004649913.tif 000016
【図９】
0004649913.tif 000017
【図１０】
0004649913.tif 000018
【図１１】
0004649913.tif 000019
【図１２】
0004649913.tif 000020
【図１３】
0004649913.tif 000021
【図１４】
0004649913.tif 000022
【図１５】
0004649913.tif 000023
【図１６】
0004649913.tif 000024
【図１７】
0004649913.tif 000025
【図１８】
0004649913.tif 000026