説明

ロボット装置の制御方法及びロボット装置

【課題】作業領域がさまざまに刻々と変化する場合においても、マニピュレータの作業領域への干渉を容易に回避できるようになされたロボット装置の制御方法及びロボット装置を提供する。
【解決手段】複数のリンクにより構成されたマニピュレータ1,2を制御するにあたり、制御対象となるマニピュレータを構成する各リンクについて外形を包絡する複数の球体を設定し、マニピュレータ1,2の周囲の物体について外形を包絡する複数の球体Z1,Z2,Z3,・・・を設定し、各リンクの動作に応じて各リンク及び周囲の物体について設定された各球体Z1,Z2,Z3,・・・の中心間距離の変化を計算し、各球体同士の干渉を検出することによって、各リンクが周囲の物体に干渉するか否かの判断を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マニピュレータの作業領域への干渉を回避するようにしたロボット装置の制御方法に関し、また、マニピュレータの作業領域への干渉を回避するようになされたロボット装置に関する。
【背景技術】
【0002】
ロボット装置のマニピュレータを制御するにあたっては、制御対象となるマニピュレータと、他のマニピュレータやワーク、その他の種々の機械などが存在する作業領域への干渉を避ける必要がある。
【0003】
従来のロボット装置の制御方法においては、特許文献1乃至特許文献3に記載されているように、マニピュレータと干渉する可能性のある作業領域をあらかじめ設定して記憶しておき、記憶しておいた領域と、マニピュレータの移動先とが重なるかどうかを計算して、干渉の有無を判定していた。
【0004】
【特許文献1】特開平8−166809号公報
【特許文献2】特開平6−149332号公報
【特許文献3】特許第3402645号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
ところで、前述のような従来のロボット装置の制御方法においては、あらかじめ設定し記憶しておいた領域についてしか、マニピュレータの干渉の有無を判定することができない。
【0006】
そのため、このようなロボット装置の制御方法においては、作業領域がさまざまに刻々と変化する場合については、事前準備が極めて煩雑なものとなってしまう。
【0007】
そこで、本発明は、前記の実情に鑑みてなされたものであり、その目的は、作業領域がさまざまに刻々と変化する場合においても、マニピュレータの作業領域への干渉を容易に回避し、停止時間を最小限に抑え、安全に作業を継続できるようになされたロボット装置の制御方法及びロボット装置を提供することにある。
【課題を解決するための手段】
【0008】
前述の課題を解決し、前記目的を達成するため、本発明に係るロボット装置の制御方法は、以下の構成のいずれか一以上を有するものである。
【0009】
〔構成1〕
複数のリンクにより構成されたマニピュレータを制御するにあたり、制御対象となるマニピュレータを構成する各リンクについて外形を包絡する複数の球体を設定し、マニピュレータの周囲の物体について外形を包絡する複数の球体を設定し、各リンクの動作に応じて各リンク及び周囲の物体について設定された各球体の中心間距離の変化を計算し、各球体同士の干渉を検出することによって、各リンクが周囲の物体に干渉するか否かの判断を行うことを特徴とするものである。
【0010】
〔構成2〕
複数のリンクにより構成されたマニピュレータを制御するにあたり、制御対象となるマニピュレータを構成する各リンクについて外形を包絡する複数の球体を設定し、他のマニピュレータが作業を行っているときには当該他のマニピュレータ及び作業対象物を含む作業領域を包絡する球体を設定し、制御対象となるマニピュレータを構成する各リンクの動作に応じてこれら各リンク及び作業領域を包絡する球体の中心間距離の変化を計算し、各球体同士の干渉を検出することによって、各リンクが作業領域に干渉するか否かの判断を行うことを特徴とするものである。
【0011】
〔構成3〕
複数のリンクにより構成されたマニピュレータを制御するにあたり、制御対象となるマニピュレータを構成する各リンクについて外形を包絡する複数の球体を設定し、他のマニピュレータが作業を行っているときには当該他のマニピュレータ及び作業対象物を含む作業領域の中心に半径が0の球体を設定し、制御対象となるマニピュレータを構成する各リンクの動作に応じて、これら各リンクを包絡する球体及び作業領域の中心の球体の中心間距離の変化を計算し、各球体同士の干渉を検出することによって、各リンクが作業領域に干渉するか否かの判断を行うことを特徴とするものである。
【0012】
〔構成4〕
複数のリンクにより構成されたマニピュレータを制御するにあたり、制御対象となるマニピュレータを構成する各リンクについて外形を包絡する複数の球体を設定し、マニピュレータの進入が禁止される進入禁止領域を包絡する一、または、複数の球体を設定し、制御対象となるマニピュレータを構成する各リンクの動作に応じて、これら各リンク及び進入禁止領域を包絡する球体の中心間距離の変化を計算し、各球体同士の干渉を検出することによって、各リンクが進入禁止領域に干渉するか否かの判断を行うことを特徴とするものである。
【0013】
また、本発明に係るロボット装置は、以下の構成のいずれか一以上を有するものである。
【0014】
〔構成5〕
複数のリンクにより構成されたマニピュレータと、このマニピュレータを制御する制御手段とを備え、制御手段は、制御対象となるマニピュレータを構成する各リンクを動作させるとともに、各リンクについて外形を包絡する複数の球体を設定し、マニピュレータの周囲の物体について外形を包絡する複数の球体を設定し、各リンク及び周囲の物体について設定した各球体の中心間距離の変化を計算し、各球体同士の干渉を検出することによって、各リンクが周囲の物体に干渉するか否かの判断を行うことを特徴とするものである。
【0015】
〔構成6〕
複数のリンクにより構成されたマニピュレータと、このマニピュレータを制御する制御手段とを備え、制御手段は、制御対象となるマニピュレータを構成する各リンクを動作させるとともに、各リンクについて外形を包絡する複数の球体を設定し、他のマニピュレータが作業を行っているときには当該他のマニピュレータ及び作業対象物を含む作業領域を包絡する球体を設定し、各リンク及び作業領域を包絡する球体の中心間距離の変化を計算し、各球体同士の干渉を検出することによって、各リンクが作業領域に干渉するか否かの判断を行うことを特徴とするものである。
【0016】
〔構成7〕
複数のリンクにより構成されたマニピュレータと、このマニピュレータを制御する制御手段とを備え、制御手段は、制御対象となるマニピュレータを構成する各リンクを動作させるとともに、各リンクについて外形を包絡する複数の球体を設定し、他のマニピュレータが作業を行っているときには当該他のマニピュレータ及び作業対象物を含む作業領域の中心に半径が0の球体を設定し、各リンクを包絡する球体及び作業領域の中心の球体の中心間距離の変化を計算し、各球体同士の干渉を検出することによって、各リンクが作業領域に干渉するか否かの判断を行うことを特徴とするものである。
【0017】
〔構成8〕
複数のリンクにより構成されたマニピュレータと、このマニピュレータを制御する制御手段とを備え、制御手段は、制御対象となるマニピュレータを構成する各リンクを動作させるとともに、各リンクについて外形を包絡する複数の球体を設定し、マニピュレータの進入が禁止される進入禁止領域を包絡する一、または、複数の球体を設定し、各リンク及び進入禁止領域を包絡する球体の中心間距離の変化を計算し、各球体同士の干渉を検出することによって、各リンクが進入禁止領域に干渉するか否かの判断を行うことを特徴とするものである。
【発明の効果】
【0018】
本発明に係るロボット装置の制御方法においては、構成1を有することにより、制御対象となるマニピュレータを構成する各リンクについて外形を包絡する複数の球体を設定し、マニピュレータの周囲の物体について外形を包絡する複数の球体を設定し、各リンクの動作に応じて各リンク及び周囲の物体について設定された各球体の中心間距離の変化を計算し、各球体同士の干渉を検出することによって、各リンクが周囲の物体に干渉するか否かの判断を行うので、マニピュレータのリンク数やリンクの形状に拘わらず、容易、かつ、迅速な演算によってマニピュレータの周囲の物体への干渉の有無を事前に検出することができる。
【0019】
本発明に係るロボット装置の制御方法においては、構成2を有することにより、制御対象となるマニピュレータを構成する各リンクについて外形を包絡する複数の球体を設定し、他のマニピュレータが作業を行っているときには当該他のマニピュレータ及び作業対象物を含む作業領域を包絡する球体を設定し、制御対象となるマニピュレータを構成する各リンクの動作に応じてこれら各リンク及び作業領域を包絡する球体の中心間距離の変化を計算し、各球体同士の干渉を検出することによって、各リンクが作業領域に干渉するか否かの判断を行うので、マニピュレータのリンク数やリンクの形状に拘わらず、容易、かつ、迅速な演算によって他のマニピュレータが作業を行っている作業領域への干渉の有無を事前に検出することができる。
【0020】
本発明に係るロボット装置の制御方法においては、構成3を有することにより、制御対象となるマニピュレータを構成する各リンクについて外形を包絡する複数の球体を設定し、他のマニピュレータが作業を行っているときには当該他のマニピュレータ及び作業対象物を含む作業領域の中心に半径が0の球体を設定し、制御対象となるマニピュレータを構成する各リンクの動作に応じて、これら各リンクを包絡する球体及び作業領域の中心の球体の中心間距離の変化を計算し、各球体同士の干渉を検出することによって、各リンクが作業領域に干渉するか否かの判断を行うので、マニピュレータのリンク数やリンクの形状に拘わらず、容易、かつ、迅速な演算によって他のマニピュレータが作業を行っている作業領域への干渉の有無を事前に検出することができる。
【0021】
本発明に係るロボット装置の制御方法においては、構成4を有することにより、制御対象となるマニピュレータを構成する各リンクについて外形を包絡する複数の球体を設定し、マニピュレータの進入が禁止される進入禁止領域を包絡する一、または、複数の球体を設定し、制御対象となるマニピュレータを構成する各リンクの動作に応じて、これら各リンク及び進入禁止領域を包絡する球体の中心間距離の変化を計算し、各球体同士の干渉を検出することによって、各リンクが進入禁止領域に干渉するか否かの判断を行うので、マニピュレータのリンク数やリンクの形状に拘わらず、容易、かつ、迅速な演算によって進入禁止領域への干渉の有無を事前に検出することができる。
【0022】
また、本発明に係るロボット装置においては、構成5を有することにより、制御手段は、制御対象となるマニピュレータを構成する各リンクを動作させるとともに、各リンクについて外形を包絡する複数の球体を設定し、マニピュレータの周囲の物体について外形を包絡する複数の球体を設定し、各リンク及び周囲の物体について設定した各球体の中心間距離の変化を計算し、各球体同士の干渉を検出することによって、各リンクが周囲の物体に干渉するか否かの判断を行うので、マニピュレータのリンク数やリンクの形状に拘わらず、容易、かつ、迅速な演算によってマニピュレータの周囲の物体への干渉の有無を事前に検出することができる。
【0023】
本発明に係るロボット装置においては、構成6を有することにより、制御手段は、制御対象となるマニピュレータを構成する各リンクを動作させるとともに、各リンクについて外形を包絡する複数の球体を設定し、他のマニピュレータが作業を行っているときには当該他のマニピュレータ及び作業対象物を含む作業領域を包絡する球体を設定し、各リンク及び作業領域を包絡する球体の中心間距離の変化を計算し、各球体同士の干渉を検出することによって、各リンクが作業領域に干渉するか否かの判断を行うので、マニピュレータのリンク数やリンクの形状に拘わらず、容易、かつ、迅速な演算によって他のマニピュレータが作業を行っている作業領域への干渉の有無を事前に検出することができる。
【0024】
本発明に係るロボット装置においては、構成7を有することにより、制御手段は、制御対象となるマニピュレータを構成する各リンクを動作させるとともに、各リンクについて外形を包絡する複数の球体を設定し、他のマニピュレータが作業を行っているときには当該他のマニピュレータ及び作業対象物を含む作業領域の中心に半径が0の球体を設定し、各リンクを包絡する球体及び作業領域の中心の球体の中心間距離の変化を計算し、各球体同士の干渉を検出することによって、各リンクが作業領域に干渉するか否かの判断を行うので、マニピュレータのリンク数やリンクの形状に拘わらず、容易、かつ、迅速な演算によって他のマニピュレータが作業を行っている作業領域への干渉の有無を事前に検出することができる。
【0025】
本発明に係るロボット装置においては、構成8を有することにより、制御手段は、制御対象となるマニピュレータを構成する各リンクを動作させるとともに、各リンクについて外形を包絡する複数の球体を設定し、マニピュレータの進入が禁止される進入禁止領域を包絡する一、または、複数の球体を設定し、各リンク及び進入禁止領域を包絡する球体の中心間距離の変化を計算し、各球体同士の干渉を検出することによって、各リンクが進入禁止領域に干渉するか否かの判断を行うので、マニピュレータのリンク数やリンクの形状に拘わらず、容易、かつ、迅速な演算によって進入禁止領域への干渉の有無を事前に検出することができる。
【0026】
すなわち、本発明は、作業領域がさまざまに刻々と変化する場合においても、マニピュレータの作業領域への干渉を容易に回避できるようになされたロボット装置の制御方法及びロボット装置を提供することができるものである。
【発明を実施するための最良の形態】
【0027】
以下、本発明を実施するための最良の形態について図面を参照して説明する。
【0028】
〔ロボット装置の構成〕
図1は、本発明に係るロボット装置の構成を示す模式的な斜視図である。
【0029】
本発明に係るロボット装置は、図1に示すように、少なくとも一台のマニピュレータ1,2を有している。この実施の形態においては、二台のマニピュレータ1,2が、互いの動作領域内に干渉して配置することが可能となされている。
【0030】
各マニピュレータ1,2は、それぞれ、複数のアクチュエータ(駆動装置)とリンク(剛体の構造物)とによって構成されている。各リンク間は、回動(屈曲)可能、または、伸縮(並進)可能な関節、あるいは、旋回可能な関節3を介して接続されており、それぞれアクチュエータによって相対駆動されるようになっている。各アクチュエータは、制御手段によって制御される。
【0031】
各マニピュレータ1,2において、第1のリンク(基端部のリンク)1a,2aは、作業台101上に固定されており、この第1のリンク1a,2aに、第2のリンク1b,2bが接続されている。第2のリンク1b,2bには第3のリンク1c,2cが接続され、第3のリンク1c,2cには第4のリンク1d,2dが接続され、このようにして、順次、各リンクが接続されている。先端部のリンクの先端側(以下、「手先」という。)には、ワーク102を把持する把持機構4が設けられている。この把持機構4も、制御手段によって制御される。
【0032】
これらマニピュレータ1,2においては、第1のリンク1a,2aに対する第2のリンク1b,2bの位置、第2のリンク1b,2bに対する第3のリンク1c,2cの位置、第3のリンク1c,2cに対する第4のリンク1d,2dの位置と、順次先端側のリンクの位置を制御してゆくことにより、手先の位置を制御することができ、この手先において把持機構4によって把持したワークの位置を制御することができる。
【0033】
〔ロボット装置の制御方法〕
図2は、マニピュレータを構成する各リンクについて設定された外形を包絡する複数の球体を示す側面図である。
【0034】
そして、このロボット装置においては、本発明に係るロボット装置の制御方法が実施される。すなわち、このロボット装置においては、図2に示すように、制御手段により、マニピュレータ1,2を構成する各リンク1a,2a,1b,2b・・・について、外形を包絡する複数の球体5a,5b,5c・・・5nが設定される。このように球体5a,5b,5c・・・5nを設定することにより、各リンク1a,2a,1b,2b・・・の動作に応じて各リンクについて設定した各球体の中心間距離の変化を計算し、各球体同士の干渉を検出することによって、各リンク1a,2a,1b,2b・・・同士が衝突するか否かの判断を行うことができる。
【0035】
球体5a,5b,5c・・・5nの数、位置及び半径等は、これら球体によってどの程度正確にリンク1a,2a,1b,2b・・・の形状を近似するか、また、安全余裕をどの程度にするかに応じて決定する。図2中の(b)に示すように、1つのリンクに対して球体の数を増やすほど、図2中の(a)に示す球体の数が少ない場合に比較して、正確にリンクの形状を近似することができる。ただし、球体の数を増やすほど、各球体の中心間距離を求めるための計算量は増加する。
【0036】
図3は、6自由度のマニピュレータの構成及び各リンクについて設定された外形を包絡する複数の球体を示す側面図である。
【0037】
例えば、このロボット装置のマニピュレータが、図3中の(a)に示すように、6自由度のマニピュレータである場合には、図3中の(b)に示すように、このマニピュレータの各リンクa,b,c,d,e,f,gについて、前述のように複数の球体5を設定することによって、マニピュレータの全体について、複数の球体5によって近似することができる。
【0038】
このロボット装置の制御方法においては、各マニピュレータ1,2についてこのような球体の設定を行うとともに、ロボット装置の近傍に存在する障害物についても、球体の設定を行う。すなわち、ロボット装置の近傍に位置する障害物について、各種センサによる検出結果や予め与えられた情報に基づいて位置情報を得て、この障害物の外形を包絡する複数の球体を設定する。
【0039】
そして、マニピュレータの各リンクの動作に応じて各リンクについて設定した各球体及び障害物について設定した各球体の中心間距離の変化を計算し、各球体同士の干渉を検出することによって、各リンク同士及び各リンクと障害物とが衝突するか否かの判断を行うことができる。
【0040】
すなわち、マニピュレータの制御中に、リアルタイムで各球体の中心間の距離を計算し、この距離が2つの球体の半径の和を下回った場合には、球体同士が干渉しリンク同士、または、リンクと障害物とが接触したと判断する。各球体は、マニピュレータの各リンク及び障害物の外形を覆うとともに、ある程度の余裕量を持つように、位置及び大きさが設定されているので、球体同士が干渉しなければ、リンク同士及びリンクと障害物とは、衝突していないと判断することができる。
【0041】
図4は、設定された球体の中心間の距離の求め方を説明する図である。
【0042】
設定された球体の中心間の距離を求めるにあたり、例えば、図4に示すように、半径r1の球体S1及び半径r2の球体S2について、S1の中心位置を(px1、py1、pz1)、S2の中心位置を(px2、py2、pz2)とし、これら2つの球体の中心間の距離をRとする。この場合、以下の(式1)が成立する。
=(px1−px2)+(py1−py2)+(pz1−pz2)・・(式1)
【0043】
したがって、これら2つの球体が干渉しているかどうかは、以下の(式2)が満足されるかどうかによって確認することができる。
<(r1+r2) ・・・(式2)
【0044】
この処理をすべての球体の組合せについて行うことによって、各球体間の干渉の有無を判断することができる。このようにマニピュレータの各リンクについて球体を設定することによって、球体の中心間距離の計算のみによって、球体同士の干渉の有無により、各リンクの衝突の有無の判断を行うことができる。すなわち、各リンクを円筒や平面を用いて表現した場合に比較して、方向(法線)や端点処理が不要となり、簡単な計算によって判断することができる。
【0045】
ただし、同一のリンクについて設定された球体同士は、それぞれの半径を下回って配置されていても、接触と判断すべきではない。そこで、以下の方策に従い、衝突確認を行う必要がない球体の組を決定しておくことにより、必要な計算量を減らすことができる。
【0046】
図5は、マニピュレータの所定のリンクの構成を示す側面図である。
【0047】
このロボット装置においては、図5に示すように、セグメントを定義する。このセグメントは、一の屈曲(回転)または並進関節から、マニピュレータの先端側への次の屈曲(回転)または並進関節までの間の部分をいう。一の屈曲(回転)または並進関節は、次の屈曲(回転)または並進関節の位置を変化させる機能を有する。ここで、セグメントの定義においては、旋回関節(次の関節をその場で回転させるだけで次の関節の位置を変えない関節)は、除外して考える。すなわち、旋回関節で接続された複数のリンクは、同一のセグメントとなる。
【0048】
したがって、図5に示すように、屈曲関節q1から屈曲関節q3までのリンクL1及びリンクL2が、同一のセグメントSG1と定義される。リンクL1及びリンクL2は、旋回関節q2によって接続されている。
【0049】
このロボット装置において、各リンクについて設定される球体は、そのリンクが属するセグメント上に設定されていることになる。なお、障害物についても、1つ、または、2つ以上のセグメントとして定義し、球体を設定する。同一のセグメント上では、球体同士が干渉していても衝突が生じているわけではないので、同一のセグメント上の球体同士では、干渉が生じているかどうかの判別を行う必要がない。
【0050】
また、このロボット装置においては、衝突が生じ得ない2つのセグメント上に設定された球体同士は、干渉が生じているかどうかの判別を行う必要がない。
【0051】
図6は、接触が生じ得ないセグメントを示す側面図である。
【0052】
このロボット装置において、接触が生じ得ないセグメントとは、図6に示すように、屈曲(回転)または並進関節qを介して隣り合ったセグメントである。すなわち、図6における「セグメント1」及び「セグメント2」、「セグメント2」及び「セグメント3」、そして、「セグメント4」及び「セグメント5」は、屈曲(回転)または並進関節qによって接続されているため、屈曲(回転)または並進関節qの可動範囲を制限したり制御することによって互いの接触を回避することができ、これら2つのセグメント上に設定された球体同士について干渉が生じているかどうかの判別を行う必要がない。
【0053】
また、物理的に距離が離れており、互いの可動範囲内にないセグメント、すなわち、図6における「セグメント2」及び「セグメント4」は、可動範囲内でどのように駆動されても接触が生じ得ないので、これら2つのセグメント上に設定された球体同士について干渉が生じているかどうかの判別を行う必要がない。
【0054】
さらに、作業台101上に固定された2つのセグメント、すなわち、図6における「セグメント1」及び「セグメント4」は、移動されることがなく接触が生じ得ないので、これら2つのセグメント上に設定された球体同士について干渉が生じているかどうかの判別を行う必要がない。
【0055】
ところで、セグメント上に設定された複数の球体の位置を算出するには、一般的なマニピュレータの制御中に得られる順運動学の結果を用いることができる。ある関節の基準座標に対する位置及び姿勢は、一般的な順運動学により、以下の(式3)、すなわち、4×4の同次変換行列によって表現することができる。
【0056】
【数1】

