(57)【要約】      （修正有）【課題】非ホロノミック拘束軸すなわち独自の駆動源を有しない非駆動軸を実時間で制御することが可能な、産業用ロボットの制御方法を提供する。【解決手段】独自の駆動源を有しない非駆動軸７をこの非駆動軸７よりも設置面側に設けられた駆動源を有する２つ以上の駆動軸２、３により動作させるようにした産業用ロボットの制御方法において、非駆動軸７を目標とする角加速度にて動作させるために必要な非駆動軸７の駆動トルクを算出し、駆動軸２、３のそれぞれについて、駆動軸２、３を最大加速度にて駆動させた場合における非駆動軸７に作用する各駆動軸２、３の干渉トルクを算出し、この干渉トルクの大きさに比例させて各駆動軸２、３の重み付けを行い、前記駆動トルク、前記干渉トルク、および前記重み付けに基づいて、非駆動軸７を目標とする角加速度にて動作させるために必要な各駆動軸２、３の角加速度を算出するようにした。【選択図】図２
2005103697.tif 000002
【特許請求の範囲】
【請求項１】
独自の駆動源を有しない非駆動軸を該非駆動軸よりも設置面側に設けられた駆動源を有する２つ以上の駆動軸により動作させるようにした産業用ロボットの制御方法において、
前記非駆動軸を目標とする角加速度にて動作させるために必要な非駆動軸の駆動トルクを算出し、
前記２つ以上の駆動軸のそれぞれについて、各駆動軸を最大加速度にて駆動させた場合における前記非駆動軸に作用する各駆動軸の干渉トルクを算出し、
該各駆動軸の干渉トルクの大きさに比例させて前記各駆動軸の重み付けを行い、
前記非駆動軸の駆動トルク、前記各駆動軸の干渉トルク、および前記各駆動軸の重み付けに基づいて、前記非駆動軸を目標とする角加速度にて動作させるために必要な前記各駆動軸の角加速度を算出するようにしたことを特徴とする産業用ロボットの制御方法。
【請求項２】
前記駆動軸は前記非駆動軸の回転軸と平行な回転軸を有するものとしたことを特徴とする請求項１に記載の産業用ロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、産業用ロボットの動的制御方法、特に、非ホロノミック拘束軸すなわち独自の駆動源を有しない非駆動軸を２つ以上の駆動軸により動作させるようにした産業用ロボットの制御方法に関する。
【背景技術】
【０００２】
最近、ロボット制御の分野において、非ホロノミック拘束を受ける力学系の制御に対する関心が高まっている。ここで、ホロノミック／非ホロノミックとは、力学系の拘束条件を分類する用語である。具体的にいうと、位置と時間のみを変数とする代数方程式として定式化される力学的拘束をホロノミックと呼び、そうでない拘束を非ホロノミックという。非ホロノミック拘束のうち、ロボット工学において主に扱われるのは、拘束条件が速度や加速度を含む積分不可能な微分方程式で表される場合である。
【０００３】
このような力学系としては、主として以下の２つがある。すなわち、一つは、車輪型移動ロボットやロボットハンドによる物体操作などに代表される、運動可能な方向が機構によって幾何学的に限定されるものである。また、他の一つは、宇宙ロボットや宇宙構造物あるいは非駆動関節を有するロボットアームなどに代表される、慣性力による動的つりあいの条件や角運動量保存則が拘束条件となるものである。
【０００４】
これらの力学系に共通する点は、制御入力の数が座標成分の数よりも少ないことである。しかし、非ホロノミック系の多くは、限られた数の制御入力を用いることにより、すべての座標成分を制御できるという性質を持つ。その例として，典型的な非ホロノミック系である自動車の運転を考えてみる。自動車は真横には移動できず、タイヤの角度で決定される方向にしか進めない。これがすなわち非ホロノミックな拘束条件である。また、自動車はアクセルによる前進／後退速度とステアリングによる旋回角の２つの制御入力しか持たない。ところが、駐車場での切り返し等で日常経験するように、これら２つの制御入力をうまく使えば、平面内での位置（Ｘ座標，Ｙ座標）と車体の向きという、制御入力の数２つよりも多い３つの座標成分を自在に操ることができる。
【０００５】
このような非ホロノミック系の特性を活用してロボットの制御を行えば、従来と同一の機構を使いながらも、より複雑で困難な作業が達成できるようになる。あるいは、逆に、従来のロボットで可能だった作業は、より簡単な機構によって実現できる可能性もある。具体的には、従来のロボットアームは、一般に、各関節軸にモータを１個ずつ持ち、関節軸の数とモータの数とは等しい。それに対して、モータの数よりも多くの関節軸を持つアームが制御できるようになれば、言い換えれば従来と同じ関節数でもより少ない数のモータでアームが制御できるようになれば、アームの軽量化、省エネルギー化、コストダウン、耐故障性等の有効な手段となる。したがって、多関節型の産業用ロボットにおいて非ホロノミック拘束に関する技術を適用することは、大変意義があるものであるといえる。
【０００６】
前述した非ホロノミック系の特性を活用したものとしては、例えば、特許文献１がある。この特許文献１には、多関節型の産業用ロボットのようにジョイントで結合された複数の機械要素からなる所謂マルチボディシステムであって、このマルチボディシステムがホロノミック拘束と非ホロノミック拘束を含む場合において、その解析処理および制御方法が開示されている。そして、係る解析処理および制御方法を用いれば、マルチボディシステムにおいて、幾何学的拘束の安定性は常に保証され、かつ目標精度が確実に維持されるとしている。
【特許文献１】特開２００２−２８８２３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、先述した特許文献１に開示されている技術においては、複雑な運動方程式を解析処理する必要があるため、制御装置には高い演算能力が求められることになる。そのため、特許文献１に開示されている技術を実施するためには、演算能力の高いＣＰＵ（中央演算装置）の採用や複数のＣＰＵを用いた並列処理の採用などが必要になる。しかし、産業用ロボットシステムに一般に使用されている制御装置の演算能力はそれほど高くはなく、したがって前述した演算能力の高いＣＰＵや複数のＣＰＵを用いた並列処理を産業用ロボットシステムに採用することはコスト高を招くことになる。一方、産業用ロボットシステムに一般に使用されている制御装置の演算能力において特許文献１に開示されている技術を実施しようとすると、実時間（リアルタイム）での制御が困難となる。
【０００８】
本発明は、係る従来技術の問題点を解決するためになされたものであり、演算能力の高いＣＰＵや複数のＣＰＵを用いた並列処理を採用することなく、産業用ロボットシステムに一般に使用されている制御装置の演算能力において、非ホロノミック拘束軸すなわち独自の駆動源を有しない非駆動軸を実時間で制御することが可能な、産業用ロボットの制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
前述した目的を達成するために、請求項１に係る発明では、図１のフローチャートに示すように、独自の駆動源を有しない非駆動軸をこの非駆動軸よりも設置面側に設けられた駆動源を有する２つ以上の駆動軸により動作させるようにした産業用ロボットの制御方法において、非駆動軸を目標とする角加速度にて動作させるために必要な非駆動軸の駆動トルクを算出し、前記２つ以上の駆動軸のそれぞれについて、各駆動軸を最大加速度にて駆動させた場合における非駆動軸に作用する各駆動軸の干渉トルクを算出し、この各駆動軸の干渉トルクの大きさに比例させて各駆動軸の重み付けを行い、前記非駆動軸の駆動トルク、前記各駆動軸の干渉トルク、および前記各駆動軸の重み付けに基づいて、非駆動軸を目標とする角加速度にて動作させるために必要な各駆動軸の角加速度を算出するようにしたことを特徴とする産業用ロボットの制御方法を提供した。
【００１０】
請求項１に係る発明によれば、非駆動軸に作用する各駆動軸の干渉トルクの大きさに比例させて各駆動軸の重み付けを行い、この重み付けに基づいて非駆動軸を目標とする角加速度にて動作させるために必要な各駆動軸の角加速度を割り振るようにしたので、非駆動軸を目標とする角加速度にて動作させるために必要な各駆動軸の動作は最小限なものとなる。このように各駆動軸に対して重み付けを行い、これを利用するようにしたことにより、従来技術のように複雑な運動方程式を解析処理する必要はなくなった。
【００１１】
また、請求項２に係る発明では、請求項１に係る発明において、非駆動軸を駆動する駆動軸は非駆動軸の回転軸と平行な回転軸を有するものとした。これにより、駆動軸において少ない駆動力により非駆動軸が動作することになる。
【発明の効果】
【００１２】
本発明によれば、従来技術のように複雑な運動方程式を解析処理する必要はなくなったので、演算能力の高いＣＰＵや複数のＣＰＵを用いた並列処理を採用することなく、産業用ロボットシステムに一般に使用されている制御装置の演算能力において、非ホロノミック拘束軸すなわち独自の駆動源を有しない非駆動軸を実時間で制御することが可能となった。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の一実施形態について、図面を参照して説明する。図２は、本発明に係る産業用ロボットの制御方法が適用される垂直多関節ロボットのスケルトン図である。図２に示した垂直多関節ロボットにおいて、１〜３の各駆動軸は主軸の３軸であり、４〜６の各駆動軸は手首軸の３軸である。これらの駆動軸１〜６のそれぞれには、個々の駆動軸を駆動するための図示しないモータが連結されている。これらの駆動軸１〜６のそれぞれは、任意の一つの軸回りにのみ自由度を有する構造となっている。例えば、第１主軸１は設置面０に対して垂直な軸回りにのみ旋回可能な自由度を有し、第２主軸２および第３主軸３は設置面０に対して水平な軸回りにのみ揺動可能な自由度を有する構造となっている。
【００１４】
一方、７は冗長な軸として追加された非ホロノミック拘束軸すなわち独自の駆動源を有しない非駆動軸である。なお、表記を簡素化するために、以下の記述においては、この独自の駆動源を有しない非駆動軸のことを「非ホロノミック拘束軸」と称することにする。非ホロノミック拘束軸７は、前述した駆動軸１〜６のそれぞれと同様に任意の一つの軸回りにのみ自由度を有する構造となっているが、駆動軸１〜６のようにこれを駆動するためのモータは連結されていない。なお、本実施形態においては、非ホロノミック拘束軸７は、第２主軸２および第３主軸３のそれぞれの回転軸と平行な軸回りに揺動可能にされている。
【００１５】
図３は、本発明に係る産業用ロボットの制御方法を、前述した図２に示した非ホロノミック拘束軸７を有する垂直多関節ロボットに適用した場合における、指令値生成の手順を示したフローチャートである。なお、前述したように、本発明においては、非ホロノミック拘束軸７よりも設置面０側に設けた少なくとも任意の２軸により、駆動源（モータ）を有しない非ホロノミック拘束軸７を駆動するようにしている。そこで、図３に示したフローチャートにおいては、非ホロノミック拘束軸７の回転軸とは平行な回転軸を有する第２主軸２および第３主軸３の２軸により、駆動源（モータ）を有しない非ホロノミック拘束軸７を駆動するものとして説明する。
【００１６】
なお、図３に示したフローチャートにおけるステップ（Ｓ−１−＊）｛「＊」は整数｝において行われる処理は、前述した図１に示したフローチャートにおけるステップ（Ｓ−１）において行われる処理に対応する。同様に、図３に示したフローチャートにおけるステップ（Ｓ−２−＊）、（Ｓ−３−＊）、（Ｓ−４−＊）のそれぞれにおいて行われる処理は、前述した図１に示したフローチャートにおけるステップ（Ｓ−２）、（Ｓ−３）、（Ｓ−４）においてそれぞれ行われる処理に対応する。
【００１７】
まず、ステップ（Ｓ−１−１）では、制御の対象軸である非ホロノミック拘束軸７を目標加速度で駆動するために必要なトルクＴ７ａを算出する。このトルクＴ７ａは、式（１）に示すように、制御対象である非ホロノミック拘束軸７よりも先端側の駆動軸の姿勢で決まる慣性と、制御対象である非ホロノミック拘束軸７の目標の角加速度とを乗じることにより求めることができる。
【００１８】
【数１】
2005103697.tif 000003
【００１９】
この式（１）において、Ｊ７（θ４，５，６）は、制御対象である非ホロノミック拘束軸７よりも先端側の駆動軸すなわち手首軸４、５、６の姿勢で決まる慣性である。また、α７は制御対象の非ホロノミック拘束軸７の角加速度である。
【００２０】
次に、ステップ（Ｓ−１−２）では、指令を生成する時刻において、各軸の姿勢、速度に基づく、制御対象である非ホロノミック拘束軸７に働く干渉トルクＴ７ｂを算出する。この干渉トルクＴ７ｂは、式（２）に示すように、全軸の姿勢で決まるトルクのアンバランス項と、全軸の姿勢および非ホロノミック拘束軸７とその駆動軸の角速度で決まるトルクの速度項とを加えることにより求めることができる。
【００２１】
【数２】
2005103697.tif 000004
【００２２】
この式（２）において、右辺第１項は、全軸１〜７の姿勢で決まるトルクのアンバランス項である。また、右辺第２項は、全軸１〜７の姿勢、および制御対象である非ホロノミック拘束軸７とその駆動軸である第２主軸２および第３主軸３の角速度とで決まるトルクの速度項である。
【００２３】
次に、ステップ（Ｓ−１−３）では、式（３）に示すように、前述したステップ（Ｓ−１−１）にて算出した制御対象である非ホロノミック拘束軸７を目標加速度で駆動するために必要なトルクＴ７ａと、前述したステップ（Ｓ−１−２）にて算出した非ホロノミック拘束軸７に働く干渉トルクＴ７ｂとの差としてのトルクＴ７ｃを算出する。
【００２４】
【数３】
2005103697.tif 000005
【００２５】
この式（３）にて算出されたトルクＴ７ｃは、制御対象である非ホロノミック拘束軸７の駆動軸としての第２主軸２および第３主軸３を動作させることにより発生させたい非ホロノミック拘束軸７の駆動トルクである。
【００２６】
前述したように、本実施形態においては、駆動軸としての第２主軸２および第３主軸３の２軸により、駆動源（モータ）を有しない非駆動軸としての非ホロノミック拘束軸７を駆動するものとしている。そこで、ステップ（Ｓ−２−１）では、これら駆動軸としての第２主軸２および第３主軸３をそれぞれの軸の最大加速度で駆動させると仮定した場合における、非ホロノミック拘束軸７に作用する各駆動軸の干渉トルクの加速度項Ｔ２ａおよびＴ３ａを、式（４）により算出する。
【００２７】
【数４】
2005103697.tif 000006
【００２８】
この式（４）において、Ｔ２ａは、制御対象である非ホロノミック拘束軸７を駆動する第２主軸２を最大加速度（α２ｍａｘ）で動かすと仮定した場合における、非ホロノミック拘束軸７に作用する干渉トルクの加速度項である。同様に、Ｔ３ａは、制御対象である非ホロノミック拘束軸７を駆動する第３主軸３を最大加速度（α３ｍａｘ）で動かすと仮定した場合における、非ホロノミック拘束軸７に作用する干渉トルクの加速度項である。なお、以下の説明においては、その都合上、これらの干渉トルクの加速度項においてはＴ２ａの方がＴ３ａより大きいものと仮定して説明するが、逆の場合には以下の説明においてＴ２ａとＴ３ａとを置き換えればよい。
【００２９】
次に、ステップ (Ｓ−３−１)では、式（５）に示すように、前述したステップ（Ｓ−２−１）にて算出した干渉トルクの加速度項において、その小さい方の値Ｔ３ａを大きい方の値Ｔ２ａで割った値ξを算出し、これを重み係数として規定する。
【００３０】
【数５】
2005103697.tif 000007
【００３１】
次に、ステップ（Ｓ−３−２）では、式（６）に示すように、干渉トルクの加速度項において小さい方の値Ｔ３ａに前述したステップ (Ｓ−３−１)にて算出した重み係数ξを掛けたものＴξを算出する。このＴξは、影響の小さい軸すなわち干渉トルクの加速度項が小さい第２主軸２の動作を規制するために求めておくものである。
【００３２】
【数６】
2005103697.tif 000008
【００３３】
次に、ステップ（Ｓ−４−１）では、式（７）に示すように、干渉トルクの加速度項において大きい方の値Ｔ２ａと前述したステップ (Ｓ−３−２)にて算出したＴξとの和を算出し、この和でもって前述したステップ（Ｓ−１−３）にて算出した他の駆動軸を動作させることにより発生させたい干渉トルクＴ７ｃを割ることにより、係数ηを算出する。この係数ηは、制御対象である非ホロノミック拘束軸７の目標とする角加速度α７を得るために必要なトルクの比である。
【００３４】
【数７】
2005103697.tif 000009
【００３５】
次に、ステップ（Ｓ−４−２）では、式（８）により、制御対象である非ホロノミック拘束軸７をその目標の角加速度α７で動作させるために必要な、駆動軸としての第２主軸２の角加速度α２を算出する。
【００３６】
【数８】
2005103697.tif 000010
【００３７】
この式（８）において、Ｔ２ａは、前述したステップ (Ｓ−２−１)にて式（４）より算出した、第２主軸２を最大加速度で駆動させると仮定した場合における、非ホロノミック拘束軸７に作用する干渉トルクの加速度項である。また、ηは、前述したステップ (Ｓ−４−１)にて式（７）より算出した、制御対象である非ホロノミック拘束軸７の目標とする角加速度α７を得るために必要なトルクの比である。さらにまた、Ｊ２（θ３〜７）は、第２主軸２よりも先端側の軸、すなわち第３主軸３、手首軸４、５、６、および非ホロノミック拘束軸７の姿勢で決まる慣性である。
【００３８】
同様に、ステップ（Ｓ−４−３）では、式（９）により、制御対象である非ホロノミック拘束軸７をその目標の角加速度α７で動作させるために必要な、駆動軸としての第３主軸３の角加速度α３を算出する。
【００３９】
【数９】
2005103697.tif 000011
【００４０】
この式（９）において、Ｔ３ａは、前述したステップ (Ｓ−２−１)にて式（４）より算出した、第３主軸３を最大加速度で駆動させると仮定した場合における、非ホロノミック拘束軸７に作用する干渉トルクの加速度項である。また、ηは、前述したステップ (Ｓ−４−１)にて式（７）より算出した、制御対象である非ホロノミック拘束軸７の目標とする角加速度α７を得るために必要なトルクの比である。また、ξは、前述したステップ (Ｓ−３−１)にて式（５）より算出した重み係数である。さらにまた、Ｊ３（θ４〜７）は、第３主軸３よりも先端側の軸、すなわち手首軸４、５、６、および非ホロノミック拘束軸７の姿勢で決まる慣性である。
【００４１】
以上のようにして、制御対象である非ホロノミック拘束軸７をその目標の角加速度α７で動作させるために必要な、駆動軸としての第２主軸２の角加速度α２および第３主軸３の角加速度α３が算出される。したがって、第２主軸２を角加速度α２にて駆動するとともに第３主軸３を角加速度α３にて駆動するようにすれば、制御対象である駆動源を有しない非ホロノミック拘束軸７はその目標とする角加速度α７にて動作することになる。そして、この図３に示した一連の処理をロボット制御装置の計算周期毎に繰り返すことにより、逐次、角加速度に基づく指令値を生成することができる。
【００４２】
以上、本発明の一実施形態について説明した。本実施形態によれば、非ホロノミック拘束軸７に作用する駆動軸としての第２主軸２および第３主軸３それぞれの干渉トルクの大きさに比例させて第２主軸２および第３主軸の重み付けを行い、この重み付けに基づいて非ホロノミック拘束軸７を目標とする角加速度にて動作させるために必要な第２主軸２および第３主軸３の角加速度を割り振るようにしたので、非ホロノミック拘束軸７を目標とする角加速度にて動作させるために必要な第２主軸２および第３主軸３の動作は最小限なものとなる。このように駆動軸としての第２主軸２および第３主軸３に対して重み付けを行い、これを利用するようにしたことにより、従来技術のように複雑な運動方程式を解析処理する必要はなくなる。そのため、演算能力の高いＣＰＵや複数のＣＰＵを用いた並列処理を採用することなく、産業用ロボットシステムに一般に使用されている制御装置の演算能力において、非ホロノミック拘束軸すなわち独自の駆動源を有しない非駆動軸を実時間（リアルタイム）で制御することが可能となる。
【００４３】
なお、前述した実施形態においては、非ホロノミック拘束軸７の回転軸とは平行な回転軸を有する第２主軸２および第３主軸３の２軸により、駆動源（モータ）を有しない非ホロノミック拘束軸７を駆動するものとしたが、本発明はこの形態に限定されるものではない。前述したように、本発明では非ホロノミック拘束軸７よりも設置面０側に配置した２つ以上の駆動軸により非ホロノミック拘束軸７を駆動するようにすればよい。したがって、前述した実施形態のように非ホロノミック拘束軸７よりも設置面０側に３つの駆動軸を有する産業用ロボットにおいては、非ホロノミック拘束軸７よりも設置面０側に配置された第１主軸１、第２主軸２、第３主軸３の３つの駆動軸の中から、２つあるいは３つの駆動軸を選択するようにすればよい。ただし、非ホロノミック拘束軸７を駆動する軸としては、非ホロノミック拘束軸７の回転軸と平行する回転軸を有する駆動軸を選択すると最も効率がよく（駆動軸の少ない駆動力により非ホロノミック拘束軸が動作する）、一方、非ホロノミック拘束軸７の回転軸と直交する回転軸を有する駆動軸を選択すると最も効率が悪くなる。したがって、前述した実施形態の場合は、非ホロノミック拘束軸７の回転軸と平行する回転軸を有する第２主軸２および第３主軸３の２つの駆動軸を選択するパターンが最も効率がよいことになる。
【００４４】
なお、３つの駆動軸により非ホロノミック拘束軸７を駆動する場合は、前述した一連の処理において、以下の処理を追加すればよい。すなわち、前述したステップ（Ｓ−２−１）において、式（４）で規定する非ホロノミック拘束軸７に作用する干渉トルクの加速度項を２つから３つに増やせばよい。また、前述したステップ (Ｓ−３−１)において、３つ目の駆動軸の重み係数ξ′を追加すればよい。非ホロノミック拘束軸７を駆動する駆動軸が４つ以上ある場合についても同様である。
【図面の簡単な説明】
【００４５】
【図１】本発明に係る産業用ロボットの制御方法について示したフローチャートである。
【図２】本発明に係る産業用ロボットの制御方法が適用される垂直多関節ロボットのスケルトン図である。
【図３】本発明に係る産業用ロボットの制御方法を、前述した図２に示した非ホロノミック拘束軸７を有する垂直多関節ロボットに適用した場合における、指令値生成の手順を示したフローチャートである。
【符号の説明】
【００４６】
１  第１主軸（駆動軸）
２  第２主軸（駆動軸）
３  第３主軸（駆動軸）
７  非ホロノミック拘束軸（独自の駆動源を有しない非駆動軸）
【図１】
2005103697.tif 000012
【図２】
2005103697.tif 000013
【図３】
2005103697.tif 000014