(57)【要約】【課題】両脚の機械的な干渉を防ぐことができるとともに、被験者の自然な動作を反映した動作データを生成するデータ生成装置、方法、プログラム及びその動作データにしたがって移動する歩行ロボットを提供すること。【解決手段】本実施形態にかかるデータ生成装置は、取得データに基づいて、基準着地位置を抽出する基準着地位置抽出部１４２と、取得データに基づいて、第１の脚が遊脚であり第２の脚が支持脚となっている期間の特定の時間における歩行ロボットの横方向を特定する方向特定部１４４と、特定の時間における第１の脚と第２の脚と距離を離すように、第２の脚の基準着地位置を前記横方向に移動する着地位置補正部１４５と、を備えている。【選択図】図４
2013103320.tif 000002
【特許請求の範囲】
【請求項１】
被験者の動作に基づいて取得された取得データに基づいて、歩行ロボットの動作データを生成するデータ生成装置であって、
予め取得された前記取得データに基づいて、基準着地位置を抽出する基準着地位置抽出手段と、
前記取得データに基づいて、第１の脚が遊脚であり第２の脚が支持脚となっている期間の特定の時間における前記歩行ロボットの横方向を特定する方向特定手段と、
前記第１の脚と前記第２の脚との距離を離すように、前記期間における前記第２の脚の前記基準着地位置を前記横方向に移動する着地位置補正手段と、を備えるデータ生成装置。
【請求項２】
前記方向特定手段が、前記特定の時間における前記歩行ロボットの前後方向を特定し、
前記期間の直前又は直後での前記第１の脚の基準着地位置から前記前後方向に延びた直線と、前記期間において前記第２の脚の基準着地位置から前記前後方向に延びた直線との間の第１の距離を第１のしきい値と比較し、
前記第１の距離と前記第１のしきい値との比較結果に応じて、前記基準着地位置を前記横方向に移動するか否かを決定することを特徴とする請求項１に記載のデータ生成装置。
【請求項３】
前記期間における前記第１の脚の遊脚軌道を、アフィン変換を用いて生成することを特徴とすることを特徴とする請求項１、又は２に記載のデータ生成装置。
【請求項４】
前記取得データに基づく基準遊脚軌道に応じて暫定遊脚軌道を設定し、
前記第１の脚と前記第２の脚とが前記横方向に並んだ時間において、前記第１の脚の脚位置と第２の脚の脚位置との間の第２の距離を、第２のしきい値と比較して、
前記第２の距離と前記第２のしきい値との比較結果に応じて、前記暫定遊脚軌道に対して前記アフィン変換を行うか否かを決定し、
前記アフィン変換を行う場合には、前記第１及び第２の脚の間隔を前記第２のしきい値以上に広げるように、アフィン変換を行うことを特徴とする請求項３に記載のデータ生成装置。
【請求項５】
前記取得データに基づく基準遊脚軌道に応じて、前記期間における前記基準遊脚軌道の前記横方向の軌道幅を決定し、
前記軌道幅を維持するように、前記基準遊脚軌道を前記アフィン変換することで、前記暫定遊脚軌道が設定されることを特徴とする請求項４に記載のデータ生成装置。
【請求項６】
前記第１及び第２の脚に対して、足平を内包する平面領域をそれぞれ設定して、前記期間全体において前記第１及び第２の脚に対する前記平面領域が干渉するか否かを判定し、
前記第１及び第２の脚に対する前記平面領域が干渉すると判定された場合に、干渉するタイミングでの第１の脚と第２の脚とが離れるように、アフィン変換を実施することを特徴とする請求項３〜５のいずれか１項に記載のデータ生成装置。
【請求項７】
請求項１〜６のいずれか１項に記載のデータ生成装置によって生成されたデータにしたがって歩行するロボット。
【請求項８】
被験者の動作に基づいて取得された取得データに基づいて、ロボットの動作データを生成するデータ生成方法であって、
予め取得された前記取得データに基づいて、基準着地位置を抽出するステップと、
前記取得データに基づいて、第１の脚が遊脚であり第２の脚が支持脚となっている期間の特定の時間における前記歩行ロボットの横方向を特定するステップと、
前記特定の時間における前記第１の脚と前記第２の脚と距離を離すように、前記第２の脚の前記基準着地位置を前記横方向に移動するステップと、を備えるデータ生成方法。
【請求項９】
被験者の動作に基づいて取得された取得データに基づいて、ロボットの動作データを生成するデータ生成プログラムであって、
コンピュータに対して、
予め取得された前記取得データに基づいて、基準着地位置を抽出するステップと、
前記取得データに基づいて、第１の脚が遊脚であり第２の脚が支持脚となっている期間の特定の時間における前記歩行ロボットの横方向を特定するステップと、
前記第１の脚と前記第２の脚と距離を離すように、前記期間における前記第２の脚の前記基準着地位置を前記横方向に移動するステップと、
を実行させるデータ生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、被験者の動作に応じて取得された取得データに基づいて、ロボットの動作データを生成するデータ生成装置、データ生成方法、データ生成プログラム及び該動作データにしたがって歩行するロボットに関するものである。
【背景技術】
【０００２】
近年、人間の動作から取得した動作データを用いて人型ロボットを動作させるための動作データを作成する技術開発が行われている。例えば、モーションキャプチャ装置により取得された被験者の人動作データから人型ロボットの動作データを生成する際に、関節の物理制限を考慮して、人型ロボットが動作可能な動作データを生成する動作データ生成システムが知られている（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−２３１０７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このようなロボットにおいては、動作をより人間に近づけたいという要望がある。モーションキャプチャなどの装置によって、人の歩行動作からデータ（以下、人動作データとする）を取得し、その人動作データを利用することで、ロボットの動作を人の動作に近づけることができる。しかしながら、歩行ロボットでは、一般に脚が人に対して太く、又自由度も不足している。このため、人の脚軌道をそのまま再現すると、両脚が干渉してしまう恐れがある。このような、人の動作に基づいて、ロボットの動作データを生成する場合の問題点について、以下に説明する。
【０００５】
モーションキャプチャを利用しないで、計算のみで歩行用の動作データを生成する場合の歩行軌跡を図１７に示す。図１７は、モーションキャプチャを利用しないで計算した着地位置の軌跡を示す。単に、前方に直進する場合は、直進方向に対して左右の各脚の着地位置を均等に、かつ両脚が干渉しないように直進方向と垂直な左右方向に両脚を離すよう配置する。こうすることで、比較的に簡単に干渉しない歩行軌道を生成することができる。
【０００６】
一方、人の歩行軌道における着地位置は、図１８のような軌跡になっている。例えば、直進する場合でも、体幹の位置は、わずかながら左右に移動しており、完全に真っ直ぐに歩いているわけではない。さらに、その中心線を人動作データから定義しようとしても、直立時にはほぼ中心を示す体幹位置も動的バランスを取りながら歩行をしている。このため、左右に蛇行するような軌道が取られ、中心線を定義するのが困難である。従って、体幹や骨盤の向きを求めることが困難である。
【０００７】
従って、両脚の干渉を防ぐために、両脚の間隔を変化させようとしても、両脚を拡げる方向を特定することが困難になる。すなわち、両脚の干渉を防ぐために、両脚の間隔を拡げようとすると、人動作データからのずれが大きくなってしまい、人の自然な動作を反映させることが困難になる。
【０００８】
本発明は、このような問題点を解決するためになされたものであり、歩行時の機械的な干渉を防ぐことができるとともに、被験者の自然な動作を反映した動作データを生成できるデータ生成システム、方法、プログラム、並びに該データ生成装置で生成された動作データにしたがって移動するロボットを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の第１の態様に係るデータ生成装置は、被験者の動作に基づいて取得された取得データに基づいて、歩行ロボットの動作データを生成するデータ生成装置であって、予め取得された前記取得データに基づいて、基準着地位置を抽出する基準着地位置抽出手段と、前記取得データに基づいて、第１の脚が遊脚であり第２の脚が支持脚となっている期間の特定の時間における前記歩行ロボットの横方向を特定する方向特定手段と、前記第１の脚と前記第２の脚と距離を離すように、前記期間における前記第２の脚の前記基準着地位置を前記横方向に移動する着地位置補正手段と、を備えるものである。これにより、歩行時の機械的な干渉を防ぐことができるとともに、被験者の自然な動作を反映した動作データを生成できる。
【００１０】
本発明の第２の態様に係るデータ生成装置は、上記のデータ生成装置において、前記方向特定手段が、前記特定の時間における前記歩行ロボットの前後方向を特定し、前記期間の直前又は直後での前記第１の脚の基準着地位置から前記前後方向に延びた直線と、前記期間において前記第２の脚の基準着地位置から前記前後方向に延びた直線との間の第１の距離を第１のしきい値と比較し、前記第１の距離と前記第１のしきい値との比較結果に応じて、前記基準着地位置を前記横方向に移動するか否かを決定することを特徴とするものである。これにより、適切な着地位置を簡便に決定することができる。
【００１１】
本発明の第３の態様に係るデータ生成装置は、上記のデータ生成装置において、前記期間における前記第１の脚の遊脚軌道を、アフィン変換を用いて生成することを特徴とするものである。これにより、簡便な処理で、被験者の自然な動作を反映した動作データを生成できる。
【００１２】
本発明の第４の態様に係るデータ生成装置は、上記のデータ生成装置において、前記取得データに基づく基準遊脚軌道に応じて暫定遊脚軌道を設定し、前記第１の脚と前記第２の脚とが前記横方向に並んだ時間において、前記第１の脚の脚位置と第２の脚の脚位置との間の第２の距離を、第２のしきい値と比較して、前記第２の距離と前記第２のしきい値との比較結果に応じて、前記暫定遊脚軌道に対して前記アフィン変換を行うか否かを決定し、前記アフィン変換を行う場合には、前記第１及び第２の脚の間隔を前記第２のしきい値以上に広げるように、アフィン変換を行うことを特徴とするものである。これにより、適切な遊脚軌道を求めることができる。
【００１３】
本発明の第５の態様に係るデータ生成装置は、上記のデータ生成装置において、前記取得データに基づく基準遊脚軌道に応じて、前記期間における前記基準遊脚軌道の前記横方向の軌道幅を決定し、前記軌道幅を維持するように、前記基準遊脚軌道を前記アフィン変換することで、前記暫定遊脚軌道が設定されることを特徴とするものである。これにより、適切な暫定遊脚軌道を求めることができる。
【００１４】
本発明の第６の態様に係るデータ生成装置は、上記のデータ生成装置において、前記第１及び第２の脚に対して、足平を内包する平面領域をそれぞれ設定して、前記期間全体において前記第１及び第２の脚に対する前記平面領域が干渉するか否かを判定し、前記第１及び第２の脚に対する前記平面領域が干渉すると判定された場合に、干渉するタイミングでの第１の脚と第２の脚とが離れるように、アフィン変換を実施することを特徴とするものである。これにより、より確実に干渉を防ぐことができる遊脚軌道を求めることができる。
【００１５】
本発明の第７の態様に係るロボットは、上記のデータ生成装置において、によって生成されたデータにしたがって歩行するものである。これにより、歩行時の機械的な干渉を防ぐことができるとともに、被験者の自然な動作を反映した歩行動作を行うことができる。
【００１６】
本発明の第８の態様に係るデータ生成方法は、被験者の動作に基づいて取得された取得データに基づいて、ロボットの動作データを生成するデータ生成方法であって、予め取得された前記取得データに基づいて、基準着地位置を抽出するステップと、前記取得データに基づいて、第１の脚が遊脚であり第２の脚が支持脚となっている期間の特定の時間における前記歩行ロボットの横方向を特定するステップと、前記特定の時間における前記第１の脚と前記第２の脚と距離を離すように、前記第２の脚の前記基準着地位置を前記横方向に移動するステップと、を備えるものである。これにより、歩行時の機械的な干渉を防ぐことができるとともに、被験者の自然な動作を反映した動作データを生成できる。
【００１７】
本発明の第９の態様に係るデータ生成プログラムは、被験者の動作に基づいて取得された取得データに基づいて、ロボットの動作データを生成するデータ生成プログラムであって、コンピュータに対して、予め取得された前記取得データに基づいて、基準着地位置を抽出するステップと、前記取得データに基づいて、第１の脚が遊脚であり第２の脚が支持脚となっている期間の特定の時間における前記歩行ロボットの横方向を特定するステップと、前記第１の脚と前記第２の脚と距離を離すように、前記期間における前記第２の脚の前記基準着地位置を前記横方向に移動するステップと、を実行させるものである。これにより、歩行時の機械的な干渉を防ぐことができるとともに、被験者の自然な動作を反映した動作データを生成できる。
【発明の効果】
【００１８】
本発明によれば、歩行時の機械的な干渉を防ぐことができるとともに、被験者の自然な動作を反映した動作データを生成できるデータ生成装置、データ生成方法、データ生成プログラム、並びに該データ生成装置で生成された動作データにしたがって移動するロボットを提供することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施の形態にかかるロボットの構成を模式的に示す図である。
【図２】ロボットの動作データを生成する動作データ生成装置の構成を示すブロック図である。
【図３】接地する前後での足平の軌道を模式的に示す側面図である。
【図４】データ生成装置の構成を示すブロック図である。
【図５】被験者の基準着地位置を示す平面図である。
【図６】ロボット用に補正した着地位置を示す平面図である。
【図７】被験者の基準着地位置、及び基準遊脚軌道を示す平面図である。
【図８】ロボット用に補正した着地位置、及び暫定遊脚軌道を示す平面図である。
【図９】図７、及び図８の一部を拡大して示す平面図である。
【図１０】アフィン変換を用いて遊脚軌道を生成した例を示す平面図である
【図１１】アフィン変換を用いずに遊脚軌道を生成した例を示す平面図である
【図１２】暫定遊脚軌道と遊脚軌道を示す平面図である。
【図１３】暫定遊脚軌道から遊脚軌道を決定する処理を説明するための平面図である。
【図１４】変形例に係る処理方法において、右足平を内包する平面領域の一例を示す図である。
【図１５】変形例に係る処理方法において、右足平を内包する平面領域の他の例を示す図である。
【図１６】変形例に係る処理方法において、暫定遊脚軌道から遊脚軌道を生成する手順を説明するための平面図である。
【図１７】計算歩行によって設計された歩行軌跡を示す平面図である
【図１８】人の歩行軌跡を示す平面図である。
【発明を実施するための形態】
【００２０】
以下、本発明に係る移動体の実施形態を、図面に基づいて詳細に説明する。但し、本発明が以下の実施形態に限定される訳ではない。また、説明を明確にするため、以下の記載及び図面は、適宜、簡略化されている。
【００２１】
以下に、図１を参照しつつ本発明の実施の形態１にかかる脚式移動型ロボット（以下、単にロボットという）について説明する。図１は、ロボットの全体構成を模式的に示す正面図である。
【００２２】
図１は、ロボット１を正面から見た様子を概略的に表す概略図であり、床面Ｆ上をロボット１が歩行する様子を表しているなお、図１においては、説明の便宜上、ロボット１が進行する向き（前後方向）をｘ軸、ロボット１が進行する方向について水平方向に直交する向き（左右方向）をｙ軸、移動体の移動する平面から鉛直方向に延びる向き（上下方向）をｚ軸とし、これらの３軸からなる座標系を用いて説明する。すなわち、図１中において、前記ｘ軸は紙面の奥行方向、ｙ軸は紙面に向かって左右方向、ｚ軸は紙面中の上下方向を示す。
【００２３】
図１に示すように、ロボット１は、頭部２と、体幹３と、体幹３に結合された腰部４と、体幹３に接続された右腕５、左腕６と、腰部４に対して回動自在に固定される脚部１０と、を備えた２脚歩行型のロボットである。以下、詳細に説明する。
【００２４】
頭部２は、ロボット１の周囲の環境を視覚的に撮像するための左右一対の撮像部（図示せず）を備えているとともに、体幹３に対して頭部２を鉛直方向に平行な軸周りに回動させることで、周囲の環境を広く撮像する。撮像した周囲の環境を示す画像データは、後述する制御部１３０に送信され、ロボット１の動作を決定するための情報として用いられる。
【００２５】
体幹３は、その内部にロボット１の動作を制御する制御部１３０や、脚部や腕部のアクチュエータ（例えば、モータ）に電力を供給するためのバッテリー（図示せず）等を収容するものである。制御部１３０は、脚部１０を駆動し、ロボット１を動かすための動作データを記憶する記憶領域と、この記憶領域に記憶された動作データを読み出す演算処理部と、脚部１０に含まれるモータを駆動する駆動制御部と、を備えている。これらの各構成要素は、体幹３の内部に設けられたバッテリー（図示せず）から電力を供給されることで動作する。
【００２６】
また、演算処理部は、記憶領域に記憶された動作データを読み出すとともに、読み出した動作データによって特定されるロボット１の姿勢を実現するために必要な脚部１０の関節角を算出する。そして、このように算出した関節角に基づく信号を駆動制御部に送信する。
【００２７】
駆動制御部は、演算処理部より送信された信号に基づいて、脚部を駆動するための各モータの駆動量を特定し、これらの駆動量でモータを駆動させるためのモータ駆動信号を各モータに送信する。これによって脚部１０の各関節における駆動量が変更され、ロボット１の動きが制御される。
【００２８】
また、演算処理部は、読み出した動作データに基づいてモータの駆動を行うように指令するほか、ロボット１に組み込まれたジャイロや加速度計などセンサ（図示せず）からの信号を受けて、モータの駆動量を調整する。また、レーザセンサなどを設けて、床面Ｆまでの距離や障害物までの距離を検出してもよい。ジャイロセンサや加速度計やレーザセンサなどの各種センサは、例えば、体幹３や腰部４に設けられる。このように、センサにより検出したロボット１に作用する外力や、ロボット１の姿勢などに応じて脚部１０の関節角を調整することで、ロボット１が安定した状態を維持することができる。
【００２９】
右腕５および左腕６は、体幹３に対して回動自在に接続されており、肩部分、肘部分および手首部分に設けられた関節部分を駆動することにより、人間の腕部と同様の動きを行うことができる。また、手首部分の先端に接続された手先部は、図示を省略するが物体を把持するためのハンド構造を備えており、ハンド構造に組み込まれた複数の指関節を駆動することで、様々な形状の物体を把持することが可能となる。
【００３０】
腰部４は、体幹３に対して回動するように接続されており、歩行動作を行う際に腰部４の回動動作を組み合わせることで、脚部１０を駆動するために必要な駆動エネルギーを低減させることができる。体幹３と腰部４が胴体部分を構成する。
【００３１】
２足歩行を行うための脚部１０（右脚２０、左脚３０）は、右脚２０と左脚３０とから構成されている。詳細には、図２に示すように、右脚２０は右股関節２１、右上腿２２、右膝関節２３、右下腿２４、右足首関節２５、右足平２６を備え、同様に、左脚３０は左股関節３１、左上腿３２、左膝関節３３、左下腿３４、左足首関節３５、左足平３６を備えている。
【００３２】
そして、右脚２０および左脚３０とは、図示しないモータからの駆動力が、同じく図示しないプーリおよびベルトを介して伝達されることで、各関節部が所望の角度に駆動され、その結果、脚部に所望の動きをさせることができる。
【００３３】
なお、本実施形態においては、脚部１０（右脚２０および左脚３０）は、下腿を膝関節回りに前方側に持ち上げると、人間の脚部のように、上腿と下腿が後方側に向かって開いた状態（上腿の延長線よりも後方側に、下腿が膝関節回りに回転した状態）となる。
【００３４】
記憶領域に記憶された動作データは、脚部１０の移動量に対応づけて、脚部１０の足平（右足平２６、左足平３６）の先端（足先）の位置と、移動体本体の位置とを、ロボット１の移動する空間を定める座標系（例えばｘｙｚ座標系）において経時的に指示するものである。
【００３５】
右腕５は、右ハンド５１、右手首関節５２、右前腕５３、右肘関節５４、右上腕５５、右肩関節５６を有している。右手首関節５２、右肘関節、右肩関節５６は、回転関節機構などを有している。これらの関節が制御部１３０によって制御されることで、右腕５が右ハンド５１の手先位置を所望の位置にすることができる。
【００３６】
同様に、左腕６は、左ハンド６１、左手首関節６２、左前腕６３、左肘関節６４、左上腕６５、左肩関節６６を有している。左手首関節６２、左肘関節６４、左肩関節６６は、回転関節機構などを有している。これらの関節が制御部によって制御されることで、左腕６が左ハンド６１の手先位置を所望の位置にすることができる。
【００３７】
制御部１３０は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、通信用のインタフェイスなどを有する演算処理装置である。また、制御部１３０は、着脱可能なＨＤＤ、光ディスク、光磁気ディスク等を有し、各種プログラムや制御パラメータなどを記憶し、そのプログラムやデータを必要に応じてメモリ（不図示）等に供給する。もちろん、制御部１３０は、物理的に一つの構成に限られるものではない。制御部１３０は、脚部１０、右腕５、左腕６を制御するための演算処理を行う。すなわち、各関節のアクチュエータ（例えば、モータ）に対して指令値を出力する。
【００３８】
制御部１３０で用いられる動作データ（歩容データともいう）は、動作データ生成装置で生成される。動作データ生成装置は、人の動作に応じた人動作データに基づいて、動作データを生成する。なお、動作データ生成装置は、ロボット１に内蔵されていてもよく、ロボット１の外部に設置されていてもよい。すなわち、制御部１３０で動作データを生成してもよく、あるいは外部の動作データ生成装置で生成した動作データをロボット１に転送してもよい。また、動作データに基づく歩行の基本的制御については公知の技術を用いることができる。
【００３９】
次に、動作データを生成するためのデータ生成装置での処理について説明する。図２は、動作データを生成する方法を示すフローチャートである。すなわち、データ生成装置は、図２に示すフローにしたがって、動作データを生成する。
【００４０】
（人動作データの取得ステップＳ１１）
モーションキャプチャ装置を用いて、被験者の対象動作を収録することで、人動作データを取得する。近年はＫｉｎｅｃｔに代表される安価で容易な装置によって、人動作データを取得することができるようになってきている。ここでは、被験者が歩行する動作における、足や腰の挙動を人動作データとして取得する。例えば、脚部１０や腰部４の関節角度や関節位置などのデータを取得する。さらには、被験者の上体、腕、頭部の人動作データを取得するようにしてもよい。また、被験者が歩行しているときに、床反力データを取得するようにしてもよい。
【００４１】
被験者の動作を測定（キャプチャ）する着目部位（例えば、肘、肩、腰、頭、足先、手先など）に、マーカーを夫々取付ける。トラッカーは、所定の周期で各マーカーの位置を検出する。トラッカーで検出された各マーカーの位置は処理装置に入力される。このようにして、被験者の着目部位の動作データが取得される。処理装置は、検出されたマーカーの位置データに対して所定処理を行い、その処理した動作データ（モーションキャプチャデータ）を出力する。
【００４２】
（前処理Ｓ１２）
一般に収録されたデータはノイズを多く含んでいるため、ロボットのデータにそのまま適用することが困難である。すなわち、ノイズによって振動的な指令値となってしまうため、アクチュエータの破損や応答の悪化が懸念される。従って、このステップＳ１２では、任意の平滑化を行うフィルタ処理を施して、所望の滑らかさのデータに変換する。
【００４３】
次に、ロボットの制御周期に合わせて、元データに補間、あるいはデータ削減を施す。これにより、時間分解能がロボットの制御周期の合わせたものとなる。これにより、ロボットの制御周期に合わせた時間間隔のデータを得ることできる。
【００４４】
（スケーリングＳ１３）
比較的に人に近い形状のロボット１を対象としたとしても、収録対象となる人間と、ロボット１との間には、リンク長の違いや、関節数あるいは関節構成の違いが存在する。そのために身体構成の違いを埋めるスケーリング（ＣＧ分野ではリターゲッティングともいう）を施す。脚動作を例に説明すると、優先的に着目するのは、腰や足先の位置、姿勢である。それらを人の足先から腰までのリンク長とロボットの同部位のリンク長の比を考慮して、データの再構築を行う。そして、データを再構築した上で、ロボットが冗長自由度を有する場合、極力元の人データの対応する関節角度を参照して、その値に近くなるようにインバースキネマティクスを解いて、ロボット用のデータに変換する。
【００４５】
（軌道補正Ｓ１４）
１）床面へのフィッティング
収録した人動作での足裏の位置姿勢は計測誤差の影響があり、不具合が生じる。例えば、足裏が地面にのめり込んだり、地面から浮いてしまったりしてしまう。ここでは、これに関して、地面との設置や離地タイミングでの補正を行い、実際にロボットにおいて歩行可能な処理を施す。接地タイミングや離地タイミングは、各足の位置、速度、あらには床反力情報等を基に判断を行うことができる。
【００４６】
床面へのフィッティング処理について図３を用いて説明する。図３は、接地する前後での足平の軌道を模式的に示す側面図である。図３において、点線は元データ（人動作データ）による足平位置を示し、実線はフィッティング後の足平位置を示している。ベタ足→踵離床→遊脚となる挙動が図３の上側に示され、遊脚→踵接地→ベタ足となる挙動が図３の下側に示されている。例えば、接地時において足が床面にめり込んでいる場合、フィッティング処理を行う。こうすることで、ベタ足状態では、足裏が水平となって、床面に接地する。
【００４７】
２）干渉回避
ロボット１を人と同じように歩行させようとした場合、ロボットのメカ的制約から、足を交差できる範囲に制限がある。そこで、本実施形態では、被験者に動作によって取得した取得データの特徴を考慮しつつ、ロボットの足間の干渉を回避する軌道を生成している。この干渉を回避するための補正方法については後述する。
【００４８】
（動的安定化計算Ｓ１５）
上記のステップＳ１１〜Ｓ１４で変更したデータは、人動作を幾何学的な変更を加えただけのものであり、実ロボットに適した時の動的安定性は保証されていない。そこで、このステップでは以下に示す処理を施して、ロボットでの安定歩行を補償するための動的安定化処理を行う。
【００４９】
１）目標床反力中心点（ＺＭＰ）の算出
以動作収録時に床反力が計測できていれば、以下に示すような補正を行う。接地相と脚位置から各足での目標ＬｏｃａｌＺＭＰ（Ｚｅｒｏ  Ｍｏｍｅｎｔ  Ｐｏｉｎｔ）を下式により算出する。
ＺＭＰｘ＝（ｌｏｃａｌＺＭＰｘＬ×ｆＬ＋ｌｏｃａｌＺＭＰｘＲ×ｆＲ）／（ｆＬ＋ｆＲ）
ＺＭＰｙ＝（ｌｏｃａｌＺＭＰｙＬ×ｆＬ＋ｌｏｃａｌＺＭＰｙＲ×ｆＲ）／（ｆＬ＋ｆＲ）
【００５０】
このように、左右のＬｏｃaｌＺＭＰと荷重情報から全体の目標ＺＭＰを算出することができる。床反力を計測することで、人の動作を生かしたＺＭＰの時間軌道が生成可能となる。ロボットの歩行動作をより自然な動作にすることができる。
【００５１】
動作収録時に床反力が計測できていなければ、ステップＳ１４の床面フィッティング処理で求めた接地タイミング、離床タイミングと足平位置を用いて、ＺＭＰ軌道を生成することができる。
【００５２】
２）重心軌道や角運動量の補正
１）で算出したＺＭＰ軌道を満たすような重心位置、及び重心の各運動量の時間軌道を算出する。そのための手法としては、ロボットを台車倒立振子に見立てて問題を解くような各種安定化方法が提案されている。このようにすることで、１）で算出したＺＭＰ軌道をほぼ実現するような重心軌道を得ることができる。
【００５３】
（後処理Ｓ１６）
生成したデータ（位置、姿勢情報や、各関節角の時系列データ）を実ロボットに必要な座標系への換算を行ったり、ロボット制御周期に合わせたデータ補間等を施したりする。なお、データ補間をステップＳ１２で行い、時間分解能が高いデータでステップＳ１４の安定化処理を行うことで、動作の精度を高くすることができる。反対に、時間的に粗なデータでステップＳ１５の動的安定化計算までを行い、Ｓ１６の後処理でロボットの制御周期に合わせることで、計算時間を短縮することができる。これは、計算機環境やリアルタイム性をどれだけ問われる用途で使用するかによって選択される。
【００５４】
（ロボット用動作データの生成Ｓ１７）
制御対象とするロボットによって、動作データのフォーマットに差異があることも考えられる。単に、時系列の全間接データと基準となる部位の位置・姿勢のデータという場合も考えられるし、全着目部位の位置・姿勢の時系列データを要求する場合等、ロボットの内部のデータ処理方法に合わせて、データの整形を行い実ロボット用の動作データが完成する。そしてロボット１がこの動作データにしたがって、歩行動作を行う。
【００５５】
次に、ステップＳ１４の２）で示した干渉を回避する動作データの生成方法について、説明する。歩行ロボットでは、一般に脚が人に対して太く、又自由度も不足している。このため、人の脚軌道をそのまま再現すると、両脚が干渉してしまう恐れがある。
【００５６】
そこで、本実施形態では、足を着地する着地位置自体を他方の足の前後位置から決定している。そして、新たに決定された着地位置を結ぶ遊脚軌道をさらに補正している。これにより、両脚の干渉を防ぎつつも、人動作の遊脚軌道を極力再現することができる。例えば、遊脚軌道に対してアフィン変換を行うことで、人の遊脚軌道に対して、干渉を最低限回避できる軌道に変更している。以下、ステップＳ１４の２）におけるデータ生成を行うデータ生成装置について図４を用いて説明する。図４は、データ生成装置の構成を示すブロック図である。
【００５７】
図４に示すように、データ生成装置は、取得データ記憶部１４１と、基準着地位置算出部１４２と、基準遊脚軌道抽出部１４３と、方向特定部１４４と、基準位置補正部１４５と、暫定遊脚軌道設定部１４６と、遊脚軌道補正部１４７と、を有している。
【００５８】
取得データ記憶部１４１は、被験者の動作を収録することで取得された取得データを記憶している。なお、取得データは、取得した人動作データであってもよく、人動作データに対して上記のステップＳ１１の前処理〜ステップＳ１４の床面フィッティングまでの処理が施されたデータであってもよい。
【００５９】
基準着地位置抽出部１４２は、取得データの中から右脚２０と左脚３０の着地位置を抽出する。取得データにおける左右の脚部１０の着地位置を基準着地位置とする。基準遊脚軌道抽出部１４３は、取得データの中から左右の脚部１０の遊脚軌道を抽出する。取得データにおいて、左脚が遊脚となっている時の左脚の軌道と、右脚が遊脚となっている時の右脚の軌道が、基準遊脚軌道となる。
【００６０】
方向特定部１４４は、歩行中の特定のタイミングにおける前後方向と左右方向を特定する。歩行ロボット１の前後方向は体の正面の向きに平行であり、左右方向は水平面内において前後方向に垂直な方向である。例えば、方向特定部１４４は、歩行中に一方の脚が遊脚となっている期間において、その中間時間における方向を特定する。
【００６１】
着地位置補正部１４５は、方向特定部１４４において特定された方向に着地位置を移動する。これにより、基準着地位置が補正される。着地位置補正部１４５は、左右方向における両足間隔を第１のしきい値と比較して、その比較結果に応じて基準着地位置を補正する。これにより、両脚の距離が離れるように、基準着地位置が補正される。このようにして、着地位置が決定される。
【００６２】
暫定遊脚軌道設定部１４６は、補正された着地位置に対する遊脚軌道を暫定遊脚軌道として設定する。ここでは、人動作データにおける基準遊脚軌道をアフィン変換することで、暫定遊脚軌道が設定される。これにより、補正された着地位置を通る暫定遊脚軌道が決定される。
【００６３】
遊脚軌道補正部１４７は、暫定遊脚軌道を補正することで、遊脚軌道を決定する。遊脚軌道補正部１４７は、暫定遊脚軌道中の遊脚と支持脚の横方向における間隔を第２のしきい値と比較し、その比較結果に応じて暫定遊脚軌道を補正する。これにより、補正された着地位置を通る遊脚軌道が決定される。
【００６４】
上記のように、両脚の軌道を決定する方法は、着地位置を決定するステップと、遊脚軌道を決定するステップとの２つを有している。以下、これらの処理について、図５〜図１３を用いて詳述する。図５〜図１３は、各処理における、着地位置や遊脚の軌道を模式的に示す平面図である。
【００６５】
Ａ：着地位置の決定
着地位置を決定する手順について、図５と図６を参照して説明する。図５は、被験者の着地位置（基準着地位置）を示す平面図であり、図６はロボット用に補正した着地位置を示す平面図である。図５に示すように、人の左脚が基準着地位置Ｓｌ１、Ｓｌ２、Ｓｌ３の順で着地し、右脚が基準着地位置ＳＲ１、ＳＲ２，ＳＲ３，ＳＲ４の順で着地しているとする。着地位置補正部１４５が人動作から得た基準着地位置をロボットにおける着地位置に変換する。これにより、図６に示すように、ロボット１の左脚３０が着地位置Ｕｌ１、Ｕｌ２、Ｕｌ３の順で着地し、右脚２０がＵｒ１、Ｕｒ２、Ｕｒ３、Ｕｒ４の順で着地するようになる。なお、図６では、説明の明確化のため、図５で示した人動作の基準着地位置Ｓｌ１〜Ｓｌ３と基準着地位置ＳＲ１〜ＳＲ４を点線で示している。
【００６６】
まず、ロボットの左右両脚の間隔に対して、しきい値ＴＨ１と設定する。例えば、ロボット１０の左右の足首位置の間隔がこれ以上狭くなるとメカ的干渉が生じるような値をしきい値ＴＨ１とすることができる。なお、本実施の形態では、左右両脚の脚位置（ＸＹ座標）を足首位置で代表させている。従って、両脚の足首位置の間隔に対するしきい値ＴＨ１を求めている。もちろん、足首以外の箇所で、脚部の位置（ＸＹ座標）を特定してもよい。なお、以下の説明では、左脚３０が着地位置Ｕｌ２で支持脚となっている状態で、遊脚である右脚を基準着地位置Ｓｒ２から基準着地位置Ｓｒ３まで移動させる状況について説明する。
【００６７】
次に、人データにおける右脚が離床して、着床するまでの期間における中間時間をＴとする。例えば、右脚が着床する時間をＴ２とし、着床する時間をＴ３とすると、中間時間Ｔ＝（Ｔ２＋Ｔ３）／２となる。中間時間Ｔの瞬間においてロボット１の体正面方向に平行であり、右脚の足首位置を通る直線を求める。ロボット１が直進する場合、中間時間Ｔにおいては、ロボット１の体が、移動の終点に向かう方向、あるいはそれに近い方向を向いていると考えられる。すなわち、中間時間Ｔにおける体の向きが進行方向に対する前後方向になっている。中間時間Ｔにおける体の正面方向の決定には、体幹３又は腰部４の向きや、両骨盤の位置から向きを求めることが有効である。
【００６８】
方向特定部１４４が、中間時間Ｔにおける前後方向と、左右方向とを特定する。なお左右方向は、水平面において前後方向に直交する方向である。方向特定部１４４は、中間時間Ｔにおける基準着地位置Ｓｒ２と基準着地位置Ｓｒ３の右足首位置を通り、前後方向に延びた直線をそれぞれ求める。ここで、基準着地位置Ｓｒ２での右足首位置を通り前後方向に延びる直線をＢｒ２とし、基準着地位置Ｓｒ３での右足首位置を通り前後方向に延びる直線をＢｒ３とする。
【００６９】
同様に、基準着地位置Ｓｌ２での左足首位置を通り、前後方向に延びる直線をＢｌ２とし、での左足首位置を通り、同じ傾きの直線を求める。すなわち、基準着地位置Ｓｌ２での左足首位置を通る前後方向の直線を求める。基準着地位置Ｓｌ２における左足首位置を通る前後方向の直線をＢｌ２とする。そして、直線Ｂｌ２と直線Ｂｒ２の間隔（図６中において両方向矢印で示されている）と、直線Ｂｌ２と直線Ｂｒ３の間隔（図６中において両方向矢印で示されている）を算出する。これらの間隔（第１の距離）と（ＴＨ１／２）を比較する。少なくとも一方の間隔が（ＴＨ１／２）よりも小さい場合、直線間の間隔が（ＴＨ１／２）以上となるように、左足首位置を移動させる。すなわち、左脚３０の着地位置を左側に移動させる。これにより、左脚３０が右脚２０から離れるように、着地位置が補正される。ここでは、直線Ｂｒ２、Ｂｒ３からしきい値以上離れた直線Ｂ'ｌ２上に着地位置Ｕｌ２が移動する着地位置補正部１４５は、基準着地位置Ｓｌ２を着地位置Ｕｌ２に変換する。
【００７０】
上記の手順を全着地位置に適用することにより、両脚が干渉しない着地位置を決定することができる。すなわち、移動始点から移動終点までの全着地位置に対して、着地位置を補正する。上述した通り、着地位置の補正は、しきい値と比較結果に応じて行われる。すなわち、着地位置は、左右方向における両脚の着地位置の間隔が、しきい値を越えるように補正される。
【００７１】
なお、しきい値をＴＨ１の半分とするのは、左右の両脚の着地位置に対して同様の処理を行うためである。すなわち、左右の脚の着地位置がそれぞれ補正されるから、両足の足首位置の間隔がしきい値ＴＨ１を越えないようになる。もちろん、直線Ｂｌ２と直線Ｂｒ２の間隔と、直線Ｂｌ２と直線Ｂｒ３の間隔が、しきい値を超えない場合は、基準着地位置をそのまま着地位置とする。
【００７２】
このように、中間時間Ｔにおける方向を特定することで、簡便に着地位置を補正することができる。さらに、しきい値ＴＨ１に対する比較結果に応じて、着地位置を補正するか否かを決定することで、簡便に適切な遊脚軌道を生成することができる。なお、方向を特定する時間は、１歩の時間的な中間時間Ｔに限られるものではない。例えば、１歩の間隔の距離的な中間時間でもよい。また、方向を特定する時間は、１歩の間の完全な中間時間に限らず、中間時間から前又は後にずれていてもよい。さらに、直線Ｂｌ２と直線Ｂｒ２との間隔に対するしきい値と、直線Ｂｌ２と直線Ｂｒ３との間隔に対するしきい値とを異なる値としてもよい。すなわち、遊脚期間の直前の基準着地位置と、遊脚期間の直後の基準着地位置とで、比較に用いるしきい値を切り替えてもよい。
【００７３】
Ｂ：遊脚軌道の決定
上記のように求めた着地位置では、着地位置での干渉を防ぐことができるが、遊脚に対する干渉については考慮していない。そこで、補正した着地位置を結びつつ干渉を回避するような遊脚軌道を生成する処理について説明する。遊脚軌道の生成は、以下の２つのステップを有している。
（Ｂ−１）変更した着地位置を通る暫定遊脚軌道への変換
（Ｂ−２）自己干渉を考慮した遊脚軌道への変換
以下、それぞれのステップについて説明する。
【００７４】
（Ｂ−１）変更した着地位置を通る暫定遊脚軌道への変換
人動作による基準着地位置と、補正した着地位置をそれぞれ、図７、図８の平面図に示す。図７は、図５と同様の基準着地位置となっており、図８は、図６と同様の着地位置となっている。以下の説明では、基準着地位置Ｓｒ２から基準着地位置Ｓｒ３までの間の基準遊脚軌道Ｐａを変換する例について説明する。なお、基準遊脚軌道抽出部１４３が。取得データ記憶部１４１に記憶された取得データの中から、基準遊脚軌道Ｐａを抽出している。
【００７５】
図７に示すように、人の左脚が基準着地位置Ｓｌ２で支持脚となっている状態における、右脚の基準遊脚軌道をＰａとする。すなわち、基準遊脚軌道Ｐａは、遊脚である右脚が基準着地位置Ｓｒ２から離床して、基準着地位置Ｓｒ３に着床するまでの遊脚軌道である。暫定遊脚軌道設定部１４６が、基準遊脚軌道Ｐａを、暫定遊脚軌道Ｐｂに変換する。暫定遊脚軌道Ｐｂは、着地位置Ｕｒ２と着地位置Ｕｒ３とを結ぶ遊脚軌道である。ここで、基準着地位置Ｓｒ２から基準着地位置Ｓｒ３までの基準遊脚軌道Ｐａと、着地位置Ｕｒ２から基準着地位置Ｓｒ３までの暫定遊脚軌道Ｐｂを比較するために拡大した平面図を図９に示す。
【００７６】
まず、中間時間Ｔにおけるロボットの左右方向に延び、かつ、左脚の足首位置を通る直線Ｃを考える。なお、直線Ｃは、水平面内において、図５、図６で示した直線Ｂｌ２、Ｂｒ２、Ｂｒ３と垂直である。次に、基準着地位置Ｓｒ２と基準着地位置Ｓｒ３とを結ぶ線分を線分Ｅａとする。線分Ｅａと直線Ｃとの交点を交点Ｈａとする。直線Ｃと基準遊脚軌道Ｐａとの交点を交点Ｇａとする。交点Ｈａから交点Ｇａまでの距離、すなわち、横方向における遊脚の軌道幅を基準遊脚軌道Ｐａの横幅ｄとする。横幅ｄは、直線Ｃに平行な方向における基準遊脚軌道Ｐａの拡がり度合いを示しており、横幅ｄが０だと、直線Ｃに垂直な前後方向に進むことになる。横幅ｄは、基準遊脚軌道Ｐａと、線分Ｅａと、直線Ｃの位置関係から算出される。
【００７７】
そして、暫定遊脚軌道設定部１４６は、横幅ｄを維持したまま、基準遊脚軌道Ｐａを暫定遊脚軌道Ｐｂに変換する。例えば、着地位置Ｕｒ２と着地位置Ｕｒ３とを結ぶ線分を線分Ｅｂとする。ここで、直線Ｃと線分Ｅｂとの交点Ｈｂとする。そして、交点Ｈｂから横幅ｄだけ横方向（直線Ｃと平行方向）にずれた点を交点Ｇｂとする。基準遊脚軌道Ｐａを、交点Ｇｂを通るような暫定遊脚軌道Ｐｂにアフィン変換する。換言すると、交点Ｇｂは、暫定遊脚軌道Ｐｂと直線Ｃとの交点となる。交点Ｇｂと交点Ｈｂの間隔は横幅ｄとなっている。なお、線分Ｅｂと直線Ｃと横幅ｄから、交点ＧｂのＸＹ座標を求めることができる。このようなアフィン変換を行うと、線分Ｅａと１辺とする平行四辺形（図７中の点線で示されている）が、線分Ｅｂを１辺とする平行四辺形（図８中の点線で示されている）に変換される。なお、平行四辺形の他の一辺は、それぞれ、長さが横幅ｄで直線Ｃに平行な線分となる。
【００７８】
基準遊脚軌道Ｐａを平行四辺形の変形（アフィン変換）により、暫定遊脚軌道Ｐｂに変換する。基準着地位置Ｓｒ２と基準着地位置Ｓｒ３、と交点Ｈａと、着地位置Ｕｒ２と着地位置Ｕｒ３、と交点Ｈｂとから、アフィン変換に必要なパラメータを求めることができる。例えば、２次元アフィン変換の数式は以下の式（１）で示される。
【００７９】
【数１】
2013103320.tif 000003
【００８０】
そして、基準着地位置Ｓｒ２のＸＹ座標を（ｘ、ｙ）とし、着地位置Ｕｒ２のＸＹ座標を（ｘ'、ｙ'）として、式（１）に代入する。同様に、基準着地位置Ｓｒ３のＸＹ座標を（ｘ、ｙ）とし、着地位置Ｕｒ３のＸＹ座標を（ｘ'、ｙ'）として、式（１）に代入し、交点ＨａのＸＹ座標を（ｘ、ｙ）とし、交点ＨｂのＸＹ座標を（ｘ'、ｙ'）として、式（１）に代入する。こうすることで、６元連立１次方程式ができる。これを解くことで、２に次元アフィン変換に必要な６つのパラメータａ１、ａ２、ｂ１、ｂ２、ｃ１、ｃ２を得ることができる。このように、変換前と変換後のそれぞれにおいて、３点の足平位置が決まれば、アフィン変換に必要なパラメータを算出することができる。
【００８１】
この６つのパラメータを用いた式（１）に、基準遊脚軌道の時系列のＸＹ座標を代入する。こうすることで、暫定遊脚軌道Ｐｂを得ることができる。すなわち、遊脚の時系列のＸＹ座標を求めることができる。このようなアフィン変換を両脚のそれぞれに対して順番に適用することで、移動始点から移動終点までの各着地位置間の暫定遊脚軌道Ｐｂを生成することができる。すなわち、全着地位置間における基準遊脚軌道Ｐａをアフィン変換することで、移動始点から移動終点までの暫定遊脚軌道Ｐｂが生成される。もちろん、遊脚の時系列のＺ座標については変更しないようにしている。
【００８２】
本実施の形態では、暫定遊脚軌道Ｐｂを生成するために、アフィン変換を用いている。暫定遊脚軌道Ｐｂの生成にアフィン変換が好適である理由について図１０、及び図１１を用いて説明する。図１０は、アフィン変換（平行四辺形による変換）を用いた例を示す平面図であり、図１１は、長方形による変換を用いた例を示す平面図である。
【００８３】
図１０、図１１に示す例では、干渉防止により、着地位置Ｕｒ３が基準着地位置Ｓｒ３から大きく変化した例を示している。アフィン変換を用いた場合、図１０に示されているように、平行四辺形が変形することになる。すなわち、線分Ｅａを１辺とする平行四辺形が変形され、線分Ｅｂを１辺とする平行変形となる。一方、アフィン変換を用いない場合、図１１に示されているように、長方形が変形することになる。すなわち、線分Ｅａを１辺とする長方形が、線分Ｅｂを１辺とする長方形に変換される。なお、長方形の他方の１辺の長さはそれぞれ横幅ｄである。
【００８４】
長方形による変換では、変換後の暫定遊脚軌道Ｐｂが必要以上に大きく下に凸となっている。このため、長方形の傾きの変化に応じて、横幅ｄの方向が変化して、無駄に遊脚が大回りするような軌道が導出される。遊脚が横方向、あるいは斜め後方に移動しているようになり、不自然な歩行動作となる。従って、本実施形態のように、中間時間Ｔにおけるロボット１の正面の向きを考慮して、人動作の特徴を取り入れたアフィン変換を施すことが好ましい。こうすることで、着地位置に大きな変化が生じたとしても、無理のない暫定遊脚軌道Ｐｂを算出することができる。
【００８５】
（Ｂ−２）自己干渉を考慮した遊脚軌道への変換
次に、（Ｂ−１）で求めた暫定遊脚軌道Ｐｂを最終的な遊脚軌道に変換する手順について説明する。（Ｂ−１）で求めた暫定遊脚軌道Ｐｂは、着地位置に合わせて再構築した軌道ではあるが、支持脚との干渉を回避できるかどうかについては考慮されていない。そこで、以下の処理を行い、支持脚との干渉回避を考慮した遊脚軌道を生成する。
【００８６】
図１２に、（Ｂ−１）で求めた暫定遊脚軌道Ｐｂの平面図を示す。まず、両脚が左右に並んだときに、それ以上近づくと両脚が干渉してしまうようなしきい値ＴＨ２を設定する。しきい値ＴＨ２は、メカ設計の設計値より設定することができる。しきい値ＴＨ２はしきい値ＴＨ１よりも大きい値としている。しきい値ＴＨ１は足平の寸法を考慮して設定した値となるが、しきい値ＴＨ２は、膝同士や足平と足首などの脚全体の干渉を考慮して設定する値となっている。従って、しきい値ＴＨ２は、しきい値ＴＨ１よりも大きい値となる。
【００８７】
そして、直線Ｃ上における支持脚位置と暫定遊脚軌道Ｐｂとの間隔をしきい値ＴＨ２と比較し、その比較結果に応じて、暫定遊脚軌道に変更する。これにより、最終的な遊脚軌道Ｐｃを含む動作データが生成される。
【００８８】
例えば、着地位置Ｕｌ２と暫定遊脚軌道Ｐｂとの間の横方向の間隔が、しきい値ＴＨ２よりも小さい場合、遊脚軌道補正部１４７が、直線Ｃ上の暫定遊脚軌道中の遊脚の位置を、支持脚から離す。これにより、直線Ｃ上における着地位置Ｕｌ２と遊脚との距離がしきい値ＴＨ２以上となる遊脚位置が生成される。換言すると、直線Ｃ上において着地位置Ｕｌ２からしきい値ＴＨ２だけ離れた位置を遊脚が通過するような遊脚軌道Ｐｃが生成される。一方、着地位置Ｕｌ２における支持脚位置と暫定遊脚軌道Ｐｂとの間の横方向の間隔が、しきい値ＴＨ２よりも大きい場合、暫定遊脚軌道Ｐｂを最終的な遊脚軌道とする。
【００８９】
最終的な遊脚軌道Ｐｃの生成について、図１３を用いて詳細に説明する。図１３は、着地位置Ｕｒ２と着地位置Ｕｒ３の間の遊脚軌道を拡大して示す平面図である。直線Ｃ上における遊脚位置と支持脚位置が、しきい値ＴＨ２以上になる。ここでは、暫定遊脚軌道Ｐｂの生成と同様にアフィン変換を用いる。
【００９０】
例えば、直線Ｃ上において、着地位置Ｕｌ２からしきい値ＴＨ２だけ離れた点を交点Ｇｃとする。交点Ｇｃは、直線Ｃと遊脚軌道Ｐｃとの交点である。交点Ｇｂが交点Ｇｃに変化し、かつ着地位置Ｕｒ２、Ｕｒ３が変化しないようにアフィン変換を行う。すなわち、着地位置Ｕｒ２、着地位置Ｕｒ３、交点Ｇｂ、交点Ｇｃの座標によって、上記と同様にアフィン変換に必要なパラメータを算出する。
【００９１】
基準着地位置Ｕｒ２のＸＹ座標を（ｘ、ｙ）、及び（ｘ'、ｙ'）として、式（１）に代入する。同様に、基準着地位置Ｕｒ３のＸＹ座標を（ｘ、ｙ）、及び（ｘ'、ｙ'）とし、式（１）に代入する。さらに、交点ＧｂのＸＹ座標を（ｘ、ｙ）とし、交点ＧｃのＸＹ座標を（ｘ'、ｙ'）として、式（１）に代入する。こうすることで、６元連立１次方程式ができる。
【００９２】
そして、６元連立１次方程式を解くことで、パラメータａ１、ａ２、ｂ１、ｂ２、ｃ１、及びｃ２を算出することができる。このようにして求めたパラメータを式（１）に代入して、着地位置Ｕｒ２、Ｕｒ３の間の暫定遊脚軌道Ｐｂ全域の変換を行う。このようにすることで、時系列に沿った遊脚位置が横方向に移動され、遊脚軌道Ｐｃが生成される。
【００９３】
なお、着地位置Ｕｒ２と着地位置Ｕｒ３は変化していないため、変形後の平行四辺形の１辺も、変形前の平行四辺形の一辺と同様に、着地位置Ｕｒ２と着地位置Ｕｒ３を通る直線となっている。すなわち、図１３に示すように、変形後の平行四辺形の１辺は、変形前の平行四辺形の１辺と同じ長さ、及び同じ傾きとなっている。一方、変形前の他の１辺の長さは横幅ｄとなっているが、変形後の平行四辺形の他の１辺の長さは、横幅ｄ'に拡がっている。なお、変形前後の平行四辺形の他の１辺は直線Ｃに平行になっている。
【００９４】
そして、移動始点から移動終点までの各遊脚軌道に対して、上記の処理を行う。これにより、脚部１０の機械的な干渉を防ぐことができるとともに、より自然な動作で歩行できる人型ロボットの動作データを生成することができる。人の動作に近い軌道を生成することができ、被験者の自然な動作を反映した動作データを生成することができる。さらに、アフィン変換を用いることで、適切な遊脚軌道を簡便に生成することができる。さらに、しきい値ＴＨ２に対する比較結果に応じて、暫定遊脚軌道を補正するか否かを決定することで、簡便に適切な遊脚軌道を生成することができる。
【００９５】
（変形例）
上記のステップＢで示した遊脚軌道の決定方法では、中間時間Ｔでの干渉を考慮している。一般に、中間時間Ｔで、両脚が最も接近すると考えられるが、人動作データによっては中間時間Ｔ以外で最も両脚が接近する場合も生じ得る。ここで、本変形例では、より詳細に両脚の干渉を考慮している。具体的には、遊脚軌道の全域において、足平が干渉しないように遊脚軌道を設定している。以下の手法を、上記した（Ｂ−２）の処理の代わりに行うことで、より確実に自己干渉を防ぐことができる。
【００９６】
まず、右足平２６の形状を内包するような平面領域Ｗｒを設定する（図１４参照）。図１４に示す例では、右足平２６を含む平面領域Ｗｒとして、矩形状のバウンディングボックスを用いている。なお、右足平２６を含む平面領域Ｗｒについては、矩形に限られるものではない。例えば、平面領域Ｗｒは、図１５に示すように凸包であってもよい。このように、右足平２６を含む多角形等を平面領域Ｗｒとして設定する。図示を省略するが、左足平２６についても、同様に平面領域Ｗｌを設定する。
【００９７】
そして、１歩単位の遊脚軌道全域に渡り、両足平が干渉するか否かを判定する。すなわち、暫定遊脚軌道の全域に渡り、平面領域Ｗｒと平面領域Ｗｌに重複が無いかを確認する。ここで、左脚が支持脚であり、右脚が遊脚である１歩の暫定遊脚軌道について図１６を用いて説明する。図１６では、左側に、平面領域Ｗｒ，Ｗｌを用いて遊脚軌道を補正する前の暫定遊脚軌道の足平位置が示されており、右側に平面領域Ｗｒ，Ｗｌを用いて補正した後の遊脚軌道の足平位置が示されている。図１６は、右脚の着地位置Ｕｒ２から着地位置Ｕｒ３の間における軌道において、平面領域Ｗｒの軌跡を示す平面図である。ここでは、平面領域Ｗｒが通る軌跡を順番に平面領域Ｗｒ１〜Ｗｒ５としている。
【００９８】
図１６の左側に示すように、平面領域Ｗｒ３が平面領域Ｗｌと重複していたとする。この場合、平面領域Ｗｒ３が重複しないように、右脚の位置を補正する。具体的には、最接近時における足平間距離がしきい値の幅以上になるように、右足平２６の位置を横方向に移動する。これにより、平面領域Ｗｒ３に対応する右足平２６の位置が算出される。ここでのしきい値は、しきい値ＴＨ１と同じであってもよく、異なっていてもよい。
【００９９】
そして、移動前後の右足平２６の位置と、着地位置Ｕｒ２、Ｕｒ３とを用いて、上述した手法により、アフィン変換に必要なパラメータを求める。すなわち、干渉するタイミングでの第１の脚と第２の脚とが離れるように、アフィン変換を実施する。１歩の暫定遊脚軌道の全域において、遊脚位置が補正される。このようにすることで、自己干渉を回避することができる遊脚軌道を生成することができる。これにより、機械的な干渉を防ぐことができるとともに、より人の動作に近い軌道で歩行できる人型ロボットの動作データを生成することができる。
【０１００】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、アフィン変換ではなく、３次カーブ等の多項式を用いて、遊脚軌道を設定してもよい。また、上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、例えば、上記の処理を、ＣＰＵにコンピュータプログラムを実行させることにより実現することも可能である。
【０１０１】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ）を含む。
【０１０２】
また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【０１０３】
１  ロボット
２  頭部
３  体幹
４  腰部
５  右腕
６左腕、
１０  脚部
２０  右脚
２１  右股関節
２２  右上腿
２３  右膝関節
２４  右下腿
２５  右足首関節
２６  右足平
３０  左脚
３１  左股関節
３２  左上腿
３３  左膝関節
３４  左下腿
３５  左足首関節
３６  左足平
１３０  制御部
１４１  取得データ記憶部
１４２  基準着地位置抽出部
１４３  基準遊脚軌道抽出部
１４４  方向特定部
１４５  着地位置補正部
１４６  暫定遊脚軌道設定部
１４７  遊脚軌道補正部
【図１】
2013103320.tif 000004
【図２】
2013103320.tif 000005
【図３】
2013103320.tif 000006
【図４】
2013103320.tif 000007
【図５】
2013103320.tif 000008
【図６】
2013103320.tif 000009
【図７】
2013103320.tif 000010
【図８】
2013103320.tif 000011
【図９】
2013103320.tif 000012
【図１０】
2013103320.tif 000013
【図１１】
2013103320.tif 000014
【図１２】
2013103320.tif 000015
【図１３】
2013103320.tif 000016
【図１４】
2013103320.tif 000017
【図１５】
2013103320.tif 000018
【図１６】
2013103320.tif 000019
【図１７】
2013103320.tif 000020
【図１８】
2013103320.tif 000021