・・・(式3)
【0057】
ここで、(x、y、z)は、その関節における座標系を表す互いに直交した単位3次元ベクトルであり、その関節の姿勢を表す。pは、基準座標におけるその関節の位置を表す3次元ベクトルである。これらの値は、順運動学により、手先の位置及び姿勢を計算する過程で得られるものである。この関節から、この関節における座標系の(x、y、z)軸方向にそれぞれ(lx、ly、lz)移動した点の座標p′は、以下の(式4)で示すことができる。
p′=p+lx・x+ly・y+lz・z ・・・(式4)
【0058】
再び、図5に示した例を考えると、屈曲関節q1の中心位置をp1、p1における座標、すなわち、リンクL1の姿勢を(x1、y1、z1)とし、旋回関節q2の中心位置をp2、p2における座標、すなわち、リンクL2の姿勢を(x2、y2、z2)とすると、これらの値は、順運動学を計算する過程で求められる。
【0059】
屈曲関節q1からリンクL1の長手方向、すなわち、z1方向に長さl1z離れた位置に球体の中心S1がある場合には、S1の位置は、以下の(式5)によって示される。
S1=p1+l1z・z1 ・・・(式5)
【0060】
同様に、旋回関節q2からリンクL2の長手方向、すなわち、z2方向に長さl2z離れ、y2方向に長さl2y離れた位置に球体の中心S2がある場合には、S2の位置は、以下の(式6)によって示される。
S2=p2+l2z・z2+l2y・y2 ・・・(式6)
【0061】
このように、このロボット装置においては、一般的なマニピュレータの制御の途中で計算されている結果を用いて球体の位置を求めることができるので、球体の位置計算のために生ずる計算量の増加は、微小なものである。
【0062】
図7は、ワークの取り扱いを示す側面図である。
【0063】
このロボット装置において、図7に示すように、マニピュレータの把持機構4がワーク102を把持するときに、図7中(a)に示すように、ワーク102を把持する前には衝突が生じなかった動作でも、図7中(b)に示すように、ワーク102を把持した後には、衝突が生じることがある。このような場合には、ワーク102についても球体を設定しておくことにより、ワーク102も含めた接触検知を行うことができる。
【0064】
この場合、把持機構4がワーク102を把持した状態に応じて、セグメントに対する球体の設定の追加及び除去を動的に行ってもよいが、把持機構4の位置に半径ゼロ、または、負の値の半径の球体WSを予め設定しておき、把持機構4がワーク102を把持したときには、把持機構4の位置の球体WSの半径を拡大させつつ位置を移動することで、この球体WSによりワーク102の外形を包絡させるようにしてもよい。このような扱いとすることにより、処理が容易になる。
【0065】
図7中(a)に示すように、把持機構4の位置の球体WSの半径をゼロ、または、負の値としておくことにより、他の任意の球体との干渉の有無の判定を行っても、干渉が検知されることはない。ワーク102を把持したときには、図7中(b)に示すように、球体WSの半径をrwに拡大させるとともに、オフセットLOwを与えて球体WSを移動させることにより、ワーク102の外形を包絡させる。この状態において、球体WSに干渉する可能性がある他の球体との干渉の有無の判別を行うことができる。把持機構4がワーク102を解放したときには、再び、球体WSの半径をゼロ、または、負の値にし、位置を手先位置などの基準位置に戻す。
【0066】
なお、球体WSの半径rw及びオフセットLOwは、ワーク102の形状及び大きさに応じて予め設定しておき、動作情報などに基づいて、取得するようにすることができる。さらに、カメラ、レーザ計測器やその他のセンサを使って計測することにより、人や一時的に置かれた治具など、予め情報が取得されていないものについても、検出されたときに球体を設定し、干渉有無の判別対象とすることができる。
【0067】
そして、このロボット装置の制御方法においては、一つのマニピュレータがこれから作業を行う空間を作業領域とし、この作業領域に他のマニピュレータが進入しないように制御することができる。
【0068】
なお、本発明に係るロボット装置においては、各セグメント上、または、ワーク102上に設定される各球体の半径は、各リンクの動作速度に応じて、動的に変化させるようにしてもよい。例えば、リンクの動作速度が速い場合には、このリンクが属するセグメント上に設定される各球体の半径を拡大することにより、このリンクが他のリンクに衝突することをより確実に防止することができる。また、リンクの動作速度が遅い場合には、このリンクが属するセグメント上に設定される各球体の半径を縮小することにより、このリンクが他のリンクに衝突することを防止しつつ、このリンクの可動範囲を広くすることができる。
【0069】
図8は、マニピュレータと作業領域との位置関係を示す平面図である。
【0070】
すなわち、図8に示すように、1つのマニピュレータ1が第1の作業点P1に対して作業を始めたときには、第1の作業点P1を包含する第1の作業領域Z1を設定し、他のマニピュレータ2は、第1の作業領域Z1及び作業中のマニピュレータ1に干渉しない空間内において移動する。マニピュレータ1の作業の終了後は、第1の作業領域Z1への進入禁止を解除し、他のマニピュレータ2も自由に動ける空間となる。
【0071】
このようにロボット装置を制御するには、前述したように、各ワーク102におけるそれぞれの作業点P1,P2,P3,P4,P5,P6に対して、これらを包絡する球体状の作業領域Z1,Z2,Z3,・・・を設定する。各マニピュレータ1,2についても、前述したように、それぞれの外形を包絡する複数の球体を設定する。そして、作業領域Z1,Z2,Z3,・・・と各マニピュレータ1,2について設定された各球体の中心間距離を計算することにより、作業領域とマニピュレータ1,2との接触、マニピュレータ1,2同士の接触を検出することができる。
【0072】
一方のマニピュレータ1が第1の作業点P1に対して作業を行っている間は、マニピュレータ1が第1の作業領域Z1と接触し、第1の作業領域Z1は、一方のマニピュレータ1の占有領域となる。このとき、他方のマニピュレータ2は、第2の作業点P2に対して作業を行うと、一方のマニピュレータ1が占有している第1の作業領域Z1に接触してしまうため、第2の作業点P2に対する作業を行うことができない。他方のマニピュレータ2は、第3の作業点P3に対して作業を行っても、第1の作業領域Z1には接触しないため、第3の作業点P3に対する作業を行うことが可能である。そこで、他方のマニピュレータ2は、第3の作業点P3に対する作業を行う。このようにして、各マニピュレータ1,2の全体として、作業を効率的に継続することができる。
【0073】
また、他方のマニピュレータ2が第4の作業点P4に対する作業を行う場合、他方のマニピュレータ2が単独で作業を行うのであれば、他方のマニピュレータ2は、第4の作業点P4へまっすぐ接近して作業を行えばよい。しかし、他方のマニピュレータ2の移動経路に第1の作業領域Z1が重なっており、一方のマニピュレータ1が第1の作業点P1に対する作業を行っている場合には、他方のマニピュレータ2は、一方のマニピュレータ1が占有している第1の作業領域Z1に接触してしまう。
【0074】
このような場合には、他方のマニピュレータ2は、第4の作業点P4へまっすぐ接近することができないので、マニピュレータ1が占有している第1の作業領域Z1と他方のマニピュレータ2について設定された球体とが接触しないように、姿勢を調整しながら第4の作業点P4に接近して、第4の作業点P4に対する作業を行う。
【0075】
なお、従来のロボット装置の制御方法においては、このような場合には、他のマニピュレータの動作パターンすべてに対応する回避動作をあらかじめ教示しておく必要があった。これに対し、本発明においては、基本的な作業のみを予め教示しておき、作業進行中には、リアルタイムで球体同士の中心間距離を計算することにより、互いの作業領域に接触しないように姿勢を調整することが可能になっている。
【0076】
このようにして、本発明においては、各作業点P1,P2,P3,P4,P5,P6ごとに作業領域Z1,Z2,Z3,・・・を設定し、各作業領域Z1,Z2,Z3,・・・と各マニピュレータ1,2との干渉を監視することにより、複数のマニピュレータ1,2が安全を保ちつつ同時に作業を継続することが可能となり、作業を効率的に実行することができる。
【0077】
また、ロボット装置の制御においては、ワークの有無に係らず、ある空間を進入禁止領域としたいことがある。このような場合には、進入禁止領域の境界面に沿って、多数の球体を壁状に並べ、これら球体に対する干渉を監視することにより、マニピュレータが進入禁止領域に進入することを防止することができる。
【0078】
また、進入禁止領域の境界面に近似する球面を有する大きな半径の球体を設定するようにすれば、一つの球体の設定により、進入禁止領域の境界面に近似した壁を設定することができる。この一つの球体に対する干渉を監視することにより、マニピュレータが進入禁止領域に進入することを防止することができる。この場合には、多数の球体を設定する場合に比較して、計算量を増やすことなく、進入禁止領域との干渉を監視することができる。
【0079】
さらに、各作業点P1,P2,P3,P4,P5,P6が十分に離れており、かつ、一つの作業点に対して複数のマニピュレータ1,2が交互に作業を行わなければならない場合には、ある作業点に対して作業が行われているという事実のみが判別できればよい。この場合には、各作業点P1,P2,P3,P4,P5,P6について所定の大きさを有する作業領域Z1,Z2,Z3,・・・を設定する必要はなく、各作業点P1,P2,P3,P4,P5,P6のみが判別されればよい。
【0080】
例えば、第1乃至第3の作業点P1,P2,P3が十分に離れていて、第2の作業点P2に対して、各マニピュレータ1,2が交互に作業を行う場合には、一方のマニピュレータ1が第2の作業点P2で作業をしているときには、他方のマニピュレータ2は、第3の作業点P3に対する作業を行うか、または、待機する。この場合には、各作業領域Z1,Z2,Z3,・・・を半径0の球体として設定すればよい。干渉の有無についての計算方法は、前述したものと同様である。
【0081】
図9は、本発明に係るロボット装置の制御方法を示すフローチャートである。
【0082】
このロボット装置の制御方法においては、図9に示すように、事前の処理、設計として、ステップst1でマニピュレータの各リンクについて球体を設定し(リンクの近似)、ステップst2で障害物について球体を設定し(障害物の近似)、ステップst3でワークについて球体を設定し(ワークの近似)、ワークの形状及び大きさに応じた球体の半径及びオフセットも設定しておく。さらに、ステップst4で、セグメントの設定(分類)を行っておく。
【0083】
そして、ロボット装置の動作が開始されると、オンライン制御中の処理に入り、ステップst5で任意の2つのセグメントを選択し、ステップst6で、これらセグメントが接触する可能性があるかを判別する。接触する可能性がなければ、ステップst5に戻り、他の2つのセグメントを選択して、ステップst6に進む。ステップst6で、2つのセグメントが接触する可能性があれば、ステップst7に進み、接触する可能性のある2つのセグメント上に設定された球体から、各1つの球体を選択し、ステップst8に進む。
【0084】
ステップst8では、接触する可能性のある2つのセグメント上に設定された球体の全てについて干渉の有無が判別されたかを判断し、全ての球体について判別されていれば、ステップst5に戻り、全ての球体について判別されていなければ、ステップst9に進む。
【0085】
ステップst9では、選択された2つの球体について、中心間の距離を計算し、ステップst10に進み、球体の中心間距離がこれら球体の半径の合計よりも小さいかどうかを判別する。球体の中心間距離が半径の合計よりも大きければ、ステップst7に戻り、球体の中心間距離が半径の合計よりも小さければ、ステップst11に進む。ステップst11では、ステップst10で選択されていた2つの球体に対応するリンク同士、リンクと障害物、または、ワークと障害物の衝突が生ずることを判別して、マニピュレータの動作を停止させるなどの所定の処理を行う。
【0086】
図10は、本発明に係るロボット装置の制御方法において作業領域を設定する場合のフローチャートである。
【0087】
このロボット装置の制御方法において、作業領域を設定する場合には、図10に示すように、ステップst21で動作を開始すると、ステップst22に進み、各マニピュレータ1,2が単独で各作業点P1,P2,P3,P4,P5,P6に対して作業を行う場合の作業手順を教示し、ステップst23に進む。ステップst23では、作業を行う作業点を選択して、ステップst24に進む。ステップst24では、選択された作業点において他のマニピュレータによる作業が行われているか否かを判別し、他のマニピュレータによる作業が行われていればステップst25に進み、他のマニピュレータによる作業が行われていなければステップst26に進む。ステップst25では、他の作業点を選択して、ステップst24に戻る。
【0088】
ステップst26では、他のマニピュレータが占有している作業領域や進入禁止領域との干渉の有無を判別し、干渉がなければステップst27に進み、干渉があればステップst28に進む。ステップst28では、姿勢を調整することによって干渉を回避できるか否かを判別し、干渉を回避できればステップst29に進み、干渉を回避できなければステップst30に進む。ステップst29では、姿勢を調整して、ステップst27に進む。
【0089】
ステップst30では、作業点を変更することによって干渉を回避できるか否かを判別し、干渉を回避できればステップst31に進み、干渉を回避できなければステップst32に進む。ステップst31では、作業点を変更して、ステップst27に進む。
【0090】
ステップst32では、他のマニピュレータによる作業を終了することを待ち、ステップst26に戻る。
【0091】
ステップst27では、選択された作業点に対して作業領域(占有領域)を設定し、ステップst33に進む。ステップst33では、設定された作業領域内において、作業点に対する作業を実行し、ステップst34に進む。ステップst34では、全ての作業が終了したか否かを判別し、全ての作業が終了していればステップst35に進んで動作を終了し、全ての作業が終了していなければステップst23に戻る。
【図面の簡単な説明】
【0092】
【図1】本発明に係るロボット装置の構成を示す模式的な斜視図である。
【図2】本発明に係るロボット装置においてマニピュレータを構成する各リンクについて設定された外形を包絡する複数の球体を示す側面図である。
【図3】本発明に係るロボット装置におけるマニピュレータの例である6自由度のマニピュレータの構成及び各リンクについて設定された外形を包絡する複数の球体を示す側面図である。
【図4】本発明に係るロボット装置における設定された各球体の中心間の距離の求め方を説明する図である。
【図5】本発明に係るロボット装置におけるマニピュレータの所定のリンクの構成を示す側面図である。
【図6】本発明に係るロボット装置において接触が生じ得ないセグメントを示す側面図である。
【図7】本発明に係るロボット装置の制御方法におけるワークの取り扱いを示す側面図である。
【図8】本発明に係るロボット装置の制御方法におけるマニピュレータと作業領域との位置関係を示す平面図である。
【図9】本発明に係るロボット装置の制御方法を示すフローチャートである。
【図10】本発明に係るロボット装置の制御方法において作業領域を設定する場合のフローチャートである。
【符号の説明】
【0093】
1,2 マニピュレータ
3 関節
4 把持部
5 球体
101 作業台
102 ワーク
P1,P2,P3,P4,P5,P6 作業点
Z1,Z2,Z3 作業領域

