(57)【要約】【課題】歩行ロボットには撓みが発生し、床との間にすべりが発生するために歩容データが指定する歩行軌跡から実際の歩行軌跡がずれてしまうことがある。【課題を解決するための手段】歩容データ記憶手段４６と、歩容データに基づいて関節角を計算する関節角群計算手段５８と、関節角群計算手段で計算された関節角に調整するアクチュエータ駆動手段６０と、接地足の位置を検出する装置と４，５２，５４と、接地足があるはずの位置と接地足がある位置との偏差を演算する装置５６と、演算された偏差によってその後の歩容データを修正する装置４８を備えている。このロボットは、修正された歩容データに基づいて、左脚リンクと腰と右脚リンクの相対的姿勢を変化させて歩行を続ける。【選択図】  図６
2005022040.tif 000002
【特許請求の範囲】
【請求項１】
足先の位置を指定するデータを記憶している歩容データ記憶手段と、
歩容データに基づいて、左脚リンクと腰と右脚リンクで構成される機械系に存在する複数の関節の関節角を計算する関節角群計算手段と、
各関節の関節角を前記関節角群計算手段で計算された関節角に調整するアクチュエータと、
接地足の位置を検出する装置と、
歩容データが指定する接地足があるはずの位置と、位置検出装置で検出された接地足の検出位置との偏差を演算する装置と、
演算された偏差によってその後の歩容データを修正する装置を備え、
修正された歩容データに基づいて、左脚リンクと腰と右脚リンクの相対的姿勢を変化させることによって歩行するロボット。
【請求項２】
接地足の位置を検出する装置は、ロボット頭部に搭載されているカメラと、カメラで撮影されたマーカの画面内位置とロボット姿勢とに基づいて接地足の位置を計算する手段を備えていることを特徴とする請求項１に記載のロボット。
【請求項３】
接地足の位置を検出する装置は、ロボットの脚リンク以外に搭載されている位置検出装置と、その位置検出装置の検出結果とロボット姿勢とに基づいて接地足の位置を計算する手段を備えていることを特徴とする請求項１に記載のロボット。
【請求項４】
接地足の位置を計算する手段は、両足が接地している期間に接地足の位置を計算することを特徴とする請求項２または３に記載のロボット。
【請求項５】
ロボット頭部に搭載されているカメラで位置が既知のマーカを撮影する工程と、そのマーカの画面内位置からカメラ位置を計算する工程と、計算されたカメラ位置とロボット姿勢から接地足の位置を計算する工程と、歩幅を指定するデータから計算される接地足位置とカメラ位置から計算される接地足位置の偏差を計算する工程と、計算された偏差に基づいて次の歩幅を指定するデータを修正する工程を備えている歩行ロボットの制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】本発明は、左脚リンクと腰と右脚リンクから構成される機械系を備え、その機械系に存在する複数の関節を利用して、左脚リンクと右脚リンクの相対的姿勢を変化させることによって歩行するロボットの制御技術に関する。
【０００２】
【従来の技術】左脚リンクと腰と右脚リンクの相対的姿勢を変化させることによって歩行するロボットが開発されている。通常は、腰と左上腿が左股関節によって接続され、左上腿と左下腿が左膝関節で接続され、左下腿と左足先が左足首関節で接続され、腰と右上腿が右股関節によって接続され、右上腿と右下腿が右膝関節で接続され、右下腿と右足先が右足首関節で接続されている。左脚リンクと腰と右脚リンクで構成される機械系には複数の関節が存在しており、その関節を利用することによって、左脚リンクと腰と右脚リンクの相対的姿勢を変化させることができる。
【０００３】
左脚リンクと腰と右脚リンクの相対的姿勢を変化させる場合、結果として歩行した結果が得られるように、左脚リンクと腰と右脚リンクの相対的姿勢を変化させなければならない。
このために、左足先と右足先の位置を指定する歩容データが利用される。歩容データは、左足先と右足先の位置を指定するデータを経時的に記憶している。
歩容データの作成段階では、左脚リンクと右脚リンクの相対的姿勢の変化を想定して歩容データを作成する。左脚リンクと右脚リンクの足先が接地している状態から、一方の脚リンクの足先を上昇させ、前方に移動させ、ついで下降させることによって遊脚リンクを一歩すすめて着地させる歩容データを作成する。
【０００４】
歩容データが作成されると、その歩容データはロボットに与えられる。ロボットは、歩容データに従って、左足先と右足先の位置を経時的に変化させる。経時的に変化する左足先と右足先の位置を指定する歩容データに従って、左脚リンクと右脚リンクの相対的姿勢を経時的に変化させることによってロボットは歩行する。
【０００５】
【発明が解決しようとする課題】ロボットの機械系に撓みがなく、接地足と床との間にすべりが生じなければ、ロボットは歩容データのとおりに歩行し、歩容データ作成者が指定した軌跡に沿って歩行するはずである。
しかしながら、実際にはロボットの機械系に撓みが発生し、あるいは接地足と床との間にすべりが発生するために、実際のロボットの歩行軌跡が歩容データの指定する歩行軌跡からずれてしまうことがある。
ロボットにカメラを搭載しておき、位置が既知のマーカを撮影するようにすると、その撮影結果からカメラ位置を計算することができる。この技術が特許文献１に開示されている。
この技術を利用すると、ロボットの実際位置と教示位置（歩容データが指定する位置を教示位置ということがある）との偏差を計算し、計算された偏差によってその後の教示位置を修正することによって、実際位置と教示位置の偏差がゼロとなるように修正できるはずである。
しかしながら、実際にはうまくいかない。通常、カメラはロボットの頭部に搭載されており、ロボットの歩行中にカメラ位置は常に動く。常に動くものに関してフィードバック制御をしてもフィードバック制御の目的が達せられず、実際位置と教示位置の偏差がゼロとなるように修正しながら歩行させることが難しい。本発明は、常に動く位置ではなく、少なくとも所定の期間に亘って静止する位置を利用して、実際位置と教示位置の偏差がゼロとなるように修正しながら歩行するロボットを実現する。少なくとも所定の期間に亘って静止する位置を利用してフィードバック制御を実行すると、フィードバック制御の安定性が向上し、実際位置と教示位置の偏差がゼロとなるように修正しながら歩行させることが可能となる。
【０００６】
【特許文献１】
特開２００２―４８５１３号公報
【０００７】
【課題を解決するための手段と作用】本発明で創作されたロボットは、足先の位置を指定するデータを記憶している歩容データ記憶手段と、歩容データに基づいて、左脚リンクと腰と右脚リンクで構成される機械系に存在する複数の関節の関節角を計算する関節角群計算手段と、各関節の関節角を前記関節角群計算手段で計算された関節角に調整するアクチュエータと、接地足の位置を検出する装置と、歩容データが指定する接地足があるはずの位置と位置検出装置で検出された接地足の検出位置との偏差を演算する装置と、演算された偏差によってその後の歩容データを修正する装置を備えている。このロボットは、修正された歩容データに基づいて、左脚リンクと腰と右脚リンクの相対的姿勢を変化させて歩行を続ける。
【０００８】
このロボットは、教示位置と実際位置の偏差を求めるにあたって、常に変動する頭部ないしカメラ位置を利用せず、接地している間は移動しない接地足の位置を利用する。接地している間は移動しない接地足の位置に関する教示位置と実際位置の偏差を計算するようにすると、接地足の検出位置に関する検出精度が向上するために、教示位置からの偏差が正確に計算でき、その後の修正量を過不足なく計算することができる。
このロボットは、教示位置に対する追従性が高く、歩行軌跡の再現性が高い。また、複数のロボットが同時に歩行する場合に、ロボット間の相対位置関係を維持しながら歩行を続けることを可能とする。
【０００９】
接地足の位置を検出する装置は、ロボット頭部に搭載されているカメラと、カメラで撮影されたマーカの画面内位置とロボット姿勢とに基づいて接地足の位置を計算する手段を備えていることが好ましい。
ロボット姿勢を加味することによってカメラ位置から接地足位置を計算するようにすると、計算された接地足位置は、接地期間中は一定値となるはずである。接地期間中に多数回撮影して多数回接地足位置を計算することができる。このときに、平均化処理したり、信用できないデータを処理対象から外したりすることができ、接地足位置の計算結果の信頼性を高める数学的手法を駆使することができる。常に動くために偏差の計算には利用しずらい頭部に搭載されているカメラによって、教示位置と実際位置の偏差を正確に計算することが可能となる。
電波や超音波を利用することによって位置を検出する装置が開発されている。ロボットの活動範囲に飛来する電波をロボットで受信し、受信した電波を分析することによって受信機の位置を検出することができる（人工衛星から発振される電波を受信して位置を検出するＧＰＳと同様の技術が利用できる）。ロボットの活動範囲に向けて超音波を送信し、ロボットで受信した超音波の受信タイミングを分析することによって受信機の位置を検出することができる。あるいは、ロボットに電波レーダや超音波レーダを搭載することによって、レーダの位置を検出することができる。
これらの位置検出装置を足先に設置することができれば、接地足位置を直接に検出することができる。しかしながら、実際には、足先に位置検出装置を設置することは困難であり、胴部や頭部等の脚リンク以外に搭載することになる。ロボットの脚リンク以外に位置検出装置が搭載されている場合には、位置検出装置の検出結果とロボット姿勢とに基づいて接地足の位置を計算する手段を設けることが好ましい。
接地足の足先位置が判明すると、教示位置と実際位置の偏差を正確に計算することができ、その後の補正量を正確に計算することができる。
【００１０】
両足が接地している期間に、接地足の位置を計算することが好ましい。両足が接地している期間は、ロボットの機械系が撓みにくく、カメラ位置にロボット姿勢を加味することによって計算される接地足位置の精度が高い。あるいは、位置検出装置の検出結果にロボット姿勢を加味することによって計算される接地足位置の精度が高い。
【００１１】
本発明では、ロボット頭部に搭載されているカメラで位置が既知のマーカを撮影する工程と、そのマーカの画面内位置からカメラ位置を計算する工程と、計算されたカメラ位置とロボット姿勢から接地足の位置を計算する工程と、歩幅を指定するデータから計算される接地足位置とカメラ位置から計算される接地足位置の偏差を計算する工程と、計算された偏差に基づいて次の歩幅を指定するデータを修正する工程を実施して歩行ロボットを制御する。
この制御方法によると、歩行ロボットの歩行軌跡の再現性が高められ、複数のロボットが同時に歩行する場合に、ロボット間の相対位置関係を維持しながら歩行を続けることが可能となる。
【００１２】
【実施の形態】以下に説明する実施例の主要な特徴を最初に列記する。
（形態１）  ロボットの頭部に搭載されているカメラで、位置が既知の４個のマーカを撮影する。４個のマーカは、左側の２個のマーカと右側の２個のマーカで構成され、それぞれの側の２個のマーカは上下に配置されている。マーカ間の左右の間隔と上下の間隔は既知である。
（形態２）  右側の上下２個のマーカ間距離の撮影画面内の距離から右側マーカからの水平距離を計算する。左側の上下２個のマーカ間距離の撮影画面内の距離から左側マーカからの水平距離を計算する。右側マーカからの水平距離と左側マーカからの水平距離によって、カメラの水平面内位置を計算する。
（形態３）  オペレータは、歩行するロボットを観測しながら、足先位置を指定するデータを入力する。
（形態４）  オペレータが指定した足先位置を指定するデータに基づいて、体幹位置を指定するデータを計算し、指定された足先位置のデータと計算された体幹位置のデータで構成される歩容データをロボットに指令する。ロボットは、オペレータの指定にほぼリアルタイムで追従しながら歩行する。
（形態５）  歩行するロボットを観測しながらオペレータが指定した足先位置のデータと、それから計算された体幹位置のデータで構成される歩容データは記憶装置に記憶される。
（形態６）  記憶された歩容データを用いてロボットが歩行するときには、接地足の教示位置と実際位置の偏差によって、記憶されている歩容データを修正する。
【００１３】
【実施例】図１２は、左脚リンク１４７と腰１０１と右脚リンク１１７から構成される機械系を備えた２足歩行ロボット２の機械的構成を示す。
左脚リンク１４７は、左上腿１４８と左膝関節１５０と左下腿１５２と左足首関節１５８と左足先１６２を備える。左膝関節１５０はピッチ軸ｙの回りの関節角が可変であり、左足首関節１５８はピッチ軸ｙの回りの関節角とロール軸ｘの回りの関節角が可変である。図１２では、図示の明瞭化のために、関節角を変えるアクチュエータによって関節が代表されている。例えば参照番号１５０は、膝関節と膝関節の関節角を変えるアクチュエータに共通的に用いられる。参照番号１５４は、足首関節１５８のピッチ軸ｙの回りの関節角を変えるアクチュエータであり、参照番号１５６は、足首関節１５８のロール軸ｘの回りの関節角を変えるアクチュエータである。左足先１６２には、左足先１６２と床との間で作用する力、この場合、ロール軸ｘ方向の力と、ピッチ軸ｙ方向の力と、重力線ｚ方向の力と、ロール軸ｘ回りのモーメントと、ピッチ軸ｙ回りのモーメントと、重力線ｚ回りのモーメントを計測する６軸力センサ１６０が取り付けられている。
左右の脚リンク１１７，１４７は左右対称であり、右脚リンク１１７は、右上腿１１８と右膝関節１２０と右下腿１２２と右足首関節１２８と右足先１３２を備える。右膝関節１２０はピッチ軸ｙの回りの関節角が可変であり、右足首関節１２８はピッチ軸ｙの回りの関節角とロール軸ｘの回りの関節角が可変である。右足先１３２にも、６軸力センサ１３０が取り付けられている。
腰１０１は、腰プレート１０８と腰柱１０４を備えており、両者の間には腰関節１０６が設けられている。腰柱１０４には、腰柱１０４のピッチ軸ｙの回りの傾斜角とロール軸ｘ回りの傾斜角と重力線ｚ軸回りの回転角を計測するジャイロ１０２が固定されている。腰柱１０４のピッチ軸ｙの回りの傾斜角とロール軸ｘの回りの傾斜角は、腰関節１０６が回転しても影響を受けない。
【００１４】
左脚リンク１４７と腰１０１は、左股関節１４６で接続されている。左股関節１４６は、重力線ｚ軸の回りの関節角を変えるアクチュエータ１４０と、ピッチ軸ｙの回りの関節角を変えるアクチュエータ１４２と、ロール軸ｘの回りの関節角を変えるアクチュエータ１４４を備えている。右脚リンク１１７と腰１０１は、右股関節１１６で接続されている。右股関節１１６は、重力線ｚ軸の回りの関節角を変えるアクチュエータ１１０と、ピッチ軸ｙの回りの関節角を変えるアクチュエータ１１２と、ロール軸ｘの回りの関節角を変えるアクチュエータ１１４を備えている。
【００１５】
図１２の機械系を利用して歩行する場合、結果として歩行した結果が得られるように、左脚リンク１４７と腰１０１と右脚リンク１１７の相対的姿勢を変化させなければならない。
このために、左足先と腰と右足先の位置と姿勢を指定する歩容データが利用される。図１に示すように、歩容データは、ロボットが活動する空間の座標を定めるグローバル座標系において、左足先と腰と右足先の位置と姿勢を指定する。左足先と腰と右足先の位置を指定するために、左足先１６２には基準点１０が定められており、右足先１３２には基準点１２が定められており、腰１０１には基準点８が定められている。左足先と腰と右足先の姿勢を指定するために、左足先１６２に垂直なベクトルＬが想定されており、右足先１３２に垂直なベクトルＲが想定されており、腰柱４に沿って伸びるベクトルＷが想定されている。
左足先１６２のベクトルＬは常時垂直であっても良いし、足先の移動に追従して角度を変えてもよい。右足先１３２のベクトルＲも、同様に、常時垂直であっても良いし、足先の移動に追従して角度を変えてもよい。腰１０１のベクトルＷは、歩行速度に追従して前傾角を変えてもよいし、一定の角度を維持するようにしてもよい。
【００１６】
図６に示すように、歩行するロボットを観測しながら、オペレータが次の歩幅や歩行速度を指定するために用いるジョイスティック４０が用意されている。オペレータは、ジョイスティック４０を利用して、左足先位置を指定するデータと、右足先位置を指定するデータと、歩速を指定するデータを入力する。
【００１７】
図１は、オペレータが入力した左足先位置と右足先位置の軌道例を例示しており、ロボット２は、左足を軌跡１４に沿って移動させて接地させ、ついで右足を軌跡１６に沿って移動させて接地させる。以後同様に、左足を軌跡１８に沿って移動させ、右足を軌跡２０に沿って移動させ、左足を軌跡２２に沿って移動させ、右足を軌跡２４に沿って移動させる。
各歩幅はオペレータによって指定される。例えば、右足軌跡２４では、ｘ軸方向に２４ｘだけ進め、ｙ方向に２４ｙだけ進めて着地させることが指定される。
【００１８】
ロボット２の頭部６にはビデオカメラ４が搭載されている。ビデオカメラ４は、ロボット２が歩行する領域の外側に設置されているマーカ２６，２８，３０，３２を撮影する。
４個のマーカは、左側の２個のマーカ２６，２８と右側の２個のマーカ３０，３２で構成され、各側の２個のマーカは上下に配置されている。マーカ間の左右の間隔（２Ｂ）と上下の間隔（Ａ）は既知である。また、４個のマーカの位置は既知であり、ここでは、左右のマーカの中間位置のｘ座標とｙ座標が（０，０）にとられている。上下のマーカの中間高さはカメラ４の高さにほぼ等しい。
【００１９】
図３に示すように、ビデオカメラ４が４個のマーカ２６，２８，３０，３２を撮影することによって、カメラ４の位置を計算することができる。
図４は、ビデオカメラ４の撮影画面の映像を示している。添え字ｇは、マーカの像であることを示している。
ビデオカメラ４はＣＣＤカメラであり、撮影画面内の画素の座標を知ることができる。図４に示される式のＸ、Ｙは、撮影画面内の画素の座標を示している。例えば、Ｘ２６はマーカ２６の像２６ｇの撮影画面内のＸ座標を示している。マーカ２６の像２６ｇとマーカ２８の像２８ｇの撮影画面内の距離は（１）式で示され、マーカ３０の像３０ｇとマーカ３２の像３２ｇの撮影画面内の距離は（２）式で示される。
【００２０】
ビデオカメラ４のズーム率は既知であり、左側の上下２個のマーカ間の距離は既知であることから、（１）式で計算される左側の上下２個のマーカ間の撮影画面内の距離から、左側の上下２個のマーカの中間点からビデオカメラ４までの距離Ｅを計算することができる。同様に、右側の上下２個のマーカの中間点からビデオカメラ４までの距離Ｆを計算することができる。
図５の（３）式と（４）式がそれを示し、αはズーム率から計算される係数である。ビデオカメラのレンズにひずみがあって、撮影画面内の位置によってズーム率が異なる場合には、撮影位置によって係数αを変えるルックアップテーブルを用意しておくことが好ましい。
【００２１】
図５のｘ−ｙ座標系において、原点からｙ方向に±Ｂだけ離れた点からの距離Ｅ，Ｆが計算されれば、カメラ４の位置Ｐの座標（Ｐｘ，Ｐｙ）を計算することができる。図５の（５）（６）式がそれを示している。
このようにして、図１に示すロボット２は、カメラ４の位置（Ｐｘ，Ｐｙ）を計算することができる。
カメラ４の位置が計算されると、それにロボット２の姿勢を加味することによって、接地足の位置を計算することができる。
【００２２】
この実施例では、カメラ４の向いている方向をも知ることができる。図４に示すように、左側の２個のマーカ２６，２８の像のＸ方向の平均画素位置をＨ、右側の２個のマーカ３０，３２の像のＸ方向の平均画素位置をＫ、ＨとＫの平均値をＪとする。また、カメラ視野の中心位置のＸ方向の画素位置をＬとする。さらに、図５に示すように、カメラ視野の中心線がｙ軸と交差する点のｙ座標をＳとする。すると、図５の（７）式が成立し、Ｓの値を計算することができる。Ｓの値が計算できれば、（８）式から、カメラ視野の中心線とｘ軸がなす角θを計算することができる。
【００２３】
図２は、ステップ２０の後の右足の位置を示している。２０ｃは、オペレータが教示した位置である。それに対して２０ｄは、カメラ４の位置にロボット２の姿勢を加味することによって計算された右足の位置であり、教示位置からΔｘとΔｙだけずれている。この場合、次のステップ２４のために教示されているｘ方向の歩幅２４ｘをΔｘだけ長くし、ｙ方向の歩幅２４ｙをΔｙだけ短くすれば、ステップ２４の後の右足の位置は教示された位置２４ｃに修正されることがわかる。本実施例のロボットは、上記のようにして、教示位置と実際位置の偏差がゼロとなるようにそれ以降の歩幅のデータを修正して歩行する。教示された歩行軌跡に対する追従性が高い。
【００２４】
図６は、ロボット２の制御ブロック図を示す。前記したジョイスティック４０が用意されている。ジョイスティック４０はオペレータが、図１に例示した足先軌道１４，１６，１８，２０，２２，２４を指定するために利用され、ロボット２の外部におかれている。オペレータは、歩速を指定するデータを入力することもできる。
ジョイスティック４０からは、左足先の位置を指定するデータ、右足先の位置を指定するデータ、歩速を指定するデータが入力される。後記するように、オペレータは、歩行するロボット２を観測しながら、次の歩幅や歩速を指定する。オペレータが指定する左足先の位置を指定するデータと、右足先の位置を指定するデータと、歩速を指定するデータは逐次に変化し、逐次に入力される。
【００２５】
オペレータが指定した、左足先の位置を指定するデータと右足先の位置を指定するデータは、目標ＺＭＰ位置計算手段４２に入力される。ＺＭＰ位置は、床からロボットに作用する反力によるモーメントがゼロになる点を言い、ロボットの体幹位置と足先位置とその変化速度がわかれば、計算することができる。ロボットの挙動が動的であって慣性の影響を受けることから、ＺＭＰ位置は体幹位置等の変化速度に異存する。ＺＭＰ位置が接地足の足平内にあれば、ロボットは転倒しない。ＺＭＰ位置が接地足の足平外にでると、ロボットは転倒する。そこで、ＺＭＰ位置が、片足接地中は接地足の足平内にあり、両脚接地状態の間に、新たに接地して次に片足接地足となる足の足平内に向けて移動することが重要である。目標ＺＭＰ位置計算手段４２は、左右の足先の位置を示すデータから、ＺＭＰがそう変化すればロボット２が転倒しないはずのＺＭＰ位置を計算する。これを目標ＺＭＰという。目標ＺＭＰは、左右の足先位置が経時的に変動するのに追従して経時的に変動する。
【００２６】
目標ＺＭＰ位置計算手段４２で計算された目標ＺＭＰと、ジョイスティック４０から入力された左右の足先の位置を示すデータと、ジョイスティック４０から入力された歩速を示すデータは、体幹位置計算手段４４に入力される。前記したように、ロボットの体幹位置を仮定すれば、足先位置はすでに指定されていることから、そのときに得られるＺＭＰ位置が計算される。このようにして計算されるＺＭＰ位置が目標ＺＭＰに一致していれば、ロボット２は転倒しない。そこで、体幹位置計算手段４４は、体幹位置を未知数とし、目標ＺＭＰをもたらす体幹位置を計算して算出する。このようにして算出された体幹位置と、左右の足先の位置を示すデータに従って、ロボット２が姿勢をかえると、ＺＭＰが目標ＺＭＰに一致し、ロボットは転倒することなく歩行することができる。
【００２７】
経時的に変化する左右の足先位置を示すデータと体幹位置を示すデータは、歩容データと呼ばれる。このデータは、歩容データ記憶手段４６に記憶される。
オペレータが歩行軌跡と歩速を指定し終えると歩容データは完成し、完成した歩容データが歩容データ記憶手段４６に記憶される。歩容データ記憶手段４６に歩容データが記憶されると、それ以降には、歩容データ記憶手段４６に記憶された歩容データを利用してロボット２を歩行させることができる。この場合には、歩容データ修正手段４８が利用される。
オペレータが歩行するロボットを観測しながら歩容データを指定する段階では、歩容データ修正手段４８が作動せず、歩容データ記憶手段４６に記憶される歩容データがそのままロボット２に指令される。
【００２８】
ロボット２は関節角群計算手段５８を備えている。関節角群計算装置５８は、歩容データで指定される左右の足先位置と体幹位置を実現する関節角群を計算する。関節角群計算装置５８は、いわゆる逆キネマティクスを解いて関節角群を計算する。関節角群計算装置５８は、ロボットの歩行動作に対してリアルタイムで関節角群を計算する。関節角群計算装置５８は、物理的にはロボット２の外部にあってもよく、計算された関節角群を無線または有線でロボット２に送信して指定するものであってもよい。
ロボット２は、関節を回転させるアクチュエータを駆動する手段６０を備え、各関節回転角を、関節角群計算装置５８によって計算された関節角に調整する。
【００２９】
ロボット２は、マーク２６，２８，３０，３２を撮影するビデオカメラ４を備えており、図５の（５）（６）式からカメラ位置を計算する手段５２を備え、さらに、カメラ位置にロボット姿勢を加味して接地足の位置を計算する手段５４を備えている。歩容データ記憶手段４６に記憶されている歩容データは、体幹の位置に対する足先位置のデータを記憶している。また体幹の姿勢から体幹の位置に対する頭部の位置を計算することができる。従って、歩容データから、カメラ４の位置に対する足先の相対位置を計算することができる。接地足の位置計算手段５４は、カメラ位置計算手段５２で計算されたカメラ位置と、歩容データ記憶手段４６に記憶されたロボットの姿勢（実際にはカメラ４に対する足先の相対位置を示すデータを用いる）から、接地足の位置を計算する。
ロボット２が、カメラ４に代えて、位置検出装置を搭載していてもよい。位置検出装置の種類には限定がなく、受信した電波や超音波を分析することによって受信機の位置を検出するタイプや、電波レーダや超音波レーダを利用して位置を検出するタイプが利用できる。
これらの位置検出装置をロボット２の足先に設置することができれば、接地足位置を直接に検出することができる。しかしながら、実際には、足先に位置検出装置を設置することは困難であり、脚リンク以外の胴部１０１や頭部６等に搭載することになる。ロボットの脚リンク以外に位置検出装置が搭載されている場合には、位置検出装置の検出結果とロボット姿勢とに基づいて接地足の位置を計算する手段を設けることによって接地足の位置を計算する。
【００３０】
ロボット２は、歩容データ記憶手段４６に記憶されている歩容データによって指定される接地足の足先位置（図２の２０ｃ）と、接地足の位置計算手段５４で計算された接地足の位置（図２の２０ｄ）の偏差（Δｘ、Δｙ）を計算する手段５６を備えている。
偏差計算する手段５６で計算された偏差（Δｘ、Δｙ）は、歩容データ修正手段４８に送られ、その後の歩容データの修正に用いられる。
【００３１】
図７は、歩行するロボット２を観測しながらオペレータが指定する足先位置から歩容データを作成し、作成された歩容データを歩容データ記憶手段４６に記憶するとともにロボット２に指示してロボット２をリアルタイムで歩行させるときに実行される処理手順を示す。歩容データ記憶手段４６に記憶された歩容データは、その後の歩行に利用される。
ステップＳ１では、オペレータが教示操作を開始するときのロボット２の左足先位置と右足先位置を検出して記憶する。この処理では、マーク撮影カメラ４と、カメラ位置計算手段５２と、接地足先位置計算手段５４が利用され、教示操作開始時の左足先位置と右足先位置を検出して記憶する。ロボット２は既知の姿勢で静止している。
【００３２】
ステップＳ２では、歩数ｔを１に初期化する。ここでは、左右の足ごとに歩数がカウントされ、左足１歩目、右足１歩目、左足２歩目、右足２歩目とカウントする。
この実施例ではロボット２が左足から歩行を始める。オペレータは、左足１歩目のｘ方向の歩幅Ｌｘｔ（最初はｔ＝１）とＹ方向の歩幅Ｌｙｔと歩速を指定するので、指定された値を入力して歩容データ記憶手段４６に記憶する（ステップＳ４）。
ステップＳ６では、左足ｔ歩目の間の目標ＺＭＰを計算し、計算された目標ＺＭＰを体幹位置計算手段４４に送る。ステップＳ８では、体幹位置計算手段４４が左足ｔ歩目のための体幹位置を計算して歩容データ記憶手段４６に記憶する。
ステップＳ１２では、右足ｔ歩目のｘ方向の歩幅ＲｘｔとＹ方向の歩幅Ｒｙｔと歩速を指定するので、指定された値を入力して歩容データ記憶手段４６に記憶する。ステップＳ１４では、右足ｔ歩目の間の目標ＺＭＰを計算し、計算された目標ＺＭＰを体幹位置計算手段４４に送る。ステップＳ１６では、体幹位置計算手段４４が右足ｔ歩目のための体幹位置を計算して歩容データ記憶手段４６に記憶する。
以上の処理を歩を進めながら（ステップＳ２０）、オペレータが歩行終了を指令するまで繰返す。
【００３３】
図８は、リアルタイムで教示するときの全体処理を示し、ステップＳ２２でリアルタイムで教示される歩容データを歩容データ記憶手段４６に記憶する。その詳細は図７に示されている。リアルタイムで教示するときには、歩容データが計算されて歩容データ記憶手段４６に累積して記憶されるのと同時にロボット２に指令される。ロボット２は指令された歩容データに従って動作し、指令されたように歩行する。そこで、オペレータは歩行するロボット２を観測しながら、それ以降の歩容データを指定していくことができる。歩行するロボット２を観測しながら、それ以降の歩容データを指定していくことを、リアルタイムで教示するという。
【００３４】
図１０は、歩容データが指令されたロボット２が実行する処理を示す。ステップＳ３６で歩容データを読出し、読みだされた足先位置と体幹位置を実現する関節角群を計算し（ステップＳ３８）、アクチュエータを制御して計算された関節角に一致させる（ステップＳ４０）。それを全ての歩容データが読みだされるまで繰返す。
【００３５】
図９は、リアルタイムで教示された歩容データを歩容データ記憶手段４６に記憶しておき、後刻にそれを読みだしてロボット２を歩行させるときの処理手順を示す。
ステップＳ２８では、歩容データ記憶手段４６から歩容データを読みだす。最初の一歩目については、ステップＳ３０から３４による修正処理が実行されず、ロボットは読みだされた歩容データに従って歩行する（ステップＳ２６）。
２歩目移行の歩容データを読みだすと（ステップＳ２８）、マーク撮影カメラ４とカメラ位置計算手段５２を利用してカメラ位置を計算する（ステップＳ３０）。さらにロボットの姿勢を加味して接地足先位置計算手段５４が接地足の位置を計算する（ステップＳ３２）。接地足の教示位置と検出された接地足の位置の偏差によって歩容データが修正され（ステップＳ３４）、修正された歩容データがロボットに指令される（ステップＳ２６）。ロボット２は、図１０の処理を実行し、修正された歩容データに従って歩行する。
【００３６】
図１１は、歩容データ修正処理の詳細を示している。図９のステップＳ３４の詳細に相当する。図１１の処理は、ｔ歩まで歩行してｔ＋１歩目を歩行する間に実行される。
ステップＳ４４では、歩行開始時の左足座標Ｌｘ０，Ｌｙ０と右足座標Ｒｘ０，Ｒｙ０と、ｔ歩目までの歩容データから、接地足が現在いるはずの座標（教示上の位置）の位置を計算する。教示上の左足座標をＬｘｔ，Ｌｙｔとし、教示上の右足座標Ｒｘｔ，Ｒｙｔとすると、これらは、ステップＳ４４に記載の式で計算することができる。
ステップＳ４６では、マーク撮影カメラ４とカメラ位置計算手段５２を利用してカメラ位置を計算する。その詳細は、図３〜５を参照して説明した。ステップＳ４８では、歩容データからロボットの姿勢を計算する。ステップＳ５０では、ステップＳ４６で計算されたカメラ位置に、ステップＳ４８で計算されたロボット姿勢を加味して、接地足の位置を計算する。この計算には、接地足位置計算手段５４が利用される。
接地足位置計算手段５４で接地足の位置を計算する場合、ロボットの両足が接地している状態で接地足の位置が計算される。ロボットの両足が接地していると、ロボットに生じる撓みが少なく、歩容データが指定するロボット姿勢と実際姿勢が良く一致する。このために、カメラ位置にロボット姿勢を加味して接地足の位置を計算するにあたって、接地足位置を精度よく計算することができる。
両足接地期間中にビデオカメラ４はマーカ群を多数回撮影する。このために、多数回に亘って、接地足位置を計算することができる。この間において、接地足位置は不動であるとすることができる。そこで大きく相違する信用できないデータを処理対象から外した上で平均化処理することができ、このようにして計算された接地足位置は正確であるといえる。信用できるデータのみを平均化処理して計算された接地足の左足座標をＬｘｕ，Ｌｙｕとし、右足座標をＲｘｕ，Ｒｙｕとすると、これらは接地足の左足座標と右足座標を正確に示している。
ステップＳ５２では、教示上の左足座標Ｌｘｔ，Ｌｙｔと右足座標Ｒｘｔ，Ｒｙｔと、検出された左足座標をＬｘｕ，Ｌｙｕと右足座標をＲｘｕ，Ｒｙｕの偏差ΔＬｘ，ΔＬｙ，ΔＲｘ，ΔＲｙを計算する。
以上によって、ｔ歩目を終了したときの教示上の足先位置と実際の足先位置の偏差ΔＬｘ，ΔＬｙ，ΔＲｘ，ΔＲｙが計算される。
ステップＳ５４では、計算された偏差を利用してｔ＋１歩目の歩幅データを修正する。ステップＳ５４の右項に示すＬｘｔ＋１，Ｌｙｔ＋１，Ｒｘｔ＋１，Ｒｙｔ＋１は、修正前のｔ＋１歩目の教示された歩幅データを示す。これから偏差ΔＬｘ，ΔＬｙ，ΔＲｘ，ΔＲｙを減じることによって、修正後の歩幅Ｌｘｔ＋１，Ｌｙｔ＋１，Ｒｘｔ＋１，Ｒｙｔ＋１を計算する。修正された歩幅データに従ってｔ＋１歩目を進めると、図２を参照して説明したように、ｔ＋１歩目を終了したときの接地足の足先位置は、教示された位置に復帰する。
【００３７】
以上に説明した実施例は例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
また本明細書または図面に説明した技術要素は、単独であるいは各種の組合わせによって技術的有用性を発揮するものであり、出願時の請求項記載の組合わせに限定されるものではない。
【００３８】
【発明の効果】
本発明によると、ロボットが教示された軌跡に忠実に従って歩行することができる。繰返して同一軌跡を歩行する場合には歩行軌跡の再現性が高い。また、複数のロボットが同時に歩行する場合には、ロボット間の相対位置関係を維持しながら歩行を続けることを可能とする。
【図面の簡単な説明】
【図１】ロボットに教示する足先軌跡とロボットが位置の検出に用いるマーカを示す図。
【図２】教示上の足先位置と実際の足先位置と、その差を無くすのに必要な歩幅の修正量の関係を示す図。
【図３】マーカからロボット位置を計算する過程を説明する図。
【図４】撮影されたマーカからロボットまでの距離を計算する過程と式を説明する図。
【図５】撮影されたマーカからロボットの位置を計算する過程と式を説明する図。
【図６】ロボット２の制御ブロック図。
【図７】オペレータがリアルタイムで足先位置を指定し、ロボットが指定されたデータに従って歩行するときの処理手順図を示す。
【図８】オペレータがリアルタイムで足先位置を指定し、ロボットが指定されたデータに従って歩行するときの全体処理手順図を示す。
【図９】ロボットが予め記憶されている歩容データに従って歩行するときの処理手順図を示す。
【図１０】歩容データに従って歩行するロボットが実行する処理手順を示す。
【図１１】歩容データを修正する処理の詳細処理手順を示す。
【図１２】ロボット２の機械構成を示す。
【符号の説明】
２：ロボット
４：マーカ撮影用ビデオカメラ
４０：ジョイスティック
４２：目標ＺＭＰ位置計算手段
４４：体幹位置計算手段
４６：歩容データ記憶手段
４８：歩容データ修正手段
５２：カメラ位置計算手段
５４：接地足先位置計算手段
５６：偏差計算手段
【図１】
2005022040.tif 000003
【図２】
2005022040.tif 000004
【図３】
2005022040.tif 000005
【図４】
2005022040.tif 000006
【図５】
2005022040.tif 000007
【図６】
2005022040.tif 000008
【図７】
2005022040.tif 000009
【図８】
2005022040.tif 000010
【図９】
2005022040.tif 000011
【図１０】
2005022040.tif 000012
【図１１】
2005022040.tif 000013
【図１２】
2005022040.tif 000014