(57)【要約】【課題】支持脚と遊脚とを交互に切り換えて歩行する脚式移動ロボットの動作シミュレーションを、単一のリンクモデルで行う。【解決手段】動作シミュレーションのためのリンクモデルを設定する際に、基準座標系が床面に固定された仮想リンク系１０５と、この仮想リンク系１０５の末端を基準座標系として放射状に展開する複数の直列リンク系１０１〜１０４とを設ける。そして、直列リンク系１０１〜１０４が床面から受ける床反力およびモーメントが零であるとしたときの、各リンクの力およびモーメントを計算する。その後、仮想リンク系１０５が直列リンク系１０１〜１０４に与える力およびモーメントを、これらの直列リンク系１０１〜１０４が床面から受ける力およびモーメントに置き換えるための演算を行う。【選択図】図１
2005262374.tif 000002
【特許請求の範囲】
【請求項１】
脚式移動ロボットに所望の動作を行わせる際に各リンクに作用する力およびモーメントを得るための動作シミュレーション方法であって、
基準座標系が床面に固定された仮想リンク系と、該仮想リンク系の末端を基準座標系として放射状に展開する複数の直列リンク系とを備えるリンクモデルを設定する第１過程と、
ロボットが動作する際の各姿勢毎に、前記仮想リンク系および前記直列リンク系についてのリンクパラメータを決定する第２過程と、
前記リンクパラメータを用いて、前記各姿勢における各リンクの位置、速度、加速度、角速度および角加速度を計算する第３過程と、
前記位置、前記速度、前記加速度、前記角速度および前記角加速度を用いて、前記直列リンク系が床面から受ける床反力およびモーメントが零であるとしたときの、それぞれの前記リンクの力およびモーメントを計算する第４過程と、
前記仮想リンク系が前記直列リンク系に与える力およびモーメントを、該直列リンク系が前記床面から受ける力およびモーメントに置き換える第５過程と、
を含むことを特徴とする脚式移動ロボットの動作シミュレーション方法。
【請求項２】
前記リンクモデルが、前記直列リンク系の末端を基準座標系とする他の直列リンク系をさらに備えることを特徴とする請求項１に記載の脚式移動ロボットの動作シミュレーション方法。
【請求項３】
それぞれの前記直列リンク系の末端が前記床面に接しているか否かを、該直列リンク系に含まれる各リンクの座標を前記床面のモデルと比較することによって判断することを特徴とする請求項１または２に記載の脚式移動ロボットの動作シミュレーション方法。
【請求項４】
それぞれの前記直列リンク系の末端が前記床面に接しているか否かを、フラグの値によって判断することを特徴とする請求項１または２に記載の脚式移動ロボットの動作シミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、脚式移動ロボットに所望の動作を行わせる際に各リンクに作用する力およびモーメントを得るための動作シミュレーション方法に関する。
【背景技術】
【０００２】
リンク式ロボットとしては、腕型ロボット等の固定式ロボットや、二足歩行ロボット等の脚式移動ロボットが知られている。リンク式ロボットの開発段階や、実際に使用されているリンク式ロボットに対して新しい動作パターンを追加する場合等には、動作実験に先立って、動作シミュレーションが行われる。このシミュレーションは、脚式移動ロボットにおいては、特に重要である。いきなり動作実験を行ったのでは、意図された動作パターン通りの動作が行われなかったときに、かかる脚式移動ロボットが破損したり、試験作業者に危険が生じたりするおそれがあるためである。このようなシミュレーションを行うためには、リンク式ロボットの動作を数学的に解析する必要がある。
【０００３】
リンク式ロボットのリンク座標系を記述する一般的な方法としては、Denavit-Hartenberg法（以下、「ＤＨ法」と記す）が有名である。ＤＨ法とは、基準となるリンクから末端リンクに向かって、リンク０、リンク１、リンク２、・・・を定義し、各リンク０，１，２・・・の座標を４個のパラメータ（Ｘ軸方向の並進、Ｘ軸周りの回転、Ｚ軸方向の並進およびＺ軸周りの回転）を用いて記述する方法である。
【０００４】
また、リンク式ロボットの運動を解析する手法としては、順運動学解析や逆動力学解析が知られている。順運動学解析とは、各リンクの角度からリンク座標系先端部の角度を求めることであり、４×４同時変換行列による座標変換によって求めることができる。一方、逆動力学解析とは、各リンクで生ずるべき運動が与えられたときにその運動を行うために生成すべきトルクを求めることであり、ラグランジュ法やニュートン・オイラー法等によって求めることができる。
【０００５】
これらの手法を用いてリンク式ロボットの運動を解析する技術としては、例えば下記特許文献１、２に開示されたものが知られている。
【０００６】
リンク式ロボットの運動解析を行う際には、まず、ロボットを構成する各リンクの座標系をＤＨ法で設定して上述の４パラメータを導き出し、さらに、各リンクの質量と各リンクに固定された座標系から見た慣性テンソルおよび重心位置とを導き出す。このとき、固定式ロボットの場合には、地面に固定された基底リンクを、ＤＨ法の基準リンク（上述のリンク０）に設定する。そして、この基底リンクから末端リンクに向かって順に座標系が設定される。
【０００７】
このような運動解析手法を脚式移動ロボットの運動解析にそのまま適用すると、支持脚の接地部分に基準座標を設定し、この基準座標を元に他のリンクの座標系を定義して、各パラメータを導出することになる。しかしながら、脚式移動ロボットの場合は、移動に伴って支持脚および遊脚が順次入れ替わる。このため、支持脚が遊脚となって地面から離れると、新たな支持脚を基準座標に設定し直して、他のリンクの座標系や各パラメータを求め直さなければならなくなる。上述のように、ＤＨ法では基底リンクから末端リンクに向かって順次座標系を設定するので、基底リンクと末端リンクとが入れ替わると、各リンクの座標系は、位置・向き共に全く異なる座標系になる。したがって、上述の各パラメータも全く異なる値になる。
【０００８】
このように、一般的なリンク式ロボットの運動解析手法を脚式移動ロボットに適用する場合には、支持脚となる脚部ごとに初期値を設定しなければならないという欠点が生じる。このとき、支持脚が切り替わる前後における解析結果が連続するように初期条件を設定しなければならない。さらに、支持脚となる脚部が切り替わるたびに計算手法を切り換えなければならなくなる場合もあり得る。したがって、一般的なリンク式ロボットの運動解析手法を用いて脚式移動ロボットのシミュレーションを行う場合、演算処理が非常に複雑になってしまう。
【特許文献１】特開平５−２７７９６８号公報
【特許文献２】特開２００３−１７８１０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明の課題は、簡単な演算処理で脚式移動ロボットの動作シミュレーションを行うことができるシミュレーション方法を提供する点にある。
【課題を解決するための手段】
【００１０】
本発明は、脚式移動ロボットに所望の動作を行わせる際に各リンクに作用する力およびモーメントを得るための動作シミュレーション方法に関する。
【００１１】
そして、基準座標系が床面に固定された仮想リンク系と該仮想リンク系の末端を基準座標系として放射状に展開する複数の直列リンク系とを備えるリンクモデルを設定する第１過程と、ロボットが動作する際の各姿勢毎に仮想リンク系および直列リンク系についてのリンクパラメータを決定する第２過程と、リンクパラメータを用いて各姿勢における各リンクの位置、速度、加速度、角速度および角加速度を計算する第３過程と、位置、速度、加速度、角速度および角加速度を用いて直列リンク系が床面から受ける床反力およびモーメントが零であるとしたときのそれぞれのリンクの力およびモーメントを計算する第４過程と、仮想リンク系が直列リンク系に与える力およびモーメントを該直列リンク系が床面から受ける力およびモーメントに置き換える第５過程とを含む。
【発明の効果】
【００１２】
本発明によれば、仮想リンク系を用いてリンクモデルを設定するので、支持脚と遊脚とを切り換えて歩行する脚式移動ロボットの動作シミュレーションを、単一のリンクモデルで行うことができる。したがって、本発明によれば、簡単な演算処理で脚式移動ロボットの動作シミュレーションを行うことが可能になる。
【発明を実施するための最良の形態】
【００１３】
以下、この発明の実施の形態について、図面を用いて説明する。なお、図中、各構成成分の大きさ、形状および配置関係は、この発明が理解できる程度に概略的に示してあるにすぎず、また、以下に説明する数値的条件は単なる例示にすぎない。
【００１４】
第１実施形態
本実施形態に係るロボットの動作シミュレーション方法について、本発明を二足歩行型の脚式移動ロボットに適用した場合を例に採り、図１〜図４を用いて説明する。
【００１５】
図１は、本実施形態に係るリンクモデルを示す概念図である。図１に示したように、本実施形態に係るリンクモデルでは、ロボット１００に対して、直列リンク系１０１，１０２，１０３，１０４と仮想リンク系１０５とが設定される。
【００１６】
直列リンク系１０１〜１０４は、互いに独立して設定される。すなわち、本実施形態では、上述したような従来のリンク系のように支持脚の接地部分から遊脚や腕部に向かって直列に連鎖するリンク系を設定するのではなく、右脚、左脚、右腕、左腕をそれぞれ個別にモデル化することによって４個の直列リンク系１０１〜１０４を設定する。各直列リンク系１０１〜１０４は、それぞれ、直列に連鎖する構造を備えている。これらの直列リンク系１０１〜１０４は、共通の基準座標系Ｒ０を備えている。この基準座標系Ｒ０は、例えば、ロボット１００の胴体部分内に設けられる。このように、本実施形態に係るリンクモデルは、基準座標系Ｒ０を中心として複数の直列リンク系１０１〜１０４が放射状に展開するリンク構造を備えている。
【００１７】
図２は、左脚の直列リンク系１０２をモデル化して座標系を設定した例である。図２に示したように、直列リンク系１０２は、基準座標系Ｒ０の原点Ｏ０と関節部の原点Ｏ１〜Ｏ６とを備えている。ここで、原点Ｏ１〜Ｏ３は股関節の原点に相当し、原点Ｏ４は膝関節の原点に相当し、原点Ｏ５，Ｏ６は足首関節の原点に相当する。各関節部原点Ｏ１〜Ｏ６では、かかる関節の回転方向にＺ軸が設定され（図２のＺ１〜Ｚ６）、このＺ軸と直角の方向にＸ軸（図２のＸ１〜Ｘ６）およびＹ軸（図２のＹ１〜Ｙ６）が設定される。なお、他の直列リンク系１０１，１０３，１０４の構造も、図２と同様である。
【００１８】
ここで、ロボット１００を各直列リンク系１０１〜１０４に分解する過程で、一つのリンクが複数の直列リンク系に属することになってもよい。上述のように、逆動力学解析では各リンクの質量および慣性テンソルを算出するが、一つのリンクが複数の直列リンク系に属する場合には、これら複数の直列リンク系のいずれか１個のみの解析において当該リンクの質量および慣性テンソルを考慮し、他の直列リンク系の解析においては当該リンクの質量および慣性テンソルを零とすればよい。
【００１９】
図１に示したように、本実施形態に係るリンクモデルでは、直列リンク系１０１〜１０４に加えて、仮想リンク系１０５が設定される。仮想リンク系１０５は、仮想的に設けられたリンク系にすぎず、実際には存在しない。この仮想リンク系１０５は、基底リンクが床面に固定され且つ末端リンクがロボットの基準座標系Ｒ０と一致するように、設定される。加えて、この仮想リンク系１０５は、上下、左右、前後の並進自由度とヨー（左右）、ピッチ（上下）、ロール（傾き）の回転自由度を有している。仮想リンク系１０５を構成する各リンクの質量は、零である。
【００２０】
図３は、仮想リンク系１０５の座標系設定方法を示す概念図である。図３（Ａ）に示したように、基準となる座標系Ｒ１の原点Ｏ０は、床面の適当な位置に固定的に設定される。この原点Ｏ０の位置と末端リンク座標系（すなわち直列リンク系１０１〜１０４の基準座標系Ｒ０）の原点Ｏ３の位置との関係は、上下方向並進量ｄ１（原点Ｏ０，Ｏ１間の距離）、前後方向並進量ｄ２（原点Ｏ１，Ｏ２間の距離）および左右方向並進量ｄ３（原点Ｏ２，Ｏ３間の距離）の、３つのパラメータで表される。また、この原点Ｏ３の位置に回転自由度（すなわちヨー、ピッチ、ロール）を与えるためには、原点Ｏ３と同じ原点位置の、３個の座標系を設定すればよい。ここでは、ヨー、ピッチ、ロールを得るための３個の座標系の原点をＯ４，Ｏ５，Ｏ６とする。座標系の取り方を図３（Ｂ）〜（Ｄ）に示す。回転自由度はＺ−Ｙ−Ｘオイラー角で表現され、図３（Ｂ）に示したように、原点Ｏ３に対応するＸ軸（Ｘ３）と原点Ｏ４に対応するＸ軸（Ｘ４）とのなす角θ４が、Ｚ軸回転角となる。また、図３（Ｃ）に示したように、原点Ｏ４に対応するＸ軸（Ｘ４）と原点Ｏ５に対応するＸ軸（Ｘ５）とのなす角θ５が、Ｙ軸回転角となる。さらに、図３（Ｄ）に示したように、原点Ｏ５に対応するＸ軸（Ｘ５）と原点Ｏ６に対応するＸ軸（Ｘ６）とのなす角θ６が、Ｘ軸回転角となる。
【００２１】
このような仮想リンク系１０５を、上述の直列リンク系１０１〜１０４と結合することにより、基底リンクが床面に固定された並進３自由度且つ回転３自由度の仮想リンク系１０５と、この仮想リンク系１０５の末端リンクから放射状に展開する直列リンク系１０１〜１０４とからなるリンク系とからなる、リンクモデルを得ることができる（図１参照）。すなわち、本実施形態では、床面とロボット１００とを一体構造として扱うことができ、これにより固定型ロボット（例えば腕型ロボット）と同様のリンクモデルを得ることができる。
【００２２】
次に、本実施形態に係るリンクモデルを用いてロボット１００の逆動力学解析を行う手順を説明する。
【００２３】
（１）最初に、ＤＨ法を用いて、ロボット１００が所望の動作をする際の各姿勢におけるリンクパラメータを決定する。例えば、ロボット１００の姿勢をＡからＢに変化させる動作を行わせたい場合、各姿勢Ａ，Ｂにおける各リンクパラメータが、それぞれ決定される。
【００２４】
（２）次に、これらのリンクパラメータを用いて、かかるロボット１００動作における、各リンクの位置、速度、加速度、角速度、角加速度をそれぞれ計算する。これらの計算は、公知の逆漸化ニュートン・オイラー法を用いて行うことができるので、詳細な説明を省略する。
【００２５】
（３）続いて、床反力を零として、各リンクに作用する力およびモーメントを、順次計算する。これらの計算では、ロボット１００に作用する力は、床反力以外、すべて外力として計算に含められる。これらの計算も、上記（２）の計算と同様、逆漸化ニュートン・オイラー法によって行うことができる。逆漸化ニュートン・オイラー法を用いる場合、各リンクに作用する力が末端のリンクから順に計算されてゆき、最終的には、仮想リンク系１０５の基底リンクＲ１（すなわち作業空間原点）からロボット１００に作用する力およびモーメントが、計算される。
【００２６】
ここで、基底リンクからロボット１００に作用する力およびモーメントは、ロボット１００の動作を実現するために必要な外力である。しかしながら、上述のように、仮想リンク系１０５は、実際には存在しないリンク系である。このため、かかる力およびモーメントが、実際に作業空間原点からロボット１００に作用することは、あり得ない。実際には、かかる力およびモーメントと釣り合うような力およびモーメントが、床反力として、ロボット１００に作用している。このため、かかる床反力を計算して、作業空間点の力およびモーメントと置き換える必要がある。以下、かかる床反力の計算方法を説明する。
【００２７】
上述のように、本実施形態では、ロボット１００と床とを一体構造として扱う。このように取り扱う場合、ロボット１００と床との接地面は、かかる一体構造を床面で切り出した断面であると考えることができる。このような一体構造に、上述の作業空間点の力およびモーメントのような集中荷重が作用したとき、ロボット１００と床との切り出し断面に応力が発生する。そして、かかる応力の分布が、上述の床反力となる。
【００２８】
かかる床反力を正確に計算したい場合には、有限要素法による解析を行えばよい。しかし、以下の処理（４）〜（８）を行うことによって、かかる床反力の近似値を簡易的に計算することもできる。
【００２９】
（４）まず、床面と接触しているリンクをすべて列挙し、これらのリンクの座標原点位置を作業空間の座標系で表す。各リンクが床面と接触しているか否かは、床のモデルを作成して、各リンクの位置と比較することにより、判定することができる。
【００３０】
本実施形態では、ロボット１００と床との接地面（すなわち、上述の断面）が円形であると仮定して、床反力を計算する。図４は、かかる接地面の一例を示す概念図である。図４の例では、２個の円形断面領域Ｓ１，Ｓ２が存在する。円形断面領域Ｓ１，Ｓ２の円中心は、実際の接地面の図心に一致させる。
【００３１】
（５）次に、基底リンクからロボット１００に作用する力およびモーメントに基づいて、断面Ｓ１，Ｓ２に作用する応力を解析的に計算し、この計算結果を円形断面領域Ｓ１，Ｓ２で積分する。これにより、上述の床反力が得られる。
【００３２】
図４の例では、円形断面領域Ｓ１の座標原点をＯ１とし、この座標をＹ−Ｚ座標系（Ｙ１，Ｚ１）で表すものとしている。ここで、Ｙ−Ｚ座標系は、断面二次モーメントの主軸方向をＹとしている。そして、断面二次モーメントをＩｘ，Ｉｙ，Ｉｚ、円形断面領域Ｓ１の面積をａ、実際の接地面の総面積をＡ、基底リンクに作用する荷重を作業空間点Ｏ０（図３参照）に集中的に作用する荷重に置き換えたときの力をＦ＝（Ｆｘ，Ｆｙ，Ｆｚ）、基底リンクに作用するモーメントをＭ＝（Ｍｘ，Ｍｙ，Ｍｚ）とすると、円形断面領域Ｓ１に作用する床反力Ｆ１は下式（１）で与えられる。
【００３３】
【数１】
2005262374.tif 000003
【００３４】
床反力の特性から、Ｆ１のＸ成分（Ｘ１）は常に正である。したがって、計算結果が負の場合には、該当する領域の面積ａを零として、計算をやり直す。
【００３５】
（６）この床反力の有無によって、ロボット１００の各リンクに作用する力が変化する。このため、この床反力がロボット１００に作用したときに基底リンクに与えられるモーメントを計算する必要がある。この計算は、上述と同様、逆漸化ニュートン・オイラー法を用いて行うことができる。
【００３６】
（７）さらに、基底リンクに作用するモーメントの計算結果を用いて、断面Ｓ１，Ｓ２に作用するモーメントを計算する。
【００３７】
図４の例では、円形断面領域Ｓ１に作用するモーメントＭ１は、下式（２）で与えられる。
【００３８】
【数２】
2005262374.tif 000004
【００３９】
（８）最後に、上記（５）、（７）で得られた床反力およびモーメントが外力として作用するものとして、ロボット１００の各リンクに作用する力およびモーメントを計算する。この計算にも、逆漸化ニュートン・オイラー法を用いて行うことができる。
【００４０】
以上説明したように、本実施形態によれば、仮想リンク系１０５を用いてリンクモデルを設定するので、このリンクモデルを、支持脚および遊脚の入れ替わりに応じて切り換える必要がない。すなわち、本実施形態によれば、単一のリンクモデルを用いて、脚式移動ロボットの動作シミュレーション（各リンクに作用する力およびモーメントのシミュレーション）を行うことができる。
【００４１】
第２実施形態
次に、本発明の第２実施形態について、説明する。
【００４２】
ロボット１００（図１参照）の動作パターンを作成して各関節に必要な駆動力を算出する場合、第１実施形態に示した方法でシミュレーションを行うことができる。しかしながら、通常、このようなシミュレーションでは、動作パターンを作成するときに各脚の支持脚／遊脚の区別が予め判明している。例えば、歩行の動作パターンを作成するときには、特定の時刻に脚を上げ、前に振り出し、さらに特定の時刻に脚が床面に接地するといった動作パターンを意図的に作り出している。
【００４３】
このように、ロボット本体１００の動作パターンを決定した段階で、各時刻において脚が床面に接しているか否かが定まる場合には、必ずしも床面のモデル（第１実施形態の処理（４）参照）を作成する必要はなく、接地／非接地を示すフラグがあるだけでもよい。例えば、接地している状態を‘０’、接地していない状態を‘１’として、シミュレーションを行うことができる。
【００４４】
また、直列リンク系１０１〜１０４（図１、図２参照）には腕、脚、胴体などの区別を設けていないので、接地状態を示すフラグをすべての直列リンク系に設けることにより、腕が床面に接地している状態（例えば転倒した状態）等のシミュレーションを行うことも可能である。
【００４５】
このように、接地／非接地を示すフラグを用いてシミュレーションを行うことにより、床面モデルを作成する必要がなくなるので、ロボット１００の動作シミュレーションをさらに簡単にすることができる。
【００４６】
なお、直列リンク系１０１〜１０４にフラグを設ける場合であっても、床面のモデルを作成し、各直列リンク系１０１〜１０４の末端の座標と床面モデルの座標との比較によって、フラグの値を切り換えることとしてもよい。
【００４７】
本発明により、床反力以外の外力や外部モーメントについても同様のシミュレーションを行うことができるのは、もちろんである。
【００４８】
第１、第２実施形態では、二本の脚と二本の腕とを有する脚式移動ロボットにおいて、放射状に展開する４本の直列リンク系を設けた場合を例に採って説明した。しかしながら、腕や脚は１本或いは３本の脚式移動ロボットにも、本発明を適用することができる。さらに、本発明は、これら４本の直列リンク系に加えて、例えば指の直列リンク系等のさらなる直列リンク系を設けた脚式移動ロボットにも適用することができる。この場合には、脚および腕の直列リンク系と同じ基準座標系を基準として各指の基準座標系を設定してもよいし、腕や脚の末端の座標系を各指の基準座標系に設定してもよい。
【図面の簡単な説明】
【００４９】
【図１】第１実施形態に係るリンクモデルを示す概念図である。
【図２】図１に示した右脚の直列リンク系をモデル化して座標系を設定した例を示す概念図である。
【図３】仮想リンク系の座標系設定方法を説明するための概念図である。
【図４】第１実施形態に係るシミュレーションを行う手順を説明するための概念図である。
【符号の説明】
【００５０】
１００  ロボット
１０１，１０２，１０３，１０４  直列リンク系
１０５  仮想リンク系
【図１】
2005262374.tif 000005
【図２】
2005262374.tif 000006
【図３】
2005262374.tif 000007
【図４】
2005262374.tif 000008