(57)【要約】【課題】  複数のリンクからなるロボットの体幹に固定された加速度センサの出力に含まれるバイアス値をキャンセルするオフセット値を設定する。【解決手段】  ロボット本体１００に所定の静止姿勢をとらせる。その状態で体幹に固定された加速度センサの出力と、加速度センサの鉛直方向に対する姿勢角を検出する姿勢角センサの出力を読み込む。姿勢角から加速度センサの加速度検出方向を算出する。その方向の重力加速度ベクトルの成分を算出する。取り込んだ加速度センサの値から、算出した重力加速度ベクトルの成分を減算する。減算した結果の値がバイアス値に対するオフセット値となる。ロボット制御時には、加速度センサの出力値を取り込む際、取り込んだ値からオフセット値を減算して制御に用いる。ロボット制御装置内で正確な加速度の値を使用することができる。【選択図】  図１
2007007796.tif 000002
【特許請求の範囲】
【請求項１】
体幹と脚リンク群を備え、体幹に生じる加速度を検出することによって、体幹と脚リンク群の姿勢を変化させる歩行ロボットであり、
体幹に固定され、特定の方向（以下、加速度検出方向という）に生じている加速度成分を検出する加速度センサと、
加速度センサに直接的または間接的に固定され、前記加速度検出方向が鉛直方向に対してなす姿勢角を検出する姿勢角センサと、
ロボットが所定静止姿勢に静止している間に、加速度センサが出力する電気量と、姿勢角センサが出力する姿勢角を取得する手段と、
前記取得手段で取得した電気量を、既知の関係で換算して加速度に換算する手段と、
前記取得手段で取得した姿勢角から、加速度検出方向の重力加速度成分を算出する手段と、
前記換算手段で換算した加速度から前記算出手段で算出した重力加速度成分を減算した値を、加速度センサが出力する電気量を前記換算手段で換算した加速度から減算するオフセット値に記憶する手段と、
を有することを特徴とする歩行ロボット。
【請求項２】
前記加速度センサが複数備えられており、これらの加速度センサには、体幹の上下方向に加速度検出方向が定められた第１の加速度センサと、体幹の前後方向に加速度検出方向が定められた第２の加速度センサが含まれており、これらのセンサに対応するオフセット値を記憶していることを特徴とする請求項１に記載の歩行ロボット。
【請求項３】
ロボットの動作中に、前記加速度センサが出力する電気量と前記姿勢角センサが出力する姿勢角を取得する手段と、
前記取得手段で取得した姿勢角から、取得タイミングにおける加速度検出方向の重力加速度成分を算出する手段と、
前記取得手段で取得した電気量を前記既知の関係で換算した加速度から、前記取得タイミングにおける加速度検出方向の重力加速度成分と前記オフセット値を減算する手段と、
をさらに有していることを特徴とする請求項１又は２に記載の歩行ロボット。
【請求項４】
前記加速度センサと前記姿勢角センサは一体化したユニットに構成され、
前記姿勢角センサは、ユニット内部に内蔵された加速度センサと、ユニット内部に内蔵された角速度センサと、それらの出力値に基づいて、加速度検出方向が鉛直方向に対してなす姿勢角を演算する手段を有することを特徴とする請求項１から３のいずれか１項に記載の歩行ロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、体幹と脚リンク群を備える歩行ロボットの制御技術に関する。詳しくは、体幹に固定された加速度センサが出力する加速度を利用して、その姿勢を変化させるロボットの制御技術に関する。
【背景技術】
【０００２】
体幹と脚リンク群を有する歩行ロボット（以下単にロボットと称する）が開発されている。このロボットは体幹と脚リンク群の相対的姿勢を変化させることによって歩行する。
体幹に加速度センサを固定し、体幹に生じる加速度を検出し、加速度センサから出力される加速度を利用して、体幹と脚リンク群の姿勢を変化させる歩行ロボットが開発されている。体幹の位置や姿勢を意図したものに制御するためには、加速度センサによって体幹に作用する加速度を正確に取得しなければならない。
【０００３】
特許文献１に、加速度センサを体幹に固定したロボットが開示されている。この技術では、体幹に固定した加速度センサの出力に基づいて、体幹が横になった状態にあるのか縦になった状態にあるのかを判断する。
【０００４】
【特許文献１】特開平１１−１５６７６５号公報（段落００３９）
【０００５】
体幹が横になった状態にあるのか縦になった状態にあるのかを判断する程度であれば、加速度センサの出力値に多少の誤差があっても制御に影響はない。しかしながら、体幹の位置や姿勢を意図したものに制御するためには、体幹に作用する加速度の方向とその大きさを正確に取得しなければならない。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
加速度センサは、電圧や電流や静電容量といった電気量で出力する。そこで、加速度センサは、電気量を加速度に換算する関係を必要とする。例えば出力電圧が1mVであるから10mm/sec２の加速度であり、2mVであるから20mm/sec２の加速度であるという換算関係を必要とする。この換算関係は、加速度センサ毎に予め算出されている。
予め換算関係が判明している加速度センサをロボットに搭載してみると、予め計測しておいた換算関係からずれてしまう事象が頻繁に発生することがわかってきた。例えば、上記の関係であることが判明している加速度センサをロボットに搭載してみると、10mm/sec２の加速度であるときに1.2mVが出力され、20mm/sec２の加速度であるときに2.2mVが出力されるといった事象が頻発する。
予め判明している換算関係からずれる事象を研究した結果、電気量と加速度の間に成立するゲイン（比例定数）がずれることよりも、電気量に存在するバイアス値がずれることの影響が大きいことがわかってきた。上記に例示した場合では、ロボットに搭載すると、加速度センサの出力電圧が0.2 mVだけ高くなり、そのまま換算すると実際の加速度よりも2mm/sec２だけ大きな加速度を検出してしまうことが判明してきた。
ずれが発生する原因としては、例えば、加速度センサに加える駆動電圧が、換算関係を測定したときの電圧からずれることが考えられる。また、センサ出力をデジタル信号に変換するＡＤコンバータが換算関係を測定したときのＡＤコンバータと異なることが原因のひとつとして考えられる。いずれにしても加速度センサが出力する電気量に存在するバイアス値が換算関係を測定したときの値からずれる現象がよく発生する。
【０００７】
そこで、加速度センサをロボットに搭載した後に、加速度センサが出力する電気量を加速度に換算するための換算関係を改めで計測し直す必要がある。
通常の加速度センサは特定の方向に生じている加速度成分を検出する。以後本明細書では、加速度センサが加速度成分を検出する際の「特定の方向」を加速度検出方向と称する。加速度センサをロボットに搭載した後に、前記換算関係を計測するためには、ロボットに搭載した加速度センサの加速度検出方向を正確に特定する必要がある。また加速度センサから本来得られるべき加速度の真の大きさも正確に特定する必要がある。即ち前記換算関係を計測するためには、加速度検出方向と、その方向に実際に生じている加速度の真の大きさをともに正確に特定する必要がある。両者が特定できないことには、換算関係を確立することができない。
ロボットは、体幹の姿勢角を指令するデータを用い、その指令データに一致するように体幹の姿勢角を変化させる。従って、体幹の姿勢角は、指令値に等しいはずである。体幹の姿勢角が判明すれば、体幹に固定されている加速度センサの加速度検出方向も特定できるはずである。
従来は、体幹の姿勢角を指令するデータから加速度センサの加速度検出方向を算出している。しかしながら、脚リンク群の剛性（脚部各関節の角度偏差も含む剛性）を高くすることは困難であり、体幹の姿勢角が指令値からずれることが避けられない。加速度センサの加速度検出方向を、体幹の姿勢角の指令値から算出する限り、加速度センサの加速度検出方向を正確に特定することはできない。さらにその加速度センサから本来得られるべき加速度の真の大きさも特定することができない。よって加速度センサの出力値と加速度の間に成立する換算関係を正確に特定することができない。
本発明は、加速度センサをロボットに搭載した後に、加速度センサが出力する電気量を加速度に換算するための換算関係を改めて計測し直すことによって、正確な換算関係に修正できる技術を提案する。
【課題を解決するための手段】
【０００８】
本発明の換算関係の修正技術では、ロボットを静止させ、ロボットの運動に起因して生じる加速度をゼロとする。すなわち、重力加速度だけが作用する環境を実現し、実際に生じている加速度を既知量とできる環境を整える。
また本発明では、姿勢角センサを利用し、加速度センサの加速度検出方向が鉛直方向に対してなす姿勢角を直接に検出する。
このことによって加速度検出方向が特定できる。さらに鉛直方向には9.8m/sec2の重力加速度が作用している。従って加速度センサの加速度検出方向に作用している真の加速度の大きさは重力加速度の加速度選出方向成分となる。加速度センサから得るべき加速度の真の大きさも重力加速度の加速度選出方向成分として得られる。即ち加速度センサの加速度検出方向が鉛直方向に対してなす姿勢角を直接に検出することによって、加速度検出方向と、その方向に実際に生じている加速度の真の大きさをともに正確に特定することができる。
加速度検出方向が既知となり、加速度検出方向に生じている加速度の真の大きさが既知となり、その時の加速度センサの出力値が既知となっても、それだけでは、加速度センサが出力する電気量を加速度に換算するための換算関係を特定することができない。電気量に存在するバイアス値が変動したのか、電気量と加速度の間に成立するゲインが変動したのかが特定できないからである。
本発明では、実際的にはゲインの変動を考慮する必要はなく、バイアス値の変動を考慮すれば、実用上は十分に正確な換算関係に修正できるという知見を活用する。
【０００９】
本発明は、体幹と脚リンク群を備え、体幹に生じる加速度を検出することによって、体幹と脚リンク群の姿勢を変化させる歩行ロボットに具現化することができる。
本発明の歩行ロボットは、体幹に固定され、特定の方向（以下、加速度検出方向という）に生じている加速度成分を検出する加速度センサと、加速度センサに直接的または間接的に固定されているとともに加速度検出方向が鉛直方向に対してなす姿勢角を検出する姿勢角センサと、ロボットが所定の静止姿勢に静止している間に、加速度センサが出力する電気量と姿勢角センサが出力する姿勢角を取得する手段と、前記取得手段で取得した電気量を既知の関係で換算して加速度に換算する手段と、前記取得手段で取得した姿勢角から加速度検出方向の重力加速度成分を算出する手段と、前記換算手段で換算した加速度から前記算出手段で算出した重力加速度成分を減算した値を、加速度センサが出力する電気量を前記換算手段で換算した加速度から減算するオフセット値に記憶する手段を備えている。
【００１０】
本発明では、ロボットを所定の静止姿勢に静止させ、ロボットの運動に起因して生じる加速度はゼロであり、重力加速度だけが作用する測定環境を実現する。
本発明では、ロボットの体幹に固定された加速度センサに直接的または間接的に固定されている姿勢角センサを利用して、加速度センサの加速度検出方向が鉛直方向に対してなす姿勢角を検出する。なお、「間接的に固定される」とは同一の部材に対して加速度センサと姿勢角センサが固定されており、その位置関係がロボットに組み込む前に（事前に）既知であるという意味である。
以上によって、加速度センサが検出しているはずの加速度の大きさを既知量とすることができる。
本発明の加速度センサは、加速度センサが出力する電気量を予め測定されている換算関係を利用して加速度に換算する。このとき、加速度センサが検出している加速度の真の大きさと、換算された加速度の間に、ずれが生じることが多い。
本発明では、そのずれが、加速度センサが出力する電気量と加速度の間に成立するゲインが変動したためではなく、電気量に加わるバイアス値が変動したものとする。その場合には、予め測定されている換算関係自体を作り直す必要がなく、予め測定されている換算関係を利用して換算した加速度から、バイアス値の変動による分を増減修正すればよいという考え方を採用する。
本発明では、加速度センサが出力する電気量を予め計測しておいた既知の換算関係で換算した加速度から、実際の加速度（重力加速度成分）を減算することによって、増減修正することによって真の加速度に修正するオフセット値を求め、これを記憶し、それを以後の換算結果に利用する。
本発明によると、加速度センサが出力する電気量を予め計測しておいた換算関係で加速度に換算し、次いでオフセット値を減算することによって、方向と大きさがともに正確である加速度を検出することを可能となる。
【００１１】
ロボットには、前記加速度センサが複数備えられており、これらの加速度センサには、体幹の上下方向に加速度検出方向が定められた第１の加速度センサと、体幹の前後方向に加速度検出方向が定められた第２の加速度センサが含まれていることが好ましい。これらの加速度センサにより、歩行中のロボットを側方から観測したときの体幹の姿勢を意図したものに調整することが可能となる。
この場合、各々の加速度センサに対して各々のオフセット値を求め、各々の加速度センサに対して各々のオフセット値を記憶していることが好ましい。
上記によると、ロボットの上下方向に生じる加速度と前後方向に生じる加速度の双方を正確に検出することができる。
【００１２】
同様に、ロボットが、体幹の上下方向に加速度検出方向が定められた第１の加速度センサと、体幹の左右方向に加速度検出方向が定められた第２の加速度センサが含まれていてもよい。これらの加速度センサにより、歩行中のロボットを正面から観測したときの体幹の姿勢を意図したものに調整することが可能となる。
この場合も、各々の加速度センサに対して各々のオフセット値を求め、各々の加速度センサに対して各々のオフセット値を記憶していることが好ましい。
上記によると、ロボットの上下方向に生じる加速度と左右方向に生じる加速度の双方を正確に検出することができる。
【００１３】
もちろん、ロボットが、体幹の上下方向に加速度検出方向が定められた第１の加速度センサと、体幹の前後方向に加速度検出方向が定められた第２の加速度センサと、体幹の左右方向に加速度検出方向が定められた第３の加速度センサが含まれていてもよい。この場合は、歩行中のロボットをいずれの方向から観測しても、体幹の姿勢を意図したものに調整することが可能となる。
この場合も、各々の加速度センサに対して各々のオフセット値を求め、各々の加速度センサに対して各々のオフセット値を記憶していることが好ましい。
上記によると、ロボットの上下方向に生じる加速度と前後後方に生じる加速度と左右方向に生じる加速度のいずれをも正確に検出することができる。
【００１４】
加速度センサで本当に検出したいのは、ロボットの運動であり、運動に起因して生じる加速度である。そのためには、ロボットの動作中に、加速度センサが出力する電気量と姿勢角センサが出力する姿勢角を取得する手段と、その取得手段で取得した姿勢角から取得タイミングにおける加速度検出方向の重力加速度成分を算出する手段と、その取得手段で取得した電気量を前記既知の関係で換算した加速度から、前記の取得タイミングにおける加速度検出方向の重力加速度成分と前記したオフセット値を減算する手段を備えていればよい。
上記の場合、オフセット値を減算するために正確な加速度が検出され、加速度検出方向の重力加速度成分を減算するために重力加速度の影響を排除することができる。ロボットの運動に起因して生じる加速度のみを正確に検出することができる。
【００１５】
上記技術を利用すると、加速度センサの出力を利用してロボットを制御する場合に、重力加速度を考慮しない制御ロジックを採用することが可能となる。制御ロジックを簡略化することができる。
特にロボットのコンプライアンス制御では、ロボットがバランスを失いかけた場合、ロボットがバランスを回復する側に体幹の位置を修正する制御を行う。このとき、重力加速度成分を除外した加速度が検出できれば、ロボットの動作に起因する加速度のみを考慮した制御ロジックを構築すればよい。コンプライアンス制御ロジックを簡略化することができる。
【００１６】
加速度センサと姿勢角センサは一体化したユニットに構成することが好ましい。この場合、ユニット内部に加速度センサと角速度センサを内蔵し、それらの出力値に基づいて、加速度検出方向が鉛直方向に対してなす姿勢角を演算する手段を備えていることが好ましい。
加速度センサと姿勢角センサが一つのユニットに構成されているために、姿勢角センサが、加速度検出方向が鉛直方向に対してなす姿勢角の正確な値を出力することが可能となる。さらにセンサユニットに内蔵された加速度センサと角速度センサの出力値をユニットの内部で演算して姿勢角を求めるように構成することで、体幹に固定する前に姿勢角センサの校正と加速度センサの校正とを同時に正確に行うことができる。
【発明の効果】
【００１７】
本願発明によれば、加速度センサをロボットの体幹に固定した状態で、加速度センサの出力値を加速度に換算する際に加わる、バイアス値による誤差をキャンセルするために必要なオフセット値を、正確に設定することができる。
【発明を実施するための最良の形態】
【００１８】
実施例の主要な特徴を列記する。
（第１形態）  ロボットを所定の静止姿勢に保持する際、本来の加速度フィードバック制御はオフとしておくことが好ましい。加速度センサの出力値に関係なくロボットを所定の静止姿勢に保持することができるからである。加速度フィードバック制御を行うと場合によってはロボットが微妙に振動することがある。フィードバック回路をオフしておくことで加速度センサに余計な加速度成分が加わることを防止することができる。
（第３形態）  所定の静止姿勢は、体幹の上下方向が歩行面に対して垂直な姿勢となる静止姿勢（いわゆる直立姿勢）が好ましい。体幹が歩行面に対して垂直となった姿勢でオフセット値を設定することで、加速度センサから取得した加速度の値からオフセット値を減算した値が最も正確となるのがオフセット値設定時の姿勢、すなわち直立姿勢のときとなる。加速度フィードバック制御時に歩容データとして体幹が歩行面に対して垂直となるような姿勢を与えたときに、ロボットの実際の姿勢もその歩容データに極めて近い姿勢となるよう制御することが可能となる。
（第３形態）  加速度センサの姿勢角を検出する検出手段として、加速度センサに傾斜角センサを固定することも好ましい。
【実施例】
【００１９】
図面を参照して実施例を詳細に説明する。
まず図７により、加速度センサの出力をロボット制御装置が取り込む際にバイアス値の存在による、ロボット１００の姿勢変化について例示する。
図７（Ａ）はロボット１００が直立姿勢をとったときの側面図である。符号８０は体幹を示す。符号１１０は脚リンク群を示す。体幹８０には加速度センサ３０が基準点Ｐに固定されている。加速度センサの加速度検出方向は図８（Ａ）に示すＸ軸の方向とする。
【００２０】
今、ロボット１００はＸ軸方向にコンプライアンス制御されている。即ちロボット１００の体幹８０の基準点Ｐは仮想的な壁２００と仮想的なバネ２０２及び仮想的なダンパ２０４で連結されている。仮想的な壁２００と仮想的なバネ２０２及び仮想的なダンパ２０４はあくまで仮想的な存在であってロボット１００の制御ロジック内で構築されたものである。この体幹８０は、体幹８０に外力が加わると仮想的なバネ２０２と仮想的なダンパ２０４の作用によってＸ軸方向に振動する（但しダンパ２０４の減衰力が大きければ振動しない）。そして仮想的なダンパ２０４の減衰力により、所定時間後に仮想的なバネ２０４による復元力と外力とが釣り合う位置で体幹８０は静止する。上記のように体幹８０は、外見上、仮想的な壁２００と仮想的なバネ２０２及び仮想的なダンパ２０４で連結されつつ動作しているかのように制御される。
【００２１】
図８（Ａ）は外力が作用していない状態のロボット１００の姿勢を示している。仮想的なバネ２０２の自然長はＬである。従って体幹８０は仮想的なバネ２０２からも力を受けていないものとして静止状態に制御されている。
【００２２】
ここでロボット１００が静止状態であれば本来加速度センサ３０からの出力はゼロであるべきである。ところが前述したオフセット値が既知のオフセット値からずれていると、ロボット１００の制御装置が加速度センサ３０からの出力を取り込む際に、ずれたバイアス値の存在により、Ｘ軸方向の加速度がゼロでなくｄＧＸであると換算されてしまう。ロボット１００の制御装置は体幹リンク８０のＸ軸方向に加速度ｄＧＸが作用しているものとして制御が実行される。今、体幹８０の質量をＭとする。制御装置内では加速度ｄＧＸにより体幹８０にＭ×ｄＧＸの外力が作用しているものと判断する。この外力（Ｍ×ｄＧＸ）を図７に符号２１０で示す。そこで制御装置内のコンプライアンス制御ロジックでは、この外力と仮想的なバネ２０２の復元力が釣り合うように体幹８０のＸ軸方向の位置を制御する。具体的には仮想的なバネ２０２のバネ定数をＫとすると復元力（Ｋ×ｄＬ）の大きさが外力（Ｍ×ｄＧＸ）の大きさと釣り合うように長さｄＬを決定する。そして長さｄＬだけ体幹８０をＸ軸方向に移動させる。このときのロボット１００の姿勢を図７（Ｂ）に示す。体幹８０はＸ軸方向にｄＬだけ移動した位置に制御される。体幹８０をＸ軸方向にｄＬだけ移動させるために、図７（Ｂ）に示す脚リンク群１１０ｂの姿勢となるようにその各関節の角度が制御される。
このときコンプライアンス制御ロジック内では、外力（Ｍ×ｄＧＸ）（図７に矢印２１０で示す）と仮想的なバネ２０２の復元力（Ｋ×ｄＬ）（図７（Ｂ）に矢印２２０で示す）が釣り合っているものと判断されている。ところが加速度ｄＧＸは実際に体幹８０に作用している加速度ではなく、加速度センサ３０の出力を取り込む際のずれたバイアス値の存在により発生したものである。結果体幹８０にはなんら外力が作用していないにも関わらずその姿勢がずれてしまう。特に静止しているときのロボット１００の姿勢がずれると見かけ上そのずれがはっきり認識できる。ずれたバイアス値の存在はロボットの姿勢制御に与える影響は大きい。
ずれたバイアス値をキャンセルするオフセット値が正確に求まっていれば上記例のようなロボットの姿勢のずれは発生しない。バイアス値をキャンセルするオフセット値を求めることは重要である。
【００２３】
なお、図７（Ｂ）に示した姿勢ではロボットは前方へ倒れる可能性があるように見える。図７（Ｂ）はバイアス値のずれを説明するためにロボットの姿勢の変化を誇張して描いたもので、実際にロボットが倒れる可能性は少ない。また、仮想的な壁２００と仮想的なバネ２０２及び仮想的なダンパ２０４は実在するものではなくコンプライアンス制御ロジック内で演算上のものであるが図７にはわかりやすいように実線で描いた。
また体幹８０が図７（Ｂ）に示すようにＸ軸方向前方へ移動するには脚リンク群の姿勢が図７（Ｂ）の符号１１０ｂで示すように変化する。その際に脚リンク群１１０の幾何学的拘束条件から体幹８０は鉛直下方へずれるが図７ではそのずれは無視して描いてある。
【００２４】
次に図１から図４を用いて本発明の実施例によるロボットの制御を説明する。
図１は本実施例のロボット制御装置１０とロボット本体１００のブロック図である。ロボット制御部１０とロボット本体１００を合わせたものが「ロボット」である。ロボット制御装置１０には、ロボットへ指示する歩容データ２０（ロボット本体１００の各所に設けられている基準点の目標位置の経時的データ）が入力される加速度演算部２２を備える。この加速度演算部２２は、歩容データ２０からロボット各所の基準点の目標加速度を算出する。減算部２３では、加速度演算部２２で算出されたロボット本体１００の各基準点の目標加速度から、ロボット本体１００に設置された加速度センサ３０から得られるロボット本体１００の基準点の加速度が減算される。減算部２３で減算されるロボット本体１００の基準点の加速度は、加速度センサ３０から取得した加速度からオフセット値を減算し、さらに重力成分を除去した加速度である。オフセット値および、重力成分の除去については後述する。
ロボット制御部１０はまた、減算部２３で算出された加速度が入力されるフィードバック制御部２４を備える。フィードバック制御部２４では、図７でロボット１００の姿勢変化について例示した際に説明したコンプライアンス制御が実行される。そしてフィードバック制御部２４からはコンプライアンス制御ロジックにより求められたロボットの各基準点のサンプリング毎の目標位置が出力される。
さらにフィードバック制御部２４の出力をロボット各関節に備えられたアクチュエータ２８（以下、関節アクチュエータと称す）へ指示する目標関節角度に変換する目標値変換部２６を備える。変換された関節アクチュエータへ指示する目標関節角度は、各関節のアクチュエータ２８に送られ、ロボット本体１００が動作する。
ロボット制御装置１０はまた、ロボット本体１００の体幹に固定された加速度センサ３０から出力される電気量を加速度に換算する換算部３１を備える。換算部３１は加速度センサ３０が出力する電気量に対してゲイン（比例定数）を乗じ、バイアス値を加える。このときのゲインとバイアス値は、加速度センサ３０をロボットに固定する前に校正した際に測定された値である。
ロボット制御装置１０はさらに、換算部３１から出力される加速度と、姿勢角センサ３２の値から加速度のオフセット値を設定するオフセット設定部３４と、設定されたオフセット値を記憶するオフセット記憶部３６を備える。記憶されたオフセット値は減算部３７において、加速度フィードバック制御の際に、換算部３１から出力される体幹の加速度から減算される。この減算処理により、加速度センサ３０が出力する校正時のバイアス値からずれたバイアス値を含む電気量を換算部３１で変換した加速度から、ずれたバイアス分の加速度を除去した加速度（ロボット１００に生じる真の加速度）を得ることができる。そして加速度制御フィードバック制御を容易にするため、オフセット値（ずれたバイアス分の加速度）を減算したロボットに生じる真の加速度値から重力加速度成分を除去する重力加速度成分除去部３８を備える。
なおスイッチ４０および４２は、オフセット値を設定するときとロボットを実際に制御するときに応じて制御回路を切り替えるためのスイッチである。
【００２５】
次にロボット制御装置１０の主要な構成要素について説明を加える。
歩容データ２０には、ロボットの各所に設定された基準点の経時的な目標位置のデータが記述されている。加速度演算部２２ではこの経時的な目標位置データからロボットの基準点の目標加速度が算出される。
一方ロボットに生じている加速度は加速度センサ３０で検出される。加速度センサ３０が出力する電気量が変換部３１で加速度に変換され、減算部３７でオフセット値が減算される（この時点で真の加速度の値となる）。減算部３７でオフセット値が減算された値から、さらに重力加速度成分除去部３８で重力加速度成分が除去される（この時点でロボットの動作によって生じる真の加速度の値となる）。
減算部２３は、加速度演算部２２で算出された目標加速度から、ロボットの動作によって生じている真の加速度を減算し、目標加速度からの偏差をフィードバック制御部２４へ送る。このフィードバック制御部２４内には前述したコンプライアンス制御ロジックの他にＰＩＤ制御ロジックなどの制御回路が組まれている。フィードバック制御部２４からはロボットの基準点のサンプリング毎の目標位置が出力される。この出力は目標値変換部２６に入力され、各関節アクチュエータのサンプリング毎の目標関節角度に変換されロボット本体１００の各関節アクチュエータ２８が駆動される。
【００２６】
ロボット本体１００に備えられた加速度センサ３０は体幹に固定されている。加速度センサ３０の例としては、体幹上下方向、前後方向、体側方向の加速度を検出できるよう３軸の加速度センサもしくは３軸ごとに独立した１軸加速度センサが３個用いられる。姿勢角センサ３２は、加速度センサ３０の鉛直方向に対する姿勢角を検出する。姿勢角センサ３２は加速度センサ３０に直接的または間接的に固定されている。ここで間接的に固定される、とは同一の部材に対して加速度センサと姿勢角センサが固定されており、その位置関係がロボットに組み込む前に既知であるという意味である。
傾斜角センサとしては、鉛直方向に対する姿勢角を直接検出する傾斜角センサを用いることができる。また、加速度センサと角速度センサを内蔵するセンサユニットであって、それら２種類のセンサの出力値に基づいて、加速度検出方向が鉛直方向に対してなす姿勢角をセンサユニット内部で演算して出力するものであってもよい。
【００２７】
加速度センサ３０の出力値は、電圧や電流などの電気量である。この電気量を加速度に変換するのが換算部３１である。加速度センサ３０自体はロボットに組み込む前に校正されているので換算値は既知である。例えば加速度センサ３０の出力が電圧値で、1.0［Ｖ］の出力が9.8［m/sec２］に相当する場合は、加速度センサ３０からの出力値に対する換算定数は9.8［m/sec２/Ｖ］である。換算部３１では、加速度センサ３０の出力する電気量に対して上述した既知の換算定数を乗じて加速度の単位に変換して出力する。
【００２８】
加速度センサ３０のオフセット値を設定する場合は、スイッチ４０を接続状態に、スイッチ４２を切断状態とする。そして加速度センサ３０の出力と姿勢角センサ３２の出力からオフセット設定部３４でオフセット値が設定される。設定されたオフセット値はオフセット記憶部３６に記憶される。ここでスイッチ４２を切断状態としてフィードバック回路を切り離すのは、制御系の安定性の問題からロボットが振動しないようにするためである。
【００２９】
オフセット値を設定した後は、スイッチ４０を切断状態に、スイッチ４２を接続状態とする。オフセット値を設定した後はオフセット設定部３４を実行する必要はなく、またロボット制御時には加速度フィードバックが必要となるからである。
【００３０】
重力加速度成分除去部３８は、特にロボットにコンプライアンス制御を行わせるときに有効である。コンプライアンス制御では、ロボットに外力が加えられた際、その外力によってロボットが見かけ上マス／ダンパ系、あるいはバネ／マス／ダンパ系として運動するよう制御するものである。そこで加速度センサ３０の出力値から重力加速度成分を除去することでフィードバック制御部２４内においては重力加速度を無視してロボットに加えられた外力だけを考慮した制御系を構成すればよいことになる。従ってフィードバック制御ロジックを簡略化できる。
【００３１】
なお、ロボット制御装置１０が加速度センサ３０の出力の取得する際にセンサの出力値に誤差（バイアス値）が加わる。この誤差は、センサ校正時には現れなかった誤差である。その要因は例えばセンサ校正時とロボット制御装置が備えるＡ／Ｄコンバータの違いなどによる。
【００３２】
次に図２に基づいてオフセット設定部３４内部の各モジュールについて説明する。
加速度検出方向算出部５６では、姿勢角センサ３２から入力された姿勢角データ５０に基づいて加速度センサ３０の加速度検出方向を算出する。加速度センサ３０の鉛直方向に対する姿勢角は、加速度センサの所定方向に固定された基準線と、鉛直方向のなす角度で表される。所定方向に固定された基準線が、加速度検出方向に一致しているなら、姿勢角そのものが加速度センサ３０の加速度検出方向に相当する。また所定方向に固定された基準線が、加速度検出方向に一致していないなら、基準線と加速度検出方向の位置関係と姿勢角から加速度センサ３０の加速度検出方向を算出できる。次に重力加速度ベクトル成分算出部５８では、重力加速度のうち、加速度センサ３０の加速度検出の方向の成分を算出する。そして加速度検出方向算出部５６で求めた鉛直方向に対する加速度検出方向の、重力加速度の成分を算出する。
オフセット算出部６０には、変換部３１によって加速度センサ３０から出力された電気量から変換された加速度のデータ５２が入力される。このオフセット算出部６０で、取得した加速度のデータ５２から算出された重力加速度の加速度検出方向の成分を減算してオフセット値が設定される。設定されたオフセト値はオフセット記憶部３６に記憶される。
【００３３】
上記装置では、姿勢角センサ３２によって加速度センサ３０の鉛直方向に対する姿勢角を直接検出するので、体幹がどのような姿勢であってもかまわない。
この加速度センサ３０の姿勢角を基準にして、鉛直方向に対する加速度センサ３０の加速度検出方向および重力加速度の方向を求めることができる。これにより加速度センサ３０の出力を取得した値から重力加速度の加速度検出方向成分を減算することが可能となる。またロボットには所定の静止姿勢を保持させているので重力加速度以外にロボットには加速度は作用していない。従って加速度センサ３０の出力を加速度に変換した値から重力加速度の加速度検出方向成分を減算したものがバイアス値による誤差（以下、この加速度の単位での誤差を取得誤差と称す）となる。この取得誤差をオフセット値として設定し、ロボット制御時には加速度センサ３０から取得した電気量を変換部３１で変換した加速度の値からこのオフセット値を減算することで、加速度センサの出力をロボット制御装置１０に取り込む際に加わった取得誤差を相殺することが可能となる。
【００３４】
次に図３のフローチャート図によりオフセット値設定処理の流れを説明する。まずステップＳ１００でロボット本体１００に対して所定の静止姿勢を保持するよう目標位置の指令値（歩容データ）が出力される。この指令値は図１では符号２０で示した線で表されている。所定の静止姿勢は任意の姿勢でよいが、ロボット制御中、体幹は歩行面に対して垂直な姿勢と保持するよう制御されることが多い。例えばいわゆる直立姿勢である。そこで体幹の上下方向が歩行面に対して垂直な姿勢となる静止姿勢が好ましい。体幹が歩行面に対して垂直となった姿勢でオフセット値を設定することで、加速度センサから取得した加速度の値からオフセット値を減算した値が最も正確となるのがオフセット値設定時の姿勢、すなわち直立姿勢のときとなる。加速度フィードバック制御時に歩容データとして体幹が歩行面に対して垂直となるような姿勢を与えたときに、ロボットの実際の姿勢もその歩容データに極めて近い姿勢となるよう制御することが可能となる。
【００３５】
次にステップＳ１０２では、姿勢角センサ３２の出力および加速度センサ３０の出力値を取得する。このときセンサからの出力にノイズなどの高周波成分が含まれる場合はローパスフィルタを通すことも好ましい。
次にステップＳ１０４では加速度センサ３０から取得した電気量を加速度の単位に換算する換算定数を乗じる。こうして加速度センサ３０から出力された値は加速度の次元で扱うことが可能となる。
次にステップＳ１０６では、加速度センサ３０の加速度検出方向を算出する。この処理はステップＳ１０２で取得した姿勢角データ（加速度センサの鉛直方向に対する姿勢角）における加速度センサの基準線と加速度検出方向との位置関係からから算出することができる。
次にステップＳ１０８では、重力加速度のうち、加速度検出方向の成分を算出する。重力加速度は鉛直下方を向くベクトルであり、また加速度検出方向もステップＳ１０６で算出されているのでこれらより重力加速度の加速度検出方向の成分を算出することができる。
次にステップＳ１１０では、ステップＳ１０６で換算された加速度の値からステップＳ１０８で算出された値を減算する。減算した結果がオフセット値となる。最後にステップＳ１１２で算出されたオフセット値をオフセット記憶部３６に記憶する。こうして加速度センサ３０のオフセット値が設定される。
【００３６】
姿勢角センサ３２が出力する姿勢角に対してもロボットの制御装置に取り込む際にバイアス（誤差）が付加される可能性はある。しかし制御装置への取り込み時に付加される、加速度に対する誤差と姿勢角に対する誤差の要因が同じであるならば、取り込んだ姿勢角を正確な値であると仮定して加速度の誤差を特定することには物理的に有益な意味がある。加速度と姿勢角では動力学的次元が異なるからである。加速度を２回積分した値が位置となる。従ってロボットに生じる加速度を検出し、検出された加速度を制御装置に取り込んでロボットの運動を推定するとき、制御装置に取り込む際に加速度の値に加わる誤差は、２回の積分により累積されて位置に反映される。一方姿勢角はそれ以上積分することはないので制御装置に取り込まれる際に加わった誤差はそのままである。２回の積分により累積される誤差は、姿勢角の次元（即ち位置の次元）で加わる誤差よりも大きくなる。換言すれば位置の次元で加わる誤差は加速度の次元で加わる誤差と比較して、ロボットの運動に与える影響は小さい。影響の小さい誤差を含む値（姿勢角）に基づいて影響の大きい誤差を含む値（加速度）を修正すれば、影響の大きい誤差を含む値（加速度）の誤差は小さくすることができる。
【００３７】
また、加速度センサ３０が複数あるときは図３のフローチャートの処理を各加速度センサごとに繰り返す。加速度センサ３０は体幹の上下方向を向く第１の加速度センサと体幹の前後方向に向く第２の加速度センサを備えていることが好ましい。特に第２のセンサは、ロボットが歩行する際に、ロボットの前後方向の加速度を検出するのに適している。ロボットが前後方向バランスを失わずに歩行するには、ロボットの前後方向の加速度を直接検知する方が有利だからである。
さらに一つの加速度センサ３０に対して、ロボットに複数の静止姿勢を保持させ図３の処理を繰り返す。そして複数の静止姿勢に対して求まったオフセット値を平均化して最終的なオフセット値とすることも好適である。
【００３８】
次に図４を用いてオフセット値設定の具体例を示す。図４にはロボット本体１００の体幹８０のみを示し、他のリンク部品は省略してある。体幹８０には加速度センサ３０が点線に示すように取り付けられている。説明を簡単にするため、２次元平面におけるオフセット値の設定方法について説明する。また以後は加速度センサ３０の出力である電気量から加速度に変換された後の値を加速度センサ３０からの出力値として扱って説明する。
体幹８０には加速度センサ３０が点線に示すように取り付けられている。ここで加速度センサ３０の中心を原点とし、Ｘ，Ｚ軸を図４に示す座標系を仮定する。なお、Ｘ軸は体幹前方を向き、Ｚ軸は体幹下方に向いている。ここで重力加速度は符号ｇで表してある。従ってｇが示す矢印の方向が鉛直下方となる。このとき加速度センサ３０の姿勢角は符号８２で示す角度となる。この姿勢角は姿勢角センサから取得される。なお今は２次元平面内に限定しているので加速度センサ３０の姿勢角は角度８２のみで決定される。また加速度センサ３０の加速度検出方向はＸ軸の方向である。この場合、重力加速度のＸ軸成分、すなわち加速度検出方向成分はベクトルｇの大きさに、角度８２の正弦を乗じた値となる。図４に符号８４に示す矢印が重力加速度の加速度検出方向成分である。このとき、加速度センサ３０の出力値が符号８６で示す矢印であったとする。ロボットには静止姿勢を保持させているので体幹８０には重力加速度以外の加速度は生じていない。従って加速度センサ３０の出力値８６から重力加速度の加速度検出方向成分８４を減じた値、即ち図４に８８で示す矢印の大きさがバイアス値に対する加速度の単位でのオフセット値として設定される。以上は２次元平面に限定して説明したが３次元空間状でも同様にオフセット値を設定することができる。
【００３９】
なお、オフセット値を算出する間、ロボットを任意の静止姿勢とさせるが、この静止姿勢として、直立姿勢で静止させておくことも好ましい。ロボットは動作の前後の静止期間、あるいは直進歩行中など、体幹の上下方向を鉛直方向に向けている場合が多い。従ってそのような姿勢においてオフセット値を算出することによって、動作中によく取る姿勢のときにオフセット値を減じた値がより正確となるようにすることができる。
また、図１のブロック図では加速度センサ３０と、姿勢角センサ３２は独立のものとして描いた。姿勢角センサとしては例えば傾斜角センサ等がある。また加速度センサ３０と姿勢角センサ３２を合わせたユニットとして、加速度センサと角速度センサを一つの筐体に収め、鉛直方向に対する姿勢角は加速度センサと角速度センサの出力から算出して出力するものを用いてもよい。
【００４０】
次に図５および図６を用いて、オフセット値設定後のロボットの制御について説明する。この制御はロボットに取り付けられた加速度センサの値からオフセット値と重力加速度成分を除去した値を用いてロボットに加速度フィードバック制御を行うものである。
【００４１】
図５はロボット制御中に行われる、加速度フィードバックループ中の重力加速度成分除去の流れを示すフローチャート図である。図５とともに図１を参照しながら処理の流れを説明する。以下の処理は図１の重力成分除去部３８で処理される。
ステップＳ１０２ｂでは、ロボット動作中の各サンプリング周期毎にロボット本体１００に備えられた加速度センサ３０と姿勢角センサ３２の出力値を取得する。なお、ステップＳ１０２ｂでは加速度センサの出力する電気量に対して既知の換算定数を乗じる処理も行う。従ってステップＳ１０２ｂ以降では加速度センサからの出力は加速度の次元を有する物理量として扱う。次にステップＳ１０６ｂでは加速度センサの加速度検出方向を算出する。ステップＳ１０８ｂでは重力加速度のうち、加速度検出方向の成分を算出する。ステップＳ１１０ｂでは加速度センサ３０の出力からステップＳ１０８ｂで算出された重力加速度の加速度検出方向成分を減算する。ここまでの処理において、サンプリング毎に各ステップで行われる処理は図３のフローチャートに示した処理と同じである。具体的にはステップＳ１０２ｂの処理は図３のステップＳ１０２およびＳ１０４の処理と、ステップＳ１０６ｂはステップＳ１０６と、ステップＳ１０８ｂはステップＳ１０８と、ステップＳ１１０ｂはステップＳ１１０と同じ処理を行っている。
【００４２】
ここで、ステップＳ１１０ｂの加速度センサ３０の出力値から重力加速度の加速度検出方向成分を減算する処理が重力加速度成分を除去する処理である。
最後にステップＳ１１４では、オフセット記憶部３６に記憶されているオフセット値を重力加速度成分が除去された後の加速度センサ出力値から減算する。こうして得られた結果が重力加速度成分除去部３８の出力となる。そして図１に示すように加速度演算部２２から出力される加速度目標値とともにフィードバックループを形成する。
【００４３】
次に図６を用いて重力加速度成分の除去の処理を例示する。図４と同様に２次元平面に限定して説明する。
今、所定のサンプリング時点（所定のタイミング時点）において、体幹８０には矢印９８で示す加速度が生じているものとする。このときＸ軸方向を加速度検出方向とする加速度センサ３０の出力値は９６で示す矢印であるとする。このセンサ出力値９６には重力加速度ｇと体幹８０に加わっている加速度ベクトル９８の加速度検出方向成分が含まれる。また同時にセンサ誤差（オフセット値）も含まれる。従って加速度センサ３０の出力値９６から、重力加速度ｇの加速度検出方向成分とオフセット値を減算すれば体幹８０に加わっている加速度の加速度検出方向成分だけが取り出せる。このことを図６の矢印を用いて説明すると以下の通りとなる。
体幹８０の姿勢角は符号９２で示す角度である。従って重力加速度ｇの加速度検出方向成分は９４となる。また体幹８０に加わった加速度９８の加速度検出方向成分は９８ａに示す矢印となる。矢印９８ａは理解を容易にするためにＸ軸上ではなくＸ軸に対して平行移動させて示した。この９８ａと同じ大きさのベクトルとして矢印９８ｂをＸ軸上に描いた。また矢印８８の大きさは図４で例示した加速度センサ３０のオフセット値の大きさである。即ち加速度センサ３０の出力９６は、重力加速度ｇの加速度検出方向成分９４、オフセット値８８、および体幹８０に加わっている加速度ベクトル９８の加速度検出方向成分９８ｂが加算されたものである。従って加速度センサ３０の出力値９６から重力加速度ｇの加速度検出方向成分９４とオフセット値８８を減算すれば、体幹８０に加わっている加速度ベクトル９８の加速度検出方向成分９８ｂを求めることができる。
【００４４】
こうして加速度センサ３０から出力される電気量のバイアス値により生じる誤差に対するオフセット値と、重力加速度の加速度検出方向成分を減算することで重力加速度以外に体幹８０に加わっている加速度の正確な値を求めることが可能となる。
この加速度値を用いてロボットを制御することで、バイアス値をキャンセルした、正確な加速度値でかつ簡単な加速度フィードバック制御系によりロボットを制御することができる。
以上の実施例では加速度センサが一つの場合を例示したが加速度センサが複数あっても同様の処理を適用することが可能である。
【００４５】
なお上記実施例では加速度センサの加速度検出方向を特定するために加速度センサに直接的または間接的に固定されている姿勢角センサを利用した。ここで「間接的に固定される」とは同一の部材に対して加速度センサと姿勢角センサが固定されており、その位置関係がロボットに組み込む前に（事前に）既知であるという意味である。体幹の姿勢を特定するためには脚リンク群の各関節に備えられたエンコーダの値と脚の各リンクの形状からいわゆる順変換によって体幹の姿勢を求めることもできる。しかしながらエンコーダの値にも誤差が含まれる。さらには複数の関節がリンクを介して直列に連結された脚リンク群の構造から順変換を行うと各エンコーダの誤差が累積する。さらに順変換にはリンク自体の剛性は考慮されない。以上の理由からエンコーダの値に基づいて体幹の姿勢角、さらには加速度センサの加速度検出方向を特定するよりも、姿勢角センサから加速度センサの加速度検出方向を特定する際の精度の方が顕著に高精度となる。姿勢角センサを用いることにより加速度センサのオフセット値を高精度に求めることが可能となる。
【００４６】
また上記実施例では加速度センサの加速度検出方向（請求項に記載の「特定の方向」に相当する）として体幹の前後方向を例とした。しかし加速度検出方向は体幹の前後方向に限られるものではない。さらに加速度検出方向もひとつに限られるものではない。
ロボットには、前記加速度センサが複数備えられており、これらの加速度センサには、体幹の上下方向に加速度検出方向が定められた第１の加速度センサと、体幹の前後方向に加速度検出方向が定められた第２の加速度センサが含まれていてもよい。夫々の加速度センサに対してオフセット値を求めて記憶する。記憶したオフセット値を用いてロボットを制御する。これにより、歩行中のロボットを側方から観測したときの体幹の姿勢を意図したものに調整することが可能となる。
同様に、ロボットが、体幹の上下方向に加速度検出方向が定められた第１の加速度センサと、体幹の左右方向に加速度検出方向が定められた第２の加速度センサが含まれていてもよい。これらの加速度センサのオフセット値を求めて記憶する。記憶されたオフセット値を用いてロボットを制御することにより、歩行中のロボットを正面から観測したときの体幹の姿勢を意図したものに調整することが可能となる。
もちろん、ロボットが、体幹の上下方向に加速度検出方向が定められた第１の加速度センサと、体幹の前後方向に加速度検出方向が定められた第２の加速度センサと、体幹の左右方向に加速度検出方向が定められた第３の加速度センサが含まれていても同様の効果を奏することができる。
【００４７】
以上、本発明の具体例を詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成し得るものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【００４８】
【図１】ロボット制御装置のブロック図である。
【図２】オフセット設定部内のブロック図である。
【図３】オフセット設定処理のフローチャート図である。
【図４】オフセット設定処理の様子を例示した図である。
【図５】重力加速度成分除去処理のフローチャート図である。
【図６】重力加速度成分除去処理の様子を例示する図である。
【図７】オフセット値がある場合のロボットの姿勢の変化を例示する図である。
【符号の説明】
【００４９】
１０：ロボット制御装置
２２：加速度演算部
２３、３７：減算部
２４：フィードバック制御部
２６：目標値変換部
２８：関節アクチュエータ
３０：加速度センサ
３１：換算部
３２：姿勢角センサ
３４：オフセット設定部
３６：オフセット記憶部
３８：重力加速度成分除去部
４０、４２：スイッチ
５６：加速度検出方向算出部
５８：重力加速度ベクトル成分算出部
６０：オフセット算出部
１００：ロボット
ｇ、Ｇ：重力加速度ベクトル
【図１】
2007007796.tif 000003
【図２】
2007007796.tif 000004
【図３】
2007007796.tif 000005
【図４】
2007007796.tif 000006
【図５】
2007007796.tif 000007
【図６】
2007007796.tif 000008
【図７】
2007007796.tif 000009