(57)【要約】【課題】  異常が発生した場合に、異常が発生した関節とタイミングに対応して、適切なフェイルセーフ制御を行うことが可能なロボットを提供する。【解決手段】  ロボットは、胴体側部材と末端側部材を接続する関節の角度を変化させる関節アクチュエータと、関節アクチュエータ毎に設けられた関節コントローラと、関節コントローラ群に逐次指令する中央コントローラとを備えている。中央コントローラは、指令したとおりに関節角度が変化しない異常が発生した場合に、異常が発生した関節の関節コントローラが実行するべき異常処理手順を予め指示しておくようにようにプログラムされており、関節コントローラは、すでに記憶している異常処理手順を中央コントローラが指示した異常処理手順に更新するようにプログラムされている。【選択図】  図３
2005088166.tif 000002
【特許請求の範囲】
【請求項１】
胴体側部材と末端側部材を接続する関節の角度を変化させる関節アクチュエータと、関節アクチュエータ毎に設けられた関節コントローラと、関節コントローラ群に逐次指令する中央コントローラとを備えたロボットであり、
中央コントローラは、指令したとおりに関節角度が変化しない異常が発生した場合に、異常が発生した関節の関節コントローラが実行するべき異常処理手順を予め指示しておくようにプログラムされており、
関節コントローラは、すでに記憶している異常処理手順を中央コントローラが指示した異常処理手順に更新するようにプログラムされていることを特徴とするロボット。
【請求項２】
中央コントローラは、異常が発生した場合に、正常な関節の関節コントローラが実行する特定処理手順を指示するようにプログラムされており、異常が発生した関節と異常が発生したタイミングによって指示する特定処理手順を選択することを特徴とする請求項１に記載のロボット。
【請求項３】
異常処理手順および／または特定処理手順が、ロボットの姿勢変化に合わせて切替えられることを特徴とする請求項１又は２に記載のロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットに関するものである。詳しくは、ロボットで異常が発生した場合のフェイルセーフ技術に関するものである。
【背景技術】
【０００２】
胴体側部材と末端側部材を接続する関節の角度を変化させる関節アクチュエータと、関節アクチュエータ毎に設けられた関節コントローラと、関節コントローラ群に逐次指令する中央コントローラとを備えたロボットが開発されている。胴体側部材と末端側部材は相対的なものであり、例えば、２足歩行型ロボットの上腿と下腿では、上腿が胴体側部材で下腿が末端側部材であり、下腿と足平では下腿が胴体側部材で足平が末端側部材である。
このロボットは、中央コントローラに求められる演算処理量を関節コントローラ群に分担させることができ、高速動作することができる。その反面、多数のコントローラを接続してシステムを構成することから、コントローラ間で信号が伝達されないといった異常が起こる可能性があり、フェイルセーフ技術が必要とされる。
特許文献１に、関節コントローラ群と中央コントローラを備えたロボットのフェイルセーフ技術が開示されている。一つのフェイルセーフ技術では、中央コントローラが指令するデータを関節コントローラが時系列的に記憶する。関節コントローラは、中央コントローラから所定期間に亘って指令データを受信しないといった異常が発生した場合や、受信した指令データが異常であった場合に、記憶している指令データの時系列から、異常が発生しなかった場合に受信するであろう指令データを予測する。そして、予測した指令データに従ってロボットを制御する。  特許文献１には、上記とは別のフェイルセーフ技術が開示されており、このフェイルセーフ技術では、関節コントローラにデフォルト値を予め記憶しておく。中央コントローラから所定期間に亘って指令データを受信しないといった異常が発生した場合には、異常が発生した関節の関節コントローラは、予め記憶しているデフォルト値に向けて制御し、デフォルト値で静止させる。
【０００３】
【特許文献１】特開２００１−２３９４８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ロボットで異常が発生した場合に実行するべき制御処理手順は、異常発生時にロボットがどのような動作を行っているかによって異なってくる。例えば、２足歩行型ロボットの足首関節コントローラと中央コントローラを接続する電気ケーブルが断線し、足首関節コントローラを中央コントローラが制御できない異常が発生したとする。異常が発生した足首関節が遊脚のものであった場合には、遊脚足先が接地するまで歩行動作を継続し、足先が接地してから両脚の関節をロックして両足立脚の状態でロボットを静止させるのが適当である。両足立脚の状態で足首関節に異常が発生した場合には、そのまま両脚の関節をロックして両足立脚の状態でロボットを静止させるのが適当である。ロボットが片足立脚の状態で立脚の足首関節に異常が発生すれば、異常が発生した足首関節に適度なトルクを加えて歩行動作を継続し、両足立脚の状態になってから両脚の関節をロックしてロボットを静止させるのが適当である。このように、ロボットで異常が発生した場合には、その時のロボットの動作に対応した臨機応変な制御を行う必要がある。
【０００５】
特許文献１に記載の技術のように、異常発生時には異常が発生しなかった場合に受信するであろう指令データを予測する技術では、異常発生時に異常が発生しなかった場合の制御を行うことになる。このため、異常発生時のロボットを適切にフェイルセーフ制御することができない。特許文献１に記載されている第２の技術のように、異常が発生した場合に、予め記憶しているデフォルト値で静止させる技術では、異常発生時のロボットの動作に対応した臨機応変なフェイルセーフ制御を行うことができない。
【０００６】
本発明は、かかる問題を解決するためになされたものであり、異常が発生した場合に、異常が発生した関節とタイミングに対応して、適切なフェイルセーフ制御を行うことが可能なロボットを提供することを課題とする。
【課題を解決するための手段】
【０００７】
本発明に係るロボットは、胴体側部材と末端側部材を接続する関節の角度を変化させる関節アクチュエータと、関節アクチュエータ毎に設けられた関節コントローラと、関節コントローラ群に逐次指令する中央コントローラとを備えている。中央コントローラは、指令したとおりに関節角度が変化しない異常が発生した場合に、異常が発生した関節の関節コントローラが実行するべき異常処理手順を予め指示しておくようにようにプログラムされており、関節コントローラは、すでに記憶している異常処理手順を中央コントローラが指示した異常処理手順に更新するようにプログラムされている。
上記のロボットは、中央コントローラが関節コントローラに、異常が発生した場合に実行するべき異常処理手順を予め指示しておく。中央コントローラは、その時のロボットの状態に応じた異常処理手順を関節コントローラに逐次指示することができる。関節コントローラは、中央コントローラが指示した異常処理手順を記憶しており、異常発生時には記憶している異常処理手順を実行する。関節コントローラは、中央コントローラが異常処理手順を指示すると、すでに記憶している異常処理手順を中央コントローラが指示した異常処理手順に更新する。異常処理手順は時系列的に切換えられ、異常発生時のロボットの動作状態に応じた適切なフェイルセーフ制御を行うことが可能になる。
【０００８】
上記ロボットにおいて、中央コントローラは、異常が発生した場合に、正常な関節の関節コントローラが実行する特定処理手順を指示するようにプログラムされており、異常が発生した関節と異常が発生したタイミングによって指示する特定処理手順を選択することが好ましい。
このように構成されていると、いずれかの関節に異常が発生した場合に、中央コントローラによって、正常な関節の関節コントローラが特定処理手順を実行する。即ち、異常が発生した関節は異常処理手順を実行し、正常な関節は特定処理手順を実行する。異常が発生した関節と異常が発生したタイミングによって特定処理手順が選択されることから、異常発生時のロボットの動作状態に応じた適切なフェイルセーフ制御を行うことが可能になる。
【０００９】
上記ロボットにおいて、異常処理手順および／または特定処理手順が、ロボットの姿勢変化に合わせて切替えられることが好ましい。
このロボットによれば、ロボットの姿勢変化に合わせて異常処理手順および／または特定処理手順を切替えることができ、ロボットの姿勢変化に合わせたフェイルセーフ制御を実施することができる。
【発明を実施するための最良の形態】
【００１０】
後述する実施例の主要な特徴を記載する。
（形態１）  ロボットは２足歩行型である。脚、腕の各関節には、それぞれの関節角を変化させる関節アクチュエータが装着されている。関節アクチュエータはモータを主体に構成されている。関節アクチュエータは、関節の回転自由度の数に等しいモータを備えている。例えば、１軸の膝関節の関節アクチュエータは１個のモータで構成され、２軸の足首関節の関節アクチュエータは２個のモータで構成されている。
各関節アクチュエータは、それに対応する関節コントローラで制御される。多軸関節の関節コントローラは、少なくとも１個のCPUを備えている。例えば、２軸の足首関節を制御する足首コントローラは、２個のモータを制御する少なくとも１個のCPUを備えている。代わって、個々にモータを制御する複数のCPUを備えていてもよい。関節コントローラは、胴体に装着されている中央コントローラから送信されてくる動作コマンドに従って関節アクチュエータを制御する。
（形態２）  動作コマンドには、アドレス、動作指令値、異常処理手順の種類が含まれている。
関節コントローラは、送信されてくる異常処理手順の種類を記憶する。関節コントローラが記憶している異常処理手順の種類は、それが送信されてくる毎に更新されて記憶される。中央コントローラは、ロボットの姿勢（片足立脚であるか、両足立脚であるか）と、動作コマンドを送信する先の関節コントローラの別を考慮して異常処理手順の種類を選択する。
（形態３）  関節コントローラは、中央コントローラとの送受信が異常であるか、または自身が異常であると判別した場合に、記憶している異常処理手順の種類に従って動作する。中央コントローラは、関節コントローラとの送受信が異常であるか、関節コントローラが異常であると判別した場合に、異常であると判別した以外の関節コントローラに、特定処理手順の種類を送信する。この特定処理手順の種類は、ロボットの姿勢と、異常が発生した関節コントローラとを考慮して選択される。
異常が発生すると、異常な関節の関節コントローラは、予め記憶していた異常処理手順の種類に従って動作する。異常が発生すると、中央コントローラは、正常な関節の関節コントローラに対して、異常発生に対応した特定処理手順を行わせる。
（形態４）  上述したような制御が行われると、ロボットは、最終的に両足立脚の状態のまま静止したり、片足立脚から両足立脚の状態に移行してから静止したり、ひざまずいた状態で静止したりする。
【実施例】
【００１１】
本発明の実施例に係るロボット１０について、図面を参照しながら説明する。
図１に示されているように、ロボット１０は２足歩行型であり、右脚３２、左脚２０、胴体１９、右腕７０、左腕６０、頭部８０を備えている。
図２は、ロボット１０の各関節の機械的接続状態を図示している。図２では、説明の便宜上、ｘ、ｙ、ｚの３軸からなる座標系を設定している。ｘ軸（ロール軸）は、ロボット１０の前後方向に延びている。ｙ軸（ピッチ軸）は、ロボット１０の左右方向に延びている。ｚ軸（ヨー軸）は、ロボット１０の上下方向に延びている。
また、以下においては、図示および説明の明瞭化を目的として、関節と、その関節の関節角を変化させる関節アクチュエータに同一の参照番号を付している。例えば、左膝関節２４と記載することもあるし、その関節の関節角を変化させる関節アクチュエータに参照番号２４を付すこともある。詳しくは後述するが、各関節アクチュエータは、関節を駆動するモータと、モータ関節の角度を検出するエンコーダを内蔵している。
【００１２】
左脚２０は、左上腿２２、左膝関節２４、左下腿２６、左足首関節２８、左６軸力センサ２９、左足先３０を備えている。左膝関節２４は、ｙ軸回りの関節角が可変であり、１つのモータを備えている。左足首関節２８は、ｙ軸回りの関節角と、ｘ軸回りの関節角が可変であり、それぞれの軸毎にモータを備えている。
左６軸力センサ２９は、左足首関節２８と左足先３０との間に介装されており、それらとの間に作用する６軸力を検出する。具体的には、ｘ軸方向の力と、ｙ軸方向の力と、ｚ軸方向の力と、ｘ軸回りのモーメントと、ｙ軸回りのモーメントと、ｚ軸回りのモーメントを検出する。
右脚３２は、右上腿３３、右膝関節３４、右下腿３５、右足首関節３６、右６軸力センサ３８、右足先３９を備えている。右膝関節３４は、ｙ軸回りの関節角が可変であり、１つのモータを備えている。右足首関節３６は、ｙ軸回りの関節角と、ｘ軸回りの関節角が可変であり、それぞれの軸毎にモータを備えている。右６軸力センサ３８は、右足首関節３６と右足先３９との間に作用する６軸力を検出する。
【００１３】
左脚２０は、左股関節４２によって腰４０と接続されている。左股関節４２は、ｚ軸回りの関節角を変化させるモータ４３と、ｙ軸回りの関節角を変化させるモータ４４と、ｘ軸回りの関節角を変化させるモータ４６を備えている。
右脚３２は、右股関節５０によって腰４０と接続されている。右股関節５０は、ｚ軸回りの関節角を変化させるモータ５２と、ｙ軸回りの関節角を変化させるモータ５３と、ｘ軸回りの関節角を変化させるモータ５４を備えている。
【００１４】
左腕６０は、左上腕６１、左肘関節６２、左前腕６３、左掌６４を備えている。左肘関節６２は、ｙ軸回りの関節角が可変である。右腕７０は、右上腕７１、右肘関節７２、右前腕７３、右掌７４を備えている。右肘関節７２は、ｙ軸回りの関節角が可変である。
左腕６０は、左肩関節６６によって肩５９と接続されている。左肩関節６６は、ｘ軸回りとｙ軸回りの関節角が可変である。右腕７０は、右肩関節７６によって肩５９と接続されている。右肩関節７６は、ｘ軸回りとｙ軸回りの関節角が可変である
頭部８０は、首関節８２を介して肩５９と接続されている。首関節８２は、ｙ軸回りの関節角を変化させるモータ８４と、ｚ軸回りの関節角を変化させるモータ８３を備えている。
【００１５】
図３は、ロボット１０の制御系を模式的に示すブロック図である。中央コントローラ１０２には、通信線１０４によってＮ個の関節コントローラ〔１〕〜〔Ｎ〕が直列に接続されている。中央コントローラ１０２は、胴体１９内に装着されている。関節コントローラ〔１〕〜〔Ｎ〕のそれぞれには、モータ〔１〕〜〔Ｎ〕と、エンコーダ〔１〕〜〔Ｎ〕が１つずつ接続されている。関節コントローラと、モータと、エンコーダは各関節に内蔵されている。モータは、各関節を駆動する。エンコーダは、各関節の関節アクチュエータの回転角度（関節角度）を検出する。モータとエンコーダは、各関節の軸毎に設けられている。例えば、左足首関節２８は、ｙ軸回りとｘ軸回りの関節角が可変なので、ｙ軸用のモータとエンコーダ、ｘ軸用のモータとエンコーダを備えている。
関節コントローラを１つの関節のモータとエンコーダに接続することもできる。例えば、左足首関節２８用の関節コントローラを、ｙ軸用のモータとエンコーダに接続し、ｘ軸用のモータとエンコーダに接続する。
【００１６】
中央コントローラ１０２には、通信線１０６によってＭ個のセンサコントローラ〔１〕〜〔Ｍ〕と、Ｌ個のスイッチコントローラ〔１〕〜〔Ｌ〕と、音響コントローラ１１０が直列に接続されている。センサコントローラ〔１〕〜〔Ｍ〕のそれぞれには、センサ〔１〕〜〔Ｍ〕が１つずつ接続されている。センサ〔１〕〜〔Ｍ〕は、例えば、ロボット１０の姿勢変化を検出するジャイロや、外部の状態を撮影するＣＣＤカメラである。
スイッチコントローラ〔１〕〜〔Ｌ〕のそれぞれには、スイッチ〔１〕〜〔Ｌ〕が１つずつ接続されている。スイッチ〔１〕〜〔Ｌ〕は、各種機器（例えば、ランプ、ブザー）のオン／オフを行う。
音響コントローラ１１０には、スピーカ１１２が接続されている。音響コントローラ１１０は、スピーカ１１２を制御することにより、ロボット１０を喋らせる。
【００１７】
通信線１０４、１０６は、シリアル通信線である。中央コントローラ１０２は、関節コントローラ〔１〕〜〔Ｎ〕、センサコントローラ〔１〕〜〔Ｍ〕、スイッチコントローラ〔１〕〜〔Ｌ〕、音響コントローラ１１０との間で、各種情報をパケット通信する。シリアルの通信線１０４、１０６を介してパケット通信を行うことにより、中央コントローラ１０２と、関節コントローラ〔１〕〜〔Ｎ〕等との間の電気的インターフェイスが簡略化されている。
なお、以下においては、本発明と直接関係しない、センサコントローラ〔１〕〜〔Ｍ〕、スイッチコントローラ〔１〕〜〔Ｌ〕、音響コントローラ１１０に係る説明は省略する。
【００１８】
図４に示されているように、中央コントローラ１０２は、動作指令値演算ユニット１２０、画像処理ユニット１２２、ロボット外通信ユニット１２４、ロボット内通信ユニット１２６を備えている。
画像処理ユニット１２２には、画像センサを内蔵したＣＣＤカメラ１２３が接続されている。画像処理ユニット１２２は、ＣＣＤカメラ１２３から受信する画像信号を用いてパターン認識を行い、動作指令値演算ユニット１２０に送信する。既に図３を用いて説明したように、中央コントローラ１０２には、センサ〔１〕〜〔Ｍ〕が接続されているが、図４においては、それらをＣＣＤカメラ１２３で代表し、その他のものは図示を省略している。
ロボット外通信ユニット１２４には、アンテナ１２５が接続されている。ロボット外通信ユニット１２４は、アンテナ１２５が受信したロボット１０に対する動作要求を中央コントローラ１０２で処理可能なデータ形式に変換し、動作指令値演算ユニット１２０に送信する。また、ロボット外通信ユニット１２４は、動作指令値演算ユニット１２０からのロボット１０の状態に係る情報（例えば、どのような動作を行っているか、異常発生の有無等）をアンテナ１２５から外部に送信する。
【００１９】
動作指令値演算ユニット１２０と接続されているロボット内通信ユニット１２６は、通信異常看視部１２６ａ、通信ポート１２６ｂを備えている。通信ポート１２６ｂは、上述した関節コントローラ〔１〕〜〔Ｎ〕と、センサコントローラ〔１〕〜〔Ｍ〕と、スイッチコントローラ〔１〕〜〔Ｌ〕と、音響コントローラ１１０との間で通信を行う。通信異常看視部１２６ａは、関節コントローラ〔１〕〜〔Ｎ〕から入力される信号を看視しており、異常を検出した場合には、異常検出信号を動作指令値演算ユニット１２０に送信する。詳しくは後述するが、通信異常看視部１２６ａが異常を検出するのは、関節コントローラ〔１〕〜〔Ｎ〕から受信確認信号が返信されてこなかった場合、モータ異常信号が送信されてきた場合である。
【００２０】
動作指令値演算ユニット１２０には、データ記憶部１２０ａと異常処理ロジック記憶部１２０ｂが設けられている。動作指令値演算ユニット１２０は、画像処理ユニット１２２と、ロボット外通信ユニット１２４と、ロボット内通信ユニット１２６から入力される信号をデータ記憶部に記憶されている動作制御プログラムに従って処理し、動作指令値を演算する。動作指令値は、各関節のモータに対して回転すべき角度を指令する。
さらに、動作指令値演算ユニット１２０は、異常処理ロジック記憶部１２０ｂに記憶されている異常処理ロジックに基づいて、関節コントローラ〔１〕〜〔Ｎ〕に送信する異常処理手順の種類を選択する。異常処理手順は、関節コントローラに異常が発生した場合に、その関節コントローラが行うべき動作を指定する（詳しくは後述する）。
【００２１】
動作指令値演算ユニット１２０は、ロボット内通信ユニット１２６を介して動作コマンドを関節コントローラ〔１〕〜〔Ｎ〕に送信する。動作コマンドには、アドレス、上述した動作指令値、異常処理手順の種類が含まれている。アドレスは、送信される動作コマンドがどの関節コントローラに対するものであるかを指定する。
【００２２】
関節コントローラ〔１〕〜〔Ｎ〕について説明する。なお、関節コントローラ〔１〕〜〔Ｎ〕の構成は共通しているので、図５に示されている関節コントローラ１５０で代表して説明する。
図５に示されているように、関節コントローラ１５０は、通信制御部１５２、受信確認信号返信部１５４、モータ制御部１５６、モータ駆動回路１７６を備えている。関節コントローラ１５０には、電力線１６８を介して電力が供給されている。
通信制御部１５２には、通信線１０４と、モータ制御部１５６が接続されている。通信制御部１５２は、通信線１０４を介して中央コントローラ１０２から受信する動作コマンドに含まれているアドレスから、その動作コマンドが自身に対するものであるか否かを判別する。動作コマンドが自身に対するものであった場合には、通信制御部１５２は、その動作コマンドをモータ制御部１５６に送信する。また、通信制御部１５２は、モータ制御部１５６からの信号を中央コントローラ１０２に送信する。
受信確認信号返信部１５４は、予め記憶している動作コマンド（アドレス、動作指令値、異常処理手順の種類）と、受信した動作コマンドを照合する。そして、照合結果が一致する場合には動作コマンドは正常であると判別し、不一致の場合には動作コマンドは正常でない（異常である）と判別する。受信確認信号返信部１５４は、動作コマンドが正常な場合に、受信確認信号を中央コントローラ１０２に返信する。
【００２３】
モータ制御部１５６は、モータ駆動指令生成部１５８、通信異常看視部１６０、モータ異常看視部１６２、異常処理部１６３を備えている。
モータ駆動指令生成部１５８は、動作コマンドに含まれている動作指令値に応じた指令信号をモータ駆動回路１７６に送信する。モータ駆動回路１７６には、電力線１６９を介してモータ駆動用の電力が直接入力されている。モータ駆動回路１７６は、モータ駆動指令生成部１５８からの指令信号に基づいて、モータ１８０を回転させる。モータ１８０の回転は、その駆動軸に連結されている減速機構（例えば、ハーモニックドライブ）によって減速されて関節を回転させる。関節角の変化は、エンコーダ１８２によって検出される。エンコーダ１８２が検出した各関節の回転角度は、モータ制御部１５６に送信される。
【００２４】
通信異常看視部１６０は、モータ制御部１５６と、モータ駆動回路１７６とモータ１８０とエンコーダ１８２との間の通信の状態を看視している。そして通信異常看視部１６０は、モータ制御部１５６と、モータ駆動回路１７６等との間の通信状態が異常であった場合（例えば、断線による通信不能、信号が電気的ノイズの影響を受けた場合等）に、モータ異常信号を中央コントローラ１０２に送信する。なお、通信異常看視部１６０で中央コントローラ１０２から送信されてくる動作コマンドを看視し、動作コマンドが異常であった場合（例えば、パケットの破損）に、異常信号を中央コントローラ１０２に送信するように構成することもできる。
【００２５】
モータ異常看視部１６２は、モータ１８０の異常を看視している。具体的には、モータ駆動指令生成部１５８が送信した指令信号に応じてモータ１８０が回転しているか否かを看視している。指令信号に応じてモータ１８０が回転しているか否かは、エンコーダ１８２が検出した関節回転角度から判別する。モータ異常看視部１６２は、指令信号に応じてモータ１８０が回転しなかった場合に、モータ異常信号を中央コントローラ１０２に送信する。
モータ制御部１５６には、６軸力センサ２９、３８が接続されている。６軸力センサ２９、３８の検出信号は、後述する関節コントローラ処理Ｓ２００に従ってモータ１８０を制御するときに、脚２０、３２が接地したか否かを判別するために用いられる。なお、６軸力センサ２９、３８が接続される関節コントローラ１５０は、脚２０、３２の関節アクチュエータに装着されているもののみであり、腕６０、７０の関節アクチュエータに装着されている関節コントローラ１５０には接続されない。また、６軸力センサ２９、３８は、中央コントローラ１０２にも接続されている。
【００２６】
異常処理部１６３には、異常処理手順種類記憶部１６４と、異常処理手順内容記憶部１６６、特定処理手順種類記憶部１７１、特定処理手順内容記憶部１７２が設けられている。異常処理手順種類記憶部１６４は、中央コントローラ１０２から送信されてくる動作コマンドに含まれている異常処理手順の種類を記憶する。異常処理手順内容記憶部１６６は、異常処理手順の種類に対応した異常処理手順の内容を記憶している。特定処理手順種類記憶部１７１は、中央コントローラ１０２から送信されてくる動作コマンドに含まれている特定処理手順の種類を記憶する。特定処理手順内容記憶部１７２は、特定処理手順の種類に対応した特定処理手順の内容を記憶している。詳しくは後述するが、異常処理部１６３は、関節コントローラ１５０に異常が発生した場合に、異常処理手順内容記憶部１６４が記憶している異常処理手順の種類、異常処理手順内容記憶部１６６が記憶している異常処理手順内容、特定処理手順種類記憶部１７１が記憶している特定処理の種類、特定処理手順内容記憶部１７２が記憶している特定処理手順内容を用いて、モータ１８０を制御する。
【００２７】
ロボット１０において、その動作を制御したり、異常発生に対処するために実行される種々の処理について、フローチャート等を参照しながら説明する。
図６に示されている中央コントローラ処理Ｓ１０は、中央コントローラ１０２で処理される。中央コントローラ処理Ｓ１０の最初の処理Ｓ１２では、「ｋ」の値の初期値として「１」が設定される。「ｋ」は、後述するステップにおいて、関節コントローラ〔１〕〜〔Ｎ〕のそれぞれに係る処理を順次行うために用いられる。
【００２８】
Ｓ１２に続いて、図７に示されている異常処理手順種類選択処理Ｓ２０が行われる。異常処理手順種類選択処理Ｓ２０は、関節コントローラ〔１〕〜〔Ｎ〕で異常が発生する前に、異常が発生した場合に、異常な関節コントローラが実行すべき異常処理手順の種類を選択する。選択された異常処理手順の種類は、個々の関節コントローラに記憶しておく。このように構成しておくことにより、中央コントローラ１０２が特定の関節コントローラを制御できないような異常が発生した場合に、その特定の関節コントローラは、それ自身で異常に対処することができる。中央コントローラ１０２が特定の関節コントローラを制御できないような異常とは、例えば、特定の関節コントローラの通信制御部１５２の故障、特定の関節コントローラ近傍の通信線１０４の断線等である。
なお、首関節８２の制御には、異常処理手順種類選択処理Ｓ２０、および後述する特定処理手順種類選択処理Ｓ１００は適用されない。
【００２９】
異常処理手順種類選択処理Ｓ２０を実行すると、異常処理手順の種類が選択される。特定処理手順種類選択処理Ｓ１００を実行すると、特定処理手順の種類が選択される。異常処理手順の種類と、特定処理手順の種類は共通であり、種類〔１〕〜〔７〕である。種類〔１〕〜〔７〕それぞれの具体的な内容（異常処理手順内容、特定処理手順内容）は、図８に示されている。
図７に示されているように、異常処理手順種類選択処理Ｓ２０のＳ２２では、関節コントローラ〔ｋ〕が遊脚の足首関節２８、３６のものか否かを判別する。中央コントローラ処理Ｓ１０のＳ１２において「ｋ」の初期値が「１」に設定されているので、異常処理手順種類選択処理Ｓ２０が開始されると、関節コントローラ〔１〕についての処理がまず実行される。Ｓ２２で関節コントローラ〔ｋ〕が遊脚の足首関節２８、３６のものであると判別した場合（ＹＥＳの場合）には、Ｓ２２に移行する。
【００３０】
Ｓ２２では、脚が接地する前の異常処理手順として種類〔４〕を選択する。図８に示されているように、種類〔４〕の異常処理手順内容は、モータのトルクをゼロにし、フリーに回転できる状態にすることである。Ｓ２２に続くＳ２４では、脚接地後の異常処理手順として種類〔１〕を選択する。種類〔１〕の異常処理手順内容は、モータのトルクを除々に大きくし、所定時間後にロックすることである。Ｓ２４を実行してから、異常処理手順種類選択処理Ｓ２０を終了する。
Ｓ２２で関節コントローラ〔ｋ〕が遊脚の足首関節２８、３６のものでないと判別した場合（ＮＯの場合）には、Ｓ２６に移行する。
【００３１】
Ｓ２６では、関節コントローラ〔ｋ〕は立脚の足首関節２８、３６のものか否かを判別する。Ｓ２６で関節コントローラ〔ｋ〕は立脚の足首関節２８、３６のものであると判別した場合（ＹＥＳの場合）には、Ｓ２８を行う。Ｓ２８では、脚接地前の異常処理手順として種類〔５〕を選択する。種類〔５〕の異常処理手順内容は、モータのトルクを中間的な大きさとし、それ以上のトルクが作用した場合には回転させることである。Ｓ２８の次に行われるＳ３０では、脚接地後の異常処理手順として種類〔１〕を選択する。そして、異常処理手順種類選択処理Ｓ２０を終了する。なお、Ｓ２６の判別が行われた時にロボット１０が両足立脚の状態である場合には、Ｓ２８をスキップしてＳ３０のみを行う。
Ｓ２６で関節コントローラ〔ｋ〕は立脚の足首関節２８、３６のものでないと判別した場合（ＮＯの場合）には、Ｓ３２を実行する。
【００３２】
Ｓ３２では、関節コントローラ〔ｋ〕は遊脚の膝関節２４、３４のものか否かを判別する。Ｓ３２で関節コントローラ〔ｋ〕は遊脚の膝関節２４、３４のものであると判別した場合（ＹＥＳの場合）には、Ｓ３４を行う。Ｓ３４では、脚接地前の異常処理手順として種類〔４〕を選択する。そして、Ｓ３４に続くＳ３６では、脚接地後の異常処理手順として種類〔２〕を選択する。種類〔２〕の異常処理手順内容は、モータのトルクを除々に小さくし、所定時間後にフリーに回転できる状態にすることである。Ｓ３６を行ってから、異常処理手順種類選択処理Ｓ２０を終了する。
Ｓ３２で関節コントローラ〔ｋ〕は遊脚の膝関節２４、３４のものでないと判別した場合（ＮＯの場合）には、Ｓ３８に移行する。
【００３３】
Ｓ３８では、関節コントローラ〔ｋ〕は立脚の膝関節２４、３４のものか否かを判別する。Ｓ３８で関節コントローラ〔ｋ〕は立脚の膝関節２４、３４のものであると判別した場合（ＹＥＳの場合）には、Ｓ４０を実行する。Ｓ４０を実行すると、異常処理手順の種類〔２〕が選択される。Ｓ４０を実行してから、異常処理手順種類選択処理Ｓ２０を終了する。
Ｓ３８で関節コントローラ〔ｋ〕は立脚の膝関節２４、３４のものでないと判別した場合（ＮＯの場合）には、Ｓ４２に移行する。
Ｓ４２では、関節コントローラ〔ｋ〕は遊脚の股関節４２、５０のものか否かを判別する。Ｓ４２で関節コントローラ〔ｋ〕は遊脚の股関節４２、５０のものであると判別した場合（ＹＥＳの場合）には、Ｓ４４に移行する。
Ｓ４４では、脚接地前の異常処理手順として種類〔５〕を選択する。Ｓ４４の次に行われるＳ４６では、脚接地後の異常処理手順として種類〔２〕を選択する。Ｓ４６実行後、異常処理手順種類選択処理Ｓ２０を終了する。
Ｓ４２で関節コントローラ〔ｋ〕は遊脚の股関節４２、５０のものでないと判別した場合（ＮＯの場合）には、Ｓ４８に移行する。
【００３４】
Ｓ４８では、関節コントローラ〔ｋ〕は立脚の股関節４２、５０のものか否かを判別する。Ｓ４８で関節コントローラ〔ｋ〕は立脚の股関節４２、５０のものであると判別した場合（ＹＥＳの場合）には、Ｓ５０を実行する。Ｓ５０を実行すると、異常処理手順の種類〔２〕が選択される。そして、異常処理手順種類選択処理Ｓ２０を終了する。Ｓ４８で関節コントローラ〔ｋ〕は立脚の股関節４２、５０のものでないと判別した場合（ＮＯの場合）には、Ｓ５２を行う。
Ｓ５２では、関節コントローラ〔ｋ〕は肩関節６６、７６のものであるか否かを判別する。Ｓ５２で関節コントローラ〔ｋ〕は肩関節６６、７６のものであると判別した場合（ＹＥＳの場合）には、Ｓ５４に移行する。
Ｓ５４では、異常処理手順の種類〔６〕が選択される。種類〔６〕の異常処理手順内容は、モータの回転角を予め定められている角度にロックすることである。Ｓ５４を実行してから、異常処理手順種類選択処理Ｓ２０を終了する。
【００３５】
Ｓ５２で関節コントローラ〔ｋ〕は肩関節６６、７６のものでないと判別した場合（ＮＯの場合）には、Ｓ５６を行う。
Ｓ５６では、関節コントローラ〔ｋ〕は肘関節６２、７２のものか否かを判別する。Ｓ５６で関節コントローラ〔ｋ〕は肘関節６２、７２のものであると判別した場合（ＹＥＳの場合）には、Ｓ５８を行う。
Ｓ５８を行うと、異常処理手順の種類〔３〕が選択される。種類〔３〕の異常処理手順内容は、モータの回転速度を除々に遅くし、所定時間後にロックすることである。そして、異常処理手順種類選択処理Ｓ２０を終了する。
Ｓ５６で関節コントローラ〔ｋ〕は肘関節６２、７２のものでないと判別した場合（ＮＯの場合）には、そのまま異常処理手順種類選択処理Ｓ２０を終了する。
【００３６】
図６に示されているように、異常処理手順種類選択処理Ｓ２０の次には、Ｓ７０を実行する。Ｓ７０では、動作コマンドを関節コントローラ〔１〕〜〔Ｎ〕送信する。この場合に、動作コマンドに含まれているアドレスは関節コントローラ〔ｋ〕に対応したものに設定される。例えば、「ｋ」が「５」であるときには、アドレスは関節コントローラ〔５〕のものに設定される。この場合、動作コマンドを受信した関節コントローラ〔５〕は、アドレスからその動作コマンドが自身に対するものであると判別し、動作コマンドを取り込む。
Ｓ７０に続いて、Ｓ７２が行われる。Ｓ７２では、関節コントローラ〔ｋ〕から受信確認信号が返信されてきたか否かを判別する。既に説明したように、受信確認信号は、動作コマンドを受信した関節コントローラ〔ｋ〕から返信されてくる。Ｓ７２で受信確認信号が返信されてきたと判別した場合（ＹＥＳの場合）には、Ｓ７４に移行する。
Ｓ７４では、関節コントローラ〔ｋ〕からモータ異常信号が送信されてきたか否かを判別する。Ｓ７４でモータ異常信号が送信されてこないと判別した場合（ＮＯの場合）には、Ｓ７６を行う。
【００３７】
Ｓ７６では、「ｋ」の値に「１」を加算する。そして、Ｓ７８を実行する。
Ｓ７８では、「ｋ」の値が「Ｎ＋１」に等しいか否かを判別する。Ｓ７８で「ｋ」の値が「Ｎ＋１」に等しくないと判別した場合（ＮＯの場合）には、異常処理手順種類選択処理Ｓ２０以降の処理が再び行われる。「Ｎ」は関節コントローラの総個数であるので、「ｋ」の値が「Ｎ＋１」に等しいと判別されるのは、全ての関節コントローラに対してＳ２０〜Ｓ７６が実行された場合である。Ｓ７８で「ｋ」の値が「Ｎ＋１」に等しいと判別された場合（ＹＥＳの場合）には、Ｓ１２以降の処理が再び実行される。
一方、Ｓ７２で受信確認信号が返信されてこないと判別した場合（ＮＯの場合）、あるいはＳ７４でモータ異常信号が送信されてきたと判別した場合（ＹＥＳの場合）、すなわち異常が発生したときには、特定処理手順種類選択処理Ｓ１００に移行する。
【００３８】
図９に示されているように、特定処理手順種類選択処理Ｓ１００の最初の処理Ｓ１０２では、異常なのは遊脚の足首関節２８、３６か否かを判別する。Ｓ１０２で異常なのは遊脚の足首関節２８、３６であると判別した場合（ＹＥＳの場合）には、Ｓ１０４を実行する。Ｓ１０４を実行すると、脚接地前の特定処理手順として種類〔７〕が選択される。図８に示されているように、特定処理手順の種類〔７〕の特定処理手順内容は、モータの回転速度が指令値に従うことである。
Ｓ１０４に続くＳ１０６では、脚接地後の特定処理手順として種類〔１〕を選択する。そして、特定処理手順種類選択処理Ｓ１００を終了する。
Ｓ１０２で異常なのは遊脚の足首関節２８、３６でないと判別した場合（ＮＯの場合）には、Ｓ１０８に移行する。
【００３９】
Ｓ１０８では、異常なのは立脚の足首関節２８、３６か否かを判別する。Ｓ１０８で異常なのは立脚の足首関節２８、３６であると判別した場合（ＹＥＳの場合）には、Ｓ１１０に移行する。
Ｓ１１０では、脚接地前の特定処理手順として種類〔７〕が選択される。Ｓ１１０に続くＳ１１２では、接地後の特定処理手順として種類〔１〕を選択する。Ｓ１１２を実行してから、特定処理手順種類選択処理Ｓ１００を終了する。なお、Ｓ１０８の判別が行われた時にロボット１０が両足立脚の状態である場合には、Ｓ１１０をスキップしてＳ１１２のみが行われる。
【００４０】
Ｓ１０８で異常なのは立脚の足首関節２８、３６でないと判別した場合（ＮＯの場合）には、Ｓ１１４を行う。
Ｓ１１４を行うと、異常なのは遊脚の膝関節２４、３４であるか否かが判別される。Ｓ１１４で異常なのは遊脚の膝関節２４、３４であると判別された場合（ＹＥＳの場合）には、脚接地前の特定処理手順として種類〔７〕を選択する。そして、Ｓ１１８に移行し、脚接地後の特定処理手順として種類〔２〕を選択する。Ｓ１１８を実行してから、特定処理手順種類選択処理Ｓ１００を終了する。
Ｓ１１４で異常なのは遊脚の膝関節２４、３４でないと判別された場合（ＮＯの場合）には、Ｓ１２０に移行する。
【００４１】
Ｓ１２０では、異常なのは立脚の膝関節２４、３４か否かを判別する。Ｓ１２０で異常なのは立脚の膝関節２４、３４であると判別した場合（ＹＥＳの場合）には、Ｓ１２２を実行する。Ｓ１２２を実行すると、特定処理手順の種類〔２〕が選択される。そして、特定処理手順種類選択処理Ｓ１００を終了する。
Ｓ１２０で異常なのは立脚の膝関節２４、３４でないと判別した場合（ＮＯの場合）には、Ｓ１２４に移行する。Ｓ１２４では、異常なのは遊脚の股関節４２、５０か否かを判別する。Ｓ１２４で異常なのは遊脚の股関節４２、５０であると判別した場合（ＹＥＳの場合）には、Ｓ１２６を実行する。
Ｓ１２６を実行すると、脚接地前の特定処理手順として種類〔７〕が選択される。Ｓ１２６に続くＳ１２８では、脚接地後の特定処理手順として種類〔２〕が選択される。Ｓ１２８実行後、特定処理手順種類選択処理Ｓ１００を終了する。
Ｓ１２４で異常なのは遊脚の股関節４２、５０でないと判別した場合（ＮＯの場合）には、Ｓ１３０に移行する。
【００４２】
Ｓ１３０では、異常なのは立脚の股関節４２、５０か否かを判別する。Ｓ１３０で異常なのは立脚の股関節４２、５０であると判別した場合（ＹＥＳの場合）には、Ｓ１３２を実行する。Ｓ１３２を実行すると、特定処理手順として種類〔２〕が選択される。そして、特定処理手順種類選択処理Ｓ１００を終了する。
Ｓ１３０で異常なのは立脚の股関節４２、５０でないと判別した場合（ＮＯの場合）には、Ｓ１３４を行う。
【００４３】
Ｓ１３４を行うと、異常なのは肩関節６６、７６か否かが判別される。Ｓ１３４において異常なのは肩関節６６、７６であると判別された場合（ＹＥＳの場合）には、Ｓ１３６に移行する。Ｓ１３６では、肘関節６２、７２に対して特定処理手順の種類〔６〕を選択するとともに、脚の関節（股関節４２、５０、膝関節２４、３４、足首関節２８、３６）に対して特定処理手順の種類〔７〕を選択する。Ｓ１３６を行ってから、特定処理手順種類選択処理Ｓ１００を終了する。
Ｓ１３４において異常なのは肩関節６６、７６でないと判別された場合（ＮＯの場合）には、Ｓ１３８を行う。
Ｓ１３８を行うと、異常なのは肘関節６２、７２であるか否かが判別される。Ｓ１３８で異常なのは肘関節６２、７２であると判別された場合（ＹＥＳの場合）には、Ｓ１４０に移行する。Ｓ１４０では、肩関節６６、７６に対して特定処理手順の種類〔６〕を選択するとともに、脚の関節に対して特定処理手順の種類〔７〕を選択する。そして、特定処理手順種類選択処理Ｓ１００を終了する。
Ｓ１３８で異常なのは肘関節６２、７２でないと判別された場合（ＮＯの場合）には、そのまま特定処理手順種類選択処理Ｓ１００を終了する。
【００４４】
図６に示されているように、特定処理手順種類選択処理Ｓ１００に
続いて、Ｓ１５０を実行する。Ｓ１５０を実行すると、選択された特定処理手順の種類が正常な関節コントローラに送信される。例えば、異常なのが関節コントローラ〔６〕であった場合には、関節コントローラ〔１〕〜〔５〕、関節コントローラ〔７〕〜〔Ｎ〕に選択された特定処理手順の種類が送信される。この処理Ｓ１５０が実行されることにより、正常な関節コントローラは、選択された特定処理手順の種類に従って動作する。
Ｓ１５０に続くＳ１５２では、ロボット１０が安定して静止したか否かを判別する。Ｓ１５２においてロボット１０が安定して静止していないと判別した場合（ＮＯの場合）には、そのまま待機する。Ｓ１５２においてロボット１０が安定して静止したと判別した場合（ＹＥＳの場合）には、中央コントローラ処理Ｓ１０を終了する。
【００４５】
関節コントローラ〔１〕〜〔Ｎ〕で実行される関節コントローラ処理Ｓ２００について説明する。
図１０に示されているように、関節コントローラ処理Ｓ２００のＳ２０２では、中央コントローラ１０２から動作コマンドを受信したか否かを判別する。Ｓ２０２で動作コマンドを受信したと判別した場合（ＹＥＳの場合）には、Ｓ２０４に移行する。Ｓ２０４では、受信した動作コマンドは正常であるか否かを判別する。Ｓ２０４で受信した動作コマンドは正常であると判別した場合（ＹＥＳの場合）には、Ｓ２０６を実行する。
【００４６】
Ｓ２０６を実行すると、受信確認信号が中央コントローラ１０２に返信される。受信確認信号には、受信を確認した関節コントローラのアドレスが含まれている。このアドレスにより、中央コントローラ１０２は、受信確認信号がどの関節コントローラから返信されてきたのかを識別することができる。
Ｓ２０６に続くＳ２０８では、モータ１８０が正常であるか否かを判別する。既に説明したように、モータ１８０が正常であるか否かは、通信異常看視部１６０、モータ異常看視部１６２が看視している。Ｓ２０８でモータ１８０は正常であると判別した場合（ＹＥＳの場合）には、Ｓ２１０を実行する。
Ｓ２１０を実行すると、動作指令値に従ってモータ１８０が制御される。よってロボット１０は、動作指令値どおりの動作を行う。
Ｓ２１０に続くＳ２１２では、異常処理手順種類記憶部１６４に記憶されている異常処理手順の種類を更新する。このようにして、中央コントローラ１０２から異常処理手順の種類が送信されてくる毎に、異常処理手順の種類が更新される。Ｓ２１２を実行してから、Ｓ２０２以降の処理が再び行われる。
【００４７】
一方、Ｓ２０２で中央コントローラ１０２から動作コマンド受信していないと判別した場合（ＮＯの場合）には、Ｓ２１３に移行する。Ｓ２１３では、中央コントローラ１０２から特定処理手順の種類を受信したか否かを判別する。特定処理手順の種類を受信した場合には、その種類は特定処理手順種類記憶部１７１に一時的に記憶される。Ｓ２１３で中央コントローラ１０２から特定処理手順の種類を受信したと判別した場合（ＹＥＳの場合）には、Ｓ２１４を実行する。Ｓ２１４を実行すると、特定処理手順種類記憶部１７１に記憶されている特定処理手順の種類に従ってモータ１８０が制御される。具体的には、特定処理手順種類記憶部１７１に記憶されている特定処理手順の種類に対応した特定処理手順内容が特定処理手順内容記憶部１７２から読み出され、その内容に従ってモータ１８０が制御される。Ｓ２１４を実行してから、関節コントローラ処理Ｓ２００を終了する。
Ｓ２１３で中央コントローラ１０２から特定処理手順の種類を受信していないと判別した場合（ＮＯの場合）には、Ｓ２１５を実行する。Ｓ２１５では、動作コマンドを所定時間以内に受信したか否かを判別する。所定時間は、動作コマンドの送信が正常である場合の送信インターバルよりも十分に長く設定されている。Ｓ２１５で動作コマンドを所定時間以内に受信したと判別した場合（ＹＥＳの場合）には、Ｓ２０２を再び行う。Ｓ２１４で動作コマンドを所定時間以内に受信していないと判別した場合（ＮＯの場合）には、Ｓ２１６を実行する。
【００４８】
また、Ｓ２０４で受信した動作コマンドは正常でないと判別した場合（ＮＯの場合）、Ｓ２０８でモータは正常でないと判別した場合（ＮＯの場合）にもＳ２１６を実行する。
Ｓ２１６を実行すると、異常処理手順種類記憶部１６４に記憶されている異常処理手順の種類に従ってモータ１８０が制御される。具体的には、異常処理手順種類記憶部１６４に記憶されている異常処理手順の種類に対応した異常処理手順内容が異常処理手順内容記憶部１６６から読み出され、その内容に従ってモータ１８０が制御される。Ｓ２１６実行後、関節コントローラ処理Ｓ２００を終了する。
このようにして、関節コントローラ〔１〕〜〔Ｎ〕は、中央コントローラ１０２から動作コマンドを所定時間以内に受信しなかった場合、受信した動作コマンドが異常であった場合、モータ１８０が異常であった場合に、自身で記憶している異常処理手順の種類に従ってモータ１８０を制御する。よって、関節コントローラ〔１〕〜〔Ｎ〕は、異常が発生した場合に、中央コントローラ１０２に頼らずに、予め記憶している異常処理手順の種類に応じた動作を行うことができる。
【００４９】
モータ異常看視部１６２によってモータ１８０が異常であると判別されたときに、例えばモータ１８０自体に致命的な不具合が発生していた場合には、その制御を行うことができない。そこで、モータ１８０の不具合が致命的でない場合や、不具合が一時的である場合にはモータ１８０の制御を行い、その不具合が致命的である場合にはモータ１８０を停止させることが好ましい。この場合、モータ１８０への電力供給を停止してもよい。モータ１８０への電力供給を停止すると、モータ１８０が暴走してしまうのを防止することができる。
【００５０】
異常が発生した場合のロボット１０の動作について、具体的に説明する。
（１）異常なのが遊脚の足首関節である場合；
この場合には、異常である遊脚の足首関節２８、３６のモータ１８０は、脚接地前には、異常処理手順種類選択処理Ｓ２０（図７）のＳ２２、Ｓ２４の処理に従ってトルクをゼロにし、フリーに回転できるようにする。脚接地後にはモータ１８０のトルクを除々に大きくし、所定時間後にロックする。
遊脚の足首関節２８、３６以外の関節（正常である関節）のモータ１８０は、特定処理手順種類選択処理Ｓ１００（図９）のＳ１０４、Ｓ１０６の処理に従って、脚接地前には回転速度を動作指令値どおりとし、脚接地後にはトルクを除々に大きくし、所定時間後にロックする。
このような制御が行われると、異常である足首関節２８、３６に接続されている足先３０、３９は、脚が接地するまではモータ１８０がフリーに回転することによってブラブラになる。正常である関節のモータが、脚接地まで動作指令値どおりの速度で回転することにより、遊脚の足先３０、３９は床に接触する。足先３０、３９がブラブラになっていると、６軸力センサ２９、３８は、足先３０、３９が床に接触して足首関節２８、３６周りに回転しても、回転モーメントや軸方向の力を検出しない。このため、足先３０、３９が足首関節２８、３６周りに回転して床面に倣ってから、６軸力センサ２９、３８に力（ロボット１０の重さ）が作用し、脚の接地が検出される。床面に倣った足先３０、３９は、その裏面全体で床と接触する。
脚の接地が検出されると、異常である足首関節２８、３６と、その他の正常な関節のモータ１８０はトルクを除々に大きくし、所定時間後にロックする。異常である足首関節２８、３６に接続されている足先３０、３９は、モータのトルクが除々に大きくなる時点では裏面全体で床と接触している。このため、ロボット１０は転倒しにくくなる。このようにして、ロボット１０は、遊脚の足首関節２８、３６が異常になっても転倒せず、最終的に両足立脚の状態で静止する。なお、脚の接地が検出されたときに、モータ１８０のトルクを除々に大きくしてからロックするのは、直にロックすると、慣性でロボット１０が更に移動しようとし、転倒し易くなってしまうからである。脚接地後のモータ１８０のトルク変化率は、ロボット１０の転倒防止の観点から、一定でないことが好ましい。なぜならば、脚が接地してから足首関節２８、３８のトルクを大きくするのが遅れると、足首関節２８、３８が回転してロボット１０が転倒し易くなってしまうからである。このため、モータ１８０のトルクは、脚が接地するとある程度急に大きくし、その後除々に大きくするのが望ましい。すなわち、慣性の影響によるロボット１０の転倒防止と、足首関節２８、３８が回転してしまうことによるロボット１０の転倒防止の両者を満足する変化率でモータ１８０のトルクを大きくするのが好ましい。
なお、脚接地前の足首関節２８、３８のモータ１８０のトルクを、足先３０、３９が床に倣い、かつロボット１０の姿勢が大きく崩れない程度の中間的な大きさとしておくこともできる。
【００５１】
（２）異常なのが立脚の足首関節である場合；
異常である立脚の足首関節２８、３６は、異常処理手順種類選択処理Ｓ２０のＳ２８、Ｓ３０の処理に従って、脚接地前にはモータ１８０のトルクを中間的な大きさとし、それ以上のトルクが作用した場合には回転させる。脚接地後にはモータ１８０のトルクを除々に大きくし、所定時間後にロックする。
立脚の足首関節２８、３６以外の関節（正常である関節）は、特定処理手順種類選択処理Ｓ１００のＳ１１０、Ｓ１１２の処理に従って、脚接地前にはモータ１８０の回転速度を動作指令値どおりとし、脚接地後にはモータ１８０のトルクを除々に大きくし、所定時間後にロックする。
上記のように制御されると、脚接地前までは、異常である立脚の足首関節２８、３６は、モータ１８０のトルクが中間的な大きさとされていることにより、急に回転することがない。よって、ロボット１０の転倒が防止される。
また、モータ１８０の中間的なトルクは、正常な関節のモータ１８０が回転してロボット１０が歩行した場合には、その強さに負ける程度の値に設定されている。このため、脚接地前までは、異常である立脚の足首関節２８、３６は、正常な関節のモータ１８０が動作指令値どおりの速度で回転しているのに追従して回転する。
脚が接地すると、異常である足首関節２８、３６と、その他の正常な関節とのモータ１８０はトルクを除々に大きくし、所定時間後にロックする。このようにして、ロボット１０は、立脚の足首関節２８、３６が異常になっても転倒せず、最終的に両足立脚の状態で静止する。
【００５２】
（３）異常なのが遊脚の膝関節である場合；
この場合には、異常である遊脚の膝関節２４、３４は、脚接地前には、異常処理手順種類選択処理Ｓ２０のＳ３４、３６の処理に従って、モータ１８０のトルクをゼロにし、フリーに回転できるようにする。脚接地後にはモータ１８０のトルクを除々に小さくし、所定時間後にフリーに回転できる状態にする。なお、脚接地前にフリーに回転できるようになっていたモータ１８０は、脚接地時にトルクを発生させ、その後にトルクを除々に小さくする。
遊脚の膝関節２４、３４以外の関節（正常である関節）は、特定処理手順種類選択処理Ｓ１００のＳ１１６、Ｓ１１８の処理に従って、脚接地前にはモータ１８０の回転速度を動作指令値どおりとし、脚接地後にはモータ１８０のトルクを除々に小さくし、所定時間後にフリーに回転できる状態にする。
従って、脚が接地するまでは、異常である遊脚の膝関節２４、３４はフリーに回転することができる。異常である遊脚の膝関節２４、３４がフリーに回転すると、重力の作用で足先３０、３９は床に近づく。このため、足先３０、３９は早めに接地する。足先３０、３９が早めに接地すると、ロボット１０が安定して静止するまでの時間を短くすることができる。遊脚が接地すると、それが６軸力センサ２９、３８で検出される。
遊脚の接地が検出されると、異常である膝関節２４、３４と、その他の正常な関節のモータ１８０はトルクを除々に小さくし、所定時間後にフリーに回転できるようにする。モータ１８０のトルクを除々に小さくし、所定時間後にフリーに回転できるようにすると、ロボット１０は次第にしゃがみ込み、最終的にひざまずいた状態で静止する。ロボット１０がしゃがみ込む過程で、腕６０、７０が床に接触することもあるが、肩関節６６、７６と、肘関節６２、７０のモータ１８０のトルクも除々に小さくされている。このため、ロボット１０がしゃがみ込むときに腕６０、７０が突っ張り、ロボット１０が転倒してしまうことが防止されている。
なお、ロボット１０をひざまずかせず、両足立脚の状態で静止させることもできる。
【００５３】
（４）異常なのが立脚の膝関節である場合；
異常である立脚の膝関節２４、３４のモータ１８０と、それ以外の正常な関節のモータ１８０は、異常処理手順種類選択処理Ｓ２０のＳ４０の処理、および特定処理手順種類選択処理Ｓ１００のＳ１２２の処理に従って、トルクを除々に小さくし、所定時間後にフリーに回転できる状態にする。
異常である立脚の膝関節２４、３４のモータ１８０と、それ以外の正常な関節のモータ１８０のトルクを除々に小さくし、所定時間後にフリーに回転できる状態にすると、ロボット１０は次第にしゃがみ込み、最終的にひざまずいた状態で静止する。
なお、ロボット１０をひざまずかせず、両足立脚の状態で静止させることもできる。
【００５４】
（５）異常なのが遊脚の股関節である場合；
この場合には、異常である遊脚の股関節４２、５０のモータ１８０は、脚接地前には、異常処理手順種類選択処理Ｓ２０のＳ４４、Ｓ４６の処理に従って、トルクを中間的な大きさにし、それ以上のトルクが作用した場合には回転させるとともに、脚接地後にはトルクを除々に小さくし、所定時間後にフリーに回転できる状態にする。
遊脚の股関節４２、５０以外の関節（正常である関節）は、特定処理手順種類選択処理Ｓ１００のＳ１２６、Ｓ１２８の処理に従って、脚接地前にはモータ１８０の回転速度を動作指令値どおりとし、脚接地後にはモータ１８０のトルクを除々に小さくし、所定時間後にフリーに回転できる状態にする。
このように制御すると、ロボット１０は、遊脚が接地するまで歩行し、その後にひざまずく。よってロボット１０の転倒が防止される。なお、ロボット１０をひざまずかせず、両足立脚の状態で静止させることもできる。
【００５５】
（６）異常なのが立脚の股関節である場合；
異常である立脚の股関節４２、５０のモータ１８０と、それ以外の正常な関節のモータ１８０は、異常処理手順種類選択処理Ｓ２０のＳ５０の処理、および特定処理手順種類選択処理Ｓ１００のＳ１３２の処理に従って、トルクを除々に小さくし、所定時間後にフリーに回転できる状態にする。
異常である立脚の股関節４２、５０のモータ１８０と、それ以外の正常な関節のモータ１８０のトルクを除々に小さくし、所定時間後にフリーに回転できる状態にすると、ロボット１０は次第にしゃがみ込み、最終的にひざまずいた状態で静止する。このため、ロボット１０の転倒が防止される。なお、ロボット１０をひざまずかせず、両足立脚の状態で静止させることもできる。
【００５６】
（７）異常なのが肩関節である場合；
異常である肩関節６６、７６のモータ１８０は、異常処理手順種類選択処理Ｓ２０のＳ５４の処理に従って、モータ１８０の回転角を予め定められている角度でロックする。また、肘関節６２、７２と、脚の関節は、特定処理手順種類選択処理Ｓ１００のＳ１３６の処理に従う。すなわち、肘関節６２、７２のモータ１８０は、予め定められた回転角度でロックされる。脚の関節のモータ１８０は、動作指令値に従う。
この場合には、ロボット１０は、肩関節６６、７６と、肘関節６２、７２が予め定められた角度にロックされた状態で歩行を継続する。肩関節６６、７６と、肘関節６２、７２が予め定められた角度にロックされると、不自然に見えない状態で腕６０、７０を固定することができる。不自然に見えない腕６０、７０の状態とは、例えば、上腕６１、７１を下方に伸ばすとともに、肘関節６２、７２を軽く曲げた状態である。
なお、肩関節６６、７６と、肘関節６２、７２のモータ１８０をロックするショックによってロボット１０の姿勢が不安定になるのを防止するために、モータ１８０の回転速度を除々に遅くし、最終的にロックするようにしてもよい。
【００５７】
（８）異常なのが肘関節である場合；
異常である肘関節６２、７２のモータ１８０は、異常処理手順種類選択処理Ｓ２０のＳ５８の処理に従って、回転速度を除々に遅くし、所定時間後にロックする。また、肩関節６６、７６と、脚の関節は、特定処理手順種類選択処理Ｓ１００のＳ１４０の処理に従う。このような処理が行われると、肩関節６６、７６のモータ１８０は、予め定められた回転角度でロックされる。脚の関節のモータ１８０は、動作指令値に従う。よって、ロボット１０は、肩関節６６、７６と、肘関節６２、７２がロックされた状態で歩行を継続する。
【００５８】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時の請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【００５９】
【図１】実施例に係るロボットの斜視図。
【図２】実施例に係るロボットの関節の機械的接続状態を示す。
【図３】実施例に係るロボットの制御系のブロック図。
【図４】実施例に係る中央コントローラのブロック図。
【図５】実施例に係る関節コントローラのブロック図。
【図６】実施例に係る中央コントローラ処理のフローチャート。
【図７】実施例に係る異常処理手順種類選択処理のフローチャート。
【図８】実施例に係る異常処理手順内容と特定処理手順内容を示す表。
【図９】実施例に係る特定処理手順種類選択処理のフローチャート。
【図１０】実施例に係る関節コントローラ処理のフローチャート。
【符号の説明】
【００６０】
１０：ロボット
１９：胴体
２０：左脚
２２：左上腿
２４：左膝関節
２６：左下腿
２８：左足首関節
２９：左６軸力センサ
３０：左足先
３２：右脚
３３：右上腿
３４：右膝関節
３５：右下腿
３６：右足首関節
３８：右６軸力センサ
３９：右足先
４０：腰
４３、４４、４６：モータ
４２：左股関節
５０：右股関節
５２、５３、５４：モータ
５９：肩
６０：左腕
６１：左上腕
６２：左肘関節
６３：左前腕
６４：左掌
６６：左肩関節
７０：右腕
７１：右上腕
７２：右肘関節
７３：右前腕
７４：右掌
７６：右肩関節
８０：頭部
８２：首関節
８３、８４：モータ
１０２：中央コントローラ
１０４、１０６：通信線
１１０：音響コントローラ
１１２：スピーカ
１２０：動作指令値演算ユニット、１２０ａ：データ記憶部、１２０ｂ：異常処理ロジック記憶部
１２２：画像処理ユニット
１２３：ＣＣＤカメラ
１２４：ロボット外通信ユニット
１２５：アンテナ
１２６：ロボット内通信ユニット、１２６ａ：通信異常看視部、１２６ｂ：通信ポート
１５０：関節コントローラ
１５２：通信制御部
１５４：受信確認信号返信部
１５６：モータ制御部
１５８：モータ駆動指令生成部
１６０：通信異常看視部
１６２：モータ異常看視部
１６３：異常処理部
１６４：異常処理手順種類記憶部
１６６：異常処理手順内容記憶部
１６８、１６９：電力線
１７１：特定処理手順種類記憶部
１７２：特定処理手順内容記憶部
１７６：モータ駆動回路
【図１】
2005088166.tif 000003
【図２】
2005088166.tif 000004
【図３】
2005088166.tif 000005
【図４】
2005088166.tif 000006
【図５】
2005088166.tif 000007
【図６】
2005088166.tif 000008
【図７】
2005088166.tif 000009
【図８】
2005088166.tif 000010
【図９】
2005088166.tif 000011
【図１０】
2005088166.tif 000012