(57)【特許請求の範囲】
【請求項１】
少なくとも複数の可動部を備えたロボット装置の動作制御装置であって、
操作系から入力された機体操作用コマンドを受信するコマンド受信手段と、
該機体操作用コマンドが指定する機体動作を実行する動作実行手段と、
機体の内部状態を検出してセンサ情報を出力するセンサ手段と、
該センサ情報に基づいて機体に発生するエラー又はエラーの解除を検出するエラー検出手段と、
前記エラー検出手段によるエラー検出結果に応じたエラー解除動作を実行するエラー解除手段と、
エラー検出に応答して前記動作実行手段による機体操作用コマンドの処理を停止し、エラー解除に応答して機体操作用コマンドの処理を再開させるゲート手段と、
を具備することを特徴とするロボット装置の動作制御装置。
【請求項２】
前記動作実行手段は、
リソース単位で機体操作用コマンドの処理を分配し、前記機体操作用コマンドに整合する姿勢へ遷移させるロボットの各リソース管理及び姿勢遷移制御モジュールと、
リソース毎に設けられ、分配された機体操作用コマンドの処理に従って該当するリソースに関する動作を計画し、計画された動作内容に応じたロコモーション生成又はモーション再生の要求を行なうエージェントと、
前記エージェントからの要求に応じてリアルタイムに歩容を生成し又は要求されたモーションに応じて、各関節角度の指令値を変更するロコモーション生成又はモーション再生手段と、
を備えることを特徴とする請求項１に記載のロボット装置の動作制御装置。
【請求項３】
エラー検出に応答してロボットが未知姿勢に陥ったときに、未知姿勢から最も近い既知姿勢へと復帰し、所定の姿勢遷移モデルへ復帰させる復帰マネージャをさらに備える、
ことを特徴とする請求項１に記載のロボット装置の動作制御装置。
【請求項４】
少なくとも可動脚と体幹、腰を備えたロボット装置の動作制御装置であって、
操作系から入力された機体操作用コマンドを受信するコマンド受信手段と、
該機体操作用コマンドが指定する機体動作を実行する動作実行手段と、
機体の内部状態を検出してセンサ情報を出力するセンサ手段と、
該センサ情報に基づいて機体に発生するエラー又はエラーの解除を検出するエラー検出手段と、
前記エラー検出手段によるエラー検出結果に応じたエラー解除動作を実行するエラー解除手段とを備え、
前記動作実行手段は、
リソース単位で機体操作用コマンドの処理を分配し、前記機体操作用コマンドに整合する姿勢へ遷移させるロボットの各リソース管理及び姿勢遷移制御モジュールと、
リソース毎に設けられ、分配された機体操作用コマンドの処理に従って該当するリソースに関する動作を計画し、計画された動作内容に応じたロコモーション生成又はモーション再生の要求を行なうエージェントと、
前記エージェントからの要求に応じてリアルタイムに歩容を生成し又は要求されたモーションに応じて、各関節角度の指令値を変更するロコモーション生成又はモーション再生手段とを備える、
ことを特徴とするロボット装置の動作制御装置。
【請求項５】
少なくとも複数の可動部を備えたロボット装置の動作制御装置であって、
操作系から入力された機体操作用コマンドを受信するコマンド受信手段と、
該機体操作用コマンドが指定する機体動作を実行する動作実行手段と、
機体の内部状態を検出してセンサ情報を出力するセンサ手段と、
該センサ情報に基づいて機体に発生するエラー又はエラーの解除を検出するエラー検出手段と、
前記エラー検出手段によるエラー検出結果に応じたエラー解除動作を実行するエラー解除手段と、
エラー検出に応答してロボットが未知姿勢に陥ったときに、未知姿勢から最も近い既知姿勢へと復帰し、所定の姿勢遷移モデルへ復帰させる復帰マネージャと、
を具備することを特徴とするロボット装置の動作制御装置。
【請求項６】
前記エラー検出手段は、トルク・リミッタ、過電流検出、挟み込み、転倒、安定判別の優先順位でエラーを検出する、
ことを特徴とする請求項１乃至５のいずれかに記載のロボット装置の動作制御装置。
【請求項７】
前記エラー解除手段は、関節アクチュエータにおけるトルク・リミッタのエラーが検出されたことに応答して、トルク・リミッタの働いている箇所となる各関節アクチュエータのゲインを落とし、各関節角度指令値を計測値に変更し、トルクを下げる、
ことを特徴とする請求項１乃至５のいずれかに記載のロボット装置の動作制御装置。
【請求項８】
前記エラー解除手段は、関節アクチュエータにおける過電流が検出されたことに応答して、過電流発生個所となる関節アクチュエータのゲインを落とし、各関節角度指令値を計測値に変更し、トルクを下げる、
ことを特徴とする請求項１乃至５のいずれかに記載のロボット装置の動作制御装置。
【請求項９】
前記エラー解除手段は、関節における挟み込みが検出されたことに応答して、挟み込み個所となる関節アクチュエータのゲインを落とす、
ことを特徴とする請求項１乃至５のいずれかに記載のロボット装置の動作制御装置。
【請求項１０】
前記エラー解除手段は、機体の転倒が検出されたことに応答して、各関節アクチュエータのゲインを落とし、倒れる向きに応じた受身姿勢をとる、
ことを特徴とする請求項１乃至５のいずれかに記載のロボット装置の動作制御装置。
【請求項１１】
前記エラー解除手段は、機体の安定を失っていると検出されたことに応答して、倒れないように脚を踏ん張り重心を上げる動作を行なうよう前記動作実行手段に指示する、
ことを特徴とする請求項１乃至５のいずれかに記載のロボット装置の動作制御装置。
【請求項１２】
少なくとも複数の可動部を備えたロボット装置の動作制御方法であって、
操作系から入力された機体操作用コマンドを受信するコマンド受信ステップと、
該機体操作用コマンドが指定する機体動作を実行する動作実行ステップと、
機体の内部状態を検出してセンサ情報を出力するセンシング・ステップと、
該センサ情報に基づいて機体に発生するエラー又はエラーの解除を検出するエラー検出ステップと、
前記エラー検出手段によるエラー検出結果に応じたエラー解除動作を実行するエラー解除ステップと、
エラー検出に応答して前記動作実行ステップにおける機体操作用コマンドの処理を停止した後、エラー解除に応答して機体操作用コマンドの処理を再開させるゲーティング・ステップと、
を具備することを特徴とするロボット装置の動作制御方法。
【請求項１３】
前記動作実行ステップは、
リソース単位で機体操作用コマンドの処理を分配し、前記機体操作用コマンドに整合する姿勢へ遷移させるロボットの各リソース管理及び姿勢遷移制御モジュールと、
リソース毎に設けられ、分配された機体操作用コマンドの処理に従って該当するリソースに関する動作を計画し、計画された動作内容に応じたロコモーション生成又はモーション再生の要求を行なうエージェントと、
前記エージェントからの要求に応じてリアルタイムに歩容を生成し又は要求されたモーションに応じて、各関節角度の指令値を変更するロコモーション生成又はモーション再生モジュールと、
からなるプログラム・モジュールを起動することにより実現される、
ことを特徴とする請求項１２に記載のロボット装置の動作制御方法。
【請求項１４】
エラー検出に応答してロボットが未知姿勢に陥ったときに、未知姿勢から最も近い既知姿勢へと復帰し、所定の姿勢遷移モデルへ復帰させる復帰ステップをさらに備える、
ことを特徴とする請求項１２に記載のロボット装置の動作制御方法。
【請求項１５】
少なくとも可動脚と体幹、腰を備えたロボット装置の動作制御装置であって、
操作系から入力された機体操作用コマンドを受信するコマンド受信ステップと、
該機体操作用コマンドが指定する機体動作を実行する動作実行ステップと、
機体の内部状態を検出してセンサ情報を出力するセンシング・ステップと、
該センサ情報に基づいて機体に発生するエラー又はエラーの解除を検出するエラー検出ステップと、
前記エラー検出ステップにおけるエラー検出結果に応じたエラー解除動作を実行するエラー解除ステップとを備え、
前記動作実行ステップは、
リソース単位で機体操作用コマンドの処理を分配し、前記機体操作用コマンドに整合する姿勢へ遷移させるロボットの各リソース管理及び姿勢遷移制御モジュールと、
リソース毎に設けられ、分配された機体操作用コマンドの処理に従って該当するリソースに関する動作を計画し、計画された動作内容に応じたロコモーション生成又はモーション再生の要求を行なうエージェントと、
前記エージェントからの要求に応じてリアルタイムに歩容を生成し又は要求されたモーションに応じて、各関節角度の指令値を変更するロコモーション生成又はモーション再生モジュールと、
からなるプログラム・モジュールを起動することにより実現される、
ことを特徴とするロボット装置の動作制御方法。
【請求項１６】
少なくとも複数の可動部を備えたロボット装置の動作制御方法であって、
操作系から入力された機体操作用コマンドを受信するコマンド受信ステップと、
該機体操作用コマンドが指定する機体動作を実行する動作実行ステップと、
機体の内部状態を検出してセンサ情報を出力するセンシング・ステップと、
該センサ情報に基づいて機体に発生するエラー又はエラーの解除を検出するエラー検出ステップと、
前記エラー検出ステップにおけるエラー検出結果に応じたエラー解除動作を実行するエラー解除ステップと、
エラー検出に応答してロボットが未知姿勢に陥ったときに、未知姿勢から最も近い既知姿勢へと復帰し、所定の姿勢遷移モデルへ復帰させる復帰ステップと、
を具備することを特徴とするロボット装置の動作制御方法。
【請求項１７】
前記エラー検出ステップでは、トルク・リミッタ、過電流検出、挟み込み、転倒、安定判別の優先順位でエラーを検出する、
ことを特徴とする請求項１２乃至１６のいずれかに記載のロボット装置の動作制御方法。
【請求項１８】
前記エラー解除ステップでは、関節アクチュエータにおけるトルク・リミッタのエラーが検出されたことに応答して、トルク・リミッタの働いている箇所となる各関節アクチュエータのゲインを落とし、各関節角度指令値を計測値に変更し、トルクを下げる、
ことを特徴とする請求項１２乃至１６のいずれかに記載のロボット装置の動作制御方法。
【請求項１９】
前記エラー解除ステップでは、関節アクチュエータにおける過電流が検出されたことに応答して、過電流発生個所となる関節アクチュエータのゲインを落とし、各関節角度指令値を計測値に変更し、トルクを下げる、
ことを特徴とする請求項１２乃至１６のいずれかに記載のロボット装置の動作制御方法。
【請求項２０】
前記エラー解除ステップでは、関節における挟み込みが検出されたことに応答して、挟み込み個所となる関節アクチュエータのゲインを落とす、
ことを特徴とする請求項１２乃至１６のいずれかに記載のロボット装置の動作制御方法。
【請求項２１】
前記エラー解除ステップでは、機体の転倒が検出されたことに応答して、各関節アクチュエータのゲインを落とし、倒れる向きに応じた受身姿勢をとる、
ことを特徴とする請求項１２乃至１６のいずれかに記載のロボット装置の動作制御方法。
【請求項２２】
前記エラー解除ステップでは、機体の安定を失っていると検出されたことに応答して、倒れないように脚を踏ん張り重心を上げる動作を行なうよう前記動作実現ステップに指示する、
ことを特徴とする請求項１２乃至１６のいずれかに記載のロボット装置の動作制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも複数の可動部を備えたロボット装置の動作制御装置及び動作制御方法に係り、特に、さまざまな環境下での使用が想定されるロボット装置の動作制御装置及び動作制御方法に関する。
【０００２】
さらに詳しくは、本発明は、反射的エラーが生じた際の動作を保証するロボット装置の動作制御装置及び動作制御方法に係り、特に、反射的エラーの発生に対する回避処理を自律的に行なうロボット装置の動作制御装置及び動作制御方法に関する。
【０００３】
また、本発明は、リモート・コントローラなどを介してユーザが遠隔操作を行なうことができるロボット装置（自律ロボット装置など）の動作制御装置及び動作制御方法に係り、特に、遠隔操作の最中に反射的エラーが発生したことに応答して、自律的な回避処理により動作を保証するロボット装置の動作制御装置及び動作制御方法に関する。
【背景技術】
【０００４】
電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行なう機械装置のことを「ロボット」という。ロボットの語源は、スラブ語の“ＲＯＢＯＴＡ（奴隷機械）”に由来すると言われている。わが国では、ロボットが普及し始めたのは１９６０年代末からであるが、その多くは、工場における生産作業の自動化・無人化などを目的としたマニピュレータや搬送ロボットなどの産業用ロボット（ｉｎｄｕｓｔｒｉａｌ ｒｏｂｏｔ）であった。
【０００５】
最近では、ヒトやサルなどの２足直立歩行を行なう動物の身体メカニズムや動作を模した脚式移動ロボットに関する研究開発が進展し、実用化への期待も高まってきている（例えば、特許文献１を参照のこと）。２足直立による脚式移動は、クローラ式や、４足又は６足式などに比し不安定で姿勢制御や歩行制御が難しくなるが、不整地や障害物など作業経路上に凹凸のある歩行面や、階段や梯子の昇降など不連続な歩行面に対応することができるなど、柔軟な移動作業を実現できるという点で優れている。
【０００６】
また、ヒトの生体メカニズムや動作を再現した脚式移動ロボットのことを、特に、「人間形」、若しくは「人間型」のロボット（ｈｕｍａｎｏｉｄ ｒｏｂｏｔ）と呼ぶ。人間型ロボットは、例えば、生活支援、すなわち住環境その他の日常生活上のさまざまな場面における人的活動の支援などを行なうことができる。
【０００７】
人間の作業空間や居住空間のほとんどは、２足直立歩行という人間が持つ身体メカニズムや行動様式に合わせて形成されおり、車輪その他の駆動装置を移動手段とした現状の機械システムが移動するのには多くの障壁が存在する。したがって、機械システムすなわちロボットがさまざまな人的作業を代行し、さらに人間の住空間に深く浸透していくためには、ロボットの移動可能範囲が人間のそれとほぼ同じであることが好ましい。これが、脚式移動ロボットの実用化が大いに期待されている所以でもある。
【０００８】
高い脚式移動ロボットは、整地・不整地を問わず、あらゆる環境下での使用が想定され、機体の制御系が保証する運用条件を逸脱するような場面が多々存在する。このため、予期しない反射的エラーが発生する可能性が他の機械装置に比べて高いので、各エラーに対する回避処理をロボットが自律的に行なうことが望まれている。
【０００９】
また、最近では、遠隔操作によってロボットの所望の歩行動作をロボットの制御装置に指令するようにすることが考えられる（例えば、特許文献２を参照のこと）。しかしながら、遠隔操作系（遠隔操作装置など）の各種ロボットの多くは、遠隔的な操作機能にのみ重点が置かれており、操作中に予期しないエラーが発生した場合など遠隔地における安全対策にはあまり注力されていない。
【００１０】
【特許文献１】特開平１３−１２９７７５号公報
【特許文献２】特開２００２−２１０６７９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明の目的は、反射的エラーが生じた際の動作を保証することができる、優れたロボット装置の動作制御装置及び動作制御方法、並びにロボット装置の遠隔操作装置及び遠隔操作方法を提供することにある。
【００１２】
本発明のさらなる目的は、反射的エラーの発生に対する回避処理を自律的に行なうことができる、優れたロボット装置の動作制御装置及び動作制御方法、並びにロボット装置の遠隔操作装置及び遠隔操作方法を提供することにある。
【００１３】
本発明のさらなる目的は、リモート・コントローラなどを介してユーザが遠隔操作を行なうことができる、優れたロボット装置の動作制御装置及び動作制御方法、並びにロボット装置の遠隔操作装置及び遠隔操作方法を提供することにある。
【００１４】
本発明のさらなる目的は、遠隔操作の最中にエラーが発生したことに応答して、自律的な回避処理により動作を保証することができる、優れたロボット装置の動作制御装置及び動作制御方法、並びにロボット装置の遠隔操作装置及び遠隔操作方法を提供することにある。
【課題を解決するための手段】
【００１５】
本発明は、上記課題を参酌してなされたものであり、その第１の側面は、少なくとも複数本の可動脚を備えたロボット装置の動作制御装置又は動作制御方法であって、
操作系から入力された機体操作用コマンドを受信するコマンド受信手段又はステップと、
該機体操作用コマンドが指定する機体動作を実行する動作実現手段又はステップと、
機体上の内部状態を検出してセンサ情報を出力するセンサ手段又はステップと、
該センサ情報に基づいて機体上に発生するエラー及び／又はエラーの解除を検出するエラー検出手段又はステップと、
エラー検出に応答して前記動作実現手段又はステップによる機体操作用コマンドの処理を停止し、及び／又は、エラー解除に応答して機体操作用コマンドの処理を再開させるゲート手段又はステップと、
を具備することを特徴とするロボット装置の動作制御装置又は動作制御方法である。
【００１６】
ここで、前記コマンド受信手段又はステップは、ＴＣＰ／ＩＰ又はその他の通信プロトコルを実装し、外部の遠隔操作装置と無線又は有線のデータ通信を行なうことができる。
【００１７】
また、前記動作実現手段又はステップは、機体操作用コマンドに応じて、頭、体、腕、脚といったリソース単位で処理を分配するロボットの各リソース管理及び姿勢遷移制御モジュールと、各リソースに対する動作を計画し、内容に応じたロコモーション生成又はモーション再生の依頼を行なうエージェントと、前記エージェントからの依頼に応じてリアルタイムに歩容を生成し又は依頼されたモーションに応じて、各関節角度の指令値を変更するロコモーション生成又はモーション再生手段とで構成される。
【００１８】
本発明では、ロコモーション生成部並びにモーション再生には、ゲートという概念が導入されている。このゲートがオープンしている間は、クライアントからのコマンドを受け付けて、ロコモーション生成やモーション再生を行なうが、ゲートがクローズすると、コマンドを拒否することができる。このようなゲートのオープン／クローズ操作は、エラー検出結果に応じて行なわれる。また、ゲートのクローズ時にも、ゲートは、エラーを解除するためのコマンドには対処することができ、エラー回避動作を実現することができる。
【００１９】
本発明の第１の側面に係るロボット装置の動作制御装置又は動作制御方法は、前記エラー検出手段又はステップによるエラー検出結果に応じたエラー解除動作を実行するエラー解除手段又はステップをさらに備えていてもよい。
【００２０】
また、前記エラー検出手段又はステップは、エラーが機体や外部環境に及ぼす影響などを考慮して、トルク・リミッタ、過電流検出、挟み込み、転倒、安定判別の優先順位でエラーを検出するようにしてもよい。
【００２１】
また、前記エラー解除手段又はステップは、関節アクチュエータにおけるトルク・リミッタのエラーが検出されたことに応答して、トルク・リミッタの働いている箇所となる各関節アクチュエータのゲインを落とし、各関節角度指令値を計測値に変更し、トルクを下げるようにしてもよい。
【００２２】
また、前記エラー解除手段又はステップは、関節アクチュエータにおける過電流が検出されたことに応答して、過電流発生個所となる関節アクチュエータのゲインを落とし、各関節角度指令値を計測値に変更し、トルクを下げるようにしてもよい。
【００２３】
また、前記エラー解除手段又はステップは、関節における挟み込みが検出されたことに応答して、挟み込み個所となる関節アクチュエータのゲインを落とすようにしてもよい。
【００２４】
また、前記エラー解除手段又はステップは、機体の転倒が検出されたことに応答して、各関節アクチュエータのゲインを落とし、倒れる向きに応じた受身姿勢をとるようにしてもよい。
【００２５】
また、前記エラー解除手段又はステップは、機体の安定を失っていると検出されたことに応答して、倒れないように脚を踏ん張り重心を上げる動作を行なうよう前記動作実現手段又はステップに指示するようにしてもよい。
【００２６】
また、エラー検出に応答してロボットが未知姿勢に陥ったときに、未知姿勢から最も近い既知姿勢へと復帰し、所定の姿勢遷移モデルへ復帰させる復帰マネージャをさらに備えていてもよい。
【００２７】
また、本発明の第２の側面は、少なくとも複数の可動部を備えたロボット装置の遠隔操作装置又は遠隔制御方法であって、
ユーザから前記ロボット装置操作用の指示の入力を受容する入力手段又はステップと、
前記入力手段又はステップを介した前記ロボット装置操作用の指示を機体操作用コマンドに変換して前記脚式移動ロボットに転送するコマンド処理手段又はステップと、
前記ロボット装置側からのエラー検出結果を受信して前記入力手段又はステップにフィードバックするフィードバック手段又はステップと、
を具備することを特徴とするロボット装置の遠隔操作装置又は遠隔制御方法である。
【００２８】
前記フィードバック手段又はステップは、前記ロボット装置側からのエラー検出結果を受信したことに応答して、前記入力手段からの入力を制限するようにしてもよい。
【００２９】
また、前記フィードバック手段又はステップは、前記ロボット装置側からエラーの解除が通知されたことに応答して、前記入力手段からの入力制限を解除するようにしてもよい。
【００３０】
また、前記フィードバック手段又はステップは、前記ロボット装置側から通知されたエラー検出の種別が機体の転倒であった場合には、前記入力手段に衝撃を印加するようにしてもよい。
【発明の効果】
【００３１】
本発明によれば、反射的エラーが生じた際の動作を保証することができる、優れたロボット装置の動作制御装置及び動作制御方法、並びにロボット装置の遠隔操作装置及び遠隔操作方法を提供することができる。
【００３２】
また、本発明によれば、反射的エラーの発生に対する回避処理を自律的に行なうことができる、優れたロボット装置の動作制御装置及び動作制御方法、並びにロボット装置の遠隔操作装置及び遠隔操作方法を提供することができる。
【００３３】
また、本発明によれば、リモート・コントローラなどを介してユーザが遠隔操作を行なうことができる、優れたロボット装置の動作制御装置及び動作制御方法、並びにロボット装置の遠隔操作装置及び遠隔操作方法を提供することができる。
【００３４】
また、本発明によれば、遠隔操作の最中に反射的エラーが発生したことに応答して、自律的な回避処理により動作を保証することができる、優れたロボット装置の動作制御装置及び動作制御方法、並びにロボット装置の遠隔操作装置及び遠隔操作方法を提供することができる。
【００３５】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【発明を実施するための最良の形態】
【００３６】
以下、図面を参照しながら本発明の実施形態について詳解する。
【００３７】
図１には、本発明の実施に供される脚式移動ロボットの自由度構成を模式的に示している。
【００３８】
同図に示すロボットは、二脚二腕を有する人間型ロボットである。本ロボットは、機体に四肢が取り付けられ、肩関節ピッチ軸、肩関節ロール軸、上腕ヨー軸、肘関節ピッチ軸、前腕ヨー軸、手首ロール軸、手首ピッチ軸という７自由度からなる左右の腕部と、股関節ヨー軸、股関節ロール軸、股関節ピッチ軸、膝ピッチ軸、足首ピッチ軸、足首ロール軸という６自由度からなる左右の脚部で構成されている。
【００３９】
これらの各関節自由度は、実際にはアクチュエータ・モータにより実現される。本実施形態では、ギア直結型で且つサーボ制御系をワンチップ化してモータ・ユニットに内蔵したタイプの小型ＡＣサーボ・アクチュエータを搭載する。なお、  この種のＡＣサーボ・アクチュエータに関しては、例えば本出願人に既に譲渡されている特開２０００−２９９９７０号公報（特願平１１−３３３８６号明細書）に開示されている。
【００４０】
機体には、加速度センサＡ１及びジャイロＧ１が搭載されている。また、左右の足底四隅には、足底面垂直方向の床反力を検出する１軸ロードセル（Ｆ１〜Ｆ８）と、床面までの距離を測定する赤外線測距センサ（Ｄ１〜Ｄ８）がそれぞれ４つ取り付けられている。また、左右の足底中央部には、それぞれ加速度センサ（Ａ２，Ａ３）及びジャイロ（Ｇ２，Ｇ３）が取り付けられている。
【００４１】
本実施形態に係る脚式移動ロボットは、「ＺＭＰ（Ｚｅｒｏ Ｍｏｍｅｎｔ Ｐｏｉｎｔ）」を歩行の安定度判別の規範として用いている。ＺＭＰによる安定度判別規範は、歩行系から路面には重力と慣性力、並びにこれらのモーメントが路面から歩行系への反作用としての床反力並びに床反力モーメントとバランスするという「ダランベールの原理」に基づく。力学的推論の帰結として、足底接地点と路面の形成する支持多角形（すなわちＺＭＰ安定領域）の内側にピッチ軸及びロール軸モーメントがゼロとなる点、すなわちＺＭＰが存在する。要約すれば、ＺＭＰ規範とは、「歩行のあらゆる瞬間において、ＺＭＰが足部と路面とが形成する支持多角形の内側に存在し、且つ、ロボットが路面に押す方向の力が作用すれば、ロボットが転倒（機体が回転運動）することなく安定に歩行できる」とするものである。
【００４２】
ＺＭＰ規範に基づく２足歩行パターン生成によれば、足底着地点をあらかじめ設定することができ、路面形状に応じた足先の運動学的拘束条件を考慮し易いなどの利点がある。また、ＺＭＰを安定度判別規範とすることは、力ではなく軌道を運動制御上の目標値として扱うことを意味するので、技術的に実現可能性が高まる。
【００４３】
なお、ＺＭＰの概念並びにＺＭＰを歩行ロボットの安定度判別規範に適用する点については、Ｍｉｏｍｉｒ Ｖｕｋｏｂｒａｔｏｖｉｃ著“ＬＥＧＧＥＤ ＬＯＣＯＭＯＴＩＯＮ ＲＯＢＯＴＳ”（加藤一郎外著『歩行ロボットと人工の足』（日刊工業新聞社））に記載されている。
【００４４】
図２には、本実施形態に係る脚式移動ロボットに適用される動作制御システムの機能構成を模式的に示している。
【００４５】
図示の通り、本実施形態に係る脚式移動ロボットは、機体に内部実装され自律動作を制御する思考系モジュール２０によるコマンドや、機体外に実装された遠隔操作系（遠隔操作装置など）３０からのコマンドに従って動作するようになっている。
【００４６】
思考系モジュール２０は、機体上における自律的な行動や動作を実現する。
【００４７】
また、遠隔操作系（遠隔操作装置など）のモジュール３０は、例えばパーソナル・コンピュータ（ＰＣ）のような無線ＬＡＮ機能を備えた計算機システムで構成され、入力デバイスとＰＣアプリケーション３１を備えている。
【００４８】
入力デバイス３２は、ジョイスティックやキーボード、マウスなどのユーザ入力装置で構成され、ユーザからの手動操作に基づくロボットに対する指示を受容する。
【００４９】
ＰＣアプリケーション３１は、ロボットと無線ＬＡＮ経由で接続し、実ロボットとの間でデータ交換を行なう。ＰＣアプリケーション３１は、入力デバイス信号を常時監視し、それをロボット用のコマンドに変換し、ロボットに送信するとともに、ロボット側からの返答やエラー通知を受け取ることができる。
【００５０】
ゲートウェイ１９は、例えばＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）などの通信プロトコルを実装し、遠隔操作系（遠隔操作装置など）３０などの外部のコンピュータとの通信（無線又は有線）を実現するロボット内オブジェクトである。
【００５１】
ロボットの各リソース管理及び姿勢遷移制御モジュール１１は、送られてきたコマンドに応じて、頭、体、腕、脚といったリソース単位で処理を分配する。また、姿勢遷移に関して、整合性を判断し、コマンドに対し不整合な姿勢から整合性のある姿勢へとの遷移も担当する。
【００５２】
復帰マネージャ１２は、ロボットが未知姿勢に陥ったときに、未知姿勢から最も近い既知姿勢へと復帰し、所定の姿勢遷移モデルへ復帰させる。
【００５３】
エージェント群は、各リソースに対する動作を計画し、内容に応じたロコモーション生成、モーション再生などの依頼を行なう。図示の例では、エージェント群には、頭部の動作を計画するＨｅａｄＡｇｅｎｔ１３Ａ、胴体の動作を計画するＢｏｄｙＡｇｅｎｔ１３Ｂ、歩行動作を計画するＷａｌｋＡｇｅｎｔ１３Ｃなどが用意されている。
【００５４】
ロコモーション生成部１４は、エージェントからの依頼に応じて、リアルタイムに歩容を生成するオブジェクトであり、生成結果に対して、姿勢の安定化も考慮して、下肢の各関節角度を算出し、デバイスへの指令値を作成する。
【００５５】
モーション再生部１５は、エージェントからの依頼されたモーションに応じて、各関節角度の指令値を変更する。
【００５６】
エラー検出部１６は、常時、各デバイスからのセンサ値を参照し、エラー状態の有無を監視する。ここで言うエラー状態として、例えば、トルク・リミッタ、過電流検出、挟み込み、転倒、安定判別などを挙げることができる。エラーには、優先順位が設定されており、優先順位の高いものから検出及び回避処理を行なう。
【００５７】
本実施形態では、ロコモーション生成部１４とモーション再生部１５にはゲート（Ｇａｔｅ）１７という概念が導入されている。このゲート１７がオープンしている間は、ロコモーション生成部１４とモーション再生部１５はクライアントからのコマンドを受け付けるが、ゲート１７がクローズすると、コマンドを拒否することができる。また、ゲート１７のオープン／クローズ操作は、エラー検出部１６が担当する。また、ゲート１７のクローズ時にも、ゲート１７は、エラー検出部１６からのコマンドには対処することができ、エラー回避動作を実現することができる。
【００５８】
デバイス・マネージャ１８は、アクチュエータやセンサなど、ロボットを構成する各デバイスと通信を行ない、指令値の送信や計測値の受信を行なう。
【００５９】
図２に示す動作制御システムの基本動作は、遠隔操作系（遠隔操作装置など）３０においては、ＰＣ上のアプリケーション３１で入力デバイス信号を監視し、ロボット用コマンドに変換する。作成されたコマンドは無線ＬＡＮ経由でロボット内のゲートウェイ１９を通して、ロボットのリソース管理及び姿勢遷移制御系モジュール１１に送られる。その後、そのコマンドに対する返答が同様にＰＣアプリケーション３１に送られる。
【００６０】
エラー検出時には、依頼されたコマンドがロボット内部処理によって、すべてブロックされ、操作系入力における影響がロボットに悪影響を及ぼすことはない。また、発生したエラーの種別も操作系に送られるので、それに応じた、入力デバイス３２へのフィードバックを掛けることができる。また、エラー解消時には、その旨の通知が操作系に送られ、遠隔操作系（遠隔操作装置など）からの通常のコマンド入力を再開することができる。
【００６１】
一方、ロボットの自律行動時には、遠隔操作系（遠隔操作装置など）３０の代わりに思考系モジュール２０からコマンド送信を行なうことができる。エラー検出時には、依頼されたコマンドがロボット内部処理によって、すべてブロックされる。また、エラー解消時には、その旨の通知が操作系に送られ、遠隔操作系（遠隔操作装置など）３０からの通常のコマンド入力を再開することができる。また、エラー発生時にも、思考系モジュール２０においてエラー種別に応じた任意の感情表現を行なうなどの処理に利用できる。
【００６２】
以下、この動作制御システムの動作について説明する。
【００６３】
遠隔操作を行なう場合、ＰＣアプリケーション３１は、入力デバイス３２を介して得られた入力情報を基にロボットに対するコマンドを発行し、これを無線ＬＡＮ経由でロボットに転送する。
【００６４】
ロボットの各リソース管理及び姿勢遷移制御１１モジュールは、ゲートウェイ１９を介して、遠隔操作系（遠隔操作装置など）３０からのコマンドを受信すると、該当するエージェント１３によって各リソースに対する動作を計画し、その内容に応じて、ロコモーション生成部１４又はモーション再生部１５に動作の発現を依頼する。ロコモーション生成部１４又はモーション再生部１５は、デバイス・マネージャ１８をコールして、該当するロボットの各種デバイスに対して指令値を送信する。
【００６５】
ロボットの各種デバイスからは、指令値に基づいて駆動したときに検出されるセンサ情報を、指令の伝播とは逆の経路で、入力デバイスまで伝達される。
【００６６】
また、デバイス・マネージャ１８は、遠隔操作系（遠隔操作装置など）３０からの指令値に基づいて駆動したときに検出されるセンサ情報を、エラー検出部１６にも通知する。
【００６７】
エラー検出部１６は、センサ情報に基づいて、トルク・リミッタ、過電流検出、挟み込み、転倒、安定判別などのエラーを検出する。そして、機体上のエラーを検出すると、ロコモーション生成部１４とモーション再生部１５にゲート１７のクローズを指示する。ロコモーション生成部１４とモーション再生部１５は、ゲート・クローズに応答して、ゲート１７を介したクライアント（遠隔操作系３０又は思考系モジュール２０）からのコマンドを拒否する。
【００６８】
また、エラー検出部１６は、ゲート１７のクローズ指示とともに、ロコモーション生成部１４又はモーション再生部１５に対して、エラー検出時の機体動作を依頼するコマンドを発行する。
【００６９】
また、エラー検出部１６は、エラーを検出したとき、ロボットの各リソース管理及び姿勢遷移制御モジュール１１に対してエラー通知を行なう。ロボットの各リソース管理及び姿勢遷移制御モジュール１１は、ゲートウェイ１９経由で遠隔操作系（遠隔操作装置など）３０にエラー種別を通知する。また、思考系モジュール２０にもエラー種別を通知する。
【００７０】
ロコモーション生成部１４又はモーション再生部１５は、エラー検出部１６からのコマンドに従って、エラー回避処理を行なう。また、ロコモーション生成部１４又はモーション再生部１５は、コマンド実行に伴うステータスをエラー検出部１６に返す。
【００７１】
エラー検出部１６は、ロボットの各種デバイスからのセンサ情報に基づいて、エラーが解除されたかどうかを判別する。そして、エラーが解除されると、ロコモーション生成部１４及びモーション再生部１５に対してゲート１７のオープンを指示する。ゲート１７のオープンに伴い、ロコモーション生成部１４及びモーション再生部１５は、ゲート１７を介したクライアントからのコマンドを受け付けることができる。
【００７２】
また、エラー検出部１６は、ロボットの各リソース管理及び姿勢遷移制御モジュール１１にも、エラー解除を通知する。ロボットの各リソース管理及び姿勢遷移制御モジュール１１は、ゲートウェイ１９経由で遠隔操作系（遠隔操作装置など）３０に復帰終了通知を送るとともに、思考系モジュール２０にも復帰終了通知を送る。
【００７３】
図３には、歩行（ＷＡＬＫ）という動作を例にとって、遠隔操作系（遠隔操作装置など）３０からの指示に基づいてロボットが動作する場合のシーケンスを示している。
【００７４】
入力デバイス３２を介してユーザからのＷＡＬＫ指示が入力されると、ＰＣアプリケーション３１上で、ロボット用操作用のＷＡＬＫコマンドに変換され、ゲートウェイ１９越しにロボットの各リソース管理及び姿勢遷移制御モジュール１１に送信される。
【００７５】
ロボットの各リソース管理及び姿勢遷移制御モジュール１１は、遠隔操作系（遠隔操作装置など）３０から依頼されたＷＡＬＫコマンドに応じた動作を該当するエージェント１３に依頼する。エージェント１３は、ロコモーション生成部１４又はモーション再生部１５にＷＡＬＫコマンドを発行する。ロコモーション生成部１４又はモーション再生部１５は、ＷＡＬＫコマンドに従った機体動作を実現するために各関節角度をデバイス・マネージャ１８に設定し、デバイス・マネージャ１８は、これに基づいてロボットの各デバイスを駆動する。
【００７６】
ロコモーション生成部１４又はモーション再生部１５は、コマンドに対する返答（ＳＴＡＴＵＳ）をエージェント１３に返す。この返答は、ゲートウェイ１９越しにＰＣアプリケーション３１に返される。そして、一連のモーションが完結するまで、上記の動作を繰り返す。
【００７７】
デバイス・マネージャ１８は、ロボットの各デバイスから取得されるセンサ情報を、エラー検出部１６に供給する。エラー検出部１６は、このセンサ情報に基づいて、機体上で発生したエラーを検出することができる。
【００７８】
ここで、ＷＡＬＫコマンドの実行中に、エラー検出部１６が「転倒」というエラーを検出したとする。エラー検出部１６は、ロボットの各リソース管理及び姿勢遷移制御モジュール１１にエラー通知（ＮＯＴＩＦＹ  ＥＲＲＯＲ）を行ない、さらにロボットの各リソース管理及び姿勢遷移制御モジュール１１は、ゲートウェイ１９越しにＰＣアプリケーション３１にエラー通知を行なう。そして、ＰＣアプリケーション３１は、入力デバイス３２にエラー通知をフィードバックしたり、入力デバイス３２を介した入力を制限したりする。
【００７９】
また、エラー検出部１６は、ロコモーション生成部１４又はモーション再生部１５に対して、ＷＡＬＫ動作の停止（ＳＴＯＰ）並びにゲート１７のクローズ（ＧＡＴＥ  ＣＬＯＳＥ）を指示する。ロコモーション生成部１４又はモーション再生部１５は、コマンドに対する返答（ＳＴＡＴＵＳ（ＦＡＩＬ））をエージェント１３に返す。この返答は、エージェント１３、復帰マネージャ１２、ロボットの各リソース管理及び姿勢遷移制御モジュール１１を経て、ゲートウェイ１９越しにＰＣアプリケーション３１に返される。
【００８０】
さらに、エラー検出部１６は、生じたエラーに対する回避行動をロコモーション生成部１４又はモーション再生部１５に指示する。初期転倒を検出したら検出回避行動を取るが、図示の例ではエラーの内容は「転倒」なので、受身姿勢をとるように、ロコモーション生成部１４又はモーション再生部１５に指示する。ちなみに、挟み込みを検出したら、動きを止め、該当する関節アクチュエータのゲインを低下させる。また、過電流及びトルク・リミッタを検出したら動きを緩くする。このような回避行動の指示は、対象とするエラーが解消されるまで繰り返し行なわれる。
【００８１】
ロコモーション生成部１４又はモーション再生部１５は、エラー回避行動を完了すると、これをエラー検出部１６に通知する（ＣＯＭＰＬＥＴＥ）。そして、エラー検出部１６は、ロボットの各リソース管理及び姿勢遷移制御モジュール１１に対して、エラー回避処理が終了した旨の通知を行なう。
【００８２】
ロボットの各リソース管理及び姿勢遷移制御モジュール１１は、エラー回避処理の終了に応答して、ゲート１７のオープン（ＧＡＴＥ  ＯＰＥＮ）をエラー検出部１６に指示する。エラー検出部１６は、さらにロコモーション生成部１４及びモーション再生部１５にゲート１７のオープンを指示する。ゲート１７のオープンが完了すると、ロコモーション生成部１４及びモーション再生部１５はエラー検出部１６にこれを通知する（ＣＯＭＰＬＥＴＥ）。これ以後、ロコモーション生成部１４１及びモーション再生部５は、再びクライアントからのコマンドを受け付けることができる。
【００８３】
エラー回避行動をとった後、エラー処理のためロボットの姿勢が想定していない状態となっている可能性がある。そこで、エラー検出部１６は、ロボットの各リソース管理及び姿勢遷移制御モジュール１１に対して、未知姿勢から最も近い既知姿勢へ復帰させるためのＲＥＣＯＶＥＲＹコマンドを発行する。ロボットの各リソース管理及び姿勢遷移制御モジュール１１は、ＲＥＣＯＶＥＲＹコマンドに応答して、復帰マネージャ１２をコールする。
【００８４】
復帰マネージャ１２は、デバイス・マネージャ１８からセンサ情報を取得して、現在の未知姿勢に最も近い既知の姿勢を探索し（ＰＯＳＴＵＲＥ  ＤＥＴＥＣＴ）、既知姿勢への遷移を実行する。既知姿勢への遷移が完了すると、これをエラー検出部１６に通知する（ＣＯＭＰＬＥＴＥ）。未知姿勢が転倒である場合、これに最も近い既知姿勢は、例えば仰向け姿勢又はうつ伏せ姿勢である。
【００８５】
エラー検出部１６は、既知姿勢への復帰（ＳＴＡＴＵＳ（ＳＵＣＣＥＳＳ））を、ロボットの各リソース管理及び姿勢遷移制御モジュール１１に通知する。ロボットの各リソース管理及び姿勢遷移制御モジュール１１は、所定の姿勢遷移モデルを用いて、既知姿勢から姿勢遷移モデル上の基本姿勢に遷移させる。既知姿勢が例えば仰向け姿勢又はうつ伏せ姿勢であれば、基本寝姿勢に設定する。
【００８６】
これが完了すると、ロボットの各リソース管理及び姿勢遷移制御モジュール１１は、ゲートウェイ越しにＰＣアプリケーション３１に対してエラーからの回復終了を通知する（ＮＯＴＩＦＹ  ＲＥＣＯＶＥＲＹ  ＥＮＤ）。ＰＣアプリケーション３１は、これを入力デバイス３２にフィードバックする。例えば、エラー検出により入力が制限されている場合には、入力制限を解除する。この結果、入力デバイス３２からの入力が再開される。
【００８７】
遠隔操作系（遠隔操作装置など）３０からのロボット用コマンドの送信再開時に、姿勢の不整合が生じた際には、それに応じた姿勢遷移が発生して、自動的にロボット側で整合の取れた姿勢へと移行してからコマンドの実行を始める。
【００８８】
図示の例では、遠隔操作系（遠隔操作装置など）からＷＡＬＫコマンドが送られてきたときに、ロボットの各リソース管理及び姿勢遷移制御モジュール１１は、ロボットが寝姿勢にあり受信コマンドを実行するには姿勢が不整合であることを検出する。これに応答して、所定の姿勢遷移モデルを起動して、立ち姿勢に移行させる。このため、ロボットの各リソース管理及び姿勢遷移制御モジュール１１は、エージェント１３に対してＳＴＡＮＤＵＰコマンドを発行し、エージェント１３はロコモーション生成部１４又はモーション再生部１５に立ち姿勢への遷移を指示する。ロコモーション生成部１４又はモーション再生部１５は、立ち姿勢への遷移を実現するための各関節角度をデバイス・マネージャ１８に設定する。
【００８９】
立ち姿勢への遷移が完了すると、ロコモーション生成部１４又はモーション再生部１５は、エージェント１３にＳＴＡＴＵＳ（ＳＵＣＣＥＳＳ）を返し、エージェント１３は、これをロボットの各リソース管理及び姿勢遷移制御モジュール１１に返す。ロボットの各リソース管理及び姿勢遷移制御モジュール１１は、姿勢遷移モデルを立ち姿勢に設定する。
【００９０】
その後、ロボットの各リソース管理及び姿勢遷移制御モジュール１１は、遠隔操作系（遠隔操作装置など）３０から依頼されたＷＡＬＫコマンドに応じた動作を該当するエージェント１３に依頼する。エージェント１３は、ロコモーション生成部１４又はモーション再生部１５にＷＡＬＫコマンドを発行する。ロコモーション生成部１４又はモーション再生部１５は、ＷＡＬＫコマンドに従った機体動作を実現するために各関節角度をデバイス・マネージャ１８に設定し、デバイス・マネージャ１８は、これに基づいてロボットの各デバイスを駆動する。
【００９１】
ロコモーション生成部１４又はモーション再生部１５は、コマンドに対する返答（ＳＴＡＴＵＳ）をエージェント１３に返す。この返答は、ゲートウェイ１９越しにＰＣアプリケーション３１に返される。そして、一連のモーションが完結するまで、上記の動作を繰り返す。
【００９２】
デバイス・マネージャ１８は、ロボットの各デバイスから取得されるセンサ情報を、エラー検出部１６に供給する。エラー検出部１６は、このセンサ情報に基づいて、機体上でのエラーの発生を監視する。
【００９３】
以下同様にして、遠隔操作系（遠隔操作装置など）からのコマンドの実行並びにエラー検出、エラー処理、既知姿勢への移行、入力再開などの動作が繰り返し行なわれる。
【００９４】
図４には、歩行操作時における脚式移動ロボットのエラー検出処理の手順をフローチャートの形式で示している。
【００９５】
脚式移動ロボットの電源を投入すると、ハードウェアの自己診断やその他の初期化処理が実行される（ステップＳ１）。
【００９６】
次いで、ＰＣなどで構成される遠隔操作系（遠隔操作装置など）との間で、無線ＬＡＮあるいはその他のネットワーク形態でのコネクションを確立し（ステップＳ２）、コマンドの授受が可能な状態となる。
【００９７】
遠隔操作系（遠隔操作装置など）３０から機体操作に関するコマンドを受信すると（ステップＳ３）、ロボットの各リソースの管理及び姿勢遷移制御モジュール１１は、操作内容が現在の機体における姿勢遷移モデル上の状態と整合するかどうかを判別する（ステップＳ４）。
【００９８】
操作コマンドが姿勢遷移モデル上の状態と整合しない場合には、操作コマンドと整合性のとれた姿勢を検索して（ステップＳ５）、姿勢遷移を実行する（ステップＳ６）。
【００９９】
次いで、ロコモーション生成部１４又はモーション再生部１５は、遠隔操作系（遠隔操作装置など）３０から入力された操作コマンドの各パラメータ（歩幅、歩行周期、方向）に応じた各関節角を逆キネマティクスなどの手法により導出し（ステップＳ７）、デバイス・マネージャ１８は、各足底センサの値から姿勢安定化を考慮した制御量を付加し（ステップＳ８）、各アクチュエータへ指令値を送信する（ステップＳ９）。
【０１００】
遠隔操作系（遠隔操作装置など）３０からのコマンドの入力がなかった場合（ステップＳ３）、又は、入力コマンドの処理が完了した後（ステップＳ９）、エラー検出部１６は、デバイス・マネージャ１８から返されるセンサ情報に基づいてエラーの検出を行なう（ステップＳ１０）。
【０１０１】
エラーが検出されなかった場合には、ステップＳ３に戻り、遠隔操作系（遠隔操作装置など）３０からの次のコマンド入力を待機する。一方、エラーが検出された場合には、エラー検出部は、ロコモーション生成部１４及びモーション再生部１５にエラーを通知して他の動作を停止するとともに、ロボットの各リソース管理及び姿勢遷移制御モジュール１１にもエラー通知する（ステップＳ１２）。ロボットの各リソース管理及び姿勢遷移制御モジュール１１は、さらにその上位の遠隔操作系（遠隔操作装置など）へエラー種別の通知を行なう。
【０１０２】
エラー検出部１６は、機体の動作保証という観点から、エラー検出の優先順位を持っている。本実施形態では、トルク・リミッタ、過電流、挟み込み、転倒検出、安定判別の順で優先順位が与えられている。
【０１０３】
エラー検出部１６は、まず各関節アクチュエータにおけるトルク・リミッタのエラー検出を行なう（ステップＳ１２）。
【０１０４】
トルク・リミッタのエラー検出は、例えばモータの発生トルクを電気的に検出する電気トルク・リミッタ装置を用いて行なうことができる。関節アクチュエータ用のモータに印加される負荷トルクには、衝突などによりリンクなどの部材の破壊に至る歪みエネルギを被るインパルス的な「衝撃負荷」と、このような衝撃負荷ほど高いトルクではないが、比較的高い負荷トルクが一定時間以上継続して（すなわち定常的に）印加され部材の塑性変形を招来する「定常負荷」に大別することができる。例えば、本出願人に既に譲渡されている特願２００２−３６７２５３号明細書に記載の電気トルク・リミッタ装置によれば、定常負荷すなわち負荷トルクのＤＣ成分を、モータの出力軸に連結されたリンクに印加されるトルクとモータによる発生トルクの絶対値の和に基づいて検出し、負荷トルクが所定時間以上継続して所定の閾値を越えたことに応答して、負荷のＤＣ成分が過大であることを認識することができる。また、モータの出力軸に与えられるエネルギの変化量がモータに印加されるトルクと角速度の積に比例するという性質に基づいて、エネルギ変化量から負荷トルクを検出し、この負荷トルクが部材の破壊に至るような閾値を越えたことに応答して、負荷のＡＣ成分が過大であることを認識することができる。
【０１０５】
ここでエラーが検出された場合には、トルク・リミッタの働いている箇所となる各関節アクチュエータのゲインを落とし、各関節角度指令値を計測値に変更し、トルクを下げる（ステップＳ１３）。また、トルク・リミッタ装置に解除命令を発する。
【０１０６】
次いで、エラー検出部１６は、各関節アクチュエータにおける過電流の検出を行なう（ステップＳ１４）。例えば、アクチュエータに電力を供給する電源制御装置には過電流保護回路が装備されており、同一アクチュエータ上に定格電流（例えば２．５Ａ）以上の電流が所定期間（例えば３秒）継続して流れた場合に、過電流を判定する。そして、過電流が検出された場合には、過電流発生個所となる関節アクチュエータのゲインを落とし、各関節角度指令値を計測値に変更し、トルクを下げる（ステップＳ１５）。
【０１０７】
次いで、エラー検出部１６は、各関節における挟み込みの検出を行なう（ステップＳ１６）。例えば、ある２つのリンクがなす角（ここでは、「挟み込み空間」と呼ぶ）をαとした場合に、α＜０の方向（すなわち、挟み込み空間が閉じる方向）に少なくとも一方のリンクが動作している際、同一挟み込み空間内に配置されている挟み込みセンサ（例えば、タッチ・センサ）が反応した場合に、挟み込み検出と判定する。
【０１０８】
そして、挟み込みが検出された場合には、挟み込み個所となる関節アクチュエータのゲインを落とす（ステップＳ１７）。挟み込み発生時には、挟み込み部位に応じた対処処理を起動する。
【０１０９】
上半身において挟み込みが検出された場合、バランスを崩さない状態で下半身の動き（歩行動作など）をゆっくり停止させるとともに、上半身は即時動きを止めて、該当する関節のゲインを下げてから若干柔らかくするとともに、挟み込み空間を広げる安全方向に該当関節を駆動する。
【０１１０】
一方、下半身において挟み込みが検出された場合、関節のゲインを下げて若干柔らかくするとともに、挟み込み空間を広げる安全方向に該当関節を駆動する。なお、全身の動きを止めたことによりバランスを崩した場合には、転倒制御が起動する。
【０１１１】
次いで、エラー検出部１６は、機体の転倒の有無を検出する（ステップＳ１８）。転倒したかどうかは、例えば以下の評価式を用いて判別することができる。但し、Δαはピッチ傾斜角偏差（腰姿勢の目標ピッチ角度とジャイロなどによる計測ピッチ角度との差）であり、Δβはロール傾斜角偏差（腰姿勢の目標ロール角度とジャイロなどによる計測ロール角度との差）であり、ｋ並びεは正の定数である。
【０１１２】
【数１】
0003615539.tif 000002
【０１１３】
転倒方向に関しては、以下の評価式を用いることができる。
【０１１４】
【数２】
0003615539.tif 000003
【０１１５】
【数３】
0003615539.tif 000004
【０１１６】
また、上記と併用して、以下の評価式により転倒判別を行なうこともできる。
【０１１７】
【数４】
0003615539.tif 000005
【０１１８】
転倒を検出した場合、各関節アクチュエータのゲインを落とし、倒れる向きに応じた受身姿勢をとる（ステップＳ１９）。
【０１１９】
次いで、エラー検出部１６は、機体の安定度判別を行なう（ステップＳ２０）。安定を失っている場合には、倒れないように脚を踏ん張り重心を上げる動作を行なうよう、ロコモーション生成部又はモーション再生部に指示する（ステップＳ２１）。
【０１２０】
ステップＳ１３、Ｓ１５、Ｓ１７、Ｓ１９、又はＳ２１において検出されたエラーに応じた処理を行なった後、又はエラーが検出されなかった場合、エラーが解消したかどうかを判別する（ステップＳ２２）。
【０１２１】
エラーが解消されなかった場合には、ステップＳ１０に戻り、上述したエラー検出処理を繰り返し実行する。
【０１２２】
また、エラーが解消された場合には、ロボットの各リソース管理及び姿勢遷移制御モジュール１１は、現在の未知姿勢に最も近い既知姿勢を検索し（ステップＳ２３）、姿勢遷移を実行してから（ステップＳ２４）、ステップＳ３に戻り、遠隔操作系（遠隔操作装置など）からの次のコマンドの入力を待機する。
【０１２３】
また、図５には、ＰＣなどを用いて脚式移動ロボットを遠隔で歩行操作している際に、脚式移動ロボット側でエラー検出処理が行なわれたときの遠隔操作系（遠隔操作装置など）３０での処理手順をフローチャートの形式で示している。
【０１２４】
脚式移動ロボットの電源を投入すると、ロボット側ではハードウェアの自己診断やその他の初期化処理が実行される（ステップＳ３１：同上）。
【０１２５】
一方、遠隔操作系（遠隔操作装置など）３０であるＰＣなどの装置上では、操作系のアプリケーションを３１起動する（ステップＳ３２）。
【０１２６】
そして、無線ＬＡＮあるいはその他のネットワークの形態で、ロボットとのコネクションを確立し（ステップＳ３３）、コマンドの授受が可能な状態となる。
【０１２７】
遠隔操作系（遠隔操作装置など）３０では、ジョイスティック、あるいはキーボードやマウスなど、ユーザがロボット操作用のコマンドを入力するための入力デバイス３２を備えている。入力デバイス３２からのコマンドの入力が発生すると（ステップＳ３４）、この入力信号を歩行コマンド（歩幅、歩行周期、方向）に変換し（ステップＳ３５）、ゲートウェイ１９経由でロボットにコマンドを送信する（ステップＳ３６）。
【０１２８】
これに応答して、ロボット側では、コマンドに応じて歩行又は諸動作を実行し（ステップＳ３７）、遠隔操作系（遠隔操作装置など）３０に対してステータスを返す（ステップＳ３８）。
【０１２９】
入力デバイス３２からの入力がなかった場合（ステップＳ３４）、又はロボットからステータスを受信した後（ステップＳ３８）、ロボット側でエラーが検出されたかどうかを判別する（ステップＳ３９）。
【０１３０】
また、エラーが検出されていない場合には、ステップＳ３４に戻り、入力デバイス３２からの次のユーザ・コマンドの入力を待機する。
【０１３１】
一方、エラーが検出されている場合には、そのエラー種別を特定する。すなわち、ステップＳ４０では、トルク・リミッタの作動の有無を判別する。トルク・リミッタのエラー検出は、例えばモータの発生トルクを電気的に検出する電気トルク・リミッタ装置を用いて行なうことができる（同上）。
【０１３２】
また、ステップＳ４１では過電流検出の有無を判別する。例えば、アクチュエータに電力を供給する電源制御装置には過電流保護回路が装備されており、同一アクチュエータ上に定格電流（例えば２．５Ａ）以上の電流が所定期間（例えば３秒）継続して流れた場合に、過電流を判定する（同上）。
【０１３３】
また、ステップＳ４２では挟み込みの発生の有無を判別する。例えば、ある２つのリンクがなす角すなわち挟み込み空間が閉じる方向に少なくとも一方のリンクが動作している際、同一挟み込み空間内に配置されている挟み込みセンサが反応した場合に、挟み込み検出と判定する（同上）。
【０１３４】
また、ステップＳ４３では機体の転倒の有無を判別する。転倒したかどうかは、例えば上述した評価式を用いて判別することができる。また、ステップＳ４４では機体が不安定状態か否かを判別する。
【０１３５】
トルク・リミッタの作動、過電流、挟み込み、又は不安定状態のいずれかが検出された場合には、入力デバイスからの入力を制限する（ステップＳ４５）。また、機体の転倒を検出した場合には、例えばジョイスティックに衝撃を印加するなどの入力デバイスを介したユーザ・フィードバックを行なった後に（ステップＳ４６）、入力デバイスからの入力を制限する（ステップＳ４５）。
【０１３６】
そして、エラーが解除された場合には（ステップＳ４７）、ステップＳ３４に戻り、入力デバイスからの次の入力を待機する。
【０１３７】
従来、遠隔操作系（遠隔操作装置など）の各種ロボットの多くは、遠隔的な操作機能にのみ重点が置かれており、操作中に予期しないエラーが発生した場合など遠隔地における安全対策にはあまり注力されていなかった。これに対し、本実施形態に係るロボット装置においては、上述したように、ゲートのオープン／クローズという概念を導入することにより、異常状態の発生時にはユーザの操作入力を無効化し、異常状態を解消するためのロボットの内部処理を優先するような、以下の仕組みを導入した。これにより、ロボットを遠隔操作する際の異常発生時に、ロボット自身の判断により異常回復処理をした方がよい場合は、ユーザからの操作入力を保留又は拒絶し、ロボット自身が取得した外部又は内部情報に基いて、正常状態への回復処理を行なう。特に、自律ロボットと遠隔操作のハイブリット遠隔操作システムを実現する。
【０１３８】
（１）異常状態を検出した際には、ユーザからの通常の動作指令に関してそれを無視する。
【０１３９】
（２）異常状態が発生したこと、又はゲートがクローズしたこと、又はロボットの内部的対処処理に制御が移行したことをユーザに通知する。
【０１４０】
（３）異常状態解消時にはゲートをオープンする。
【０１４１】
（４）異常状態が解消したこと、又はゲートがオープンしたこと、又はロボットの制御が内部対処処理から外部入力に移行したことをユーザに通知する。
【０１４２】
（５）ゲート・オープン後は、通常通り、ユーザの操作入力を受け付ける。
【０１４３】
（６）ロボットが転倒状態を検出したり、トルク・リミッタを検出したりといったロボット自身が物理的衝撃を受けているであろう場合には、ゲートのクローズによる外部入力の無視を行なうだけでなく、外部入力装置にその旨が直感的に伝わるように衝撃を印加する（例えば、ジョイスティックを振動させる）。
【０１４４】
（７）ゲート・クローズ時には、入力を無視するだけでなく、外部入力装置に直感的にその旨が伝わるような情報を印加する（例えば、ジョイスティックを硬くして操作できなくする）。
【０１４５】
（８）ゲート・オープン時には、再度入力が可能になったことを外部入力装置に直感的にその旨が伝わるような情報を印加する（例えば、硬くなっていたジョイスティックが柔らかくなり、再度入力が可能になる）。
【０１４６】
（９）上記の（５）、（６）、（７）に示したように、ロボットの状態に応じてユーザへのフィードバック経路を持つ。
【０１４７】
図６には、ゲート・クローズ中におけるロボットの内部対応処理の手順をフローチャートの形式で示している。ここでは、例えば転倒検出中に遠隔操作系（遠隔操作装置など）から歩行コマンドが転送されたような状況を想定する。
【０１４８】
前方転倒を検出すると（ステップＳ５１）、エラー発生状態に遷移し、エラー内容が上位制御系へ通知される（ステップＳ５２）。エラー内容は、例えば、［エラー種別ＩＤ（前方転倒）：処理種別ＩＤ（エラー処理開始）：リソースＩＤ（エラー発生部位）：時間（発生時刻）］などからなるエラー・データとして通知される。
【０１４９】
そして、エラー通知とともに、ゲートをクローズし、ゲート・クローズ状態となる（ステップＳ５３）。
【０１５０】
次いで、エラーを回避する内部対応処理を行なうためのエラー回避状態に遷移する。ここでは、まず該当アクチュエータのゲイン・ダウン並びに受身モーションを続行する（ステップＳ５４）。上位制御系からのコマンドの入力がある場合には（ステップＳ５５）、そのコマンドを破棄し、その旨の返答を上位制御系へ返す（ステップＳ５６）。ここで、上位から送られてくるコマンド・データは、例えば、［コマンド種別ＩＤ：歩幅ｘ：歩幅ｙ：歩幅ｚ：旋回角度：歩行周期］などで構成される。また、コマンドを破棄した際に返答するコマンド結果データは、例えば、［コマンド種別ＩＤ：ステータス（コマンド失敗を示すＩＤ）：ｒｅａｓｏｎ（失敗の理由を示すＩＤ）：ｐｏｓｔｕｒｅ（姿勢）］などで構成される。
【０１５１】
そして、受身モーションが静定すると（ステップＳ５７）、姿勢復帰状態に遷移する。ここでは、まず既知姿勢への復帰処理を続行する（ステップＳ５８）。上位制御系からのコマンドの入力がある場合には（ステップＳ５９）、そのコマンドを破棄し、その旨の返答を上位制御系へ返す（ステップＳ６０）。コマンドやその返答データの構成は上述と同様である。
【０１５２】
姿勢復帰処理が完了すると（ステップＳ６１）、姿勢復帰状態を抜けてゲート・クローズ状態となる。そして、ゲートを再びオープンし（ステップＳ６２）、ゲート・クローズ状態を抜けてエラー発生状態となる。
【０１５３】
次いで、エラー処理が終了した旨を上位制御系などに通知する（ステップＳ６３）。エラー処理終了の通知は、例えば、［エラー種別ＩＤ（前方転倒）：処理種別ＩＤ（エラー処理終了）：リソースＩＤ（エラー発生部位）：時間（終了時刻）］で構成されるエラー・データを転送することにより行なわれる。
【０１５４】
エラー処理終了の通知により、エラー発生状態を抜け、通常状態に戻る（ステップＳ６４）。
【０１５５】
上述したように、実ロボット上でエラーが発生したときには、遠隔操作系（遠隔操作装置など）でユーザにフィードバックを与えるようになっている。以下では、フィードバックの印加方法について説明しておく。
【０１５６】
遠隔操作系（遠隔操作装置など）におけるユーザ入力装置として、図７に示すようなジョイスティックを想定する。図示のジョイスティックは、ｘｙの２軸方向それぞれにモータなどの駆動手段を搭載し、各軸に対して独立に力を印加することができる。
【０１５７】
例えば実ロボットの転倒が発生した場合には、ジョイスティックに対し、転倒した方向に応じて荷重を加える（図８を参照のこと）。後ろ方向への転倒ならばｙ軸の正方向、左転倒ならｘ軸の負の方向へ荷重を加えるようにする。
【０１５８】
また、トルクリミッタが発動した場合には、発動した箇所や衝撃の大きさに応じて、ジョイスティックに振動を印加する（図９を参照のこと）。例えば、手先や頭なら振動を小さく、下半身ならば大きい振動を与えるようにする。さらに衝撃の大きさに比例した振幅の振動を与える。衝撃の向きは、前進中ならば前後になど、現在行なっている動作に対応させて任意に決定してもよい。
【０１５９】
［追補］
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
【０１６０】
本発明の要旨は、必ずしも「ロボット」と称される製品には限定されない。すなわち、電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行なう機械装置あるいはその他一般的な移動体装置であるならば、例えば玩具などのような他の産業分野に属する製品であっても、同様に本発明を適用することができる。
【０１６１】
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【図面の簡単な説明】
【０１６２】
【図１】図１は、本発明の実施に供される脚式移動ロボットの自由度構成を模式的に示した図である。
【図２】図２は、本発明の実施形態に係る脚式移動ロボットに適用される動作制御システムの機能構成を模式的に示した図である。
【図３】図３は、遠隔操作系（遠隔操作装置など）からの指示に基づいてロボットが動作する場合のシーケンスを示した図である。
【図４】図４は、歩行操作時における脚式移動ロボットのエラー検出処理の手順を示したフローチャートである。
【図５】図５は、脚式移動ロボット側でエラー検出処理が行なわれたときの遠隔操作系（遠隔操作装置など）での処理手順を示したフローチャートである。
【図６】図６は、ゲート・クローズ中のロボットの内部対応処理の手順を示したフローチャートである。
【図７】図７は、遠隔操作系（遠隔操作装置など）のユーザ入力装置として用いられるジョイスティックの構成を示した図である。
【図８】図８は、実ロボットの転倒が発生した場合のジョイスティックにユーザ・フィードバックが与えられる様子を示した図である。
【図９】図９は、トルクリミッタが発動した場合のジョイスティックにユーザ・フィードバックが与えられる様子を示した図である。
【符号の説明】
【０１６３】
１１…ロボットの各リソースの管理及び姿勢遷移制御モジュール
１２…復帰マネージャ
１３…エージェント
１４…ロコモーション生成部
１５…モーション再生部
１６…エラー検出部
１７…ゲート
１８…デバイス・マネージャ
１９…ゲートウェイ
２０…思考系モジュール
３０…遠隔操作系（遠隔操作装置など）
３１…ＰＣアプリケーション
３２…入力デバイス
【図１】
0003615539.tif 000006
【図２】
0003615539.tif 000007
【図３】
0003615539.tif 000008
【図４】
0003615539.tif 000009
【図５】
0003615539.tif 000010
【図６】
0003615539.tif 000011
【図７】
0003615539.tif 000012
【図８】
0003615539.tif 000013
【図９】
0003615539.tif 000014