説明

ロボットの姿勢判定方法

【課題】簡易な演算により、ロボットの姿勢を判定するロボットの姿勢判定方法を提供する。
【解決手段】ワークに想定される誤差Δpにともなうエンドエフェクタの位置の変化を位置変化量Δr、誤差Δpにともなうマニピュレータにおける各軸の変化量を姿勢変化量Δq、誤差Δpが存在しないときのマニピュレータの各軸の値をqiとし、このqiにおけるヤコビアンをJv(qi)とすると、姿勢変化量Δqを、Δqi=Jv(qi)-1Δrにより算出する。そして、誤差Δpが最大となるときのマニピュレータの各軸の変化量を変化量Δqimaxとし、関節の回転角度限界をqmaxとすると、qi+Δqimax≦qmaxを満たすマニピュレータの各軸の値qiを誤差Δpを有するワークに対し当該作業点iにおける作業が可能な姿勢であると判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットの姿勢判定方法に関する。
【背景技術】
【0002】
ライン作業などで部品の組み立てや検査などに用いられるロボットは、ラインを流れる作業対象となるワークとの位置関係を高い精度で適切に設定する必要がある。この位置関係が不適切であると、作業点すなわちロボットがワークに作用する点がロボットの動作不可能な領域になったり、動作中のロボットと周囲の機器との干渉を招く。そこで、ロボットの設置位置とワークの載置位置との関係は、種々の計算を用いたシミュレーションにより、最適な値を導き出している。
【0003】
特許文献1に開示されているシミュレーション装置は、ロボットの複数の関節軸のそれぞれについて、関節軸ごとに動作範囲に相関する関数を設定している。そして、設定した関数に基づいて、各関節軸の動作余裕値、すなわち各関節軸に許容される動作範囲の余裕値を算出している。これにより、各関節軸のぎりぎりの動作を回避し、ロボットの作業点が動作不可能な領域にならないように考慮し、種々のワークに対応可能な位置を求めている。
【0004】
しかしながら、関数によって導き出される余裕度は、各関節軸の作動角度ごと、つまり姿勢ごとに変化する。これに対し、特許文献1の場合、各関節軸の作動の組み合わせによって決定されるロボットの最終的な姿勢は考慮されていない。すなわち、特許文献1の場合、各関節軸ごとの余裕度の設定にとどまり、ロボットの作業空間座標での最終的な姿勢は考慮されていない。また、特許文献1の場合、予め設定された作業範囲についてのみ、ロボットとワークとの最適な位置関係が算出される。そのため、特許文献1の場合、ロボットを用いて希望する作業が限定されている場合にのみ適用可能である。
【0005】
ところで、特許文献1のように、シミュレーションを用いてロボットとワークとの適切な位置関係を導き出したとしても、ロボットシステムが構築される工場などでは、導き出した位置関係とロボットの設置位置およびラインの設置位置との間に誤差が生じる。また、適切な位置関係を導き出した場合でも、ラインやテーブルに載置されるワークの搭載位置、ワークの大きさなどに僅かな変化が生じると、ロボットとワークとの位置関係にはシミュレーションでは考慮されない誤差が生じる。さらに、ワークの仕様を変更した場合でも、ロボットとワークとの位置関係には相違が生じる。このようにロボットとワークとの位置関係に僅かな誤差や相違が生じると、ロボットの設置時におけるシミュレーションの精度を如何に高めても、作業点がロボットの動作不可能な領域に侵入し、ロボットの動作不良を招くという問題がある。
【0006】
さらに、シミュレーションを用いてロボットの設置位置とワークの載置位置との関係を導き出す場合、通常、ロボットの各軸の変化量を入力することにより、ロボットのエンドエフェクタの変化量を算出する。そのため、ワーク側で誤差が想定される場合、各軸の変化量を逐次入力し、その結果として得られるエンドエフェクタの変化量がその想定される誤差に適合するか否かを検証する必要がある。その結果、想定される誤差に適合させるためには各軸の変化量を広範囲に入力する必要が生じることから、極めて多くの演算が必要となる。したがって、ロボットとワークとの間に誤差が生じることを想定する場合、ロボットとワークとの最適な位置関係を導き出すためには多くの演算と長期間を必要とするという問題がある。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特許第3797986号明細書
【発明の概要】
【発明が解決しようとする課題】
【0008】
そこで、本発明の目的は、簡易な演算により、ロボットの姿勢を判定するロボットの姿勢判定方法を提供することにある。
【課題を解決するための手段】
【0009】
請求項1または2記載の発明では、式(1)から姿勢変化量Δqiを算出する。
Δqi=Jv(qi)-1Δr (1)
ここで、位置変化量Δrは、ワークに誤差Δpが生じたとき、エンドエフェクタに生じる位置の変化である。また、姿勢変化量Δqiは、誤差Δpにともなうマニピュレータの各軸の変化量である。さらに、qiは、誤差Δpが存在しないときのマニピュレータの各軸の値である。そして、Jv(qi)は、このqiにおけるヤコビアンをである。ここで、添字iは、作業点の番号を示す。エンドエフェクタがワークに作用する作業点は、通常、複数設定される。この作業点を任意にi=1、2、3・・・として番号を付している。したがって、i≧1となる。
上記の式(1)から算出した姿勢変化量Δqiは、式(2)におけるロボットの姿勢判定に用いられる。
qi+Δqimax≦qmax (2)
ここで、最大変化量Δqimaxは、マニピュレータの各軸の変化量が最大となる値として式(1)から求められる。また、qmaxは、関節の回転角度限界である。式(1)で算出した姿勢変化量Δqiを用いて、式(2)にあてはめることにより、ワークとの間に誤差Δpが生じたときのロボットの姿勢が判定される。
【0010】
上記のような式(1)は、線形近似されている。そのため、コンピュータなどの演算装置にとって処理が容易な線形式を利用してロボットが作業可能な範囲であるか否かが判定される。ところで、ロボットの姿勢変化量が小さいときは、ロボットの姿勢の大きな変化や、作業時間の大幅な変化を招くものではない。すなわち、ロボットの各軸について、+側で+側の範囲内または−側で−側の範囲内に僅かな移動が生じる場合、ロボットの姿勢の変化は僅かであり、作業時間の変化も小さい。そのため、ロボットとワークとの位置関係を検証するためには、誤差Δpが生じていないときを基準とすればよく、線形近似された式(1)により簡単な演算で至適解の候補が算出される。
【0011】
一方、従来は、ロバスト解探索と称される解の探索手法により、最悪の条件設定の下で最良の解(ロボットの場合、最短の動作時間)を求めている。これをロボットに適用する場合、ワークの設置には自由度nの誤差が存在する。この自由度の数nは、最大で6(x,y,zの各軸方向の並進のずれ3と、各軸の回転のずれ3とで合計が6となる。)である。そのため、最良の解を探索するためには、作業点の数をiとすると、全自由度の方向へ対応する必要があることから、26×i×M×2通りの解の探索が必要となる。ここで、Mは、ロボットの軸数である。解の探索は、このロボットの各軸を中心としたプラス方向およびマイナス方向についても判定が必要なため、さらに2倍の演算が必要となる。仮に6軸型ロボットで30点の作業点における作業を実行する場合、従来の解の探索手法では、26×30×6×2=23040通りの解の探索が必要となり、解の探索に長時間を必要とする。
【0012】
本願の発明では、式(1)を用いることにより、ワークの各作業点において一通りのヤコビアンで演算できる。そのため、本願の発明により、上述のように6軸型のロボットで30点の作業点における作業を実行する場合、ロボットの6つの関節軸においてプラス方向およびマイナス方向のそれぞれについて解を探索すれば足り、その演算は6×2=12通りとなる。このように、本願の発明では、作業点が多い場合でも、演算が容易となり、解の探索に必要な演算数は低減される。したがって、ロボットとワークとの位置関係に誤差Δpが生じる場合でも、ロボットが動作可能な姿勢を簡単な処理で判定することができる。
【図面の簡単な説明】
【0013】
【図1】一実施形態によるロボットシミュレータの構成を示すブロック図
【図2】一実施形態によるロボットシミュレータのシミュレーションの対象となるロボットシステムの一例を示す模式図
【図3】一実施形態によるロボットシミュレータのシミュレーションの対象となるワークおよび作業点を示す模式図
【図4】一実施形態によるロボットシミュレータのシミュレーションの対象となるワークおよび作業点の誤差を示す模式図
【図5】一実施形態によるロボットシミュレータのシミュレーションの流れを示す概略図
【図6】一実施形態によるロボットシミュレータで用いる式(1)を行列式で示す説明図
【図7】一実施形態によるロボットシミュレータで用いる式(2)を行列式で示す説明図
【発明を実施するための形態】
【0014】
以下、本発明の一実施形態によるロボットシミュレータを図面に基づいて説明する。
(ロボットシステム)
まず、ロボットシミュレータによるシミレーションの対象となるロボットシステムについて図2を用いて説明する。ロボットシステム10は、ロボット11およびワーク搭載部12を備えている。本実施形態のロボット11は、6軸型である。なお、本実施形態で説明する6軸型のロボット11は一例であり、ロボット11の軸の数すなわち関節の数は任意に設定することができる。また、本実施形態では、図2に示すように、設備の床面13をワーク搭載部12とし、この床面13の座標軸をそれぞれX軸およびY軸と定義し、この床面13に垂直な座標軸をZ軸と定義する。さらに、X軸を中心軸とした回転座標をRx、Y軸を中心とした回転座標をRy、Z軸を中心とした回転座標をRzと定義する。
【0015】
ロボットシステム10は、上述の通りロボット11およびワーク搭載部12を備えている。また、ロボットシステム10は、図示しないコントローラを備えている。ロボット11は、ロボットコントローラからの指示により駆動される。ロボット11は、アームおよび関節から構成されるマニピュレータ14、ならびにエンドエフェクタ15を有している。図2に示す本実施形態のロボット11は、第一関節21、第二関節22、第三関節23、第四関節24、第五関節25および第六関節26を有している。また、ロボット11は、第一アーム31、第二アーム32、第三アーム33、第四アーム34および第五アーム35を有している。
【0016】
ロボット11は、設備の床面13に設置されている。床面13には、床面13から垂直上方すなわちZ軸と平行に立ち上がる土台部41が固定されている。第一関節21は、この土台部41と第一アーム31とを接続している。第一アーム31は、第一関節21において床面13に垂直な軸を中心に回転可能である。第二関節22は、第一アーム31と第二アーム32とを接続している。第一アーム31と第二アーム32とは、第二関節22を中心に回転する。これにより、第二アーム32は、Z軸に対する傾斜角度が変化する。第三関節23は、第二アーム32と第三アーム33とを接続している。第二アーム32と第三アーム33とは、第三関節23を中心に回転可能である。すなわち、第二アーム32と第三アーム33とは、第三関節23を支点として開閉する。
【0017】
第四関節24は、第三アーム33と第四アーム34とを接続している。第三アーム33と第四アーム34とは、第四関節24を中心に相対的に回転する。第三アーム33と第四アーム34とは、同一の軸上に位置している。第四アーム34は、第四関節24においてこの軸を中心に第三アーム33に対し回転する。第五関節25は、第四アーム34と第五アーム35とを接続している。第五アーム35は、第五関節25を中心に回転する。すなわち、第五アーム35は、第四アーム34の軸に垂直な第五関節25の軸を中心に回転する。第六関節26は、第五アーム35とエンドエフェクタ15とを接続している。第五アーム35とエンドエフェクタ15とは、同一の軸上に位置している。エンドエフェクタ15は、第六関節26においてこの軸を中心に第五アーム35に対し回転する。すなわち、エンドエフェクタ15は、第五関節25の軸と垂直な軸を中心に回転する。
【0018】
エンドエフェクタ15は、作業の対象となるワーク42に作用する。具体的には、ロボット11を用いてワーク42を加工する場合、エンドエフェクタ15はワーク42を把持するハンドやワーク42に加工を加えるツールなどであり、ロボット11を用いてワーク42を検査する場合、エンドエフェクタ15はワーク42を撮影するカメラなどである。このように、エンドエフェクタ15は、作業の対象となるワーク42に対し、接触または非接触により作用する。
【0019】
ワーク搭載部12は、ロボット11による作業の対象となるワーク42が搭載される。本実施形態の場合、ワーク42は、床面13に搭載される。そのため、ワーク搭載部12は設備の床であり、この床の上端面すなわち床面13はワーク42が搭載される搭載面に一致する。なお、ワーク搭載部12は、例えば床面13から上方へ立ち上がったテーブル上やコンベヤなどの搬送手段上に形成してもよい。この場合、ワーク42が搭載されるテーブルやコンベヤがワーク搭載部12を構成する。
【0020】
(ロボットシミュレータ)
次に、図1に基づいてロボットシミュレータ50について説明する。ロボットシミュレータ50は、例えばパーソナルコンピュータなどの演算装置において、コンピュータソフトウェアであるシミレーションプログラムを実行することにより、ソフトウェア的に実現される。ロボットシミュレータ50を実現するパーソナルコンピュータは、入力部51、演算部52および出力部53を備えている。入力部51は、例えばマウス54およびキーボード55などの一般的な入力機器を有している。演算部52は、例えばCPU56、ROM57およびRAM58を有するコンピュータで構成されており、上述のシミュレーションプログラムを実行することにより、ロボットシミュレータ50の全体を制御する。出力部53は、例えば液晶ディスプレイなどの表示部61やプリンタ62などを備えており、入力部51から入力されたデータや演算部52でシミュレーションプログラムにしたがって算出されたシミュレーションデータなどを出力する。
【0021】
以下、具体的にロボットシミュレータ50の構成について説明する。ロボットシミュレータ50は、パーソナルコンピュータなどの演算装置においてシミュレーションプログラムを実行することにより、演算部52において、作業順序設定部65、最短位置抽出部66および設置位置判定部67をソフトウェアによって仮想的に実現する。また、ロボットシミュレータ50の入力部51は、条件入力部68およびワーク誤差入力部69を構成する。
【0022】
条件入力部68は、ロボット11の初期位置、作業順序および作業点の座標などが入力される。ロボット11の初期位置とは、ロボットシミュレータ50によるシミュレーションの実行に際して、ワーク搭載部12に搭載されたワーク42に対するロボット11の初期位置である。すなわち、ロボット11の初期位置は、シミュレーションの開始時における、ロボット11とワーク42との初期的な位置関係である。ロボット11の初期位置となるロボット11の原点ΣR0は、ワーク42の中心を原点ΣWとしたとき、ΣW上の座標WR0とするワークの座標系として表わされる。
このロボット11の初期位置は、入力部51から任意の座標として入力することができる。作業順序とは、ロボットシステム10を用いて実行する複数の工程を時系列で設定したものである。ロボット11は、各作業点への移動と移動した作業点における作業とを繰り返す。作業順序は、この作業点への移動の順序および作業点における作業を設定したものである。作業点の座標とは、ロボット11のエンドエフェクタ15がワーク42に対して作用を及ぼす位置の座標である。例えばロボットシステム10を用いてワーク42の加工を行う場合、作業点とはその加工を行うためにエンドエフェクタ15とワーク42とが接する点である。また、例えばロボットシステム10を用いてワーク42の検査を行う場合、作業点とはその検査を行うためにエンドエフェクタ15が移動する位置である。作業点の座標とは、図3に示すようにワーク42の中心を原点ΣW0としたとき、これらの作業点71、72、73における各座標軸の座標W(71)W(72)W(73)である。
【0023】
作業順序設定部65は、作業所要時間が最小となる最短作業順序を求める。作業順序設定部65は、条件入力部68から入力されたロボット11とワーク42との位置関係に基づいて、条件入力部68から入力された作業順序に含まれる複数の工程の作業所要時間を算出する。作業所要時間は、ロボット11とワーク42との位置関係および作業点ごとの工程の順序が変更されると、これに基づいて変化する場合がある。そこで、作業順序設定部65は、ロボット11とワーク42との位置関係を設定した状態で必要に応じて工程の順序を入れ替えながら作業所要時間が最短となる最短作業順序を求める。
【0024】
最短位置抽出部66は、所要時間が最短となるロボット11とワーク42との位置関係を抽出する。最短位置抽出部66は、条件入力部68から入力されたワーク42に対するロボット11の初期位置における原点ΣR0を含む床面13すなわちX−Y平面上に任意の設置範囲Aを設定する。つまり、最短位置抽出部66は、まず床面13の任意の位置に、ロボット11の設置位置の候補となる範囲の設置範囲Aを設定する。この設置範囲Aには、ロボット11の初期位置における原点ΣR0が含まれている。そして、最短位置抽出部66は、この設定した任意の設置範囲A内において、ロボット11とワーク42との位置関係について至適解の候補となる複数の位置関係を抽出する。すなわち、最短位置抽出部66は、設置範囲A内において、ロボット11とワーク42とが好適な位置関係になると予想される複数の位置を抽出し、これを至適解の候補とする。ここで、最適解とせずに至適解の候補としているのは、ロボット11とワーク42との最適な位置関係が存在することが予想される場合でも、その最適解が設置範囲A内に含まれるとは限らない。ロボット11およびワーク42は、無限の空間に設置されるのではなく、工場など有限の設備に設置される。そのため、算出した解は、最適解とは限らない。したがって、本実施形態の場合、最短位置抽出部66は、設置範囲A内において条件を満たす位置関係を至適解とし、この至適解となることが予想される複数の位置関係を至適解の候補として抽出している。
【0025】
最短位置抽出部66は、抽出した至適解の候補となるロボット11とワーク42との位置関係ごとに最短作業順序でロボット11の複数の工程を仮想的に実行する。すなわち、最短位置抽出部66は、抽出した至適解の候補となるロボット11とワーク42との複数の位置関係について、それぞれ作業順序設定部65で求めた最短作業順序にしたがって複数の工程を仮想的に実行する。この場合、最短位置抽出部66は、複数の工程をシミュレーションプログラムにしたがって仮想的に実行する。そして、最短位置抽出部66は、至適解の候補のうち最も所要時間の短いロボット11とワーク42との位置関係を抽出する。すなわち、最短位置抽出部66は、至適解の候補となる複数の位置関係において、仮想的に複数の工程を実行する。そして、複数の位置関係の中から複数の工程の所要時間が最短となるロボット11とワーク42との位置関係を抽出する。これにより、ワーク42に対する位置関係が設置範囲A内において最も好適となるロボット11の設置位置が抽出される。この場合、好適となるロボット11の設置位置は、必ずしも一つに限らず、検討候補として複数抽出してもよい。
【0026】
ワーク誤差入力部69は、ワーク搭載部12に搭載されるワーク42の位置として想定される誤差量、または個体差によって想定されるワーク42の誤差量が誤差Δpとして入力される。最短位置抽出部66において、複数の工程の所要時間が最短となるロボット11とワーク42との至適な位置関係が抽出されても、工場などの設備にロボットシステム10を設置する際に、ロボット11とワーク搭載部12との位置関係が変化したり、ワーク42のロットの変更やワーク42の寸法的な個体差などによってロボット11とワーク42との位置関係が僅かに変化することがある。このような場合、最短位置抽出部66におけるロボット11とワーク42との位置関係の抽出精度を向上させても、実際の設備では僅かな誤差によってロボット11の動作不良を招くことになる。そこで、ワーク誤差入力部69からは、予め想定されるワーク42の誤差量が誤差Δpとして入力される。この誤差Δpは、図4に示すようにワーク42に対し初期位置として設定されている初期作業点pに対し、ワーク搭載部12に搭載されるワーク42に想定される誤差量である。ここで初期作業点pは、ロボット11とワーク42との位置関係が最短位置抽出部66で抽出された至適な位置関係にあるとき、ワーク42の原点ΣW0からの座標として表わされる。つまり、初期作業点pは、空間の位置座標(px,py,pz)として示される。これに対し、誤差Δpが生じた場合の作業点p’は、P’=T(Δp)・Pとして表わされる。ここで、P’、Pは、それぞれ位置座標(px,py,pz,1)、(px’,py’,pz’,1)で示されるベクトルであり、T(Δp)は、Δp=(Δpx,Δpy,Δpz,Δprx,Δpry,Δprz)より求められる同時変換行列である。
【0027】
設置位置判定部67は、ワーク誤差入力部69から入力された誤差Δpに基づいて、ロボット11でワーク42に対する作業が可能か否かを判定する。具体的には、設置位置判定部67は、ワーク誤差入力部69から入力された誤差Δpに基づいて、この誤差Δpが生じたときのエンドエフェクタ15の位置の変化をベクトルである位置変化量Δrとして設定する。また、設置位置判定部67は、入力された誤差Δpにともなうマニピュレータ14における各軸の変化量を姿勢変化量Δqiとして設定する。位置変化量Δrは、入力された誤差Δpに基づいて算出してもよく、誤差Δpに対応するテーブルとして予め設定しておいてもよい。ここで、誤差Δpが存在しないときのマニピュレータ14の各軸の値をqiとする。このqiは、最短位置抽出部66で抽出した至適解に相当するロボット11とワーク42との位置関係におけるマニピュレータ14の各軸の値である。そして、設置位置判定部67は、このqiにおけるヤコビアンをJv(qi)として、以下の式(1)から姿勢変化量Δqを算出する。なお、ヤコビアンJv(qi)は、qiが抽出されるごとに逐次設定される構成としてもよく、想定されるqiについて予め設定してROM57やRAM58に記録しておく構成としてもよい。
Δqi=Jv(qi)-1Δr (1)
ここで、Jv(qi)は、誤差Δpが存在しないときのマニピュレータ14の各軸におけるヤコビアン、すなわちヤコビ行列である。
【0028】
この式(1)は、姿勢変化量Δqiに基づいて位置変化量Δrを算出する既知の式(1A)を逆変換することにより導き出される。
Δr=Jv(qi)Δqi (1A)
上記の式(1)は、姿勢変化量Δqiと位置変化量Δrとが線形の関係に近似されているため、姿勢変化量Δqiは位置変化量Δrに基づいて線形式によって算出される。そのため、式(1A)に比較して姿勢変化量Δqiの算出に必要な演算が簡略化され、複数の関節を有するマニピュレータ14の姿勢変化量Δqiの演算が容易になる。
【0029】
設置位置判定部67は、上記の式(1)に基づいて姿勢変化量Δqiが算出されると、式(2)に基づいてマニピュレータ14の各軸の値qiを判定する。すなわち、設置位置判定部67は、式(1)による姿勢変化量Δqiの算出の対象としたロボット11とワーク42との位置関係の至適解における各軸の値qiが、式(2)の関係を満たすか否かを判定する。
qi+Δqimax≦qmax (2)
ここで、最大変化量Δqimaxは、姿勢変化量Δqiが最大となるときのマニピュレータ14の各軸の変化量の最大値である。この最大変化量Δqimaxは、誤差Δpが最大となるときの姿勢変化量として式(1)で算出することにより、既知の値として得られる。また、qmaxは、ロボット11のマニピュレータ14を構成する複数の関節ごとの回転角度限界である。すなわち、設置位置判定部67は、式(1)で算出した誤差Δpが最大となるときの姿勢変化量Δqiである最大変化量Δqimaxから、式(1)における演算で用いたqiが、式(2)で示される関係において回転角度限界qmaxとの大小関係を満たすか否かを判定する。設置位置判定部67は、この判定した結果に基づいて、ロボット11でワーク42に対する作業が可能か否かについて判定する。つまり、設置位置判定部67は、式(1)で算出された姿勢変化量Δqiに含まれる要素が式(2)の大小関係を満たすとき、ワーク42の位置に変化が生じたときでも、ロボット11とワーク42との位置関係が至適であると判定する。設置位置判定部67は、以上の演算により、式(1)および式(2)に基づいて、ワーク42が初期位置から誤差Δpだけ移動したとしても、ロボット11がワーク42に対して作業可能であるか否かを判定する。この判定についての詳細は、以下のシミュレーションの流れにおいて詳細に説明する。
【0030】
(シミュレーションの流れ)
次に、上記の構成によるロボットシミュレータ50によるシミュレーションの流れについて図5に基づいて説明する。
図5に示すように、ロボットシミュレータ50は、大きくS101およびS102における入力処理、S103からS106までにおける最適化処理、およびS107における出力処理に大別される。以下、各処理について説明する。
【0031】
ロボットシミュレータ50は、条件入力部68から初期状態の入力を受け付ける(S101)。S101では、初期状態としてロボット11の初期位置、作業順序および作業点の座標が入力部51から入力される。ロボット11の初期位置は、上述の通り、シミュレーションの実行に際して、ワーク搭載部12に搭載されたワーク42に対するロボット11の初期位置である。ロボット11の初期位置における原点ΣR0は、ワーク42の中心を原点ΣWとしたとき、各軸の座標としてΣR0=(XR0,YR0,ZR0)で表わされる。このロボット11の初期位置は、入力部51から任意の座標として入力される。
作業手順は、ロボットシステム10を用いて実行する複数の工程を時系列で設定したものである。すなわち、作業手順は、ロボット11の作業点における作業順序の初期的な情報である。なお、対象となるワーク42の外観を検査する外観検査などの場合、検査順序は拘束されない。そのため、検査の場合、すべての検査に必要な所要時間が最小となるように作業点における検査の順序が変更される。一方、対象となるワーク42の加工を行う場合、加工順序が拘束される。そのため、ワーク42の加工を行う場合、作業手順に含まれる各工程の順序は予め設定される。
【0032】
作業点は、ロボット11のエンドエフェクタ15がワーク42に対して作用を及ぼす位置の座標である。上述の通り、ロボットシステム10でワーク42の加工を行う場合、作業点はその加工を行うためにエンドエフェクタ15とワーク42とが接する点であり、ロボットシステム10でワーク42の検査を行う場合、作業点はエンドエフェクタ15が検査のために移動する点である。作業点は、各工程に応じて複数設定される。これら作業点P[i]の座標は、各軸における位置および回転角度から、P[i]=(Xi,Yi,Zi,Rxi,Ryi,Rzi)で表わされる。
【0033】
また、これら初期状態の入力に加えて、入力部51を構成するワーク誤差入力部69からは、ワーク42に想定される誤差量が誤差Δpとして入力される(S102)。上述のようにロボット11とワーク42との至適な位置関係を抽出したとしても、工場などへのロボットシステム10の設置の際、およびワーク42の形状の変化などによってロボット11とワーク42との位置関係が僅かに変化する。そのため、ワーク誤差入力部69から予め予想されるワーク42の誤差量を既知の誤差Δpとして入力し、この誤差Δpが許容されるか否かを後述するS105において判定する。そのため、S102において、S105における判定で用いる誤差Δpが入力される。なお、この誤差Δpの入力は、S102に限らず、S105における判定を実行する以前であれば、任意の時期に行ってもよい。
【0034】
以上のように、S101において入力部51から初期状態が入力、およびS102において誤差Δpが入力されると、ロボットシミュレータ50の作業順序設定部65は、作業所要時間が最小となる最短作業順序の評価を行う(S103)。具体的には、作業順序設定部65は、ワーク42に対してロボット11が条件入力部68から入力された初期位置における原点ΣR0にあるとき、任意の作業順序で作業所要時間を算出する。上述のように作業所要時間は、ロボット11とワーク42との位置関係や作業点ごとの工程の順序によって変化する。そのため、作業順序設定部65は、ワーク42に対しロボット11が初期位置における原点ΣR0にある状態で複数の工程の順序を入れ替えながら作業所要時間が最短となる最短作業順序を求め、工程の順序ごとに作業所要時間を評価する。
【0035】
S103において最短作業順序の評価が終了すると、ロボットシミュレータ50の最短位置抽出部66は、所要時間が最短となるロボット11とワーク42との位置関係を抽出または変更する(S104)。最短位置抽出部66は、上述のように条件入力部68から入力されたワーク42に対するロボット11の初期位置における原点ΣR0を含む床面13であるX−Y平面上に任意の設置範囲Aを設定する。ロボット11の初期位置における原点ΣR0は、この設置範囲Aに含まれている。最短位置抽出部66は、この任意の設置範囲A内において、ロボット11とワーク42との位置関係について至適解の候補となる複数の位置関係を抽出する。すなわち、最短位置抽出部66は、設置範囲A内において、ロボット11とワーク42とが好適な位置関係になると予想される複数の位置を抽出し、これを至適解の候補とする。そして、最短位置抽出部66は、抽出した至適解の候補となるロボット11とワーク42の位置関係ごとに作業順序設定部65で評価した最短作業順序にしたがって複数の工程を仮想的に実行する。最短位置抽出部66は、至適解の候補となっている位置関係ごとに最短作業順序にしたがって複数の工程を仮想的に実行し、至適解の候補から所要時間が最短となるロボット11とワーク42との位置関係を抽出する。このように、最短位置抽出部66は、候補として抽出した至適解に基づいてロボット11とワーク42との位置関係を変化させながら、所要時間が最短となる至適解に相当するロボット11とワーク42との位置関係を抽出する。この複数の至適解の候補から、所要時間が最短となるロボット11とワーク42との位置関係に対応する至適解を抽出する処理は、例えばPSO法など既知の手法によって実行される。後述するS105の処理によってS104へリターンし、S104を再び実行する場合、最短位置抽出部66はロボット11とワーク42との位置関係を変更、すなわち至適解の候補をさらに変更し、上述の処理を繰り返す。
【0036】
S104において、所要時間が最短となるロボット11とワーク42との位置関係が抽出されると、ロボットシミュレータ50の設置位置判定部67は、誤差Δpに基づいて、その誤差Δpを設定してもロボット11でワーク42に対して作業可能であるか、すなわち誤差Δpがロボット11の作業に許容できるものであるか否かを判定する(S105)。具体的には、設置位置判定部67は、上述の通り、S102においてワーク誤差入力部69から入力された誤差Δpに基づいて、この誤差Δpが生じたときのエンドエフェクタ15の位置の変化を位置変化量Δrとして設定する。この位置変化量Δrは、誤差Δpによって生じるワーク42の初期位置となる原点ΣWに対する各軸方向の位置および回転方向のずれであり、方向と大きさとからなるベクトルとして、Δr=(ΔXw,ΔYw,ΔZw,ΔRxw,ΔRyw,ΔRzw)で示される。添字wは、位置変化量Δrがワーク42の位置変化量であることを示す。また、設置位置判定部67は、入力された誤差Δpにともなうマニピュレータ14における各軸の値の変化を姿勢変化量Δqとして算出する。この姿勢変化量Δqiは、マニピュレータ14の各関節ごとの回転角度として、Δqi=(Δθ1,Δθ2,Δθ3,Δθ4,Δθ5,Δθ6)で表わされる。
【0037】
より具体的には、設置位置判定部67は、以下の式(1)に基づいて、位置変化量Δrから姿勢変化量Δqiを算出する。以下の式(1)において、qiは、誤差Δpが存在しないときのマニピュレータ14の各軸の値である。このqiは、上述の通り最短位置抽出部66においてS104で抽出した至適解に相当するロボット11とワーク42との位置関係における各軸の値である。Jv(qi)は、このqiにおけるヤコビアンである。
Δq=Jv(qi)-1Δr (1)
この式(1)は、姿勢変化量Δqiと位置変化量Δrとが線形の関係に近似されているため、姿勢変化量Δqiは誤差Δpに相関する位置変化量Δrに基づいて線形的に算出される。そのため、式(1)を用いることにより、姿勢変化量Δqiの算出に必要な演算は簡略化され、複数の関節を有するマニピュレータ14の姿勢変化量Δqiはより容易な演算で算出される。式(1)を行列式で表わした場合、図6に示す式(1)’となる。この式(1)’では、誤差Δpに相関するワーク42の位置変化量Δrを、各軸方向の変化量および回転角度の要素として、Δr=(ΔX,ΔY,ΔZ,ΔRx,ΔRy,ΔRz)と表わしている。また、この位置変化量Δrを、qiのヤコビアンJv(qi)の逆行列であるJv(qi)-1で逆変換した結果として得られる姿勢変化量Δqは、ロボット11の各軸の回転角度として、Δqj=(Δθ1,Δθ2,Δθ3,Δθ4,Δθ5,Δθ6)で表わされる。ここで添字のj=1〜6は、ロボット11の第一関節21〜第六関節26にそれぞれ対応している。
【0038】
設置位置判定部67は、上記の式(1)に基づいて姿勢変化量Δqiが算出されると、式(2)に基づいてマニピュレータ14の各軸の値qiを判定する。すなわち、設置位置判定部67は、式(1)による姿勢変化量Δqiの算出の対象としたロボット11とワーク42との位置関係の至適解における各軸の値qiが式(2)の関係を満たすか否かを判定する。
qi+Δqimax≦qmax (2)
式(2)において、最大変化量Δqimaxは、ワーク42の誤差Δpが最大となるときのマニピュレータ14の各軸の変化量である。この最大変化量Δqimaxは、誤差Δpが最大となるときの姿勢変化量Δqiを式(1)で算出することにより、既知の値として得られる。また、qmaxは、ロボット11のマニピュレータ14を構成する複数の関節ごとの回転角度限界である。
【0039】
具体的に説明すると、式2は、図7の式(2)’に示すような行列式として表わされる。式(2)における最大変化量Δqmaxは、誤差Δpが最大となるときに式(1)に基づいて算出される既知の値である。姿勢変化量Δqiを構成する要素は、Δθj(jは、ロボット11の軸の番号であり、六軸型の本実施形態のロボット11の場合、j=1〜6となる。)で示される。また、式(2)におけるqmaxは、ロボット11のマニピュレータ14を構成する複数の関節ごとに許容される回転角度、すなわち回転角度限界である。この回転角度限界qmaxは、図7の式(2)’に示すように各関節ごとにθjmax(j=1〜6)としてそれぞれ予め設定されている。
【0040】
設置位置判定部67は、S104で抽出して式(1)における計算の基礎とした至適解における初期的な各軸の値qiと式(1)を用いて算出した誤差Δpが最大となるときの姿勢変化量Δqimaxとの和が、回転角度限界qmax以下となるように、要素ごとに大小関係を判定する。つまり、設置位置判定部67は、式(1)の算出の基礎としたqiを構成する要素である第一関節21の回転角度θ1と、誤差Δpが最大となるとして式(1)で算出した姿勢変化量Δqimaxを構成する要素である第一関節21の角度変化量Δθ1maxとの和が、予め設定されている第一関節21の回転角度限界θ1max以下であるかを判定する。同様に、設置位置判定部67は、第二関節22についてθ2+Δθ2max≦θ2maxであるか、第三関節23についてθ3+Δθ3max≦θ3maxであるか、第四関節24についてθ4+Δθ4max≦θ4maxであるか、第五関節25についてθ5+Δθ5max≦θ5maxであるか、第六関節26についてθ6+Δθ6max≦θ6maxであるか否かをそれぞれ判定する。
【0041】
そして、設置位置判定部67は、上記の式(2)すなわち式(2)’を用いた判定の結果、要素となる複数の関節のすべてが式(2)すなわち式(2)’を満たす場合、式(1)における演算の基礎とした各軸の値qiが成立するとして、このqiに対応するロボット11とワーク42との位置関係が適切であると判定する。一方、設置位置判定部67は、要素となる複数の関節のうちいずれか一つが式(2)すなわち式(2)’の関係を満たさない場合、式(1)における演算の基礎とした各軸の値qiが成立しないとして、このqiに対応するロボット11とワーク42との位置関係が不適切であると判定する。上記のように、設置位置判定部67は、以上の演算により式(1)おおび式(2)に基づいて、ワーク42が初期位置から誤差Δpだけ移動、特に誤差Δpが際となるまで移動したとしても、ロボット11がワーク42に対して作業可能であるか否かをすべての作業点について判定する。
【0042】
設置位置判定部67は、式(1)および式(2)に基づく演算結果から、ロボット11がワーク42に対して作業可能である、すなわち誤差Δpが許容可能であると判定すると(S105:Yes)、計算時間制約を判定するために計算所要時間に到達したか否かを判断する(S106)。設置位置判定部67は、式(1)および式(2)によりロボット11がワーク42に対して作業可能であると判定したとき、計算時間が予め設定した計算所要時間内にあるか否かを判断する。ロボットシステム10では、複数の工程からなる作業の所要時間が最短となる具体的な時間を予め知ることはできない。そのため、設置位置判定部67では、各演算の無限の繰り返しを招くおそれがある。そこで、設置位置判定部67は、S106において予め設定した計算所要時間に到達したか否かを判断する。この計算所要時間は、確保したい精度に応じて任意に設定される。設置位置判定部67は、予め設定した計算所要時間に到達するまでS103からS106までの最適化処理を繰り返し、予め設定した計算所要時間を経過すると、S107へ移行する。すなわち、設置位置判定部67は、S103の最初の実行からの経過時間が計算所要時間に到達したか否かを判断し、計算所要時間に到達していないとき(S106:No)、S103へリターンし、作業順序の変更以降の最適化処理を繰り返す。一方、設置位置判定部67は、S103の最初の実行からの経過時間が計算所要時間に到達したと判断すると(S106:Yes)、S107の出力処理へ移行し、最適化によって得られた条件の範囲内における最適な作業順序、ロボット11とワーク42との位置関係を表示部61へ可視的に出力する。
【0043】
ところで、設置位置判定部67は、式(1)および式(2)に基づく算出結果から、ロボット11がワーク42に対して作業可能でない、すなわち誤差Δpが許容できないと判定すると(S105:No)、S104へリターンし、ロボット11とワーク42との位置関係を、複数の至適解の候補のうち他の候補に変更する。すなわち、S104では複数の至適解の候補から所要時間が最短となるロボット11とワーク42との位置関係が抽出され、この位置関係についてS105で誤差が許容されるか否かが判定される。ここで、所要時間が最短となるロボット11とワーク42との位置関係ではS105で誤差が許容できないと判定されると、先のS104で所要時間が最短と判断された位置関係の次に所要時間の短い至適解の候補を抽出し、S105の処理を繰り返す。そして、設置位置判定部67は、変更した至適解の候補に対応するロボット11とワーク42との位置関係に基づいて、S105における判定処理を実行する。
【0044】
以上の手順により、ロボットシミュレータ50は、S104で設置範囲Aに抽出された至適解の候補について、ロボット11とワーク42と位置関係、および誤差Δpによるロボット11の作動の可否を計算所要時間に到達するまで繰り返し評価する。そして、計算所要時間に到達すると、ロボット11における作業順序および至適解に相当するロボット11とワーク42との位置関係を、シミュレーションの範囲内における最適値として表示部61に出力する。なお、至適解または至適解に近似するロボット11とワーク42との位置関係が複数ある場合、これら複数の位置関係を好ましい順に順位を付して表示部61に表示する構成としてもよい。
【0045】
以上説明した一実施形態の場合、上記の式(1)は、線形近似されている。そのため、パーソナルコンピュータなどの演算部52にとって処理が容易な線形式を利用してロボット11が作業可能な範囲であるか否かが判定される。ところで、ワーク42に生じるとして設定している誤差Δpは、ロボット11の姿勢の大きな変化や、作業時間の大幅な増加を招くものではない。そのため、ロボット11とワーク42との位置関係を検証するためには、誤差Δpが生じていないときを基準とすればよく、線形近似された式(1)により簡単な演算で至適解の候補を算出することができる。一方、ロボット11の各軸の姿勢に大きな変化が生じる場合でも、上記の式(1)および式(2)を用いてそのまま計算することにより、作業が不可能な姿勢は式(2)によって不適切な解と判定される。そのため、ロボットとワークとの位置関係を検証するためには、誤差Δpが生じていないときを基準とすればよく、誤差Δpは無視してもよい。
【0046】
また、一実施形態では、式(1)を用いることにより、ワーク42の各作業点において一通りのヤコビアンで演算できる。したがって、ロボット11とワーク42との位置関係に誤差Δpが生じる場合でも、ロボット11が動作可能となるロボット11とワーク42との最適な位置関係を簡単な処理で導き出すことができる。
【0047】
以上説明した本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。
【符号の説明】
【0048】
図面中、10はロボットシステム、11はロボット、12はワーク搭載部、14はマニピュレータ、15はエンドエフェクタ、21は第一関節、22は第二関節、23は第三関節、24は第四関節、25は第五関節、26は第六関節、31は第一アーム、32は第二アーム、33は第三アーム、34は第四アーム、35は第五アーム、42はワーク、50はロボットシミュレータ、51は入力部、52は演算部、53は出力部、65は作業順序設定部、66は最短位置抽出部、67は設置位置判定部、68は条件入力部、69はワーク誤差入力部を示す。

