(57)【特許請求の範囲】
【請求項１】
ロボットアームの手先位置を制御することで、パレットに配置されている複数のワークの順次取り出しを行う手先位置制御手段と、
前記手先に配置され、対象物までの距離を検出する複数の非接触式距離センサと、
前記手先が、前記パレットのワーク取り出し位置（「動作目標位置」と称す）となった場合に、前記複数の非接触式距離センサによって検出される距離から前記動作目標位置の補正を行う位置補正手段とを備え、
前記手先位置制御手段は、前記パレットの中心に位置するワークから取り出しを開始すると、そこから順次外側に向かって位置するワークの取り出しを行うように制御し、
前記位置補正手段は、
前記パレット上の各動作目標位置において、前記複数の非接触式距離センサによって検出される前記パレットの仕切り壁までの距離，又は取り出し対象であるワークまでの距離,又は取り出し対象であるワークの隣に位置するワークまでの距離の何れか１つを取得すると、その取得した距離について予め与えられている正距離との差分を求め、前記差分値を用いて、前記手先位置制御手段が前記手先を次に移動させる動作目標位置を補正することを特徴とするロボット制御装置。
【請求項２】
ロボットアームの手先位置を制御することで、パレットに対する複数のワークの順次配置を行う手先位置制御手段と、
前記手先に配置され、対象物までの距離を検出する複数の非接触式距離センサと、
前記手先が、前記パレットのワーク配置位置（「動作目標位置」と称す）となった場合に、前記複数の非接触式距離センサによって検出される距離から前記動作目標位置の補正を行う位置補正手段とを備え、
前記手先位置制御手段は、前記パレットの中心に位置するワークから配置を開始すると、そこから順次外側に向かってワークの配置を行うように制御し、
前記位置補正手段は、
前記パレット上の各動作目標位置において、前記複数の非接触式距離センサによって検出される前記パレットの仕切り壁までの距離，又は配置対象であるワークの隣に位置するワークまでの距離を取得すると、その取得した距離について予め与えられている正距離との差分を求め、前記差分値を用いて、前記手先位置制御手段が前記手先を次に移動させる動作目標位置を補正することを特徴とするロボット制御装置。
【請求項３】
ロボットアームの手先位置を制御することで、パレットに配置されている複数のワークの順次取り出しを行う制御方法において、
前記パレットの中心に位置するワークから取り出しを開始すると、そこから順次外側に向かって位置するワークの取り出しを行うように制御し、
前記パレット上の各動作目標位置において、複数の非接触式距離センサによって検出される前記パレットの仕切り壁までの距離，又は取り出し対象であるワークまでの距離,又は取り出し対象であるワークの隣に位置するワークまでの距離の何れか１つを取得すると、その取得した距離について予め与えられている正距離との差分を求め、
前記差分値を用いて、前記手先を次に移動させる動作目標位置を補正することを特徴とするロボットの制御方法。
【請求項４】
ロボットアームの手先位置を制御することで、パレットに対する複数のワークの順次配置を行う制御方法において、
前記パレットの中心に位置するワークから配置を開始すると、そこから順次外側に向かってワークの配置を行うように制御し、
前記パレット上の各動作目標位置において、前記複数の非接触式距離センサによって検出される前記パレットの仕切り壁までの距離，又は配置対象であるワークの隣に位置するワークまでの距離を取得すると、その取得した距離について予め与えられている正距離との差分を求め、前記差分値を用いて、前記手先を次に移動させる動作目標位置を補正することを特徴とするロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットアームの手先位置を制御することで、パレットに配置されている複数のワークの順次取り出し，又はパレットに対する複数のワークの順次配置を行うロボット制御装置及びロボットの制御方法に関する。
【背景技術】
【０００２】
生産現場においては、複数のワークが配置されたパレットをコンベア等により搬送することで工場内の生産ラインに流通させ、ロボットがアームの手先（ハンド）によりパレット内のワークを把持して取り出し、組み付けなどを行うようになっている。また、逆にロボットがパレットに対してワークを順次配置する作業も行われている。このように使用されるパレットは樹脂製であることが多く、長期間使用されると、温度変化の影響や「段積み」等による荷重の影響を受けるなどして歪みや変形が生じる。
著しい変形を来したパレットについては作業者が目視で容易に気付くため、生産ライン等に投入しないように除去される。しかしながら、一見して除去すべきか否かに迷いが生じるように微妙に変形したパレットや、目視で気付かない程度に変形したものについては、除去されず生産ラインに投入される場合がある。
【０００３】
ロボットについては、変形等がない正常な形のパレットを用いて、パレット上の各ワークの配置座標につき事前にティーチングが行われ、精密に位置制御されるようになっている。また、パレットは、複数のワークを収容するため、格子状に間仕切りされているものが多い。そのため、上記のように変形したパレットが生産ラインに投入されると、ロボットがティーチング通りの正常な動作でワークを掴みに行こうとする際に、パレットの仕切り壁の位置が、ティーチング時に使用したパレットとは異なる位置になってる場合があり、アームの手先がパレットの仕切り壁に接触して動作が停止してしまうことがある。
【０００４】
例えば、特許文献１には、商品を搬送するための通い箱について使用回数を情報として持たせ、その使用回数を劣化の進行度とみなし、所定の使用回数に達したものは画一的に廃棄するようにした技術が開示されている。
また、特許文献２には、ロボットのハンドとアームとの間に自由度（柔軟性）を持たせる機構（フローティング状態，非フローティング状態が切り替え可能）を採用し、ハンドが把持しているワークをパレットに積載する際には、ハンドをフローティング状態にして、パレットの変形に起因するワークとの干渉を回避する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−２４０９５４号公報
【特許文献２】特開２００８−２１４０５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の技術をパレット及びロボットに適用することを想定すると、同様に所定の使用回数に達したパレットを廃棄したり、或いは前記使用回数からパレットの変形度合いを予測して、ワークの取得位置を補正することが考えられる。しかしながら、個々のパレットの劣化状態は使用回数だけで画一的に決まることはなく、それぞれが個別に異なるのが通常である。したがって、統計上平均的な変形を来しているパレットについては干渉を回避できるかもしれないが、その他のパレットについては干渉を回避できない可能性が高い。
また、特許文献２のように、ハンドとアームとの間に自由度を持たせる機構を採用しても、その自由度が有効となるのは手先がパレットに接触した後の段階であり、接触した後のリカバリーに寄与するものである。したがって、接触が発生した時点の状況によっては、リカバリーができない場合がある。
【０００７】
本発明は上記事情に鑑みてなされたものであり、その目的は、変形を生じたパレットと手先との干渉をより確実に回避できるロボット制御装置及びロボットの制御方法を提供することにある。
【課題を解決するための手段】
【０００８】
請求項１記載のロボット制御装置によれば、手先位置制御手段は、パレットの中心に位置するワークから取り出しを開始すると、そこから順次外側に向かって位置するワークの取り出しを行うように制御する。また、位置補正手段は、パレット上の各動作目標位置について、複数の非接触式距離センサによって検出されるパレットの仕切り壁までの距離，又は取り出し対象であるワークまでの距離,又は取り出し対象であるワークの隣に位置するワークまでの距離を取得すると、その取得した距離について予め与えられている正距離との差分を求め、その差分値を用いて、手先位置制御手段が手先を次に移動させる動作目標位置を補正する。ここで言う「正距離」とは、変形していない状態のパレットについて、ロボットの手先がそれぞれの動作目標位置に一致している状態で、複数の非接触式距離センサによって測定される対象までの距離を示す。尚、パレットの外形寸法などの既知の情報から正距離を得ることができる場合は、実際に測定を行う必要はない。
【０００９】
すなわち、パレットに変形が生じていれば、予め与えられている正距離と、実際にワークを取り出す際に取得された対応する距離との間に差が生じているはずである。したがって、両者の距離の差分を用いれば動作目標位置を補正することができる。また、パレットに変形が生じている場合、一般に中央部の変形度合は小さく、そこから外側（周辺側）に向かうに従って変形度合は次第に大きくなっている。すなわち、経年変化や使い込みによるダメージ，温度や湿度による部材の変形は、部材の中心から周辺に行けば行くほど、中心より生じている変形が累積することで変形幅が大きくなる。パレットは、一般に底板が一番面積が大きな部材であるから、パレットの中心部よりも周辺の方が、変形度合が大きくなっている。
【００１０】
そして、距離センサによって検出される距離は、アームの手先が動作目標位置に到達した状態で検出されるので、最初から変形度合，つまり誤差が大きい取り出し位置に手先が向かうと、パレットの仕切り壁等と衝突する可能性、いわゆる干渉が生じる可能性が高くなる。したがって、ワークの取り出しをパレットの中心に位置する箇所から開始して、そこから順次外側に向かって取り出しを行うようにすれば、最初から手先とパレットとの間に干渉が生じる可能性を低減できる。また、順次周辺距離の差分を取得して、次回の動作目標位置を僅かな値ずつ補正しつながら、変形度合が大きな外側の取り出し位置に向かうことになるので、総じて手先とパレットとの間に干渉が生じる可能性を低減できる。
【００１１】
請求項２記載のロボット制御装置によれば、請求項１と同様の制御を、パレットに対して複数のワークの順次配置を行う場合について行う。この時、位置補正手段が、パレット上の各動作目標位置において複数の非接触式距離センサによって取得する距離は、パレットの仕切り壁までの距離，又は配置対象であるワークの隣に位置するワークまでの距離となる。したがって、パレットに複数のワークを順次配置する場合についても、請求項１と同様の効果を得ることができる。
【図面の簡単な説明】
【００１２】
【図１】第１実施例であり、ロボットがワークの取り出しを行う場合の位置補正処理を示すフローチャート
【図２】ティーチング処理の内容を示すフローチャート
【図３】ロボット本体の手先を、パレットにおける各動作目標位置に順次移動させる場合の移動順序を示す図
【図４】パレットが変形した場合に、距離センサにより測定される各方向の距離が変化する場合の具体数値例を示す図
【図５】図４の中心部を拡大して示す図
【図６】パレットの配列が４×４の場合の図２相当図
【図７】パレットの配列が５×７の場合の図２相当図
【図８】ロボット本体がパレットに配置されているワークをピックアップして、ベルトコンベア装置に配置する状態を示す斜視図
【図９】ハンドに距離センサが取り付けられている状態を拡大して示す分解斜視図
【図１０】ロボットの制御系を示す機能ブロック図
【図１１】（ａ）はパレットの形状が変形する前の状態、（ｂ）変形した後の状態を示す斜視図
【図１２】（ａ），（ｂ）は図１１に示すパレットの横断面図、（ｃ）はパレットの配置領域の１つを示す平面図
【図１３】第２実施例であり、距離センサによる距離測定のバリエーションを示す図
【発明を実施するための形態】
【００１３】
（第１実施例）
以下、第１実施例について図１ないし図１２を参照して説明する。図８は、ロボット本体１が、パレット２に配置されているワーク３をピックアップして、ベルトコンベア装置４に配置する状態を示す斜視図である。４軸のアームを有するロボット本体１は、ハンド５をパレット２に降下させると、ハンド５でワーク３を把持して引き上げる。そして、アームを旋回させて先端をベルトコンベア装置４の上方に位置させた後下降させると、ハンド５からワーク３を離してベルトコンベア装置４上の搬送用パレット６に配置する。
【００１４】
また、ロボット本体１のアーム先端には、光学式（非接触式）の距離センサ７が配置されている。図９は、ハンド５に距離センサ７が取り付けられている状態を拡大して示す分解斜視図である。ハンド５とアーム先端との間には、４つの距離センサ７Ａ〜７Ｄを取り付けるため、十字状をなし、各先端部が下方に折り曲げられた形状の取付部材８が配置される。取付部材８の先端部が下方に折り曲げられて垂直となる四方の各側面には、４つの距離センサ７Ａ〜７Ｄが外側に向けて配置されている。
取付部材８の十字が交差する部分には、ねじ止め用の穴８ａが形成されており、上方から固定部材９を介してねじ止めにより固定される。そして、ハンド５は、固定部材９を介してアームの先端に取り付けられる。距離センサ７Ａ〜７Ｄは、ハンド５側から周辺側に光信号を照射し、その反射光を受光するまでの到達時間によって距離を検出する。
【００１５】
図１０は、ロボットの制御系を示す機能ブロック図である。ロボット１０は、ロボット本体１と、そのロボット本体１の各軸に配置されている図示しないサーボモータを駆動制御するコントローラ（手先位置制御手段，位置補正手段）１１とを中心として、その他の周辺機器とで構成されている。ロータリエンコーダ１２は、ロボット本体１の上記各軸モータに配置され、それらのモータの回転位置を検出してコントローラ１１に出力する。また、上述した距離センサ７Ａ〜７Ｄの検出信号が、コントローラ１１に出力されている。コントローラ１１は、予めティーチングされた動作目標位置に従い、ロータリエンコーダ１２並びに距離センサ７Ａ〜７Ｄの検出信号を参照して、ロボット本体１の手先位置（ハンド５の位置）を制御する。
【００１６】
ここで、図１１は、パレット２の形状が経時変化等により変形した状態を示す。パレット２の内部は、仕切り壁Ｗによって３×５の空間に仕切り分けられており、これら１５の空間にワーク３がそれぞれ配置される。図１１（ａ）は、変形を来していない状態のパレット２の形状であり、この場合の縦方向の各間仕切り距離をＭ１〜Ｍ３（これらのトータルをＭ）とし、横方向の各間仕切り距離をＮ１〜Ｎ５（これらのトータルをＮ）とする。
【００１７】
一方、図１１（ｂ）は、周辺側が上方にそりかえるように変形を来した状態のパレット２の形状である。この場合の縦方向の各間仕切り距離をＭ１’〜Ｍ３’ （これらのトータルをＭ’）とし、横方向の各間仕切り距離をＮ１’〜Ｎ５ ’ （これらのトータルをＮ’）とする。すると、変形後の各距離Ｍ１’〜Ｍ３’（トータルＭ’），Ｎ１’〜Ｎ５ ’（トータルＮ’）は何れも、変形前の各距離Ｍ１〜Ｍ３（トータルＭ），Ｎ１〜Ｎ５（トータルＮ）よりも短くなっている。
【００１８】
本実施例では、図１１（ｂ）に示すように変形したパレット２に配置されているワーク３を順次取り出すため、距離センサ７により検出された距離に基づいてロボット本体１の動作目標位置の補正を行う。図１２は、図１１に示すパレット２の横断面である。各配置位置Ｐは（横方向一列分のＰａ〜Ｐｅのみ示す）、仕切り壁Ｗによって正方形状の領域に間仕切りされている（図１２（ｃ）参照）。その正方形状の領域の中心（上記動作目標位置となる）には、例えば直方体状のワーク３を配置するため、その外形に合わせて正方形をなす配置凹部１３が形成されている。
【００１９】
そして、図１２では、各各配置位置Ｐａ〜Ｐｅに、アーム先端のハンド５が距離センサ７と共に位置して、ワーク３を把持する直前の状態を示している。図１２（ａ）に示す変形していない状態のパレット２では、距離センサ７により検出される四方の仕切り壁Ｗまでの距離は等しい（正距離）。それが、図１２（ｂ）に示す変形した状態のパレット２では、距離センサ７により検出される四方の仕切り壁Ｗまでの距離は、中心から周辺に行くほど縮まるようになる。本実施例では、この距離の変化を求めることで動作目標位置の補正を行う。
【００２０】
次に、本実施例の作用について図１ないし図７を参照して説明する。図２は、ロボット１０に、パレット２上の各動作目標位置をティーチングする場合の処理内容を示すフローチャートである。尚、ここでのパレット２は、図３又は図４に示すように５×５＝２５の配置領域に間仕切りされているとする。また、パレット２については、勿論変形していないものを用いる。先ず、変数ｎを「１」に設定すると（ステップＴ１）、ロボット１０の手先を動作目標位置Ｐｎに移動させて、その３次元座標位置を記憶させる（ステップＴ２）。
【００２１】
またこの時、手先が動作目標位置Ｐｎに位置した状態で、距離センサ７Ａ〜７Ｄにより、四方を囲んでいる仕切り壁Ｗまでの距離Ａnt，Ｂnt，Ｃnt，Ｄntを測定する（ステップＴ３）。この状態で検出された距離Ａnt，Ｂnt，Ｃnt，Ｄntが正距離となる。なお、動作目標位置がパレット２の最外周部となる場合は、パレット２の側壁が仕切り壁Ｗに相当する。そして、変数ｎが「２５」に達していなければ（ステップＴ４：ＮＯ）、変数ｎをインクリメントしてから（ステップＴ５）ステップＴ１に戻り、上記の処理を繰り返し実行する。
【００２２】
図３は、ロボット本体１の手先を、パレット２における２５の動作目標位置に順次移動させる場合の移動順序を示している。一般に、このようなパレットについてロボットの手先を順次移動させる場合には、例えば図中の左上隅（図を見た方向で定義される左右）からスタートして、縦方向又は横方向に一列ずつ移動させて右下隅に至る、というのが通常の移動順序である。本実施例では、パレット２が図１１（ｂ）に示すように変形している場合でも、その変形を考慮して動作目標位置を補正しつつ、パレット２に配置されている各ワーク３を取り出すために、独特な移動順序を採用している。尚、図３に示しているように、左，右，下，上の各方向をＡ，Ｂ，Ｃ，Ｄ方向としている。
【００２３】
すなわち、最初はロボット本体１の手先を、パレット２の中心である動作目標位置Ｐ１に移動させると（（ａ）参照）、そこからＡ方向へ移動させ（Ｐ２）、又そこからＢ方向へ移動させる（Ｐ３）。次は位置Ｐ３からＡＣ方向へ移動させると（Ｐ４）、そこからＤ方向へ移動させる（Ｐ５，（ｂ）参照）。次は（ｃ）に示すように、ＡＣ方向（Ｐ６），ＢＤ方向（Ｐ７），Ａ方向（Ｐ８），ＢＣ方向（Ｐ９）に移動させ、以下、（ｄ）〜（ｆ）に示すように、順次パレット２の周辺側に向かうように移動させる。
【００２４】
これは、次の理由による。図１１（ｂ）や図１２（ｂ）に示したように、パレット２が変形した場合には、中央部の変形度合は比較的小さく、そこから外周側に向かうに従い変形度合は大きくなる。そして、動作目標位置を補正するには、取り敢えず手先を何れかの動作目標位置に移動させて、距離センサ７により距離を計測する必要がある。その際に、最初から変形度合が大きい箇所に手先を位置させようとすると、補正を行う以前にパレット２との干渉が生じる可能性が高くなり、それ以降に補正ができなくなってしまう。
【００２５】
そこで、ロボット１０の手先を最初に移動させる位置を、変形度合が小さいパレット２の中央部にすれば、その位置については補正を加えずとも、手先が仕切り壁Ｗに接触する様な干渉が生じる可能性は極めて低くなる。また、そのような干渉を回避するには、次の動作目標位置を補正するための補正量が、極力小さな値となる状態が望ましい。
したがって、パレット２の中央部からワーク３の取り出しを開始して順次外周側に向かうようにすれば、補正量が少ない状態で補正を加えつつ補正量が次第に大きくなる方向に向かうことになり、補正を段階的に確実に行いながら作業を進めることができる。また、補正は、３次元座標における水平面内であるｘ，ｙ軸方向について行い（座標原点は左下隅方向にあるとする）、影響が殆んどないｚ軸方向（垂直軸方向）については補正しない。
【００２６】
図１は、ティーチング処理の終了後に、ロボット１０がワーク３の取り出しを行う場合の位置補正処理を示すフローチャートである。尚、このフローチャートでは、ワーク３の取り出しや、取り出し後の移動に関する処理については省略している。先ず、ステップＴ１と同様に変数ｎを「１」に設定すると（ステップＳ１）、ロボット本体１の手先であるハンド５を、パレット２の中心である位置Ｐ１に移動させ（ステップＳ２）、距離センサ７Ａ〜７Ｄにより検出される距離Ａｎ〜Ｄｎを取得する（ステップＳ３）。
【００２７】
そして、ステップＳ３で取得した距離と、ティーチング時に得た正距離Ａnt〜Ｄntとの差分を、それぞれＡnd〜Ｄndとして計算すると（ステップＳ４）、それらを２倍することで各方向の補正値Ａnc〜Ｄncを計算する（ステップＳ５）。すなわち、現在の動作目標位置で得られた検出距離と正距離との差は、その距離の方向に隣接する動作目標位置の座標値には２倍で影響するからである。
【００２８】
続いて、ハンド５を次の動作目標位置に移動させるため変数ｎをインクリメントすると（ステップＳ６）、その変数ｎが「２６」に達していなければ（ステップＳ７：ＮＯ）ステップＳ８へ進む。変数ｎが「２６」に達した場合は（ステップＳ７：ＹＥＳ）処理を終了する。ステップＳ８では、最初の動作目標位置Ｐ１を基準として、次に移動する動作目標位置Ｐｎへの移動方向を判定する。ここで、図３に示す移動順序の場合、想定される移動方向は、一方向についてはＡ，Ｂ，Ｄ，２方向についてはＡＣ，ＡＤ，ＢＣ，ＢＤの計６種類となる。
【００２９】
続くステップＳ９〜Ｓ１３の処理は、ステップＳ８で判定した移動方向に応じて行うものとなる。すなわち、移動方向に応じて次の動作目標位置Ｐｎの位置座標をステップＳ５で計算した補正値を用いて補正すると（ステップＳ９）、手先を次の動作目標位置Ｐｎに移動させ（ステップＳ１０）、移動先では、移動した方向について距離センサ７により検出される距離を取得する（ステップＳ１１）。そして、ステップＳ１１で取得した距離と、ティーチング時に得た距離との差分を計算し（ステップＳ１２）、それらを２倍することで移動方向の補正値を計算する（ステップＳ１３）。それから、ステップＳ６に戻る。尚、ステップＳ５，Ｓ１３で得られた補正値は後ほど参照されるので、データテーブルとして記憶しておくようにする。
【００３０】
以上のステップＳ９〜Ｓ１３の処理を、具体的な移動方向について説明する。
＜動作目標位置Ｐ１から動作目標位置Ｐ２に移行する場合＞
この時、移動方向はＡ方向であるから、ステップＳ９では、ステップＳ５で計算した補正値Ａ1cを、位置Ｐ２のｘ座標値に加算して補正する。そして、補正した座標値の位置Ｐ２に移動すると（ステップＳ１０）、距離センサ７ＡによってＡ方向の仕切り壁Ｗまでの距離Ａ２を測定する（ステップＳ１１）。それから、ティーチング時に得た正距離Ａ2tとの差分値Ａ2d（＝Ａ2t−Ａ２）を計算すると（ステップＳ１２）、差分値Ａ2dを２倍してＡ方向補正値Ａ2cを得る（ステップＳ１３）。
【００３１】
＜動作目標位置Ｐ５から動作目標位置Ｐ６に移行する場合＞
この時、移動方向はＡ，Ｃ方向であるから、ステップＳ９では、ステップＳ５で計算した補正値Ａ1cを位置Ｐ６のｘ座標値に加算すると共に、補正値Ｃ1cを、位置Ｐ６のｙ座標値より減算して補正する。そして、補正した座標値の位置Ｐ６に移動すると（ステップＳ１０）、距離センサ７Ａ，７ＣによってＡ方向，Ｃ方向の仕切り壁Ｗまでの距離Ａ６，Ｃ６を測定する（ステップＳ１１）。それから、ティーチング時に得た正距離Ａ6t，Ｃ6tとの差分値Ａ6d（＝Ａ6t−Ａ６），Ｃ6d（＝Ｃ6t−Ｃ６）を計算すると（ステップＳ１２）、差分値Ａ6d，Ｃ6dを２倍してＡ方向補正値Ａ6c，Ｃ方向補正値Ｃ6cを得る（ステップＳ１３）。
【００３２】
＜動作目標位置Ｐ２１から動作目標位置Ｐ２２に移行する場合＞
この時、最初の位置Ｐ１を基準とした移動方向は，位置Ｐ６と同様にＡ，Ｃ方向である。すなわちＰ１→Ｐ６→Ｐ２２となっている。したがって、ステップＳ９では、ステップＳ５で計算した補正値Ａ1c，Ｃ1cと、上記位置Ｐ６についてステップＳ１３で得られた補正値Ａ6c，Ｃ6cとを用いて補正する。つまり、位置Ｐ２２のｘ座標値に補正値（Ａ1c＋Ａ6c）を加算し、位置Ｐ２２のｙ座標値より補正値（Ｃ1c＋Ｃ6c）を減算して補正する。そして、補正した座標値の位置Ｐ２２に移動する（ステップＳ１０）。
尚、ハンド５がパレット２の四隅に対応する位置Ｐ２２〜Ｐ２５に至った場合には、以降のステップＳ１１〜Ｓ１３を実行しても得られた補正値を使用する機会がない。したがって、これらの処理をスキップしてステップＳ６に移行すれば良い。
【００３３】
＜動作目標位置Ｐ１７から動作目標位置Ｐ１８に移行する場合＞
この場合も、最初の位置Ｐ１を基準とした移動方向は，位置Ｐ２２と同様にＡ，Ｃ方向であり、Ｐ１→Ｐ６→Ｐ１８と見ることができる。したがって、ステップＳ９では、ステップＳ５で計算した補正値Ａ1c，Ｃ1cと、上記位置Ｐ６についてステップＳ１３で得られた補正値Ｃ6c（ｙ座標側のみ）とを用いて補正する。つまり、位置Ｐ１８のｘ座標値に補正値Ａ1cを加算し、位置Ｐ１８のｙ座標値より補正値（Ｃ1c＋Ｃ6c）を減算して補正する。そして、補正した座標値の位置Ｐ１８に移動する（ステップＳ１０）。
【００３４】
尚、ハンド５がパレット２の再外周となる（四隅を除く）位置Ｐ１２，Ｐ１８，Ｐ２１に至った場合には、以降は、ｙ座標について補正を行う機会がない。したがって、ステップＳ１１〜Ｓ１３を実行する場合は、Ａ，Ｂ方向だけについて補正値を得れば良い。それらの対辺側にある位置Ｐ１３，Ｐ１９，Ｐ２０についても同様である。また、ハンド５が位置Ｐ１０，Ｐ１４，Ｐ１６，及びそれらの対辺側にある位置Ｐ１１，Ｐ１５，Ｐ１７に至った場合には、以降は、ｘ座標について補正を行う機会がない。したがって、ステップＳ１１〜Ｓ１３を実行する場合は、Ｃ，Ｄ方向だけについて補正値を得れば良い。
【００３５】
図４は、パレット２が変形した場合に、距離センサ７Ａ〜７Ｄにより測定される各方向の距離が変化する場合の具体数値例であり、図５は、図４の中央部を拡大して示したものである。図中に破線で示す位置は、ティーチングされた動作目標位置Ｐ１〜Ｐ２５であり、実線で示す位置が、パレット２が変形したことで変位した動作目標位置Ｐ１〜Ｐ２５である。パレット２の中心から周辺に向かうにつれて、動作目標位置の誤差量が次第に大きくなっている。
例えば動作目標位置Ｐ１については、ティーチング時に得られた正距離Ａ1t〜Ｄ1tは何れも２０ｍｍであるが、ワーク３の取り出し処理で測定された各方向距離Ａ１〜Ｄ１は、何れも１７．５ｍｍである。したがって、ステップＳ４で計算される各距離の差分Ａ1t〜Ｄ1tは何れも２．５ｍｍであり、それらを２倍して得られる各方向の補正値Ａ1c〜Ｄ1cは何れも５．０ｍｍとなる。
【００３６】
そして、動作目標位置Ｐ２について補正されるｘ座標値は（＋５．０ｍｍ）となる。また、動作目標位置Ｐ６について補正されるｘ座標値は（＋５．０ｍｍ），ｙ座標値は（＋５．０ｍｍ）となる。また、動作目標位置Ｐ２のＡ方向について得られた距離の差分Ａ2dは２．５ｍｍとなっている。したがって、そのＡ方向に隣接する動作目標位置Ｐ１０については、補正されるｘ座標値は（Ａ1c＋Ａ2c）＝（５．０＋５．０）ｍｍ＝１０．０ｍｍとなる。また、動作目標位置Ｐ３について補正されるｘ座標値は（−５．０ｍｍ）となり、動作目標位置Ｐ５について補正されるｙ座標値は（−５．０ｍｍ）となる。
【００３７】
ここで、図６はパレットの配列が４×４＝１６の場合について、動作目標位置の移動順序を示したものである。この時は、例えば中心より左下に位置するＰ１からスタートして右上方向のＰ２，そこから左方向のＰ３，そこから右下方向のＰ４に移動させる（（ａ）参照）。次の位置Ｐ５は位置Ｐ１の左隣，位置Ｐ６は位置Ｐ２の右隣，位置Ｐ７は位置Ｐ５の上隣，位置Ｐ８は位置Ｐ６の下隣とする（（ｂ）参照）。そして、最終的には、（ｃ）に示すように、左下，右上，左上，右下の各隅を位置Ｐ１３，Ｐ１４，Ｐ１５，Ｐ１６として移動させて終了する。
【００３８】
また、図７はパレットの配列が５×７＝３５の場合について、動作目標位置の移動順序を示したものである。この時は、中心に位置するＰ１からスタートして、図７（ａ）〜（ｄ）については図３（ａ）〜（ｃ）と同様の順序とする。そこから、次の位置Ｐ１０は位置Ｐ２の左隣，位置Ｐ１１は位置Ｐ３の右隣（（ｅ）参照），位置Ｐ１２は位置Ｐ１０の下隣，位置Ｐ１３は位置Ｐ１１の上隣とする（（ｆ）参照）。そして、最終的には、（ｅ）に示すように、左下，右上，左上，右下の各隅を位置Ｐ３２，Ｐ３３，Ｐ３４，Ｐ３５として移動させて終了する。
【００３９】
以上のように本実施例によれば、ロボット１０のコントローラ１１は、パレット２の中心に位置するワーク３から取り出しを開始すると、そこから順次外側に向かって位置するワーク３の取り出しを行う。また、パレット２上の各動作目標位置Ｐ１〜Ｐ２５について、距離センサ７Ａ〜７Ｄによって検出されるパレット２の仕切り壁Ｗまでの距離を取得すると、その取得した距離について予め与えられている正距離との差分を求め、その差分値を用いて手先を次に移動させる動作目標位置を補正するようにした。
したがって、パレット２に変形が生じている場合でも、最初からロボット本体１のアームの手先であるハンド５とパレット２との間に干渉が生じる可能性を低減できる。また、順次周辺距離の差分を取得して次回の動作目標位置を僅かな値ずつ補正しつながら、変形度合が大きな外側の取り出し位置に向かうので、総じてハンド５とパレット２との間に干渉が生じる可能性を低減できる。
【００４０】
（第２実施例）
図１３は本発明の第２実施例であり、第１実施例と同一部分には同一符号を付して説明を省略し、以下異なる部分について説明する。第２実施例は、距離センサ７Ａ〜７Ｄによって検出する距離のバリエーションを示す。図１３（ａ）は、第１実施例と同様にワーク３の取り出しを行う場合、ワーク３をハンド５で把持する前に、距離センサ７Ａ〜７Ｄによってワーク３の各面までの距離を検出する状態を示す。すなわち、ワーク３の外形寸法は既知であるから、その寸法分を差し引くことで配置凹部１３の中心座標，すなわち動作目標位置のずれを得ることが可能である。
【００４１】
また、図１３（ｂ）は、ワーク３をパレット２に配置する場合に適用可能であり、距離センサ７Ａ〜７Ｄによって、ワーク３が配置される配置凹部１３の側壁１３Ｗまでの距離を測定しても良い。この場合、ハンド５が動作目標位置に一致していれば、各距離センサ７Ａ〜７Ｄによって測定される側壁１３Ｗまでの距離は、Ａ方向とＢ方向とが等しく、Ｃ方向とＤ方向とが等しくなるはずである。したがって、それらの間に生じる差によって動作目標位置のずれを得ることが可能である。
また、配置凹部１３は存在するが、仕切り壁Ｗが存在しないタイプのパレットの場合は、ワーク３を今回配置しようとしている動作目標位置に、隣接した動作目標位置について、配置凹部１３の側壁１３Ｗ（仕切り壁に対応する）までの距離を測定しても良い。
【００４２】
本発明は上記し又は図面に記載した実施例にのみ限定されるものではなく、以下のような変形又は拡張が可能である。
第１実施例を、パレット２にワーク３を配置する場合に適用しても良い。
パレットの変形度合が、Ａ方向とＢ方向，Ｃ方向とＤ方向についてほぼ対称となる場合、距離センサ７は、例えばＡ方向とＣ方向の距離だけを検出するように配置しても良い。
また、パレットの変形度合が、中心から各四隅に向かって対称になっていると推定して問題がない場合は、中心を経て対称な動作目標位置における補正値を流用しても良い。
コントローラ１１が得た各パレット２の補正値データを、例えばネットワーク上のサーバに記憶させてデータベース化し、他のロボット１０のコントローラ１１がそれらのパレット２を使用する場合に、上記データベースにアクセスして補正値データを得て利用しても良い。
【００４３】
また、パレット２にＲＦＩＤタグ等のデータ担体を持たせて、上記の補正データをデータ担体に記憶させ、他のロボット１０のコントローラ１１がそれらのパレット２を使用する場合に、記憶させたデータを読み出して利用しても良い。
さらに、これらのように補正データを共有して使用する場合、パレット２の変形度合が記憶されている補正データと一致しなくなる場合も生じるので、所定期間毎に本実施例の処理を実行して補正データを更新しても良い。
正距離については、必ずしもティーチングを行う際に距離センサ７により測定する必要はなく、コントローラ１１に予めデータとして与えておいても良い。
パレットの中央部が上に凸となる状態に変形した場合に適用しても良い。
距離センサは、光学式に限ることなく、非接触式で距離を測定できるものであれば良く、例えば電波を用いる方式でも良い。
【符号の説明】
【００４４】
図面中、１はロボット本体、２はパレット、３はワーク、５はハンド、７は距離センサ、１０はロボット、１１はコントローラ（制御装置，手先位置制御手段，位置補正手段）を示す。
【図１】
0005428833.tif 000002
【図２】
0005428833.tif 000003
【図３】
0005428833.tif 000004
【図４】
0005428833.tif 000005
【図５】
0005428833.tif 000006
【図６】
0005428833.tif 000007
【図７】
0005428833.tif 000008
【図８】
0005428833.tif 000009
【図９】
0005428833.tif 000010
【図１０】
0005428833.tif 000011
【図１１】
0005428833.tif 000012
【図１２】
0005428833.tif 000013
【図１３】
0005428833.tif 000014