(57)【要約】【課題】  ロボット及びその制御方法を提供する。【解決手段】  ロボットは、動作全般を制御する第１制御部の障害を考慮してこれを補助するための第２制御部をさらに備え、ロボットの障害発生時に第２制御部がロボットを制御し、あらかじめ決定された安全を考慮した動作を取るようにする。特に、安全を考慮した動作を比較的簡単な動作に制限し、この安全を考慮した動作を制御するための第２制御部を、演算能力の比較的低い安価の演算装置とすることによって第２制御部の追加にかかるコストを節減する。【選択図】      図３
2010058261.tif 000002
【特許請求の範囲】
【請求項１】
ロボットを制御し、与えられた作業命令を実行するようにする第１制御部と、
前記ロボットの障害発生時に、前記ロボットを制御し、あらかじめ定められた安全を考慮した動作を取るようにする第２制御部と、
を含むロボット。
【請求項２】
前記ロボットの障害は、前記第１制御部の障害を含む、請求項１に記載のロボット。
【請求項３】
前記ロボットが正常に動作する時に、前記第１制御部が前記第２制御部にモニター用信号を伝送し、
前記ロボットが正常に動作しない時に、前記第１制御部が前記第２制御部に前記モニター用信号の伝送を中断する、請求項１に記載のロボット。
【請求項４】
前記安全を考慮した動作は、前記ロボットが現在位置に停止することを含む、請求項１に記載のロボット。
【請求項５】
前記安全を考慮した動作は、前記ロボットが現在位置に停止してバランスを保つことを含む、請求項１に記載のロボット。
【請求項６】
第１制御部及び第２制御部を含むロボットの制御方法であって、
前記第１制御部を介して前記ロボットを制御し、与えられた作業命令を実行するようにし、
前記ロボットの障害発生時に前記第２制御部を介して前記ロボットを制御し、あらかじめ定められた安全を考慮した動作を取るようにする、ロボットの制御方法。
【請求項７】
前記ロボットの障害は、前記第１制御部の障害を含む、請求項６に記載のロボットの制御方法。
【請求項８】
前記ロボットが正常に動作する時に、前記第１制御部が前記第２制御部にモニター用信号を伝送し、
前記ロボットが正常に動作しない時に、前記第１制御部が前記第２制御部への前記モニター用信号の伝送を中断する、請求項６に記載のロボットの制御方法。
【請求項９】
前記安全を考慮した動作は、前記ロボットが現在位置に停止することを含む、請求項６に記載のロボットの制御方法。
【請求項１０】
前記安全を考慮した動作は、前記ロボットが現在位置に停止してバランスを保つことを含む、請求項６に記載のロボットの制御方法。
【請求項１１】
位置基盤の第１制御モードでロボットを制御し、与えられた作業命令を実行するようにする第１制御部と、
前記ロボットの障害発生時に、トルク基盤の第２制御モードで前記ロボットを制御し、あらかじめ定められた安全を考慮した動作を取るようにする第２制御部と、
を含むロボット。
【請求項１２】
前記第１制御モードは、ＺＭＰ（Ｚｅｒｏ  Ｍｏｍｅｎｔ  Ｐｏｉｎｔ）基盤制御モードである、請求項１１に記載のロボット。
【請求項１３】
前記第２制御モードは、ＦＳＭ（Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）基盤制御モードである、請求項１１に記載のロボット。
【請求項１４】
前記ロボットの障害は、前記第１制御部の障害を含む、請求項１１に記載のロボット。
【請求項１５】
前記第１制御部は、前記第１制御モードと前記第２制御モードのそれぞれで前記ロボットを制御し、
前記第１制御部は、前記作業命令に相応する作業の種類によって前記第１制御モードと前記第２制御モードの少なくとも一つの制御モードで前記ロボットを制御し、前記作業命令を実行するようにする、請求項１１に記載のロボット。
【請求項１６】
ロボット障害の制御方法であって、
障害が存在しない時に正常モードで入力命令を実行し、動作を取るようにロボットを制御し、
前記ロボットの障害発生時に、障害モードで、あらかじめ定められた安全を考慮した動作を取るように前記ロボットを制御する事を含む、ロボット障害の制御方法。
【請求項１７】
正常モードでロボットを制御することは更に、障害が存在しない事を示す信号を伝送する事を含む、請求項１６に記載の方法。
【請求項１８】
前記信号の存在をモニターし、
前記モニターリングに基づいて、前記ロボットの障害が発生したかどうかを決定する事を更に含む、請求項１７に記載の方法。
【請求項１９】
あらかじめ定められた安全を考慮した動作とは、現在位置に停止してバランスを保つ前記ロボットの動作である、請求項１６に記載の方法。
【請求項２０】
前記障害モードで前記ロボットを制御することは、正常モードで前記ロボットを制御するよりも少ないコンピュータ処理能力を要する、請求項１６に記載の方法。
【請求項２１】
前記障害が発生した事を決定する際にユーザーに前記障害を知らせるため警告を表示する事を更に含む、請求項１８に記載の方法。
【請求項２２】
正常モードでロボットを制御することは更に、
前記ロボットの位置及びバランスを決定し、
前記ロボットの位置／トルクデータ及び姿勢データを分析し、
前記決定及び分析に基づいて前記ロボットの歩行及び把持動作を命令する事を含む、請求項１６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット及びその制御方法に係り、特に、ロボットの動作全般を制御する制御部とこれを補助するための他の制御部とを備えるロボット及びその制御方法に関する。
【背景技術】
【０００２】
ロボットは、人間に似た動作を行う機械装置のことを指す。初期のロボットは、工場の生産作業において自動化／無人化などを達成するために使用されたマニピュレーターや搬送ロボットなどの産業用ロボットであった。最近では、人間の２足歩行を摸倣する移動ロボットの研究開発が進行されている。２足歩行は、４足または６足歩行に比べて不安定で、姿勢制御や歩行制御が相対的に難しいという短所があるが、凸凹な地面（険路）または不連続的な歩行面（例えば、階段）により柔軟に対応できる長所を持っている。このような２足移動ロボットの外に、３つ以上の脚を持つ多足移動ロボットと、脚の代わりにホイールを使って移動するロボットのような様々な形態の移動手段を持つロボットが存在している。
【０００３】
２足移動ロボットの歩行は、次のような過程を含む。２足移動ロボットでは、まず、歩行方向、歩行幅、歩行速度などをあらかじめ設定し、この設定に対応すると共にロボットのバランスが保てるような各脚の歩行パターンを生成し、その歩行パターンによって各脚の歩行軌跡を計算する。また、２足移動ロボットでは、計算された歩行軌跡の逆運動学計算を通じて各脚の関節の位置を計算し、各関節のモーターの現在位置と目標位置に基づいて各関節のモーターの目標制御値を計算する。
【０００４】
２足歩行は、それぞれの脚が計算された歩行軌跡に追従するようにするサーボ制御（ｓｅｒｖｏ  ｃｏｎｔｒｏｌ）によって遂げられる。したがって、歩行時に各脚の位置が歩行パターンによる歩行軌跡に正確に追従するかを検出し、各脚が歩行軌跡から外れるとモーターのトルクを調節し、各脚が歩行軌跡に正確に追従するように制御する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ロボットは、ロボットの動作全般を制御する制御部を備える。ロボットが与えられた作業命令を実行する途中に当該制御部にハードウェア的またはソフトウェア的な障害が生じると、ロボットの正常な制御が不可能になることにつながることができる。正常に制御されないロボットは、非正常的な動作を取り、周辺の構造物を破壊したり周辺の人間に被害を与えたりする恐れがある。
【０００６】
本発明は上記の点に鑑みてなされたもので、その目的は、ロボットの動作全般を制御する第１制御部の障害を考慮してこれを補助するための第２制御部をさらに備え、第１制御部の障害発生時に第２制御部がロボットを制御し、あらかじめ定められた安全を考慮した動作を取るようにすることにある。特に、安全を考慮した動作を比較的簡単な動作に制限し、この安全を考慮した制御を行う第２制御部を、演算能力の比較的低い安価の演算装置とすることによって、第２制御部の追加にかかるコストを節減することにある。
【課題を解決するための手段】
【０００７】
本発明によるロボットは、ロボットを制御し、与えられた作業命令を実行するようにする第１制御部と、ロボットの障害発生時にロボットを制御し、あらかじめ定められた安全を考慮した動作を取るようにする第２制御部と、を含む。
【０００８】
また、上記のロボットの障害は、第１制御部の障害を含む。
【０００９】
また、上記ロボットが正常に動作する時に、第１制御部は第２制御部にモニター用信号を伝送し；ロボットが正常に動作しない時に、第１制御部は第２制御部へのモニター用信号の伝送を中断する。
【００１０】
また、上記の安全を考慮した動作は、ロボットが現在位置に停止することを含む。
【００１１】
また、上記の安全を考慮した動作は、ロボットが現在位置に停止し、バランスを保つことを含む。
【００１２】
本発明によるロボットの制御方法は、第１制御部と第２制御部を含むロボットの制御方法であって、第１制御部によってロボットを制御し、与えられた作業命令を実行するようにし；ロボットの障害発生時に第２制御部によってロボットを制御し、あらかじめ定められた安全を考慮した動作を取るようにする。
【００１３】
また、上記のロボットの障害は、第１制御部の障害を含む。
【００１４】
また、上記のロボットが正常に動作する時に、第１制御部は第２制御部にモニター用信号を伝送し；ロボットが正常に動作しない時に、第１制御部は第２制御部へのモニター用信号の伝送を中断する。
【００１５】
また、上記の安全を考慮した動作は、ロボットが現在位置に停止することを含む。
【００１６】
また、上記の安全を考慮した動作は、ロボットが現在位置に停止し、バランスを保つことを含む。
【００１７】
本発明による他のロボットは、位置基盤の第１制御モードでロボットを制御し、与えられた作業命令を実行するようにする第１制御部と、ロボットの障害発生時にトルク基盤の第２制御モードでロボットを制御し、あらかじめ定められた安全を考慮した動作を取るようにする第２制御部と、を含む。
【００１８】
また、上記の第１制御モードは、ＺＭＰ基盤制御モードである。
【００１９】
また、上記の第２制御モードは、ＦＳＭ基盤制御モードである。
【００２０】
また、上記のロボットの障害は、第１制御部の障害を含む。
【００２１】
また、上記の第１制御部は、第１制御モードと第２制御モードのそれぞれでロボットを制御し；第１制御部は、作業命令に相応する作業の種類によって第１制御モード及び第２制御モードの少なくとも一つの制御モードでロボットを制御し、作業命令を実行するようにする。
【発明の効果】
【００２２】
本発明によれば、ロボットの動作全般を制御する第１制御部の障害を考慮してこれを補助するための第２制御部をさらに備えたため、第１制御部の障害発生時に第２制御部がロボットを制御し、あらかじめ定められた安全を考慮した動作を取るようにすることが可能になる。なお、安全を考慮した動作を比較的簡単な動作に制限し、この安全を考慮した制御を行う第２制御部を、演算能力の比較的低い安価の演算装置としたため、第２制御部の追加にかかるコストを節減することが可能になる。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施例によるロボットを示す図である。
【図２】図１のロボットの関節構造を示す図である。
【図３】本発明の第１実施例によるロボットの制御系統を示す図である。
【図４】図３のロボットの制御系統における一般的な動作状態を示す図である。
【図５】図３のロボットの制御系統における安全を考慮した動作状態を示す図である。
【図６】本発明の第１実施例によるロボットの制御方法を示すフローチャートである。
【図７】本発明の第２実施例によるロボットの制御系統を示す図である。
【図８】図７のロボットの制御系統における一般的な動作状態を示す図である。
【図９】図７のロボットの制御系統における安全を考慮した動作状態を示す図である。
【図１０】本発明の第２実施例によるロボットの制御方法を示すフローチャートである。
【発明を実施するための形態】
【００２４】
以下、本発明の好ましい実施例を、図１乃至図１０を参照しつつ説明する。
【００２５】
まず、図１は、本発明の一実施例による移動ロボットを示す図である。図１に示すように、移動ロボット１００の胴体１０２の上部には首１２０を介して頭１０４が連結される。胴体１０２の上部両側には肩１１４Ｌ，１１４Ｒを介して２つの腕１０６Ｌ，１０６Ｒが連結される。２つの腕１０６Ｌ，１０６Ｒのそれぞれの末端には、手１０８Ｌ，１０８Ｒが連結される。胴体１０２の下部両側には２つの脚１１０Ｌ，１１０Ｒが連結される。２つの脚１１０Ｌ，１１０Ｒのそれぞれの末端には足１１２Ｌ，１１２Ｒが連結される。頭１０４と２つの腕１０６Ｌ，１０６Ｒ、２つの脚１１０Ｌ，１１０Ｒ、２つの手１０８Ｌ，１０８Ｒ及び２つの足１１２Ｌ，１１２Ｒのそれぞれは、関節によって一定水準の自由度を有する。胴体１０２の内部は、カバー１１６によって保護される。胴体１０２は、胸１０２ａと腰１０２ｂとに分けられる。参照符号で“Ｒ”と“Ｌ”はそれぞれ、移動ロボット１００の右側（ｒｉｇｈｔ）と左側（ｌｅｆｔ）を表す。
【００２６】
図２は、図１における移動ロボットの関節構造を示す図である。図２に示すように、移動ロボット１００の２つの脚１１０Ｒ，１１０Ｌはそれぞれ、大腿リンク２１と下腿リンク２２、足１１２Ｌ，１１２Ｒを備える。大腿リンク２１は、大腿関節部２１０を介して胴体１０２に連結される。大腿リンク２１と下腿リンク２２は、膝関節部２２０を介して互いに連結され、下腿リンク２２と足１１２Ｌ，１１２Ｒは、足首関節部２３０を介して互いに連結される。
【００２７】
大腿関節部２１０は、３自由度を有する。具体的に、大腿関節部２１０は、ヨー方向（ｙａｗ、Ｚ軸周囲の回転）の回転関節２１１と、ピッチ方向（ｐｉｔｃｈ、Ｙ軸周囲の回転）の回転関節２１２、ロール方向（ｒｏｌｌ、Ｘ軸周囲の回転）の回転関節２１３を有する。
【００２８】
膝関節部２２０は、ピッチ方向の回転関節２２１を含み、１自由度を有する。足首関節部２３０は、ピッチ方向の回転関節２３１とロール方向の回転関節２３２を含み、２自由度を有する。
【００２９】
このように、２つの脚１１０Ｒ，１１０Ｌのそれぞれには、３つの関節部２１０，２２０，２３０に対して６個の回転関節が設けられるので、２つの脚１１０Ｒ，１１０Ｌには合計１２個の回転関節が設けられる。
【００３０】
一方、２つの脚１１０Ｒ，１１０Ｌにおいて足１１２Ｌ，１１２Ｒと足首関節部２３０との間には、多軸Ｆ／Ｔセンサー（Ｍｕｌｔｉ−Ａｘｉｓ  Ｆｏｒｃｅ  ａｎｄ  Ｔｏｒｑｕｅ  Ｓｅｎｓｏｒ）２４がそれぞれ取り付けられる。多軸Ｆ／Ｔセンサー２４は、足１１２Ｌ，１１２Ｒから伝達される力の３方向成分Ｆｘ，Ｆｙ，Ｆｚとモーメントの３方向成分Ｍｘ，Ｍｙ，Ｍｚを測定することによって、足１１２Ｌ，１１２Ｒの着地したか否か、及び、足１１２Ｌ，１１２Ｒに加えられる荷重を検出する。
【００３１】
頭１０４には、移動ロボット１００の目の役割を果たすカメラ４１と、耳の役割を果たすマイクロホン４２とが取り付けられる。頭１０４は、首関節部２８０を介して胴体１０２と連結される。首関節部２８０は、ヨー方向の回転関節２８１、ピッチ方向の回転関節２８２及びロール方向の回転関節２８３を含み、３自由度を有することができる。首関節部２８０のそれぞれの回転関節２８１，２８２，２８３には、頭回転用モーター（図示せず）が連結される。
【００３２】
肩関節アセンブリー２５０Ｒ，２５０Ｌは、胴体１０２の両側に装着され、２つの腕１０６Ｒ，１０６Ｌを胴体１０２に連結させる。２つの腕１０６Ｒ，１０６Ｌは、上腕リンク３１、下腕リンク３２及び手１０８Ｒ，１０８Ｌを備える。上腕リンク３１は、肩関節アセンブリー２５０を介して胴体１０２に連結される。上腕リンク３１と下腕リンク３２は、ヒジ関節部２６０を介して互いに連結され、下腕リンク３２と手１０８Ｒ１０８Ｌは、手首の関節部２７０を介して互いに連結される。ヒジ関節部２６０は、ピッチ方向の回転関節２６１と、ヨー方向の回転関節２６２を含み、２自由度を有し、手首の関節部２７０は、ピッチ方向の回転関節２７１とロール方向の回転関節２７２を含み、２自由度を有することができる。
【００３３】
胴体１０２には、ポーズセンサー（ｐｏｓｅ  ｓｅｎｓｏｒ）１４が取り付けられる。ポーズセンサー１４は、鉛直軸に対する胴体１０２の傾斜角度とその角速度などを検出し、姿勢情報を生成する。このポーズセンサー１４は、胴体１０２だけでなく頭１０４に取り付けても良い。また、胴体１０２を構成する胸１０２ａと腰１０２ｂとの間には、胸１０２ａが腰１０２ｂに対して回転できるようにヨー方向の回転関節１５が設置される。
【００３４】
図示しないが、移動ロボット１００には、各回転関節を駆動するモーターが設置される。移動ロボット１００の動作全般を制御する制御部は、これらのモーターを適切に制御することによって移動ロボット１００の多様な動作を実現することができる。
【００３５】
図３は、本発明の第１実施例による移動ロボットの制御系統を示す図である。同図に示すように、本発明の第１実施例による移動ロボット１００は、第１制御部３０２と第２制御部３０４とを備える。第１制御部３０２は、移動ロボット１００の動作全般を制御し、与えられた作業命令を実行させる。第２制御部３０４は、第１制御部３０２に障害が生じると移動ロボット１００を制御し、あらかじめ定められた安全を考慮した動作を取らせる。
【００３６】
第１制御部３０２の入力側には、ビジョンシステム３２０とポーズセンサー１４、位置／トルク検出部３１２が通信可能に連結される。第１制御部３０２の出力側には、移動ロボット１００の各関節を動かせるモーター３０８と、このモーター３０８を駆動するモーター駆動部３１０が通信可能に連結される。モーター３０８とモーター駆動部３１０は、関節の数と構造に応じて複数個が備えられることができる。第２制御部３０４の入力側には、ポーズセンサー１４と位置／トルク検出部３１２が通信可能に連結される。第２制御部３０４の出力側には、移動ロボット１００の各関節を動かせるモーター３０８と、このモーター３０８を駆動するモーター駆動部３１０が通信可能に連結される。
【００３７】
第１制御部３０２は、ハートビート信号（Ｈｅａｒｔｂｅａｔ  Ｓｉｇｎａｌ）３１８を発生させ、第２制御部３０４に伝送する。このハートビート信号３１８は、第１制御部３０２が移動ロボット１００の動作全般を正常に制御できる間に周期的に発生することによって、第１制御部３０２が正常に動作していることを知らせるためのモニター用信号である。もし、第１制御部３０２がハードウェア的またはソフトウェア的な障害によって移動ロボット１００を正常に制御できない状況になると、ハートビート信号３１８の発生が中断する。ハートビート信号３１８の発生をモニタリングする第２制御部３０４は、ハートビート信号３１８の発生が中断すると、第１制御部３０２による正常な制御が不可能であると判断し、移動ロボット１００があらかじめ定められた安全を考慮した動作を取るように制御する。
【００３８】
位置／トルク検出部３１２は、モーター３０８の位置とトルクを検出し、位置／トルク情報３１４を第１制御部３０２及び第２制御部３０４に提供する。ポーズセンサー１４は、移動ロボット１００の姿勢情報３１６を発生させる。第１制御部３０２及び第２制御部３０４は、モーター３０８の位置／トルク情報３１４と移動ロボット１００の姿勢情報３１６を用いて歩行パターン生成し、この歩行パターンに基づいて移動ロボット１００の歩行を制御する。
【００３９】
第１制御部３０２は、本発明の実施例による移動ロボット１００の動作全般を制御する。すなわち、第１制御部３０２は、ビジョンシステム３２０から提供される映像情報３２２を用いて移動ロボット１００自分の位置確認及び周辺地図（ｍａｐ）の作成を行い、位置／トルク検出部３１２から提供される移動ロボット１００の各モーター３０８の位置／トルク情報３１４とポーズセンサー１４から提供される移動ロボット１００の姿勢情報３１６を分析し、移動ロボット１００の歩行及び把持動作などを制御する。位置／トルク情報３１４と姿勢情報３１６を用いた移動ロボット１００の動作制御はもとより、ビジョンシステム３２０から得られる周辺映像の分析を用いた移動ロボット１００の位置確認及び周辺地図の作成などは、処理すべきデータの量が極めてぼう大である他、このような膨大な量のデータは移動ロボット１００が動作する間に実時間で処理されなければならない。したがって、第１制御部３０２は、高速処理能力を持つ演算装置としなければならない。演算装置が高速処理能力を持つためには、特化した設計と進歩した技術を基盤としなければならず、相対的に低速の処理能力を持つ他の演算装置に比べて非常に高価となってしまう。
【００４０】
第２制御部３０４は、第１制御部３０２がハードウェア的またはソフトウェア的な障害によって移動ロボット１００を正常に制御できない時に、移動ロボット１００が与えられた作業命令の実行を中断し、あらかじめ定められた安全を考慮した動作を取るように移動ロボット１００を制御する。ここで、安全を考慮した動作の一例には、移動ロボット１００が移動中の場合に現在位置で停止し、バランスを保ちながら直立状態を維持することがある。他の例には、現在位置で停止し、バランスを保ちながらそのまま座ることがある。さらに他の例には、移動ロボット１００の充電のための別の充電装置が設置されている場合、移動ロボット１００がその充電装置まで移動し充電可能となるように電気的に連結することがある。それ以外にも、移動ロボット１００の構造と形態に応じて、移動ロボット１００周辺の人間や構造物などの安全を害しない様々な姿勢を取るようにすることが好ましい。このため、第２制御部３０４は、安全を考慮した動作を取るようにするために、i）現在位置に停止する、ii）バランスを保ちつつその場に座ったり直立状態を維持するようにする、という比較的低い水準の制御のみを行う。したがって、第２制御部３０４は、第１制御部３０２に比べてデータ処理量が相対的に極めて少ないので、処理速度の相対的に低い比較的安価の演算装置とする。
【００４１】
このように、第２制御部３０４は、第１制御部３０２への障害発生時のような緊急状況で臨時に使われるバックアップ演算装置である。第１制御部３０２は高価の高性能演算装置とするのに対し、第２制御部３０４は相対的に安価の低い水準の演算装置とするので、第１制御部３０２と同じ性能の高価の演算装置をバックアップ演算装置とする場合に比べて、相対的にはるかに安価で安定したバックアップ演算装置を備えることができ、価格競争力において極めて有利となる。なお、比較的演算能力の低い単純な水準の演算装置を用いると、設計が容易になり、メンテナンスコストも大幅に節減される。
【００４２】
図４は、図３に示す移動ロボットの制御系統における一般的な動作状態を示す図である。図４に示すように、第１制御部３０２が正常に動作し、ハートビート信号３１８が周期的に発生する間には、位置／トルク検出部３１２からの位置／トルク情報３１４、ポーズセンサー１４からの姿勢情報３１６及びビジョンシステム３２０からの映像情報３２２が第１制御部３０２に入力され、第１制御部３０２はこれらの情報に基づき、移動ロボット１００が与えられた作業命令を実行させる制御信号４０２を発生させる。この時、第２制御部３０４は、第１制御部３０２からハートビート信号３１８が正常に発生するか否かを監視するだけで、移動ロボット１００の制御には関与しない。
【００４３】
図５は、図３に示す移動ロボットの制御系統における、安全を考慮した動作状態を示す図である。図５に示すように、第１制御部３０２に障害が生じ、正常にハートビート信号３１８が発生しないと、第２制御部３０４は、位置／トルク検出部３１２からの位置／トルク情報３１４及びポーズセンサー１４からの姿勢情報３１６に基づき、移動ロボット１００があらかじめ定められた安全を考慮した動作を取らせる制御信号５０４を発生させる。この時、第２制御部３０４より発生する制御信号５０４は、移動ロボット１００が行っている動作を中断し、安全を考慮した動作を取らせるものに制限される。したがって、第２制御部３０４は、移動ロボット１００が安全を考慮した動作を取らせるような水準以上の高いレベルの演算能力は必要としない。もし、あらかじめ定められた安全を考慮した動作が、極めて単純で比較的容易にできる動作であるとしたら、第２制御部３０４は、位置／トルク情報３１４と姿勢情報３１６を用いずにあらかじめプログラムされているまま制御信号を発生させ、移動ロボット１００が安全を考慮した動作を取るように制御しても良い。この場合、第２制御部３０４の演算能力は極めて低い水準であっても良く、したがって、第２制御部３０４にかかるコストはより低くなる。
【００４４】
図６は、本発明の第１実施例による移動ロボットの制御方法を示すフローチャートである。図６に示すように、第１制御部３０２が正常に動作する間には、周期的にハートビート信号３１８を発生させる（動作６０２）。第２制御部３０４は、第１制御部３０２からのハートビート信号３１８が正常に発生するか否かを監視する（動作６０４）。
【００４５】
第１制御部３０２は、外部から作業命令を受信し、当該作業を行う（動作６０６）。この過程で、第１制御部３０２に障害が生じ、ハートビート信号３１８の発生が中断すると（動作６０８のはい）、第２制御部３０４がこれを認知し、移動ロボット１００の制御主体を第１制御部３０２から第２制御部３０４自身に切り換える（動作６１０）。第１制御部３０２を制御主体から排除する方法には、位置／トルク情報３１４、姿勢情報３１６、映像情報３２２が第１制御部３０２に入力されないように遮断する方法と、第１制御部３０２より発生する制御信号４０２がモーター駆動部３１０に伝達されないように遮断する方法、第１制御部３０２への電源供給を遮断する方法などがある。
【００４６】
第１制御部３０２から第２制御部３０４に制御主体が切り換わると、制御権限を持つ第２制御部３０４は、移動ロボット１００が安全を考慮したあらかじめ設定された動作を取るように制御する（動作６１２）。移動ロボット１００が安全を考慮した動作を取ると（動作６１４のはい）、移動ロボット１００の使用者や管理者、移動ロボット１００の周辺にいる人々に、移動ロボット１００の第１制御部３０２に障害が生じた事実を知らせるために警告表示をする（動作６１６）。警告表示の方法には、ランプの点灯、ディスプレイ装置へのテキスト出力、スピーカーからの警告音発生などがある。
【００４７】
図７は、本発明の第２実施例による移動ロボットの制御系統を示す図である。図７に示すように、本発明の第２実施例による移動ロボット１００は、第１制御部７０２と第２制御部７０４とを備える。第１制御部７０２は、移動ロボット１００の動作全般を制御し、与えられた作業命令を実行させる。第２制御部７０４は、第１制御部７０２に障害が生じると移動ロボット１００を制御し、あらかじめ定められた安全を考慮した動作を取らせる。
【００４８】
第１制御部７０２の入力側には、ビジョンシステム３２０、ポーズセンサー１４、位置／トルク検出部３１２、ＦＳＭデータベース（Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ  Ｄａｔａｂａｓｅ：状態情報保存部）７２２が通信可能に連結される。第１制御部７０２の出力側には、移動ロボット１００の各関節を動かせるモーター３０８と、このモーター３０８を駆動するためのモーター駆動部３１０が通信可能に連結される。モーター３０８とモーター駆動部３１０は、関節の数と構造に応じて複数個が備えられることができる。第２制御部７０４の入力側には、ポーズセンサー１４、位置／トルク検出部３１２、ＦＳＭデータベース（状態情報保存部）７２２が通信可能に連結される。第２制御部７０４の出力側には、移動ロボット１００の各関節を動かせるモーター３０８と、このモーター３０８を駆動するためのモーター駆動部３１０が通信可能に連結される。
【００４９】
本発明の第２実施例で、第１制御部７０２は、与えられた作業命令と作業環境に基づいてＦＳＭ基盤制御またはＺＭＰ（Ｚｅｒｏ  Ｍｏｍｅｎｔ  Ｐｏｉｎｔ）基盤制御のいずれかを選択して移動ロボット１００の動作を制御する。ＦＳＭ基盤制御はトルク基盤制御であり、ＺＭＰ基盤制御は位置基盤制御である。ＦＳＭ基盤制御は、移動ロボット１００の各動作の状態（ここで、状態（Ｓｔａｔｅ）とは、Ｆｉｎｉｔｅ  Ｓｔａｔｅ  ＭａｃｈｉｎｅにおけるＳｔａｔｅのことを意味する）をあらかじめ定義しておき、歩行時に各動作の状態（Ｓｔａｔｅ）を参照して適切に歩行するようにする方式である。ＺＭＰ基盤制御は、歩行方向、歩行幅、歩行速度などをあらかじめ設定しておき、これらの設定に対応する各脚の歩行パターンを生成し、この歩行パターンによって各脚の歩行軌跡を計算する。また、移動ロボット１００が２足歩行する場合には、計算された歩行軌跡の逆運動学計算を通じて各脚の関節の位置を計算し、各関節のモーターの現在位置と目標位置に基づいて各関節のモーターの目標制御値を計算する。また、それぞれの脚が、計算された歩行軌跡に追従させるサーボ制御（ｓｅｒｖｏ  ｃｏｎｔｒｏｌ）によって具現される。したがって、歩行時に各脚の位置が歩行パターンによる歩行軌跡に正確に追従するかを検出し、各脚が歩行軌跡から外れるとモーターのトルクを調節し、各脚が歩行軌跡に正確に追従するように制御する。
【００５０】
第１制御部７０２は、平地での動作（歩行）または比較的単純な形態の動作（歩行）制御のためにＦＳＭ基盤制御を選択する。また、第１制御部７０２は、階段のような非平地や障害物などによって歩幅などが指定されなければならない場合、または扉を開いたり物を移したりするなどの正確な全身動作制御が必要な時、ＺＭＰ基盤制御を選択する。第２制御部７０４は、第１制御部７０２への障害発生時に、移動ロボット１００が安全を考慮した動作を取らせるためにＦＳＭ基盤制御を行う。ＦＳＭ基盤制御は、ＺＭＰ基盤制御に比べて演算量が相対的に遥かに少なく、あらかじめプログラムされたシーケンスに追従すればいいので、演算能力の低い安価の演算装置を第２制御部７０４とすることができる。
【００５１】
第１制御部７０２は、ハートビート信号（Ｈｅａｒｔｂｅａｔ  Ｓｉｇｎａｌ）３１８を発生させ、第２制御部７０４に伝送する。このハートビート信号３１８は、第１制御部７０２が移動ロボット１００の動作全般を正常に制御できる間に周期的に発生することによって、第１制御部７０２が正常に動作していることを知らせるためのモニター用信号である。もし、第１制御部７０２がハードウェア的またはソフトウェア的な障害によって移動ロボット１００を正常に制御できない状況になると、このハートビート信号３１８の発生が中断する。ハートビート信号３１８の発生をモニタリングする第２制御部７０４は、ハートビート信号３１８の発生が中断すると、第１制御部７０２による正常な制御が不可能であると判断し、移動ロボット１００があらかじめ定められた安全を考慮した動作を取るように制御する。
【００５２】
位置／トルク検出部３１２は、モーター３０８の位置とトルクを検出し、位置／トルク情報３１４を第１制御部７０２及び第２制御部７０４に提供する。ポーズセンサー１４は、移動ロボット１００の姿勢情報３１６を発生させる。ＦＳＭデータベース７２２には、あらかじめ定義された移動ロボット１００の各動作の状態（ｓｔａｔｅ）、特に安全を考慮した動作の状態情報が保存される。第１制御部７０２及び第２制御部７０４は、モーター３０８の位置／トルク情報３１４と移動ロボット１００の姿勢情報３１６を用いて歩行パターンを生成し、この歩行パターンによって移動ロボット１００の歩行を制御する。
【００５３】
図８は、図７に示す移動ロボットの制御系統における一般的な動作状態を示す図である。図８に示すように、第１制御部７０２が正常に動作してハートビート信号３１８が周期的に発生する間には、位置／トルク検出部３１２からの位置／トルク情報３１４、ポーズセンサー１４からの姿勢情報３１６、ビジョンシステム３２０からの映像情報３２２が第１制御部７０２に入力され、第１制御部７０２は、これらの情報に基づいて移動ロボット１００が与えられた作業命令を実行するようにする制御信号８０２を発生させる。この制御信号８０２はＺＭＰ基盤制御信号またはＦＳＭ基盤制御信号である。この時、第２制御部７０４は、第１制御部７０２からハートビート信号３１８が正常に発生するかを監視するだけで、移動ロボット１００の制御には関与しない。
【００５４】
図９は、図７に示す移動ロボットの制御系統における、安全を考慮した動作状態を示す図である。図９に示すように、第１制御部７０２に障害が発生し、正常にハートビート信号３１８が発生しないと、第２制御部７０４はＦＳＭ基盤制御を通じて移動ロボット１００があらかじめ定められた安全を考慮した動作を取らせる制御信号９０４を発生させる。必要な場合、第２制御部７０４は、位置／トルク検出部３１２からの位置／トルク情報３１４とポーズセンサー１４からの姿勢情報３１６を参照しても良い。第２制御部７０４から発生する制御信号９０４は、移動ロボット１００が行っている動作を中断し、安全を考慮した動作を取らせるものに制限される。したがって、第２制御部７０４は、移動ロボット１００が安全を考慮した動作を取らせるような水準以上の高いレベルの演算能力は必要としない。特に、ＦＳＭ基盤制御は、高性能の演算能力を必要としないので、第２制御部７０４の演算能力は低い水準であっても良く、この場合、第２制御部７０４にかかるコストはより低くなる。
【００５５】
図１０は、本発明の第２実施例による移動ロボットの制御方法を示すフローチャートである。図１０に示すように、第１制御部７０２が正常に動作する間には周期的にハートビート信号３１８を発生させる（動作１００２）。第２制御部７０４は、第１制御部７０２からのハートビート信号３１８が正常に発生するかを監視する（動作１００４）。
【００５６】
第１制御部７０２は、外部から作業命令を受信し、ＺＭＰ基盤制御を通じて当該作業を行う（動作１００６）。必要によって第１制御部７０２もＦＳＭ基盤制御を通じて作業命令を実行するようにしても良い。この過程で、第１制御部７０２に障害が生じ、ハートビート信号３１８の発生が中断すると（動作１００８のはい）、第２制御部７０４がこれを認知し、移動ロボット１００の制御主体を第１制御部７０２から第２制御部７０４自身に切り換え、制御モードもＦＳＭ基盤制御モードに切り換える（動作１０１０）。第１制御部７０２を制御主体から排除する方法には、位置／トルク情報３１４、姿勢情報３１６、映像情報３２２が第１制御部７０２に入力されないように遮断する方法、第１制御部７０２から発生する制御信号８０２がモーター駆動部３１０に伝達されないように遮断する方法、第１制御部７０２への電源供給を遮断する方法などがある。
【００５７】
第１制御部７０２から第２制御部７０４に制御主体が切り換わると、制御権限を持つ第２制御部７０４は、ＦＳＭ基盤制御を通じて移動ロボット１００が安全を考慮したあらかじめ設定された動作を取るように制御する（動作１０１２）。移動ロボット１００が安全を考慮した動作を取ると（動作１０１４のはい）、移動ロボット１００の使用者や管理者、移動ロボット１００周辺にいる人々に、移動ロボット１００の第１制御部７０２に障害が生じた事実を知らせるために警告表示をする（動作１０１６）。警告表示の方法には、ランプの点灯、ディスプレイ装置へのテキスト出力、スピーカーからの警告音発生などがある。
【符号の説明】
【００５８】
１４    ポーズセンサー
４１      カメラ
４２      マイクロホン
１００    移動ロボット
１０２    胴体
１０２ａ  胸
１０２ｂ  腰
１０４    頭
１０６Ｌ、１０６Ｒ  腕
１０８Ｌ、１０８Ｒ  手
１１０Ｌ，１１０Ｒ  脚
１１２Ｌ，１１２Ｒ  足
１１４Ｌ、１１４Ｒ  肩
１１６    カバー
１２０    首
３０２，７０２    第１制御部
３０４，７０４    第２制御部
３０８    モーター
３１０    モーター駆動部
３１２    位置／トルク検出部
３１４    位置／トルク情報
３１６    姿勢情報
３１８    ハートビート信号
３２０    ビジョンシステム
３２２    映像情報
４０２、５０４、８０２、９０４  制御信号
【図１】
2010058261.tif 000003
【図２】
2010058261.tif 000004
【図３】
2010058261.tif 000005
【図４】
2010058261.tif 000006
【図５】
2010058261.tif 000007
【図６】
2010058261.tif 000008
【図７】
2010058261.tif 000009
【図８】
2010058261.tif 000010
【図９】
2010058261.tif 000011
【図１０】
2010058261.tif 000012