(57)【要約】【課題】自己の現姿勢を導出するための高度な演算を不要とすることによって、低価格化と高速化とを同時に図ることができるロボットの制御装置およびロボットの制御方法を提供する。【解決手段】少なくとも２脚による脚式移動が可能な多関節形のロボットの各部に搭載されて当該ロボットの姿勢を検出する姿勢センサの検出結果に基づいて、当該ロボットの各関節を駆動制御するロボットの制御において、理想的な基準床面において当該ロボットを制御したときの姿勢センサによる検出結果を参照用の基準データとして記憶しておき、現時点で検出された姿勢センサの検出結果および基準データに基づいて、次の姿勢の目標を設定し、現時点の検出結果と目標とを比較して、これらの差分を相殺するための制御データを導出して、導出された制御データに基づいて、当該ロボットの各関節を駆動制御する。【選択図】  図１４
2005007528.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２脚による脚式移動が可能な多関節形のロボットに搭載され、当該ロボットの姿勢を検出する姿勢センサと、
理想的な基準床面において当該ロボットを制御したときの前記姿勢センサによる検出結果を参照用の基準データとして記憶する基準データ記憶手段と、
現時点で検出された前記姿勢センサの検出結果および前記基準データに基づいて、次の姿勢検出の目標を設定する目標設定手段と、
現時点における前記姿勢センサの検出結果と設定された前記目標とを比較して、これらの差分を相殺するための制御データを生成する制御データ生成手段と、
生成された前記制御データに基づいて、当該ロボットの各関節を駆動制御する関節駆動制御手段と、
を備えたことを特徴とするロボットの制御装置。
【請求項２】
少なくとも２脚による脚式移動が可能な多関節形のロボットに搭載されて当該ロボットの姿勢を検出する姿勢センサの検出結果に基づいて、当該ロボットの各関節を駆動制御するロボットの制御方法であって、
理想的な基準床面において当該ロボットを制御したときの前記姿勢センサによる検出結果を参照用の基準データとして記憶する基準データ記憶工程と、
現時点で検出された前記姿勢センサの検出結果および前記基準データに基づいて、次の姿勢検出の目標を設定する目標設定工程と、
現時点における前記姿勢センサの検出結果と設定された前記目標とを比較して、これらの差分を相殺するための制御データを生成する制御データ生成工程と、
生成された前記制御データに基づいて、当該ロボットの各関節を駆動制御する関節駆動制御工程と、
を備えたことを特徴とするロボットの制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば人間形（ヒューマノイド）の脚式歩行（２足歩行）ロボット等の多関節形のロボットの制御装置およびロボットの制御方法に関する。
【０００２】
【従来の技術】
この種のロボットには、静止または歩行中の自己の姿勢を検出する姿勢センサが各部に組み込まれていて、従来の制御においては、各部の姿勢センサからの検出結果（加速度等）に基づいて、そのロボット自身の傾斜等を、ロボット工学的な見地からのモーメントやベクトル等による高度な演算により求め、その現姿勢に基づいて、安定静止あるいは安定歩行するための次の姿勢の目標（値）を定め、その目標に合うように各部関節等の動作を制御するようにしている（例えば特許文献１や特許文献２参照）。
【０００３】
【特許文献１】
特開平５−３０５５７９号公報（図３〜８、段落［００１５］〜［００２４］等）
【特許文献２】
特開２００１−２７７１５９号公報（図１３、段落［０１４４］〜［０１５３］等）
【０００４】
【発明が解決しようとする課題】
しかし、上述した各部の姿勢センサからの加速度等の検出結果の値（検出値）には、例えば床面の凸凹や傾斜等の環境に依存する成分と、理想環境の下において制御したときにも生じる例えば自己の重量等による重力加速度などのロボット自身に起因する成分と、が含まれるので、ロボット自身の傾斜等を求めるためには、環境に依存する成分と自己に起因する成分とを分離・解析して、後者の自己の成分のみを抽出する必要があり、実際には困難である。また、仮に近似的に自己に起因する成分を求め得るとしても、それに基づいて現姿勢を求め且つ実時間（リアルタイム）で制御を行うためには、上述したように複雑かつ高度な演算を高速処理できる高価なプロセッサ等が必要になり、低価格化の要請には対応できない。
【０００５】
本発明は、自己の現姿勢を導出するための高度な演算を不要とすることによって、低価格化と高速化とを同時に図ることができるロボットの制御装置およびロボットの制御方法を提供することを目的とする。
【０００６】
【課題を解決するための手段】
本発明の制御装置は、少なくとも２脚による脚式移動が可能な多関節形のロボットに搭載され、当該ロボットの姿勢を検出する姿勢センサと、理想的な基準床面において当該ロボットを制御したときの前記姿勢センサによる検出結果を参照用の基準データとして記憶する基準データ記憶手段と、現時点で検出された前記姿勢センサの検出結果および前記基準データに基づいて、次の姿勢検出の目標を設定する目標設定手段と、現時点における前記姿勢センサの検出結果と設定された前記目標とを比較して、これらの差分を相殺するための制御データを生成する制御データ生成手段と、生成された前記制御データに基づいて、当該ロボットの各関節を駆動制御する関節駆動制御手段と、を備えたことを特徴とする。
【０００７】
また、本発明の制御方法は、少なくとも２脚による脚式移動が可能な多関節形のロボットに搭載されて当該ロボットの姿勢を検出する姿勢センサの検出結果に基づいて、当該ロボットの各関節を駆動制御するロボットの制御方法であって、理想的な基準床面において当該ロボットを制御したときの前記姿勢センサによる検出結果を参照用の基準データとして記憶する基準データ記憶工程と、現時点で検出された前記姿勢センサの検出結果および前記基準データに基づいて、次の姿勢検出の目標を設定する目標設定工程と、現時点における前記姿勢センサの検出結果と設定された前記目標とを比較して、これらの差分を相殺するための制御データを生成する制御データ生成工程と、生成された前記制御データに基づいて、当該ロボットの各関節を駆動制御する関節駆動制御工程と、を備えたことを特徴とする。
【０００８】
この制御装置および制御方法では、理想的な基準床面における姿勢センサによる検出結果を、参照用の基準データとして記憶しておき、現時点で検出された姿勢センサの検出結果（現状値）と基準データに基づいて、次の姿勢の目標（目標値）を設定する。このため、例えばその時点の現状値に近い値を示す基準データの次の値を目標値とするなど、基準データを参照して目標値を簡易に設定することが可能になる。また、現状値と目標値とを比較して、これらの差分を相殺するための制御データを生成し、その制御データに基づいてロボットの各関節を駆動制御するので、次の時点では、現状値を基準データの値に近づけることができ、その後は、基準データが示す制御（すなわち理想的な制御）に近い制御が可能になる。また、現状値と目標値との差分を相殺するように生成すればよいので、制御データが容易且つ迅速に生成できる。そして、この場合、理想的な検出結果である基準データの値と現時点の検出結果との、いわば検出結果同士の差分に基づいて制御できるので、自己の現姿勢を導出する必要がなく、このため、姿勢センサの検出結果を環境に依存する成分と自己に起因する成分とに分離・解析する必要もなく、ロボット工学的な高度な演算を要することもないので、目標設定や制御データ導出等の各種手段として、比較的低機能ではあるが低価格のプロセッサ等を採用しても、比較的高速で処理でき、これにより、低価格化と高速化とを同時に図ることができる。
【０００９】
【発明の実施の形態】
以下、本発明の一実施形態に係る脚式歩行ロボットについて、添付図面を参照しながら詳細に説明する。この脚式歩行ロボットは、２足歩行の小型ロボット（身長３０ｃｍ程度）であり、歩行動作において、いわゆる静的歩行を行うように設計されている。
【００１０】
図１に示すように、この脚式歩行ロボット（以下単に「ロボット」）１は、頭部Ｈ１、胴部１０、一対の腕部（右腕部Ｒ６１、左腕部Ｌ６１）および一対の支持脚部（以下単に「脚部」：右脚部Ｒ１１、左脚部Ｌ１１）を備えている。また、図２に示すように、制御系の中枢となるメインコントローラ２０を胴部１０に内蔵し、頭部Ｈ１、右腕部Ｒ６１および左腕部Ｌ６１の各制御部、並びに、右脚部Ｒ１１および左脚部Ｌ１１の各制御部（右脚制御部Ｒ２１、左脚制御部Ｌ２１）と、ＵＳＢ等のバス（シリアルバス）Ｈ１Ｂ並びに２１Ｂを介して、接続されている。このロボット１は、ロボット中心点Ｐを考慮しながら、一対の脚部である右脚部Ｒ１１と左脚部Ｌ１１を交互に踏み出し動作して２足歩行するものである。このため、説明の都合上、以下では、胴部１０および脚部１１（右脚部Ｒ１１、左脚部Ｌ１１）を中心に説明し、頭部Ｈ１、右腕部Ｒ６１および左腕部Ｌ６１についての説明は適宜省略する。
【００１１】
なお、上述の「ロボット中心点」は、ＺＭＰ（Ｚｅｒｏ  Ｍｏｍｅｎｔ  Ｐｏｉｎｔ  ：床圧力によるモーメントがゼロになる床面上の点）の意味を含むものとする。また、参照符号の「Ｒ〜」および「Ｌ〜」は、それぞれ「右」および「左」を示すが、以下、左右共通の事項に関しては、これらを代表して「Ｒ」や「Ｌ」を省略して説明する。例えば上記の一対の脚部は、個別には「右脚部Ｒ１１」や「左脚部Ｌ１１」であるが、左右共通の事項に関しては、「脚部１１」のように説明する。また、姿勢の３自由度の軸を、図４（ａ）に示すように、ロール軸（Ｒ軸）、ピッチ軸（Ｐ軸）、ヨー軸（Ｙ軸）とする。また、同図（ｂ）のように実際の構造体（機構構成要素）の形態によって複数の軸を兼ねる様子を示すこともあるが、本実施形態では、実際の形態（構造）に拘わらず、同図（ｃ）に示すように、各軸の要素（機構構成要素）を単一の軸要素によって示し、参照符号を「〜Ｒ」（ロール軸）、「〜Ｐ」（ピッチ軸）、「〜Ｙ」（ヨー軸）とする。
【００１２】
まず、図１〜図３に示すように、脚部１１は、股関節部（股関節駆動ユニット）１２と、大腿部１３と、膝関節部（膝関節駆動ユニット）１４と、頸部１５と、足首関節部（足首関節駆動ユニット）１６と、足部（足平部、足部本体）１７と、を備えている。
【００１３】
股関節部１２は、図１〜図３および図５に示すように、股関節ヨー軸１２Ｙと、股関節ロール軸１２Ｒと、股関節ピッチ軸１２Ｐと、これらの駆動と各回転角の検出を行う股関節駆動・検出部３２と、これらの制御のための股関節制御部４２と、動力を大腿部１３に伝達する図外の動力伝達機構（以下同様に「動力伝達機構」は図示省略）と、を備えている。
【００１４】
股関節駆動・検出部３２は、股関節ヨー軸１２Ｙを中心に大腿部１３を正逆回動（動作）させるためにその回転角（ヨー角）を制御可能に駆動する股関節ヨー角モータ２ＹＭと、駆動された実際のヨー角を検出する股関節ヨー角センサ（例えばポテンショメータ）２ＹＳと、同様に、股関節ロール軸１２Ｒの回転角（ロール角）を制御可能に駆動する股関節ロール角モータ２ＲＭと、そのロール角を検出する股関節ロール角センサ２ＲＳと、股関節ピッチ軸１２Ｐの回転角（ピッチ角）を制御可能に駆動する股関節ピッチ角モータ２ＰＭと、そのピッチ角を検出する股関節ピッチ角センサ２ＰＳと、を備えている。
【００１５】
股関節制御部４２は、図外のＣＰＵ、ＲＯＭ、ＲＡＭ等をそれぞれ有するサーボコントローラ２ＹＢ、２ＲＢおよび２ＰＢと、同様の構成のセンシングコントローラ２ＹＣ、２ＲＣおよび２ＰＣと、を備え、バス２１Ｂを介して胴部１０のメインコントローラ２０と接続され、脚制御部２１の一部として、メインコントローラ２０と連携（連動）しつつ、股関節部１２内各部を制御している。ここで、各サーボコントローラ２ＹＢ、２ＲＢおよび２ＰＢは、それぞれメインコントローラ２０からの駆動制御データに基づいて、各モータ２ＹＭ、２ＲＭおよび２ＰＭの駆動を制御し、各センシングコントローラ２ＹＣ、２ＲＣおよび２ＰＣは、各センサ２ＹＳ、２ＲＳおよび２ＰＳからの検出信号を、それぞれメインコントローラ２０に検出制御データとして出力（報告）する。
【００１６】
膝関節部１４は、図１〜図３および図６に示すように、膝関節ピッチ軸１４Ｐと、その駆動と回転角の検出を行う膝関節駆動・検出部３４と、これらの制御のための膝関節制御部４４と、動力を頸部１５に伝達する動力伝達機構と、を備えている。膝関節駆動・検出部３４は、膝関節ピッチ軸１４Ｐを中心に脛部１５を正逆回動（動作）させるためのピッチ角を制御可能に駆動する膝関節ピッチ角モータ４ＰＭと、そのピッチ角を検出する膝関節ピッチ角センサ４ＰＳと、を備えている。
【００１７】
膝関節制御部４４は、上述の股関節制御部４２と同様に、バス２１Ｂを介してメインコントローラ２０と接続され、メインコントローラ２０からの駆動制御データに基づいてモータ４ＰＭの駆動を制御する上述同様のサーボコントローラ４ＰＢと、同様にセンサ４ＰＳからの検出信号をメインコントローラ２０に検出制御データとして出力するセンシングコントローラ４ＰＣと、を備え、脚制御部２１の一部として、メインコントローラ２０と連携して、膝関節部１４内各部を制御している。
【００１８】
足首関節部１６は、図１〜図３および図７に示すように、足首関節ピッチ軸１６Ｐと、足首関節ロール軸１６Ｒと、これらの駆動と各回転角の検出を行う足首関節駆動・検出部３６と、これらの制御のための足首関節制御部４６と、動力を足平部１７に伝達する動力伝達機構と、を備えている。足首関節駆動・検出部３６は、足首関節ピッチ軸１６Ｐを中心に足平部１７を正逆回動（動作）させるためのピッチ角を制御可能に駆動する足首関節ピッチ角モータ６ＰＭと、そのピッチ角を検出する足首関節ピッチ角センサ６ＰＳと、同様に、足首関節ロール軸１６Ｒのロール角を制御可能に駆動する足首関節ロール角モータ６ＲＭと、そのロール角を検出する足首関節ロール角センサ６ＲＳと、を備えている。
【００１９】
足首関節制御部４６は、上述の股関節制御部４２等と同様に、バス２１Ｂを介してメインコントローラ２０と接続され、メインコントローラ２０からの駆動制御データに基づいて各モータ６ＰＭおよび６ＲＭの駆動を制御する上述同様のサーボコントローラ６ＰＢおよび６ＲＢと、同様に各センサ６ＰＳおよび６ＲＳからの検出信号をメインコントローラ２０に検出制御データとして出力するセンシングコントローラ６ＰＣおよび６ＲＣと、を備え、脚制御部２１の一部として、メインコントローラ２０と連携して、足首関節部１６内各部を制御している。
【００２０】
足平部１７は、図１〜図３および図８〜図１１に示すように、足平部１７の下側に固定され下面の平面形状に対応して略方形に形成された足裏プレート１７Ｓと、足裏プレート１７Ｓの状態を検出する足裏検出部（足裏センサ部）３７と、検出結果に基づく制御を行うための足裏制御部４７と、を備えている。
【００２１】
足裏検出部３７は、それぞれ気体センサから成りそれぞれ進行方向（歩行方向：図示の太い矢印（←）の方向）に向かって足裏プレート１７Ｓの左前（ＬＦ）、右前（ＲＦ）、左後（ＬＢ）および右後（ＲＢ）の接地圧力を検出する４つの圧力センサ７ＬＦＳ、７ＲＦＳ、７ＬＢＳおよび７ＲＢＳ（以下、各センサを区別無く総称するときには「圧力センサ７Ｓ」という）と、４つの各圧力センサ７Ｓの収容ケースを兼ねる箱状のセンサホルダ５１と、を備えている。そして、４つの圧力センサ７Ｓは、相互に離間するように、平面視略方形に形成された足裏検出部３７の４隅にそれぞれ配設されている。
【００２２】
なお、実施形態における４つの（気体）圧力センサ７Ｓは、足裏プレート１７Ｓの中心線に対し左右対称であって、相互の中心軸を結ぶ線が長方形を為すように配設されているが、これを、台形を為すように配設してもよい。また、これに代えて、足裏プレート１７Ｓの中心線に対し左右対称であって、相互の中心軸を結ぶ線が２等辺三角形を為すように配設した、３つの圧力センサ７Ｓで構成してもよい。
【００２３】
センサホルダ５１は、ケース状のホルダ本体５２と、ホルダ本体５２の上側に設けたトッププレート５３と、ホルダ本体５１の下側に設けたボトムプレート５４とから成り、ホルダ本体５２には、４つの圧力センサ７Ｓを収容する４つのセンサ収容部５２ａが形成されている。トッププレート５３の下面には、４つのセンサ収容部５２ａから外れるように４つのボス部５３ａが突出しており、このボス部５３ａに、足裏検出部３７を固定するためのねじが上側から螺合するようになっている。また、ボトムプレート５４には、４つの圧力センサ７Ｓの検出子７４が貫通する４つのガイド孔（貫通孔）５４ａが形成されている。
【００２４】
各圧力センサ７Ｓは、センサ本体７１と、センサ本体７１の下側に連なる圧力室７２と、圧力室７２の下部開放端を気密に封止する封止膜体７３と、封止膜体７３に下側から当接してこれを押圧変形させる検出子７４とを有している。また、封止膜体７３の上側に位置して、変形した封止膜体７３を基準姿勢に復帰付勢する復帰ばね（コイルばね）５５ａおよび当て板５５ｂから成る復帰部材５５を有している。
【００２５】
検出子７４の圧力（足着反力）が作用すると、検出子７４が上動し、復帰部材５５のばね力に抗して封止膜体７３を押圧変形させる。この変形により、圧力室７２が収縮し内部圧力が高まりこの圧力をセンサ本体７１が検出するようになっている。この状態から、検出子７４に加わる圧力が減少すると、復帰ばね５５ａにより当て板５５ｂが押され、封止膜体７３および検出子７４が元の基準姿勢に復帰（復元）する。
【００２６】
センサ本体７１は、シリコン７５ａをダイアフラム構造に加工し、これにピエゾ抵抗等に基づくゲージセンサ７５ｂを作り込んだチップ７５を、圧力室７２に連なるガラス基板のパッケージ７６に収容したものである。そして、連通孔７６ａを形成したパッケージ７６の突出部分７６ｂを、圧力室７２に連なる開口に嵌合（気密に接着）して、圧力室７２に臨ませるようにしている。
【００２７】
圧力室７２は、主要部が上記のセンサ収容部５２ａで構成されており、天面に形成した下向きの上環状溝５５ｃに上記の復帰ばね５５ａが収容されている。また、円形に形成された当て板５５ｂの上面には、復帰ばね５５ａを受ける上向きの下環状溝５５ｄが形成されている。すなわち、復帰ばね５５ａは、上環状溝５５ｃを受けとして下環状溝５５ｄを介して当て板５５ｂを下方に付勢している。封止膜体７３は、シリコンゴム等で構成された円形の膜体であり、圧力室７２の下部開放端を閉塞するようにホルダ本体５２の下面に気密に接着されている。
【００２８】
検出子７４は、封止膜体７３に接触する円形板部７４ａと、円形板部７４ａから下方に延びる軸部７４ｂとから成り、断面略「Ｔ」字状に形成されている。軸部７４ｂは、上記のボトムプレート５４の貫通孔５４ａに対し上下方向にスライド自在に係合しており、貫通孔５４ａの縁部に相当するボトムプレート５４の上面が検出子７４の下動端位置を位置規制している。すなわち、封止膜体７３が水平な基準姿勢に復帰した状態で、検出子７４がボトムプレート５４の上面に当接するようになっている。軸部７４ｂの下端は半球状に形成され、この下端で検出子７４が足裏プレート１７Ｓに接着或いはねじ止め固定されている（図示のものは「ねじ止め」）。
【００２９】
足裏プレート１７Ｓは、厚手の樹脂板または金属板で構成されており、図示では省略したが、その足裏面となる下面には滑止め用のシートが貼着され、或いは滑止め用の加工が施されている。そして、足裏プレート１７Ｓの下面の４隅には円形の浅溝１７Ｓａが形成され、この各浅溝１７Ｓａの中心位置に、各圧力センサ７Ｓの検出子７４に螺合する固定ねじ１７Ｓｂが設けられている。すなわち、足裏プレート１７Ｓは、４つの圧力センサ７Ｓを相互に連結するように設けられている。
【００３０】
このように、足平部１７の裏面に設けた４つの圧力センサ７Ｓを足裏プレート１７Ｓで連結するようにしているため、足着の際の床面からの反力（接地圧力）を４つの圧力センサ７Ｓの圧力値の総和として検出することができるとともに、４つの圧力センサ７Ｓの圧力値を比較することにより、体躯の傾きなども検出することができる。また、両方の足平部１７の各４つの圧力センサ７Ｓの検出結果から、水平面内における重心位置（ロボット中心点）Ｐも検出できる。
【００３１】
なお、本実施形態では、足裏検出部３７と足裏プレート１７Ｓとを分けて構成しているが、一体化して足裏プレート１７Ｓを省略することも可能である。かかる場合には、上記検出子７４の下端を平板状とし、各検出子７４の接地面積を大きくすることが好ましい。さらに、実施形態では、圧力センサ７Ｓとして気体センサを用いたが、足裏反力（接地圧力）を検出可能なものであればセンサの種類は限定されるものではない。
【００３２】
次に、図１〜図３に示すように、腕部６１（右腕部Ｒ６１、左腕部Ｌ６１）は、胴部１０に対し腕部６１をロール方向に回動させるための肩関節ロール軸６１Ｒと、ヨー方向に回動させるための肩関節ヨー軸６１Ｙと、これらを駆動する図外の（肩関節ロール駆動機構と肩関節ヨー駆動機構と各回転角のセンサ等を有する）腕駆動・検出部と、バスＨ１Ｂを介して接続された胴部１０のメインコントローラ２０と連携して腕部６１内各部を制御するための図外の腕制御部と、腕部６１内各部を作動させるための動力を伝達する図外の動力伝達機構と、を備えている。
【００３３】
また、頭部Ｈ１は、人間が頭部に有する目、鼻、口等の各機能を擬似的に実現するための光（画像）や音（振動）などについての各種センサや各種ドライバ（図示省略）と、バスＨ１Ｂを介して接続されたメインコントローラ２０と連携して頭部Ｈ１内各部を制御するための図外の頭制御部と、頭部Ｈ１内各部（目、口等）に動力を伝達する図外の動力伝達機構と、を備えている。
【００３４】
また、胴部１０には、メインコントローラ２０と、図外の電源ユニットと、胴部１０内各部に動力を伝達する図外の動力伝達機構と、を備えている。
【００３５】
メインコントローラ２０は、ＣＰＵ２１０と、ＲＯＭ２２０と、ＲＡＭ２３０と、周辺制御回路（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｎｔｒｏｌｌｅｒ  ：以下「Ｐ−ＣＯＮ」）２４０と、を備え、互いに内部バス２０Ｂにより接続されている。ＲＯＭ２２０は、ＣＰＵ２１０で処理する制御プログラムを記憶する制御プログラム領域２２１と、各部制御の基礎（基準）となる仕様データや基準データ等の制御データを記憶する制御データ領域２２２を有している。
【００３６】
ＲＡＭ２３０は、制御テーブル領域２３１と、情報テーブル領域２３２と、を有し、各種処理の作業領域として使用される。制御テーブル領域２３１には、ロボット１内各制御部のサーボコントローラ（例えば図５で前述のサーボコントローラＲ２ＹＢ等：以下、各サーボコントローラＲ〜Ｂ、Ｌ〜Ｂなどを区別無く総称するときには「サーボコントローラＳＢＣ」という）に送出（指令）する駆動制御データの元になる制御テーブルが記憶される。また、情報テーブル領域２３２には、ロボット１内各制御部のセンシングコントローラ（例えば図５で前述のセンシングコントローラＲ２ＹＣ等：以下、各センシングコントローラＲ〜Ｃ、Ｌ〜Ｃなどを区別無く総称するときには「センシングコントローラＳＳＣ」という）から入力（報告）された検出制御データに基づく現在状態の情報テーブル（現状テーブル：リードテーブル：現状データ）や、それに基づいて（演算やテーブル参照によって）導出された次の目標状態の情報テーブル（目標テーブル：ムーブテーブル：目標データ）、などの情報テーブルが記憶される。
【００３７】
Ｐ−ＣＯＮ２４０には、ＣＰＵ２１０の機能を補うとともにロボット１内各制御部とのインタフェース（バスインタフェース）を行うための論理回路や種々の計時を行うタイマ等の機能回路などが、ゲートアレイやカスタムＬＳＩなどにより構成されて組み込まれている。このため、Ｐ−ＣＯＮ２４０は、各部のセンシングコントローラＳＳＣからの検出制御データをそのままあるいは加工して内部バス２０Ｂに取り込むとともに、ＣＰＵ２１０と連動して、ＣＰＵ２１０等から内部バス２０Ｂに出力された駆動制御データを、そのままあるいは加工して、各部のサーボコントローラＳＢＣに出力する。
【００３８】
そして、ＣＰＵ２１０は、上記の構成により、ＲＯＭ２２０内の制御プログラムや制御データに基づいて、Ｐ−ＣＯＮ２４０を介して各部からの検出制御データを入力し、それらが示す現状値から目標値やそのための制御値を導出して、ＲＡＭ２３０内の制御テーブルや情報テーブルを書き換えるなど、各種データ等を処理し、Ｐ−ＣＯＮ２４０を介して各部に駆動制御データを出力することにより、ロボット１全体を制御している。
【００３９】
次に、ロボット１の制御全体の処理フローについて、図１２を参照して説明する。なお、本処理および以下で説明する各種処理の処理フローは、ソフトウェア（プログラム：ファームウェアを含む）のみばかりでなく、その一部または全部をハードウェア（論理回路、機能回路等）によって実行するものも含むものとする。
【００４０】
同図に示すように、電源オン等により処理が開始すると、まず、適宜所定の初期設定を行い（Ｓ１）、次に、各種規定の優先順位によって規制された各種割込を許可し（Ｓ２）、何らかの割込が発生するまでは、そのままの状態を維持し（Ｓ３：Ｎｏ）、何らかの割込が発生すると（Ｓ３：Ｙｅｓ）、それぞれの割込処理に移行して（Ｓ４）、その割込処理が終了すると、再度、その状態を維持する（Ｓ３：Ｎｏ）。
【００４１】
例えば図１３に示すように、現在「静止」中のロボット１に対し、頭部Ｈ１に対する「前進」等の発声による音声認識やリモコン操作あるいは所定のスイッチ等の操作により、（前進）歩行が指示されると、（前進）歩行指示割込が発生して、（前進）歩行処理（Ｓ１０）が起動され、（前進）歩行プログラムに移行して（Ｓ１１）、処理（Ｓ１０）を終了する（Ｓ１２）。
【００４２】
この場合、例えばそれまでの静止処理等の制御プログラム等に代えて、歩行処理用の制御プログラム（歩行プログラム）をロードしても良いし、歩行プログラムのアドレスを指定するように（例えば歩行モードのセット（オン）等により）処理モードの切替等を行っても良い。これらにより、全体として各種割込に対するロボット１の処理（対応）が、「歩行」に適合したものとなる。また、この歩行プログラム実行中の状態遷移（制御モードあるいは制御対象期間の遷移）は、同図（ｂ）に示すようになる（詳細は後述）。
【００４３】
なお、上記の前進歩行処理の例のほか、後進歩行処理その他、起動可能な種々の処理の例を考え得る。例えばレーザ光等により目前の障害物等を検出（監視）可能なセンサなどを頭部Ｈ１の目の機能等として備えておき、障害物検出による割込発生によって静止処理（静止プログラム）を起動したり、その後、その静止中に周囲（左右等）を確認して、その確認検出結果（による割込）に応じて、方向転換処理を起動したり、その方向転換処理後には、それを確認後、再度、歩行処理を起動するなど、起動可能な制御プログラムの種類やその起動方法としては、種々のものが考慮でき、且つ実現可能である。
【００４４】
また、ロボット１では、例えば図１４に示すように、クロック信号の分周信号などに基づく制御用の同期トリガ（ロボット１のように小型の場合、１ｍｓ程度以下の周期が望ましい）により、周期制御割込が発生すると、状態検出・目標設定処理（Ｓ２０）が起動され、まず、全センサ検出結果を取得するため、全てのセンシングコントローラＳＳＣから検出制御データを入力し、ＲＡＭ２３０内の前述の現状テーブルを書き換え（Ｓ２１）、書き換えられた現状テーブルと、そのときの制御プログラム（例えば上述の歩行プログラム）に基づいて、演算やテーブル参照によって次の目標値を導出して、目標テーブルを書き換え（目標値設定）、現状テーブルの現状値と目標テーブルの目標値とから、目標値に一致させるための制御値を導出して、制御テーブルの書き換え（制御値導出）を行う（Ｓ２２）。
【００４５】
次いで、全サーボ（全関節）制御値を出力（指示）するため、その制御テーブルの値（制御値）を示す駆動制御データを、全てのサーボコントローラＳＢＣに出力して（Ｓ２３）、処理（Ｓ２０）を終了する（Ｓ２４）。
【００４６】
なお、上述の処理（Ｓ２０）の例は、定期的な制御処理を行う例、すなわちクロック等に同期して定期的（周期的）にメインコントローラ２０と各サーボコントローラＳＢＣや各センシングコントローラＳＳＣとの間の通信（以下「コントローラ間通信」）を行うことによってロボット１全体を制御する例、であるが、不定期（非同期）に制御処理を行うこともできる。
【００４７】
この場合、例えば図示の処理（Ｓ３０）のように、ロボット１内各部のセンサにより変化が検出され、そのセンサ毎に個別の個別検出割込が発生すると、個別検出・目標設定処理（Ｓ３０）が起動され、その割込要因となったセンサによる検出結果を取得するため、そのセンサを担当するセンシングコントローラＳＳＣから検出制御データを入力して、前述の現状テーブルを書き換え（Ｓ３１）、同様にそのときの制御プログラムに基づいて、目標値設定（目標テーブル書換）や制御値導出（制御テーブル書換）を行う（Ｓ３２：Ｓ２２と同じ）。
【００４８】
また、上述では、全サーボ（全関節）制御値出力（Ｓ２３）を行ったが、点線で図示のように、一旦、現状テーブルの現状値と目標テーブルの目標値と間で差があるもの、言い換えると現状と異なる状態に変化（動作）させる必要のあるもの、のみを抽出し（Ｓ３３）、その分の制御テーブルの値（制御値）を示す駆動制御データのみを、それに対応するサーボコントローラＳＢＣのみに出力（Ｓ３４）しても良く、これにより、差分があるものが少ない場合等において、コントローラ間通信を効率化・短縮化できる。
【００４９】
ところで、上述の目標値設定・制御値導出処理（Ｓ２２またはＳ３３）では、例えば図１５に示すように、処理（Ｓ４０：Ｓ２２やＳ３２のためのサブルーチン）が起動されると、まず、足裏圧平均化（導出）処理を行う（Ｓ４１）。
【００５０】
なお、例えばこの「足裏圧平均化（導出）処理（Ｓ４１）」で導出された制御値に従って処理（制御）を実行すれば、「足裏圧平均化」を行うことができるが、本処理（Ｓ４０）では、目標値設定や制御値導出までを行うので、以下に説明する全ての処理は導出処理となる（この意味で「導出」と括弧書きしている）。
【００５１】
また、以下では、説明の都合（効率化）上、左足平部Ｌ１７の足裏左前センサＬ７ＬＦＳ、足裏右前センサＬ７ＢＦＳ、足裏左後センサＬ７ＬＢＳおよび足裏右後センサＬ７ＢＦＳを、センサ▲１▼、▲２▼、▲３▼および▲４▼とし、同様に右足平部Ｒ１７についてのセンサＲ７ＬＦＳ〜Ｒ７ＢＦＳを、センサ▲５▼〜▲８▼とする（図１７等参照）。また、左足平部Ｌ１７単独で検出された接地圧力（床反力）のみから求められる重心（床面に投影した重心：以下同じ）を左足重心（左足重心点）ＬＰとし、左足重心ＬＰの目標点を左足目標点（左足中心点、左足重心目標点）ＬＤとし、同様に右足平部Ｒ１７についての重心を右足重心（右足重心点）ＲＰ、目標点を右足目標点（右足中心点、右足重心目標点）ＲＤとし、さらにロボット１全体としての重心を前述のロボット中心点（重心、重心点）Ｐ、その目標点を目標点（重心目標点）Ｄとする。
【００５２】
ここで、例えば図１６に示すように、左足のセンサ▲１▼の出力値（検出値：圧力値）が１００（単位は省略：以下「▲１▼＝１００」のように示す）、同様に▲２▼＝２００、▲３▼＝２００、▲４▼＝４００の場合、総和は（▲１▼＋▲２▼＋▲３▼＋▲４▼＝）９００であり、現状では概ね図示の▲１▼▲４▼を結ぶ対角線上の▲４▼に近い位置に左足重心点ＬＰがあるが、▲１▼〜▲４▼の各検出値の全てが平均値２２５と一致したときに、左足目標点ＬＤに一致するので、この場合、上述の足裏圧平均化（導出）処理（Ｓ４１）では、左足目標点ＬＤを目標値として、現状値である左足重心点ＬＰを図示の矢印の方向に移動させて左足目標点ＬＤに一致させるための制御値を、演算またはテーブル参照等によって求める（導出する）。
【００５３】
より具体的には、前後の差分だけ、すなわち▲１▼と▲２▼の和と▲３▼と▲４▼の和との差（（▲１▼＋▲２▼）−（▲３▼＋▲４▼））を解消（相殺）する分だけ、足首関節ピッチ軸Ｌ１６Ｐを回転させるための制御値を導出する。この値は、サーボコントローラＬ６ＰＢを介して足首関節ピッチ角モータＬ６ＰＭを駆動するための駆動制御データの元値となる。同様に、左右の差分（（▲１▼＋▲３▼）−（▲２▼＋▲４▼）に相当する分）の相殺分だけ足首関節ピッチ軸Ｌ１６Ｒを回転させるための制御値を導出し、サーボコントローラＬ６ＲＢを介して足首関節ロール角モータＬ６ＲＭを駆動するための駆動制御データの元値とする。
【００５４】
そして、上述と同様のことを右足のセンサ▲５▼〜▲８▼に対して行うことで、右平足Ｒ１７について、右足目標点ＲＤに右足重心点ＲＰを一致させるための制御値を導出する。
【００５５】
上述の足裏圧平均化（導出）処理（Ｓ４１）が終了すると、図１５に示すように、次に、静止時（すなわち現在処理中の制御プログラムが静止プログラムである場合あるいは処理モードが静止モードである場合等）か否かを判別し（Ｓ４２）、静止時であるときには（Ｓ４２：Ｙｅｓ）、次に、姿勢安定化（導出）処理を行ってから（Ｓ４３）、処理（Ｓ４０）を終了する（Ｓ４４）。
【００５６】
ここで、例えば図１７に示すように、左足平部Ｌ１７の下面の略四角の各点をａ〜ｄ、右足平部Ｒ１７の各点をｅ〜ｈとし、図示のように左足が前の場合、外側の角ａ、ｂ、ｆ、ｈ、ｇ、ｃを結ぶ多角形（ａ−ｂ−ｆ−ｈ−ｇ−ｃを結ぶ多角形：足裏部分＋斜線部分）の仮想領域Ａ内に、全体の重心点（ロボット中心点）Ｐがあれば転倒しないが、姿勢として最も安定した場合の重心点（すなわち理想の重心点）は、概ね図示の左足重心点ＬＰと右足重心点ＲＰとを結ぶ線Ｎの中央（中心）に相当する点となるので、この点を目標点（重心目標点）Ｄとする。なお、右足が前の場合等においても同様である（図２０等参照）。
【００５７】
そこで、上述の足裏圧平均化（導出）処理（Ｓ４１）によって、左足平部Ｌ１７および右足平部Ｒ１７のそれぞれの重心点が、図１７に図示の左足重心点ＬＰと右足重心点ＲＰにあるものとすると、仮に、左足のセンサ▲１▼〜▲４▼の出力の総和（▲１▼＋▲２▼＋▲３▼＋▲４▼＝）９００、右足のセンサ▲５▼〜▲８▼の総和（▲５▼＋▲６▼＋▲７▼＋▲８▼＝）１８００の場合、ロボット中心点Ｐは、概ね同図（ｂ）に図示のように線Ｎ上の右足側に片寄った（約１／３の）位置にあるので、この場合、上述の姿勢安定化（導出）処理（Ｓ４３）では、重心目標点Ｄを目標値として現状値であるロボット中心点Ｐを一致させ（Ｐを矢印の方向に移動させてＤに一致させ）、同図（ｂ）のようにするための制御値を導出する。この値は、ロボット１内各部（特に脚部１１内各部）の各関節を制御する各サーボコントローラＳＢＣに指示する駆動制御データの元値となる。
【００５８】
また、図１５に示すように、静止時でないときには（Ｓ４２：Ｎｏ）、次に、前進歩行時（すなわち現在処理中の制御プログラムが前進歩行プログラムである場合あるいは処理モードが前進歩行モードである場合等）か否かを判別し（Ｓ４５）、前進歩行時でないときには（Ｓ４５：Ｎｏ）、そのときの制御プログラムや処理モードに従った他の処理（他の処理モードにおける目標値設定・制御値導出処理など）を行った後（Ｓ４６）、処理（Ｓ４０）を終了する（Ｓ４４）。
【００５９】
また、前進歩行時であるときには（Ｓ４５：Ｙｅｓ）、両足安定期（図１３の（ｔ１）または（ｔ４）の状態：すなわち歩行時ではあるが、その時点から両足による安定状態に移行しようとしている期間：図１７または図２０参照）か否かを判別し（Ｓ５１）、両足安定期であるときには（Ｓ５１：Ｙｅｓ）、上述の静止時と同様に、姿勢安定化（導出）処理を行ってから（Ｓ４３）、処理（Ｓ４０）を終了する（Ｓ４４）。
【００６０】
また、前進歩行時ではあるが（Ｓ４５：Ｙｅｓ）、両足安定期ではないときには（Ｓ５１：Ｎｏ）、次に、重心移行期（図１３の（ｔ２）または（ｔ５）の状態：すなわち重心のない方の足を前に踏み出すために他方の足を軸足としてその足に重心を移行する期間であり、静歩行のための重心移行期間）か否かを判別し（Ｓ５２）、重心移行期であるときには（Ｓ５２：Ｙｅｓ）、次に、左足重心（すなわち左足を軸足とするために左足に重心を移行する）か否かを判別し（Ｓ５３）、左足重心（（ｔ２）の状態）であるときには（Ｓ５３：Ｙｅｓ）、左足重心移行（導出）処理を行ってから（Ｓ５４）、処理（Ｓ４０）を終了する（Ｓ４４）。
【００６１】
この左足重心移行（導出）処理（Ｓ５４）では、例えば図１８に示すように、左足重心点ＬＰを重心目標点Ｄとする。すなわち、例えば反対側の右足を踏み出す場合等において、静的にも転倒しないためには、左足に全体重を乗せてその足裏の範囲（図示では左足平部Ｌ１７の下面の略四角ａ−ｂ−ｃ−ｄで囲む範囲）に重心（ロボット中心点）Ｐがあれば倒れないが、姿勢として最も安定する理想重心点は、左足重心点ＬＰとなるので、この点を重心目標点Ｄとして、ロボット中心点Ｐを矢印の方向に移動させて重心目標点Ｄ（左足重心点ＬＰ）に一致させるための制御値を導出し、脚部１１内各部等の各関節を制御する各サーボコントローラＳＢＣへの駆動制御データの元値とする。
【００６２】
また、図１５に示すように、左足重心でないとき（図１３の（ｔ５）の状態）には（Ｓ５３：Ｎｏ）、上述の左足重心移行（導出）処理（Ｓ５４）と同様ではあるが、右足を重心とする右足重心移行（導出）処理を行ってから（Ｓ５５）、処理（Ｓ４０）を終了する（Ｓ４４）。
【００６３】
また、重心移行期でないときには（Ｓ５２：Ｎｏ）、片足踏出期（図１３の（ｔ３）または（ｔ６）の状態）であると判別し、次に、左足重心（すなわち左足を軸足として右足を踏み出す）か否かを判別し（Ｓ５６）、左足重心であるとき（図１３の（ｔ３）の状態）には（Ｓ５６：Ｙｅｓ）、右足踏出（導出）処理を行ってから（Ｓ５７）、処理（Ｓ４０）を終了する（Ｓ４４）。
【００６４】
この右足踏出（導出）処理（Ｓ５７）では、例えば図１９に示すように、左足重心点ＬＰを重心目標点Ｄとして一致させたまま、反対側の右足を踏み出すために、右足目標点ＲＤのみを前方に移行させ、ロボット中心点Ｐを重心目標点Ｄ（左足重心点ＬＰ）に一致させたまま、右足重心点ＲＰを矢印の方向に移動させて右足目標点ＲＤに一致させるための制御値を導出し、各部の各関節を制御する駆動制御データの元値とする。
【００６５】
また、図１５に示すように、左足重心でないとき（図１３の（ｔ６）の状態）には（Ｓ５６：Ｎｏ）、上述の右足踏出（導出）処理（Ｓ５４）と同様ではあるが、右足を重心（軸足）として左足を踏み出す左足踏出（導出）処理を行ってから（Ｓ５８）、処理（Ｓ４０）を終了する（Ｓ４４）。
【００６６】
そして、例えば図１９で上述の右足踏出（導出）処理が終了した時点（図１３の（ｔ３）の状態が終了した時点）で、両足安定期（（ｔ４）の状態）に移行し、図１５で前述のように、両足安定期となったときには（Ｓ５１：Ｙｅｓ）、例えば図２０に示すように、前述同様の姿勢安定化（導出）処理を行ってから（Ｓ４３）、処理（Ｓ４０）を終了する（Ｓ４４）。もちろん、この状態（（ｔ３）の状態）から後には、図１８〜図２０で上述した処理と同様の処理を反対の足について行うことにより（（ｔ４）〜（ｔ１）の状態遷移により）、２足の静歩行の処理が行われる。
【００６７】
ところで、足部が接地（足着）する床面は一様に平坦ではない。例えば、ドアの足摺部や階段等では、足裏面の一部が接地状態で他の一部が非接地状態となる場合が生じる。例えば図２１に示すように、左足平部Ｌ１７の断面において、位置Ｐ１および位置Ｐ２に各１つのセンサ７Ｓが設けられている場合、仮に足裏プレート１７Ｓが無くて各圧力センサ７Ｓが独立していると、他の位置、例えば図示の位置Ｐ３に対応する床面にある突起物Ｔを踏みつけても、それが各圧力センサ７Ｓに接触しない限り、それを検出することはできない。
【００６８】
これに対し、ロボット１では、足裏プレート１７Ｓを備えて複数の圧力センサ７Ｓが相互に連結されているので、突起物Ｔを踏んだときには、各圧力センサ７Ｓによりその突起物Ｔの位置Ｐ３からの距離Ｌ１および距離Ｌ２に反比例した圧力が検出できる。このため、床面の凹凸等（例えば足摺部や階段）により、一部の圧力センサ７Ｓが誤検出（非検出も含む）となることがない。
【００６９】
また、この場合、図１５で前述した足裏圧平均化（導出）処理（Ｓ４１）により検出値を平均化して、位置Ｐ１と位置Ｐ２の双方から等距離の左足目標点ＬＤに、図１６で前述と同様に左足重心点ＬＰを一致させると、実際の重心点は、左足目標点ＬＤ（左足重心点ＬＰ）ではなく、図示の位置Ｐ３と位置Ｐ２の双方から等距離の仮重心点Ｑに一致する。この場合、突起物Ｔと床面に接地する一点とを含む多角形が一時的な足裏となり、仮重心点Ｑが左足目標点ＬＤより安定する点となるので、上記の足裏圧平均化（導出）処理（Ｓ４１）が、あたかも理想の仮重心点Ｑに実際の重心点を一致させて安定化する処理（の代用）になる。このため、床面の突起物Ｔ等による影響を受けにくく、転倒のない適切な２足歩行を確保できる。
【００７０】
上述のように、ロボット１では、静止時（立ち動作）において、両足部の足裏面同士を外形線で結ぶ仮想領域Ａから、ロボット中心点（重心）Ｐが外れないように姿勢を制御し、且つ歩行時（歩行動作）において、軸足となる足部の足裏面から、ロボット中心点Ｐが外れないように姿勢を制御するようにしているため、転倒することなく適切な２足歩行が可能であり、しかも、制御が容易なため、応答性が良好となり、歩行速度をアップすることができる。また、各足部（足平部）１７における複数の圧力センサ７Ｓの圧力値が略均等になるように体躯の姿勢を制御するので、床面に凹凸や傾斜があっても、２足歩行を安定に行うことができる。
【００７１】
ところで、ロボット１では、理想環境下で検出された基準データを参照データとして予め用意することによって、理想的な制御に近い制御を簡易且つ迅速に行うことができるようにしているので、以下、この点について、説明する。
【００７２】
まず、ロボット１では、図１４で前述のように、センシングコントローラＳＳＣからの検出制御データに基づいて現状テーブルを書き換えた後（Ｓ２１）、その現状テーブルとそのときの制御プログラム（例えば歩行プログラム）に基づいて、次の目標値を導出して、目標テーブルを書き換える（目標値設定を行う）。これに対し、予め理想的環境（理想的な基準床面等）の下で各制御（歩行等）を行って実測した検出結果等を、その目標テーブルの基準（基礎、下地）データとして制御データ領域２２２等に記憶しておき、その時点の現状値に近い値を示す基準データの次の値を目標値とすれば、その後は、基準データが示す制御（すなわち理想的な制御）に近い制御が可能になる。また、基準データを参照するだけで目標値を得られるので、目標値設定が簡易且つ迅速にできる。
【００７３】
このため、ロボット１では、例えば図２２（ａ）に示すように、胴部１０内に姿勢センサ（ｐｏｓｔｕｒｅ  ｓｅｎｓｏｒ）ＰＳを設ける。この姿勢センサＰＳは、２軸［ｘ、ｙ］の加速度センサであり、全身の重心位置（全体の重心点：ロボット中心点）Ｐと合致すべき位置に、且つロボット１の前進方向にｘ軸および横（進行方向に向かって左方向が正）方向にｙ軸となるように、配置される。
【００７４】
なお、この姿勢センサＰＳは、ロボット１内各部のセンシングコントローラＳＳＣの検出値に基づいて、ソフト（プログラム）またはハード（例えばＰ−ＣＯＮ２４０内の論理回路等の専用ハードウェア）により換算して検出値を得る仮想的な姿勢センサでも良いし、あるいは実際に胴部１０内に専用の姿勢センサ（素子等：例えば胴部１０の水平面に対する傾きを検出可能なセンサ）として備えても良い。
【００７５】
そして、ロボット１では、予め理想的な環境の下で、姿勢センサＰＳにより各種動作（各種制御）時の姿勢を検出することにより、その検出値（検出データ、検出波形）を、目標テーブルの基準データ（基準値、目標値、基準波形）α＝［αｘ，αｙ］として用意（記憶）する。
【００７６】
例えば図２２および図２９に示すように、まず、「（ｔ０）静止時（両足立脚期間）」〜「（ｔ５ｓ）片足（右足重心：軸足）への重心移行期」における姿勢のｘｙ座標値（両軸上の変位や速度に対応する姿勢：加速度）を検出値として検出する。続いて、図２３および図２９に示すように、「（ｔ６）遊脚（左足）踏出期」＝「（ｔ６−１）踏出期」〜「（ｔ６−２）着床期」について姿勢を検出する（図１３（ｂ）も参照）。
【００７７】
同様に、続いて、図２４および図２９に示すように、「（ｔ１）左足前の両足安定期」＝「（ｔ１−１）胴部１０の前方移動期」〜「（ｔ１−２）両足重心平衡期」について姿勢を検出する（図１３（ｂ）、図１７も参照）。ただし、この場合、図１７で前述のように、理想的には重心Ｐを直線的に斜めに移動させたいので、重心Ｐの前方への移動である「（ｔ１−１）」と、横方向の移動である「（ｔ１−２）」とが、ほぼ同時に行われるように制御して検出する。同様に、続いて、図２５および図２９に示す「（ｔ２）片足（左足重心：軸足）への重心移行期」について姿勢を検出する（図１３（ｂ）、図１８も参照）。ただし、この「（ｔ２）」は、「（ｔ１−２）両足重心平衡期」から連続する重心移動の期間（図１７〜図１８参照）なので、連続して行われるように制御して検出する。
【００７８】
同様にして、続いて、図２６および図２９に示す「（ｔ３）遊脚（右足）踏出期」＝「（ｔ３−１）踏出期」〜「（ｔ３−２）着床期」（図１３（ｂ）、図１９も参照）、図２７および図２９に示す「（ｔ４）右足前の両足安定期」＝「（ｔ４−１）胴部１０の前方移動期」〜「（ｔ１−２）両足重心平衡期」（図１３（ｂ）、図２０も参照）、並びに、図２８および図２９に示す「（ｔ５）片足（右足重心：軸足）への重心移行期」（図１３（ｂ）も参照）について、それぞれ姿勢を検出する。ただし、この「（ｔ４）」〜「（ｔ５）」も上記の「（ｔ１）」〜「（ｔ２）」と同様に、重心移動が斜め直線上に連続して行われるように制御して検出する。
【００７９】
以下、同様にして、「（ｔ６）」〜「（ｔ１）」〜「（ｔ５）」〜「（ｔ６）」のサイクル（図１３（ｂ）参照）についての姿勢の検出値を、１サイクル分以上取得する。そして、このように検出した検出値を、目標値（目標データ：図２９の基準波形）αとして、制御データ領域２２２等に記憶しておく。次に、この目標値αを利用した制御について、以下に説明する。
【００８０】
例えば図３０（ａ）に示すように、「（ｔ５）右足（軸足）への重心移行期」を終了して「（ｔ６）遊脚（左足）踏出期」に移行した時点で、基本（理想）的な重心Ｐは、右足平部Ｒ１７の中心（右足重心点）ＲＰ（図１７等参照）にあるので、安定するはずであるが、例えば床Ｆが柔らかい場合等では、同図（ｂ）の矢印で示すように、重心移行の勢いで、全身が右側に倒れる。
【００８１】
すなわち、床Ｆが柔らかい場合などでは、例えば図３１に示すように、上記「（ｔ６）遊脚（左足）踏出期」に移行した後に右側（ｘの負側）にずれた値を示すなど、姿勢センサＰＳの検出値βが目標値αからずれた値となる。
【００８２】
このような場合、例えば図３０（ｃ）に示すように、左股関節ロール軸Ｌ１２Ｒ（図２等参照）を拡げる方向に動作（回転）させ、遊脚である左脚部Ｌ１１をさらに上に上げることにより、重心Ｐを左側（ｘの正側）にずらしてバランスを取ることができる。
【００８３】
すなわち、実際の検出値βが基準波形である目標値αとずれた場合には、その差を相殺するように、全身の関節を動作させる（制御する）ことにより、床面の堅さ等が変化した場合などの、ロボット１が転倒しやすい状況下の歩行においても、非常に簡単且つ迅速に対応（制御）でき、より一段と安定した静（的）歩行が可能になる。
【００８４】
上述のように、ロボット１では、理想的な基準床面等の理想環境下における姿勢センサＰＳによる姿勢の検出結果を、参照用の基準波形（基準データ）αとして記憶しておき、現時点で検出された姿勢センサＰＳの検出結果（現状値）と基準波形αに基づいて、次の姿勢の目標（目標値）を設定する。上述の例では、例えば「（ｔ６）遊脚（左足）踏出期」の開始時点で、検出値（現状値）βが大きく右側（ｘ負側）に振れたのに対応して、本来あるべき理想の次回検出値を示す基準波形α上の値（図示の例では概ねα＝［αｘ，αｙ］＝［０，０］）を目標値とする。すなわち、基準波形αを参照して目標値として簡易に設定することが可能になる。
【００８５】
また、この場合、現状値βと目標値αとを比較して、これらの差分を相殺するための制御データを導出し、その制御データに基づいてロボット１の各関節を駆動制御するので、次の時点では、現状値βを基準波形αの値に近づけることができる。上述の例では、例えば上述の左脚部Ｌ１１による重心調整により次の検出値βが基準波形（目標値）αに近づけば、その後は、基準波形αが示す制御（すなわち理想的な制御）に近い制御が可能になる。また、現状値βと目標値αとの差分を相殺するように導出すればよいので、制御値（制御データ）が容易且つ迅速に導出できる。上述の例では、基準波形αを検出した際の制御データに対して上記差分を加味するだけで、現状に対する制御データを導出できる。
【００８６】
そして、この場合、理想的な検出結果である目標値（基準データの値）αと現状値βとの、いわば検出結果同士の差分に基づいて制御できるので、自己の現姿勢を導出する必要がなく、このため、姿勢センサＰＳの検出結果を環境に依存する成分と自己に起因する成分とに分離・解析する必要もない。すなわち、この場合、ロボット工学的な高度な演算を要することがないので、目標設定や制御データ導出等の各種手段として、比較的低機能ではあるが低価格のプロセッサ等を採用しても、比較的高速で処理でき、これにより、低価格化と高速化とを同時に図ることができる。
【００８７】
なお、上述の例では、「（ｔ６）遊脚（左足）踏出期」の開始時点において検出値βが目標値αからずれた場合に、脚部（左脚部）を利用して重心を調整したが、腕部を利用したり、胴部の傾きを調整するなど、他の方法を採用しても良い。また、他の期間においても例えば不測の事態により目標値αからずれた場合、そのずれを相殺するように制御することで対応できる。また、上述の例では、制御プログラムとして歩行プログラムの場合の例を挙げたが、他の制御プログラムに対しても理想環境下において取得した基準値（目標値）を利用（参照）して同様に制御できる。もちろん、その他、要旨を逸脱しない範囲で、適宜変更も可能である。
【００８８】
【発明の効果】
上述のように、本発明のロボットの制御装置およびロボットの制御方法によれば、自己の現姿勢を導出するための高度な演算を不要とすることによって、低価格化と高速化とを同時に図ることができる、などの効果がある。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る脚式歩行ロボットの全体斜視図である。
【図２】図１のロボットの制御系を示す概略ブロック図である。
【図３】図１のロボットの自由度構成モデルの模式図である。
【図４】図３の自由度構成モデルの前提の説明図である。
【図５】図２のロボットの股関節部の詳細ブロック図である。
【図６】膝関節部の、図５と同様の詳細ブロック図である。
【図７】足首関節部の、図５と同様の詳細ブロック図である。
【図８】足平部の、図５と同様の詳細ブロック図である。
【図９】図１のロボットの足平部および足裏プレートを示す構造図である。
【図１０】図９の足平部および足裏プレートの分解斜視図である。
【図１１】図９の足平部の圧力センサ廻りの拡大断面図である。
【図１２】図１のロボットの制御全体の概略処理を示すフローチャートである。
【図１３】（前進）歩行処理のフローチャートおよびその起動下における状態遷移の説明図である。
【図１４】定期的な周期制御割込による状態検出・目標設定処理および不定期の個別検出割込による個別検出・目標設定処理のフローチャートである。
【図１５】図１４の目標値設定・制御値導出処理のフローチャートである。
【図１６】図１５の足裏圧平均化導出処理の原理を模式的に示す説明図である。
【図１７】静止時または図１３の前進歩行時における状態遷移が左足前の両足安定期のときの、図１５の姿勢安定化導出処理の原理を模式的に示す説明図である。
【図１８】図１５の左足重心移行導出処理についての、図１７と同様の説明図である。
【図１９】図１５の右足踏出導出処理についての、図１７と同様の説明図である。
【図２０】右足踏出後、状態遷移が右足前の両足安定期のときの、図１７と同様の説明図である。
【図２１】足裏プレートにより複数の圧力センサを連結した利点を示す説明図である。
【図２２】図１のロボットの静止時（両足立脚期）および右足重心（軸足）の重心移行期における姿勢を、模式的に示す説明図である。
【図２３】遊脚（左足）踏出期についての、図２２と同様の説明図である。
【図２４】左足前の両足安定期についての、図２２と同様の説明図である。
【図２５】左足重心（軸足）の重心移行期についての、図２２と同様の説明図である。
【図２６】遊脚（右足）踏出期についての、図２２と同様の説明図である。
【図２７】右足前の両足安定期についての、図２２と同様の説明図である。
【図２８】右足重心（軸足）の重心移行期についての、図２２と同様の説明図である。
【図２９】目標値（基準波形）となる理想環境下における姿勢検出結果の一例を示す説明図である。
【図３０】理想外の環境下で姿勢の検出値が目標値とずれる様子およびその調整をする様子の一例を、模式的に示す説明図である。
【図３１】図３０に対応して理想外の環境下で姿勢の検出値が目標値とずれる場合の、目標値と検出値との関係を示す説明図である。
【符号の説明】
１      ロボット（脚式歩行ロボット）
１０    胴体
１１（Ｒ１１、Ｌ１１）  ……  脚部（右脚部、左脚部）
１２（Ｒ１２、Ｌ１２）  ……  股関節部（右〜、左〜）
１３（Ｒ１３、Ｌ１３）  ……  大腿部（右〜、左〜）
１４（Ｒ１４、Ｌ１４）  ……  膝関節部（右〜、左〜）
１５（Ｒ１５、Ｌ１５）  ……  頸部（右〜、左〜）
１６（Ｒ１６、Ｌ１６）  ……  足首関節部（右〜、左〜）
１７（Ｒ１７、Ｌ１７）  ……  足平部（右〜、左〜）
１７Ｓ（Ｒ１７Ｓ、Ｌ１７Ｓ）  ……  足裏プレート（右〜、左〜）
２０    メインコントローラ
２０Ｂ、２１Ｂ、Ｈ１Ｂ  ……  バス
２１（Ｒ２１、Ｌ２１）  ……  脚制御部（右〜、左〜）
５１    センサホルダ
５４    ボトムプレート（規制部材）
５５    復帰部材
６１（Ｒ６１、Ｌ６１）  ……  腕部（右〜、左〜）
▲１▼〜▲８▼、７Ｓ、Ｒ７〜Ｓ、Ｌ７〜Ｂ  ……  （足裏）圧力センサ
７１    センサ本体
７２    圧力室
７３    封止膜体
７４    検出子
Ａ      仮想領域
Ｄ（ＲＤ、ＬＤ）  ……  重心目標点（右足〜、左足〜）
Ｆ      床
Ｈ１    頭部
Ｐ      ロボット中心点
ＲＰ、ＬＰ  ……  右足重心点、左足重心点
Ｒ〜Ｐ、Ｌ〜Ｐ  ……  ピッチ軸
Ｒ〜ＰＭ、Ｌ〜ＰＭ  ……  ピッチ角モータ
Ｒ〜ＰＳ、Ｌ〜ＰＳ  ……  ピッチ角センサ
Ｒ〜Ｒ、Ｌ〜Ｒ  ……  ロール軸
Ｒ〜ＲＭ、Ｌ〜ＲＭ  ……  ロール角モータ
Ｒ〜ＲＳ、Ｌ〜ＲＳ  ……  ロール角センサ
Ｒ〜Ｙ、Ｌ〜Ｙ  ……  ヨー軸
Ｒ〜ＹＭ、Ｌ〜ＹＭ  ……  ヨー角モータ
Ｒ〜ＹＳ、Ｌ〜ＹＳ  ……  ヨー角センサ
ＳＢＣ、Ｒ〜Ｂ、Ｌ〜Ｂ  ……  サーボコントローラ
ＳＳＣ、Ｒ〜Ｃ、Ｌ〜Ｃ  ……  センシングコントローラ
【図１】
2005007528.tif 000003
【図２】
2005007528.tif 000004
【図３】
2005007528.tif 000005
【図４】
2005007528.tif 000006
【図５】
2005007528.tif 000007
【図６】
2005007528.tif 000008
【図７】
2005007528.tif 000009
【図８】
2005007528.tif 000010
【図９】
2005007528.tif 000011
【図１０】
2005007528.tif 000012
【図１１】
2005007528.tif 000013
【図１２】
2005007528.tif 000014
【図１３】
2005007528.tif 000015
【図１４】
2005007528.tif 000016
【図１５】
2005007528.tif 000017
【図１６】
2005007528.tif 000018
【図１７】
2005007528.tif 000019
【図１８】
2005007528.tif 000020
【図１９】
2005007528.tif 000021
【図２０】
2005007528.tif 000022
【図２１】
2005007528.tif 000023
【図２２】
2005007528.tif 000024
【図２３】
2005007528.tif 000025
【図２４】
2005007528.tif 000026
【図２５】
2005007528.tif 000027
【図２６】
2005007528.tif 000028
【図２７】
2005007528.tif 000029
【図２８】
2005007528.tif 000030
【図２９】
2005007528.tif 000031
【図３０】
2005007528.tif 000032
【図３１】
2005007528.tif 000033