【特許請求の範囲】
【請求項1】
複数のリンクにより構成されたマニピュレータを制御するにあたり、
制御対象となるマニピュレータを構成する各リンクについて、外形を包絡する複数の球体を設定し、
前記マニピュレータの周囲の物体について、外形を包絡する複数の球体を設定し、
前記各リンクの動作に応じて、前記各リンク及び前記周囲の物体について設定された各球体の中心間距離の変化を計算し、各球体同士の干渉を検出することによって、前記各リンクが前記周囲の物体に干渉するか否かの判断を行う
ことを特徴とするロボット装置の制御方法。
【請求項2】
複数のリンクにより構成されたマニピュレータを制御するにあたり、
制御対象となるマニピュレータを構成する各リンクについて、外形を包絡する複数の球体を設定し、
他のマニピュレータが作業を行っているときには、当該他のマニピュレータ及び作業対象物を含む作業領域を包絡する球体を設定し、
制御対象となるマニピュレータを構成する各リンクの動作に応じて、これら各リンク及び前記作業領域を包絡する球体の中心間距離の変化を計算し、各球体同士の干渉を検出することによって、前記各リンクが前記作業領域に干渉するか否かの判断を行う
ことを特徴とするロボット装置の制御方法。
【請求項3】
複数のリンクにより構成されたマニピュレータを制御するにあたり、
制御対象となるマニピュレータを構成する各リンクについて、外形を包絡する複数の球体を設定し、
他のマニピュレータが作業を行っているときには、当該他のマニピュレータ及び作業対象物を含む作業領域の中心に半径が0の球体を設定し、
制御対象となるマニピュレータを構成する各リンクの動作に応じて、これら各リンクを包絡する球体及び前記作業領域の中心の球体の中心間距離の変化を計算し、各球体同士の干渉を検出することによって、前記各リンクが前記作業領域に干渉するか否かの判断を行う
ことを特徴とするロボット装置の制御方法。
【請求項4】
複数のリンクにより構成されたマニピュレータを制御するにあたり、
制御対象となるマニピュレータを構成する各リンクについて、外形を包絡する複数の球体を設定し、
前記マニピュレータの進入が禁止される進入禁止領域を包絡する一、または、複数の球体を設定し、
制御対象となるマニピュレータを構成する各リンクの動作に応じて、これら各リンク及び前記進入禁止領域を包絡する球体の中心間距離の変化を計算し、各球体同士の干渉を検出することによって、前記各リンクが前記進入禁止領域に干渉するか否かの判断を行う
ことを特徴とするロボット装置の制御方法。
【請求項5】
複数のリンクにより構成されたマニピュレータと、
前記マニピュレータを制御する制御手段と
を備え、
前記制御手段は、制御対象となるマニピュレータを構成する各リンクを動作させるとともに、前記各リンクについて外形を包絡する複数の球体を設定し、前記マニピュレータの周囲の物体について外形を包絡する複数の球体を設定し、前記各リンク及び前記周囲の物体について設定した各球体の中心間距離の変化を計算し、各球体同士の干渉を検出することによって、前記各リンクが前記周囲の物体に干渉するか否かの判断を行う
ことを特徴とするロボット装置。
【請求項6】
複数のリンクにより構成されたマニピュレータと、
前記マニピュレータを制御する制御手段と
を備え、
前記制御手段は、制御対象となるマニピュレータを構成する各リンクを動作させるとともに、前記各リンクについて外形を包絡する複数の球体を設定し、他のマニピュレータが作業を行っているときには当該他のマニピュレータ及び作業対象物を含む作業領域を包絡する球体を設定し、前記各リンク及び前記作業領域を包絡する球体の中心間距離の変化を計算し、各球体同士の干渉を検出することによって、前記各リンクが前記作業領域に干渉するか否かの判断を行う
ことを特徴とするロボット装置。
【請求項7】
複数のリンクにより構成されたマニピュレータと、
前記マニピュレータを制御する制御手段と
を備え、
前記制御手段は、制御対象となるマニピュレータを構成する各リンクを動作させるとともに、前記各リンクについて外形を包絡する複数の球体を設定し、他のマニピュレータが作業を行っているときには当該他のマニピュレータ及び作業対象物を含む作業領域の中心に半径が0の球体を設定し、前記各リンクを包絡する球体及び前記作業領域の中心の球体の中心間距離の変化を計算し、各球体同士の干渉を検出することによって、前記各リンクが前記作業領域に干渉するか否かの判断を行う
ことを特徴とするロボット装置。
【請求項8】
複数のリンクにより構成されたマニピュレータと、
前記マニピュレータを制御する制御手段と
を備え、
前記制御手段は、制御対象となるマニピュレータを構成する各リンクを動作させるとともに、前記各リンクについて外形を包絡する複数の球体を設定し、前記マニピュレータの進入が禁止される進入禁止領域を包絡する一、または、複数の球体を設定し、前記各リンク及び前記進入禁止領域を包絡する球体の中心間距離の変化を計算し、各球体同士の干渉を検出することによって、前記各リンクが前記進入禁止領域に干渉するか否かの判断を行う
ことを特徴とするロボット装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2009−233757(P2009−233757A)
【公開日】平成21年10月15日(2009.10.15)
【国際特許分類】
【出願番号】特願2008−79117(P2008−79117)
【出願日】平成20年3月25日(2008.3.25)
【出願人】(000000099)株式会社IHI (5,014)
【出願人】(504157024)国立大学法人東北大学 (2,297)
【Fターム(参考)】