(57)【要約】【課題】周囲の環境に拘わらず、安定状態を維持することができるロボットを提供すること。【解決手段】本発明にかかるロボット１は、台車１１と、アーム１２と、を備える。台車１１は、複数の接地点で地面と接している。アーム１２は、台車１１に支持されると共に、当該台車１１に対して相対的に変位可能に連結されている。台車制御部は、複数の接地点を相互に結んで形成される多角形（支持多角形）の、アーム１２に対する相対的な向きを、台車１１を鉛直軸回りに回転させることにより制御する。台車制御部は、平面視において、ロボット１のＺＭＰの位置が、支持多角形の内側に位置するように、台車１１を回転させる。【選択図】図１
2012166315.tif 000002
【特許請求の範囲】
【請求項１】
複数の接地点で地面と接している台車を備えるロボットであって、
前記台車に支持されると共に、当該台車に対して相対的に変位可能に連結された可動部と、
前記複数の接地点を相互に結んで形成される多角形の、前記可動部に対する相対的な向きを、前記台車を鉛直軸回りに回転させることにより制御する台車制御手段と、を備え、
前記台車制御手段は、平面視において、前記ロボットのＺＭＰが、前記多角形の内側に位置するように、前記台車を回転させるロボット。
【請求項２】
前記台車制御手段は、平面視において、前記ロボットのＺＭＰと、当該ロボットのＺＭＰに最も近い前記多角形の辺と、が離れるように、前記台車を回転させる請求項１に記載のロボット。
【請求項３】
前記台車制御手段は、平面視において、前記複数の接地点のうち相互間の距離が最も遠くなる２つの接地点を結んだ線に対して、前記ロボットのＺＭＰが近づくように、前記台車を回転させる請求項１または２に記載のロボット。
【請求項４】
前記可動部の動作を制御する可動部制御手段をさらに備え、
前記台車制御手段が、前記台車を前記地面に対して回転させると共に、前記可動部制御手段が、前記台車の前記地面に対する回転方向とは反対方向に、前記台車の回転速度と略同速度で、前記可動部を前記台車に対して相対的に前記鉛直軸回りに回転させる請求項１〜３のいずれか一項に記載のロボット。
【請求項５】
前記台車制御手段は、前記可動部の前記鉛直軸回りの回転軸と、前記台車の回転軸とが一致するように、前記台車を回転させる請求項４に記載のロボット。
【請求項６】
前記可動部の軌道を算出する可動部軌道算出手段と、
前記可動部軌道算出手段が算出した前記可動部の軌道に基づいて、前記ロボットのＺＭＰの軌道を算出するＺＭＰ軌道算出部と、をさらに備え、
前記台車制御手段は、前記ロボットのＺＭＰの軌道が、前記多角形の内側に存在するように、前記台車を回転させる請求項１〜５のいずれか一項に記載のロボット。
【請求項７】
前記台車制御手段は、前記ＺＭＰの軌道が前記多角形の内側に存在するように、前記可動部が動作する前に、予め前記台車を回転させる請求項６に記載のロボット。
【請求項８】
前記台車制御手段は、前記ＺＭＰが前記多角形の内側に設けられた不動領域内に存在する場合、前記台車を静止したままにする請求項５〜７のいずれか一項に記載のロボット。
【請求項９】
前記多角形は、四角形であり、
前記台車制御手段は、前記四角形の２つの対角線の交点と、前記台車の回転軸とが一致するように、前記台車を回転させ、
前記ＺＭＰが前記不動領域外に存在する場合、前記ＺＭＰと、前記２つの対角線のうちの長い方の対角線と、を近づけるように、前記台車を回転させる請求項８に記載のロボット。
【請求項１０】
前記不動領域の面積は、前記台車の最大回転速度に比例して設定される請求項８または９に記載のロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はロボットに関し、特に複数の接地点で地面に支持されるロボットに関する。
【背景技術】
【０００２】
アームを備えるロボットは、アームの回転動作や伸縮動作によりロボットの重心が移動する。そして、ロボットは、重心が移動したことにより発生するモーメントの影響を受ける。このモーメントが大きくなると、ロボットは安定状態を維持することが困難となる。そのため、ロボットの重心位置を制御する技術が数多く提案されている。
【０００３】
例えば、特許文献１には、複数の駆動輪を備え、重心の移動を検出し、安定な倒立状態を維持できるように、駆動輪を制御する自立走行装置が開示されている。具体的には、自立走行装置に外力が加わり、自立走行装置の重心が変位した場合、自立走行装置は、駆動輪を駆動させることにより重心の変位方向に移動し、重心を安定な位置に戻す。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−９２２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の自立走行装置は、倒立状態を維持するために、重心の変位方向に並行移動する必要がある。そのため、自立走行装置の周囲に十分な移動空間が必要となる。したがって、障害物等の存在により、自立走行装置の周囲に移動空間を確保できない状況においては、自立走行装置は、重心を安定な位置に戻すことができない。つまり、自立走行装置は、周囲の環境によっては、安定状態を維持することができなくなるという問題があった。
【０００６】
本発明は、このような問題を解決するためになされたものであり、周囲の環境に拘わらず、安定状態を維持することができるロボットを提供することを目的としている。
【課題を解決するための手段】
【０００７】
本発明にかかるロボットは、複数の接地点で地面と接している台車を備えるロボットであって、前記台車に支持されると共に、当該台車に対して相対的に変位可能に連結された可動部と、前記複数の接地点を相互に結んで形成される多角形の、前記可動部に対する相対的な向きを、前記台車を鉛直軸回りに回転させることにより制御する台車制御手段と、を備え、前記台車制御手段は、平面視において、前記ロボットのＺＭＰが、前記多角形の内側に位置するように、前記台車を回転させる。これにより、可動部の変位により変動したＺＭＰを、台車を並行移動させることなく、支持多角形の内側に収めることができる。
【０００８】
また、前記台車制御手段は、平面視において、前記ロボットのＺＭＰと、当該ロボットのＺＭＰに最も近い前記多角形の辺と、が離れるように、前記台車を回転させてもよい。これにより、ＺＭＰを支持多角形の辺から離すことができ、ロボットの安定性が向上する。
【０００９】
また、前記台車制御手段は、平面視において、前記複数の接地点のうち相互間の距離が最も遠くなる２つの接地点を結んだ線に対して、前記ロボットのＺＭＰが近づくように、前記台車を回転させてもよい。これにより、ＺＭＰを支持多角形の辺から離すことができ、ロボットの安定性が向上する。
【００１０】
また、前記可動部の動作を制御する可動部制御手段をさらに備え、前記台車制御手段が、前記台車を前記地面に対して回転させると共に、前記可動部制御手段が、前記台車の前記地面に対する回転方向とは反対方向に、前記台車の回転速度と略同速度で、前記可動部を前記台車に対して相対的に前記鉛直軸回りに回転させてもよい。これにより、可動部の地面に対する相対的な向きを維持したまま、可動部に対する支持多角形の相対的な向きを変更できる。
【００１１】
また、前記台車制御手段は、前記可動部の前記鉛直軸回りの回転軸と、前記台車の回転軸とが一致するように、前記台車を回転させてもよい。これにより、可動部の地面に対する相対的な位置を維持したまま、可動部に対する支持多角形の相対的な向きを変更できる。
【００１２】
また、前記可動部の軌道を算出する可動部軌道算出手段と、前記可動部軌道算出手段が算出した前記可動部の軌道に基づいて、前記ロボットのＺＭＰの軌道を算出するＺＭＰ軌道算出部と、をさらに備え、前記台車制御手段は、前記ロボットのＺＭＰの軌道が、前記多角形の内側に存在するように、前記台車を回転させてもよい。これにより、可動部の軌道に応じて、台車を回転させることができる。
【００１３】
また、前記台車制御手段は、前記ＺＭＰの軌道が前記多角形の内側に存在するように、前記可動部が動作する前に、予め前記台車を回転させてもよい。これにより、可動部の可動中に、台車を回転させる必要がない。
【００１４】
また、前記台車制御手段は、前記ＺＭＰが前記多角形の内側に設けられた不動領域内に存在する場合、前記台車を静止したままにしてもよい。これにより、台車の無駄な動作を防止することができる。
【００１５】
また、前記多角形は、四角形であり、前記台車制御手段は、前記四角形の２つの対角線の交点と、前記台車の回転軸とが一致するように、前記台車を回転させ、前記ＺＭＰが前記不動領域外に存在する場合、前記ＺＭＰと、前記２つの対角線のうちの長い方の対角線と、を近づけるように、前記台車を回転させる請求項８に記載のロボット。これにより、より安定性の高い方向に台車を回転させることができる。
【００１６】
また、前記不動領域の面積は、前記台車の最大回転速度に比例して設定されるようにしてもよい。これにより、台車の最大回転速度が遅い場合であっても、早めに台車を回転させることができ、ＺＭＰを支持多角形の内側に収めることができる。
【発明の効果】
【００１７】
本発明により、周囲の環境に拘わらず、安定状態を維持することができるロボットを提供することができる。
【図面の簡単な説明】
【００１８】
【図１】実施の形態１にかかるロボットの側面図である。
【図２】実施の形態１にかかるロボットの背面図である。
【図３】実施の形態１にかかるロボットの底面図である。
【図４】実施の形態１にかかるロボットの平面図である。
【図５】実施の形態１にかかるロボットの制御部のブロック図である。
【図６】実施の形態１にかかるロボットの動作を示すフローチャートである。
【図７】実施の形態１にかかるロボットの回転動作を説明するための図である。（ａ）は台車が回転前の図である。（ｂ）は台車が左回りに回転した場合を示す図である。（ｃ）は台車が右回りに回転した場合を示す図である。
【図８】実施の形態１にかかる台車とアームの相対的な位置関係を説明するための図である。（ａ）は回転前の平面図である。（ｂ）は回転後の平面図である。
【図９】実施の形態１にかかるロボットの回転動作を示す背面図である。
【図１０】実施の形態２にかかるロボットのブロック図である。
【図１１】実施の形態２にかかるロボットの動作を示すフローチャートである。
【図１２】実施の形態２にかかるロボットの動作を説明するための図である。（ａ）は回転前の平面図である。（ｂ）は回転後の平面図である。
【図１３】実施の形態３にかかるロボットのブロック図である。
【図１４】実施の形態３にかかるロボットの動作を示すフローチャートである。
【図１５】実施の形態３にかかる不動領域を説明するための図である。
【図１６】実施の形態３にかかる台車の回転量の算出を説明するための図である。（ａ）は回転前の図である。（ｂ）は回転後の図である。
【図１７】実施の形態３にかかる不動領域の設定方法を説明するための図である。
【図１８】その他の実施例にかかるロボットの平面図である。
【図１９】その他の実施例にかかるロボットの平面図である。
【発明を実施するための形態】
【００１９】
＜実施の形態１＞
以下、図面を参照して本発明の実施の形態について説明する。本実施の形態にかかるロボット１の構成を図１、２に示す。図１はロボット１の側面図であり、図２はロボット１の背面図である。ロボット１は、台車１１と、アーム１２と、を備える。
【００２０】
台車１１は、台車本体１１１と、駆動輪１１２ａ、ｂと、キャスタ１１３ａ、ｂと、を有する。台車１１は、駆動輪１１２ａ、ｂ及びキャスタ１１３ａ、ｂの４つの接地点で地面に接している。
【００２１】
台車本体１１１は、円柱形状であり、アーム１２を支持している。駆動輪１１２ａ、ｂは、台車本体１１１の下面に、同軸上に配置されている。駆動輪１１２ａ、ｂの回転軸は台車本体１１１に対して相対的に固定されている。駆動輪１１２ａ、ｂは、図示しないモータにより回転駆動する。キャスタ１１３ａ、ｂは、全方位に走行可能な自在キャスタであり、モータ等の駆動手段を有さない。キャスタ１１３ａ、ｂは、台車本体１１１の移動方向に応じた方向を向いて回転する。
【００２２】
つまり、駆動輪１１２ａ、ｂが、同一方向を向いて、同一方向に回転すると、ロボット１は、駆動輪１１２ａ、ｂが向いている方向に移動する。一方、駆動輪１１２ａ、ｂが同一方向を向いて、それぞれ反対方向に回転すると、ロボット１は、鉛直軸（ヨー軸）回りに回転する。特に、駆動輪１１２ａ、ｂが同一速度で回転する場合は、その場で回転する。
【００２３】
アーム１２は、アーム部材１２１ａ〜ｃと、関節１２２ａ、ｂと、ハンド部１２３と、を有する。アーム１２は、台車１１に支持されると共に、台車１１に対して相対的に変位可能に連結されている。
【００２４】
アーム部材１２１ａは、一端が台車本体１１１に連結され、他端が関節１２２ａを介してアーム部材１２１ｂに連結されている。アーム部材１２１ｂは、一端がアーム部材１２１ａに連結され、他端が関節１２２ｂに連結されている。アーム部材１２１ｃは、一端が関節１２２ｂに連結され、他端がハンド部１２３に連結されている。
【００２５】
アーム部材１２１ａは、円柱形状であり、台車本体１１１の上面鉛直軸方向に立設されている。アーム部材１２１ａは、台車本体１１１に対して位置固定されている。そのため、台車１１が回転すると、アーム部材１２１ａも鉛直軸回りに回転する。アーム部材１２１ｂは、関節１２２ａに設けられたモータ（図示省略）が回転駆動することにより、アーム部材１２１ａの中心軸回りに回転可能である。アーム部材１２１ｂが回転すると、アーム部材１２１ｂに連結された先端部分（関節１２２ｂからハンド部１２３まで）が回転する。つまり、ロボット１は、台車１１の回転動作、または関節１２２ａに設けられたモータの回転駆動により、アーム１２の向きを変更可能である。
【００２６】
関節１２２ｂの内部にも図示しないモータが設けられており、アーム部材１２１ｂ、ｃは、関節１２２ｂの可動範囲において自在に回転可能である。なお、ハンド部１２３にも図示しないモータが設けられており、当該モータの駆動により物体の把持を実現可能な構成となっている。
【００２７】
次に、駆動輪１１２ａ、ｂ及びキャスタ１１３ａ、ｂの配置位置について詳細に説明する。図３は、ロボット１の底面図である。図３において、上側がロボット１の後方であり、下側がロボット１の前方である。駆動輪１１２ａ、ｂは、ロボット１の左右方向に並んで配置されている。上記したように、駆動輪１１２ａと駆動輪１１２ｂとは同軸Ｌ１上に配置されている。キャスタ１１３ａ、ｂは、ロボット１の前後方向に並んで配置されている。キャスタ１１３ａ、ｂは、軸Ｌ１と略直交する軸Ｌ２上に配置される。なお、キャスタ１１３ａは、台車本体１１１の外周面から若干離れて配置されている。
【００２８】
支持多角形９０は、駆動輪１１２ａ、ｂと地面との接地点３１、３２及びキャスタ１１３ａ、ｂと地面との接地点３３、３４を結んで形成される四角形である。何れかの接地点と、台車本体１１１の外周面との最短距離は、他の接地点と、台車本体１１１の外周面との最短距離よりも短い。支持多角形９０は、ＺＭＰ（Zero Moment Point）の安定領域である。ＺＭＰとは、ロボット１にかかる床反力の圧力中心点であり、ロボット１に対する床反力によるモーメントがゼロとなる床面上の点である。そのため、ロボット１の重心とＺＭＰとは異なる点である。なお、支持多角形９０の対角線は、軸Ｌ１、Ｌ２と一致する。
【００２９】
図４は、ロボット１の平面図である。図４において、上側がロボット１の後方であり、下側がロボット１の前方である。なお、アーム部材１２１ｂの先端部以降は図示を省略する。アーム部材１２１ａの中心軸（アーム１２の回転軸）は、平面視において、支持多角形９０の内側に位置する。好ましくは、図４に示すように、アーム部材１２１ａの中心軸と台車１１の回転軸１００とが一致する位置に、アーム部材１２１ａを配置する。これにより、台車１１が回転した場合に、アーム１２の地面に対する相対的な位置が変化することがない。
【００３０】
次に、ロボット１の制御部について説明する。図５は、ロボット１の制御部のブロック図である。ロボット１の制御部は、ＣＰＵ(Central Processing Unit)２１と、アーム制御部２２と、台車制御部２３と、ＺＭＰ計測部２４と、を備える。
【００３１】
ＣＰＵ２１は、実行プログラムや入力データに基づいて、制御部内の各種処理や命令を実行する中央制御装置である。アーム制御部２２は、アーム１２の関節１２２ａ、ｂのモータの駆動を制御する制御信号を出力し、アーム１２を動作させる。台車制御部２３は、台車１１の駆動輪１１２ａ、ｂのモータの駆動を制御する制御信号を出力し、駆動輪１１２ａ、ｂを回転させる。ＺＭＰ計測部２４は、例えば、ロボット重心加速度計測装置や、床反力測定装置により構成され、ロボット１のＺＭＰの位置を計測する。なお、ＺＭＰの計測技術については、公知であるため、詳細な説明は省略する。
【００３２】
続いて、本実施の形態にかかるロボット１の動作例について図６のフローチャートを参照して説明する。まず、アーム制御部２２が、アーム１２を動作させる（ステップＳ１０１）。そして、ＺＭＰ計測部２４が、ロボット１のＺＭＰの位置を計測する（ステップＳ１０２）。ＺＭＰ計測部２４は、計測したＺＭＰの位置情報（ＺＭＰの位置を特定するための情報）が変動したか否かを判定する（ステップＳ１０３）。ＺＭＰの位置が変動している場合（ステップＳ１０３：Ｙｅｓ）、ＺＭＰ計測部２４は、ＺＭＰの位置情報を台車制御部２３に出力する。
【００３３】
台車制御部２３は、ＺＭＰの位置情報に基づいて、台車１１を回転させる（ステップＳ１０４）。具体的には、台車制御部２３は、平面視において、ＺＭＰが支持多角形９０の内側に位置するように、台車１１を回転させる。
【００３４】
そして、アーム制御部２２は、アーム１２が終了したか否かを判定する（ステップＳ１０５）。アーム１２の動作が終了した場合（ステップＳ１０５：Ｙｅｓ）、ロボット１の動作は終了する。一方、アーム１２の動作が終了していない場合（ステップＳ１０５：Ｎｏ）、アーム制御部２２は、再度アーム１２を動作させる（ステップＳ１０１）。なお、アーム１２の動作後においても、ＺＭＰの位置が変動していない場合も（ステップＳ１０３：Ｎｏ）、アーム制御部２２は、再度アーム１２を動作させる（ステップＳ１０１）。
【００３５】
ここで、ＺＭＰの位置を支持多角形９０の内側に維持するための台車１１の回転方向について説明する。例えば、平面視において、ＺＭＰの最も近くに位置する支持多角形９０の辺と、ＺＭＰとの距離が大きくなるように回転させる。言い換えると、平面視において、台車１１の回転軸から支持多角形９０の各辺に引いた法線のうち、ＺＭＰとの距離が最も近い法線から、ＺＭＰが離れるように回転させる。
【００３６】
図７を用いて、上記の回転動作の一例を説明する。図７（ａ）は台車１１の回転前の図であり、図７（ｂ）は台車１１が左回りに回転した場合を示す図であり、図７（ｃ）は台車１１が右回りに回転した場合を示す図である。平面視において、ＺＭＰ２００の最も近くに位置する支持多角形の辺１０１と、ＺＭＰ２００と、の距離をｄとする。台車制御部２３は、距離ｄが大きくなる方向に台車１１を回転させる。
【００３７】
図７の例においては、台車制御部２３が、台車１１を左回りに回転させると、距離ｄが大きくなる（図７（ｂ）参照）。言い換えると、台車制御部２３は、台車１１の回転軸１００から支持多角形９０の各辺に引いた法線のうち、ＺＭＰ２００との距離が最も近い法線１０２から、ＺＭＰ２００が離れる方向（左回り）に台車１１を回転させる。この方向に回転させることにより、ＺＭＰ２００が、支持多角形９０の辺から離れる。そのため、ＺＭＰ２００が、支持多角形９０の内側から出ることを抑制できる。一方、台車１１を右回りに回転させると、距離ｄが小さくなると共に、ＺＭＰ２００が法線１０２に近づいてしまう（図７（ｃ）参照）。なお、回転量（回転角度）については、回転前の距離ｄよりも回転後の距離ｄが大きくなれば、回転量は任意の量でよい。
【００３８】
さらに、ロボット１は、支持多角形９０のアーム１２に対する相対的な向きを変更するために、台車１１を回転させると共に、アーム１２も回転させる。そのため、台車１１が回転しても、アーム１２の向きが変更しない。
【００３９】
台車１１とアーム１２との相対的な回転動作について図８を用いて説明する。図８（ａ）は、台車１１及びアーム１２の回転前におけるロボット１の平面図であり、図８（ｂ）は、台車１１及びアーム１２の回転後におけるロボット１の平面図である。図８（ａ）に示すように、台車制御部２３が、台車１１を右回りに回転させようとする場合、アーム制御部２２は、台車１１とは反対方向の左回りに、アーム１２を回転させるように関節１２２ａのモータを制御する。また、アーム制御部２２は、アーム１２の回転速度を台車１１の回転速度と略同速度とする。なお、ロボット１の背面視における台車１１及びアーム１２の回転方向を図９に示す。これにより、台車１１の回転に伴って、アーム１２の向きが変わってしまうことを防止する。つまり、アーム１２の地面に対する相対的な位置を維持したまま、台車１１のみを回転させる。その結果、支持多角形９０のアーム１２に対する相対的な向きを変更することができる（図８（ｂ）参照）。
【００４０】
なお、台車１１の重心は、台車１１の回転軸上（または回転軸から十分近い位置）にあることが好ましい。台車１１の重心が台車１１の回転軸上に位置していると、台車１１が回転してもＺＭＰの位置は変わらない（アーム１２の位置や動作によるＺＭＰの移動は考慮しないものとする）。そのため、ＺＭＰを支持多角形９０の内側に収めるために台車１１を回転させる際に、アーム１２の位置や動作によるＺＭＰの移動のみを考慮すればよく、台車１１の回転のみによるＺＭＰの移動は考慮しなくて済む。
【００４１】
以上のように、本実施の形態にかかるロボット１の構成によれば、台車制御部２３が、支持多角形９０のアーム１２に対する相対的な向きを、台車１１を鉛直軸回りに回転させることにより制御する。具体的には、台車制御部２３は、平面視において、ロボット１のＺＭＰが、支持多角形９０の内側に位置するように台車１１を回転させる。そのため、アーム１２の動作によりＺＭＰの位置が変動しても、ＺＭＰを支持多角形９０の内側に収めることができる。さらに、台車制御部２３による支持多角形９０の向きの制御は、台車１１の回転動作によって実現されるため、ロボット１の周囲に十分な空間を必要としない。その結果、ロボット１は、周囲の環境に拘わらず、安定状態を維持することができる。なお、安定状態とは、ロボットの支持多角形の中にＺＭＰが収まっている状態のことを意味する。
【００４２】
さらに、ロボット１の構成は、ロボット１が移動するために駆動輪１１２ａ、ｂに配置されたモータや、アーム１２を回転させるために関節１２２ａに配置されたモータ等、一般的なアームロボットが備える駆動機構のみを備えていればよい。つまり、ロボットの支持多角形の向きや形状を変更させるための駆動機構を別途設ける必要が無い。したがって、ロボットの製造コストを抑えることができる。
【００４３】
＜実施の形態２＞
本発明にかかる実施の形態２について説明する。本実施の形態にかかるロボット２の制御部のブロック図を図１０に示す。ロボット２の制御部は、ＣＰＵ２１と、アーム制御部２２と、台車制御部２３と、アーム軌道計画部２５と、ＺＭＰ軌道予測部２６と、を備える。なお、その他の構成についてはロボット１と同様であるので、説明を適宜省略する。
【００４４】
アーム軌道計画部２５は、アーム１２の把持対象物の位置や、周囲の障害物の位置等に基づいて、アーム１２を把持対象物に近づける軌道を計画する。なお、アーム１２の軌道の計画手法としては、ＲＲＴ（Rapidly-exploring Random Trees）等の既存の軌道計画手法を用いればよい。
【００４５】
ＺＭＰ軌道予測部２６は、アーム軌道計画部２５が計画したアーム１２の軌道情報（アーム１２の軌道を特定するための情報）に基づいて、ＺＭＰの軌道を予測する。具体的には、ＺＭＰ軌道予測部２６は、ロボット２をモデル化し、アーム１２の軌道情報に基づいて予測されるロボット２の重心の位置やモーメント、加速度から、ＺＭＰの軌道を予測する。なお、ＺＭＰ軌道予測手法は公知の技術であるため、詳細な説明を省略する。
【００４６】
続いて、本実施の形態にかかるロボット２の動作例について、図１１に示すフローチャートを参照して説明する。まず、アーム軌道計画部２５が、アーム１２の作業（例えば、ハンド部１２３が把持対象物を把持する作業等）に応じて、アーム１２の軌道を計画する（ステップＳ２０１）。アーム軌道計画部２５は、計画した軌道情報をアーム制御部２２及びＺＭＰ軌道予測部２６に出力する。
【００４７】
ＺＭＰ軌道予測部２６は、入力された軌道情報に基づいて、ＺＭＰ軌道を予測する（ステップＳ２０２）。ロボット２のＺＭＰ軌道を図１２（ａ）に示す。ロボット２のＺＭＰは、平面視において、アーム部材１２１ａの中心軸から、ロボット２の左前方に移動し、台車１１の外周面に近づくと、再度アーム部材１２１ａの中心軸に戻ってくる軌道２０１を描く。なお、ＺＭＰ軌道２０１とは、図１２（ａ）に示すように、平面視において、移動するＺＭＰの位置を所定の間隔でプロットした点の集合を意味する。
【００４８】
このとき、ＺＭＰ軌道２０１の一部が支持多角形９０の外側に出ている。そのため、図１２（ａ）に示した台車１１の姿勢のままアーム１２を動作させると、ロボット２は安定状態を維持することが困難となる。
【００４９】
したがって、台車制御部２３は、支持多角形９０の内側にＺＭＰ軌道が収まるように、アーム１２の動作前に、予め台車１１を回転させる（ステップＳ２０３）。このとき、実施の形態１と同様に、アーム制御部２２は、台車１１の回転方向とは反対方向に、台車１１の回転速度と略同速度で、アーム１２を回転させる。これにより、アーム１２に対する支持多角形９０の相対的な向きが変更すると共に、アーム１２の地面に対する相対的な位置は変更しない。台車１１及びアーム１２の回転後を示す図を図１２（ｂ）に示す。回転後においては、ＺＭＰ軌道２０１が支持多角形９０の内側に位置するため、ロボット２は安定状態の維持が可能となる。
【００５０】
ここで、ＺＭＰ軌道２０１の全てを支持多角形９０の内側に収める方法の一例について説明する。ＺＭＰ軌道２０１の全てが支持多角形９０の内側に収まる角度θを最急降下法により求めることができる。より詳細には、ＺＭＰ軌道２０１に含まれる複数のＺＭＰのうち、支持多角形９０の外側に位置するＺＭＰの数をｆｚｍｐ（θ）として、最急降下法によりｆｚｍｐ（θ）が減少する方向へθを変更していく。つまり、支持多角形９０の向きを変更することにより、図１２に示したＺＭＰ軌道２０１の各点の全てが支持多角形９０の内側に位置するθを探索する。そして、台車制御部２３は、ｆｚｍｐ（θ）が最小（図１２（ｂ）においては０個）になった場合のθだけ、台車１１を回転させる。それと共に、アーム制御部２２は、アーム１２を−θだけ回転させる。なお、ＺＭＰ軌道２０１の全てが支持多角形９０の内側に収まる角度θの算出手法は、上記の最急降下法に限られず様々な手法を用いることができる。
【００５１】
台車１１及びアーム１２の回転動作が完了すると、アーム制御部２２は、アーム軌道計画部２５から入力された軌道情報に基づいて、アーム１２に設けられた関節１２２ａ、ｂを駆動させる（ステップＳ２０４）。
【００５２】
以上のように、本実施の形態にかかるロボット２の構成によれば、ＺＭＰ軌道予測部２６が、アーム１２の軌道情報に基づいて、ＺＭＰ軌道を予測する。そして、台車制御部２３が、支持多角形９０の内側にＺＭＰ軌道が収まるように、アーム１２に対する支持多角形９０の相対的な向きを、アーム１２を動作させる前に予め変更する。そのため、アーム１２の動作後に、台車制御部２３が、ＺＭＰの移動に合わせて支持多角形９０の向きを随時変更しなくてもよい。勿論、ＺＭＰ軌道の全てが、支持多角形９０の内側に位置しているため、ロボット２は、アーム１２の動作時において安定状態を維持できる。
【００５３】
＜実施の形態３＞
本発明にかかる実施の形態３について説明する。本実施の形態にかかるロボット３の制御部のブロック図を図１３に示す。ロボット３の制御部は、ＣＰＵ２１と、アーム制御部２２と、台車制御部２３と、ＺＭＰ計測部２４と、不動領域設定部２７と、回転判定部２８と、を備える。なお、その他の構成についてはロボット１と同様であるので、説明を適宜省略する。
【００５４】
不動領域設定部２７は、支持多角形９０の内側に、不動領域を設定する。ここで、不動領域とは、ロボット３のＺＭＰの移動を許可する領域である。言い換えると、ロボット３のＺＭＰが不動領域内で移動した場合であっても、台車制御部２３は、台車１１を回転させず、静止状態を維持する。
【００５５】
回転判定部２８は、ＺＭＰ計測部２４が計測したＺＭＰの位置が、不動領域の外側であるか否かを判定する。
【００５６】
続いて、本実施の形態にかかるロボット３の動作について、図１４に示すフローチャートを参照して説明する。まず、不動領域設定部２７が、支持多角形９０の内側に不動領域を設定する（ステップＳ３０１）。不動領域設定部２７は、不動領域の領域情報（不動領域の位置を特定するための情報）を回転判定部２８に出力する。
【００５７】
ここで、図１５に不動領域の一例を示す。不動領域９１（斜線領域）は、支持多角形９０の対角線の交点（台車１１の回転軸）を中心とした四角形の領域である。つまり、支持多角形９０の対角線の交点と不動領域９１の対角線の交点とは一致する。また、不動領域９１の短い方の対角線Ｌ４は、支持多角形９０の短い方の対角線Ｌ２よりも短い。不動領域９１の長い方の対角線Ｌ３は、支持多角形９０の長い方の対角線Ｌ１と略同一の長さである。なお、不動領域９１の設定方法の詳細については後述する。
【００５８】
次に、アーム制御部２２が、アーム１２を動かす（ステップＳ３０２）。これにより、ロボット３のＺＭＰが移動する。そして、ＺＭＰ計測部２４が、ロボット３のＺＭＰの位置を計測する（ステップＳ３０３）。ＺＭＰ計測部２４は、ＺＭＰの位置情報を、台車制御部２３及び回転判定部２８に出力する。
【００５９】
回転判定部２８は、不動領域９１の領域情報とＺＭＰの位置情報とに基づいて、ＺＭＰが不動領域９１の外側に位置するか否かを判定する（ステップＳ３０４）。ＺＭＰが不動領域９１の内側（領域の線上も含む）に位置する場合（ステップＳ３０４：Ｎｏ）、アーム制御部２２は、再びアーム１２を動作させる（ステップＳ３０３）。なお、ＺＭＰの位置計測は、所定時間毎やＺＭＰが所定の距離だけ移動した毎等、定期的に行われる。
【００６０】
ＺＭＰが不動領域９１の外側に位置する場合（ステップＳ３０４：Ｙｅｓ）、台車制御部２３は、入力されたＺＭＰの位置に基づいて、台車１１の回転量θを算出する（ステップＳ３０５）。
【００６１】
台車１１の回転量θの算出について、図１６を用いて具体的に説明する。図１６（ａ）は回転前の支持多角形９０及び不動領域９１を示す図であり、図１６（ｂ）は回転後の支持多角形９０及び不動領域９１を示す図である。なお、図１６においては、ＺＭＰ２００の移動が直線的（例えば、ロボット３が坂道に進入する場合、ロボット３が一定方向から押される場合、アーム１２を一定方向に伸ばす場合等）であるとする（破線矢印方向）。
【００６２】
図１６において、直線１０５は、回転軸１００とＺＭＰ２００とを結ぶ直線である。また、直線１０６は、回転軸１００からの距離が最大となる点Ｄと回転軸１００とを結ぶ直線である。このとき、平面視における台車１１の回転軸１００を通る基準線１０４（図１６（ａ）の場合、支持多角形９０の短い方の対角線）と、直線１０５と、がなす角をθｚｍｐとする。また、基準線１０４と、直線１０６と、がなす角をθｄとする。台車１１の目標回転量をθとすると、台車制御部２３は、以下の式（１）により回転量θを算出する。
【００６３】
【数１】
2012166315.tif 000003
【００６４】
そして、台車制御部２３は、回転量θだけ台車１１を回転させる（ステップＳ３０６）。具体的には、台車制御部２３は、θの値が正の場合、台車１１を右回りに回転させ、θの値が負の場合、台車１１を左回りに回転させる。
【００６５】
図１６（ａ）に示した例においては、θｚｍｐ−θｄ＜０であるため、台車制御部２３は、台車１１を左回りに回転量θだけ回転させる。言い換えると、台車制御部２３は、平面視において、直線１０６をＺＭＰ２００に近づけるように台車１１を回転させる。直線１０６は、回転軸１００からの距離が最も離れた点Ｄを通る直線である。そのため、ＺＭＰ２００の位置が直線的に変動する場合には、ＺＭＰ２００を直線１０６上に位置させることにより、ＺＭＰ２００が支持多角形９０の辺から最も離れる。このように回転させることにより、ＺＭＰ２００が支持多角形９０の外側に出てしまうことを抑制できる。
【００６６】
アーム制御部２２は、アーム１２の動作が終了したか否かを判定する（ステップＳ３０７）。アーム１２の動作が終了している場合（ステップＳ３０７：Ｙｅｓ）、ロボット３は動作を終了する。一方、アーム１２の動作が終了していない場合（ステップＳ３０７：Ｎｏ）、アーム制御部２２は、再度アーム１２を動作させる（ステップＳ３０２）。
【００６７】
ここで、ステップＳ３０１における不動領域の設定方法について、図１７を参照して詳細に説明する。上記のように、基準線１０４と、直線１０６と、がなす角をθｄとし、基準線１０４からの回転量をθｍとする。そして、平面視における回転軸１００から支持多角形９０の辺までの距離をＲ（＝ｆ（θｍ））とする。さらに、回転軸１００から不動領域９１の辺までの距離をｒとする。なお、台車１１の最大回転速度（加速度に制限が無い場合で近似的に求める）をωとし、αは任意の係数（正の値）とする。このとき、不動領域設定部２７のｒは、極座標を用いて、以下の式（２）により算出される。
【００６８】
【数２】
2012166315.tif 000004
【００６９】
図１７において、基準線１０４からθｍだけ回転した直線を直線１０７とすると、θｄとθｍとの差が大きい程、直線１０７を直線１０６に近づけるための回転量が大きくなる。そのため、上記の式（２）においては、θｄからθｍが離れる程、ｒが小さくなるように設定される。つまり、ＺＭＰは、直線１０６から離れる程、不動領域９１の外側に出やすくなる。したがって、台車制御部２３は、ＺＭＰが直線１０６から離れている程、早めに台車１１を回転させる。その結果、ＺＭＰが支持多角形９０を出る前に、ＺＭＰに直線１０６を近づけることができる。
【００７０】
さらに、不動領域９１の面積は、台車１１の最大回転速度ωによっても変わってくる。具体的には、最大回転速度ωが遅い程、ｒが小さくなり、不動領域９１が狭くなる。つまり、最大回転速度ωが遅いと、急に台車１１を回転させることができないため、不動領域９１を狭くする。その結果、ＺＭＰの位置が変動した場合、早めに台車１１を回転させて対応することができ、ＺＭＰの位置が支持多角形９０の外側に出ることを抑制できる。
【００７１】
以上のように、本実施の形態にかかるロボット３の構成によれば、ＺＭＰ計測部２４がＺＭＰの位置を計測し、台車制御部２３が、ＺＭＰの位置に応じて、台車１１を回転させる。これにより、ＺＭＰの移動に対して、リアルタイムに対応することができる。したがって、動作中であっても、ＺＭＰを支持多角形９０の内側に収めることができる。
【００７２】
さらに、不動領域設定部２７が、支持多角形９０の内側に不動領域９１を設け、台車制御部２３は、不動領域９１の外側にＺＭＰが位置している場合のみ台車１１を回転させる。つまり、台車制御部２３は、ＺＭＰの位置の微小な変動に対しては回転制御を行わない。これにより、ＺＭＰの計測誤差等によりＺＭＰの位置が細かく変動してしまう場合であっても、台車１１はその都度回転することはなく、静止状態を維持する。したがって、台車１１の不要な回転動作を防止できる。勿論、ＺＭＰが不動領域９１から外に出た場合には台車１１を回転させるため、ロボット３の安定状態の維持も図ることができる。
【００７３】
＜その他の実施例＞
上述の実施の形態１〜３においては、いずれも支持多角形９０が四角形の場合について説明したが、支持多角形９０の形状はこれに限られるものではない。支持多角形９０の形状は、三角形であってもよい。また、図１８に示すように、五角形であってもよい。さらに、それ以上の多角形であってもよい。
【００７４】
さらに、台車制御部２３は、台車本体１１１が円柱形状の場合、当該円柱の中心軸と、台車１１の回転軸と、を一致させるように、台車１１を回転させてもよい。これにより、台車１１は、前後左右に全くずれることなく回転動作を実現することができる。その結果、台車本体１１１の幅（円柱の直径）のスペースさえあれば、ロボットの安定状態の維持を図ることができる。
【００７５】
加えて、台車本体１１１の形状も円柱形状に限られない。例えば、図２０に示すように、四角柱形状であってもよい。また、台車１１の駆動システムは、各種全方位台車であってもよい。
【００７６】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更及び組み合わせをすることが可能である。例えば、アーム１２の位置や構成は、上述した実施の形態のものに限られない。また、可動部はアームに限られず、頭等であってもよい。
【符号の説明】
【００７７】
１〜３  ロボット
１１  台車
１２  アーム
２１  ＣＰＵ
２２  アーム制御部
２３  台車制御部
２４  ＺＭＰ計測部
２５  アーム軌道計画部
２６  ＺＭＰ軌道予測部
２７  不動領域設定部
２８  回転判定部
９０  支持多角形
９１  不動領域
１１１  台車本体
１１２  駆動輪
１１３  キャスタ
１２１  アーム部材
１２２  関節
１２３  ハンド部
２００  ＺＭＰ
２０１  ＺＭＰ軌道
【図１】
2012166315.tif 000005
【図２】
2012166315.tif 000006
【図３】
2012166315.tif 000007
【図４】
2012166315.tif 000008
【図５】
2012166315.tif 000009
【図６】
2012166315.tif 000010
【図７】
2012166315.tif 000011
【図８】
2012166315.tif 000012
【図９】
2012166315.tif 000013
【図１０】
2012166315.tif 000014
【図１１】
2012166315.tif 000015
【図１２】
2012166315.tif 000016
【図１３】
2012166315.tif 000017
【図１４】
2012166315.tif 000018
【図１５】
2012166315.tif 000019
【図１６】
2012166315.tif 000020
【図１７】
2012166315.tif 000021
【図１８】
2012166315.tif 000022
【図１９】
2012166315.tif 000023