(57)【特許請求の範囲】
【請求項１】
複数の関節自由度と前記関節を駆動する駆動手段とセンサを有するロボット装置のモーション・データを編集するモーション編集装置において、
前記ロボット装置のモーション・データを作成するモーション・データ作成手段と、
前記モーション・データを前記ロボット装置へ出力する出力手段と、
前記出力されたモーション・データを前記ロボット装置が実行した際の前記ロボット装置のセンサ情報又は動作情報から構成される情報を参照データとして取得する参照データ取得手段と、
前記モーション・データ作成手段が作成した前記モーション・データと前記参照データに基いて、参照データ付きモーション・データを作成する参照データ付きモーション・データ作成手段と、
を具備することを特徴とするモーション編集装置。
【請求項２】
前記取得した参照データに基づいて、前記作成したモーション・データを評価するモーション・データ評価手段をさらに備える，
ことを特徴とする請求項１に記載のモーション編集装置。
【請求項３】
前記モーション・データ評価手段による評価結果に基づいて前記モーション・データを修正するモーション・データ修正手段をさらに備える、
ことを特徴とする請求項２に記載のモーション編集装置。
【請求項４】
前記参照データ付きモーション・データ作成手段は、前記モーション・データ評価手段において評価基準を満たすモーション・データに前記参照データを付加した参照データ付きモーション・データを作成する、
ことを特徴とする請求項３に記載のモーション編集装置。
【請求項５】
前記出力手段は、前記モーション・データを前記ロボット装置にストリーミング形式で出力する、
ことを特徴とする請求項１に記載のモーション編集装置。
【請求項６】
前記参照データ付きモーション・データ作成手段は、各関節についての角度指令値とモーション実行時の測定値の組み合わせで構成される関節角情報が参照データに含まれる参照データ付きモーション・データを作成する、
ことを特徴とする請求項１に記載のモーション編集装置。
【請求項７】
前記参照データ付きモーション・データ作成手段は、各センサについてのモーション作成時の目標値と、モーション実行時のセンサ出力と、該センサ出力をフィルタリングした後の測定値との組み合わせで構成される姿勢情報が参照データに含まれる参照データ付きモーション・データを作成する、
ことを特徴とする請求項１に記載のモーション編集装置。
【請求項８】
前記参照データ付きモーション・データ作成手段は、左右の各足底についての編集時の目標ＺＭＰ軌道とモーション実行時に安定化制御によって修正された後のＺＭＰ軌道の組み合わせで構成されるＺＭＰ軌道情報を参照データ付きモーション・データとして作成する、
ことを特徴とする請求項１に記載のモーション編集装置。
【請求項９】
前記参照データ付きモーション・データ作成手段は、前記モーション・データ作成時の床反力センサの目標値とモーション実行時の床反力センサの測定値との組み合わせで構成される足底接地情報又は接触情報を参照データ付きモーション・データとして作成する、
ことを特徴とする請求項１に記載のモーション編集装置。
【請求項１０】
前記モーション・データ評価手段は、前記ロボット装置でモーション・データを実行したときの追従性を時系列又は周波数領域に基づいてモーション・データを評価する、
ことを特徴とする請求項２に記載のモーション編集装置。
【請求項１１】
前記モーション・データ評価手段は、前記ロボット装置でモーション・データを実行したときのアクチュエータ・トルク値と回転数を時系列で取得し、取得したデータとＮＴ曲線により表されるアクチュエータの特性との比較に基づいてモーション・データを評価する、
ことを特徴とする請求項２に記載のモーション編集装置。
【請求項１２】
前記モーション・データ評価手段は、前記モーション・データ作成手段によるモーション・データ作成時に計画した姿勢センサ値やＺＭＰ軌道と、実ロボットで実行したときセンサ値やＺＭＰ軌道との差を算出し、前記ロボット装置の姿勢に基づいてモーション・データを評価する、
ことを特徴とする請求項２に記載のモーション編集装置。
【請求項１３】
前記モーション・データ評価手段は、前記モーション・データ作成手段によるモーション・データ作成時の前記ロボット装置の姿勢と、前記ロボット装置でモーション・データを実行したときの測定値との差分を計算し、前記ロボット装置の接地又は接触に基づいてモーション・データの評価を行なう、
ことを特徴とする請求項２に記載のモーション編集装置。
【請求項１４】
前記モーション・データ評価手段は、前回以前の評価を基に前記モーション・データ修正手段により修正されたモーション・データを実行したときの評価結果と、今回の評価を基に前記モーション・データ修正手段により修正されたモーション・データを実行したときの評価結果を比較することにより、モーション・データの修正による補正達成度の評価を行なう、
ことを特徴とする請求項３に記載のモーション編集装置。
【請求項１５】
前記モーション・データ修正手段は、アクチュエータ応答性評価結果に基づいて、アクチュエータへの角度指示値を修正し、又は、アクチュエータの制御パラメータを修正する、
ことを特徴とする請求項３に記載のモーション編集装置。
【請求項１６】
前記モーション・データ修正手段は、アクチュエータ・トルクの評価結果に基づいて、姿勢安定化処理によるモーション・データの修正を行なう、
ことを特徴とする請求項３に記載のモーション編集装置。
【請求項１７】
前記モーション・データ修正手段は、接地又は接触の評価結果に基づいて、姿勢安定化処理によるモーション・データの修正を行なう、
ことを特徴とする請求項３に記載のモーション編集装置。
【請求項１８】
前記モーション・データ修正手段は、外部接触による衝撃の評価結果に基づいて、外部接触を考慮した姿勢安定化処理によりモーション・データの修正を行なう、
ことを特徴とする請求項３に記載のモーション編集装置。
【請求項１９】
複数の関節自由度と前記関節を駆動する駆動手段を有するロボット装置のモーション・データを編集するモーション編集装置において、
前記モーション・データ中にモーションの開始時刻を設定するモーション開始時刻設定手段と、
前記開始時刻における前記ロボット装置の姿勢をモーションの終点とする過渡モーションを作成する開始過渡モーション作成手段と、
前記モーション・データ中にモーションの停止時刻を設定するモーション停止時刻設定手段と、
前記停止時刻における前記ロボット装置の姿勢をモーションの始点とする過渡モーションを作成する停止過渡モーション作成手段と、
を具備することを特徴とするモーション編集装置。
【請求項２０】
複数の関節自由度と前記関節を駆動する駆動手段を有するロボット装置において、
請求項１に記載のモーション編集装置で作成された参照データ付きモーション・データを取得する取得手段と、
取得した前記参照データ付きモーション・データを実行するモーション・データ実行手段と、
を具備することを特徴とするロボット装置。
【請求項２１】
前記モーション・データ実行手段によりモーション・データを実行した際の前記ロボット装置のセンサ情報又は動作情報を取得するセンサ情報取得手段と、
センサ情報又は動作情報から構成される情報を参照データとして請求項１に記載のモーション編集装置へ出力する出力手段と、
をさらに備えることを特徴とする請求項２０に記載のロボット装置。
【請求項２２】
センサと、複数の関節自由度と前記関節を駆動する駆動手段とを有するロボット装置において、
モーション・データをロボット装置が実行した際のセンサの実測データを参照データとして含んだ参照データ付きモーション・データを取得するモーション・データ取得手段と、
前記参照データ付きモーション・データを実行するモーション・データ実行手段と、
前記参照データ付きモーション・データを実行している際の前記センサの実測データを取得する実測データ取得手段と、
前記参照データと前記実測データを比較することにより、現在の外部環境を推定する外部環境推定手段と、
を具備することを特徴とするロボット装置。
【請求項２３】
センサと、複数の関節自由度と前記関節を駆動する駆動手段を有するロボット装置において、
モーション・データをロボット装置が実行した際のセンサの実測データを参照データとして含んだ参照データ付きモーション・データを取得するモーション・データ取得手段と、
前記参照データ付きモーション・データを実行するモーション・データ実行手段と、
前記参照データ付きモーション・データを実行している際の前記センサの実測データを取得する手段と、
前記参照データと前記実測データを比較することにより、前記モーション・データの実行が継続可能か否かを判別する判別手段と、
前記判別手段が前記モーション・データの実行継続が不可能と判別したことに応答して、前記モーション・データの実行を終了させる終了手段と、
を具備することを特徴とするロボット装置。
【請求項２４】
複数の関節自由度と前記関節を駆動する駆動手段を有するロボット装置のモーション・データを作成するモーション編集システムにおいて、
前記ロボット装置のモーション・データを作成するモーション・データ作成手段と、
前記モーション・データを出力する出力手段と、
出力された前記モーション・データを取得して実行するロボット装置と、
出力された前記モーションデータを前記ロボット装置が実行した際の前記ロボット装置のセンサ情報又は動作情報から構成される情報を参照データとして取得する参照データ取得手段と、
前記モーション・データ作成手段が作成した前記モーション・データと前記参照データに基いて、参照データ付きモーション・データを作成する参照データ付きモーション・データ作成手段と、
を具備することを特徴とするモーション編集システム。
【請求項２５】
ロボット装置のモーション・データと、
前記モーション・データを前記ロボット装置が実行した際に前記ロボット装置から得られるセンサ情報又は動作情報から構成される参照データと、
を参照データ付きモーション・データとして格納する、
ことを特徴とする記憶媒体。
【請求項２６】
複数の関節自由度と前記関節を駆動する駆動手段とセンサを有するロボット装置のモーション・データを編集するモーション編集方法において、
前記ロボット装置のモーション・データを作成するモーション・データ作成ステップと、
前記モーション・データを前記ロボット装置へ出力する出力ステップと、
前記出力されたモーション・データを前記ロボット装置が実行した際の前記ロボット装置のセンサ情報又は動作情報から構成される情報を参照データとして取得する参照データ取得ステップと、
前記モーション・データ作成ステップにより作成した前記モーション・データと前記参照データに基いて、参照データ付きモーション・データを作成する参照データ付きモーション・データ作成ステップと、
を具備することを特徴とするモーション編集方法。
【請求項２７】
前記取得した参照データに基づいて、前記作成したモーション・データを評価するモーション・データ評価ステップをさらに備える，
ことを特徴とする請求項２６に記載のモーション編集方法。
【請求項２８】
前記モーション・データ評価ステップによる評価結果に基づいて前記モーション・データを修正するモーション・データ修正ステップをさらに備える、
ことを特徴とする請求項２７に記載のモーション編集方法。
【請求項２９】
前記参照データ付きモーション・データ作成ステップでは、前記モーション・データ評価ステップにおいて評価基準を満たすモーション・データに前記参照データを付加した参照データ付きモーション・データを作成する、
ことを特徴とする請求項２８に記載のモーション編集方法。
【請求項３０】
前記出力ステップでは、前記モーション・データを前記ロボット装置にストリーミング形式で出力する、
ことを特徴とする請求項２６に記載のモーション編集方法。
【請求項３１】
前記参照データ付きモーション・データ作成ステップでは、各関節についての角度指令値とモーション実行時の測定値の組み合わせで構成される関節角情報が参照データに含まれる参照データ付きモーション・データを作成する、
ことを特徴とする請求項２６に記載のモーション編集方法。
【請求項３２】
前記参照データ付きモーション・データ作成ステップでは、各センサについてのモーション作成時の目標値と、モーション実行時のセンサ出力と、該センサ出力をフィルタリングした後の測定値との組み合わせで構成される姿勢情報が参照データに含まれる参照データ付きモーション・データを作成する、
ことを特徴とする請求項２６に記載のモーション編集方法。
【請求項３３】
前記参照データ付きモーション・データ作成ステップでは、左右の各足底についての編集時の目標ＺＭＰ軌道とモーション実行時に安定化制御によって修正された後のＺＭＰ軌道の組み合わせで構成されるＺＭＰ軌道情報を参照データ付きモーション・データとして作成する、
ことを特徴とする請求項２６に記載のモーション編集方法。
【請求項３４】
前記参照データ付きモーション・データ作成ステップでは、前記モーション・データ作成時の床反力センサの目標値とモーション実行時の床反力センサの測定値との組み合わせで構成される足底接地情報又は接触情報を参照データ付きモーション・データとして作成する、
ことを特徴とする請求項２６に記載のモーション編集方法。
【請求項３５】
前記モーション・データ評価ステップでは、前記ロボット装置でモーション・データを実行したときの追従性を時系列又は周波数領域に基づいてモーション・データを評価する、
ことを特徴とする請求項２７に記載のモーション編集方法。
【請求項３６】
前記モーション・データ評価ステップでは、前記ロボット装置でモーション・データを実行したときのアクチュエータ・トルク値と回転数を時系列で取得し、取得したデータとＮＴ曲線により表されるアクチュエータの特性との比較に基づいてモーション・データを評価する、
ことを特徴とする請求項２７に記載のモーション編集方法。
【請求項３７】
前記モーション・データ評価ステップでは、前記モーション・データ作成ステップにおけるモーション・データ作成時に計画した姿勢センサ値やＺＭＰ軌道と、実ロボットで実行したときセンサ値やＺＭＰ軌道との差を算出し、前記ロボット装置の姿勢に基づいてモーション・データを評価する、
ことを特徴とする請求項２７に記載のモーション編集方法。
【請求項３８】
前記モーション・データ評価ステップでは、前記モーション・データ作成ステップにおけるモーション・データ作成時の前記ロボット装置の姿勢と、前記ロボット装置でモーション・データを実行したときの測定値との差分を計算し、前記ロボット装置の接地又は接触に基づいてモーション・データの評価を行なう、
ことを特徴とする請求項２７に記載のモーション編集方法。
【請求項３９】
前記モーション・データ評価ステップでは、前回以前の評価を基に前記モーション・データ修正手段により修正されたモーション・データを実行したときの評価結果と、今回の評価を基に前記モーション・データ修正手段により修正されたモーション・データを実行したときの評価結果を比較することにより、モーション・データの修正による補正達成度の評価を行なう、
ことを特徴とする請求項２８に記載のモーション編集方法。
【請求項４０】
前記モーション・データ修正ステップでは、アクチュエータ応答性評価結果に基づいて、アクチュエータへの角度指示値を修正し、又は、アクチュエータの制御パラメータを修正する、
ことを特徴とする請求項２８に記載のモーション編集方法。
【請求項４１】
前記モーション・データ修正ステップでは、アクチュエータ・トルクの評価結果に基づいて、姿勢安定化処理によるモーション・データの修正を行なう、
ことを特徴とする請求項２８に記載のモーション編集方法。
【請求項４２】
前記モーション・データ修正ステップでは、接地又は接触の評価結果に基づいて、姿勢安定化処理によるモーション・データの修正を行なう、
ことを特徴とする請求項２８に記載のモーション編集方法。
【請求項４３】
前記モーション・データ修正ステップでは、外部接触による衝撃の評価結果に基づいて、外部接触を考慮した姿勢安定化処理によりモーション・データの修正を行なう、
ことを特徴とする請求項２８に記載のモーション編集方法。
【請求項４４】
複数の関節自由度と前記関節を駆動する駆動手段を有するロボット装置のモーション・データを編集するモーション編集方法において、
前記モーション・データ中にモーションの開始時刻を設定するモーション開始時刻設定ステップと、
前記開始時刻における前記ロボット装置の姿勢をモーションの終点とする過渡モーションを作成する開始過渡モーション作成ステップと、
前記モーション・データ中にモーションの停止時刻を設定するモーション停止時刻設定ステップと、
前記停止時刻における前記ロボット装置の姿勢をモーションの始点とする過渡モーションを作成する停止過渡モーション作成ステップと、
を具備することを特徴とするモーション編集方法。
【請求項４５】
複数の関節自由度と前記関節を駆動する駆動手段を有するロボット装置の制御方法において、
請求項１に記載のモーション編集装置で作成された参照データ付きモーション・データを取得する取得ステップと、
取得した前記参照データ付きモーション・データを実行するモーション・データ実行ステップと、
を具備することを特徴とするロボット装置の制御方法。
【請求項４６】
前記モーション・データ実行ステップにおいてモーション・データを実行した際の前記ロボット装置のセンサ情報又は動作情報を取得するセンサ情報取得ステップと、
センサ情報又は動作情報から構成される情報を参照データとして請求項１に記載のモーション編集装置へ出力する出力ステップと、
をさらに備えることを特徴とする請求項４５に記載のロボット装置の制御方法。
【請求項４７】
センサと、複数の関節自由度と前記関節を駆動する駆動手段とを有するロボット装置の制御方法において、
モーション・データをロボット装置が実行した際のセンサの実測データを参照データとして含んだ参照データ付きモーション・データを取得するモーション・データ取得ステップと、
前記参照データ付きモーション・データを実行するモーション・データ実行ステップと、
前記参照データ付きモーション・データを実行している際の前記センサの実測データを取得する実測データ取得ステップと、
前記参照データと前記実測データを比較することにより、現在の外部環境を推定する外部環境推定ステップと、
を具備することを特徴とするロボット装置の制御方法。
【請求項４８】
センサと、複数の関節自由度と前記関節を駆動する駆動手段を有するロボット装置の制御方法において、
モーション・データをロボット装置が実行した際のセンサの実測データを参照データとして含んだ参照データ付きモーション・データを取得するモーション・データ取得ステップと、
前記参照データ付きモーション・データを実行するモーション・データ実行ステップと、
前記参照データ付きモーション・データを実行している際の前記センサの実測データを取得するステップと、
前記参照データと前記実測データを比較することにより、前記モーション・データの実行が継続可能か否かを判別する判別ステップと、
前記判別ステップにおいて前記モーション・データの実行継続が不可能と判別したことに応答して、前記モーション・データの実行を終了させる終了ステップと、
を具備することを特徴とするロボット装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの所定の動作パターンを記述するモーションの作成・編集を支援するためのモーション編集装置及びモーション編集方法、並びにコンピュータ・プログラムに係り、特に、可動脚によりさまざまな作業を行なうロボット装置のためのモーション編集装置及びモーション編集方法、ロボット装置及びロボット装置の制御方法、並びにコンピュータ・プログラムに関する。
【０００２】
さらに詳しくは、本発明は、実機上での実行可能性を考慮しながら動作パターンの編集を支援するロボット装置のためのモーション編集装置及びモーション編集方法、ロボット装置及びロボット装置の制御方法、並びにコンピュータ・プログラムに係り、特に、実機上で動作を確認しながら編集されたモーションを修正するロボット装置のためのモーション編集装置及びモーション編集方法、ロボット装置及びロボット装置の制御方法、並びにコンピュータ・プログラムに関する。
【背景技術】
【０００３】
電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行う機械装置のことを「ロボット」という。ロボットの語源は、スラブ語の“ＲＯＢＯＴＡ（奴隷機械）”に由来すると言われている。わが国では、ロボットが普及し始めたのは１９６０年代末からであるが、その多くは、工場における生産作業の自動化・無人化などを目的としたマニピュレータや搬送ロボットなどの産業用ロボット（ｉｎｄｕｓｔｒｉａｌ ｒｏｂｏｔ）であった。
【０００４】
最近では、ヒトやサルなどの２足直立歩行を行なう動物の身体メカニズムや動作を模した脚式移動ロボットに関する研究開発が進展し、実用化への期待も高まってきている。２足直立による脚式移動は、クローラ式や、４足又は６足式などに比し不安定で姿勢制御や歩行制御が難しくなるが、不整地や障害物など作業経路上に凹凸のある歩行面や、階段や梯子の昇降など不連続な歩行面に対応することができるなど、柔軟な移動作業を実現できるという点で優れている。
【０００５】
また、ヒトの生体メカニズムや動作を再現した脚式移動ロボットのことを、特に、「人間形」、若しくは「人間型」のロボット（ｈｕｍａｎｏｉｄ ｒｏｂｏｔ）と呼ぶ。人間型ロボットは、例えば、生活支援、すなわち住環境その他の日常生活上のさまざまな場面における人的活動の支援などを行なうことができる。
【０００６】
人間の作業空間や居住空間のほとんどは、２足直立歩行という人間が持つ身体メカニズムや行動様式に合わせて形成されおり、車輪その他の駆動装置を移動手段とした現状の機械システムが移動するのには多くの障壁が存在する。したがって、機械システムすなわちロボットがさまざまな人的作業を代行し、さらに人間の住空間に深く浸透していくためには、ロボットの移動可能範囲が人間のそれとほぼ同じであることが好ましい。これが、脚式移動ロボットの実用化が大いに期待されている所以でもある。
【０００７】
昨今の脚式移動ロボットは高い情報処理能力を備えており、ロボットそのものを一種の計算機システムとして捉えることができる。言い換えれば、ロボット上で実現される動作パターン、あるいは、複数の基本的な動作パターンの組合せによって構成される高度且つ複雑な一連の動作シーケンスすなわちモーションは、コンピュータ・プログラミングと同様の作業によって構築される。
【０００８】
実機を動作するためのモーション・データが数多く普及されることが、ロボット本体が普及していくためには必須である。したがって、ロボット用のモーション編集を行なうための開発環境の構築が強く望まれている。
【０００９】
また、今後、産業界のみならず一般家庭や日常生活にもロボットが深く浸透していくことが予想される。とりわけ、エンターティンメント性を追求する製品に関しては、コンピュータやコンピュータ・プログラミングに加え，運動制御に関する高度な知識を持たくとも，振付師やデザイナーが，モーションコンテンツを作成できることが、強く望まれるとともに、一般消費者層がロボットを購入して使用するケースも多いと予想される。このような一般ユーザにとっても、ロボットの動作シーケンスを対話的な処理により比較的容易且つ効率的に作成・編集することを支援するためのツール、すなわちモーション編集システムを提供することが好ましい。
【００１０】
ロボットは、関節などの複数の制御点で構成されており、したがって、各制御点における位置や速度（関節角やその角速度）を入力していくことにより、機体動作を編集することができる。この点では、コンピュータ・グラフィックスにおけるキャラクタのアニメーション生成に類似する。しかしながら、仮想空間上での動作と実機動作とでは自ずと相違がある。脚式移動ロボットの場合には、単に関節角を駆動させただけでは所望の動作を実行することはできず、転倒することなく脚式作業を継続している必要がある。言い換えれば、実機上での動作を確認し、モーション実行中に機体が姿勢の安定度を維持していることが、所望動作を実現することの前提となる。
【００１１】
多くの場合、脚式移動ロボットの姿勢安定制御には、足底接地点と路面の形成する支持多角形の内側にモーメントがゼロとなる点を探索するというＺＭＰ安定度判別規範を用いる（例えば、非特許文献１を参照のこと）。２足の脚式移動ロボットの場合、この支持多角形が極めて小さいことから、姿勢安定制御はとりわけ困難とされている。
【００１２】
機体の各制御点における指示値を画面入力してロボットのモーションを組むというモーション編集システムは既に存在するが、しかしながら、編集されたモーションで実機動作させる場合の姿勢安定性をチェックしたり、姿勢が安定化するように所望のモーションを修正したりするようなシステムは未だない。せっかく組まれたモーションでは機体の姿勢安定性を維持できず、モーション自体を実行することができないのでは、実質的にモーションを編集したことにはならない。
【非特許文献１】ヴコブラトビッチ（Ｍｉｏｍｉｒ Ｖｕｋｏｂｒａｔｏｖｉｃ）著「脚式移動ロボット（ＬＥＧＧＥＤ ＬＯＣＯＭＯＴＩＯＮ ＲＯＢＯＴＳ）」（加藤一郎外著『歩行ロボットと人工の足』（日刊工業新聞社））
【発明の開示】
【発明が解決しようとする課題】
【００１３】
本発明の目的は、実機上での実行可能性を考慮しながら動作パターンの編集を支援することができる、優れたロボット装置のためのモーション編集装置及びモーション編集方法、ロボット装置及びロボット装置の制御方法、並びにコンピュータ・プログラムを提供することにある。
【００１４】
本発明のさらなる目的は、実機上で動作を確認しながら編集されたモーションを修正することができる、優れたロボット装置のためのモーション編集装置及びモーション編集方法、ロボット装置及びロボット装置の制御方法、並びにコンピュータ・プログラムを提供することにある。
【課題を解決するための手段】
【００１５】
本発明は、上記課題を参酌してなされたものであり、その第１の側面は、複数の関節自由度と外界環境を計測するセンサを備えたロボット装置のためのモーション編集装置又はモーション編集方法であって、
モーション・データを入力するデータ入力部又はステップと、
モーション・データを実機上で再生するデータ再生部又はステップと、
モーション・データを再生中の前記センサからのセンサ情報を取得するセンサ情報取得部又はステップと、
該取得したセンサ情報を基にモーションを評価するモーション評価部又はステップと、
該評価結果を基にモーション・データを修正するモーション修正部又はステップと、
を具備することを特徴とするロボット装置のためのモーション編集装置又はモーション編集方法である。
【００１６】
本発明の第１の側面に係るロボット装置のためのモーション編集装置又はモーション編集方法によれば、実ロボットのセンサ情報を通信により取得することにより、実ロボットの応答を考慮したモーションを作成することができる。また、基準環境下で作成されたモーション・データを、例えば住居環境などの異なる環境下で実行したときに、実ロボットが意図した通り動作しているかどうかを判断することができる。
【００１７】
ここで、本発明の第１の側面に係るロボット装置のためのモーション編集装置又はモーション編集方法は、前記モーション評価部又はステップにおいて評価基準を満たすモーション・データに前記センサ情報取得部で取得されたセンサ情報などの参照データを付加した参照データ付きモーション・データとして出力するモーション・データ出力部又はステップをさらに備えていてもよい。
【００１８】
ここで言う参照データとは、モーション・データを実際に再生中に得られるべきセンサ情報や動作情報などで構成される。具体的には、各関節についての角度指令値に対するモーション実行時の測定値や、モーション実行時の各センサの測定値とセンサ出力をフィルタリングした後の測定値の組み合わせ、左右の各足底についての編集時の目標ＺＭＰ軌道に対するモーション実行時に安定化制御によって修正された後のＺＭＰ軌道、床反力センサの編集時の目標値に対するモーション実行時の測定値などが参照データである。
【００１９】
モーション・データが記述するロボットの動作自体が同じであっても、外部環境又は作業環境に応じて各センサ出力は相違する。例えば、同じ歩行パターンであっても、坂道のとき、あるいは路面が動いてしまう砂利の上や毛足の長い絨毯の上とでは、センサの出力値は異なる。モーション・データが参照データを埋め込むことにより、特定の作業環境下（あるいはロボットの利用形態）に応じたモーション・データを記述することができる、という利点がある。
【００２０】
前記モーション・データ出力部又はステップは、各関節についての角度指令値とモーション実行時の測定値の組み合わせで構成される関節角情報、各センサについてのモーション編集時の目標値とモーション実行時の測定値とセンサ出力をフィルタリングした後の測定値の組み合わせで構成される姿勢情報、左右の各足底についての編集時の目標ＺＭＰ軌道とモーション実行時に安定化制御によって修正された後のＺＭＰ軌道の組み合わせで構成されるＺＭＰ軌道情報、床反力センサの編集時の目標値とモーション実行時の測定値の組み合わせで構成される足底接地情報及び／又は接触情報などを、参照データ付きモーション・データとして出力するようにしてもよい。
【００２１】
また、前記モーション評価部又はステップは、実ロボット上で実行したときの追従性を時系列又は周波数領域で評価するようにしてもよい。周波数領域で評価する場合、例えば機械系の固有振動数を取り除くなど、周波数固有の帯域を限定的に取り扱うことができる、という利点がある。
【００２２】
また、前記モーション評価部又はステップは、実ロボットで実行したときのアクチュエータ・トルク値と回転数を時系列で取得し、取得したデータをアクチュエータの特性を示すＮＴ曲線と比較し、アクチュエータの限界トルク又は限界回転数を超えている動作がないかを評価するようにしてもよい。
【００２３】
また、前記モーション評価部又はステップは、モーション編集時に計画した姿勢センサ値やＺＭＰ軌道と、実ロボットで実行したときセンサ値やＺＭＰ軌道との偏差を算出して、姿勢を評価するようにしてもよい。
【００２４】
また、前記モーション評価部又はステップは、モーション編集時の姿勢と実ロボット上でモーションを実行したときの測定値との偏差を計算して、接地及び／又は接触の評価を行なうようにしてもよい。
【００２５】
また、前記モーション評価部又はステップは、前回以前の評価によって修正されたモーションに対して、測定値の改善度を算出し、補正達成度の評価を行なうようにしてもよい。
【００２６】
また、前記モーション評価部又はステップは、衝撃によるアクチュエータ・トルクやＺＭＰ偏差・加速度の影響を算出し、外部接触による衝撃の評価を行なうようにしてもよい。
【００２７】
また、前記モーション修正部又はステップは、アクチュエータ応答性評価結果に基づいて、アクチュエータへの角度指示値を修正し、及び／又は、アクチュエータの制御パラメータを修正するようにしてもよい。
【００２８】
また、前記モーション修正部又はステップは、アクチュエータ・トルクの評価結果に基づいて、姿勢安定化処理によりモーション・データを修正するようにしてもよい。
【００２９】
また、前記モーション修正部又はステップは、接地及び／又は接触の評価結果に基づいて、姿勢安定化処理によりモーション・データを修正するようにしてもよい。
【００３０】
また、前記モーション修正部又はステップは、外部接触による衝撃の評価結果に基づいて、外部接触を考慮した姿勢安定化処理によりモーション・データを修正するようにしてもよい。
【００３１】
また、前記データ再生部又はステップは、モーション・データの任意の範囲のみを取り出して実機上で再生するようにしてもよい。
【００３２】
モーション・データを実機上で再生する際、モーション・データの任意の範囲のみを取り出して実機上で再生することにより、モーション編集作業の効率化を図ることができる。
【００３３】
この場合、前記データ再生部又はステップは、モーション・データ中の開始時刻を設定し、該開始時刻における動的姿勢を計算し、該開始時刻の動的姿勢を終点とする過渡モーションを生成し、該過渡モーションを用いて実機上でのモーションの再生を行なうとともに、モーション・データ中の停止時刻を設定し、該停止時刻における動的姿勢を計算し、該停止姿勢を始点とする過渡モーションを生成し、該過渡モーションを用いて実機の動作を停止させるようにすればよい。
【００３４】
モーションは、２以上のポーズの時系列的な組み合わせで構成されるが、加速度を積極的且つ継続的に用いたダイナミックなモーション（継続的動的運動）を実行する場合、そのモーションを途中から実行し、評価を行なうことは不可能である。そこで、本発明では、そのような継続的動的運動を任意の時刻からの再生・停止を可能とすることで、モーションの評価に要する時間を極めて短縮するようにした。
【００３５】
また、本発明の第２の側面は、複数の関節自由度を備えたロボット装置であって、
前記の各関節を含んだ装置動作を記述したモーション・データを入力するデータ入力部と、
モーション・データを実機上で再生する動作制御部と、
モーション・データを再生中の前記センサからのセンサ情報を取得するセンサ情報取得部を備え、
前記データ入力部は、モーション・データの入力時に、モーション・データを実行したときに前記センサ情報取得部から得られるべきセンサ情報又は前記動作制御部から得られるべき動作情報を含んだ参照データを併せて取得し、
前記動作制御部は、参照データに記述されているセンサ情報又は動作情報と、モーション・データを実際に再生中に前記センサ情報取得部から得られるセンサ情報又は前記動作制御部から得られる動作情報とを比較し、該比較結果に基づいてモーション・データの再生を継続可能か否かを判別する、
ことを特徴とするロボット装置である。
【００３６】
モーション・データが記述するロボットの動作自体が同じであっても、外部環境又は作業環境に応じて各センサ出力は相違する。例えば、同じ歩行パターンであっても、坂道のとき、あるいは路面が動いてしまう砂利の上や毛足の長い絨毯の上とでは、センサの出力値は異なる。モーション・データが参照データを埋め込むことにより、特定の作業環境下（あるいはロボットの利用形態）に応じたモーション・データを記述することができる、という利点がある。
【００３７】
本発明の第２の側面に係るロボット装置によれば、モーション・データに含まれている参照データに、標準的な環境以外の異なった路面環境など複数の外部環境におけるさまざまな参照データが含まれている場合、それぞれの参照データとモーション・データ再生時の実測データとの偏差を比較することで、現在の外部環境を推定することができる。また、外部環境を推定した後、外部環境に応じてモーション・データの再生をこのまま継続することが可能か否かを判断することができる。
従来は、モーション・データの実行により機体が不安定となった時点で転倒やその他の異常事態の適応処理を起動するより他なかったが、本発明によれば、不安定になる前にモーション再生を停止させることができるとともに、環境の推定により環境に対し適切なモーションを適応的に再生することができる。
【００３８】
また、本発明の第３の側面は、複数の関節自由度と外界環境を計測するセンサを備えたロボット装置のためのモーション編集処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、
モーション・データを入力するデータ入力ステップと、
モーション・データを実機上で再生するデータ再生ステップと、
モーション・データを再生中の前記センサからのセンサ情報を取得するセンサ情報取得ステップと、
該取得したセンサ情報を基にモーションを評価するモーション評価ステップと、
該評価結果を基にモーション・データを修正するモーション修正ステップと、
を具備することを特徴とするコンピュータ・プログラムである。
【００３９】
本発明の第３の側面に係るコンピュータ・プログラムは、コンピュータ・システム上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータ・プログラムを定義したものである。換言すれば、本発明の第３の側面に係るコンピュータ・プログラムをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の第１の側面に係る脚式移動ロボットのためのモーション編集装置又はモーション編集方法と同様の作用効果を得ることができる。
【発明の効果】
【００４０】
本発明によれば、実機上での実行可能性を考慮しながら動作パターンの編集を支援するロボット装置のための優れたロボット装置のためのモーション編集装置及びモーション編集方法、ロボット装置及びロボット装置の制御方法、並びにコンピュータ・プログラムを提供することができる。
【００４１】
また、本発明によれば、実機上で動作を確認しながら編集されたモーションを修正することができる、優れたロボット装置のためのモーション編集装置及びモーション編集方法、ロボット装置及びロボット装置の制御方法、並びにコンピュータ・プログラムを提供することができる。
【００４２】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【発明を実施するための最良の形態】
【００４３】
以下、図面を参照しながら本発明の実施形態について詳解する。
【００４４】
Ａ．脚式移動ロボットの機械的構成
図１及び図２には、本発明に係るモーション編集システムによるモーション編集の対象となる脚式移動ロボット１００の外観構成を示している。この脚式移動ロボット１００は、「人間形」又は「人間型」と呼ばれ、図示の通り、脚式移動ロボット１００は、胴体部と、頭部と、左右の上肢部と、脚式移動を行う左右２足の下肢部とで構成され、例えば胴体に内蔵されている制御部（図示しない）により機体の動作を統括的にコントロールするようになっている。
【００４５】
左右各々の下肢は、大腿部と、膝関節と、脛部と、足首と、足平とで構成され、股関節によって体幹部の略最下端にて連結されている。また、左右各々の上肢は、上腕と、肘関節と、前腕とで構成され、肩関節によって体幹部の上方の左右各側縁にて連結されている。また、頭部は、首関節によって体幹部の略最上端中央に連結されている。
【００４６】
制御部は、この脚式移動ロボット１００を構成する各関節アクチュエータの駆動制御や各センサ（後述）などからの外部入力を処理するコントローラ（主制御部）や、電源回路その他の周辺機器類を搭載した筐体である。制御部は、その他、遠隔操作用の通信インターフェースや通信装置を含んでいてもよい。
【００４７】
このように構成された脚式移動ロボット１００は、制御部による全身協調的な動作制御により、２足歩行を実現することができる。かかる２足歩行は、一般に、以下に示す各動作期間に分割される歩行周期を繰り返すことによって行なわれる。すなわち、
【００４８】
（１）右脚を持ち上げた、左脚による単脚支持期
（２）右足が接地した両脚支持期
（３）左脚を持ち上げた、右脚による単脚支持期
（４）左足が接地した両脚支持期
【００４９】
脚式移動ロボット１００における歩行制御は、あらかじめ下肢の目標軌道を計画し、上記の各期間においてさまざまな計画軌道に対して修正を行なうことによって実現される。
【００５０】
歩行動作の軌道修正を始めとして、機体の姿勢安定制御には、一般に、ＺＭＰに対する偏差を小さくするための位置、速度、及び加速度が連続となるように、５次多項式を用いた補間計算により行なう。ＺＭＰ（Ｚｅｒｏ Ｍｏｍｅｎｔ Ｐｏｉｎｔ）を歩行の安定度判別の規範として用いている。
【００５１】
ＺＭＰによる安定度判別規範は、歩行系から路面には重力と慣性力、並びにこれらのモーメントが路面から歩行系への反作用としての床反力並びに床反力モーメントとバランスするという「ダランベールの原理」に基づく。力学的推論の帰結として、足底接地点と路面の形成する支持多角形（すなわちＺＭＰ安定領域）の内側にピッチ軸及びロール軸モーメントがゼロとなる点、すなわちＺＭＰが存在する。
【００５２】
図３には、本発明の実施に供される脚式移動ロボット１００の自由度構成を模式的に示している。
【００５３】
同図に示すように、本ロボットは、機体に四肢が取り付けられ、肩関節ピッチ軸、肩関節ロール軸、上腕ヨー軸、肘関節ピッチ軸、前腕ヨー軸、手首ロール軸、手首ピッチ軸という７自由度からなる左右の腕部と、股関節ヨー軸、股関節ロール軸、股関節ピッチ軸、膝ピッチ軸、足首ピッチ軸、足首ロール軸という６自由度からなる左右の脚部で構成されている。
【００５４】
これらの各関節自由度は、実際にはアクチュエータ・モータにより実現される。本実施形態では、ギア直結型で且つサーボ制御系をワンチップ化してモータ・ユニットに内蔵したタイプの小型ＡＣサーボ・アクチュエータを搭載する。なお、この種のＡＣサーボ・アクチュエータに関しては、例えば本出願人に既に譲渡されている特開２０００−２９９９７０号公報（特願平１１−３３３８６号明細書）に開示されている。
【００５５】
機体には、加速度センサＡ１及びジャイロＧ１が搭載されている。また、左右の足底四隅には、足底面垂直方向の床反力を検出する１軸ロードセル（Ｆ１〜Ｆ８）と、床面までの距離を測定する赤外線測距センサ（Ｄ１〜Ｄ８）がそれぞれ４つ取り付けられている。また、左右の足底中央部には、それぞれ加速度センサ（Ａ２，Ａ３）及びジャイロ（Ｇ２，Ｇ３）が取り付けられている。
【００５６】
なお、図面の錯綜を防止するために、図３では省略しているが、頭部ユニットは、胴体に対して、首関節ヨー軸、第１及び第２の首関節ピッチ軸、首関節ロール軸の各軸回りの関節自由度を備えている。また、体幹部には、体幹ロール軸及び体格ピッチ軸の各軸回りの関節自由度を備えている。
【００５７】
Ｂ．脚式移動ロボットの制御システム構成
図４には、脚式移動ロボット１００の制御システム構成を模式的に示している。同図に示すように、脚式移動ロボット１００は、ヒトの四肢を表現した各機構ユニット３０、４０、５０Ｒ／Ｌ、６０Ｒ／Ｌと、各機構ユニット間の協調動作を実現するための適応制御を行なう制御ユニット８０とで構成される（但し、Ｒ及びＬの各々は、右及び左の各々を示す接尾辞である。以下同様）。
【００５８】
脚式移動ロボット１００全体の動作は、制御ユニット８０によって統括的に制御される。制御ユニット８０は、ＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）やメモリなどの主要回路コンポーネント（図示しない）で構成される主制御部８１と、電源回路やロボット１００の各構成要素とのデータやコマンドの授受を行なうインターフェース（いずれも図示しない）などを含んだ周辺回路８２とで構成される。
【００５９】
本発明を実現する上で、この制御ユニット８０の設置場所は特に限定されない。図４では体幹部ユニット４０に搭載されているが、頭部ユニット３０に搭載してもよい。あるいは、脚式移動ロボット１００外に制御ユニット８０を配備して、脚式移動ロボット１００の機体とは有線若しくは無線で交信するようにしてもよい。
【００６０】
図３に示した脚式移動ロボット１００内の各関節自由度は、それぞれに対応するアクチュエータ・モータＭによって実現される。すなわち、頭部ユニット３０には、首関節ヨー軸、第１及び第２の首関節ピッチ軸、首関節ロール軸の各々を表現する首関節ヨー軸アクチュエータＭ1、首関節ピッチ軸アクチュエータＭ2A及びＭ2B、首関節ロール軸アクチュエータＭ3が配設されている。
【００６１】
また、体幹部ユニット４０には、体幹ピッチ軸、体幹ロール軸の各々を表現する体幹ピッチ軸アクチュエータＭ11、体幹ロール軸アクチュエータＭ12が配備されている。
【００６２】
また、腕部ユニット５０Ｒ／Ｌは、上腕ユニット５１Ｒ／Ｌと、肘関節ユニット５２Ｒ／Ｌと、前腕ユニット５３Ｒ／Ｌに細分化されるが、肩関節ピッチ軸、肩関節ロール軸、上腕ヨー軸、肘関節ピッチ軸、肘関節ヨー軸、手首ロール軸、手首関節ピッチ軸の各々を表現する肩関節ピッチ軸アクチュエータＭ4、肩関節ロール軸アクチュエータＭ5、上腕ヨー軸アクチュエータＭ6、肘関節ピッチ軸アクチュエータＭ7、肘関節ヨー軸アクチュエータＭ8、手首関節ロール軸アクチュエータＭ9、手首関節ピッチ軸アクチュエータＭ10がそれぞれ配備されている。
【００６３】
また、脚部ユニット６０Ｒ／Ｌは、大腿部ユニット６１Ｒ／Ｌと、膝ユニット６２Ｒ／Ｌと、脛部ユニット６３Ｒ／Ｌに細分化されるが、股関節ヨー軸、股関節ピッチ軸、股関節ロール軸、膝関節ピッチ軸、足首関節ピッチ軸、足首関節ロール軸の各々を表現する股関節ヨー軸アクチュエータＭ13、股関節ピッチ軸アクチュエータＭ14、股関節ロール軸アクチュエータＭ15、膝関節ピッチ軸アクチュエータＭ16、足首関節ピッチ軸アクチュエータＭ17、足首関節ロール軸アクチュエータＭ18が配備されている。
【００６４】
各関節に用いられるアクチュエータＭ1、Ｍ2、Ｍ3…は、より好ましくは、ギア直結型で且つサーボ制御系をワンチップ化してモータ・ユニット内に搭載したタイプの小型ＡＣサーボ・アクチュエータ（前述）で構成することができる。
【００６５】
頭部ユニット３０、体幹部ユニット４０、腕部ユニット５０、各脚部ユニット６０などの機構ユニット毎に、アクチュエータ駆動制御用の副制御部３５、４５、５５、６５が配備されている。
【００６６】
機体の体幹部４０には、加速度センサＡ１と、ジャイロ・センサなどからなる姿勢センサＧ１が配設されている。加速度センサＡ１は、例えばＸ，Ｙ，Ｚ各軸方向に配置する。機体の腰部に加速度センサＡ１を配設することによって、質量操作量が大きな部位である腰部を制御目標点として設定して、その位置における姿勢や加速度を直接計測して、ＺＭＰに基づく姿勢安定化制御を行なうことができる。
【００６７】
また、各脚部６０Ｒ，Ｌには、床反力センサＦ１〜Ｆ４、Ｆ５〜Ｆ８と、加速度センサＡ２及びＡ３、姿勢センサＧ２及びＧ３がそれぞれ配設されている。床反力センサＦ１〜Ｆ８は、例えば足底に圧力センサを装着することにより構成され、床反力の有無により足底が着床したか否かを検出することができる。また、加速度センサＡ２及びＡ３は、少なくともＸ及びＹの各軸方向に配置する。左右の足部に加速度センサＡ２及びＡ３を配設することにより、ＺＭＰ位置に最も近い足部で直接的にＺＭＰ釣合い方程式を組み立てることができる。
【００６８】
質量操作量が大きな部位である腰部にのみ加速度センサを配置した場合、腰部のみが直接的な制御目標点になり、足部の状態は、この制御目標点の計算結果を基に相対的に算出しなければならず、足部と路面との間では以下の条件を満たすことが、前提となってしまう。
【００６９】
（１）路面はどんな力やトルクが作用しても動くことがない。
（２）路面での並進に対する摩擦係数は充分に大きく、滑りが生じない。
【００７０】
これに対し、本実施形態では、路面との接触部位である足部にＺＭＰと力を直接する反力センサ・システム（床反力センサなど）を配備するとともに、制御に用いるローカル座標とその座標を直接的に計測するための加速度センサを配設する。この結果、ＺＭＰ位置に最も近い足部で直接ＺＭＰ釣合い方程式を組み立てることができ、上述したような前提条件に依存しない、より厳密な姿勢安定制御を高速で実現することができる。この結果、力やトルクが作用すると路面が動いてしまう砂利上や毛足の長い絨毯上や、並進の摩擦係数が充分に確保できずに滑りが生じ易い住居のタイルなどであっても、機体の安定歩行（運動）を保証することができる。
【００７１】
主制御部８０は、各センサＡ１〜Ａ３、Ｇ１〜Ｇ３、Ｆ１〜Ｆ８の出力に応答して制御目標をダイナミックに補正することができる。より具体的には、副制御部３５、４５、５５、６５の各々に対して適応的な制御を行ない、脚式移動ロボット１００の上肢、体幹、及び下肢が協調して駆動する全身運動パターンを実現する。
【００７２】
ロボット１００の機体上での全身運動は、足部運動、ＺＭＰ軌道、体幹運動、上肢運動、腰部高さなどを設定するとともに、これらの設定内容に従った動作を指示するコマンドを各副制御部３５、４５、５５、６５に転送する。そして、各々の副制御部３５、４５…では、主制御部８１からの受信コマンドを解釈して、各アクチュエータＭ1、Ｍ2、Ｍ3…に対して駆動制御信号を出力する。ここで言う「ＺＭＰ」とは、歩行中の床反力によるモーメントがゼロとなる床面上の点のことであり、また、「ＺＭＰ軌道」とは、例えばロボット１００の歩行動作期間中にＺＭＰが動く軌跡を意味する（前述）。
【００７３】
Ｃ．モーション編集システム
図５には、本発明の一実施形態に係るモーション編集システムにおける処理フローを模式的に示している。
【００７４】
まず、ユーザは、モーション編集アプリケーションをインストールしたパーソナル・コンピュータなどのモーション編集システム上で、オフラインで脚式移動ロボット１００用のモーション・データを編集する（ステップＳ１）。
【００７５】
ここで、モーション・データは、例えばロボット１００の２以上のポーズ（姿勢）を時系列的に組み合わせていくことによって編集を行なうことができる。ロボット１００のポーズは、各関節角の変位量によって記述される。また、モーション・データは、各関節角の変位量やその速度、加速度などで構成される。例えば、以下のような要素データによってモーション・データを構成することができる。
【００７６】
ｔ１，ｔ２，ｔ３，ｔ４，ｔ５：時刻
ｐ：関節又はセンサの種類
ｄ：関節角度
ｘ，ｙ，ｚ，Ｙａｗ，Ｒｏｌｌ，Ｐｉｔｃｈ：関節における位置及び姿勢
ｇ：目標サーボゲイン
ｔｒ：補間の種類
ｆｘ，ｆｙ，ｆｚ：力
ａｘ，ａｙ，ａｚ：加速度
ｖｘ，ｖｙ，ｖｚ：速度
【００７７】
なお、モーション・データ自体に関しては、例えば本出願人に既に譲渡されている特願２００２−７３４２３号明細書（特開２００３−２６６３４７号公報）に記載の動作編集装置を用いることによって好適に編集することができる。
【００７８】
次いで、作成したモーション・データを脚式移動ロボット１００にインストールして、実機を使用して動作確認を行なう（ステップＳ２）。なお、モーション・データを実機にインストールするのではなく、ストリーミング形式でデータを実機に配信するようにしてもよい。
【００７９】
このとき、モーション・データ自体は、動作の連続すなわち各関節角の変位や速度などからなる時系列データであり、時として長大である。本実施形態では、モーション・データの任意の範囲のみを取り出して実機上で再生することにより、モーション編集作業の効率化を図っているが、この点については後に詳解する。
【００８０】
次いで、実機を使用してモーション・データの任意の範囲を再生したときに、機体上に設置された各センサからの出力すなわちセンサ情報を、モーション編集システムに転送する（ステップＳ３）。ここで言うセンサ情報には、各関節アクチュエータに配設されたエンコーダからの回転信号の他、体幹部ユニット４０（機体の略重心位置）に配設された加速度センサＡ１及びジャイロ・センサＧ１、左右の足底に配設された加速度センサＡ２〜Ａ３、ジャイロ・センサＧ２〜Ｇ３、並びに床反力センサＦ１〜Ｆ８からの出力が含まれる。
【００８１】
次いで、モーション編集システム上で、モーション・データを再生中に取得されたセンサ情報に基づいて、ロボットの動作を評価する（ステップＳ４）。センサ情報に基づくロボット１００の動作の評価方法については、後述に譲る。
【００８２】
ロボットの動作を評価した結果、所定の評価基準を満たさない場合には、モーションの修正処理を行なった後（ステップＳ５）、ステップＳ２に戻って、実機上での再生に基づく動作の評価を再度行なう。
【００８３】
また、ロボットの動作を評価した結果、所定の評価基準を満たす場合には、ステップＳ３によって得られたセンサ情報を参照データとして埋め込んだ参照データ付きモーション・データ・ファイルを作成し（ステップＳ６）、本処理ルーチン全体を終了する。
【００８４】
ここで、参照データとは、モーション・データを再生している最中に実際に得られるべきセンサ情報や動作情報などで構成される。具体的には、各関節についての角度指令値に対するモーション実行時の測定値や、モーション実行時の各センサの測定値とセンサ出力をフィルタリングした後の測定値の組み合わせ、左右の各足底についての編集時の目標ＺＭＰ軌道に対するモーション実行時に安定化制御によって修正された後のＺＭＰ軌道、床反力センサの編集時の目標値に対するモーション実行時の測定値などが参照データである。
【００８５】
モーション・データが記述するロボットの動作自体が同じであっても、外部環境又は作業環境に応じて各センサ出力は相違する。例えば、同じ歩行パターンであっても、坂道のとき、あるいは路面が動いてしまう砂利の上や毛足の長い絨毯の上とでは、センサの出力値は異なる。モーション・データが参照データを埋め込むことにより、特定の作業環境下（あるいはロボットの利用形態）に応じたモーション・データを記述することができる、という利点がある。
【００８６】
モーション・データは、例えば、ｍ１（ｔ１，ｐ，ｄ，ｇ，ｔｒ）、ｍ２（ｔ２，ｐ，ｘ，ｙ，ｘ，Ｙａｗ，Ｒｏｌｌ，Ｐｉｔｃｈ，ｔｒ）と表記される。これに対し、参照データは、例えば、Ｓ１（ｔ３，ｐ，ｆｘ，ｆｙ，ｆｚ，ｔｒ）、Ｓ２（ｔ４，ｐ，ａｘ，ａｙ，ａｚ，ｔｒ）、Ｓ３（ｔ５，ｐ，ｖｘ，ｖｙ，ｖｚ，ｔｒ）と表記される。また、参照データ付きモーション・データは、例えば、Ｍ［ｍ１（），ｍ２（），ｍ３（）］と表記される。但し、必要としないデータは適宜除くことができる。また、モーション・データの記載形式及びその構成要素は、システム、モーションの目的などに応じて適宜変更しても構わず、これらに限定されるものではない。
【００８７】
図５に示すような処理手順に従ってモーション・データを評価・修正することにより、実ロボットのセンサ情報を通信により取得し、実ロボットの応答を考慮したモーションを作成することができる。また、基準環境下で作成されたモーション・データを、例えば住居環境などの異なる環境下で実行したときに、実ロボットが意図した通り動作しているかどうかを判断することができる。
【００８８】
このように実ロボット上でモーション・データを評価することには、主に以下の点に意義がある。
【００８９】
（１）加速度の印象の相違：
仮想空間上でのコンピュータ・グラフィックス（ＣＧ）によるアニメーション再生と実空間上での実機での再生とでは、各部の速度や加速度に対する感度が大きく異なるため、その調整には実ロボットを用いて行なう必要がある。
【００９０】
（２）姿勢の印象の相違：
仮想空間上でのコンピュータ・グラフィックスによるアニメーション再生と実空間上での実ロボットでの再生とでは、実ロボットのサイズに加え、各部の位置・姿勢関係に対する感度が大きく異なるため、その調整は実ロボットを用いて行なう必要がある。例えば、安定化に用いる部位を腰部のみにした場合、コンピュータ・グラフィックでは気にならなかった腰の運動が、実ロボットでの再生確認では、腰の動きが大きく感じられ所望の動的姿勢が得られないことがある。そこで、安定化部位を増やすとともに優先順位を変えながら部分再生を行なうことで、所望の動的姿勢に修正することができる（例：腰に加え、安定化部位に、体幹と頭部を加えた。これにより実ロボットの腰の運動が小さくなり所望の動作が得られる）。
【００９１】
（３）実機上でのアクチュエータのトルク（電流）推定の困難さ：
実機のアクチュエータの正確な電流推定は、非常に厳密なモータ・モデルの構築とその各要素の高精度な同定を必要とし、さらにそのモデルを用いたシミュレーションには、ＰＣなどの一般的な計算機システムでは現実時間を大幅に超える時間を必要とする。このため、実機のモーション再生による実測を行ない、細部の修正を行なうことで、モーション作成時間の大幅な増加をきたさずに、よりロバストなモーションが作成できる。
【００９２】
（４）正確な接触・接地時刻の指定の困難さ：
ロボットの外界との接触点及びその接触タイミングの計画運動からの偏差は、ロボットに未知でしかもインパルス的な外力及び外力モーメントが加わることになり、たとえ実時間適応制御を適応したとしても、その運動の安定性に与える影響は非常に大きなものとなる。しかしながら、実ロボットの厳密な形状モデルの構築には、外部環境も含めて高精度な同定を必要とし、さらにそのモデルを用いた接触状態シミュレーションには、ＰＣなどの一般的な計算機システムでは現実時間を大幅に超える時間を必要とし、現実的ではない。そこで、一般的なＰＣ上で、現実時間内で処理可能な程度の簡略化した形状及び環境モデルを用いて生成したモーションと実ロボットでそのモーションを現実の標準環境群で実行した場合との接地点及びその着離状態の偏差を用いて、モーションの修正及び姿勢（運動）安定化処理を再度行なうことで、極めてロバストなモーションを生成することができる。
【００９３】
モーション・データが記述するロボットの動作自体が同じであっても、外部環境又は作業環境に応じて各センサ出力は相違する。例えば、同じ歩行パターンであっても、坂道のとき、あるいは路面が動いてしまう砂利の上や毛足の長い絨毯の上とでは、センサの出力値は異なる。本実施形態によれば、モーション・データが参照データを埋め込むことにより、特定の作業環境下（あるいはロボットの利用形態）に応じたモーション・データを記述することができる、という利点がある。
【００９４】
モーション・データのファイル・フォーマット例を図６〜図９に示しておく。本実施形態では、モーション・データは、関節角情報と、姿勢情報と、ＺＭＰ軌道情報と、足底接地情報を含んでいる。
【００９５】
図６に示すように、関節角情報は、モーション実行時における脚式移動ロボット１００の関節自由度を構成する各関節アクチュエータの変位量が時系列的（サンプリング時間毎に）に配列されてなる時系列データである。サンプリング時刻毎のレコードは、各関節についての角度指令値とモーション実行時の測定値の組み合わせで構成される。同図において、Ｒ_関節名は、編集時の該当アクチュエータに対する角度指令値であり、Ｍ_関節名は、ロボットがモーション実行時におけるアクチュエータの測定値である。
【００９６】
また、図７に示すように、姿勢情報は、モーション実行時における脚式移動ロボット１００の機体上の各部位に設置された姿勢センサ（ジャイロ・センサ）の情報が時系列的（サンプリング時間毎に）に配列されてなる時系列データである。サンプリング時刻毎のレコードは、各センサについてのモーション編集時の目標値とモーション実行時の測定値とセンサ出力をフィルタリングした後の測定値の組み合わせで構成される。同図において、Ｒ_センサ名は、該当センサにおける編集時のセンサの目標値であり、Ｍ_センサ名は、ロボットのモーション実行時の該当センサにおける測定値であり、Ｆ_センサ名は、ロボットのモーション実行時の該当センサ出力をフィルタリングした後の測定値である。
【００９７】
また、図８に示すように、ＺＭＰ軌道情報は、モーション実行時における脚式移動ロボット１００のＺＭＰ位置が時系列的（サンプリング時間毎に）に配列されてなる時系列データである。サンプリング時刻毎のレコードは、左右の各足底についての、編集時の目標ＺＭＰ軌道と、モーション実行時に安定化制御によって修正された後のＺＭＰ軌道の組み合わせで構成される。同図において、Ｒ_ＺＭＰ軌道は編集時の目標ＺＭＰ軌道であり、Ｍ_ＺＭＰ軌道はロボットのモーション実行時に安定化制御によって修正された後のＺＭＰ軌道である。
【００９８】
また、図９に示すように、足底接地情報は、モーション実行時における脚式移動ロボット１００の足底に設置された各床反力センサの測定値が時系列的（サンプリング時間毎に）に配列されてなる時系列データである。サンプリング時刻毎のレコードは、床反力センサの編集時の目標値とモーション実行時の測定値の組み合わせで構成される。同図において、Ｒ_接地情報は、編集時の目標値であり、Ｍ_接地情報はモーション実行時の測定値である。
【００９９】
図１０には、図５に示したフローチャートのステップＳ４に相当する、センサ情報に基づくロボット１００のモーション・データを評価するための処理手順をフローチャートの形式で示している。
【０１００】
ステップＳ１１では、アクチュエータの応答性を評価する。より具体的には、編集時のアクチュエータに対する角度指令値、角速度指令値、又は角加速度指令値に対して、実ロボット上で実行したときのそれぞれの測定値との偏差（すなわち追従性）を時系列で評価する（ステップＳ１２）。
【０１０１】
【数１】
0003555945.tif 000002
【０１０２】
追従性の評価は、時系列ではなく周波数領域で行なうようにしてもよい。周波数領域で評価する場合、例えば機械系の固有振動数を取り除くなど、周波数固有の帯域を限定的に取り扱うことができる、という利点がある。
【０１０３】
【数２】
0003555945.tif 000003
【０１０４】
なお、時間空間と周波数変換の変換は、下式に示すフーリエ変換並びに逆フーリエ変換を用いればよい。
【０１０５】
【数３】
0003555945.tif 000004
【０１０６】
アクチュエータは、必要トルクが大きくなるほど最高速度（加速度）が低下し、応答性が悪くなり、目標に追従できなくなる。また、可動角度制限ストッパーへの接触やリンク同士の干渉が発生すると、目標値に含まれない高周波成分の偏差が大きくなる。そこで、算出した目標値と実測値の偏差を以下の評価式（７）〜（１５）などを用いて評価する（ステップＳ１３）。
【０１０７】
【数４】
0003555945.tif 000005
【０１０８】
上記の評価式を満たしていなければ内容を保存し（ステップＳ１４）、評価が達成されれば当該評価を終了する。
【０１０９】
また、ステップＳ１５では、アクチュエータの運用状況の評価を行なう。より具体的には、実ロボットで実行したときのｉ番目のアクチュエータのトルク値Ｔi（ｔ）と回転数Ｎi（ｔ）を時系列で取得し、取得したデータをｉ番目のアクチュエータの特性を示すＮＴ曲線と比較する。ＮＴ曲線は、例えばアクチュエータの製品仕様から得ることができる（図２０を参照のこと）。ＮＴ曲線上では、ＮＴ曲線に基づいて、回転数がＮのときの常用最小トルクＴi_min（Ｎ）及び常用最大トルクＴi_max（Ｎ）を規定している。
【０１１０】
【数５】
0003555945.tif 000006
【０１１１】
そして、アクチュエータの限界トルクを超えている動作がないかを評価する（ステップＳ１６）。評価が未達成であれば内容を保存し（ステップＳ１７）、評価が達成されれば当該評価を終了する。シミュレーションによるトルク値の算出は非常に時間がかかり誤差も含まれるが、編集システムと接続された実ロボットから取得することで、正確な情報を即時に取得できる。
【０１１２】
また、ステップＳ１８では、姿勢の評価を行なう。まず、モーション編集時に計画した姿勢センサ値やＺＭＰ軌道と、実ロボットで実行したときセンサ値やＺＭＰ軌道との偏差を求める（ステップＳ１９）。より具体的には、モーション編集時に計画した基体制御対象座標原点（Ｏ’−Ｘ’Ｙ’Ｚ’）（例えば足底などの接地部位に設定されるローカル座標原点）の時間軸上における目標姿勢Ａdf（ｔ）又は周波数軸上における目標姿勢Ａdf（ω）
【０１１３】
【数６】
0003555945.tif 000007
【０１１４】
と、可動部制御対象座標原点（Ｏ”−Ｘ”Ｙ”Ｚ”）（例えば、腰部などの直接的な制御目標点）の時間軸上における目標姿勢Ａdh（ｔ）又は周波数軸上における目標姿勢Ａdh（ω）、
【０１１５】
【数７】
0003555945.tif 000008
【０１１６】
と、目標ＺＭＰ軌道としてのＺＭＰd（ｔ）＝［ＺＭＰdx，ＺＭＰdy，ＺＭＰdz，ｔ］又はＺＭＰd（ω）＝［ＺＭＰdx，ＺＭＰdy，ＺＭＰdz，ω］、目標ＺＭＰ軌道上での並進力及びヨー軸モーメントとしてのＦd（ｔ）＝［Ｆdx，Ｆdy，Ｆdz，ｔ］又はＦd（ω）＝［Ｆdx，Ｆdy，Ｆdz，ω］、実ロボットで実行したときの基体制御対象座標原点（Ｏ’−Ｘ’Ｙ’Ｚ’）における時間軸上の姿勢センサ測定値Ａmf(k)（ｔ）又は周波数軸上の姿勢センサ測定値Ａmf(k)（ω）
【０１１７】
【数８】
0003555945.tif 000009
【０１１８】
と、実ロボットで実行したときの可動部制御対象座標原点（Ｏ”−Ｘ”Ｙ”Ｚ”）における時間軸上の姿勢センサ測定値Ａmh(k)（ｔ）又は周波数軸上の姿勢センサ測定値Ａmh(k)（ω）
【０１１９】
【数９】
0003555945.tif 000010
【０１２０】
と、測定ＺＭＰ軌道としてのＺＭＰm(k)（ｔ）＝［ＺＭＰmx，ＺＭＰmy，ＺＭＰmz，ｔ］又はＺＭＰm(k)（ω）＝［ＺＭＰmx，ＺＭＰmy，ＺＭＰmz，ω］、測定ＺＭＰ軌道上での並進力及びヨー軸モーメントとしてのＦm(k)（ｔ）＝［Ｆmx，Ｆmy，Ｆmz，ｋ，ｔ］又はＦm(k)（ω）＝［Ｆmx，Ｆmy，Ｆmz，ｋ，ω］，Ｍm(k)（ｔ）＝［Ｍmx，Ｍmy，Ｍmz，ｋ，ｔ］,Ｍm(k)（ω）＝［Ｍmx，Ｍmy，Ｍmz，ｋ，ω］などの偏差（Ａef(k)（ｔ），Ａeh(k)（ｔ），ＺＭＰe(k)（ｔ），Ｆe(k)（ｔ），Ｍe(k)（ｔ），Ａef(k)（ω），Ａeh(k)（ω），ＺＭＰe(k)（ω），Ｆe(k)（ω），Ｍe(k)（ω））をそれぞれ算出する。なお、座標系の設定方法などに関しては、図１４〜図１６を参照されたい。
【０１２１】
【数１０】
0003555945.tif 000011
【０１２２】
そして、算出した目標値と実測値の偏差を以下の評価式（２７）〜（４１）などを用いて評価する（ステップＳ２０）。
【０１２３】
【数１１】
0003555945.tif 000012
【０１２４】
【数１２】
0003555945.tif 000013
【０１２５】
上記の評価式を満たしていなければ内容を保存し（ステップＳ２１）、評価が達成されれば当該評価を終了する。保管した偏差情報は、再編集時に姿勢安定化制御ブロックの入力値を修正するために利用する。
【０１２６】
また、ステップＳ２２では、接地位置の評価を行なう。本実施形態では、図３に示したように、左右それぞれの足底に配設されているロードセルＦ１〜Ｆ８並びに赤外線測距センサＤ１〜Ｄ８を備えている。そこで、モーション編集時の足底の各部位における接地・離地情報Ｃd(i)（ｔ）又はＣd(i)（ω）と、実ロボット上でモーションを実行したときのロードセルＦ１〜Ｆ８並びに赤外線測距センサＤ１〜Ｄ８より得られる接地・離地情報Ｃm(i,k)（ｔ）又はＣm(i,k)（ω）（図１７を参照のこと）との偏差Ｃe(i,k)（ｔ）＝Ｃd(i)（ｔ）−Ｃm(i,k)（ｔ）又はＣe(i,k)（ω）＝Ｃd(i)（ω）−Ｃm(i,k)（ω）を計算する（ステップＳ２３）。そして、算出した偏差を、以下の式（３７）などを用いて評価する（ステップＳ２４）。但し、ｎは歩数、Ｃe(i)は接地・離地情報の許容値である。
【０１２７】
【数１３】
0003555945.tif 000014
【０１２８】
接地位置の接地・離地情報の取得方法として、足底接地部位の各隅に設けられたロードセルＦ１〜Ｆ８並びに赤外線測距センサＤ１〜Ｄ８から出力されるアナログ情報Ｆimz(k)（ｔ）が所定の閾値γi未満の場合を離地Ｃm(i,k)＝１、閾値γi以上の場合を接地Ｃm(i,k)＝０と判断する。ここで、ｉは足底に取り付けられたセンサの識別番号である。あるいは、足底接地部位の各隅にマイクロ・スイッチを設け、これらのオン／オフ情報に基づいて接地・離地情報を得るようにしてもよい。
【０１２９】
接地位置の評価が未達成であれば内容を保存し（ステップＳ２５）、評価が達成されれば当該評価を終了する。ロボットの外界との接触点及びその接触タイミングの計画運動からの偏差は、ロボットに未知でしかもインパルス的な外力及び外力モーメントが加わることになり、たとえ実時間適応制御を適応したとしても、その運動の安定性に与える影響は非常に大きなものとなる。そこで、理想的な仮想空間で生成したモーションと実ロボットでそのモーションを実行した場合との接地点及びその着離状態の偏差を用いて、モーションの修正及び姿勢（運動）安定化処理を再度行なうことで、極めてロバストなモーションを生成することができる。
【０１３０】
また、ステップＳ２６では、補正達成度の評価を行なう。すなわち、前回以前の評価によって修正されたモーションに対して、測定値の改善度を算出する（ステップＳ２７）。例えば、アクチュエータの角度θの場合、ｋ回目の測定時における目標値と実測値との偏差をθe(k)（＝θd−θm(k)）とおくと、改善度Ｐは、ｋ回目と（ｋ−１）回目の偏差の変化すなわちＰ＝θe(k)−θe(k-1)で表すことができる。そして、各項目に関する優先度に準じて総合評価を再度行なう（ステップＳ２８）。評価が未達成であれば内容を保存し（ステップＳ２９）、評価が達成されれば当該評価を終了する。
【０１３１】
また、ステップＳ３０では、外部接触による衝撃の評価を行なう。より具体的には、衝撃によるアクチュエータ・トルクやＺＭＰ偏差・加速度の影響を算出し（ステップＳ３１）、影響の評価を行なう（ステップＳ３２）。例えば、衝撃によるｉ番目のアクチュエータ・トルクやＺＭＰ偏差・加速度の影響を、Ｔi（Ｎ）を周波数領域に変換したＴi（ω）、あるいは上式（１７）〜（２６）を用いて算出する。そして、上記の評価式（２７）〜（４１）を用いて影響の評価を行なう。
【０１３２】
外部接触による衝撃の評価が未達成であれば内容を保存し（ステップＳ３３）、評価が達成されれば当該評価を終了する。ロボットの外界を厳密にモデル化することは、特に人間の生活環境を考えると極めて困難である。そこで、シミュレータによる実行時間が現実時間と比較して、過大にならない簡単な衝突モデルを用いて、まず、理想的な仮想空間で外界との衝突を伴うモーションを生成し、次に、実ロボットでそのモーションを実行した場合との外部接触による力情報の偏差を用いて、モーションの修正および姿勢(運動)安定化処理を再度行なうことで、短時間で、極めてロバストなモーションを生成することができる。
【０１３３】
図１１には、図５に示したフローチャートのステップＳ５に相当する、モーションの修正処理の手順をフローチャートの形式で示している。
【０１３４】
モーション修正は、モーション編集システム上で、手動又は自動で修正を行なうことができる。
【０１３５】
手動修正の場合、指令値と測定値の差分値や前回以前の修正による改善内容をグラフなどによって視覚的に確認しながら修正する（ステップＳ４１）。
【０１３６】
一方、自動修正の場合、ステップＳ１１における応答性評価結果の内容を利用して、アクチュエータへの角度、又は角速度、角加速度の指示値
【０１３７】
【数１４】
0003555945.tif 000015
【０１３８】
を修正する（ステップＳ４２）。修正には、例えば下式（３８）〜（４３）で算出した角度、又は角速度、角加速度の指示値を用いる。但し、Λはフィルタであり、αはゲインである。
【０１３９】
【数１５】
0003555945.tif 000016
【０１４０】
また、応答性評価結果、特に周波数流域での評価結果を利用して、アクチュエータの制御パラメータ（ＰＩＤやモータの粘性など）を修正する（ステップＳ４３）。
【０１４１】
具体的には、実ロボットはモーション実行時に２足歩行や安定した双腕作業など外界や作業対象に対して閉リンク状態と開リンク状態の切替え動作を行なうが、開リンクの高周波数領域での応答性が不十分であれば、Ｄ（微分）ゲインを大きくするとともに、粘性の設定値を上げる。また、開リンクの高周波数領域の応答性が目標値以上の場合は、Ｐ（比例）、Ｄ（微分）の各ゲインを小さくするとともに、粘性の設定値を大きくする。一方、開リンクの低周波数領域での応答性が不十分であれば、Ｐ（比例）、Ｉ（積分）の各ゲインを上げる。また、開リンクの低周波数領域の応答性が目標値以上の場合は、Ｉのゲインを小さくする。
【０１４２】
また、閉リンクの低周波数領域での応答性が不十分であれば、Ｐ（比例）、Ｉ（積分）のゲインを大きくする。逆に、目標値以上の場合は、Ｉのゲインを小さくする。閉リンクの高周波数領域での応答性が目標値以上であれば、Ｄ（微分）のゲインを小さくするとともに、粘性の設定値を高くし、逆に応答性が不十分であればＤのゲインを上げるとともに、粘性の設定値を下げ、歩行路面に対する倣い性能の向上を図る。
【０１４３】
また、ステップＳ１５におけるアクチュエータの運用状況の評価結果の内容を利用して、姿勢安定化処理ブロックの安定化優先部位を変更する（ステップＳ４４）。具体的には、実ロボットは下肢や体幹、腰、右側上肢など部位毎にグループ化されているが、上記の評価式（１６）を満たさないアクチュエータにより駆動される部位グループｉについての目標モーメント補償量Ｍiをより小さく再設定し、安定化に用いる運動量を小さくし、必要トルクを軽減させる。
【０１４４】
また、ステップＳ１８における姿勢の安定評価結果を利用して、姿勢安定化処理ブロックの内容を変更する（ステップＳ４５）。具体的には、上記の評価式（２７）〜（４１）を満たさないアクチュエータにより駆動される部位グループｉについての目標モーメント補償量Ｍiをより小さく再設定し、安定化に用いる運動量を小さくし、必要トルクを軽減させる。
【０１４５】
また、ステップＳ２２における接地位置の評価結果を利用して、姿勢安定化処理ブロックの内容を変更する（ステップＳ４６）。具体的には、モーション編集時の接地・離地情報Ｃd(i)（ｔ）又はＣd(i)（ω）と、実ロボット上でモーションを実行したときに得られる接地・離地情報Ｃm(i,k)（ｔ）又はＣm(i,k)（ω）との偏差Ｃe(i,k)（ω）＝Ｃd(i)（ω）−Ｃm(i,k)（ω）を用いて、以下の評価式（４４）により算出されたＣi(i,k)（ｔ）又はＣi(i,k)（ω）を用いたり、実測値Ｃm(i,k)（ｔ）を直接用いて支持多角形を新たに再設定したりし、続いて目標ＺＭＰ軌道を再設定し、全身運動の再生成を行なう。
【０１４６】
【数１６】
0003555945.tif 000017
【０１４７】
また、ステップＳ３０における外部接触による衝撃の評価結果を利用して、外部接触を考慮した、姿勢安定化処理ブロックの制御内容を変更する（ステップＳ４７）。具体的には、下式（４５）を用いて算出した入力ＺＭＰ軌道ＺＭＰi(k)（ｔ）を用いて、全身運動の再生成を行なう
【０１４８】
【数１７】
0003555945.tif 000018
【０１４９】
ここで、Λは、例えばアクチュエータの周波数特性からある高周波成分以上から改善が望めない場合にはローパス・フィルタを、また、ある低周波成分以下からの能動的な改善を行なわない場合にはハイパス・フィルタを、また、それら両方の効果を期待する場合にはバンドパス・フィルタを、機体の固有振動数の励起を抑制したい場合にはバンド・エリミネーション・フィルタやノッチ・フィルタなどを用いる。上式（４３）、（４４）では、周波数に関してのフィルタであるが、同様に時間領域に関するフィルタを併用してもよい。
【０１５０】
本実施形態に係るモーション編集処理は、ロボットの実機上でモーション・データを再生して評価できること、モーション・データを再生している最中に取得されたセンサ情報に基づいてモーションを修正すること、並びに、参考センサ情報が埋め込まれた形式のモーション・データを処理結果として得られることに特徴がある。
【０１５１】
ここで、モーション・データを実機上で再生する際、モーション・データの任意の範囲のみを取り出して実機上で再生することにより、モーション編集作業の効率化を図っている。
【０１５２】
モーションは、２以上のポーズの時系列的な組み合わせで構成されるが、加速度を積極的且つ継続的に用いたダイナミックなモーション（継続的動的運動）を実行する場合、そのモーションを途中から実行し、評価を行なうことは不可能である。
【０１５３】
そこで、本実施形態では、そのような継続的動的運動を任意の時刻からの再生・停止を可能とすることで、モーションの評価に要する時間を極めて短縮するようにした。
【０１５４】
図１２には、ロボット１００のモーション・データで記述される継続的動的運動を任意の時刻からの再生・停止を処理するための手順をフローチャートの形式で示している。同図に示す例では、オンラインすなわち実時間でモーション・データの再生・停止を行なうことができる。
【０１５５】
まず、ユーザ入力などによりモーション・データ中の開始時刻を設定する（ステップＳ５１）。
【０１５６】
次いで、この開始時刻における動的姿勢の計算を行なう（ステップＳ５２）。そして、開始時刻の動的姿勢を終点とする過渡モーションを生成して（ステップＳ５３）、この過渡モーションを用いて実機上でのモーションの再生を行なう（ステップＳ５４）。
【０１５７】
次いで、ユーザ入力などによりモーション・データ中の停止時刻を設定する（ステップＳ５５）。そして、停止時刻における動的姿勢を計算し（ステップＳ５６）、停止姿勢を始点とする過渡モーションを生成して（ステップＳ５７）、この過渡モーションを用いて、実機の動作を停止させる（ステップＳ５８）。
【０１５８】
また、モーション・データの再生・停止をオンラインで行なう必要は必ずしもない。図１８には、ロボット１００のモーション・データで記述される継続的動的運動を任意の時刻からの再生・停止をオフラインで処理するための手順について示している。
【０１５９】
まず、ユーザ入力などによりモーション・データ中の開始時刻を設定する（ステップＳ７１）。次いで、ユーザ入力などによりモーション・データ中の停止時刻を設定する（ステップＳ７２）。
【０１６０】
次いで、この開始時刻における動的姿勢の計算を行なう（ステップＳ７３）。そして、停止時刻における動的姿勢を計算する（ステップＳ７４）。そして、開始時刻の動的姿勢を終点とする過渡モーションを生成する（ステップＳ７５）。
【０１６１】
次いで、停止姿勢を始点とする過渡モーションを生成する（ステップＳ７６）。そして、この過渡モーションを用いて、実機上でのモーションの再生を行なうとともに（ステップＳ７７）、実機の動作を停止させる（ステップＳ７８）。
【０１６２】
図５にはモーション編集処理の手順を概略的に示したが、図１３にはこの処理手順をより詳細に示している。
【０１６３】
まず、モーション作成編集システム上で、モーション・データを作成する（ステップＳ６１）。例えば、ユーザは、モーション編集アプリケーションをインストールしたパーソナル・コンピュータなどのモーション編集システム上で、オフラインで脚式移動ロボット１００用のモーション・データを編集する。モーション・データは、例えばロボット１００の２以上のポーズ（姿勢）を時系列的に組み合わせていくことによって編集を行なうことができる。ロボット１００のポーズは、各関節角の変位量によって記述される。また、モーション・データは、各関節角の変位量やその速度、加速度などで構成される。
【０１６４】
次いで、作成したモーション・データを脚式移動ロボット１００にインストールして、実機を使用して動作確認を行なう。但し、モーション・データを実機にインストールするのではなく、ストリーミング形式でデータを実機に配信するようにしてもよい。
【０１６５】
この動作確認のため、仮想空間上での安定化部位の選定とその優先度の指定によるモーションの安定化を行なう（ステップＳ６３）。次いで、安定化されたモーションをモーション作成編集システム上で動作現象確認する（ステップＳ６４）。そして、仮想空間上で所望のモーションであれば、ステップＳ６５へ進んで、実機を使用した動作確認へと向かう。
【０１６６】
また、仮想空間上で所望のモーションでないことが確認された場合には、Ｓ６２へ向かい、手動又は自動によるモーション編集を行なう。モーション編集では、図１１のフローチャートを参照しながら説明したように、該当するアクチュエータへの角度指示値や制御パラメータの修正、トルク評価に基づく安定化優先部位の変更、姿勢評価又は接地位置評価に基づく姿勢安定化処理ブロックの内容の変更、応答性評価に基づくアクチュエータの制御パラメータの変更などを行なう（ステップＳ４２〜Ｓ４７）。
【０１６７】
ステップＳ６５では、編集用モーション・データを実ロボットに取り込む。そして、ステップＳ６６では、実ロボットを使用し、動作現象を確認する。
【０１６８】
このとき、モーション・データ自体は、動作の連続すなわち各関節角の変位や速度などからなる時系列データであり、時として長大である。本実施形態では、モーション・データの任意の範囲のみを取り出して（図１２、図１８を参照のこと）、実機上で再生することにより、モーション編集作業の効率化を図ることができる。
【０１６９】
実ロボットを使用して動作現象を確認した結果、所望のモーションでないことが判った場合には、安定化部位の再選定とその優先度の再指定やモーションの再編集のためにステップＳ６２へ戻る。ステップＳ６２では、図１１のフローチャートを参照しながら説明したように、該当するアクチュエータへの角度指示値や制御パラメータの修正、トルク評価に基づく安定化優先部位の変更、姿勢評価又は接地位置評価に基づく姿勢安定化処理ブロックの内容の変更、応答性評価に基づくアクチュエータの制御パラメータの変更などを行なう（ステップＳ４２〜Ｓ４７）。
【０１７０】
一方、実ロボットを使用して動作現象を確認した結果、所望のモーションであればステップＳ６７へ進み、実ロボットのセンサ情報をモーション作成編集装置に転送する。ここで言うセンサ情報には、各関節アクチュエータに配設されたエンコーダからの回転信号の他、体幹部ユニット４０（機体の略重心位置）に配設された加速度センサＡ１及びジャイロ・センサＧ１、左右の足底に配設された加速度センサＡ２〜Ａ３、ジャイロ・センサＧ２〜Ｇ３、並びに床反力センサＦ１〜Ｆ８からの出力が含まれる。
【０１７１】
次いで、取得したセンサ情報を基に、モーション作成編集装置上でロボットの動作を評価する（ステップＳ６８）。ロボットの動作の評価は、上述の図１０に示した処理手順に従って、アクチュエータの応答性の評価、アクチュエータ・トルクの評価、姿勢の評価、接地位置の評価、補正達成度の評価、外部接触による衝撃の評価を行なう。
【０１７２】
ここで、ロボットの動作を評価した結果、所定の評価基準を満たさない場合には、ステップＳ７０へ進み、評価内容を保存する。そして、モーションの修正処理を行なった後（ステップＳ５６２）、実機上での再生に基づく動作の評価を再度行なう。
【０１７３】
また、ロボットの動作を評価した結果、所定の評価基準を満たす場合には、評価基準を満たしていればステップＳ６９へ進み、参照データが埋め込まれた最終モーション・データ・ファイルを作成する（図６〜図９を参照のこと）。図１３に示したモーション作業を複数回繰り返すことによって、整地や不整地などさまざまな外部環境における参照データを取得し、１つのモーション・データ・ファイルに埋め込んで保存することができる。
【０１７４】
ここで、参照データとは、モーション・データを実際に再生している最中に得られるべきセンサ情報や動作情報などで構成される。具体的には、各関節についての角度指令値に対するモーション実行時の測定値や、モーション実行時の各センサの測定値とセンサ出力をフィルタリングした後の測定値の組み合わせ、左右の各足底についての編集時の目標ＺＭＰ軌道に対するモーション実行時に安定化制御によって修正された後のＺＭＰ軌道、床反力センサの編集時の目標値に対するモーション実行時の測定値などが参照データである。
【０１７５】
モーション・データが記述するロボットの動作自体が同じであっても、外部環境又は作業環境に応じて各センサ出力は相違する。例えば、同じ歩行パターンであっても、坂道のとき、あるいは路面が動いてしまう砂利の上や毛足の長い絨毯の上とでは、センサの出力値は異なる。本実施形態では、モーション・データには、さまざまな外部環境下でモーションを実行したときに採取された参照データが付加されているので、モーション実行時に外部環境に応じた高度で適応的な制御が可能となる。
【０１７６】
モーション・データに含まれている参照データに、標準的な環境以外の異なった路面環境など複数の外部環境におけるさまざまな参照データが含まれている場合、それぞれの参照データとモーション・データ再生時の実測データとの偏差を比較することで、現在の外部環境を推定することができる。また、外部環境を推定した後、外部環境に応じてモーション・データの再生をこのまま継続することが可能か否かを判断することができる。
【０１７７】
図１９には、参照データを利用したモーション・データの再生処理手順をフローチャートの形式で示している。
【０１７８】
モーション再生中には、各関節についての角度指令値に対するモーション実行時の測定値や、モーション実行時の各センサの測定値とセンサ出力をフィルタリングした後の測定値の組み合わせ、左右の各足底についての編集時の目標ＺＭＰ軌道に対するモーション実行時に安定化制御によって修正された後のＺＭＰ軌道、床反力センサの編集時の目標値に対するモーション実行時の測定値などが参照データとして取得される（ステップＳ８１）。
【０１７９】
ここで、参照データと実測データを比較し、モーション再生を継続することが可能かどうかを判別する（ステップＳ８２）。
【０１８０】
モーション再生の継続が不可能であると判定された場合には、所定の異常終了処理を行なって（ステップＳ８３）、本モーション再生処理全体を異常終了する。
【０１８１】
他方、モーション再生の継続が可能であると判定された場合には、参照データと実測データの照合により実際の外部環境の推定を行なう（ステップＳ８４）。
【０１８２】
参照データと実測データとの比較は、評価式を用いて得られる偏差に基づいて行なう。ここで、複数の外部環境についての参照データが用意されているとし、ｉ番目の環境についての参照データをＡr（ｉ）、実測データをＡm（ｉ）とすると、偏差は下式（４６）のように表される。
【０１８３】
【数１８】
0003555945.tif 000019
【０１８４】
そして、制御周期における偏差の平均を下式（４７）に基づいて求め、これが最小となる参照データを持つ環境ｉを現在の外部環境であると推定することができる。
【０１８５】
【数１９】
0003555945.tif 000020
【０１８６】
そして、モーション・データの再生が終了すると（ステップＳ８５）、本処理ルーチン全体を正常終了する。
【０１８７】
以上の構成により、本発明では、
（１）エディタ装置でロボットのモーションデータを作成し、作成したモーションデータをロボットの実機へ転送する。
（２）ロボットは受け取ったモーションデータを実行するとともに、各センサからモーション実行時の外部環境に応じた内部状態のデータを取得する。
（３）さらに、ロボットは取得した内部状態データを参照データとしてエディタ装置へ送信する。
（４）エディタ装置はロボットから取得した参照データを、作成したモーションデータとに基いて、参照データ付きモーションデータとして保存する。その際、最初に送信したモーションデータは、実行結果に基いて、修正を行っても行わなくてもよい。
（５）また、逆に、ロボットがあるモーションデータを実行した際に、参照データ付きモーションデータとロボットの内部状態データとを比較する。
【０１８８】
これらのことにより、モーション実行中の例えば路面といった外部環境を推定し、モーション再生の成否を知ることができる。なお、ここで言う内部データとは、ロボットの外部環境等に応じて変化するロボットの内部状態量（例えば、関節角度、各センサ値など）を表す値である。
【０１８９】
［追補］
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
【０１９０】
本発明の要旨は、必ずしも「ロボット」と称される製品には限定されない。すなわち、電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行なう機械装置あるいはその他一般的な移動体装置であるならば、例えば玩具などのような他の産業分野に属する製品であっても、同様に本発明を適用することができる。
【０１９１】
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【図面の簡単な説明】
【０１９２】
【図１】図１は、本発明に係るモーション編集システムによるモーション編集の対象となる脚式移動ロボット１００の外観構成を示した図である。
【図２】図２は、本発明に係るモーション編集システムによるモーション編集の対象となる脚式移動ロボット１００の外観構成を示した図である。
【図３】図３は、本発明の実施に供される脚式移動ロボット１００の自由度構成を模式的に示した図である。
【図４】図４は、脚式移動ロボット１００の制御システム構成を模式的に示した図である。
【図５】図５は、本発明の一実施形態に係るモーション編集システムにおける処理フローを模式的に示した図である。
【図６】図６は、モーション・データに含まれる関節角情報のデータ構造を示した図である。
【図７】図７は、モーション・データに含まれる姿勢情報のデータ構造を示した図である。
【図８】図８は、モーション・データに含まれるＺＭＰ軌道情報のデータ構造を示した図である。
【図９】図９は、モーション・データに含まれる足底接地情報のデータ構造を示した図である。
【図１０】図１０は、センサ情報に基づくロボット１００のモーション・データを評価するための処理手順を示したフローチャートである。
【図１１】図１１は、モーションの修正処理の手順を示したフローチャートである。
【図１２】図１２は、ロボット１００のモーション・データで記述される継続的動的運動を任意の時刻からの再生・停止を処理するための手順を示したフローチャートである。
【図１３】図１３は、モーション編集処理についての図５に示したフローチャートをさらに詳細に示した図である。
【図１４】図１４は、実ロボットの姿勢評価を説明するための図である。
【図１５】図１５は、実ロボットの姿勢評価を説明するための図である。
【図１６】図１６は、実ロボットの姿勢評価を説明するための図である。
【図１７】図１７は、実ロボット上でモーションを実行したときのロードセルＦ１〜Ｆ８並びに赤外線測距センサＤ１〜Ｄ８より得られる接地・離地情報Ｃm(i,k)（ｔ）又はＣm(i,k)（ω）を示した図である。
【図１８】図１８は、ロボット１００のモーション・データで記述される継続的動的運動を任意の時刻からの再生・停止を処理するための手順についての他の例を示したフローチャートである。
【図１９】図１９は、参照データを利用したモーション・データの再生処理手順を示したフローチャートである。
【図２０】図２０は、ＮＴ曲線の例を示した図である。
【符号の説明】
【０１９３】
３０…頭部ユニット，４０…体幹部ユニット
５０…腕部ユニット，５１…上腕ユニット
５２…肘関節ユニット，５３…前腕ユニット
６０…脚部ユニット，６１…大腿部ユニット
６２…膝関節ユニット，６３…脛部ユニット
８０…制御ユニット，８１…主制御部
８２…周辺回路
１００…脚式移動ロボット
【図１】
0003555945.tif 000021
【図２】
0003555945.tif 000022
【図３】
0003555945.tif 000023
【図４】
0003555945.tif 000024
【図５】
0003555945.tif 000025
【図６】
0003555945.tif 000026
【図７】
0003555945.tif 000027
【図８】
0003555945.tif 000028
【図９】
0003555945.tif 000029
【図１０】
0003555945.tif 000030
【図１１】
0003555945.tif 000031
【図１２】
0003555945.tif 000032
【図１３】
0003555945.tif 000033
【図１４】
0003555945.tif 000034
【図１５】
0003555945.tif 000035
【図１６】
0003555945.tif 000036
【図１７】
0003555945.tif 000037
【図１８】
0003555945.tif 000038
【図１９】
0003555945.tif 000039
【図２０】
0003555945.tif 000040