(58)【調査した分野】(Int.Cl.,DB名)
上体部、前記上体部に接続された第1の脚部、前記上体部に接続された第2の脚部、前記第1の脚部を駆動する第1の駆動部及び前記第2の脚部を駆動する第2の駆動部を備える2足歩行ロボットの歩行動作を制御する歩行制御装置における歩行制御方法であって、
前記2足歩行ロボットは、直立可能な所定の基準角度で重心位置が調整されており、
前記2足歩行ロボットの歩行動作において、前記基準角度に対する前記上体部の傾斜角度を示す情報を取得し、
前記歩行動作のために前記第1の脚部及び前記第2の脚部の一方が接地していない状態において、前記傾斜角度に応じて、前記上体部を前記基準角度に対して所定の角度範囲に維持するように前記第1の脚部及び前記第2の脚部を動作させ、
前記上体部を前記基準角度に対して所定の角度範囲に維持するように前記第1の脚部及び前記第2の脚部を動作させる際に、前記傾斜角度に基づき、前記上体部を前記基準角度に対して所定の角度範囲に維持するための前記第1の脚部及び前記第2の脚部のそれぞれの動作を補正するための第1の補正信号を生成し、
前記第1の脚部及び前記第2の脚部に対して歩行動作を行わせるための制御信号を前記第1の補正信号に基づいて補正し、補正した前記制御信号を前記第1の駆動部及び前記第2の駆動部のそれぞれに出力する、
歩行制御方法。
前記傾斜角度に基づき前記上体部を前記基準角度に対して所定の角度範囲に維持するために算出された第1の補正量を、前記第1の補正量が算出されるまでに積算された積算補正量に加算することにより前記第1の補正信号を生成する、
請求項1記載の歩行制御方法。
上体部、前記上体部に接続された第1の脚部、前記上体部に接続された第2の脚部、前記第1の脚部を駆動する第1の駆動部及び前記第2の脚部を駆動する第2の駆動部を備える2足歩行ロボットの歩行動作を制御する歩行制御プログラムであって、
前記2足歩行ロボットは、直立可能な所定の基準角度で重心位置が調整されており、
コンピュータを、
前記2足歩行ロボットの歩行動作において、前記基準角度に対する前記上体部の傾斜角度を示す情報を取得する取得部と、
前記歩行動作のために前記第1の脚部及び前記第2の脚部の一方が接地していない状態において、前記傾斜角度に応じて、前記上体部を前記基準角度に対して所定の角度範囲に維持するように前記第1の脚部及び前記第2の脚部を動作させる制御部として機能させ、
前記制御部は、
前記上体部を前記基準角度に対して所定の角度範囲に維持するように前記第1の脚部及び前記第2の脚部を動作させる際に、前記傾斜角度に基づき、前記上体部を前記基準角度に対して所定の角度範囲に維持するための前記第1の脚部及び前記第2の脚部のそれぞれの動作を補正するための第1の補正信号を生成し、
前記第1の脚部及び前記第2の脚部に対して歩行動作を行わせるための制御信号を前記第1の補正信号に基づいて補正し、補正した前記制御信号を前記第1の駆動部及び前記第2の駆動部のそれぞれに出力する、
歩行制御プログラム。
【発明を実施するための形態】
【0012】
(本開示の基礎となった知見)
2足歩行ロボットのバランス制御方法としては、ゼロモーメントポイント(以下、ZMPと略記する)と呼ばれる力学的な考え方を規範としたバランス制御方法が一般的に知られている。
【0013】
2足歩行ロボットが歩行する際、2足歩行ロボットには、地球からの重力と、歩行によって生じる慣性力とが働く。重力と慣性力との合力の軸と、地面との交点は、合力のモーメントが0となるので、ZMPと呼ばれている。また、2足歩行ロボットが着地している足には地面からの反作用として床反力が働く。この床反力が作用する点は、床反力作用点と呼ばれている。2足歩行ロボットが理想的なバランスを保って歩行している場合、目標ZMPと床反力作用点とは一致している。すなわち、目標ZMPと床反力作用点とを一致させることにより、バランスを崩すことなく安定して2足歩行ロボットを歩行させることができる。
【0014】
しかしながら、ZMPを用いた歩行制御方法では、足の裏に設けられたセンサによって床反力作用点を検出することでバランスを保っているため、不整地、床面の異物又は起伏に対して不安定になり易い。また、常に目標ZMPを意識して歩容を生成する必要があるが、歩容を生成するにあたって目標ZMPに一致する軌道の算出は一義的に求まらず、通常は収束計算により近似するなど、歩容を生成するための計算量が大きくなる。さらに、床反力作用点が重要な要素になっていることと、歩容計算が困難なことから、速い動きに対する追従が困難である。さらにまた、上体の任意の動きによる重心位置の変化に対しての対応が困難であり、やはり速い動きに対してバランスを崩し易い。
【0015】
また、上記のように、特許文献1の歩行制御装置では、傾斜方向に向かって、傾斜の大きさに比例させた歩幅で遊脚を踏みだすように制御している。すなわち、特許文献1の歩行制御装置は、常に胴体部分を垂直に維持するものではなく、遊脚の着地直前まで残った傾き角に歩幅を対応させることで、遊脚が着地した後の安定性を確保するものである。
【0016】
従来の歩行制御装置では、例えば、2足歩行ロボットが片足を接地した状態で外力を受け、傾いた状態で直立状態に復帰した場合、傾きが戻らずに残ったり、傾きがさらに大きくなったりするおそれがある。
【0017】
このような課題を解決するため、本開示の一態様に係る歩行制御方法は、上体部、前記上体部に接続された第1の脚部、前記上体部に接続された第2の脚部、前記第1の脚部を駆動する第1の駆動部及び前記第2の脚部を駆動する第2の駆動部を備える2足歩行ロボットの歩行動作を制御する歩行制御装置における歩行制御方法であって、前記2足歩行ロボットは、直立可能な所定の基準角度で重心位置が調整されており、前記2足歩行ロボットの歩行動作において、前記基準角度に対する前記上体部の傾斜角度を示す情報を取得し、前記歩行動作のために前記第1の脚部及び前記第2の脚部の一方が接地していない状態において、前記傾斜角度に応じて、前記上体部を前記基準角度に対して所定の角度範囲に維持するように前記第1の脚部及び前記第2の脚部を動作させる。
【0018】
この構成によれば、2足歩行ロボットは、直立可能な所定の基準角度で重心位置が調整されている。2足歩行ロボットの歩行動作において、基準角度に対する上体部の傾斜角度を示す情報が取得される。歩行動作のために第1の脚部及び第2の脚部の一方が接地していない状態において、傾斜角度に応じて、上体部を基準角度に対して所定の角度範囲に維持するように第1の脚部及び第2の脚部が動作される。
【0019】
したがって、歩行動作のために第1の脚部及び第2の脚部の一方が接地していない状態において、直立可能な所定の基準角度に対して上体部が所定の角度範囲に維持されるので、安定した歩行動作を実現することができる。
【0020】
また、上記の歩行制御方法において、前記上体部を前記基準角度に対して所定の角度範囲に維持するように前記第1の脚部及び前記第2の脚部を動作させる際に、前記傾斜角度に基づき、前記上体部を前記基準角度に対して所定の角度範囲に維持するための前記第1の脚部及び前記第2の脚部のそれぞれの動作を補正するための第1の補正信号を生成し、前記第1の脚部及び前記第2の脚部に対して歩行動作を行わせるための制御信号を前記第1の補正信号に基づいて補正し、補正した前記制御信号を前記第1の駆動部及び前記第2の駆動部のそれぞれに出力してもよい。
【0021】
この構成によれば、上体部を基準角度に対して所定の角度範囲に維持するように第1の脚部及び第2の脚部を動作させる際に、傾斜角度に基づき、上体部を基準角度に対して所定の角度範囲に維持するための第1の脚部及び第2の脚部のそれぞれの動作を補正するための第1の補正信号が生成される。第1の脚部及び第2の脚部に対して歩行動作を行わせるための制御信号が第1の補正信号に基づいて補正される。補正された制御信号が第1の駆動部及び第2の駆動部のそれぞれに出力される。
【0022】
したがって、第1の補正信号に基づき、第1の脚部及び第2の脚部に対して歩行動作を行わせるための制御信号を補正することにより、上体部を基準角度に対して所定の角度範囲に維持することができる。
【0023】
また、上記の歩行制御方法において、前記傾斜角度に基づき前記上体部を前記基準角度に対して所定の角度範囲に維持するために算出された第1の補正量を、前記第1の補正量が算出されるまでに積算された積算補正量に加算することにより前記第1の補正信号を生成してもよい。
【0024】
この構成によれば、傾斜角度に基づき上体部を基準角度に対して所定の角度範囲に維持するために算出された第1の補正量を、第1の補正量が算出されるまでに積算された積算補正量に加算することにより第1の補正信号が生成される。
【0025】
したがって、上体部の傾斜角度に応じた第1の補正量を積算補正量に積算することにより第1の補正信号が生成されるので、2足歩行ロボットの安定点が保持され、安定したバランス制御を実現することができる。
【0026】
また、上記の歩行制御方法において、所定の時点における前記傾斜角度を変数とする第1の関数により前記第1の補正量を算出してもよい。
【0027】
この構成によれば、第1の関数を用いることにより、上体部の傾斜角度に応じた第1の補正量を容易に算出することができる。
【0028】
また、上記の歩行制御方法において、前記第1の脚部及び前記第2の脚部のうちの支持脚に対して歩行動作を行わせるための第1の制御信号を生成し、前記第1の脚部及び前記第2の脚部のうちの遊脚に対して歩行動作を行わせるための第2の制御信号を生成し、前記第1の制御信号と前記第1の補正信号とを合成した第3の制御信号を生成し、前記第1の脚部及び前記第2の脚部のうちの支持脚となる一方に前記第3の制御信号を出力し、前記第2の制御信号と前記第1の補正信号とを合成した第4の制御信号を生成し、前記第1の脚部及び前記第2の脚部のうちの遊脚となる他方に前記第4の制御信号を出力してもよい。
【0029】
この構成によれば、第1の脚部及び第2の脚部のうちの支持脚に対して歩行動作を行わせるための第1の制御信号が生成される。第1の脚部及び第2の脚部のうちの遊脚に対して歩行動作を行わせるための第2の制御信号が生成される。第1の制御信号と第1の補正信号とを合成した第3の制御信号が生成される、第1の脚部及び第2の脚部のうちの支持脚となる一方に第3の制御信号が出力される。第2の制御信号と第1の補正信号とを合成した第4の制御信号が生成され、第1の脚部及び第2の脚部のうちの遊脚となる他方に第4の制御信号が出力される。
【0030】
したがって、上体部が基準角度に対して所定の角度範囲に維持されるように、第1の脚部及び第2の脚部のうちの支持脚となる一方と、第1の脚部及び第2の脚部のうちの遊脚となる他方とを動作させることができる。
【0031】
また、上記の歩行制御方法において、前記第1の補正量及び前記積算補正量は、前記2足歩行ロボットの前後方向の傾斜角度に基づき算出され、前記第1の制御信号は、前記2足歩行ロボットの歩行動作において、前記第1の脚部及び前記第2の脚部のうちの支持脚を前後方向に回転駆動させるための第1の前後方向制御信号を含み、前記第2の制御信号は、前記2足歩行ロボットの歩行動作において、前記第1の脚部及び前記第2の脚部のうちの遊脚を前後方向に回転駆動させるための第2の前後方向制御信号を含み、前記第1の前後方向制御信号に前記第1の補正信号を加算することにより前記第3の制御信号を生成し、前記第2の前後方向制御信号から前記第1の補正信号を減算することにより前記第4の制御信号を生成してもよい。
【0032】
この構成によれば、第1の補正量及び積算補正量は、2足歩行ロボットの前後方向の傾斜角度に基づき算出される。第1の制御信号は、2足歩行ロボットの歩行動作において、第1の脚部及び第2の脚部のうちの支持脚を前後方向に回転駆動させるための第1の前後方向制御信号を含む。第2の制御信号は、2足歩行ロボットの歩行動作において、第1の脚部及び第2の脚部のうちの遊脚を前後方向に回転駆動させるための第2の前後方向制御信号を含む。第1の前後方向制御信号に第1の補正信号を加算することにより第3の制御信号が生成される。また、第2の前後方向制御信号から第1の補正信号を減算することにより第4の制御信号が生成される。
【0033】
したがって、2足歩行ロボットの前後方向の傾斜角度に基づき第1の補正量及び積算補正量が算出されるので、第1の脚部及び第2の脚部を前後方向に駆動することができ、上体部を基準角度に対して所定の角度範囲に維持することができる。
【0034】
また、上記の歩行制御方法において、前記第3の制御信号に基づく前記第1の脚部又は前記第2の脚部の第1の駆動量が第1の閾値を越えるか否かを判定し、前記第4の制御信号に基づく前記第1の脚部又は前記第2の脚部の第2の駆動量が前記第1の閾値を越えるか否かを判定し、前記第1の駆動量が前記第1の閾値を超えると判定した場合、前記第1の駆動量を前記第1の閾値に変更し、前記第2の駆動量が前記第1の閾値を超えると判定した場合、前記第2の駆動量を前記第1の閾値に変更してもよい。
【0035】
この構成によれば、第3の制御信号に基づく第1の脚部又は第2の脚部の第1の駆動量が第1の閾値を越えるか否かが判定される。第4の制御信号に基づく第1の脚部又は第2の脚部の第2の駆動量が第1の閾値を越えるか否かが判定される。第1の駆動量が第1の閾値を超えると判定された場合、第1の駆動量が第1の閾値に変更される。また、第2の駆動量が第1の閾値を超えると判定された場合、第2の駆動量が第1の閾値に変更される。
【0036】
したがって、支持脚に対する第1の駆動量と、遊脚に対する第2の駆動量とがいずれも、駆動可能な第1の閾値を越えないように制御することができる。
【0037】
また、上記の歩行制御方法において、前記2足歩行ロボットが前記第1の脚部及び前記第2の脚部の双方により支持されている場合、前記第1の補正量を算出しなくてもよい。
【0038】
この構成によれば、2足歩行ロボットが第1の脚部及び第2の脚部の双方により支持されている場合、第1の補正量が算出されないので、第1の補正量が積算補正量に加算されることによって歩幅が変化するのを防止することができる。
【0039】
また、上記の歩行制御方法において、前記第1の補正量及び前記積算補正量は、前記2足歩行ロボットの左右方向の傾斜角度に基づき算出され、前記第1の制御信号は、前記2足歩行ロボットの歩行動作において、前記第1の脚部及び前記第2の脚部のうちの支持脚を左右方向に回転駆動させるための第1の左右方向制御信号を含み、前記第2の制御信号は、前記2足歩行ロボットの歩行動作において、前記第1の脚部及び前記第2の脚部のうちの遊脚を左右方向に回転駆動させるための第2の左右方向制御信号を含み、前記第1の左右方向制御信号に前記第1の補正信号を加算することにより前記第3の制御信号を生成し、前記第2の左右方向制御信号に、前記第1の補正信号に所定の係数を乗じた第2の補正信号を加算することにより前記第4の制御信号を生成してもよい。
【0040】
この構成によれば、第1の補正量及び積算補正量は、2足歩行ロボットの左右方向の傾斜角度に基づき算出される。第1の制御信号は、2足歩行ロボットの歩行動作において、第1の脚部及び第2の脚部のうちの支持脚を左右方向に回転駆動させるための第1の左右方向制御信号を含む。第2の制御信号は、2足歩行ロボットの歩行動作において、第1の脚部及び第2の脚部のうちの遊脚を左右方向に回転駆動させるための第2の左右方向制御信号を含む。第1の左右方向制御信号に第1の補正信号を加算することにより第3の制御信号が生成される。また、第2の左右方向制御信号に、第1の補正信号に所定の係数を乗じた第2の補正信号を加算することにより第4の制御信号が生成される。
【0041】
したがって、2足歩行ロボットの左右方向の傾斜角度に基づき第1の補正量及び積算補正量が算出されるので、第1の脚部及び第2の脚部を左右方向に駆動することができ、上体部を基準角度に対して所定の角度範囲に維持することができる。
【0042】
また、上記の歩行制御方法において、前記第3の制御信号に基づく前記第1の脚部又は前記第2の脚部の第1の駆動量が、前記第1の脚部及び前記第2の脚部が干渉する第2の閾値を越えるか否かを判定し、前記第4の制御信号に基づく前記第1の脚部又は前記第2の脚部の第2の駆動量が前記第2の閾値を越えるか否かを判定し、前記第1の駆動量が前記第2の閾値を超えると判定された場合、前記第1の駆動量を前記第2の閾値より少ない所定の値に変更し、前記第2の駆動量が前記第2の閾値を超えると判定された場合、前記第2の駆動量を前記第2の閾値より少ない所定の値に変更してもよい。
【0043】
この構成によれば、第3の制御信号に基づく第1の脚部又は第2の脚部の第1の駆動量が、第1の脚部及び第2の脚部が干渉する第2の閾値を越えるか否かが判定される。第4の制御信号に基づく第1の脚部又は第2の脚部の第2の駆動量が第2の閾値を越えるか否かが判定される。第1の駆動量が第2の閾値を超えると判定された場合、第1の駆動量が第2の閾値より少ない所定の値に変更される。また、第2の駆動量が第2の閾値を超えると判定された場合、第2の駆動量が第2の閾値より少ない所定の値に変更される。
【0044】
したがって、支持脚に対する第1の駆動量と、遊脚に対する第2の駆動量とがいずれも、駆動可能な第2の閾値を越えないように制御することができる。
【0045】
また、上記の歩行制御方法において、前記2足歩行ロボットの歩行面の凹凸を示す値が所定の値以下である場合、前記所定の係数を正の値としてもよい。
【0046】
この構成によれば、第1の補正信号に乗算する所定の係数を正の値とすることにより、凹凸の少ない歩行面において、安定して歩行させることができる。
【0047】
また、上記の歩行制御方法において、前記2足歩行ロボットの歩行面の凹凸を示す値が所定の値より大きい場合、前記所定の係数を負の値としてもよい。
【0048】
この構成によれば、第1の補正信号に乗算する所定の係数を負の値とすることにより、凹凸のある歩行面において、安定して歩行させることができる。
【0049】
また、上記の歩行制御方法において、前記上体部が、前記第1の脚部及び前記第2の脚部に対して略平行となる直立状態を検出した場合、前記積算補正量をゼロにクリアし、前記第1の制御信号及び前記第2の制御信号を再度生成してもよい。
【0050】
この構成によれば、上体部が、第1の脚部及び第2の脚部に対して略平行となる直立状態が検出された場合、積算補正量がゼロにクリアされる。そして、第1の制御信号及び第2の制御信号が再度生成される。
【0051】
したがって、外力によって一時的に振れ周期が変化したとしても、変化した振れ周期に追従することができ、横方向の重心移動を滑らかに継続させることができる。
【0052】
また、上記の歩行制御方法において、前記第1の補正信号が前記第1の制御信号及び前記第2の制御信号に合成されることによる前記第1の脚部及び前記第2の脚部の歩幅の変化量を記憶し、記憶した前記変化量を前記第1の制御信号及び前記第2の制御信号に加算し、記憶した前記変化量を時間の経過とともに減少させてゼロに収束させてもよい。
【0053】
この構成によれば、第1の補正信号が第1の制御信号及び第2の制御信号に合成されることによる第1の脚部及び第2の脚部の歩幅の変化量が記憶され、記憶された変化量が第1の制御信号及び第2の制御信号に加算される。したがって、記憶されている積算補正量をゼロにクリアした際における急激な歩幅の変化を防止することができる。また、記憶された変化量は、時間の経過とともに減少してゼロに収束する。したがって、第1の制御信号及び第2の制御信号を基準となる歩幅に戻すことができる。
【0054】
本開示の他の態様に係る歩行制御プログラムは、上体部、前記上体部に接続された第1の脚部、前記上体部に接続された第2の脚部、前記第1の脚部を駆動する第1の駆動部及び前記第2の脚部を駆動する第2の駆動部を備える2足歩行ロボットの歩行動作を制御する歩行制御プログラムであって、前記2足歩行ロボットは、直立可能な所定の基準角度で重心位置が調整されており、コンピュータを、前記2足歩行ロボットの歩行動作において、前記基準角度に対する前記上体部の傾斜角度を示す情報を取得する取得部と、前記歩行動作のために前記第1の脚部及び前記第2の脚部の一方が接地していない状態において、前記傾斜角度に応じて、前記上体部を前記基準角度に対して所定の角度範囲に維持するように前記第1の脚部及び前記第2の脚部を動作させる制御部として機能させる。
【0055】
この構成によれば、2足歩行ロボットは、直立可能な所定の基準角度で重心位置が調整されている。2足歩行ロボットの歩行動作において、基準角度に対する上体部の傾斜角度を示す情報が取得される。歩行動作のために第1の脚部及び第2の脚部の一方が接地していない状態において、傾斜角度に応じて、上体部を基準角度に対して所定の角度範囲に維持するように第1の脚部及び第2の脚部が動作される。
【0056】
したがって、歩行動作のために第1の脚部及び第2の脚部の一方が接地していない状態において、直立可能な所定の基準角度に対して上体部が所定の角度範囲に維持されるので、安定した歩行動作を実現することができる。
【0057】
本開示の他の態様に係る2足歩行ロボットは、上体部と、前記上体部に接続された第1の脚部と、前記上体部に接続された第2の脚部と、前記第1の脚部を駆動する第1の駆動部と、前記第2の脚部を駆動する第2の駆動部と、直立可能な所定の基準角度で重心位置が調整された2足歩行ロボットの歩行動作において、前記基準角度に対する前記上体部の傾斜角度を示す情報を取得する取得部と、前記歩行動作のために前記第1の脚部及び前記第2の脚部の一方が接地していない状態において、前記傾斜角度に応じて、前記上体部を前記基準角度に対して所定の角度範囲に維持するように前記第1の脚部及び前記第2の脚部を動作させる制御部と、を備える。
【0058】
この構成によれば、直立可能な所定の基準角度で重心位置が調整された2足歩行ロボットの歩行動作において、基準角度に対する上体部の傾斜角度を示す情報が取得される。歩行動作のために第1の脚部及び第2の脚部の一方が接地していない状態において、傾斜角度に応じて、上体部を基準角度に対して所定の角度範囲に維持するように第1の脚部及び第2の脚部が動作される。
【0059】
したがって、歩行動作のために第1の脚部及び第2の脚部の一方が接地していない状態において、直立可能な所定の基準角度に対して上体部が所定の角度範囲に維持されるので、安定した歩行動作を実現することができる。
【0060】
以下添付図面を参照しながら、本開示の実施の形態について説明する。なお、以下の実施の形態は、本開示を具体化した一例であって、本開示の技術的範囲を限定するものではない。
【0061】
上記のZMPを用いた歩行制御方法では、足裏センサによる床反力作用点の検知が、バランスを維持するために重要となる。しかしながら、人の2足歩行では、床反力作用点よりも、姿勢反射、特に前庭脊髄反射のうちの緊張性迷路反射又は緊張性頸反射などの不随意的な反射が歩行時のバランス維持に重要な役割を果たす。この不随意的な姿勢反射では、体が傾いた際、傾いた側の足が伸展し、反対側の足が屈曲することで体勢を立て直そうとする。生物のような柔軟なバランス制御を実現するためにはこのような仕組みが重要である。通常、バランスを崩して転倒する状態は、上体部が大きく傾いてしまった状態であるともいえる。そのため、上体部を常に垂直に維持できたら転倒には至らない。
【0062】
そこで、本実施の形態では、歩行中に上体部が傾いた場合に、股関節アクチュエータに傾き角度に応じた補正量をリアルタイムに重畳することで上体部の傾きを垂直に補正し、上体部が常に垂直になるように制御する。
【0063】
図1は、本実施の形態における2足歩行ロボットの構成を示す図である。
図1に示す2足歩行ロボット1は、上体部2、第1の脚部3、第2の脚部6、歩行制御装置10、傾斜角度検知部11、第1のピッチ軸アクチュエータ12、第2のピッチ軸アクチュエータ13、第1のロール軸アクチュエータ14及び第2のロール軸アクチュエータ15を備える。
【0064】
上体部2は、人間の上体(胴体)を模している。第1の脚部3は、人間の一方の足を模しており、上体部2に接続されている。第2の脚部6は、人間の他方の足を模しており、上体部2に接続されている。
【0065】
第1のピッチ軸アクチュエータ12、第2のピッチ軸アクチュエータ13、第1のロール軸アクチュエータ14及び第2のロール軸アクチュエータ15は、上体部2と、第1の脚部3及び第2の脚部6とを接続する股関節に設けられている。なお、2足歩行ロボット1には、股関節以外に膝関節及び足首関節なども存在するが、本実施の形態の歩行動作には関係がないので説明を省略する。
【0066】
第1のピッチ軸アクチュエータ12は、第1の脚部3をピッチ方向(ピッチ軸周り)に回転駆動させる。第2のピッチ軸アクチュエータ13は、第2の脚部6をピッチ方向(ピッチ軸周り)に回転駆動させる。
【0067】
第1のロール軸アクチュエータ14は、第1の脚部3をロール方向(ロール軸周り)に回転駆動させる。第2のロール軸アクチュエータ15は、第2の脚部6をロール方向(ロール軸周り)に回転駆動させる。
【0068】
傾斜角度検知部11は、例えば3軸ジャイロスコープであり、上体部2のピッチ方向の傾斜角度及び上体部2のロール方向の傾斜角度を検知する。
【0069】
歩行制御装置10は、2足歩行ロボット1の歩行動作を制御する。2足歩行ロボット1は、直立可能な所定の基準角度で重心位置が調整されている。歩行制御装置10は、傾斜角度検知部11によって検知された上体部2のピッチ方向の傾斜角度に応じて、上体部2を基準角度に対して所定の角度範囲に維持するように第1の脚部3及び第2の脚部6を動作させる。
【0070】
まず、本実施の形態におけるピッチ方向(前後方向)の歩行動作を制御する歩行制御装置について説明する。
【0071】
図2は、本実施の形態における2足歩行ロボットのピッチ方向の歩行制御について説明するための模式図である。なお、
図2では、2足歩行ロボット1を側面から見ている。
図2において、上体部2と第1の脚部3とは、股関節7により接続されており、上体部2と第2の脚部6とは、股関節8により接続されており、股関節7及び股関節8には、それぞれピッチ軸周りに回転駆動するアクチュエータが設けられている。例えば、第1の脚部3は、歩行する際に地面に接地している支持脚であり、第2の脚部6は、歩行する際に地面に接地していない遊脚である。
【0072】
ここで、アクチェエータによる股関節7,8の角度の変更は、重力方向に対する上体部2の傾斜角度の変化に連動している。
【0073】
通常、アクチュエータは、10ms程度の時間間隔で制御される。ある時刻tにおいて、上体部2の鉛直線5に対するピッチ方向の傾き角度がδθxであり、基本歩行モーションの支持脚側のピッチ軸股関節角度がθ
0t−1である場合、更新される支持脚側のピッチ軸股関節角度A
0tは、前回までの積算値I
xt−1に傾き補正量αδθx(αは係数)を加算した値I
xt(=I
xt−1+αδθx)に、時刻tにおける基本歩行モーションの制御量θ
0tを加算することにより算出される(A
0t=θ
0t+I
xt)。
【0074】
また、遊脚側のピッチ軸股関節角度A
1tも支持脚側のピッチ軸股関節角度A
0tと同様の処理で算出されるが、値I
xtの符号は逆符号となる。そのため、更新される遊脚側のピッチ軸股関節角度A
1tは、前回までの積算値I
xt−1に傾き補正量αδθx(αは係数)を加算した値I
xt(=I
xt−1+αδθx)を、時刻tにおける基本歩行モーションの制御量θ
1tから減算することにより算出される(A
1t=θ
1t−I
xt)。
【0075】
傾斜角度δθxを最小化する補正方法は、PID(Proportional−Integral−Differential)制御の積分項に相当し、I
xt=I
xt−1+αδθxが積分項に対応する。なお、特許文献1の技術は、PID制御の比例項を用いている。
【0076】
続いて、本実施の形態におけるピッチ方向の歩行動作を制御する歩行制御装置について説明する。
【0077】
図3は、本実施の形態におけるピッチ方向の歩行動作を制御する歩行制御装置の構成を示す図である。
【0078】
歩行制御装置10は、ピッチ軸傾斜角度取得部100及びピッチ軸制御部101を備える。
【0079】
ピッチ軸傾斜角度取得部100は、2足歩行ロボット1の歩行動作において、基準角度に対する上体部2の傾斜角度を示す情報を取得する。ピッチ軸傾斜角度取得部100は、傾斜角度検知部11によって検知された上体部2のピッチ方向の傾斜角度δθxを取得する。
【0080】
ピッチ軸制御部101は、歩行動作のために第1の脚部3及び第2の脚部6の一方が接地していない状態において、傾斜角度に応じて、上体部2を基準角度に対して所定の角度範囲に維持するように第1の脚部3及び第2の脚部6を動作させる。特に、ピッチ軸制御部101は、歩行動作のために第1の脚部3及び第2の脚部6の一方が接地していない状態において、ピッチ方向の傾斜角度に応じて、上体部2を基準角度に対して所定の角度範囲に維持するように第1の脚部3及び第2の脚部6を動作させる。
【0081】
ピッチ軸制御部101は、ピッチ軸補正量積算部103、記憶部104、第1のピッチ軸制御信号生成部105、第1の合成部106、第2のピッチ軸制御信号生成部107及び第2の合成部108を備える。
【0082】
ピッチ軸補正量積算部103は、上体部2を基準角度に対して所定の角度範囲に維持するように第1の脚部3及び第2の脚部6を動作させる際に、ピッチ方向の傾斜角度δθxに基づき、上体部2を基準角度に対して所定の角度範囲に維持するための第1の脚部3及び第2の脚部6のそれぞれの動作を補正するための第1のピッチ軸補正信号を生成する。ピッチ軸補正量積算部103は、ピッチ方向の傾斜角度δθxに基づき上体部2を基準角度に対して所定の角度範囲に維持するために算出された第1の補正量を、第1の補正量が算出されるまでに積算された積算補正量I
xに加算することにより第1のピッチ軸補正信号を生成する。第1の補正量及び積算補正量は、2足歩行ロボット1の前後方向(ピッチ方向)の傾斜角度に基づき算出される。
【0083】
ピッチ軸補正量積算部103は、所定の時点における傾斜角度δθxを変数とする第1の関数f
1(δθx)により第1の補正量を算出する。なお、第1の関数f
1(δθx)としては、所定の係数αを傾斜角度δθxに乗算した関数(αδθx)であってもよいし、所定の係数αを傾斜角度δθxの正弦関数に乗算した関数(α・sin(δθx))であってもよい。
【0084】
上記のように、第1のピッチ軸補正信号は、積算補正量I
x(=I
x+f
1(δθx))で表される。
【0085】
記憶部104は、ピッチ軸補正量積算部103によって算出された積算補正量I
xを記憶する。
【0086】
第1のピッチ軸制御信号生成部105は、第1の脚部3及び第2の脚部6のうちの支持脚に対して歩行動作を行わせるための第1のピッチ軸制御信号を生成する。第1のピッチ軸制御信号生成部105は、股関節を中心に支持脚をピッチ方向に回転させる角度θ
0を制御量とする第1のピッチ軸制御信号を生成する。
【0087】
第1の合成部106は、第1のピッチ軸制御信号(θ
0)と第1のピッチ軸補正信号(I
x)とを合成した第3のピッチ軸制御信号(A
0)を生成し、第1の脚部3及び第2の脚部6のうちの支持脚となる一方を駆動する支持脚側ピッチ軸アクチュエータ109に第3のピッチ軸制御信号を出力する。第1の合成部106は、第1のピッチ軸制御信号に第1のピッチ軸補正信号を加算することにより第3のピッチ軸制御信号を生成する。
【0088】
支持脚側ピッチ軸アクチュエータ109は、第1のピッチ軸アクチュエータ12及び第2のピッチ軸アクチュエータ13のいずれかであり、第3のピッチ軸制御信号に基づいて、第1の脚部3及び第2の脚部6のうちの支持脚となる脚部をピッチ方向に回転駆動する。
【0089】
第2のピッチ軸制御信号生成部107は、第1の脚部3及び第2の脚部6のうちの遊脚に対して歩行動作を行わせるための第2のピッチ軸制御信号を生成する。第2のピッチ軸制御信号生成部107は、股関節を中心に遊脚をピッチ方向に回転させる角度θ
1を制御量とする第2のピッチ軸制御信号を生成する。
【0090】
第2の合成部108は、第2のピッチ軸制御信号(θ
1)と第1のピッチ軸補正信号(I
x)とを合成した第4のピッチ軸制御信号(A
1)を生成し、第1の脚部3及び第2の脚部6のうちの遊脚となる他方を駆動する遊脚側ピッチ軸アクチュエータ110に第4のピッチ軸制御信号を出力する。第2の合成部108は、第2のピッチ軸制御信号から第1のピッチ軸補正信号を減算することにより第4のピッチ軸制御信号を生成する。
【0091】
このように、第1の合成部106及び第2の合成部108は、第1の脚部3及び第2の脚部6に対して歩行動作を行わせるための第1のピッチ軸制御信号及び第2のピッチ軸制御信号を第1の補正信号に基づいて補正し、補正した第3のピッチ軸制御信号及び第4のピッチ軸制御信号を第1の脚部3を駆動する第1のピッチ軸アクチュエータ12及び第2の脚部6を駆動する第2のピッチ軸アクチュエータ13のそれぞれに出力する。
【0092】
遊脚側ピッチ軸アクチュエータ110は、第1のピッチ軸アクチュエータ12及び第2のピッチ軸アクチュエータ13のいずれかであり、第4のピッチ軸制御信号に基づいて、第1の脚部3及び第2の脚部6のうちの遊脚となる脚部をピッチ方向に回転駆動する。
【0093】
このように、第1のピッチ軸制御信号θ
0に加算する第1のピッチ軸補正信号I
xの符号は正とし、第2のピッチ軸制御信号θ
1に加算する第1のピッチ軸補正信号I
xの符号は負とし、加算する第1のピッチ軸補正信号I
xの符号を互いに逆位相にすることで、歩幅が変化しても、常に2足歩行ロボット1の重心位置を、歩幅の中央に維持することができる。
【0094】
なお、第1の合成部106及び第2の合成部108は、2足歩行ロボット1が第1の脚部3及び第2の脚部6の双方により支持されている場合、第1の補正量を算出しなくてもよい。この場合、第1の補正量が算出されないので、積算補正量は固定となる。そのため、第1の合成部106は、第1のピッチ軸制御信号と、記憶部104に記憶されている積算補正量を示す第1のピッチ軸補正信号とを合成した第3のピッチ軸制御信号を生成する。また、第2の合成部108は、第2のピッチ軸制御信号と、記憶部104に記憶されている積算補正量を示す第1のピッチ軸補正信号とを合成した第4のピッチ軸制御信号を生成する。
【0095】
続いて、本実施の形態における歩行制御装置によるピッチ方向の歩行動作について説明する。
【0096】
図4は、本実施の形態における歩行制御装置によるピッチ方向の歩行動作について説明するためのフローチャートである。
【0097】
まず、ステップS1において、傾斜角度検知部11は、鉛直線に対する上体部2のピッチ方向の傾斜角度を検知する。
【0098】
次に、ステップS2において、ピッチ軸傾斜角度取得部100は、傾斜角度検知部11によって検知されたピッチ方向の傾斜角度を取得する。
【0099】
次に、ステップS3において、ピッチ軸補正量積算部103は、取得されたピッチ方向の傾斜角度に基づき上体部2を基準角度に対して所定の角度範囲に維持するために算出された第1の補正量を、第1の補正量が算出されるまでに積算された積算補正量に加算することにより第1のピッチ軸補正信号を生成する。ピッチ軸補正量積算部103は、積算補正量を記憶部104に記憶するとともに、生成した第1のピッチ軸補正信号を第1の合成部106及び第2の合成部108に出力する。
【0100】
次に、ステップS4において、第1のピッチ軸制御信号生成部105は、第1の脚部3及び第2の脚部6のうちの支持脚に対してピッチ方向の歩行動作を行わせるための第1のピッチ軸制御信号を生成する。
【0101】
次に、ステップS5において、第2のピッチ軸制御信号生成部107は、第1の脚部3及び第2の脚部6のうちの遊脚に対してピッチ方向の歩行動作を行わせるための第2のピッチ軸制御信号を生成する。
【0102】
次に、ステップS6において、第1の合成部106は、第1のピッチ軸制御信号生成部105によって生成された第1のピッチ軸制御信号に、ピッチ軸補正量積算部103によって生成された第1のピッチ軸補正信号を加算した第3のピッチ軸制御信号を生成する。第1の合成部106は、生成した第3のピッチ軸制御信号を、第1の脚部3及び第2の脚部6のうちの支持脚となる脚部を駆動する支持脚側ピッチ軸アクチュエータ109に出力する。
【0103】
次に、ステップS7において、第2の合成部108は、第2のピッチ軸制御信号生成部107によって生成された第2のピッチ軸制御信号から、ピッチ軸補正量積算部103によって生成された第1のピッチ軸補正信号を減算した第4のピッチ軸制御信号を生成する。第2の合成部108は、生成した第4のピッチ軸制御信号を、第1の脚部3及び第2の脚部6のうちの遊脚となる脚部を駆動する遊脚側ピッチ軸アクチュエータ110に出力する。
【0104】
次に、ステップS8において、支持脚側ピッチ軸アクチュエータ109は、第1の合成部106によって生成された第3のピッチ軸制御信号に基づいて、第1の脚部3及び第2の脚部6のうちの支持脚となる脚部を駆動する。
【0105】
次に、ステップS9において、遊脚側ピッチ軸アクチュエータ110は、第2の合成部108によって生成された第4のピッチ軸制御信号に基づいて、第1の脚部3及び第2の脚部6のうちの遊脚となる脚部を駆動する。その後、ステップS1の処理に戻り、歩行制御装置10によるピッチ方向の歩行動作が制御される。
【0106】
このように、基本歩行モーションに従い、支持脚と遊脚とを交互に切り替えながら股関節、膝関節及び足首のピッチ軸に対応するアクチュエータが駆動される。このとき、上体部が鉛直線に対しピッチ軸方向にδθx傾いた場合、δθxに係数αを掛けたαδθxを積算補正量I
xに加算し、積算補正量I
x(=I
x+αδθx)が、基本歩行モーションに追従する両脚の股関節ピッチ軸駆動量θ
0,θ
1に加算される。
【0107】
なお、ピッチ軸制御部101は、第3のピッチ軸制御信号に基づく第1の脚部3又は第2の脚部6の第1の駆動量が第1の閾値を越えるか否かを判定する第1の判定部と、第4のピッチ軸制御信号に基づく第1の脚部3又は第2の脚部6の第2の駆動量が第1の閾値を越えるか否かを判定する第2の判定部と、第1の駆動量が第1の閾値を超えると判定された場合、第1の駆動量を第1の閾値に変更する第1の変更部と、第2の駆動量が第1の閾値を超えると判定された場合、第2の駆動量を第1の閾値に変更する第2の変更部とをさらに備えてもよい。
【0108】
このとき、第1の判定部及び第1の変更部は、第1の閾値の符号を第1の駆動量の符号に合わせて変更してもよく、第2の判定部及び第2の変更部は、第1の閾値の符号を第2の駆動量の符号に合わせて変更してもよい。また、第1の判定部は、第1の駆動量の絶対値と第1の閾値とを比較してもよく、第2の判定部は、第2の駆動量の絶対値と第1の閾値とを比較してもよい。
【0109】
続いて、本実施の形態におけるロール方向(左右方向)の歩行動作を制御する歩行制御装置について説明する。
【0110】
歩行時において、床に脚が着いた状態の立脚相から、脚が床から離れた状態の遊脚相へ切り替える場合、又は遊脚相から立脚相へ切り替える場合、左右方向に安定した重心移動が行われなければならない。
【0111】
歩行状態では、左右の脚の間隔は、前後の脚の間隔(歩幅)よりも狭いため、左右の重心移動が、立脚相から遊脚相に移行する瞬間の脚上げタイミングにうまく同期しないと、横方向のバランスが乱れ、転倒する可能性がある。
【0112】
横方向に安定した重心移動を実現するには、ロボット毎に、その機体に整合した振れ幅d及び周期τを設定する必要があるが、それだけでは外乱、自身の機構的緩み又は擾乱などの影響により安定な左右の重心移動を維持するのは難しい。
【0113】
そこで、本実施の形態では、横方向の周期的な重心移動を実現する横方向の基本歩行モーションに対して、上体部が垂直になるように横方向の傾きを補正することにより、歩行動作を安定化させる。
【0114】
図5は、本実施の形態における2足歩行ロボットのロール方向の歩行制御について説明するための模式図である。なお、
図5では、2足歩行ロボット1を正面から見ている。
図5において、上体部2と第1の脚部3とは、股関節7により接続されており、上体部2と第2の脚部6とは、股関節8により接続されており、股関節7及び股関節8には、それぞれロール軸周りに回転駆動するアクチュエータが設けられている。例えば、第1の脚部3は、歩行する際に地面に接地する支持脚であり、第2の脚部6は、歩行する際に地面に接地していない遊脚である。
【0115】
ある時刻tにおいて、上体部2の鉛直線5に対する左右方向(ロール方向)の傾き角度がδθyであり、基本歩行モーションの支持脚側のロール軸股関節角度がΘ
0t−1である場合、更新される支持脚側のロール軸股関節角度B
0tは、前回までの積算値I
yt−1に傾き補正量βδθy(βは係数)を加算した値I
yt(=I
yt−1+βδθy)に、時刻tにおける基本歩行モーションの制御量Θ
0tを加算することにより算出される。
【0116】
また、遊脚側のロール軸股関節角度B
1tは、時刻tにおける基本歩行モーションのロール軸股関節角度Θ
1tに、積算値I
ytと係数γとの積を加算することにより算出される(B
1t=Θ
1t+γI
yt)。なお、係数γが1である場合、傾きによる補正が加わっても横方向に対して遊脚と支持脚とは平行に駆動され、起伏の少ない床の上などに適した安定した歩容となる。一方、係数γが負の値である場合、傾きによる補正が加わった際、遊脚と支持脚とは横方向に対して互いに反対の向きに駆動され、不整地でもバランスを維持することが容易となる。
【0117】
図6は、本実施の形態におけるロール方向の歩行動作を制御する歩行制御装置の構成を示す図である。
【0118】
歩行制御装置10は、ロール軸傾斜角度取得部200及びロール軸制御部201を備える。
【0119】
ロール軸傾斜角度取得部200は、2足歩行ロボット1の歩行動作において、基準角度に対する上体部2の傾斜角度を示す情報を取得する。ロール軸傾斜角度取得部200は、傾斜角度検知部11によって検知された上体部2のロール方向の傾斜角度δθyを取得する。
【0120】
ロール軸制御部201は、歩行動作のために第1の脚部3及び第2の脚部6の一方が接地していない状態において、傾斜角度に応じて、上体部2を基準角度に対して所定の角度範囲に維持するように第1の脚部3及び第2の脚部6を動作させる。特に、ロール軸制御部201は、歩行動作のために第1の脚部3及び第2の脚部6の一方が接地していない状態において、ロール方向の傾斜角度に応じて、上体部2を基準角度に対して所定の角度範囲に維持するように第1の脚部3及び第2の脚部6を動作させる。
【0121】
ロール軸制御部201は、ロール軸補正量積算部203、記憶部204、第1のロール軸制御信号生成部205、第1の合成部206、第2のロール軸制御信号生成部207、補正ゲイン乗算部208及び第2の合成部209を備える。
【0122】
ロール軸補正量積算部203は、上体部2を基準角度に対して所定の角度範囲に維持するように第1の脚部3及び第2の脚部6を動作させる際に、ロール方向の傾斜角度δθyに基づき、上体部2を基準角度に対して所定の角度範囲に維持するための第1の脚部3及び第2の脚部6のそれぞれの動作を補正するための第1のロール軸補正信号を生成する。ロール軸補正量積算部203は、ロール方向の傾斜角度δθyに基づき上体部2を基準角度に対して所定の角度範囲に維持するために算出された第1の補正量を、第1の補正量が算出されるまでに積算された積算補正量I
yに加算することにより第1のロール軸補正信号を生成する。第1の補正量及び積算補正量は、2足歩行ロボット1の左右方向(ロール方向)の傾斜角度に基づき算出される。
【0123】
ロール軸補正量積算部203は、所定の時点における傾斜角度δθyを変数とする第1の関数f
1(δθy)により第1の補正量を算出する。なお、第1の関数f
1(δθy)としては、所定の係数βを傾斜角度δθyに乗算した関数(βδθy)であってもよいし、所定の係数βを傾斜角度δθyの正弦関数に乗算した関数(β・sin(δθy))であってもよい。
【0124】
上記のように、第1のロール軸補正信号は、積算補正量I
y(=I
y+f
1(δθy))で表される。
【0125】
記憶部204は、ロール軸補正量積算部203によって算出された積算補正量I
yを記憶する。
【0126】
第1のロール軸制御信号生成部205は、第1の脚部3及び第2の脚部6のうちの支持脚に対して歩行動作を行わせるための第1のロール軸制御信号を生成する。第1のロール軸制御信号生成部205は、股関節を中心に支持脚をロール方向に回転させる角度Θ
0を制御量とする第1のロール軸制御信号を生成する。
【0127】
第1の合成部206は、第1のロール軸制御信号(Θ
0)と第1のロール軸補正信号(I
y)とを合成した第3のロール軸制御信号(B
0)を生成し、第1の脚部3及び第2の脚部6のうちの支持脚となる一方を駆動する支持脚側ロール軸アクチュエータ210に第3のロール軸制御信号を出力する。第1の合成部206は、第1のロール軸制御信号に第1のロール軸補正信号を加算することにより第3のロール軸制御信号を生成する。
【0128】
支持脚側ロール軸アクチュエータ210は、第1のロール軸アクチュエータ14及び第2のロール軸アクチュエータ15のいずれかであり、第3のロール軸制御信号に基づいて、第1の脚部3及び第2の脚部6のうちの支持脚となる脚部をロール方向に回転駆動する。
【0129】
第2のロール軸制御信号生成部207は、第1の脚部3及び第2の脚部6のうちの遊脚に対して歩行動作を行わせるための第2のロール軸制御信号を生成する。第2のロール軸制御信号生成部207は、股関節を中心に遊脚をロール方向に回転させる角度Θ
1を制御量とする第2のロール軸制御信号を生成する。
【0130】
補正ゲイン乗算部208は、第1のロール軸補正信号(I
y)に所定の係数(γ)を乗算することにより第2のロール軸補正信号(γI
y)を生成する。
【0131】
なお、補正ゲイン乗算部208は、2足歩行ロボット1の歩行面の凹凸を示す値が所定の値以下である場合、所定の係数γを正の値とする。この場合、2足歩行ロボット1は、歩行面の凹凸を数値化して検知するセンサを備える。これにより、傾きによる補正が加わっても、例えば係数γが1であれば、横方向に対して遊脚と支持脚とは平行に駆動され、起伏の少ない歩行面において安定した歩容を実現することができる。また、補正ゲイン乗算部208は、2足歩行ロボット1の歩行面の凹凸を示す値が所定の値より大きい場合、所定の係数γを負の値とする。これにより、傾きによる補正が加わった際、遊脚と支持脚とは横方向に対して互いに反対の向きに駆動されるので、不整地でもバランスを容易に維持することができる。
【0132】
第2の合成部209は、第2のロール軸制御信号(Θ
1)と第2のロール軸補正信号(γI
y)とを合成した第4のロール軸制御信号(B
1)を生成し、第1の脚部3及び第2の脚部6のうちの遊脚となる他方を駆動する遊脚側ロール軸アクチュエータ211に第4のロール軸制御信号を出力する。第2の合成部209は、第2のロール軸制御信号に、第1のロール軸補正信号に所定の係数を乗じた第2のロール軸補正信号を加算することにより第4のロール軸制御信号を生成する。
【0133】
遊脚側ロール軸アクチュエータ211は、第1のロール軸アクチュエータ14及び第2のロール軸アクチュエータ15のいずれかであり、第4のロール軸制御信号に基づいて、第1の脚部3及び第2の脚部6のうちの遊脚となる脚部をロール方向に回転駆動する。
【0134】
このように、第1のロール軸制御信号生成部205及び第2のロール軸制御信号生成部207は、駆動パターンである第1のロール軸制御信号Θ
0及び第2のロール軸制御信号Θ
1を連続的に生成するが、この第1のロール軸制御信号Θ
0及び第2のロール軸制御信号Θ
1に、傾き補正量である第1のロール軸補正信号I
y及び第2のロール軸補正信号γI
yを重畳することにより、上体部2を垂直に保つことができる。
【0135】
また、上体部2が、第1の脚部3及び第2の脚部6に対して略平行となる直立状態が検出された場合、ロール軸補正量積算部203は、記憶部204に記憶されている積算補正量をゼロにクリアしてもよい。そして、第1のロール軸制御信号生成部205は、第1のロール軸制御信号を再度生成してもよく、第2のロール軸制御信号生成部207は、第2のロール軸制御信号を再度生成してもよい。これにより、外力によって一時的に振れ周期が変化したとしても、変化した振れ周期に追従することができ、横方向の重心移動を滑らかに継続させることができる。なお、第1のロール軸制御信号及び第2のロール軸制御信号を再度生成する際、左右の脚部に対する支持脚と遊脚との切り替えの順番は保持される。
【0136】
また、第1のロール軸制御信号生成部205及び第2のロール軸制御信号生成部207は、第1のロール軸補正信号が第1のロール軸制御信号に合成されるとともに、第2のロール軸補正信号が第2のロール軸制御信号に合成されることによる第1の脚部3及び第2の脚部6の歩幅の変化量を記憶してもよい。第1のロール軸制御信号生成部205は、記憶した変化量を第1のロール軸制御信号に加算する。第2のロール軸制御信号生成部207は、記憶した変化量を第2のロール軸制御信号に加算する。これにより、記憶部204に記憶されている積算補正量をゼロにクリアした際における急激な歩幅の変化を防止することができる。また、第1のロール軸制御信号生成部205及び第2のロール軸制御信号生成部207は、記憶した変化量を時間の経過とともに減少させてゼロに収束させる。これにより、第1のロール軸制御信号及び第2のロール軸制御信号を基準となる歩幅に戻すことができる。
【0137】
また、第1の合成部206及び第2の合成部209は、2足歩行ロボット1が第1の脚部3及び第2の脚部6の双方により支持されている場合、第1の補正量を算出しなくてもよい。この場合、第1の補正量が算出されないので、積算補正量は固定となる。そのため、第1の合成部206は、第1のロール軸制御信号と、記憶部204に記憶されている積算補正量を示す第1のロール軸補正信号とを合成した第3のロール軸制御信号を生成する。また、第2の合成部209は、第2のロール軸制御信号と、記憶部204に記憶されている積算補正量を示す第1のロール軸補正信号とを合成した第4のロール軸制御信号を生成する。
【0138】
続いて、本実施の形態における歩行制御装置によるロール方向の歩行動作について説明する。
【0139】
図7は、本実施の形態における歩行制御装置によるロール方向の歩行動作について説明するためのフローチャートである。
【0140】
まず、ステップS21において、傾斜角度検知部11は、鉛直線に対する上体部2のロール方向の傾斜角度を検知する。
【0141】
次に、ステップS22において、ロール軸傾斜角度取得部200は、傾斜角度検知部11によって検知されたロール方向の傾斜角度を取得する。
【0142】
次に、ステップS23において、ロール軸補正量積算部203は、取得されたロール方向の傾斜角度に基づき上体部2を基準角度に対して所定の角度範囲に維持するために算出された第1の補正量を、第1の補正量が算出されるまでに積算された積算補正量に加算することにより第1のロール軸補正信号を生成する。ロール軸補正量積算部203は、積算補正量を記憶部204に記憶するとともに、生成した第1のロール軸補正信号を第1の合成部206及び補正ゲイン乗算部208に出力する。
【0143】
次に、ステップS24において、第1のロール軸制御信号生成部205は、第1の脚部3及び第2の脚部6のうちの支持脚に対してロール方向の歩行動作を行わせるための第1のロール軸制御信号を生成する。
【0144】
次に、ステップS25において、第2のロール軸制御信号生成部207は、第1の脚部3及び第2の脚部6のうちの遊脚に対してロール方向の歩行動作を行わせるための第2のロール軸制御信号を生成する。
【0145】
次に、ステップS26において、第1の合成部206は、第1のロール軸制御信号生成部205によって生成された第1のロール軸制御信号に、ロール軸補正量積算部203によって生成された第1のロール軸補正信号を加算した第3のロール軸制御信号を生成する。第1の合成部206は、生成した第3のロール軸制御信号を、第1の脚部3及び第2の脚部6のうちの支持脚となる脚部を駆動する支持脚側ロール軸アクチュエータ210に出力する。
【0146】
次に、ステップS27において、補正ゲイン乗算部208は、ロール軸補正量積算部203によって生成された第1のロール軸補正信号に所定の係数を乗算した第2のロール軸補正信号を生成する。補正ゲイン乗算部208は、生成した第2のロール軸補正信号を第2の合成部209に出力する。
【0147】
次に、ステップS28において、第2の合成部209は、第2のロール軸制御信号生成部207によって生成された第2のロール軸制御信号に、補正ゲイン乗算部208によって生成された第2のロール軸補正信号を加算した第4のロール軸制御信号を生成する。第2の合成部209は、生成した第4のロール軸制御信号を、第1の脚部3及び第2の脚部6のうちの遊脚となる脚部を駆動する遊脚側ロール軸アクチュエータ211に出力する。
【0148】
次に、ステップS29において、支持脚側ロール軸アクチュエータ210は、第1の合成部206によって生成された第3のロール軸制御信号に基づいて、第1の脚部3及び第2の脚部6のうちの支持脚となる脚部を駆動する。
【0149】
次に、ステップS30において、遊脚側ロール軸アクチュエータ211は、第2の合成部209によって生成された第4のロール軸制御信号に基づいて、第1の脚部3及び第2の脚部6のうちの遊脚となる脚部を駆動する。その後、ステップS21の処理に戻り、歩行制御装置10によるロール方向の歩行動作が制御される。
【0150】
なお、ロール軸制御部201は、第3のロール軸制御信号に基づく第1の脚部3又は第2の脚部6の第1の駆動量が、第1の脚部3及び第2の脚部6が干渉する第2の閾値を越えるか否かを判定する第1の判定部と、第4のロール軸制御信号に基づく第1の脚部3又は第2の脚部6の第2の駆動量が第2の閾値を越えるか否かを判定する第2の判定部と、第1の駆動量が第2の閾値を超えると判定された場合、第1の駆動量を第2の閾値より少ない所定の値に変更する第1の変更部と、第2の駆動量が第2の閾値を超えると判定された場合、第2の駆動量を第2の閾値より少ない所定の値に変更する第2の変更部とをさらに備えてもよい。
【0151】
このとき、第1の判定部及び第1の変更部は、第2の閾値の符号を第1の駆動量の符号に合わせて変更してもよく、第2の判定部及び第2の変更部は、第2の閾値の符号を第2の駆動量の符号に合わせて変更してもよい。また、第1の判定部は、第1の駆動量の絶対値と第2の閾値とを比較してもよく、第2の判定部は、第2の駆動量の絶対値と第2の閾値とを比較してもよい。
【0152】
ここで、従来の歩行制御と本実施の形態における歩行制御との差異について説明する。
【0153】
図8は、外力により上体部が傾いた際の従来の歩行制御について説明するための模式図であり、
図9は、外力により上体部が傾いた際の本実施の形態の歩行制御について説明するための模式図である。
【0154】
図8に示すように、従来の歩行制御装置では、例えば、2足歩行ロボットが片足を接地した状態で横方向から外力を受けた後、上体がθa度傾いた状態で直立姿勢に復帰した場合、傾きが戻らずに残ったり、傾きがさらに大きくなったりするため、2足歩行ロボットが転倒するおそれがある。
【0155】
一方、
図9に示すように、本実施の形態の歩行制御装置では、例えば、2足歩行ロボットが片足を接地した状態で横から外力を受けた後、上体がδθ度傾いた状態で直立姿勢に復帰した場合、上体部が垂直になるように傾きが補正されるので、2足歩行ロボットがバランスを崩して転倒するのを防止することができる。
【0156】
したがって、本実施の形態の2足歩行ロボットでは、足の裏にセンサを設けなくても、外力に強い歩行動作を実現することができる。また、本実施の形態の歩行制御装置は、従来の歩行制御装置のように目標ZMPへの収束計算が不要となるので、軌道計算を速くすることができる。また、本実施の形態の歩行制御装置は、上体部の任意の動きによる重心位置の変化に対しても対応でき、速い動きにも容易に追従させることができる。さらに、本実施の形態の歩行制御装置は、意図的に前傾させ、前方向の傾きを与えることで、自然に歩行を開始させたり、歩行速度を変えたりすることもできる。
【0157】
さらに、特許文献1の歩行制御と本実施の形態における歩行制御との差異について説明する。
【0158】
図10は、倒立振子を用いて特許文献1の歩行制御について説明するための模式図であり、
図11は、倒立振子を用いて本実施の形態の歩行制御について説明するための模式図である。
【0159】
まず、特許文献1の歩行制御について説明する。
図10に示すように、時刻t=0の初期姿勢において、台車位置はX
0であり、倒立振子の傾きeは0である。このとき、制御量KはX
0である。次に、時刻t=1において、台車位置はX
0であり、倒立振子の傾きeがθ
1になった場合、制御量KはX
0+αθ
1=X
1となり、倒立振子が傾いた方向に台車を距離(X
1−X
0)移動させる。次に、時刻t=2において、台車位置はX
1であり、倒立振子の傾きeが0になった場合、制御量KはX
0となり、台車を逆方向に距離(X
0−X
1)移動させ、初期位置に戻す。次に、時刻t=3において、時刻t=2の制御により台車が初期位置に戻されたことで、傾きeはθ
2となり、傾き補正が無効になる。このとき、通常は、θ
1<θ
2になる。
【0160】
このように、特許文献1の歩行制御方法は、常に上体部を垂直に維持するものではなく、遊脚が着地する直前まで残った傾き角に歩幅を対応させることで、遊脚が着地した後の安定性を確保している。
【0161】
続いて、本実施の形態の歩行制御について説明する。
図11に示すように、時刻t=0の初期姿勢において、台車位置はX
0であり、倒立振子の傾きeは0である。このとき、補正積算値I=0であり、制御量K=X
0+I=X
0+0=X
0である。次に、時刻t=1において、台車位置はX
0であり、倒立振子の傾きeがθ
1になった場合、補正積算値I=I+αθ
1となり、制御量K=X
0+I=X
0+αθ
1=X
1となり、倒立振子が傾いた方向に台車を距離(X
1−X
0)移動させる。次に、時刻t=2において、台車位置はX
1であり、倒立振子の傾きeが0になった場合、補正積算値I=I+0となり、制御量K=X
0+I=X
1となり、台車の位置は変わらない。次に、時刻t=3において、倒立振子の傾きeが0であれば、台車の位置は変わらず、外力が加わらなければ、倒立振子の傾きeは0のまま維持される。
【0162】
このように、本実施の形態の歩行制御方法では、補正量を積算しているので、補正後に補正量が補正積算値Iに加算され、定常値に組み込まれるため、2足歩行ロボットの安定点が保持され、安定したバランス制御を実現することができる。
【0163】
つまり、固定的な標準歩行動作に、上体部の傾斜角に対応した補正量を加える従来の制御(比例制御)と、固定的な標準歩行動作に、上体部の傾斜角に対応した補正量の積算値を加える本実施の形態の制御(積分制御)とでは、その挙動は全く異なる。
【0164】
なお、上記の実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPU又はプロセッサなどのプログラム実行部が、ハードディスク又は半導体メモリなどのコンピュータ読み取り可能な記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって各構成要素の動作または機能が実現されてもよい。
【0165】
また、各構成要素の動作又は機能を実現するときに利用するデータは、半導体メモリ又はハードディスクなどの書き込み可能な記録媒体に記録されてもよい。