(57)【要約】【課題】床面の状態が大きく異なりあるいは大きく変化するような領域でも安定した移動を可能とする学習歩行ロボット装置及びその制御プログラムを提供する。【解決手段】所定領域内のそれぞれの位置における床面の硬さ指標を測定する手段２１と、それぞれの位置を表す位置情報と硬さ指標とを対応付けて硬さ情報として保存する手段４１と、所定領域内の学習歩行ロボット装置の現在位置を同定する手段３５と、同定された現在位置における床面の硬さ指標を硬さ情報から決定する手段３６と、決定した床面の硬さ指標に基づいて歩行形態を選択して歩行動作を制御する手段２２〜２８とを有し、手段２１は、学習歩行ロボット装置が直立した姿勢を保持したまま足首の関節ロール軸アクチュエータを駆動したときのアクチュエータに流れる電流値に基づいて、アクチュエータに流れる電流値が大きいほど床面が硬いとする硬さ指標を対応付ける。【選択図】図２
2011189466.tif 000002
【特許請求の範囲】
【請求項１】
所定領域内を２足歩行する学習歩行ロボット装置において、
前記所定領域内のそれぞれの位置における床面の硬さを表す硬さ指標を測定する硬さ指標測定手段と、
前記それぞれの位置を表す位置情報と前記硬さ指標とを対応付けて硬さ情報として保存する硬さ情報記憶手段と、
前記所定領域内の前記学習歩行ロボット装置の現在位置を同定する現在位置同定手段と、
同定された現在位置における床面の硬さ指標を前記硬さ情報から決定する硬さ決定手段と、
決定した床面の硬さ指標に基づいて歩行形態を選択して歩行動作を制御する制御手段とを有し、
前記硬さ指標測定手段は、前記学習歩行ロボット装置が直立した姿勢を保持したまま足首の関節ロール軸アクチュエータを駆動したときの前記アクチュエータに流れる電流値に基づいて、前記アクチュエータに流れる電流値が大きいほど前記床面が硬いとする硬さ指標を対応付けることを特徴とする学習歩行ロボット装置。
【請求項２】
前記所定領域内のそれぞれの位置での周囲の画像を第１の環境画像として取得する環境画像取得手段と、
前記所定領域内の前記学習歩行ロボット装置の現在位置での周囲の画像を第２の環境画像として取得する現在画像取得手段とを更に備え、
前記現在位置同定手段は、前記第２の環境画像と前記第１の環境画像とのマッチング処理結果から現在位置を同定することを特徴とする請求項１に記載の学習歩行ロボット装置。
【請求項３】
前記現在位置同定手段は、学習歩行ロボット装置の歩数、歩幅、旋回角の積分値から求めた現在位置から所定範囲にある位置での前記第１の環境画像と前記第２の環境画像とのマッチング処理結果から現在位置を同定することを特徴とする請求項２に記載の学習歩行ロボット装置。
【請求項４】
前記選択された歩行形態での歩行状態の良否を判定する良否判定手段と、
前記それぞれの位置における硬さ指標と、この硬さ指標に基づいて選択された歩行形態での歩行状態の良否との実績値を収集して蓄積するサンプリング手段と、
前記サンプリング手段が蓄積した実績値から、それぞれの位置において、歩行状態が良となるときの硬さ指標を抽出するサンプリングデータ集計手段とを更に備え、
前記硬さ情報記憶手段は、前記それぞれの位置を表す位置情報と前記サンプリングデータ集計手段により抽出された硬さ指標とを対応付けて硬さ情報として保存することを特徴とする請求項１に記載の学習歩行ロボット装置。
【請求項５】
所定領域内を２足歩行する学習歩行ロボット装置を制御するプログラムにおいて、
前記所定領域内のそれぞれの位置における床面の硬さを表す硬さ指標を測定し、
前記それぞれの位置を表す位置情報と前記硬さ指標とを対応付けて硬さ情報として保存し、
前記所定領域内の前記学習歩行ロボット装置の現在位置を同定し、
同定された現在位置における床面の硬さ指標を前記硬さ情報から決定し、
決定した床面の硬さ指標に基づいて歩行形態を選択して歩行動作を制御する動作を前記学習歩行ロボット装置に搭載されたコンピュータに実行させ、
前記硬さ指標の測定では、前記学習歩行ロボット装置が直立した姿勢を保持したまま足首の関節ロール軸アクチュエータを駆動したときの前記アクチュエータに流れる電流値に基づいて、前記アクチュエータに流れる電流値が大きいほど前記床面が硬いとする硬さ指標を対応付けることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二足歩行を行う学習歩行ロボット装置及びその制御プログラムに関し、特に、二足歩行ロボットが歩行する歩行面の状態が大きく異なるような領域や歩行面の状態が大きく変化するような領域でも安定した移動を可能とする学習歩行ロボット装置及びその制御プログラムに関する。
【背景技術】
【０００２】
従来の二足歩行ロボットの安定した歩行に関する技術としては、各種センサをロボットに設置し、そのセンサ情報を基に算出されたフィードバックゲインや、制御パラメータ、指令値を利用することにより、安定した歩行を実現する技術が開示されている。
【０００３】
例えば、特許文献１には、カメラ、レーザー変位計、赤外線センサ、超音波センサなどにより床面の形状を検出し、またその他センサにより様々な物理量などを検出して、これらを基に算出された補償全床反力モーメントや、オフセット量、目標ＺＭＰなどを利用して姿勢を随時制御することにより、制御のタイミングに依存しないで安定した歩行を実現する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１１９７６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１のように、各種センサからの時々刻々と変化するセンサ情報を基に、フィードバックゲインを逐一算出し、算出されたフィードバックゲインをかけながら歩容を随時補正するような歩行制御方法では、短時間の内に多くのセンサ情報を処理しなければならないために、膨大な量の演算処理を要し、そのため演算処理装置への負荷が極めて大きくなる。従って、演算処理装置の能力の大部分が上記演算処理のために使われ、他のタスクを実行するための余裕がなくなってしまう。
【０００６】
また、上記制御方法では安定した床面での安定な歩行を実現してはいるが、二足歩行ロボットが歩行する床面の状態が変化する場合、例えば、絨毯（柔らかい床面）からフローリング（硬い床面）へと移動するような場合には、一歩毎の制御では二足歩行ロボットの安定した歩行を実現するためには必ずしも十分ではなかった。
【０００７】
さらに、各種センサ情報を基にフィードバック制御を行うような場合には高価でかつ種々のセンサが必要となり、このため、二足歩行ロボットの制御は複雑なものとなり、部品の数が増加することにより信頼性の低下、重量の増加につながる。また、重量の増加は、より強力なアクチュエータを必要としさらに重量が増加するといったことにつながる。
【０００８】
本発明は、このような従来の状況に鑑みて提案されたものであり、演算処理装置への負荷を軽減することができ、床面の状態が大きく異なるような領域や床面の状態が大きく変化するような領域でも安定した移動を可能とする軽量で安価な学習歩行ロボット装置及びその制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するための本発明は、所定領域内を２足歩行する学習歩行ロボット装置において、前記所定領域内のそれぞれの位置における床面の硬さを表す硬さ指標を測定する硬さ指標測定手段と、前記それぞれの位置を表す位置情報と前記硬さ指標とを対応付けて硬さ情報として保存する硬さ情報記憶手段と、前記所定領域内の前記学習歩行ロボット装置の現在位置を同定する現在位置同定手段と、同定された現在位置における床面の硬さ指標を前記硬さ情報から決定する硬さ決定手段と、決定した床面の硬さ指標に基づいて歩行形態を選択して歩行動作を制御する制御手段とを有し、前記硬さ指標測定手段は、前記学習歩行ロボット装置が直立した姿勢を保持したまま足首の関節ロール軸アクチュエータを駆動したときの前記アクチュエータに流れる電流値に基づいて、前記アクチュエータに流れる電流値が大きいほど前記床面が硬いとする硬さ指標を対応付ける学習歩行ロボット装置である。
【００１０】
また本発明は、所定領域内を２足歩行する学習歩行ロボット装置を制御するプログラムにおいて、前記所定領域内のそれぞれの位置における床面の硬さを表す硬さ指標を測定し、前記それぞれの位置を表す位置情報と前記硬さ指標とを対応付けて硬さ情報として保存し、前記所定領域内の前記学習歩行ロボット装置の現在位置を同定し、同定された現在位置における床面の硬さ指標を前記硬さ情報から決定し、決定した床面の硬さ指標に基づいて歩行形態を選択して歩行動作を制御する動作を前記学習歩行ロボット装置に搭載されたコンピュータに実行させ、前記硬さ指標の測定では、前記学習歩行ロボット装置が直立した姿勢を保持したまま足首の関節ロール軸アクチュエータを駆動したときの前記アクチュエータに流れる電流値に基づいて、前記アクチュエータに流れる電流値が大きいほど前記床面が硬いとする硬さ指標を対応付ける制御プログラムである。
【発明の効果】
【００１１】
この発明によれば、演算処理装置への負荷を軽減することができ、床面の状態が大きく異なるような領域や床面の状態が大きく変化するような領域でも安定した移動を可能とする軽量で安価な学習歩行ロボット装置及びその制御プログラムを提供することができる。
【図面の簡単な説明】
【００１２】
【図１】ロボット装置の構成を示す図。
【図２】ロボット装置の動作を制御する制御ブロックの構成と、制御ブロック間の信号のフローを示す図。
【図３】環境情報作成処理の概略の手順を示すフロー図。
【図４】環境情報作成処理の概略の手順を示すフロー図。
【図５】座標位置と環境画像との対応を示す図。
【図６】電流値と床面硬さとの対応データを示す図。
【図７】床面の硬さと歩行パラメータとの対応データを示す図。
【図８】歩行パラメータと補正係数との対応データを示す図。
【図９】基本歩行パターン制御量データを示す図。
【図１０】サンプリングデータを示す図。
【図１１】位置座標と床面の硬さの対応データを示す図。
【図１２】ロボット装置の学習歩行処理手順を示すフロー図。
【図１３】ロボット装置の自己位置同定処理手順を示すフロー図。
【発明を実施するための形態】
【００１３】
[第１の実施の形態]  
本実施の形態の学習歩行ロボット装置（以下、ロボット装置という）は、主として人に毎日の生活を楽しんでもらいながら情報やサービスの提供を行うパーソナルホームコンシェルジュとしての働きを担っている。このために、ロボット装置には、「コミュニケーション知能」による自然なコミュニケーションと共に「移動知能」による生活空間内の自由な移動が求められる。従って、生活空間における様々な素材で構成される床面（歩行面）上を、ロボット装置を安定に歩行させる技術が必要かつ不可欠である。さらに、ホームユースであることに鑑みれば、その歩行技術を安価に構成することが必要である。
【００１４】
図１は、ロボット装置１の構成を示す図である。なお、図１では主として歩行に関する機構を記載しているため、それ以外の機構、例えば腕、指などに関する機構は記載を省略している。
【００１５】
ロボット装置１には、歩行動作に関連するセンサとして、カメラ１０、赤外線測距センサ１１、２軸ジャイロセンサ１２、３軸加速度センサ１３及び圧力センサ１４が設けられている。  
カメラ１０は、ロボット装置１の周囲の環境を撮影する。赤外線測距センサ１１は、ロボット装置１の現在位置から所定距離までの間の床面の凹凸状態を測定する。２軸ジャイロセンサ１２は、ロボット装置１のＸＹ軸周りの旋回角速度を測定する。３軸加速度センサ１３は、ロボット装置１のＸＹＺ軸方向の加速度を測定する。圧力センサ１４は、左右の足裏に設けられてそれぞれの足にかかる荷重分布を測定する。
【００１６】
ロボット装置１の関節の自由度について説明する。これらの関節は、アクチュエータにより回転動作が可能に構成されている。なお、説明に用いる、ロール軸は図中Ｘ軸に相当し、ピッチ軸はＹ軸に相当し、ヨー軸はＺ軸に相当する。
【００１７】
ロボット装置１の首部は、首関節ピッチ軸１０１と首関節ヨー軸１０２の２自由度をもつ。右股部は、右股関節ピッチ軸１０４、右股関節ロール軸１０５及び右股関節ヨー軸１０６の３自由度をもつ。左股部は、左股関節ロール軸１０７、左股関節ピッチ軸１０８及び左股関節ヨー軸１０９の３自由度をもつ。  
ロボット装置１の右膝部及び左膝部は、それぞれ右膝関節ピッチ軸１１１及び左膝関節ピッチ軸１１２の１自由度をもつ。右足首部は、右足首関節ピッチ軸１１３及び右足首関節ロール軸１１４の２自由度をもつ。左足首部は、左足首関節ピッチ軸１１５及び左足首関節ロール軸１１６の２自由度をもつ。
【００１８】
図２は、ロボット装置１の動作を制御する制御ブロックの構成と、制御ブロック間の信号のフローを示す図である。
【００１９】
ロボット装置１には制御ブロックとして、床面状態取得部２１、歩行パラメータ決定部２２、補正係数決定部２３、歩行パターン生成部２４、基本歩行パターン算出部２５、フィードバックゲイン生成部２６、行動制御部２７、歩行制御部２８、サンプリングデータ生成部２９、サンプリングデータ集計部３０、歩行結果判定部３１、現在位置決定部３２、環境画像撮影部３３、対応データ生成部３４、自己位置同定部３５、床面硬さ決定部３６及び歩行制御量データ生成部３７が備わっている。
【００２０】
また、ロボット装置１には記憶装置４０が設けられている。この記憶装置４０には、歩行情報データベース４１及び環境情報データベース４２を備えている。そして制御ブロックが処理を実行するために必要な各種データが、歩行情報データベース４１及び環境情報データベース４２に格納されている。この各データベースの詳細内容については後述する。
【００２１】
次に、ロボット装置１の動作のうち環境情報作成動作について説明する。  
ロボット装置１は、導入された初期において行動範囲となる生活空間内の環境情報を自動で作成する。この環境情報は、後述するように、「位置座標」と「環境画像」と「床面の硬さ情報」と「サンプリングデータ」とを備えている。ロボット装置１は、生活空間内を隈なく歩行して、この情報を収集する。
【００２２】
図３、図４は、環境情報作成処理の概略の手順を示すフロー図である。図２乃至図４を参照しつつ環境情報作成処理を説明する。
【００２３】
ユーザは、充電ステーション（不図示）で待機中のロボット装置１に対して環境情報作成指示を入力する。ステップＳ０１において、ロボット装置１は、現在位置の座標を原点とする。ここで、歩行空間内の座標は、所定位置を基準（原点）とした世界座標系で表されている。この座標系では、充電ステーションの位置を座標原点（ｘ、ｙ、θ）＝（０，０，０）とする。
【００２４】
ステップＳ０２において、ロボット装置１は、自律で移動する。そして、ロボット装置１の現在位置決定部３２は、歩数、歩幅、旋回角を積算することにより、現在位置の座標（ｘ、ｙ、θ）を算出する。ここで、θはロボット装置１の向きを表す角度情報である。
【００２５】
ステップＳ０３において、環境画像撮影部３３は、現在位置における周囲の画像をロボット装置１のカメラ１０により撮影する。カメラ１０は、視野角５０度のレンズを搭載し、例えば、首関節ヨー軸１０２を中心にして回転し、１２０度（±６０度）の範囲を撮影する。首関節ヨー軸１０２の回転３０度刻みで撮影するため、５枚の画像を得る。  
ステップＳ０４において、対応データ生成部３４は、現在位置座標と撮影した環境画像とを対応付けて環境情報データベース４２に格納する。図５は、座標位置と環境画像との対応を示す図である。図５では、カメラ１０が１台設けられて画像が撮影されているが、環境画像は、カメラ１０が複数段に設けられて撮影されたものであっても良いし、首関節ヨー軸１０２の回転に加えて首関節ピッチ軸１０１を回転させて上下方向にも撮影されたものであっても良い。なお、環境画像は、デジタルデータ化され、環境情報データベースに時系列順に保存され、予め設定したデータ量を超えた場合には、古い環境画像データから順に削除されて新たな環境画像データが保存されていく。
【００２６】
ステップＳ０５において、床面状態取得部２１は、現在位置で床面の硬さを取得する。ここで、床面の硬さとは、ＪＩＳで規定されている硬さではなく、ロボット装置１の歩行に影響する床面の状態を表す指標である。床面状態取得部２１は、床面の硬さを次の手順で取得する。
【００２７】
（１）直立姿勢でのロボットの中心を通る鉛直線と床面との交点に左右の足裏面が対向するように左右足首関節ロール軸１１４、１１６周りに足をアクチュエータにより回動する。即ち、左右の足の前記交点と離れた側面の床と接地している辺を支軸として、前記交点に近い側面を持ち上げる。つまり、ロボットを正面から見て足が「ハ」の字状となるように左右の足首関節ロール軸１１４、１１６のアクチュエータを駆動する。なお、足を持ち上げる量は、角度で言えば、例えば５度程度である。  
（２）上記制御を両足首同時に行い、所定の時間毎（例えば、２０ｍｓｅｃ毎）に所定の回数だけ（例えば、１０回）電流値の測定を行い、その所定の回数における電流値の平均値を算出する。両足首の電流値の平均値を加算した値を硬さを判定するときの電流値とする。
【００２８】
（３）測定した電流値から、図６に示す電流値と床面硬さとの対応データに基づいて床面の硬さを選択し、取得する。なお、図６に示すデータは、歩行情報データベース４１に格納されている。  
アクチュエータに流れる電流から、床面硬さを取得できる原理について説明する。例えば、床面がガラスである場合と絨毯である場合を想定する。床面が絨毯と柔らかい場合、足裏を傾けたときの支軸となる足側面側は床面が変形して凹むことにより、足裏と床面との接触面積が増加する。一方、床面がガラスの場合は、床面の変形がほとんどないため、足裏と床面との接触面積は絨毯の場合と比べると小さい。この結果、足裏を傾ける姿勢を保持するためにアクチュエータに必要とされる電流は、絨毯のほうがガラスのときよりも小さくなる。従って、アクチュエータの電流値が高ければ高いほど硬い床面であり、低ければ低いほど柔らかい床面であると判断することができる。
【００２９】
なお、床面の硬さ測定時の足形状は「ハの字」形状だけでなく、「逆ハの字」形状であっても良い。さらに、傾ける足の角度は、上述の５度に限られずロボット装置１が転倒しない限度において任意の角度で良いことは当然である。
【００３０】
図３のステップＳ０６において、歩行パラメータ決定部２２は、取得した床面の硬さに基づいて、現在位置での歩行パラメータを決定する。歩行パラメータ決定部２２は、図７に示す、床面の硬さと歩行パラメータとの対応データから歩行パラメータを決定する。ここで、図７に示す床面の硬さと歩行パラメータとの対応データは、歩行情報データベース４１に格納されている。
【００３１】
ステップＳ０７において、決定した歩行パラメータに基づいて、歩行パターンを生成する。歩行パターンの生成は次の手順で行われる。
【００３２】
（１）補正係数決定部２３は、図８に示す、歩行パラメータと補正係数との対応データから補正係数を選択する。ここで、補正係数は、ロボット装置１の各関節を動作させるアクチュエータ毎に設定されている。  
（２）基本歩行パターン算出部２５は、図９に示す基本歩行パターン制御量データを抽出する。この基本歩行パターン制御量データは、床面の状態によらない制御量データであり、所定時間（歩行の１周期においてアクチュエータを制御する際の単位時刻）毎のアクチュエータの角度量で表される。ここで、基本歩行パターン制御量データはロボット装置１の各関節を動作させるアクチュエータ毎に設定されている。この基本歩行パターン制御量データは、歩行情報データベース４１に格納されている。
【００３３】
なお、本実施の形態における基本歩行パターンは、線形倒立振子モデルを基にした理論的な動歩行パターンであって、線形倒立振子モデルを基にして理論的に算出された各関節アクチュエータの所定時間毎の角度変化量を、時系列順に組み合わせることにより生成される歩行パターンのことである。  
つまり、基本歩行パターンは以下で表される式（線形倒立振子の運動関係を示す運動方程式の解）に基づいて生成される。  
なお、ここではロボットの重心の高さは変化しないものと仮定している。
【００３４】
X(t)=X(0)・cosh(t/Tc)+Tc・X’(0)・sinh(t/Tc)  
X’(t)=X(0)/{Tc・sinh(t/Tc)}+X’(0)・cosh(t/Tc)  
Tc≡√(Z/G)  
X(t)：時刻tにおけるロボットのX軸方向の重心位置  
X’(t)：時刻ｔにおけるロボットのX軸方向の重心の速度  
Z：ロボットの重心の高さ（定数）  
G：重力加速度（定数）  
Tc：ロボットの重心の高さと重力加速度によって決まる時定数
（３）歩行パターン生成部２４は、選択した補正係数（図８）を対応する基本歩行パターンの制御量データ（図９）に掛けた値を新たな歩行パターンとする。これによって、床面の硬さに応じた歩行パターンを生成する。
【００３５】
ステップＳ０８において、行動制御部２７は、生成した歩行パターンに従った歩行動作を指示する。ステップＳ０９において、歩行制御量データ生成部３７は、生成した歩行パターンに対してフィードバックゲイン生成部２６が生成したフィードバックゲインを用いて次の所定時間における歩行動作用の歩行制御量データを生成し、行動制御部２７は、生成した次の所定時間における歩行動作用の歩行制御量データに従った動作を指示して、歩行制御部２８は、ロボット装置１の各関節部アクチュエータの動作を制御する。
【００３６】
フィードバックゲイン生成部２６は、今回のロボット装置１の歩行状態の測定値から次の所定時間における歩行動作時でのフィードバックゲインを次の手順で生成する。  
ロボット装置に設けられた各センサ（ジャイロ、加速度、圧力）は、ロボットの歩行動作中の姿勢に関する時系列データを計測する。フィードバックゲイン生成部２６は、歩行パターン生成部２４が生成した現在の歩行パターンとこの測定データによる歩行状態とを比較して偏差を算出する。そして、この偏差がなくなるように制御用のフィードバックゲインを生成する。ここで生成されたフィードバックゲインは次の所定時間における歩行動作において使用される。
【００３７】
図４のステップＳ１０において、歩行結果判定部３１が、歩行状態が良好であったか不良であったかを判定する。ロボット装置１が転倒した場合は当然不良であるが、転倒しないまでも歩行パターンが床面の硬さと適合しないため歩行状態が良くないと判断される場合がある。この判断方法としては、各センサの測定データから得られた歩行状態を正常な歩行状態と比較して、その乖離の程度が閾値以上である場合に歩行状態が良くないと判定することができる。
【００３８】
ステップＳ１１において、ロボット装置１が所定位置まで歩みを進めたときに、サンプリングデータ生成部２９が、図１０に示すように取得した床面の硬さ、取得した現在座標位置及び歩行の結果を環境情報として登録する。ここで、図１０に示すサンプリングデータは、環境情報データベース４２に格納されている。
【００３９】
なお、上述の所定位置は、本実施の形態では６０ｃｍ先の位置である。これは、ロボット装置１に設けられた赤外線測距センサ１１の測定範囲が６０ｃｍであることに対応している。従って、現在位置として表される座標位置は、この測定範囲の領域を代表する値として把握することができる。
【００４０】
図４のステップＳ１２において、同一座標位置における床面の硬さ及び歩行の結果についてのデータが予定された繰返し数だけ収集されたかどうかを調べる。  
ステップＳ１２においてＮｏの場合、即ち、まだ所定の繰返し数だけデータが収集されていない場合は、図３のステップＳ０２に戻り、環境情報作成動作を繰り返して実行する。
【００４１】
なお、環境情報作成動作は連続して行う必要は無く、生活空間内の各部分領域についてタイミングを別にして作成すれば良い。従って、このような作成動作において、同一の座標位置での床面の硬さ及び歩行の結果のデータが得られたときに、そのデータをサンプリングデータとして登録すれば良い。  
図１０は、このようにしてサンプリングデータ生成部２９によって集められたサンプリングデータを示す図である。図１０に示すように、床面の硬さの測定結果が同じであるとは限らない。また歩行結果も床面の硬さに対応して常に同じであるとは限らない。これは、床面の硬さの測定結果にばらつきが生じたり、たまたま床面が濡れているなどの理由により床面が実際に変化したりすることによる。
【００４２】
ステップＳ１２においてＹｅｓの場合、即ち、所定の繰返し数だけデータが収集された場合は、サンプリングデータ集計部３０が、これらの測定データから測定結果を算出して環境情報として登録する。  
例えば、歩行結果が良（図１０の「歩行結果」の欄が「○」）である回数が最も多い床面の硬さを測定結果として環境情報として登録する。また、異なる床面の硬さにおいて歩行結果が良である回数が同じ場合は、最初に歩行結果が最も多く量となった床面の硬さを測定結果として環境情報として登録する。
【００４３】
図１１は、サンプリングデータ集計部３０が登録した位置座標と床面の硬さの対応データを示す図である。このデータは、繰返し床面の硬さの測定と歩行結果を積み重ねて得られたものであり、ロボット装置１による学習の結果であると見ることができる。なお、サンプリングデータ集計部３０を、適宜のタイミングで起動することによりそれまでに蓄積したデータを集計して最新のデータを利用することができる。  
図４のステップＳ１５において、環境情報作成領域内を隈なく探索して環境情報を作成したかどうかを調べる。ここで、環境情報作成領域とは、環境情報データベース４２内に存在する全環境画像に対応した生活空間内の領域のことである。ステップＳ１５でＹｅｓの場合、即ち環境情報作成領域内の環境情報作成を完了している場合は本処理を終了する。ステップＳ１５でＮｏの場合、即ち環境情報作成領域内に未探索の領域が存在する場合は、ステップＳ１６において、その領域に移動する。移動する領域は、本実施においては、赤外線測距センサ１１の測定結果により凹凸が存在しない領域であればランダムでよい。そして、図３のステップＳ０２からの処理を実行する。
【００４４】
次に、ロボット装置１の動作のうち学習歩行動作について説明する。  
上述の環境情報作成処理において、ロボット装置１が歩行する領域について環境情報が作成された。そのため、ロボット装置１は、環境情報が作成されている領域においては、この環境情報に従った歩行動作を実行する。上述のように環境情報は、ロボット装置１による学習の結果作成されたものである。従って、環境情報に従った歩行動作を学習歩行と呼ぶ。
【００４５】
図１２は、ロボット装置１の学習歩行処理手順を示すフロー図である。図１３は、ロボット装置１の自己位置同定処理手順を示すフロー図である。図２、図１２、図１３を参照しつつ学習歩行処理を説明する。  
ロボット装置１が歩行動作を開始する場合、ロボット装置１は目的地まで図１２のフローに示す学習歩行動作を繰り返して実行する。
【００４６】
図１２のステップＳ２１において、ロボット装置１は現在自分がいる座標位置（自己位置）を同定する処理（図１３）を実行する。なお、この自己位置同定処理は、ロボット装置１の自己位置同定部３５が実行する。
【００４７】
図１３のステップＳ３１において、ロボット装置１は、現在位置まで歩行してきたかどうかを判断する。すなわち、人の手により運搬されるなど、つまり、歩行しないでロボットが現在立っている位置まで移動した場合など学習歩行が継続していない場合を区別するためである。この判断は、例えば位置認識フラグ（不図示）を設けて判断するようにしても良い。この位置認識フラグは、自己位置が同定できていた位置から、ロボットが現在立っている位置まで歩行ができていればＯＮになる。反対に、自己位置が同定できていた位置から、ロボットが現在立っている位置まで歩行しようとしたが、途中で歩行がうまくいかなかった場合には、ＯＦＦになる。また、ロボットが現在立っている位置まで歩行できたが、自己位置が同定できていない位置からの歩行であった場合や、人の手により運搬されるなどしてロボットが現在立っている位置まで移動した場合にもＯＦＦになる。
【００４８】
ステップＳ３１でＮｏの場合、例えば、ロボット装置１が現在位置にユーザによって設置されて、歩行動作をこれから開始する場合は、ステップＳ３２において、環境画像撮影部３３は、カメラ１０により周囲の画像を撮影する。そして、ステップＳ３３において、撮影した環境画像と一致する環境画像が環境情報（図５）にあるかどうかを調べる。
【００４９】
画像の一致は、例えば、テンプレートマッチング法を適用することができる。この処理は次の手順で実行することができる。（１）撮影した環境画像と環境画像との輝度値についてフーリエ変換を行う。（２）フーリエ変換後の２枚の画像についてスペクトル乗算をおこなって、その結果を逆フーリエ変換する。（３）逆フーリエ変換結果について相関係数を算出し、正規化処理した評価値を算出する。（４）最も高い評価値をもつ環境画像を一致した画像と判断する。
【００５０】
このテンプレートマッチング法以外にも種々の画像処理手法を用いることができる。例えば、両画像のそれぞれの周波数分布の差を求めて判断しても良く、両画像の相関演算を行って判断しても良い。またパターンマッチングの手法を用いて判断しても良い。  
さらに、撮影した画像の一部分を用いて比較することで処理の効率化を図っても良い。この処理は、画像同士の厳密な比較を行うのではなく、同じ環境の画像を特定することが目的であるため、このような簡略化した処理であっても所要の目的を達成し、効率化を図ることができる。
【００５１】
ステップＳ３４でＹｅｓの場合、すなわち環境情報にある環境画像と一致した場合は、ステップＳ３５において、一致する環境画像に対応する位置座標を環境情報（図５）より抽出する。そして、ステップＳ３６において、抽出した座標を自己位置の座標とする。
【００５２】
一方、ステップＳ３４でＮｏの場合、すなわち環境情報にある環境画像と一致しない場合は、ステップＳ３８において、撮影した周囲の画像から障害物が無い方向へ移動または旋回して、ステップＳ３２からの処理を実行する。
【００５３】
ステップＳ３１でＹｅｓの場合、すなわち、ロボット装置１が自己位置同定できていた位置から歩行動作を継続して現在位置にいる場合は、ステップＳ４１において、前回の自己位置同定で同定した位置から、歩数、歩幅、旋回角の積算によって現在位置の座標を算出する。しかし、ここで算出した現在の位置座標は自己位置としては採用しない。積算により自己位置を算出することは誤差が大きくなるためである。
【００５４】
そこで、ステップＳ４２において、環境画像撮影部３３は、カメラ１０により周囲の画像を撮影する。そして、ステップＳ４３において、算出した自己位置座標から所定の範囲内にある座標に対応する環境画像を環境情報（図５）から抽出する。ステップＳ４４において、撮影した環境画像と一致する環境画像が抽出した環境画像にあるか否かを調べる。この処理は、ステップＳ３４の処理と異なり対象とする環境画像を絞り込むため、効率的に処理することができる。なお、この画像の一致の判断は、上述のように画像の一部を用いて更に効率化した処理により行っても良い。
【００５５】
ステップＳ４５でＹｅｓの場合、すなわち環境情報にある環境画像と一致した場合は、ステップＳ４６において、一致する環境画像に対応する座標を環境情報（図５）より抽出し、抽出した座標を自己位置の座標とする。
【００５６】
一方、ステップＳ４５でＮｏの場合、すなわち環境情報にある環境画像と一致しない場合は、ステップＳ４８において、撮影した周囲の画像から障害物が無い方向へ移動または旋回して、ステップＳ３１からの処理を実行する。
【００５７】
図１２に戻りステップＳ２２において、床面硬さ決定部３６は、自己位置同定部３５が同定した自己位置での床面の硬さを環境情報（図１１）より抽出する。そして、ステップＳ２３〜Ｓ２６において、床面の硬さに対応した歩行パターンに従って歩行動作を実行する。このステップＳ２３〜Ｓ２６の動作については、環境情報作成処理手順で説明した動作と同じであるため、その詳細の説明は省略する。
【００５８】
ステップＳ２７において、歩行結果を次の歩行にフィードバックできるように、図１０に示すサンプリングデータとして登録する。このサンプリングデータの収集にはデータ処理の負荷がかかるため常に行うのではなく、適宜の間隔タイミングで実施するようにしても良い。また、学習歩行にサンプリングを実施する歩行モードを設けても良い。これによって、過去に収集した環境情報を更新して常に最新の環境を取り入れた学習歩行を実現することができる。  
そして、ステップＳ２８において、所定の位置まで歩行したら次の学習歩行動作に備えるために歩行を停止する。
【００５９】
以上説明した実施の形態によれば、予め設定しておいた様々な床面の状態にそれぞれ対応付けられた複数の歩行パラメータの中から、自己位置での床面の状態に対応する最適な歩行パラメータを選択することにより、床面の状態が大きく異なるような領域や床面の状態が大きく変化するような領域でも安定した移動が可能となる。
【００６０】
また予め設定しておいた様々な床面の状態にそれぞれ対応付けられた複数の歩行パラメータの中から、自己位置での床面の状態に対応する最適な歩行パラメータを選択することにより歩行制御を行うため、時々刻々と変化する種々のセンサ情報を都度処理して歩容を随時補正するような歩行制御方法とは異なり、各種センサ情報や高度な及び／又は膨大な演算処理が不要となる。従って、演算処理装置への負荷が軽減され演算処理装置の能力の多くを他のタスクを実行するために使うことができ、さらに、高価な演算処理装置や各種センサが不要となり軽量かつ安価なロボット装置を構成することができる。
【００６１】
また歩行中に床面の状態を計測する必要は無く、現在位置に対応して設けられた床面状態のデータを選択して歩行の制御を実行するため、汎用的な演算で良く演算処理装置への負荷を軽減することができ、また、汎用的なセンサでその種類や数も少なくて済むため、軽量かつ安価なロボット装置を構成することができる。
【００６２】
また床面の硬さを床面の状態として採用している。床面の硬さは、足首関節ロール軸のアクチュエータの電流から求める簡便な方式を採用し、従来のような複数のセンサから得られた複数のパラメータを用いる必要が無いため、軽量かつ安価なロボット装置を構成することができる。
【００６３】
さらに、周囲の環境画像との比較で自己位置を同定し、その自己位置に対応する床面の硬さを抽出する。このため、自己位置の精度も従来と比べると低い値であっても良い。従って、自己位置を算出するための高度な演算処理が不要となり演算処理装置への負荷を軽減することができ、安価なロボット装置を構成することができる。
【００６４】
なお、上述の各実施の形態で説明した機能は、ハードウェアを用いて構成するに留まらず、ソフトウェアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウェア、ハードウェアのいずれかを選択して構成するものであっても良い。
【００６５】
尚、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。  
上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【００６６】
１…ロボット装置、１０…カメラ、１１…赤外線測距センサ、１２…ジャイロセンサ、１３…加速度センサ、１４…圧力センサ、２１…床面状態取得部、２２…歩行パラメータ決定部、２３…補正係数決定部、２４…歩行パターン生成部、２５…基本歩行パターン算出部、２６…フィードバックゲイン生成部、２７…行動制御部、２８…歩行制御部、２９…サンプリングデータ生成部、３０…サンプリングデータ集計部、３１…歩行結果判定部、３２…現在位置決定部、３３…環境画像撮影部、３４…対応データ生成部、３５…自己位置同定部、３６…床面硬さ決定部、３７…歩行制御量データ生成部、４０…記憶装置、４１…歩行情報データベース、４２…環境情報データベース。
【図１】
2011189466.tif 000003
【図２】
2011189466.tif 000004
【図３】
2011189466.tif 000005
【図４】
2011189466.tif 000006
【図５】
2011189466.tif 000007
【図６】
2011189466.tif 000008
【図７】
2011189466.tif 000009
【図８】
2011189466.tif 000010
【図９】
2011189466.tif 000011
【図１０】
2011189466.tif 000012
【図１１】
2011189466.tif 000013
【図１２】
2011189466.tif 000014
【図１３】
2011189466.tif 000015