【特許請求の範囲】
【請求項1】
マニピュレータの先端にワークを取り扱うエンドエフェクタを有するロボットの設置位置と前記ワークの設置位置との関係を求めるロボットの姿勢判定方法であって、
前記ワークに想定される誤差量を誤差Δpとし、前記誤差Δpにともなう前記エンドエフェクタの位置の変化を位置変化量Δrとし、前記誤差Δpにともなう前記マニピュレータにおける各軸の変化量を姿勢変化量Δqiとし、前記誤差Δpが存在しないときの前記マニピュレータの各軸の値をqi(iは、作業点の番号であり、i≧1)とし、このqiにおけるヤコビアンをJv(qi)として、前記姿勢変化量Δqiを、
Δqi=Jv(qi)-1Δr (1)
により算出するとともに、
前記式(1)で算出される前記姿勢変化量Δqiが最大となるときの前記マニピュレータの各軸の変化量を最大変化量Δqimaxとし、前記マニピュレータを構成する関節の回転角度限界をqmaxとすると、
qi+Δqimax≦qmax (2)
を満たす前記マニピュレータの各軸の値qiを誤差Δpを有するワークに対し当該作業点iにおける作業が可能な姿勢であると判定することを特徴とするロボットの姿勢判定方法。
【請求項2】
複数のアームおよび関節から構成されるマニピュレータおよび前記マニピュレータの先端に設けられワークを取り扱うエンドエフェクタを有するロボットの設置位置と前記ワークの設置位置との関係を求めるロボットの姿勢判定方法であって、
前記エンドエフェクタが前記ワークに作用する作業点のうち初期位置として予め設定されている初期作業点に対し、前記ワークに想定される誤差量を誤差Δpとして設定する手順と、
設定された前記誤差Δpに基づいて、前記誤差Δpにともなう前記エンドエフェクタの位置の変化を位置変化量Δrとし、前記誤差Δpにともなう前記マニピュレータにおける各軸の値の変化量を姿勢変化量Δqi(iは、作業点の番号であり、i≧1)とし、前記誤差Δpが存在しないときの前記マニピュレータの各軸の値をqiとし、このqiにおけるヤコビアンをJv(qi)として、前記姿勢変化量Δqiを、
Δqi=Jv(qi)-1Δr (1)
により算出するとともに、
前記式(1)で算出される前記姿勢変化量Δqiが最大となるときの前記マニピュレータの各軸の変化量を最大変化量Δqimaxとし、前記関節の回転角度限界をqmaxとすると、
qi+Δqimax≦qmax (2)
を満たす前記マニピュレータの各軸の値qiを誤差Δpを有するワークに対し当該作業点iにおける作業が可能な姿勢であると判定する手順と、
を含むことを特徴とするロボットの姿勢判定方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−156604(P2011−156604A)
【公開日】平成23年8月18日(2011.8.18)
【国際特許分類】
【出願番号】特願2010−18579(P2010−18579)
【出願日】平成22年1月29日(2010.1.29)
【出願人】(501428545)株式会社デンソーウェーブ (1,155)
【出願人】(504137912)国立大学法人 東京大学 (1,942)
【Fターム(参考)】