"当該ロボットの歩行時に動ける各関節を含むロボット関節部と、当該ロボットの着地情報と姿勢情報とを測定するセンサ部と、当該ロボットの着地情報と姿勢情報とを用いて前記各関節の関節位置軌跡を生成する関節位置軌跡生成部と、前記各関節の関節位置軌跡を補正するための関節位置軌跡補正値を計算する関節位置軌跡補正値計算部と、前記関節位置軌跡補正値を用いて前記各関節の関節位置軌跡を補正し、補正された各関節の関節位置軌跡によって各関節の関節トルクを計算する関節トルク計算部と、前記各関節の関節トルクを補正するための関節トルク補正値を計算する関節トルク補正値計算部と、前記関節トルク補正値を用いて前記各関節の関節トルク命令を補正し、補正された各関節の関節トルク命令に追従するようにモータ電流を計算し、計算されたモータ電流によって前記各関節に設置されたモータのトルクのサーボ制御を行う関節トルクサーボ制御部と、を含む人間型ロボット。前記センサ部は、当該ロボットの着地状態を測定するための多軸F/Tセンサと、当該ロボットの姿勢を測定するためのポーズセンサと、を含む、請求項1に記載の人間型ロボット。前記関節位置軌跡生成部は、左足又は右足が地面に着地する場合、互いにスイッチングする複数のマシン状態と、前記複数のマシン状態のスイッチングによって左足又は右足の着地状態を判断し、前記各関節の関節位置軌跡命令を計算する関節位置軌跡計算部と、を含む、請求項1に記載の人間型ロボット。前記関節トルク計算部は、第1~第3の位置演算器、比例ゲイン制御器及び微分ゲイン制御器を含み、式1のように前記各関節の関節トルク命令τdを計算し、前記第1の位置演算器は、関節位置軌跡命令θdと前記モータからフィードバックされる現在の関節位置θとの減算値θd-θを出力し、前記比例ゲイン制御器は、前記減算値θd-θと比例ゲインkpとの乗算値kpθd-θを前記第2の位置演算器に出力し、前記第3の位置演算器は、微分された関節位置軌跡命令と微分された現在の関節位置との減算値を前記微分ゲイン制御器に出力し、前記微分ゲイン制御器は、前記減算値と微分ゲインkdとの乗算値を前記第2の位置演算器に出力し、前記第2の位置演算器は、二つの乗算値kpθd-θ及びと逆運動学方程式を用いて予め計算されたフィードフォワードパラメータτffとを加算し、前記各関節の関節トルク命令τdを出力する、請求項1に記載の人間型ロボット。前記センサ部は、前記モータに設置されたエンコーダをさらに含み、前記エンコーダで前記現在の関節位置θを測定する、請求項4に記載の人間型ロボット。前記関節トルクサーボ制御部は、モータ制御器と、前記モータのトルクを測定するトルクセンサと、を含み、前記モータ制御器は、前記トルクセンサによって測定された関節トルク値のフィードバックを受け、前記各関節の関節トルク命令に追従するように前記モータを駆動する、請求項1に記載の人間型ロボット。前記モータ制御器は、第1~第3のトルク演算器、比例ゲイン制御器、積分器、積分ゲイン制御器及び微分ゲイン制御器を含み、式2のようにモータ電流iを計算し、前記第1のトルク演算器は、関節トルク命令τdと前記トルクセンサからフィードバックされる現在のモータトルクτとの減算値τd-τを出力し、前記比例ゲイン制御器は、前記減算値τd-τと比例ゲインkpとの乗算値kpτd-τを前記第2のトルク演算器に出力し、前記積分器は、前記減算値τd-τを積分して前記積分ゲイン制御器に出力し、前記積分ゲイン制御器は、積分した減算値と積分ゲインkiとの乗算値を前記第2のトルク演算器に出力し、前記第3のトルク演算器は、微分された関節トルク命令と微分された現在のモータトルクとの減算値を前記微分ゲイン制御器に出力し、前記微分ゲイン制御器は、前記減算値と微分ゲインkdとの乗算値を前記第2のトルク演算器に出力し、前記第2のトルク演算器は、前記乗算値kpτd-τ、と逆運動学方程式を用いて予め計算されたフィードフォワードパラメータiffとを加算し、モータ電流iを出力する、請求項6に記載の人間型ロボット。前記センサ部は、当該ロボットの着地状態を測定するための多軸F/Tセンサと、当該ロボットの姿勢を測定するためのポーズセンサと、を含み、前記関節位置軌跡補正値計算部は、当該ロボットの足が地面に接触するとき、前記多軸F/Tセンサから力とモーメントとの情報の入力を受け、前記ポーズセンサから当該ロボットの姿勢情報の入力を受けて関節位置軌跡補正値hを計算し、前記関節トルク計算部は、前記関節位置軌跡補正値hを用いて式3のような補正された関節位置軌跡命令θdに従って関節トルクを計算する、請求項1に記載の人間型ロボット。θd=θd0hx,f,m,ZMP,φ3ここで、θd0は元の関節位置軌跡命令で、前記関節位置軌跡補正値hは、当該ロボットの重心x、地面との力f、地面とのモーメントm、当該ロボットのZMP、当該ロボットの傾斜角φのうちいずれか一つのパラメータの関数で計算される。前記関節位置軌跡補正値は、式4のように計算される、請求項8に記載の人間型ロボット。ここで、xdはロボットの重心命令値で、xはロボットの重心の実際値で、kpxは比例ゲインで、はロボットの重心速度で、はロボットの重心速度の実際値で、kdxは微分ゲインである。前記センサ部は、当該ロボットの着地状態を測定するための多軸F/Tセンサと、当該ロボットの姿勢を測定するためのポーズセンサと、を含み、前記関節トルク補正値計算部は、当該ロボットの足が地面に接触するとき、前記多軸F/Tセンサから力とモーメントとの情報の入力を受け、前記ポーズセンサから当該ロボットの姿勢情報の入力を受けて関節トルク補正値gを計算し、前記関節トルクサーボ制御部は、式5のような補正された関節トルク命令τdに従って関節トルクを計算する、請求項1に記載の人間型ロボット。τd=τd0gx,f,m,ZMP,φ5ここで、τd0は元の関節トルク命令で、前記関節トルク補正値gは、当該ロボットの重心x、地面との力f、地面とのモーメントm、当該ロボットのZMP、当該ロボットの傾斜角φのうちいずれか一つのパラメータの関数で計算される。前記関節トルク補正値は、式6のように計算される、請求項10に記載の人間型ロボット。ここで、xdはロボットの重心命令値で、xはロボットの重心の実際値で、k’pxは比例ゲインで、はロボットの重心速度で、はロボットの重心速度の実際値で、k’dxは微分ゲインである。ロボットの歩行のために各関節の関節位置軌跡を計算し、前記ロボットに設置されたセンサで測定した前記ロボットの着地情報と姿勢情報とを用いて前記各関節の関節位置軌跡を補正するための関節位置軌跡補正値を計算し、前記関節位置軌跡補正値を用いて補正した関節位置軌跡によって前記各関節の関節トルクを計算し、前記ロボットに設置されたセンサで測定した前記ロボットの着地情報と姿勢情報とを用いて前記各関節の関節トルクを補正するための関節トルク補正値を計算し、前記関節トルク補正値を用いて補正した関節トルク命令に追従するようにモータ電流を計算し、計算されたモータ電流によって各関節に設置されたモータのトルクのサーボ制御を行うことを含む人間型ロボットの歩行制御方法。前記関節位置軌跡を計算するのは、左足又は右足が地面に着地した状態を判断し、前記各関節の関節位置軌跡命令を計算することを含む、請求項12に記載の人間型ロボットの歩行制御方法。前記各関節のトルクを計算するのは、各関節の関節位置軌跡命令θdと現在の関節位置θとの減算値θd-θを出力し、前記減算値θd-θと比例ゲインkpとの乗算値kpθd-θを出力し、微分された関節位置軌跡命令と微分された現在の関節位置との減算値を出力し、前記減算値と微分ゲインkdとの乗算値を出力し、前記二つの乗算値kpθd-θ及びと逆運動学方程式を用いて予め計算されたフィードフォワードパラメータτffとを加算し、前記各関節の関節トルク命令τdを出力することを含む、請求項12に記載の人間型ロボットの歩行制御方法。前記モータ電流を計算するのは、関節トルク命令τdと現在のモータトルクτとの減算値τd-τを出力し、前記減算値τd-τと比例ゲインkpとの乗算値kpτd-τを出力し、前記減算値τd-τを積分し、前記積分した減算値と積分ゲインkiとの乗算値を出力し、微分された関節トルク命令と微分された現在のモータトルクとの減算値を出力し、前記減算値と微分ゲインkdとの乗算値を出力し、前記乗算値kpτd-τ、と逆運動学方程式を用いて予め計算されたフィードフォワードパラメータiffとを加算し、モータ電流iを出力することを含む、請求項12に記載の人間型ロボットの歩行制御方法。前記ロボットの着地状態を測定するための多軸F/Tセンサから力とモーメントとの情報の入力を受け、前記ロボットの姿勢を測定するためのポーズセンサから前記ロボットの姿勢情報の入力を受けて前記関節位置軌跡補正値を計算し、前記関節位置軌跡補正値hは、前記ロボットの重心x、地面との力f、地面とのモーメントm、前記ロボットのZMP、前記ロボットの傾斜角φのうちいずれか一つのパラメータの関数で計算され、前記補正された関節トルク命令θdは、元の関節位置軌跡命令θd0と計算された関節位置軌跡補正値hとを加算して求める、請求項12に記載の人間型ロボットの歩行制御方法。前記ロボットの着地状態を測定するための多軸F/Tセンサから力とモーメントとの情報の入力を受け、前記ロボットの姿勢を測定するためのポーズセンサからロボットの姿勢情報の入力を受けて前記関節トルク補正値を計算し、前記関節トルク補正値gは、前記ロボットの重心x、地面との力f、地面とのモーメントm、前記ロボットのZMP、前記ロボットの傾斜角φのうちいずれか一つのパラメータの関数で計算され、前記補正された関節トルク命令τdは、元の関節トルク命令τd0と計算されたトルク補正値gとを加算して求める、請求項12に記載の人間型ロボットの歩行制御方法。FSM基盤の歩行制御時、各関節に設置されたモータのトルクのサーボ制御を行い、安定的な歩行を具現する人間型ロボット及びその歩行制御方法を開示する。本発明の実施例に係る人間型ロボットは、当該ロボットの歩行時に動ける各関節を含むロボット関節部と、当該ロボットの着地情報と姿勢情報とを測定するセンサ部と、当該ロボットの着地情報と姿勢情報とを用いて前記各関節の関節位置軌跡を生成する関節位置軌跡生成部と、前記各関節の関節位置軌跡を補正するための関節位置軌跡補正値を計算する関節位置軌跡補正値計算部と、前記関節位置軌跡補正値を用いて前記各関節の関節位置軌跡を補正し、補正された各関節の関節位置軌跡によって各関節の関節トルクを計算する関節トルク計算部と、前記各関節の関節トルクを補正するための関節トルク補正値を計算する関節トルク補正値計算部と、前記関節トルク補正値を用いて前記各関節の関節トルク命令を補正し、補正された各関節の関節トルク命令に追従するようにモータ電流を計算し、計算されたモータ電流によって前記各関節に設置されたモータのトルクのサーボ制御を行う関節トルクサーボ制御部とを含む。前記センサ部は、ロボットの着地状態を測定するための多軸F/Tセンサと、前記ロボットの姿勢を測定するためのポーズセンサとを含む。前記関節位置軌跡生成部は、左足又は右足が地面に着地する場合、互いにスイッチングする複数のマシン状態と、前記複数のマシン状態のスイッチングによって左足又は右足の着地状態を判断し、前記各関節の関節位置軌跡命令を計算する関節位置軌跡計算部とを含む。前記関節トルク計算部は、第1~第3の位置演算器、比例ゲイン制御器及び微分ゲイン制御器を含み、式1のように前記各関節の関節トルク命令τdを計算する。前記第1の位置演算器は、関節位置軌跡命令θdと前記モータからフィードバックされる現在の関節位置θとの減算値θd-θを出力し、前記比例ゲイン制御器は、前記減算値θd-θと比例ゲインkpとの乗算値kpθd-θを前記第2の位置演算器に出力し、前記第3の位置演算器は、微分された関節位置軌跡命令と微分された現在の関節位置との減算値を前記微分ゲイン制御器に出力し、前記微分ゲイン制御器は、前記減算値と微分ゲインkdとの乗算値を前記第2の位置演算器に出力し、前記第2の位置演算器は、二つの乗算値kpθd-θ及びと逆運動学方程式を用いて予め計算されたフィードフォワードパラメータτffとを加算し、前記各関節の関節トルク命令τdを出力する。前記センサ部は、前記モータに設置されたエンコーダをさらに含み、前記エンコーダで前記現在の関節位置θを測定する。前記関節トルクサーボ制御部は、モータ制御器と、前記モータのトルクを測定するトルクセンサとを含み、前記モータ制御器は、前記トルクセンサによって測定された関節トルク値のフィードバックを受け、前記各関節の関節トルク命令に追従するように前記モータを駆動する。前記モータ制御器は、第1~第3のトルク演算器、比例ゲイン制御器、積分器、積分ゲイン制御器及び微分ゲイン制御器を含み、式2のようにモータ電流iを計算する。前記第1のトルク演算器は、関節トルク命令τdと前記トルクセンサからフィードバックされる現在のモータトルクτとの減算値τd-τを出力し、前記比例ゲイン制御器は、前記減算値τd-τと比例ゲインkpとの乗算値kpτd-τを前記第2のトルク演算器に出力し、前記積分器は、前記減算値τd-τを積分して前記積分ゲイン制御器に出力し、前記積分ゲイン制御器は、積分した減算値と積分ゲインkiとの乗算値を前記第2のトルク演算器に出力し、前記第3のトルク演算器は、微分された関節トルク命令と微分された現在のモータトルクとの減算値を前記微分ゲイン制御器に出力し、前記微分ゲイン制御器は、前記減算値と微分ゲインkdとの乗算値を前記第2のトルク演算器に出力し、前記第2のトルク演算器は、前記乗算値kpτd-τ、と逆運動学方程式を用いて予め計算されたフィードフォワードパラメータiffとを加算し、モータ電流iを出力する。前記センサ部は、前記ロボットの着地状態を測定するための多軸F/Tセンサと、前記ロボットの姿勢を測定するためのポーズセンサとを含み、前記関節位置軌跡補正値計算部は、ロボットの足が地面に接触するとき、前記多軸F/Tセンサから力とモーメントとの情報の入力を受け、前記ポーズセンサからロボットの姿勢情報の入力を受けて関節位置軌跡補正値hを計算し、前記関節トルク計算部は、前記関節位置軌跡補正値hを用いて式3のような補正された関節位置軌跡命令θdに従って関節トルクを計算する。θd=θd0hx,f,m,ZMP,φ3ここで、θd0は、元の関節位置軌跡命令で、前記関節位置軌跡補正値hは、ロボットの重心x、地面との力f、地面とのモーメントm、ロボットのZMP、ロボットの傾斜角φのうちいずれか一つのパラメータの関数で計算される。前記関節位置軌跡補正値は、式4のように計算される。ここで、xdはロボットの重心命令値で、xはロボットの重心の実際値で、kpxは比例ゲインで、はロボットの重心速度で、はロボットの重心速度の実際値で、kdxは微分ゲインである。前記センサ部は、前記ロボットの着地状態を測定するための多軸F/Tセンサと、前記ロボットの姿勢を測定するためのポーズセンサとを含み、前記関節トルク補正値計算部は、ロボットの足が地面に接触するとき、前記多軸F/Tセンサから力とモーメントとの情報の入力を受け、前記ポーズセンサからロボットの姿勢情報の入力を受けて関節トルク補正値gを計算し、前記関節トルクサーボ制御部は、式5のような補正された関節トルク命令τdに従って関節トルクを計算する。τd=τd0gx,f,m,ZMP,φ5ここで、τd0は元の関節トルク命令で、前記関節トルク補正値gは、ロボットの重心x、地面との力f、地面とのモーメントm、ロボットのZMP、ロボットの傾斜角φのうちいずれか一つのパラメータの関数で計算される。前記関節トルク補正値は、式6のように計算される。ここで、xdはロボットの重心命令値で、xはロボットの重心の実際値で、k’pxは比例ゲインで、はロボットの重心速度で、はロボットの重心速度の実際値で、k’dxは微分ゲインである。本発明の実施例に係る人間型ロボットの歩行制御方法は、ロボットの歩行のために各関節の関節位置軌跡を計算し、前記ロボットに設置されたセンサで測定した前記ロボットの着地情報と姿勢情報とを用いて前記各関節の関節位置軌跡を補正するための関節位置軌跡補正値を計算し、前記関節位置軌跡補正値を用いて補正した関節位置軌跡によって前記各関節のトルクを計算し、前記ロボットに設置されたセンサで測定した前記ロボットの着地情報と姿勢情報とを用いて前記各関節の関節トルクを補正するための関節トルク補正値を計算し、前記関節トルク補正値を用いて補正した関節トルク命令に追従するようにモータ電流を計算し、計算されたモータ電流によって各関節に設置されたモータのトルクのサーボ制御を行うことを含む。前記関節位置軌跡を計算するのは、左足又は右足が地面に着地した状態を判断し、前記各関節の関節位置軌跡命令を計算することを含む。前記各関節のトルクを計算するのは、各関節の関節位置軌跡命令θdと現在の関節位置θとの減算値θd-θを出力し、前記減算値θd-θと比例ゲインkpとの乗算値kpθd-θを出力し、微分された関節位置軌跡命令と微分された現在の関節位置との減算値を出力し、前記減算値と微分ゲインkdとの乗算値を出力し、前記二つの乗算値kpθd-θ及びと逆運動学方程式を用いて予め計算されたフィードフォワードパラメータτffとを加算し、前記各関節の関節トルク命令τdを出力することを含む。前記モータ電流を計算するのは、関節トルク命令τdと現在のモータトルクτとの減算値τd-τを出力し、前記減算値τd-τと比例ゲインkpとの乗算値kpτd-τを出力し、前記減算値τd-τを積分し、前記積分した減算値と積分ゲインkiとの乗算値を出力し、微分された関節トルク命令と微分された現在のモータトルクとの減算値を出力し、前記減算値と微分ゲインkdとの乗算値を出力し、前記乗算値kpτd-τ、と逆運動学方程式を用いて予め計算されたフィードフォワードパラメータiffとを加算し、モータ電流iを出力することを含む。前記ロボットの着地状態を測定するための多軸F/Tセンサから力とモーメントとの情報の入力を受け、前記ロボットの姿勢を測定するためのポーズセンサからロボットの姿勢情報の入力を受けて前記関節位置軌跡補正値を計算し、前記関節位置軌跡補正値hは、ロボットの重心x、地面との力f、地面とのモーメントm、ロボットのZMP、ロボットの傾斜角φのうちいずれか一つのパラメータの関数で計算され、前記補正された関節位置軌跡命令θdは、元の関節位置軌跡命令θd0と計算された関節位置軌跡補正値hとを加算して求める。前記ロボットの着地状態を測定するための多軸F/Tセンサから力とモーメントとの情報の入力を受け、前記ロボットの姿勢を測定するためのポーズセンサからロボットの姿勢情報の入力を受けて前記関節トルク補正値を計算し、前記関節トルク補正値gは、ロボットの重心x、地面との力f、地面とのモーメントm、ロボットのZMP、ロボットの傾斜角φのうちいずれか一つのパラメータの関数で計算され、前記補正された関節トルク命令τdは、元の関節トルク命令τd0と計算されたトルク補正値gとを加算して求める。以上のように、実施例に係る人間型ロボット及びその歩行制御方法は、FSM基盤の歩行制御によってモータトルクのサーボ制御を行うので、既存の歩行方法に比べて次のような長所を有することができる。まず、歩行中に各関節の位置を正確に制御する必要がないので、低いサーボゲインで歩行が可能になり、エネルギー消費を減少させることができる。また、歩行中における各関節の低剛性によって、周囲環境との衝突時の衝撃を少なくすることができるので安全である。また、逆運動学的な計算を通じた既存の歩行方法では実行しにくい膝を広げる歩行が可能になるので、人間親和的な歩行を具現することができ、膝を曲げるのに必要なエネルギーを節約することができる。また、複雑な運動学方程式を解かなくてもよいので、6自由度の関節を有するロボットに適用することができる。以下では、添付の図面を参照して本発明について詳細に説明する。図1に示すように、人間型ロボット100の上体102の上部には首120を介して頭104が連結される。上体102の上部両側には肩114L、114Rを介して二つの腕106L、106Rが連結される。二つの腕106L、106Rのそれぞれの末端には手33L、33Rが連結される。上体102の下部両側には二つの脚110L、110Rが連結される。二つの脚110L、110Rのそれぞれの末端には足112L、112Rが連結される。頭104、二つの腕106L、106R、二つの脚110L、110R、それぞれ二つずつ備えられる手33L、33Rと足112L、112Rは、それぞれ関節を介して一定水準の自由度を有する。上体102の内部はカバー116によって保護される。参照符号におけるRとLは、それぞれロボット100の右側と左側を示す。図2は、図1に示したロボットの関節構造を示した図である。図2に示すように、人間型ロボット100の二つの脚110L、110Rは、それぞれ大腿リンク21、下腿リンク22及び足112L、112Rを備えている。大腿リンク21は大腿関節部210を介して上体102に連結される。大腿リンク21と下腿リンク22は膝関節部220を介して互いに連結され、下腿リンク22と足112L、112Rは足首関節部230を介して互いに連結される。大腿関節部210は3自由度を有する。具体的には、大腿関節部210は、ヨー方向yaw、Z軸周囲の回転の回転関節211、ピッチ方向pitch、Y軸周囲の回転の回転関節212、及びロール方向roll、X軸周囲の回転の回転関節213を有する。膝関節部220は、ピッチ方向の回転関節221を含み、1自由度を有する。足首関節部230は、ピッチ方向の回転関節231及びロール方向の回転関節232を含み、2自由度を有する。二つの脚110L、110Rには三つの関節部210、220、230に対して6個の回転関節がそれぞれ設けられるので、二つの脚110L、110R全体に対しては12個の回転関節が設けられる。一方、二つの脚110L、110Rで、足112L、112Rと足首関節部230との間には多軸F/TセンサMulti―AxisForceandTorqueSensor24がそれぞれ設置される。多軸F/Tセンサ24は、足112L、112Rから伝達される力の3方向成分Fx、Fy、Fzとモーメントの3方向成分Mx、My、Mzを測定することによって、足112L、112Rの着地の有無及び足112L、112Rに加えられる荷重を検出することができる。頭104には、周囲を撮影するカメラ41と、ユーザの音声を入力するマイクロフォン42が設置される。頭104は、首関節部280を介して上体102と連結される。首関節部280は、ヨー方向の回転関節281、ピッチ方向の回転関節282及びロール方向の回転関節283を含み、3自由度を有することができる。首関節部280の各回転関節281、282、283には、頭回転用モータ図示せずがそれぞれ連結される。肩関節アセンブリ250L、250Rは、上体102の両側に装着され、二つの腕106L、106Rを上体102に連結する。二つの腕106L、106Rは、上膊リンク31、下膊リンク32及び手33を備えている。上膊リンク31は、肩関節アセンブリ250L、250Rを介して上体102に連結される。上膊リンク31と下膊リンク32は肘関節部260を介して互いに連結され、下膊リンク32と手33は手首関節部270を介して互いに連結される。肘関節部260は、ピッチ方向の回転関節261及びヨー方向の回転関節262を含み、2自由度を有することができ、手首関節部270は、ピッチ方向の回転関節271及びロール方向の回転関節272を含み、2自由度を有することができる。手33には5個の指33aが設置される。それぞれの指33aには、モータによって駆動される多数の関節図示せずが設置される。指33aは、腕106の動きに連動し、物を把持したり、特定方向を指すような多様な動作を行う。上体102にはポーズセンサ14が設置される。ポーズセンサ14は、鉛直軸に対する上体102の傾斜角度及びその角速度などを検出し、姿勢情報を発生させる。このポーズセンサ14は、上体102のみならず、頭104に設置してもよい。また、上体102を構成する胸102aと腰102bとの間には、胸102aが腰102bに対して回転できるようにヨー方向の回転関節15が設置される。人間型ロボット100には、各回転関節を駆動するモータ405図6参照などのようなアクチュエータが設置される。このモータ405を適宜制御することによって、人間型ロボット100の多様な動作を具現することができる。FSM基盤の歩行制御方法は、図3に例示したように、ロボットの動作状態を予め定義された6個の動作状態S1、S2、S3、S4、S5、S6に区分することができる。それぞれの動作状態は、歩行時にロボットが取るポーズを意味する。第1の状態フライトS1は足をスイングするポーズであり、第2の状態ローディングS2は足を地面に下ろすポーズであり、第3の状態かかと接地S3は足のかかとを地面に接触させるポーズであり、第4の状態かかと及びつま先接地S4は足のかかとと足のつま先を同時に地面に接触させるポーズであり、第5の状態つま先接地S5は足のつま先を地面に接触させるポーズであり、第6の状態アンローディングS6は足を地面から離すポーズである。図4は、本発明の一実施例に係る人間型ロボットの制御ブロック図で、図5は、図4の関節位置軌跡生成部の詳細構成図である。図4に示すように、人間型ロボット100は、関節位置軌跡生成部300、関節トルク計算部310、関節トルクサーボ制御部320、ロボット関節部101、センサ部330、関節位置軌跡補正値計算部340及び関節トルク補正値計算部350を含む。ロボット関節部101は、ロボット歩行のための二つの脚110L、110Rの大腿関節部210、膝関節部220、足首関節部230の全体に対して12個の回転関節を含むもので、このとき、二つの脚に属する関節のみに限定されることなく、安定的な歩行のために上体と腕などの人間型ロボット100の全ての関節を含むことができる。センサ部330は、上体102に設置されたポーズセンサ14と、足首関節部230に設置された多軸F/Tセンサ24と、ロボット関節部101の各関節に設置されたモータ405の回転を測定するエンコーダ405aとを含む。関節位置軌跡生成部300は、センサ部330の測定値を用いて各関節の関節位置軌跡命令θdを生成する。図5で、関節位置軌跡生成部300は、第1マシン状態301、第2マシン状態302及び関節位置軌跡計算部303を含む。第1マシン状態301と第2マシン状態302は、右足又は左足が地面に着地する場合、足首関節部230に設置されたF/Tセンサ24の着地信号によって互いにスイッチングを行う。すなわち、左足がスイングし、右足が着地状態であれば、第2マシン状態302から第1マシン状態301にスイッチングする一方、右足がスイングし、左足が着地状態であれば、第1マシン状態301から第2マシン状態302にスイッチングする。関節位置軌跡計算部303は、第1マシン状態301と第2マシン状態302のスイッチングによって左足と右足の着地状態を判断し、ロボット関節部101の各関節の関節位置軌跡命令θdを計算する。関節位置軌跡命令θdを生成する他の実施例では、人間のモーションをキャプチャし、一つの周期内で各関節の動きを抽出した後、この抽出情報に基づいて人間型ロボットの関節位置にマッチングさせて関節位置軌跡命令を計算することもできる。関節トルク計算部310は、各関節の関節位置軌跡命令θdを用いて各関節の関節トルク命令τdを計算する。図6は、本発明の一実施例に係る関節位置軌跡命令を用いて計算された関節トルク命令に従ってモータを駆動する動作を説明するブロック線図である。図6で、第1の位置演算器401は、関節位置軌跡命令θdとモータ405からフィードバックされる現在の関節位置θとの減算値θd-θを比例ゲイン制御器402に出力する。ここで、現在の関節位置θは、モータ405に設置されたエンコーダ405aによって測定される。比例ゲイン制御器402は、減算値θd-θと比例ゲインkpとの乗算値kpθd-θを第2の位置演算器403に出力する。第3の位置演算器408は、微分制御器407によって微分された関節位置軌跡命令と微分制御器406によって微分された現在の関節位置との減算値を微分ゲイン制御器409に出力する。微分ゲイン制御器409は、減算値と微分ゲインkdとの乗算値を第2の位置演算器403に出力する。第2の位置演算器403は、二つの乗算値kpθd-θ及びと逆運動学方程式を用いて予め計算されたフィードフォワードパラメータτffとを加算し、その加算値τdを出力する。ここで、加算値τdは、関節トルク計算部310で計算される各関節の関節トルク命令τdを意味し、その一つの例は式1のように示すことができる。式1は、比例微分PD制御器とフィードフォワードFF制御器を用いたものであるが、これに限定するのではなく、各関節の位置θが関節位置軌跡命令θdに追従できる如何なる制御器も用いることができる。式1で、比例ゲイン、微分ゲイン及びフィードフォワードパラメータは、安定的な歩行のために反復的なチューニング作業を通じて求めることができる。関節トルク命令τdは、減衰制御器404でモータトルク定数1/Ktと乗算され、その乗算値であるモータ電流iによってロボット関節部101の各関節に設置されたモータ405を駆動することができる。このとき、関節トルク計算部310によって計算された各関節の関節トルク命令τdが関節トルクサーボ制御部320に提供される。図7で、関節トルクサーボ制御部320は、モータ制御器321を含む。モータ制御器321は、トルクセンサ405bによって測定された関節トルク値のフィードバックを受け、関節トルク命令τdに追従するようにモータ405を駆動する。このとき、モータ制御器321は、トルクセンサ405bによって測定された関節トルク値のフィードバックを受けるものに限定されず、モータ405の電流を測定する電流センサで測定された電流から推定された関節トルク値を用いることもできる。図8は、本発明の一実施例に係る関節トルク命令に従って駆動するモータのサーボ制御を行う動作を説明するブロック線図である。図8で、第1のトルク演算器501は、前記各関節のトルク命令τdとトルクセンサ405bからフィードバックされる現在のモータトルクτとの減算値τd-τを比例ゲイン制御器502に出力する。比例ゲイン制御器502は、減算値τd-τと比例ゲインkpとの乗算値kpτd-τを第2のトルク演算器505に出力する。積分器503は、減算値τd-τを積分して積分ゲイン制御器504に出力し、積分ゲイン制御器504は、積分した減算値と積分ゲインkiとの乗算値を第2のトルク演算器505に出力する。第3のトルク演算器508は、微分制御器507によって微分された関節トルク命令と微分制御器506によって微分された現在のモータトルクとの減算値を微分ゲイン制御器509に出力する。微分ゲイン制御器509は、減算値と微分ゲインkdとの乗算値を第2のトルク演算器505に出力する。第2のトルク演算器505は、三つの乗算値kpτd-τ、と逆運動学方程式を用いて予め計算されたフィードフォワードパラメータiffとを加算し、その加算値を出力する。ここで、加算値は、モータ405に印加されるモータ電流iであって、その一つの例は式2のように示すことができる。式2は、比例積分微分PID制御器とフィードフォワードFF制御器を用いたものであるが、これに限定するのではなく、各関節の位置θが関節位置軌跡命令θdに追従できる如何なる制御器も用いることができる。式2で、比例ゲイン、微分ゲイン、積分ゲイン及びフィードフォワードパラメータは、安定的な歩行のために反復的なチューニング作業を通じて求めることができる。このように、関節トルクサーボ制御部320によって、ロボット関節部101は、トルクサーボ制御に基づいて歩行動作を行うことができる。ロボットがポーズを切り替えて歩行するとき、歩行面の状態、障害物の出現などの周囲環境によって歩行制御が不適切になり、ロボットが均衡を失うおそれがあるので、人間型ロボットにおいては、周囲環境と相互作用する情報とロボットの姿勢情報のフィードバックを受け、関節位置軌跡命令と関節トルク命令を補正し、歩行動作を安定的に制御する必要がある。図4で、関節位置軌跡補正値計算部340は、センサ部330によって測定された値を用いて関節位置軌跡命令を補正するための関節位置軌跡補正値を生成し、これを関節トルク計算部310に提供する。すなわち、ロボットの足が地面に接触するとき、関節位置軌跡補正値計算部340は、多軸F/Tセンサ24から力とモーメントとの情報の入力を受け、ポーズセンサ14からロボットの姿勢情報の入力を受けて関節位置軌跡補正値hを計算することができる。その結果、関節トルク計算部310は、式3のような補正された関節位置軌跡命令θdに従って関節トルクを計算することができる。θd=θd0hx,f,m,ZMP,φ3ここで、θd0は元の関節位置軌跡命令で、hは関節位置軌跡補正値で、多様なパラメータの関数から計算される。そして、多様なパラメータは、ロボットの重心x、地面との力f、地面とのモーメントm、ロボットのZMP、ロボットの傾斜角φになり得る。式4は、関節位置軌跡補正値hxの一例である。関節位置軌跡補正値hxは、ロボットの重心命令値xdと実際値xとの差xd-xに比例ゲインkpxを乗算し、ロボットの重量中心速度と実際値との差に微分ゲインkdxを乗算した後、二つの乗算値kpxxd-x及びを加算して得られる。その他に、関節位置軌跡補正値hは、他のパラメータに該当する地面との力f、地面とのモーメントm、ロボットのZMP、ロボットの傾斜角φのうちいずれか一つによって計算される。関節トルク補正値計算部350は、センサ部330によって測定された値を用いて関節トルク命令を補正するための関節トルク補正値を生成し、これを関節トルクサーボ制御部320に提供する。すなわち、ロボットの足が地面に接触するとき、関節トルク補正値計算部350は、多軸F/Tセンサ24から力とモーメントとの情報の入力を受け、ポーズセンサ14からロボットの姿勢情報の入力を受けて関節トルク補正値gを計算することができる。その結果、関節トルクサーボ制御部320は、式5のような補正された関節トルク命令τdに従って関節トルクを計算することができる。τd=τd0gx,f,m,ZMP,φ5ここで、τd0は元の関節トルク命令で、gは関節トルク補正値で、多様なパラメータの関数から計算される。そして、多様なパラメータは、ロボットの重心x、地面との力f、地面とのモーメントm、ロボットのZMP、ロボットの傾斜角φになり得る。式6は、関節トルク補正値gxの一例である。関節トルク補正値gxは、ロボットの重心命令値xdと実際値xとの差xd-xに比例ゲインk’pxを乗算し、ロボットの重量中心速度と実際値との差に微分ゲインk’dxを乗算した後、二つの乗算値k’pxxd-x及びを加算して得る。その他に、関節トルク補正値gは、他のパラメータに該当する地面との力f、地面とのモーメントm、ロボットのZMP、ロボットの傾斜角φのうちいずれか一つによって計算される。実施例では、関節位置軌跡命令と関節トルク命令をいずれも補正したが、関節位置軌跡命令及び関節トルク命令のうちいずれか一つを補正する方式を適用し、人間型ロボットの安定的な歩行動作を具現することもできる。以下では、本発明の一実施例に係る人間型ロボットの歩行制御方法を説明する。基本的に、FSMに基づいて人間型ロボット100が歩行する。歩行動作を行うために、関節位置軌跡計算部303は、センサ部300の測定値を用いて左足と右足の着地状態を判断し、ロボット関節部101の各関節の関節位置軌跡命令θdを計算する601。ここで、関節位置軌跡命令θdを生成する他の例では、人間のモーションをキャプチャし、一つの周期内で各関節の動きを抽出した後、この抽出情報に基づいて人間型ロボットの関節位置にマッチングさせて関節位置軌跡命令を計算することもできる。計算された関節位置軌跡命令θdは関節トルク計算部310に提供される。関節位置軌跡補正部340は、多軸F/Tセンサ24から力とモーメントとの情報の入力を受け、ポーズセンサ14からロボットの姿勢情報の入力を受けて関節位置軌跡補正値hを計算する603。ここで、関節位置軌跡補正値hは多様なパラメータの関数から計算され、多様なパラメータは、ロボットの重心x、地面との力f、地面とのモーメントm、ロボットのZMP、ロボットの傾斜角φになり得る。計算された関節位置軌跡補正値hは関節トルク計算部310に提供される。その結果、関節トルク計算部310は、元の関節位置軌跡命令θd0に関節位置軌跡補正値hを加算して補正し605、式3のように補正された関節位置軌跡命令θdに従って関節トルクを計算することができる607。関節トルク補正値計算部350は、多軸F/Tセンサ24から力とモーメントとの情報の入力を受け、ポーズセンサ14からロボットの姿勢情報の入力を受けて関節トルク補正値gを計算する609。ここで、関節トルク補正値gは多様なパラメータの関数から計算され、多様なパラメータは、ロボットの重心x、地面との力f、地面とのモーメントm、ロボットのZMP、ロボットの傾斜角φになり得る。計算された関節トルク補正値gは関節トルクサーボ制御部320に提供される。その結果、関節トルクサーボ制御部320は、元の関節トルク命令τd0に関節トルク補正値gを加算して補正し611、図5のように補正された関節トルク命令τdに従ってロボット関節部101の各関節に設置されたモータ405を駆動する613。モータを駆動するとき、関節トルクサーボ制御部320は、トルクセンサ405bによって測定された関節トルク値のフィードバックを受け、関節トルク命令τdに追従するようにモータ電流iを制御するサーボ制御によってモータ405を駆動する615。"