(57)【特許請求の範囲】
【請求項１】
複数の可動脚の足底の着床・離床を繰り返して階段を上るとき、各可動脚の着床開始時に該可動脚の足底を前記階段のエッジに接触させるようにした脚式移動ロボットにおいて、前記各可動脚の足底面から該可動脚の基部側に離間した所定の部位に、少なくとも前記足底面に垂直な方向に作用する垂直力と、前記足底面の所定の基準点を通る該足底の左右方向の軸回りのモーメントとを検出するための力センサを設け、各可動脚の足底の着床開始を判断した時点又はその近傍の時間範囲において前記力センサの出力から検出される前記垂直力及びモーメントから前記階段のエッジに対する該足底の着床開始接地位置を求めることを特徴とする脚式移動ロボットの足底接地位置検出装置。
【請求項２】
複数の可動脚の足底の着床・離床を繰り返して階段を下るとき、各可動脚の離床終了時に該可動脚の足底を前記階段のエッジに接触させるようにした脚式移動ロボットにおいて、前記各可動脚の足底面から該可動脚の基部側に離間した所定の部位に、少なくとも前記足底面に垂直な方向に作用する垂直力と、前記足底面の所定の基準点を通る該足底の左右方向の軸回りのモーメントとを検出するための力センサを設け、各可動脚の足底の離床終了を判断した時点又はその近傍の時間範囲において前記力センサの出力から検出される前記垂直力及びモーメントから前記階段のエッジに対する該足底の離床終了接地位置を求めることを特徴とする脚式移動ロボットの足底接地位置検出装置。
【請求項３】
前記垂直力があらかじめ定めた所定値以上に上昇した時、前記足底の着床開始を判断することを特徴とする請求項１記載の脚式移動ロボットの足底接地位置検出装置。
【請求項４】
前記垂直力があらかじめ定めた所定値以下に下降した時、前記足底の離床終了を判断することを特徴とする請求項２記載の脚式移動ロボットの足底接地位置検出装置。
【請求項５】
前記力センサの出力から検出される前記垂直力及びモーメントから前記足底に床から作用する抗力の中心位置を時々刻々求め、前記足底の着床開始を判断した時点又はその近傍の時間範囲において求められた前記中心位置により前記足底の着床開始接地位置を求めることを特徴とする請求項１又は３記載の脚式移動ロボットの足底接地位置検出装置。
【請求項６】
前記力センサの出力から検出される前記垂直力及びモーメントから前記足底に床から作用する抗力の中心位置を時々刻々求め、前記足底の離床終了を判断した時点又はその近傍の時間範囲において求められた前記中心位置により前記足底の離床終了接地位置を求めることを特徴とする請求項２又は４記載の脚式移動ロボットの足底接地位置検出装置。
【請求項７】
前記着床開始を判断した時点から所定時間後までに求められた前記中心位置の時系列データに基づき前記足底の着床開始接地位置を求めることを特徴とする請求項５記載の脚式移動ロボットの足底接地位置検出装置。
【請求項８】
前記離床終了を判断した時点から所定時間前までに求められた前記中心位置の時系列データに基づき前記足底の離床終了接地位置を求めることを特徴とする請求項６記載の脚式移動ロボットの足底接地位置検出装置。
【請求項９】
前記中心位置の時系列データの平均値に、該時系列データの分散の平方根、又は該平方根とあらかじめ定めた所定の補正係数との積を加えたものを前記足底の着床開始接地位置として求めることを特徴とする請求項７記載の脚式移動ロボットの足底接地位置検出装置。
【請求項１０】
前記中心位置の時系列データの平均値に、該時系列データの分散の平方根、又は該平方根とあらかじめ定めた所定の補正係数との積を加えたものを前記足底の離床終了接地位置として求めることを特徴とする請求項８記載の脚式移動ロボットの足底接地位置検出装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、脚式移動ロボットに関し、詳しくは、階段の昇降等の移動時における足底の着床あるいは離床の際の足底の接地位置を検出する装置に関する。
【０００２】
【従来の技術】
二足歩行式ロボット等、脚式移動ロボットにおいては、例えば階段での移動（昇降）、あるいは凹凸のある箇所での移動に際して、その安定した移動制御を行うために、可動脚の足底の接地位置（足底の床に接触している部位の位置）を検出することが望まれ、特に、足底の着床時における接地位置や離床時における接地位置を検出することが望まれる。
【０００３】
すなわち、例えば二足歩行式ロボットが、ある歩容（歩幅等の歩行形態）で階段を昇る場合において、一方の可動脚が階段面に着床した時の足底の接地位置が爪先側に偏り過ぎていると、現在の歩容のままでは、次に他方の可動脚が上側の階段面に着床する際に、踏み外す虞れがあり、このような場合には、ロボットの歩容を修正する等（歩幅を大きくする等）の処置を施す必要がある。同様に、二足歩行式ロボットが階段を降りる場合において、一方の可動脚が階段面から離床した時の足底の接地位置が踵側に偏り過ぎていると、現在の歩容のままでは、その離床した可動脚が次に下側の階段面に着床する際に、踏み外す虞れがあり、このような場合にも、ロボットの歩幅を修正する等（歩幅を小さくする等）の処置を施す必要がある。
【０００４】
従って、このようなロボットの歩容の修正等を行うために、足底の着床時における接地位置や離床時における接地位置を検出することが望まれるのである。
【０００５】
一方、ロボットの移動時の足底の接地位置を検出する技術としては、従来、例えば特開平３−１８４７８１号公報や特開平７−２０５０８５号公報に本願出願人が開示したものが知られている。
【０００６】
上記特開平３−１８４７８１号公報に開示されたもの（同号公報の第２２図〜第２５図のもの）では、可動脚の足底面に多数の接触センサをマトリクス状に配置し、それらの接触センサの出力を処理することで、足底に作用する荷重分布を把握し、それにより足底の接地位置を検出するようにしている。
【０００７】
また、特開平７−２０５０８５号公報に開示されたものでは、ロボットの足の両側に反射式光センサを設け、その光センサの出力によりロボットの足底に接触する階段面のエッジを認識することで、該階段面に対する足底の接地位置を検出するようにしている。
【０００８】
しかしながら、前者の技術では、足底面に接触センサを配置するため、移動時の着床の際等に、足底面に作用する衝撃によって該接触センサの損傷を生じやすい。そして、これを回避するために、該接触センサをゴム等の弾性材により被覆した場合には、足底面に作用する荷重分布を精度よく検出することが困難なものとなってしまう。また、多数の接触センサを必要とするため、それらの接触センサの出力処理が多大な演算処理を要するものとなってしまう。
【０００９】
また、後者の技術では、光センサが非接触のものであるため、その損傷等の虞れは少ないものの、移動を行う床面の汚れ等の影響を排除するためには、該床面に適宜、反射テープ（マーカ）を付設しておく必要があり、このため、コスト的に不利なものとなりやすい。さらに、このように反射テープを付設しても、該反射テープの汚れが生じた場合には、精度のよい検出を行うことが困難なものとなってしまう。
【００１０】
【発明が解決しようとする課題】
本発明はかかる背景に鑑み、脚式移動ロボットが階段を上ったり下ったりするときに該ロボットの可動脚の着床開始時あるいは離床終了時の足底の接地位置を、床面の汚れによる影響やセンサの損傷を排除しつつ、簡単な構成で、しかも簡単な演算処理で精度よく検出することができる脚式移動ロボットの足底接地位置検出装置を提供することを目的とする。
【００１１】
【課題を解決するための手段】
本発明の脚式移動ロボットの足底接地位置検出装置はかかる目的を達成するために、複数の可動脚の足底の着床・離床を繰り返して階段を上るとき、各可動脚の着床開始時に該可動脚の足底を前記階段のエッジに接触させるようにした脚式移動ロボットにおいて、前記各可動脚の足底面から該可動脚の基部側に離間した所定の部位に、少なくとも前記足底面に垂直な方向に作用する垂直力と、前記足底面の所定の基準点を通る該足底の左右方向の軸回りのモーメントとを検出するための力センサを設け、各可動脚の足底の着床開始を判断した時点又はその近傍の時間範囲において前記力センサの出力から検出される前記垂直力及びモーメントから前記階段のエッジに対する該足底の着床開始接地位置を求めることを特徴とするものである。
あるいは複数の可動脚の足底の着床・離床を繰り返して階段を下るとき、各可動脚の離床終了時に該可動脚の足底を前記階段のエッジに接触させるようにした脚式移動ロボットにおいて、前記各可動脚の足底面から該可動脚の基部側に離間した所定の部位に、少なくとも前記足底面に垂直な方向に作用する垂直力と、前記足底面の所定の基準点を通る該足底の左右方向の軸回りのモーメントとを検出するための力センサを設け、各可動脚の足底の離床終了を判断した時点又はその近傍の時間範囲において前記力センサの出力から検出される前記垂直力及びモーメントから前記階段のエッジに対する該足底の離床終了接地位置を求めることを特徴とするものである。
【００１２】
かかる本発明において、本願発明者等の知見によれば、前記各可動脚が離床状態から着床する際、あるいは着床状態から離床する際において、足底面に適当な基準点を設定したとき、その基準点から足底の床に接触している部位（足底が床から受ける抗力の中心部）までの距離は、前記力センサの出力から検出される前記垂直力及びモーメントとの間に所定の相関関係を有する。従って、足底の着床開始あるいは離床終了の判断時点又はその近傍の時間範囲において前記力センサの出力から検出される前記垂直力及びモーメントによって、階段のエッジに対する該足底の着床開始接地位置又は離床終了接地位置を求めることができる。尚、前記各可動脚が離床状態から着床する際には、該可動脚の足底が急に床から抗力を受け、また、該可動脚が着床状態から離床する際には、該可動脚の足底が床から受ける抗力が急に解除されるので、前記足底面に垂直な方向に作用する垂直力に基づいて、各可動脚の足底の着床開始や離床終了を判断することができる。
【００１３】
この場合、かかる本発明では力センサによる検出値を用いて足底の着床開始接地位置又は離床終了接地位置を求めるので、床面の汚れの影響を受けることはなく、また、該力センサは、足底面から離間して設けられて、床面に直接的に接触することはなく、着床時等に該力センサが損傷してしまうようなことはない。さらに、足底の着床開始接地位置又は離床終了接地位置を求めるに際しては、前記垂直力及びモーメントが検出できればよいので、簡単な演算処理で足底の着床開始接地位置又は離床終了接地位置を求めることができ、また、該力センサは例えば周知の６軸力センサを用いて簡単に構成することができる。
【００１４】
従って、本発明によれば、階段のエッジに対する脚式移動ロボットの可動脚の着床開始時あるいは離床終了時の足底の接地位置を、床面の汚れによる影響やセンサの損傷を排除しつつ、簡単な構成で、しかも簡単な演算処理で検出することができる。
【００１５】
かかる本発明では、階段の上りの場合には、前記垂直力があらかじめ定めた所定値以上に上昇した時、前記足底の着床開始を判断し、また、階段の下りの場合には、前記垂直力があらかじめ定めた所定値以下に下降した時、前記足底の離床終了を判断することで、足底の着床開始や離床終了を簡単に判断することができる。
【００１６】
また、本発明では、階段の上りの場合には、前記力センサの出力から検出される前記垂直力及びモーメントから前記足底に床から作用する抗力の中心位置を時々刻々求め、前記足底の着床開始を判断した時点又はその近傍の時間範囲において求められた前記中心位置により前記足底の着床開始接地位置を求める。また、階段の下りの場合には、前記力センサの出力から検出される前記垂直力及びモーメントから前記足底に床から作用する抗力の中心位置を時々刻々求め、前記足底の離床終了を判断した時点又はその近傍の時間範囲において求められた前記中心位置により前記足底の離床終了接地位置を求める。
【００１７】
すなわち、足底の着床あるいは離床の際に足底の床に接触している部位は足底に床から作用する抗力の中心位置であり、この中心位置を前記垂直力及びモーメントから時々刻々求めておくことで、前記着床開始や離床終了を判断した時点又はその近傍の時間範囲において求められた前記中心位置により前記足底の着床開始接地位置又は離床終了接地位置を直ちに把握することができる。
【００１８】
この場合、前記着床開始や離床終了を判断した時点における前記中心位置をそのまま足底の着床開始接地位置又は離床終了接地位置として求めてもよいが、階段の上りの場合には、前記着床開始を判断した時点から所定時間後までに求められた前記中心位置の時系列データに基づき前記足底の着床開始接地位置を求め、また、階段の下りの場合には、前記離床終了を判断した時点から所定時間前までに求められた前記中心位置の時系列データに基づき前記足底の離床終了接地位置を求めることが好ましい。
【００１９】
すなわち、着床開始や離床終了の瞬間における前記力センサの検出値はばらつきを生じやすく、ひいては、その検出値から求められる前記中心位置もばらつきを生じやすい。従って、階段の上りの場合の着床に際しては、その着床開始を判断した時点から所定時間後までの前記中心位置の時系列データを用いて前記着床開始接地位置を求め、また、階段の下りの場合の離床に際しては、その離床終了を判断した時点から所定時間前までの前記中心位置の時系列データを用いて前記離床終了接地位置を求めることで、該着床開始接地位置や離床終了接地位置を、前記力センサの不自然な検出値を排除しつつ統計的に精度よく求めることができる。
【００２０】
このように前記中心位置の時系列データを用いて着床開始接地位置や離床終了接地位置を求める場合、本願発明者等の知見によれば、前記中心位置の時系列データの平均値に、該時系列データの分散の平方根、又は該平方根とあらかじめ定めた所定の補正係数との積を加えたものを前記足底の着床開始接地位置や前記足底の着床開始接地位置として求めることで、求められる着床開始接地位置や離床終了接地位置の精度を特に高めることができる。
【００２１】
【発明の実施の形態】
本発明の第１の実施形態を図１乃至図６を参照して説明する。
【００２２】
まず、図１乃至図３を参照して、本実施形態の足底接地位置検出装置を備えた脚式移動ロボットの概要構成を説明する。図１は本実施形態におけるロボットが例えば階段を昇っている様子を示す模式的説明図、図２は該ロボットが階段を降りている様子を示す模式的説明図、図３は図１の部分拡大図である。
【００２３】
本実施形態ではロボットＲは二足歩行型のものであり、胴体１下部の腰関節２から二本の可動脚３が延設されている。各可動脚３はいずれも同一構造を有しており、その中間部と下部とにそれぞれ膝関節４及び足首関節５を備えている。そして、足首関節５の下方に６軸力センサ６を介して大略平板状の足平部７が取着され、この足平部７の足底７ａにはゴム等の弾性材８（図３参照）が固着されている。
【００２４】
尚、各関節２，４，５の屈曲あるいは揺動動作は図示しないモータ等のアクチュエータにより行われるようになっている。
【００２５】
図３を参照して、前記６軸力センサ６は、周知の構造のものであり、足首関節５と足平部７との間で足底７ａから足首関節５側に所定間隔ｈを存する箇所に、足平部７と一体的に動くように設けられている。そして、該６軸力センサ６は、ロボットＲの移動（歩行）に際して、足平部７が床（階段面Ｓｓ  や階段ＳのエッジＳｅ  ）から受ける抗力Ｆ（床反力）によって該６軸力センサ６に作用する力の３軸（３本の空間直交座標軸）方向の力成分及びその力による６軸力センサ６の検出基準点Ｑにおける各軸回りのモーメントを検出し、その検出値に応じた信号を出力する。尚、ここで６軸力センサ６の検出基準点Ｑはセンサ固有の点であり、該センサ６はこの点Ｑに作用する力とモーメントとを検出する。
【００２６】
すなわち、例えば図３に示すように６軸力センサ６上に、足平部７の前後方向（長手方向）をＸ軸、足平部７の左右方向（幅方向。図３では紙面に垂直な方向）をＹ軸（図示せず）、足平部７の足底７ａに垂直な方向をＺ軸とする空間直交座標軸を設定したとき、６軸力センサ６は、前記抗力Ｆによって該６軸力センサ６に作用する力の各軸Ｘ，Ｙ，Ｚ方向の力成分Ｆｘ  ，Ｆｙ  ，  Ｆｚ  （図３ではＦｘ  ，Ｆｚ  のみを図示している）と各軸Ｘ，Ｙ，Ｚ回りに生じるモーメントＭｘ  ，Ｍｙ  ，  Ｍｚ  （図３ではＭｙ  のみを図示している）に応じた信号を出力する。尚、Ｚ軸は６軸力センサ６の検出基準点Ｑを通るように設定されている。
【００２７】
一方、図４のブロック図を参照して、ロボットＲは、その歩行制御を行うためにマイクロコンピュータにより構成されたコントローラ９を搭載しており、このコントローラ９は、その機能的構成として、ロボットＲを歩行させる際の歩幅や足運びの仕方等の歩行形態を規定する各可動脚３の目標歩容を生成してその目標歩容に対応した前記各関節２，４，５の目標関節角（各関節２，４，５の曲げ角度の目標値）を算出する目標歩容生成部１０と、その目標関節角に従って、各関節２，４，５を図示しないアクチュエータを介して駆動・制御する関節制御部１１と、ロボットＲが階段Ｓを昇降する場合に、各可動脚３の足平部７が着床する際の足底７ａの着床開始接地位置（着床時に階段Ｓの階段面Ｓｓ  やエッジＳｅ  に最初に接触する足底７ａの部位の位置）や足平部７が離床する際の足底７ａの離床終了位置（離床時に階段Ｓの階段面Ｓｓ  やエッジＳｅ  から最後に離間する足底７ａの部位の位置）を求める接地位置検出処理部１２とを各可動脚３毎に備えている。
【００２８】
前記目標歩容生成部１０は、基本的には、人が歩行する場合と同様に、各可動脚３の足平部７の踵側から着床を開始して、さらに、足平部７の爪先側まで足底７ａを着床させ、続いて、足平部７の踵側から離床を開始して、最後に足平部７の爪先側を離床させるように目標歩容を生成する（図１及び図２参照）。また、目標歩容生成部１０は、ロボットＲが階段Ｓを昇る場合には、図１に示すように足平部７の踵側を階段ＳのエッジＳｅ  から若干はみださせ、また、階段Ｓを降りる場合には、図２に示すように足平部７の爪先側を階段ＳのエッジＳｅ  から多少はみださせるように目標歩容を生成する。従って、該目標歩容は、階段Ｓの上りでは、足底７ａの着床開始時に足底７ａが階段ＳのエッジＳｅ  に線接触し、また、階段Ｓの下りでは、足底７ａの離床終了時に足底７ａがエッジＳｅ  に線接触すように生成される。
【００２９】
また、接地位置検出処理部１２は、各可動脚３の６軸力センサ６から得られる６種類の検出値Ｆｘ  ，Ｆｙ  ，  Ｆｚ  ，Ｍｘ  ，Ｍｙ  ，  Ｍｚ  のうち、前記Ｘ軸及びＺ軸方向の力成分Ｆｘ  ，Ｆｚ  及びＹ軸回りのモーメントＭｙ  から、足平部７の足底７ａが床（階段Ｓの階段面Ｓｓ  やエッジＳｅ  ）から受ける抗力の中心位置（以下、床反力中心という）を所定の演算式により逐次（時々刻々）算出する床反力中心算出部１３と、この床反力中心と６軸力センサ６から得られる前記Ｚ軸方向の力成分Ｆｚ  とに基づき、足底７ａの前記着床開始接地位置や離床終了接地位置を推定する接地位置推定部１４とにより構成されている。
【００３０】
ここで、上記床反力中心算出部１３及び接地位置推定部１４を説明する前に、本発明による着床開始接地位置や離床終了接地位置の検出を行う原理について説明しておく。
【００３１】
図３を参照して、ロボットＲが例えば階段Ｓを昇る場合において、可動脚３の足平部７の足底７ａが、前述のような歩容によって階段ＳのエッジＳｅ  から階段面Ｓｓ  への着床を開始したとき、その着床開始時に足底７ａが階段Ｓから受ける床反力Ｆ（抗力）の中心、すなわち床反力中心は、該足底７ａのエッジＳｅ  との接触位置であり、この接触位置は前記着床開始接地位置である。同様に、ロボットＲが例えば階段Ｓを降る場合において、足底７ａの離床終了時における階段Ｓから足底７ａへの床反力中心は、該足底７ａのエッジＳｅ  との接触位置であり、この接触位置は前記離床終了接地位置である（図２参照）。従って、足底７ａの着床開始時や離床終了時の足底７ａへの床反力中心の位置により、足底７ａの着床開始接地位置や離床終了接地位置が判ることとなる。
【００３２】
一方、例えば図３の着床開始状態において、足底７ａ面上に、該足底７ａ面がこれに垂直な前記Ｚ軸と交差する点（６軸力センサ６の検出基準点Ｑの直下の点）を基準点Ｐとして設定し、この基準点Ｐを通って前記Ｙ軸に平行な軸（基準点Ｐを通って図３の紙面に垂直な軸）回りのモーメントをＭ’ｙとすると、このモーメントＭ’ｙは、６軸センサ６により検出されるＸ軸方向の力成分Ｆｘ  と、Ｙ軸回りのモーメントＭｙ  と、足底７ａ面から６軸力センサ６の検出基準点Ｑまでの間隔ｈ（所定値）とを用いて、次式（１）により表される。
【００３３】
Ｍ’ｙ＝Ｍｙ  ＋Ｆｘ  ・ｈ          ……（１）
尚、ここでは、Ｘ軸方向の力成分Ｆｘ  の正方向は、Ｘ軸の矢印向きの方向（可動脚３の前方向き）であり、図３ではＦｘ  ＜０である。また、モーメントＭ’ｙ，Ｍｙ  の正方向は図３の矢印の向きである。
【００３４】
さらに、上記基準点Ｐ回りのモーメントＭ’ｙは、６軸センサ６により検出されるＺ軸方向の力成分Ｆｚ  、すなわち、床反力ＦのＺ軸方向成分Ｆｚ  と、基準点Ｐから足底７ａの床反力中心までの距離ｘ（床反力中心のＸ軸座標。図３ではｘ＜０）とを用いて、次式（２）により表される。
【００３５】
Ｍ’ｙ＝−Ｆｚ  ・ｘ              ……（２）
尚、ここでは力成分Ｆｚ  の正方向は、Ｚ軸の矢印向きの方向（上向き）である。
【００３６】
そして、上記式（１），（２）から、次式（３）が得られる。
【００３７】
ｘ＝−Ｍ’ｙ／Ｆｚ  ＝−（Ｍｙ  ＋Ｆｘ  ・ｈ）／Ｆｚ  ……（３）
尚、詳細な説明は省略するが、この式（３）は、階段Ｓの下りにおける足底７ａの離床終了時の床反力中心についても同様に得られる。
【００３８】
従って、階段Ｓの上りにおける足底７ａの着床開始時の床反力中心の位置や階段Ｓの下りにおける足底７ａの離床終了時の床反力中心の位置が、それらの時点で６軸力センサ６により検出されるＸ軸及びＺ軸方向の力成分Ｆｘ  ，Ｆｚ  とＹ軸回りのモーメントＭｙ  とを用いた式（３）により、基準点ＰからのＸ軸方向の距離ｘ（床反力中心のＸ軸座標。以下、これを床反力中心の位置ｘと称する）として求めることができる。そして、このとき、６軸力センサ６の検出値にノイズ成分等が含まれていなければ、足底７ａの着床開始時や離床終了時に式（３）により求められる床反力中心の位置は、それぞれ足底７ａの前記着床開始接地位置及び離床終了接地位置を示すものとなり、これにより該着床開始接地位置及び離床終了接地位置を検出することができることとなる。
【００３９】
尚、前記着床開始接地位置及び離床終了接地位置は、それぞれ着床開始時及び離床終了時における足底７ａの基準点Ｐに対する階段ＳのエッジＳｅ  の位置を示すものとなる。
【００４０】
以上のことを前提として、前記床反力中心算出部１３は、６軸力センサ６から逐次得られるＸ軸及びＺ軸方向の力成分Ｆｘ  ，Ｆｚ  及びＹ軸回りのモーメントＭｙ  から前記式（３）により、床反力中心の位置ｘを時々刻々求める。あるいは換言すれば、力成分Ｆｘ  とモーメントＭｙ  とから式（１）によりモーメントＭ’ｙを求めて、このＭ’ｙと力成分Ｆｚ  とから式（３）により床反力中心の位置ｘを時々刻々求める。
【００４１】
尚、６軸力センサ６の検出基準点Ｑを足底７ａの基準点Ｐ又はその近傍に設定しておくことも可能であり、この場合には検出基準点Ｑから足底７ａまでの間隔ｈが「０」となって、式（３）の「Ｆｘ  ・ｈ」の項が無視でき、式（１）でＭ’ｙ＝Ｍｙ  となるので、式（３）の代わりに次式（４）を用いて床反力中心の位置ｘを求めてもよい。
【００４２】
ｘ＝−Ｍｙ  ／Ｆｚ  ……（４）
この場合には、Ｘ軸方向の力成分Ｆｘ  は不要である。
【００４３】
また、接地位置推定部１４は、６軸力センサ６から逐次得られるＺ軸方向の力成分Ｆｚ  に基づき、階段Ｓの昇降時の足底７ａの着床開始時点や離床終了時点を検知し（これについては後述する）、その検知時点で床反力中心算出部１３により算出された床反力中心の位置ｘを前記着床開始接地位置や離床終了接地位置として推定する。
【００４４】
次に本実施形態におけるロボットＲの歩行時の作動、特に、階段Ｓを昇降する場合の作動を図５及び図６のフローチャートを参照して説明する。
【００４５】
コントローラ９は、ロボットＲの歩行に際して、図５に示すようなメインルーチン処理を所定のサイクルタイム毎に行う。
【００４６】
すなわち、コントローラ９は、前記目標歩容生成部１０により、前述の如くロボットＲの各可動脚３の目標歩容を生成して、その目標歩容に対応した各関節２，４，５の目標関節角を算出する（ＳＴＥＰ１）。
【００４７】
次いで、接地位置検出処理部１２により各可動脚３の足底７ａの前記着床開始接地位置や離床終了接地位置を検出するための接地位置検出サブルーチンを処理する（ＳＴＥＰ２）。
【００４８】
この接地位置検出サブルーチンは、図６のフローチャートに示すように行われる。
【００４９】
すなわち、接地位置検出処理部１２は、床反力中心算出部１３により、各可動脚３について、各可動脚３の６軸力センサ６により今現在検出された前記Ｘ軸方向の力成分Ｆｘ  と、Ｚ軸方向の力成分Ｆｚ  （垂直力）と、Ｙ軸回りのモーメントＭｙ  とを用いて、前記（３）式により床反力中心の位置ｘを算出する（ＳＴＥＰ６−１）。あるいは、６軸力センサ６の検出基準点Ｑを足底７ａに設定した場合には、Ｚ軸方向の力成分Ｆｚ  （垂直力）と、Ｙ軸回りのモーメントＭｙ  とを用いて、前記（４）式により床反力中心の位置ｘを算出する。
【００５０】
次いで、接地位置検出処理部１２は、前記目標歩容生成部１０から与えられる目標歩容によって、今現在の各可動脚３の足平部７が着床を開始しようとしている動作段階にあるか、あるいは、該足平部７の離床を終了しようとしている動作段階にあるかを判断し（ＳＴＥＰ６−２）、この判断で上記の動作段階でない場合には、図５のメインルーチンに復帰する。
【００５１】
一方、ＳＴＥＰ６−２の判断で、上記の動作段階にある場合には、次に、接地位置検出処理部１２は、例えば前記目標歩容によって、ロボットＲが階段Ｓを昇る状態であるか階段Ｓを降りる状態であるかを判断し（ＳＴＥＰ６−３）、いずれの状態でもない場合（例えば平地を歩行している場合）には、図５のメインルーチンに復帰する。
【００５２】
そして、ＳＴＥＰ６−３の判断で階段Ｓを昇る状態である場合には、着床しようとしている動作段階の可動脚３（以下、ここでは着床側可動脚３という）に対応する接地位置検出処理部１２は、図示しない時刻タイマによって把握される現在時刻が前記目標歩容によって定まる該着床側可動脚３の着床予定時刻の近傍にあり、且つ、前回のサイクルタイムで該着床側可動脚３の６軸力センサ６により検出されたＺ軸方向の力成分Ｆｚ（ｉ−１）（ｉは今回のサイクルタイムの番数を示す）が、足平部７の着床開始時に生じるＺ軸方向の力成分Ｆｚ  としてあらかじめ定めた設定値Ｆｚ１よりも小さく、且つ、前回のサイクルタイムで該着床側可動脚３の６軸力センサ６により検出されたＺ軸方向の力成分Ｆｚ（ｉ）が上記設定値Ｆｚ１以上であるか、これらの条件が満たされないかにより、着床側可動脚３の足平部７が着床を開始したか否かを前記接地位置推定部１４により判断する（ＳＴＥＰ６−４。着床開始時点の検知）。そして、この判断で上記の条件が満たされない場合（未着床状態）には、図５のメインルーチンに復帰し、また、上記の条件が満たされた場合（着床開始状態）には、接地位置推定部１４は前記ＳＴＥＰ６−１で着床側可動脚３について算出された床反力中心の位置ｘを足底７ａの着床開始接地位置（着床開始時における足底７ａに対する階段ＳのエッジＳｅ  の位置）として目標歩容生成部１０に出力し（ＳＴＥＰ６−５）、その後、メインルーチンに復帰する。
【００５３】
この場合、着床側可動脚３の足平部７が未着床状態から着床を開始したとき、足平部７の足底７ａに抗力Ｆが付与されていない状態から急に抗力Ｆを付与されるため、前記ＳＴＥＰ６−４の判断で、Ｆｚ（ｉ−１）＜Ｆｚ１、且つＦｚ（ｉ）≧Ｆｚ１の条件が満たされることで、基本的には足平部７が着床を開始したと判断することができる。但し、着床に際して、足平部７が何らかの異物等に接触して、Ｆｚ（ｉ−１）＜Ｆｚ１、且つＦｚ（ｉ）≧Ｆｚ１の条件が満たされてしまうことも考えられ、このため、本実施形態ではこの条件に加えて、さらに現在時刻が着床予定時刻の近傍であるか否かの条件を加味することで、足平部７の着床開始時点の検知をより確実なものとしている。
【００５４】
また、前記ＳＴＥＰ６−３の判断で、階段Ｓを降りる状態である場合には、離床しようとしている可動脚３（以下、ここでは離床側可動脚３という）に対応する接地位置検出処理部１２は、前記ＳＴＥＰ６−４の判断と同様に、現在時刻が前記目標歩容によって定まる該離床側可動脚３の離床予定時刻の近傍にあり、且つ、前回のサイクルタイムで該離床側可動脚３の６軸力センサ６により検出されたＺ軸方向の力成分Ｆｚ（ｉ−１）が、足平部７の離床終了時に生じるＺ軸方向の力成分Ｆｚ  としてあらかじめ定めた設定値Ｆｚ２よりも大きく、且つ、今回のサイクルタイムで該離床側可動脚３の６軸力センサ６により検出されたＺ軸方向の力成分Ｆｚ（ｉ）が上記設定値Ｆｚ２以下であるか、これらの条件が満たされないかにより、離床側可動脚３の足平部７が離床を終了したか否かを前記接地位置推定部１４により判断する（ＳＴＥＰ６−６。離床終了時点の検知）。そして、この判断で上記の条件が満たされない場合（離床未終了状態）には、図５のメインルーチンに復帰し、また、上記の条件が満たされた場合（離床終了状態）には、接地位置推定部１４は前記ＳＴＥＰ６−１で離床側可動脚３について算出された床反力中心の位置ｘを足底７ａの離床終了接地位置（離床終了時における足底７ａに対する階段ＳのエッジＳｅ  の位置）として目標歩容生成部１０に出力し（ＳＴＥＰ６−７）、その後、メインルーチンに復帰する。
【００５５】
この場合、離床側可動脚３の足平部７が離床未終了状態から離床を終了したとき、足平部７の足底７ａに比較的大きな抗力Ｆが付与されていない状態から抗力Ｆが急減するため、前記ＳＴＥＰ６−５の判断で、Ｆｚ（ｉ−１）＞Ｆｚ１、且つＦｚ（ｉ）≦Ｆｚ１の条件が満たされることで、基本的には足平部７が離床を終了したと判断することができる。そして、本実施形態ではこの条件に加えて、さらに現在時刻が離床予定時刻の近傍であるか否かの条件を加味することで、足平部７の離床終了時点の検知をより確実なものとしている。
【００５６】
次に図５に戻って、前述のような接地位置検出処理部１２による接地位置検出サブルーチンの処理（ＳＴＥＰ２）が行われた後、コントローラ９は次回のサイクルタイム以後に目標歩容生成部１０により生成される各可動脚３の目標歩容を規定する歩幅等のパラメータを、前記接地位置検出部１２により前述の如く得られた着床開始接地位置や離床終了接地位置に基づき適宜修正する（ＳＴＥＰ３）。
【００５７】
具体的には、例えば階段Ｓを昇る場合において、着床開始接地位置が前記着床側可動脚３の足平部７の踵側よりも爪先側に偏っている場合には、該着床側可動脚３と異なる他方の可動脚３を次に離床・着床するに際して、該他方の可動脚の歩幅を若干大きくするようにパラメータを修正する。また、例えば着床開始接地位置が前記着床側可動脚３の足平部７の踵の先端（足平部７の後端）である場合、すなわち、該着床側可動脚３が階段Ｓの階段面Ｓｓ  内（エッジＳｅ  を除く）で着床を開始した場合には、次に離床・着床する上記他方の可動脚の歩幅を小さくするようにパラメータを修正する。
【００５８】
さらに、階段Ｓを降りる場合にあっては、離床終了接地位置が前記離床側可動脚３の足平部７の爪先側よりも踵側に偏っている場合には、該離床側可動脚３を次に着床するに際しての歩幅を若干小さくするようにパラメータを修正し、逆に、離床終了接地位置が前記離床側可動脚３の足平部７の爪先部である場合、すなわち、該離床側可動脚３が階段Ｓの階段面Ｓｓ  内（エッジＳｅ  を除く）で離床した場合には、該離床側可動脚３を次に着床するに際しての歩幅を大きくするようにパラメータを修正する。
【００５９】
そして、コントローラ９はこのような修正を適宜行った後、目標歩容生成部１０により算出された各関節２，４，５の目標関節角に従って、前記関節制御部１１により各関節２，４，５を図示しないアクチュエータを介して駆動する（ＳＴＥＰ４）。
【００６０】
以上のようなロボットＲの歩行制御により、階段Ｓを昇る際の歩容や、階段Ｓを降りる際の歩容が足底７ａの着床開始接地位置や離床終了接地位置に応じて適宜修正されるので、ロボットＲによる階段Ｓの昇降を、該ロボットＲが階段Ｓを踏み外したりすることなく安定して行うことができる。そして、このような歩行制御のための着床開始接地位置や離床終了接地位置は６軸力センサ６からの検出値Ｆｘ，Ｆｚ，Ｍｙ  （検出値Ｆｘ，Ｍｙ  から得られるモーメントＭ’ｙと検出値Ｆｚ  ）、あるいは検出値Ｆｚ，Ｍｙ  （６軸力センサ６の検出基準点Ｑを足底７ａに設定した場合）により簡単な演算処理で求めることができる。また、６軸力センサ６は、足平部７の上方に配置されて床に接触することがないため、該センサ６の損傷を生じることなく耐久性を高めることができる。
【００６１】
尚、本実施形態では、床反力中心の位置ｘを逐次求めておくようにしたが、Ｚ軸方向の力成分Ｆｚ  により把握される着床開始時点や離床終了時点で６軸力センサ６の検出値から前記式（３）により床反力中心の位置ｘを求め、これをそのまま足底７ａの着床開始接地位置や離床終了接地位置として推定するようにしてもよい。
【００６２】
次に、本発明の第２の実施形態を図７乃至図１５を参照して説明する。尚、本実施形態における脚式移動ロボットは前記第１の実施形態のものと同一の二足歩行型のものであるので、該ロボットの構成については、前記図１乃至図３の参照符号を用いて説明を省略する。
【００６３】
図７のブロック図を参照して、本実施形態では、ロボットＲには、第１の実施形態と同様にコントローラ９が搭載され、このコントローラ９には、図４に示したものと同一の目標歩容生成部１０及び関節制御部１１を各可動脚３毎に具備すると共に、前述の接地位置検出処理部１２と同様の機能を担う接地位置検出処理部１５も備えられている。
【００６４】
この接地位置検出処理部１５は、第１の実施形態と同様に各可動脚３の６軸力センサ６の検出値Ｆｘ，Ｆｚ，Ｍｙ  から前記式（３）により床反力中心の位置ｘを所定のサイクルタイム毎に求める反力中心算出部１３を備える一方、この算出された床反力中心の位置ｘのデータを所定数Ｎ個分、時系列的に記憶保持するバッファテーブル１６（本実施形態ではリングバッファ）と、６軸力センサ６のＺ軸方向の力成分の検出値Ｆｚ  に基づき、各可動脚３の足平部７の足底７ａの着床や離床の検知（着床開始時点や離床開始時点の検知）を行う着床／離床判別部１７と、この着床／離床判別部１７による足底７ａの着床や離床の検知に基づき、反力中心算出部１３により算出された床反力中心の位置ｘのデータのバッファテーブル１６への書き込みを該バッファテーブル１６に指示するテーブル書き込み指令部１６ａと、該バッファテーブル１６に最終的に書き込まれたＮ個の床反力中心の位置ｘのデータから足底７ａの前記着床開始接地位置や離床終了接地位置を推定する接地位置推定部１８とを備えている。
【００６５】
次に、本実施形態におけるロボットＲの歩行時の作動、特に、階段Ｓを昇降する場合の作動を、前記接地位置検出処理部１５の各部の詳細と併せて図８乃至図１０のフローチャート、並びに図１１乃至図１５の説明図を参照して説明する。
【００６６】
本実施形態では、コントローラ９は、ロボットＲの歩行に際して、前記第１の実施形態と同様に、前記図５に示すようなメインルーチン処理を所定のサイクルタイム毎に行う。そして、この場合、同図５のＳＴＥＰ２の接地位置検出サブルーチン処理において、コントローラ９の接地位置検出処理部１５が次のように着床開始接地位置や離床終了接地位置を求める。
【００６７】
すなわち、図８を参照して、接地位置検出処理部１５は、図５のＳＴＥＰ２のサブルーチン処理において、まず、前記第１の実施形態と同様に、床反力中心算出部１３により、各可動脚３について、各可動脚３の６軸力センサ６による今現在の検出値Ｆｘ，Ｆｚ，Ｍｙ  を用いて、前記（３）式により床反力中心の位置ｘを算出する（ＳＴＥＰ８−１）。あるいは、６軸力センサ６の検出基準点Ｑを足底７ａに設定した場合には、Ｚ軸方向の力成分Ｆｚ  （垂直力）と、Ｙ軸回りのモーメントＭｙ  とを用いて、前記（４）式により床反力中心の位置ｘを算出する。
【００６８】
次いで、接地位置検出処理部１５は、例えば前記目標歩容生成部１０から与えられる目標歩容によって、各可動脚３の足平部７が着床をしようとする動作の開始状態にあるか否か（例えば該足平部７が最も上昇している状態にあるか否か）を判断し（ＳＴＥＰ８−２）、この判断で上記の状態でない場合には、次のＳＴＥＰ８−４に進み、上記の状態である場合には、前記バッファテーブル１６のデータの書き込みエリアの番地を示すカウンタの値ＣＮＴ  を「０」に設定した後（ＳＴＥＰ８−３）、ＳＴＥＰ８−４に進む。
【００６９】
ＳＴＥＰ８−４では、足平部７が着床しようとする動作を開始した着床側可動脚３に対応する接地位置検出処理部１５が、前記第１の実施形態と同様にロボットＲが階段Ｓを昇る状態であるか階段Ｓを降りる状態であるかを判断し、いずれの状態でもない場合（例えば平地を歩行している場合）には、図５のメインルーチンに復帰する。
【００７０】
そして、ＳＴＥＰ８−４の判断で階段Ｓを昇る状態である場合には、着床側可動脚可動脚３に対応する接地位置検出処理部１５は、現在時刻が前記目標歩容によって定まる該可動脚３の着床予定時刻の近傍にあり、且つ、今回のサイクルタイムで該可動脚３の６軸力センサ６により検出されたＺ軸方向の力成分Ｆｚ（ｉ）があらかじめ定めた設定値Ｆｚ１よりも大きいか、これらの条件が満たされないかにより、該可動脚３の足平部７が着床を開始したか否かを前記着床／離床判別部１７により判断する（ＳＴＥＰ８−５。着床開始時点の検知）。そして、この判断で上記の条件が満たされない場合（未着床状態）には、図５のメインルーチンに復帰し、また、上記の条件が満たされた場合（着床開始状態）には、この着床／離床判別部１７による着床開始の検知に応じて前記テーブル書き込み指令部１６ａにより、今現在の前記カウンタの値ＣＮＴ  により示される番地ＣＮＴ  の書き込みエリアへのデータの書き込みを前記バッファテーブル１６に指令し、このとき、該バッファテーブル１６の番地ＣＮＴ  の書き込みエリアに、前記床反力中心算出部１３により算出された今現在の床反力中心の位置ｘが書き込まれる（ＳＴＥＰ８−６）。
【００７１】
さらに、この後、接地位置検出処理部１５はカウンタの値ＣＮＴ  を「１」だけ増加させた後（ＳＴＥＰ８−７）、カウンタの値ＣＮＴ  が所定数Ｎに達したか否かを判断し（ＳＴＥＰ８−８）、ＣＮＴ  ＜Ｎである場合には、図５のメインルーチンに復帰する。
【００７２】
以上のような処理によって、ロボットＲが階段Ｓを昇る際には、各可動脚３に対応する接地位置検出処理部１５のバッファテーブル１６には、前記着床／離床判別部１７により可動脚３の着床が検知された時点から前記サイクルタイム毎に、バッファテーブル１６の０番地の書き込みエリアからＮ−１番地の書き込みエリアまで、Ｎ個の床反力中心の位置ｘのデータが時系列的に記憶される。換言すれば、可動脚３の着床が検知された時点から（サイクルタイム×Ｎ）の経過時間までのサイクルタイム毎の床反力中心の位置ｘのデータが時系列的に記憶される。
【００７３】
そして、このようにしてバッファテーブル１６にＮ個のデータが書き込まれ、前記ＳＴＥＰ８−８の判断でＣＮＴ  ＝Ｎとなると、次に、接地位置検出処理部１５は、前記接地位置推定部１８により、テーブルデータの処理サブルーチンを実行して（ＳＴＥＰ８−９）、バッファテーブル１６に最終的に書き込まれたＮ個の床反力中心の位置ｘのデータから足底７ａの着床開始接地位置を推定する。尚、このＳＴＥＰ８−９のサブルーチン処理については後述する。
一方、ＳＴＥＰ８−４の判断で階段Ｓを降りる状態である場合には、着床側可動脚可動脚３に対応する接地位置検出処理部１５は、前記ＳＴＥＰ８−５の判断処理と全く同じ条件判断にて、該可動脚３の足平部７が着床を開始したか否かを前記着床／離床判別部１７により判断する（ＳＴＥＰ８−１０）。そして、この判断で着床開始が検知さない場合には、図５のメインルーチンに復帰し、また、着床開始が検知された場合には、前記ＳＴＥＰ８−６と同様に、テーブル書き込み指令部１６ａにより、今現在の前記カウンタの値ＣＮＴ  により示される番地ＣＮＴ  の書き込みエリアへのデータの書き込みを前記バッファテーブル１６に指令して、該バッファテーブル１６の番地ＣＮＴ  の書き込みエリアに、前記床反力中心算出部１３により算出された今現在の床反力中心の位置ｘを書き込む（ＳＴＥＰ８−１１）。
【００７４】
さらに、この後、接地位置検出処理部１５はカウンタの値ＣＮＴ  を「１」だけ増加させた後（ＳＴＥＰ８−１２）、カウンタの値ＣＮＴ  が所定数Ｎに達したか否かを判断し（ＳＴＥＰ８−１３）、ＣＮＴ  ＜Ｎである場合には、図５のメインルーチンに復帰する。そして、ＳＴＥＰ８−１３でＣＮＴ  ＝Ｎとなると、次に、接地位置検出処理部１５はカウンタの値ＣＮＴ  を「０」にリセットした後（ＳＴＥＰ８−１４）、前記着床／離床判別部１７により、今回のサイクルタイムで該可動脚３の６軸力センサ６により検出されたＺ軸方向の力成分Ｆｚ（ｉ）があらかじめ定めた設定値Ｆｚ２よりも小さいか否かにより、足底７ａの離床終了を検知し（ＳＴＥＰ８−１５）、このとき、Ｆｚ（ｉ）≧Ｆｚ２であるとき（離床未終了状態）には、メインルーチンに復帰する。
【００７５】
以上のような処理によって、ロボットＲが階段Ｓを降りる際には、各可動脚３に対応する接地位置検出処理部１５のバッファテーブル１６には、前記着床／離床判別部１７により可動脚３の着床が検知された時点から前記サイクルタイム毎に、バッファテーブル１６の０番地の書き込みエリアからＮ−１番地の書き込みエリアまで、床反力中心の位置ｘのデータが循環的に更新されつつ書き込まれていき、最終的には、着床／離床判別部１７により足底７ａの離床終了（Ｆｚ（ｉ）＜Ｆｚ２）が検知された時点で、その時点から（サイクルタイム×Ｎ）の時間前までのＮ個の床反力中心の位置ｘのデータがバッファテーブル１６に時系列的に記憶される。
【００７６】
そして、このようにして足底７ａの離床終了の検知時点から（サイクルタイム×Ｎ）の時間前までのＮ個の床反力中心の位置ｘのデータが最終的にバッファテーブル１６に記憶され、前記ＳＴＥＰ８−１５でＦｚ（ｉ）＜Ｆｚ２となると、次に、接地位置検出処理部１５は、前記接地位置推定部１８により、テーブルデータの処理サブルーチンを実行して（ＳＴＥＰ８−１６）、バッファテーブル１６に最終的に書き込まれたＮ個の床反力中心の位置ｘのデータから足底７ａの離床終了接地位置を推定する。尚、このＳＴＥＰ８−１６のサブルーチン処理については後述する。
【００７７】
ここで、前記ＳＴＥＰ８−９及び８−１６のサブルーチン処理を説明する前に、バッファテーブル１６に書き込まれる床反力中心の位置ｘのデータについて説明しておく。
【００７８】
階段ＳをロボットＲが昇る場合において、各可動脚３の足平部７は図１１に示すように着床開始時から離床終了時まで階段Ｓの階段面Ｓｓ  やエッジＳｅ  に接触し、このとき、足平部７の足底７ａが受ける実際の床反力ＦのＺ軸方向の成分Ｆｚ  は、図１２の下段に示すように時間的に変化し、また、実際の床反力中心の位置ｘは図１２の上段に示すように変化する。
【００７９】
同様に、階段ＳをロボットＲが昇る場合において、各可動脚３の足平部７は図１３に示すように着床開始時から離床終了時まで階段Ｓの階段面Ｓｓ  やエッジＳｅ  に接触し、このとき、足平部７の足底７ａが受ける実際の床反力ＦのＺ軸方向の成分Ｆｚ  は、図１４の下段に示すように時間的に変化し、また、実際の床反力中心の位置ｘは図１４の上段に示すように変化する。
【００８０】
尚、これらの図１１及び図１３のｔｕｔ，ｔｕｌは、それぞれ実際に着床が開始した瞬間の時刻及び実際に離床が終了する瞬間の時刻、ｘｕ１，ｘｕ２はそれらの時刻ｔｕｔ，ｔｕｌにおける実際の床反力中心の位置ｘ（実際の着床開始接地位置及び離床終了接地位置）である。同様に、図１３及び図１４のｔｄｔ，ｔｄｌは、それぞれ実際に着床が開始した瞬間の時刻及び実際に離床が終了する瞬間の時刻、ｘｄ１，ｘｄ２はそれらの時刻ｔｄｔ，ｔｄｌにおける床反力中心の位置ｘ（実際の着床開始接地位置及び離床終了接地位置）である。
【００８１】
また、図１２及び図１４において、ｔｏｎは前記バッファテーブル１６に最終的に書き込まれたデータ（床反力中心算出部１３により算出された床反力中心の位置データ）の書き込み開始時刻、ｔ０ｆｆ  は該データの書き込み終了時刻であり、この書き込み開始時刻ｔｏｎから書き込み終了時刻ｔ０ｆｆ  までのデータ取り込み期間Ｔ（サイクルタム×Ｎ）でバッファテーブル１６に書き込まれたＮ個のデータが最終的に該バッファテーブル１６に保持される。尚、階段Ｓを昇る場合（図１２）の書き込み開始時刻ｔｏｎは、６軸力センサ６により検出されるＦｚ  がＦｚ  ＞Ｆｚ１となって、前記着床／離床判別部１７により着床開始が検知された時刻であり、階段Ｓを降りる場合（図１４）の書き込み終了時刻ｔ０ｆｆ  は、６軸力センサ６により検出されるＦｚ  がＦｚ  ＜Ｆｚ２となって、前記着床／離床判別部１７により離床終了が検知された時刻である。
【００８２】
ここで、６軸力センサ６の検出値から前記床反力中心算出部１３により算出される床反力中心の位置ｘが高精度で、実際の床反力中心の位置に合致すると仮定した場合には、例えば階段Ｓの昇り歩行において、前記着床／離床判別部１７により着床開始が検知された時刻（図１２の書き込み開始時刻ｔｏｎ）で床反力中心算出部１３により算出される床反力中心の位置ｘは精度よく実際の着床開始接地位置ｘｕ１に合致し、また、階段Ｓの降り歩行において、前記着床／離床判別部１７により離床終了が検知された時刻（図１４の書き込み終了時刻ｔｏｆｆ  ）で床反力中心算出部１３により算出される床反力中心の位置ｘは精度よく実際の離床終了接地位置ｘｄ２に合致する。前述の第１の実施形態は、このような前提の基で、着床開始接地位置や離床終了接地位置を求めたものである。
【００８３】
しかるに、実際には、６軸力センサ６の検出値に含まれるノイズ成分や、演算誤差、あるいは足平部７の撓み等に起因して、前記床反力中心算出部１３により算出される床反力中心の位置ｘは、実際の床反力中心の位置に対して誤差を生じる。このため、例えば階段Ｓを昇る場合において、着床開始時から床反力中心算出部１３により算出される床反力中心の位置ｘのデータは、図１５の白抜き点で示すように、実際の床反力中心の位置に対してばらつきを生じたものとなり、このことは階段Ｓを降りる場合についても同様である。
【００８４】
そこで、本実施形態では、このようなばらつきを考慮して、バッファテーブル１６に最終的に保持されたＮ個の床反力中心の位置ｘのデータから階段Ｓの昇り歩行の際の着床開始接地位置や降り歩行の際の離床終了接地位置を推定して求めるのであるが、この場合、例えば前記Ｎ個の床反力中心の位置ｘのデータの平均値を求めても、その平均値は、実際の着床開始接地位置ｘｕ１や離床終了接地位置ｘｄ２に精度よく合致するものとはならない。
【００８５】
すなわち、例えば階段Ｓを昇る場合において、着床開始時からの実際の床反力中心の位置は、図１５に示すように変化するため、前記Ｎ個の床反力中心の位置ｘのデータも大略的には実際の床反力中心の位置の変化に追従して変化し、従って、該データの平均値ｍは同図１５に示すような値となって、着床開始時の床反力中心の位置（着床開始接地位置ｘｕ１）に対して誤差が比較的大きなものとなる。このことは、階段Ｓを降りる場合の離床終了接地位置についても同様である。
【００８６】
一方、本願発明者等の各種検討・実験に基づく知見によれば、例えば階段Ｓを昇る場合の図１５を参照して、床反力中心の位置ｘのデータの分散の平方根σ１／２  を上記平均値ｍに加えてなる値ｘｓ  は、実際の着床開始接地位置ｘｕ１に対して比較的精度よく合致するようになる。同様に、階段Ｓを降りる場合でも、床反力中心の位置ｘのデータの分散の平方根σ１／２  を該データの平均値ｍに加えてなる値は、実際の離床終了接地位置ｘｄ２に対して比較的精度よく合致するようになる。さらには、上記分散の平方根σ１／２  に例えば「１」前後の適当な補正係数を乗算してなる値を前記平均値ｍに加えることで、実際の離床終了接地位置ｘｄ２に対してさらに精度を高めることもできる。尚、この場合、本実施形態では、床反力中心の位置ｘのデータは足平部７の踵側を負側、爪先側を正側としているため（前記図３参照）、階段Ｓを昇る場合に床反力中心の位置ｘのデータの分散の平方根σ１／２  と上記補正係数との積を平均値ｍに加えるということは、（ｍ−ｗ１  ・σ１／２  ）の演算を行うことを意味し（ｗ１  は補正係数でｗ１  ＞０）、また、階段Ｓを降りる場合に床反力中心の位置ｘのデータの分散の平方根σ１／２  と補正係数との積を平均値ｍに加えるということは、（ｍ＋ｗ２  ・σ１／２  ）の演算を行うことを意味する（ｗ２  は補正係数でｗ２  ＞０）。
【００８７】
以上説明したことを前提として、前記ＳＴＥＰ８−９（階段Ｓを昇る場合）のサブルーチン処理では、前記接地位置検出処理部１５の接地位置推定部１８は、図９のフローチャートに示すように、まず、前記バッファテーブル１６に最終的に保持された床反力中心の位置ｘのＮ個のデータから、その平均値ｍと分散σとを求め（ＳＴＥＰ９−１）、次いで、これらの平均値ｍと、分散σの平方根σ１／２  にあらかじめ定めた補正係数ｗ１  を乗算したものとの差（ｍ−ｗ１  ・σ１／２  ）を足平部７の着床開始接地位置として算出する（ＳＴＥＰ９−２）。
【００８８】
また、ＳＴＥＰ８−１６（階段Ｓを降りる場合）のサブルーチン処理では、図１０のフローチャートに示すように、図９の場合と同様に、バッファテーブル１６に最終的に保持された床反力中心の位置ｘのＮ個のデータから、その平均値ｍと分散σとを求めた後（ＳＴＥＰ１０−１）、これらの平均値ｍと、分散σの平方根σ１／２  にあらかじめ定めた補正係数ｗ２  を乗算したものとの和（ｍ＋ｗ２  ・σ１／２  ）を足平部７の離床終了接地位置として算出する（ＳＴＥＰ１０−２）。
【００８９】
そして、このようにして階段Ｓを昇る場合に求められた足平部７の着床開始接地位置や、階段Ｓを降りる場合に求められた足平部７の離床終了接地位置は、前記目標歩容生成部１０に与えられ、前記図５のメインルーチンにおいて、前記第１の実施形態と同様に、ロボットＲの歩幅等の歩容パラメータが適宜修正される。
【００９０】
以上のように、階段Ｓを昇る場合の着床開始接地位置や、階段Ｓを降りる場合の離床終了接地位置を求めてロボットＲの歩容を適宜修正することで、前記第１の実施形態と同様に、ロボットＲによる階段Ｓの昇降を、該ロボットＲが階段Ｓを踏み外したりすることなく安定して行うことができる。そして、この場合、着床開始接地位置や離床終了接地位置を精度よく求めることができるので、このようなロボットＲの歩行制御をより安定して適正に行うことができる。また、この場合、着床開始接地位置や離床終了接地位置を求めるに際しては、６軸力センサ６の検出値Ｆｘ，Ｆｚ，Ｍｙ  （検出値Ｆｘ，Ｍｙ  から得られるモーメントＭ’ｙと検出値Ｆｚ  ）、あるいは検出値Ｆｚ，Ｍｙ  （６軸力センサ６の検出基準点Ｑを足底７ａに設定した場合）から算出される床反力中心の位置ｘの複数（Ｎ個）のデータを用いて算出するものの、その算出は単にそれらのデータの平均値ｍや分散σを求めることで行われるので、多大な演算負荷を要することもない。さらに、６軸力センサ６は、足平部７の上方に配置されて床に接触することがないため、第１の実施形態と同様に、該センサ６の損傷を生じることなく耐久性を高めることができる。
【００９１】
尚、以上説明した第１及び第２の実施形態では、基本的には、足平部７の撓み等の変形が生じないものとして、着床開始接地位置や離床終了接地位置を求めるようにしたが、床反力による足平部７の撓みを推定し、この撓みによる影響を考慮して、着床開始接地位置や離床終了接地位置を求めるようにするようにしてもよい。
【００９２】
また、第２の実施形態のように複数の床反力中心の位置ｘのデータを用いて着床開始接地位置や離床終了接地位置を求める場合にあっては、例えば階段Ｓを昇る際には、位置ｘの複数のデータのうち、値の小さな方から所定数番目の値を有するデータを着床開始接地位置として求めてもよく、逆に階段Ｓを降りる際には、位置ｘの複数のデータのうち、値の大きな方から所定数番目の値を有するデータを離床終了接地位置として求めてもよい。さらには、位置ｘの複数のデータのうち、値（ここでは絶対値）の大きな方から所定数番目までのデータを省き、残りのデータから床開始接地位置や離床終了接地位置を求めるようにしてもよい。
【００９３】
また、第２の実施形態では、複数の床反力中心の位置ｘのデータの平均値ｍ及び分散σを用いて着床開始接地位置や離床終了接地位置を求めるようにしたが、例えば次のような手法で着床開始接地位置や離床終了接地位置を求めるようにしてもよい。
【００９４】
すなわち、例えば階段Ｓを昇る場合において、足平部７の着床開始時からの床反力中心の位置ｘの時間的変化が、多項式、例えば次の二次式（４）により近似的に表されるものとし、
ｘ（ｔ）  ＝ａ・ｔ２  ＋ｂ・ｔ＋ｃ    ……（４）
算出された床反力中心の位置ｘの複数のデータから、最小二乗法により式（４）の係数ａ，ｂ，ｃを求めて該二次式（４）を決定する。このとき、前記図１５を参照して、上記二次式（４）は例えば同図仮想線ｒで示すように求められる。そして、同図を参照して、実際の着床開始時刻から着床開始の検知時刻（書き込み開始時刻ｔｏｎ）までに要するものとしてあらかじめ予測した所定時間Δｔｕ  だけ、書き込み開始時刻ｔｏｎから逆上った時刻（ｔｏｎ−Δｔｕ  ）における床反力中心の位置ｘを前述の如く求めた二次式（４）により、着床開始接地位置として求める。尚、同様の手法により、階段Ｓを降りる際の、離床終了接地位置を求めることもできることはもちろんであり、また、さらに次数の高い多項式を最小二乗法により求めて、その多項式から、着床開始接地位置や離床終了接地位置を求めるようにすることも可能である。
【００９５】
このようにして、最小二乗法を用いて複数の床反力中心の位置ｘのデータから着床開始接地位置や離床終了接地位置を求めるようにしても、該着床開始接地位置や離床終了接地位置を比較的精度よく求めることが可能である。
【００９６】
また、以上説明した各実施形態ではロボットＲの階段の昇降時の着床開始接地位置や離床終了接地位置の検出について説明したが、例えばロボットＲが凹凸のある床を歩行する場合にも、前記各実施形態と同様に、着床開始接地位置や離床終了接地位置を検出することができることはもちろんである。
【００９７】
さらに前記各実施形態では二足歩行型のロボットＲについて説明したが、さらに多くの可動脚を備えるロボットについても本発明を適用することができる。
【図面の簡単な説明】
【図１】本発明の実施形態におけるロボットが階段を昇る様子を示す模式的説明図。
【図２】本発明の実施形態におけるロボットが階段を降りる様子を示す模式的説明図。
【図３】図１の部分拡大図。
【図４】本発明の第１の実施形態で図１及び図２のロボットに搭載したコントローラのブロック図。
【図５】図４のコントローラによる処理を示すフローチャート。
【図６】図４のコントローラによる処理を示すフローチャート。
【図７】本発明の第２の実施形態で図１及び図２のロボットに搭載したコントローラのブロック図。
【図８】図７のコントローラによる処理を示すフローチャート。
【図９】図７のコントローラによる処理を示すフローチャート。
【図１０】図７のコントローラによる処理を示すフローチャート。
【図１１】図１及び図２のロボットが階段を昇る際の着床動作を示す説明図。
【図１２】図７のコントローラの処理を説明するための説明図。
【図１３】図１及び図２のロボットが階段を降りる際の着床動作を示す説明図。
【図１４】図７のコントローラの処理を説明するための説明図。
【図１５】図７のコントローラの処理を説明するための説明図。
【符号の説明】
Ｒ…二足歩行型ロボット（脚式移動ロボット）、３…可動脚、６…６軸力センサ（力センサ）、７ａ…足底。
【図１】
0003626303.tif 000002
【図２】
0003626303.tif 000003
【図３】
0003626303.tif 000004
【図４】
0003626303.tif 000005
【図５】
0003626303.tif 000006
【図６】
0003626303.tif 000007
【図７】
0003626303.tif 000008
【図８】
0003626303.tif 000009
【図９】
0003626303.tif 000010
【図１０】
0003626303.tif 000011
【図１１】
0003626303.tif 000012
【図１２】
0003626303.tif 000013
【図１３】
0003626303.tif 000014
【図１４】
0003626303.tif 000015
【図１５】
0003626303.tif 000016