IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電産サンキョー株式会社の特許一覧

<>
  • 特開-ロボットの制御方法及び制御装置 図1
  • 特開-ロボットの制御方法及び制御装置 図2
  • 特開-ロボットの制御方法及び制御装置 図3
  • 特開-ロボットの制御方法及び制御装置 図4
  • 特開-ロボットの制御方法及び制御装置 図5
  • 特開-ロボットの制御方法及び制御装置 図6
  • 特開-ロボットの制御方法及び制御装置 図7
  • 特開-ロボットの制御方法及び制御装置 図8
  • 特開-ロボットの制御方法及び制御装置 図9
  • 特開-ロボットの制御方法及び制御装置 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024042320
(43)【公開日】2024-03-28
(54)【発明の名称】ロボットの制御方法及び制御装置
(51)【国際特許分類】
   B25J 9/10 20060101AFI20240321BHJP
   B25J 9/06 20060101ALI20240321BHJP
   H01L 21/677 20060101ALI20240321BHJP
【FI】
B25J9/10 A
B25J9/06 D
H01L21/68 A
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022146956
(22)【出願日】2022-09-15
(71)【出願人】
【識別番号】000002233
【氏名又は名称】ニデックインスツルメンツ株式会社
(74)【代理人】
【識別番号】100123788
【弁理士】
【氏名又は名称】宮崎 昭夫
(74)【代理人】
【識別番号】100127454
【弁理士】
【氏名又は名称】緒方 雅昭
(72)【発明者】
【氏名】奥村 宏克
(72)【発明者】
【氏名】白木 隆裕
【テーマコード(参考)】
3C707
5F131
【Fターム(参考)】
3C707AS24
3C707BS15
3C707CV07
3C707CW07
3C707LT01
3C707LU05
3C707LW08
3C707NS13
5F131AA02
5F131AA03
5F131BA03
5F131BA04
5F131BA17
5F131BA23
5F131BA37
5F131CA37
5F131CA42
5F131CA49
5F131DA02
5F131DA22
5F131DA42
5F131DB02
5F131DB52
5F131DD03
5F131DD33
5F131DD52
5F131DD56
5F131DD57
5F131DD59
5F131DD62
(57)【要約】
【課題】冗長な自由度を有する水平多関節型のロボットを制御するときに、少ない演算量で、指定された目標位置に対してロボットを短時間で移動させる。
【解決手段】第1アーム11が基台10に対してジョイント点J0で接続し、第2アーム12が第1アーム11に対してジョイント点J1で接続し、第3アーム13が第2アーム12に対してジョイント点J2で接続し、ハンド14が第3アーム13に対してジョイント点J3で接続するとして、ジョイント点J3の目標位置を指定してロボット1を移動させるときに、ジョイント点J0を通る仮想走行軸Pの上にジョイント点J2が存在すると設定し、基準方向(X軸)と仮想走行軸Pとがなす角を仮想走行軸角TWとして、仮想走行軸角TWと目標位置とを用いて各軸のモータ21~24を駆動する。
【選択図】図8
【特許請求の範囲】
【請求項1】
複数のステージの間でワークを搬送する水平多関節型のロボットを制御する制御方法であって、
前記ロボットは、基台と、前記基台に回転可能に接続する第1アームと、前記第1アームに回転自在に接続する第2アームと、前記第2アームに回転自在に接続する第3アームと、前記第3アームに回転自在に接続してワークを保持するハンド部と、を備え、
前記第1アームが前記基台に接続する位置を原点とし、前記第2アームが前記第1アームに接続する位置を第1ジョイント点とし、前記第3アームが前記第2アームに接続する位置を第2ジョイント点とし、前記ハンドが前記第3アームに接続する位置を第3ジョイント点として、
前記第3ジョイント点の目標位置を指定して前記ロボットを移動させるときに、水平面内において前記原点を通る仮想走行軸の上に前記第2ジョイント点が存在すると設定し、前記原点を通って水平に延びる基準方向と前記仮想走行軸とがなす角を仮想走行軸角として、前記仮想走行軸角と前記目標位置とを用いて各軸のモータを駆動して前記ロボットを実際に移動させる駆動工程を有する、制御方法。
【請求項2】
前記駆動工程を実施する前に、前記目標位置に対応した最適な前記仮想走行軸角を算出する最適値算出工程を実施する、請求項1に記載の制御方法。
【請求項3】
前記駆動工程においてポイント・ツー・ポイント動作により前記ロボットを動作させ、
前記最適値算出工程は、前記ロボットをポイント・ツー・ポイント動作によって動作させたときに前記目標位置に到達するまでの到達時間を前記仮想走行軸角を変えながら算出し、前記到達時間が最小となる前記仮想走行軸角に基づいて前記最適な仮想走行軸角を求める工程である、請求項2に記載の制御方法。
【請求項4】
前記駆動工程において直線補間動作により前記ロボットを動作させ、
前記最適値算出工程は、前記ロボットを直線補間動作により動作させて前記目標位置に到達させるときの最高速度を前記仮想走行軸角を変えながら算出し、前記最高速度が最大となる前記仮想走行軸角に基づいて前記最適な仮想走行軸角を求める工程である、請求項2に記載の制御方法。
【請求項5】
前記基準方向は、前記複数のカセットが並ぶ方向と平行に定められる、請求項1乃至4のいずれか1項に記載の制御方法。
【請求項6】
前記第1アームの有効長と前記第2アームの有効長が等しい、請求項1乃至4のいずれか1項に記載の制御方法。
【請求項7】
前記第1アーム、前記第2アーム、前記第3アーム及び前記ハンドが折り畳まれ、かつ、水平面内において前記原点を通り前記基準方向に直交する直線上に前記第1ジョイント点、前記第2ジョイント点及び前記第3ジョイント点が位置する姿勢を原点位置として、前記原点位置を初期位置として前記ロボットを順次移動させる、請求項1乃至4のいずれか1項に記載の制御方法。
【請求項8】
基台と、前記基台に回転可能に接続する第1アームと、前記第1アームに回転自在に接続する第2アームと、前記第2アームに回転自在に接続する第3アームと、前記第3アームに回転自在に接続してワークを保持するハンド部と、を備え、複数のカセットの間で前記ワークを搬送する水平多関節型のロボットを制御する制御装置であって、
前記第1アームが前記基台に接続する位置を原点とし、前記第2アームが前記第1アームに接続する位置を第1ジョイント点とし、前記第3アームが前記第2アームに接続する位置を第2ジョイント点とし、前記ハンドが前記第3アームに接続する位置を第3ジョイント点として、
前記第3ジョイント点の目標位置を指定して前記ロボットを移動させるときに、水平面内において前記原点を通る仮想走行軸の上に前記第2ジョイント点が存在すると設定し、前記原点を通って水平に延びる基準方向と前記仮想走行軸とがなす角を仮想走行軸角として、前記仮想走行軸角と前記目標位置とを用いて各軸のモータを駆動して前記ロボットを実際に移動させる制御装置。
【請求項9】
前記ロボットをポイント・ツー・ポイント動作によって動作させたときに前記目標位置に到達するまでの到達時間を前記仮想走行軸角を変えながら算出し、前記到達時間が最小となる前記仮想走行軸角を求める関数が実装されている、請求項8に記載の制御装置。
【請求項10】
前記仮想走行軸角が与えられたときに前記ロボットを直線補間動作により動作させて前記目標位置に到達させるときの最高速度を算出する関数が実装されている、請求項8に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ワークの搬送などに用いられる水平多関節型のロボットの制御方法及び制御装置に関する。
【背景技術】
【0002】
ワークを格納するカセットやワークに対して処理を行うワーク処理装置との間で半導体ウエハなどのワークを搬送するために、搬送用のロボットが使用される。以下の説明において、ロボットによるワークの取り出し(すなわちロード)と荷降ろし(すなわちアンロード)の対象となるものをステージと総称する。半導体製造工程においてウエハの格納に用いられるカセットやウエハに対して何らかの処理を行うワーク処理装置は、それぞれステージである。半導体製造工程では、壁面によって画定された作業領域に搬送用のロボットを配置するとともに作業領域を囲む壁面に複数のステージを配置し、ロボットによりワークである半導体ウエハをステージ間で搬送する。搬送用のロボットは、複数のステージに対してワークをロード/アンロードできることが求められる。そのために、ロボットとして、複数のアームを互いに回転可能に連結するとともに、モータなどの回転力をアームに伝達して伸縮等の動作をさせるようにした水平多関節型のロボットが用いられる。最先端のアームには、搬送時に実際にワークが搭載されるハンドが回転可能に取付けられる。
【0003】
特許文献1は、細長い長方形状の作業領域においてワークの搬送に用いられる水平多関節型のロボットの一例を示している。特許文献1に示されるロボットは、ワークを保持するハンドと、ハンドを回転可能に保持するアーム部と、アームの基端側におけるアーム関節部を回転可能に保持するとともにアーム関節部の移動軌跡が作業領域の長手方向とほぼ平行になるようにするリンク機構と、を備えている。リンク機構は、ロボットの基台に回転可能に保持された基台側リンクと、アーム側に位置するアーム側リンクとがリンク関節部によって連結された構造を有している。このロボットは、ワークのロード/アンロードを行うときには、作業領域内においてワークのロード/アンロードの対象となるステージに正対する位置にハンドを位置付けた上で、ステージの内部にハンドが真っ直ぐに進入するように制御される。
【0004】
特許文献1に記載されるロボットでは、ステージごとにワークの定位置が定められているとして、ワークのロードやアンロードのためにハンドがステージ内に入り込み、ハンドにおけるワークの搭載位置がそのステージでのワークの定位置に一致している状態を、ロボットがステージ位置にある、ということができる。また、作業領域内においてハンドがステージにアクセスするためにそのステージに正対する姿勢をとる位置をそのステージの待機位置と呼ぶこととする。ステージ位置ではハンドはステージ内にあるがアームはステージ外に位置する。待機位置では、ハンドやハンドに搭載されているワークはステージ外に位置する。このようにステージ位置と待機位置とを定めたとき、特許文献1に記載されたロボットでは、第1のステージの待機位置から第2のステージの待機位置までの区間ではロボットをPTP(ポイント・ツー・ポイント)動作によって移動させることができる。PTP動作とは、ロボットのツールやハンドの先端の始点位置と終点位置とのみを指定してロボットを移動させる動作であり、ロボットの各軸を一斉に駆動させることで目標の座標に到達させる。この場合、ロボットの各軸のモータをその仕様上の最高速度で動作させることができるので、目標の座標まで短時間で到達することが可能であるが、ロボットの経路が具体的にどこを通るかは指定されない。多軸のロボットであれば、各軸のモータはその軸に割り当てられた移動量だけ回転する。また、ステージごとにその待機位置とステージ位置との間では、ロボットは、ハンドが直線に沿って動くことが保証される直線補間動作によって移動する。この場合、待機位置とステージ位置との間の適切な動作切替点を設定すれば、ハンドやワークがステージの側壁などと干渉することなく待機位置と動作切替点との間もPTP動作でロボットを移動させることができ、直線補間動作によりロボットを移動させる区間を動作切替点とステージ位置との間に限定することが可能である。
【0005】
特許文献1に記載されたロボットでは、通常、ハンドの延びる方向は、リンク機構によるアーム関節部の移動軌跡と直交する方向とされるので、高さ方向(昇降方向)への自由度を除けば自由度は2であり、ステージごとに待機位置におけるロボットの姿勢は一意に定まる。しかしながらこのロボットでは、軸ごとの回転可能な角度範囲の制約もあって、作業領域内にアクセスできない領域すなわちデッドエリアが生じたり、作業領域を囲む壁面との干渉を避けようとするとステージ間での移動経路が複雑なものになったりすることがある。このような課題を解決するためには、ロボットにおいて自由度を1だけ増やすことが考えられ、特許文献1に示す水平多関節型のロボットであれば、リンク機構を用いる代わりに基台側リンクとアーム側リンクの間の角度もモータによって任意に変えられるようにして自由度を1だけ増やすことが考えられる。そのように自由度を増やした水平多関節型のロボットの例が、特許文献2-4に記載されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特許第5199117号公報
【特許文献2】特表2000-506789号公報
【特許文献3】特許第4750231号公報
【特許文献4】特許第4364634号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1に示した水平多関節型のロボットでは、ワークが搭載されるハンドの向きが定まっているとすれば、水平面内でのロボットの自由度は2であり、ロボットの位置に応じてロボットの各軸での角度は一意に定まる。しかしながら特許文献2-4に記載されるように独立して制御可能なアームを増やしてロボットの自由度を大きくした場合、ロボットの位置が与えられたときにその位置を実現するためのロボットの姿勢(すなわち各軸の角度)は一意に定まらない。そのような状況において始点位置と目標位置(終点位置)とを指定してロボットを移動させるとき、目標位置におけるロボットの姿勢に応じて移動時間に大きな差が生じたり、移動中にロボットのアームが周囲の物体(例えば作業領域の壁面など)と干渉したりすることがある。始点位置と始点位置での姿勢と目標位置とを与えて目標位置での最適な姿勢を求める問題は非線型最適化問題であり、厳密解を得るためには多大な演算量を必要とする。
【0008】
本発明の目的は、冗長な自由度を有する水平多関節型のロボットを制御する制御方法及び制御装置であって、少ない演算量で、指定された目標位置に対してロボットを短時間で移動させることができる制御方法及び制御装置を提供することにある。
【課題を解決するための手段】
【0009】
本発明の一態様に基づく制御方法は、複数のステージの間でワークを搬送する水平多関節型のロボットを制御する制御方法であって、ロボットは、基台と、基台に回転可能に接続する第1アームと、第1アームに回転自在に接続する第2アームと、第2アームに回転自在に接続する第3アームと、第3アームに回転自在に接続してワークを保持するハンド部と、を備え、第1アームが基台に接続する位置を原点とし、第2アームが第1アームに接続する位置を第1ジョイント点とし、第3アームが第2アームに接続する位置を第2ジョイント点とし、ハンドが第3アームに接続する位置を第3ジョイント点として、第3ジョイント点の目標位置を指定してロボットを移動させるときに、水平面内において原点を通る仮想走行軸の上に第2ジョイント点が存在すると設定し、原点を通って水平に延びる基準方向と仮想走行軸とがなす角を仮想走行軸角として、仮想走行軸角と目標位置とを用いて各軸のモータを駆動してロボットを実際に移動させる駆動工程を有する。
【0010】
一態様の制御方法では、冗長な自由度を有する水平多関節型のロボットを制御するときに、水平面内において原点を通る仮想走行軸の上に第2ジョイント点が存在するという拘束条件を設定し、原点を通って水平に延びる基準方向と仮想走行軸とがなす角を仮想走行軸角とすることにより、仮想走行軸角と目標位置とによってロボットの姿勢を実質的に一意に決定できる。また、目標位置に到達するための最適な仮想走行軸角を少ない演算量で容易に算出することができる。これにより、少ない演算量で、指定された目標位置に対してロボットを短時間で移動させることができるようになる。
【0011】
一態様の制御方法においては、駆動工程を実施する前に、目標位置に対応した最適な仮想走行軸角を算出する最適値算出工程を実施することができる。例えばティーチングにより目標位置を決めるときに最適値算出工程も実施しておけば、それ以降は、ティーチングによって得られた目標位置と最適な仮想走行軸角とに基づいて、ロボットを最適に動作させることが可能になる。駆動工程においてポイント・ツー・ポイント(PTP)動作によりロボットを動作させる場合には、最適値算出工程を、ロボットをPTP動作によって動作させたときに目標位置に到達するまでの到達時間を仮想走行軸角を変えながら算出し、到達時間が最小となる仮想走行軸角に基づいて最適な仮想走行軸角を求める工程とすることができる。この場合、到達時間の算出は小さな演算量で実施できるので、最適な仮想走行軸角の算出も小さな演算量で行うことができる。一方、駆動工程において直線補間動作によりロボットを動作させる場合には、単純な計算では到達時間を算出することはできないので、最適値算出工程を、ロボットを直線補間動作により動作させて目標位置に到達させるときの最高速度を仮想走行軸角を変えながら算出し、最高速度が最大となる仮想走行軸角に基づいて最適な仮想走行軸角を求める工程とすることができる。仮想走行軸角ごとの最高速度の算出は簡単に行えるので、この場合も最適な仮想走行軸角の算出を小さな演算量で行うことができる。
【0012】
一態様の制御方法において、複数のカセットが並ぶ方向と平行に基準方向を定めることができる。このように基準方向を定めることによって、アームやハンドの移動量を小さくしつつカセット間でのワークの搬送を行うことができ、搬送時間を短縮できる。また、第1アームの有効長と第2アームの有効長とが等しいことが好ましい。第1アームの有効長と第2アームの有効長とを等しくすることによって、最適な仮想走行軸角の算出のための演算量を削減することができる。
【0013】
一態様の制御方法においては、第1アーム、第2アーム、第3アーム及びハンドが折り畳まれ、かつ、水平面内において原点を通り基準方向に直交する直線上に第1ジョイント点、第2ジョイント点及び第3ジョイント点が位置する姿勢を原点位置として、原点位置を初期位置としてロボットを順次移動させることが好ましい。このように構成することにより、目標位置と仮想走行軸角とが与えられたときに後述する左手系及び右手系の2通りの姿勢が可能であったとしてもロボットの姿勢を常に一意に決めることができる。
【0014】
本発明の一態様の制御装置は、基台と、基台に回転可能に接続する第1アームと、第1アームに回転自在に接続する第2アームと、第2アームに回転自在に接続する第3アームと、第3アームに回転自在に接続してワークを保持するハンド部と、を備え、複数のカセットの間でワークを搬送する水平多関節型のロボットを制御する制御装置であって、第1アームが基台に接続する位置を原点とし、第2アームが第1アームに接続する位置を第1ジョイント点とし、第3アームが第2アームに接続する位置を第2ジョイント点とし、ハンドが第3アームに接続する位置を第3ジョイント点として、第3ジョイント点の目標位置を指定してロボットを移動させるときに、水平面内において原点を通る仮想走行軸の上に第2ジョイント点が存在すると設定し、原点を通って水平に延びる基準方向と仮想走行軸とがなす角を仮想走行軸角として、仮想走行軸角と目標位置とを用いて各軸のモータを駆動してロボットを実際に移動させる。
【0015】
一態様の制御装置では、冗長な自由度を有する水平多関節型のロボットを制御するときに、水平面内において原点を通る仮想走行軸の上に第2ジョイント点が存在するという拘束条件を設定し、原点を通って水平に延びる基準方向と仮想走行軸とがなす角を仮想走行軸角とすることにより、仮想走行軸角と目標位置とによってロボットの姿勢を実質的に一意に決定できて、冗長な自由度に影響されることなく、ロボットを安定して制御することができる。また、目標位置に到達するための最適な仮想走行軸角を少ない演算量で容易に算出することができるから、ティーチングなども容易に行うことができる。これらにより、少ない演算量で、指定された目標位置に対してロボットを短時間で移動させることができるようになる。
【0016】
一態様の制御装置では、ロボットをポイント・ツー・ポイント動作によって動作させたときに目標位置に到達するまでの到達時間を仮想走行軸角を変えながら算出し、前到達時間が最小となる仮想走行軸角を求める関数が実装されていることが好ましい。このような関数が実装されていれば、小さな演算量で到達時間を算出できるので、最適な仮想走行軸角の算出も小さな演算量で行うことができる。また制御装置では、仮想走行軸角が与えられたときにロボットを直線補間動作により動作させて目標位置に到達させるときの最高速度を算出する関数が実装されていることも好ましい。このような関数が実装されていれば、最高速度が最大となる仮想走行軸角に基づいて最適な仮想走行軸角を求めることができ、仮想走行軸角ごとの最高速度の算出は簡単に行えるので、この場合も最適な仮想走行軸角の算出を小さな演算量で行うことができる。
【発明の効果】
【0017】
本発明によれば、冗長な自由度を有する水平多関節型のロボットを制御するときに、少ない演算量で、指定された目標位置に対してロボットを短時間で移動させることができる。
【図面の簡単な説明】
【0018】
図1】ロボットを示す平面図である。
図2図1のII-II線に沿ったロボットの概略断面図である。
図3】XY座標系におけるロボットの姿勢を説明する図である。
図4】直線補間動作での仮想走行軸角TWの決定方法を説明するグラフである。
図5】PTP動作でのロボットの動きを示す概略平面図である。
図6】PTP動作でのXY位置及び速度の変化を示すグラフである。
図7】PTP動作でのジョイントの角及び速度の変化を示すグラフである。
図8】直線補間動作でのロボットの動きを示す概略平面図である。
図9】直線補間動作でのXY位置及び速度の変化を示すグラフである。
図10】直線補間動作でのジョイント角及び速度の変化を示すグラフである。
【発明を実施するための形態】
【0019】
次に、本発明の実施の形態について、図面を参照して説明する。図1は本発明の実施の一形態の制御方法が適用されるロボットを示す平面図であり、図2は、図1におけるII-II線での断面図である。このロボット1は、水平多関節型のロボットであって作業領域5内に配置され、作業領域5を囲む壁面に設けられたステージの相互間で、例えば円板形状のワーク50を搬送するために用いられる。以下の説明では、ワーク50は半導体ウエハであるものとするが、ワーク50は半導体ウエハに限定されるものではない。
【0020】
作業領域5は、細長い長方形状の空間であり、その一方の長辺に沿う壁面には、ワーク50であるウエハを収容する複数のカセット51が、作業領域5の長手方向に沿って配置している。作業領域5の他方の長辺にはワーク50に対する処理を実行するワーク処理装置52が設けられ、ワーク処理装置52には、ロボット1との間でワーク50を受け渡すための複数のロードロック室53が設けられている。これらのロードロック室53も作業領域5を画定する壁面において、作業領域5の長手方向に沿って配置している。カセット51もロードロック室53も、ロボット1によるワーク50のロード及びアンロードが行われる場所であり、上述したようにステージと総称される。作業領域5は、ワーク50をステージ間で搬送する際にロボット1が壁面などと干渉することなくそのハンドやアームなどを動かすことができる空間である。カセット51やロードロック室53は作業領域5を囲むように作業領域5の壁面に形成された開口として設けられているので、ロボット1によりステージに対してワーク50のロードやアンロードを行うときの方向は、一般に、作業領域5の壁面に垂直な方向である。ただし、ステージの構造によっては、作業領域5の壁面に垂直な方向から傾いた方向でそのステージに対するワーク50のロード/アンロードが行うことがある。
【0021】
次に、ロボット1の詳細な構成について説明する。ロボット1は、作業領域5の床面上に配置されて固定される基台10と、基台10に対して直列に連結された3本のアームすなわち第1アーム11、第2アーム12及び第3アーム13と、第3アーム13に取り付けられたハンド14とを備えている。基台10は、昇降モータ(図示せず)によって駆動されて上下方向に昇降する昇降筒15を備えている。各アーム11~13及びハンド14はいずれも基端部と先端部とを有し、第1アーム11の基端部が昇降筒15に対して回転可能に連結することにより第1アーム11は基台10によって保持される。第1アーム11は、昇降筒15の昇降に伴って基台10に対して昇降可能である。昇降筒15の昇降によりアーム11~13及びハンド14が一体的に昇降するが、本発明は水平多関節型のロボット1の水平面内での動きの最適化に関するものであり、昇降筒15による高さ方向の動きは水平面内でのアーム11~13やハンド14の動きに比べて小さいので、以下では、昇降筒15による高さ方向でのロボット1の移動は無視できるものとしている。
【0022】
第1アーム11は、昇降筒15に内蔵されたモータ21によって駆動されて水平面内を回転する。第2アーム12の基端部が第1アーム11の先端部に回転可能に連結されており、第2アーム12は、第1アーム11によって保持されるとともに第1アーム11に内蔵されたモータ22によって駆動されて水平面内を回転する。同様に第3アーム13は、その基端部が第2アーム12の先端部に回転可能に保持されており、第2アーム12に内蔵されたモータ23によって駆動されて水平面内を回転する。ハンド14は、その基端部が第3アーム13の先端部に回転可能に保持されており、第3アーム13に内蔵されたモータ24によって駆動されて水平面内を回転する。ハンド14は、その上にワーク50を載置することができるように、先端部側がフォーク状に分岐している。
【0023】
上述したようにロボット1は、水平多関節型のロボットであり、アーム11~13及びハンド14は、それぞれモータ21~24によって駆動されて水平面内を回転する。そこで、ロボット1の動作を説明するために、水平面内にXY座標を設定する。X軸方向は、ロボット1の動作の基準となる方向であり、Y軸方向はX軸方向に直交する。図示した例では、X軸方向は、細長い長方形である作業領域5の長手方向であり、作業領域5を囲む壁面に配置されたステージが並んでいる方向と一致する。また、基台10に対する第1アーム11の回転中心の位置をジョイント点J0とし、第1アーム11に対する第2アーム12の回転中心の位置をジョイント点J1とし、第2アーム12に対する第3アーム13の回転中心の位置をジョイント点J2とし、第3アーム13に対するハンド14の回転中心の位置をジョイント点J3とする。ジョイント点J0からJ1までの長さを第1アーム11の有効長L1とし、ジョイント点J1からJ2までの長さを第2アーム12の有効長L2とし、ジョイント点J2からJ3までの長さを第3アーム13の有効長L3とし、ジョイント点J3からハンド14の先端までの長さをハンド14の有効長L4とする。ここで示す例では、第1アーム11の有効長L1と第2アーム12の有効長L2とは等しい。
【0024】
なお、図2に示すように、ロボット1にはロボット1の制御を行なうロボット制御装置30が接続しており、ロボット制御装置30には、ロボット1のティーチングのために、ケーブル31を介してペンダント32を接続することができる。ロボット制御装置30は、外部から入力する指令やペンダント32を用いたティーチングによる指令に基づいて、モータ21~24及び昇降用モータ(不図示)を駆動し制御することができる。
【0025】
図3は、XY座標系におけるロボットの姿勢を説明する図である。図3を用いて本発明に基づく制御方法を説明する。ジョイント点J0(すなわち基台10に対する第1アーム11の回転中心)をXY座標系の原点とする。図3(a)はロボット1の原点位置を示す平面図である。ロボット1では、その動作の基準となる姿勢である原点位置が定められている。原点位置では、各アーム11~13及びハンド14が折り畳まれており、この折り畳まれたものがY軸方向に延びている。したがって、ジョイント点J2はXY座標系の原点であるジョイント点J0と重なっており、ジョイント点J1のXY座標値は(0,-L1)であり、ジョイント点J3のXY座標値は(0,-L3)である。ジョイント点J1は第3アーム13によって隠されているので、図には示されていない。
【0026】
図3(b)は、ステージへのアクセスのためにアーム11~13及びハンド14が開いた状態を示している。ジョイント点J0の周りでの原点姿勢からの第1アーム11の回転角をTH1とする。すなわち角度TH1は、Y軸と第1アーム11とがなすジョイント角である。同様にジョイント点J1の周りでの第1アーム11と第2アーム12とがなすジョイント角をTH2とし、ジョイント点J2の周りでの第2アーム12と第3アーム13とがなすジョイント角をTH3とし、ジョイント点J3の周りでの第3アーム13とハンド14とがなすジョイント角をSとする。原点位置では角度TH1~TH3,Sはいずれも0である。ここでXY座標系内でのハンド14の向きは、一般に、ハンド14がアクセスしようとするステージに対するアクセス方向(すなわち、ロード及びアンロードを行う方向)に一致するように制御される。そのため、ワーク50の搬送のために作業領域5内でロボット1を移動させるときは、ジョイント点J3の位置のXY座標値が制御目標となり、移動完了時のジョイント点J3の位置が目標位置となる。なお図3(b)では第3アーム13とハンド14とがなす角度をハンド14の角度Sとしているが、このような角度Sは、ジョイント座標で表されたものである。
【0027】
ロボット1では、モータ21~23がそれぞれアーム11~13を駆動することによってジョイント点J3の位置すなわちXY座標値を変えることができるが、XY座標値は2次元の値にあるのに対し、モータ21~23によりジョイント角TH1~TH3をそれぞれ独立に変化させることができるから、ロボット1は冗長な自由度を1だけ有することになる。目標位置としてジョイント点J3の位置を与えたとしてそれを実現するためのアーム11~13の姿勢は無数に存在し、どの姿勢に移動するかによって移動時間に大きな差が生じたり、移動中にアーム11~13やハンド14が周囲の物体と干渉したりすることがある。目標位置を与えてそのときの最適な姿勢を拘束条件なしで求めることは、多大な演算量を必要とする。そこで本実施形態では、ジョイント点J3の位置を目標位置としてロボット1を移動させるときに冗長な自由度のために制御のための演算量が大きくなることを防ぐために、原点を通る直線である仮想走行軸Pを考え、第2アーム12と第3アーム13との連結点であるジョイント点J2が仮想走行軸P上にある、という条件を付加し、ロボット1の移動の制御を行なう。ロボット1の基準方向であるX軸に対して仮想走行軸Pがなす角度を仮想走行軸角TWとする。仮想走行軸Pとジョイント点J3の位置とが与えられれば、言い換えれば仮想走行軸角TWとジョイント点J3の位置とが与えられば、以下に説明する左手系及び右手系の違いを除けばロボット1のアーム11~13の姿勢は一意に決まる。すなわち、目標位置であるジョイント点J3のXY座標系での位置と移動終了時の仮想走行軸角TWとを与えることによって、ロボット1の移動を1通りに制御できることになる。特許文献1に記載されるロボットは、本実施形態におけるロボット1において、仮想走行軸Pが基準方向であるX軸と常に一致している場合に相当する。
【0028】
図3(c)及び図3(d)は左手系と右手系の違いを示す図であって、ジョイント点J3の位置(X,Y)が同じであるとして、図3(c)は左手系、図3(c)は右手系を示している。左手系と右手系が生じるのは、ジョイント点J3を中心とし、第3アーム13の有効長L3を半径とする円が仮想走行軸Pと交わる点は一般に2つあるからである。ジョイント点J3から仮想走行軸Pに垂線を下し、ジョイント点J3の周りでのこの垂線と第3アーム13とがなす角の角度Hを垂線側から測ったとき、H<0であれば(すなわち垂線の足よりもジョイント点J2の方が右側にあれば)左手系であり、逆に、H≧0であれば右手系である。XY座標系でのハンド14の向きは、第3アーム13の向きによらずにステージに対するアクセス方向によって決まるので、図3(c)及び図3(d)では、ジョイント点J3の周りでX軸の正方向とハンド14とがなす角をハンド14の角度Sとしている。このような角度Sは、直交座標系で表されたものである。
【0029】
図3(c)に示される姿勢において第1アーム11及び第2アーム12をそれぞれ仮想走行軸Pに関して対称となる位置に配置した姿勢が図3(e)に示されている。図3(e)に示す姿勢でもジョイント点J2が仮想走行軸P上にあるが、原点からジョイント点J3に向かって見たときにジョイント点J1が仮想走行軸Pの右側にあるか左側にあるかが相違する。このような相違は、左手系及び右手系の相違に分類されるのではなく、X軸方向と仮想走行軸Pとがなす仮想走行軸角TWが図3(c)に示すものと180°異なっていることによる相違として取り扱われる。このような相違を表現するために、仮想走行軸角TWは、-180°<TW≦180°の範囲内で定義される。同様に、図3(d)に示される姿勢において第1アーム11及び第2アーム12をそれぞれ仮想走行軸Pに関して対称となる位置に配置した姿勢が図3(f)に示されており、図3(d)と図3(f)とは仮想走行軸角TWが180°だけ異なっているものとして扱われる。
【0030】
結局、本実施形態においては、移動前の位置から目標位置にロボット1を移動させるときに、ロボット1の位置としてジョイント点J3の位置(X,Y)を使用し、移動前の仮想走行軸角TWと移動後の仮想走行軸角TWとを指定して、ロボット1の各軸のモータ21~24の制御を行なう。なお移動前の仮想走行軸角TWと移動終了後の仮想走行軸角TWとは一般に異なり、移動前後で仮想走行軸角TWが異なるときは、移動中に仮想走行軸角TWは変化する。移動後の仮想走行軸角TW自体は最適な値に設定される必要があるが、ロボット1では、その移動の目標位置はティーチングにより順次定められ、ティーイングにより目標位置を定めるたびに、その目標位置に対応した最適な仮想走行軸角TWを決めることができる。ひとたび目標位置と最適な仮想走行軸角TWが定まってしまえば、それ以降は、ロボット制御装置30は、それらの目標位置と最適な仮想走行軸角TWとに基づいてロボット1の移動の制御を行ない、ロボット1によるワーク50の搬送を実行する。次に、角度TWの決定方法について説明する。
【0031】
ロボット1をPTP動作で移動させる場合、移動前の位置と目標位置(X,Y)と移動前及び移動後の仮想走行軸角TWとが与えられば、モータ21~24にそれぞれ要求される回転量(移動量)が算出され、各軸のモータ21~24が同時に回転を始めて同時に回転を停止するとして、移動に要する時間も、軸ごとの許容最高速度から算出できる。移動前及び移動後の位置(X,Y)と移動前の仮想走行軸角TWとを入力として、移動後の仮想走行軸角TWを少しずつ変えながら移動時間を算出することを繰り返すことにより、移動時間が最小となるような移動後の仮想走行軸角TWを最適条件として求めることができる。PTP動作においてアーム11~13やハンド14が他の物体と干渉するかどうかを判定するアルゴリズムも公知であるから、移動後の仮想走行軸角TWを変えながら移動時間を求めることを繰り返す際に、アーム11~13やハンド14が他の物体と干渉するかどうかと軸ごと定められたジョイント角度の変化可能範囲を逸脱するかどうかとを判定し、干渉があったり角度範囲の逸脱があると判定されたときは、最適条件から除外する。実際にはロボット1によって一連の搬送操作を行わせるときは、初期位置として図3(a)に示した原点位置が与えられ、この初期位置からロボット1を順次動かしていく。原点位置ではジョイント点J0とジョイント点J2が重なるので仮想走行軸Pを一意に定めることができないが、原点位置の場合は、仮想走行軸角TWは0°であると定義する。そして原点位置から原点位置以外の位置に移動するときには最適な仮想走行軸角TWを右手系であるか左手系であるかを含めて定めることができ、それ以降は、移動前の位置及び仮想走行軸角TWが既知であるので、次の移動先の位置すなわち次の目標位置が与えられば、移動後の最適な仮想走行軸角TWを求めることができる。上述した繰り返し演算により移動後の仮想走行軸角TWを最適条件として求める関数QTWOPTとして用意してこの関数QTWOPTをロボット制御装置30に実装しておけば、ティーチングを行って移動前と移動後のジョイント点J3の位置を指定することにより、PTP動作によってロボット1を最適に動作させることができる。
【0032】
ロボット1を直線補間動作で移動させる場合、ハンド14の直交座標系での角度Sは、アクセス対象のステージのアクセス方向と一致しており、ジョイント点J3の位置がステージのアクセス方向に沿って直線で移動するようにロボット1が制御される。PTP動作の場合には各軸のモータ21~24の速度の変化の形状は加減速期間を含めるといずれも台形状となるが、直線補間動作の場合には、各軸のモータ21~24の速度の変化の形状は、必ずしも台形になるわけでなく、軸ごとに異なり、軸によっては複雑な形状となることがある。そのため、軸ごとにモータ21~24の速度が許容最高速度を超えるかどうかの判定を行うことが必須となる。本実施形態では、直線補間動作に関し、移動前及び移動後の位置と、移動前及び移動後の仮想走行軸角TWと、モータ21~24と共通に定められる加速時間及び減速時間(すなわち加減速条件)を入力として、各軸のモータ21~24の速度がそれぞれ許容最高速度以内であるという条件の下での直線補間動作の最高速度を算出する。そして移動後の仮想走行軸角TWを少しずつ変えながら直線補間動作の最高速度を求めることを繰り返し、直線補間動作の最高速度が最大となる仮想走行軸角TWを求める。このようにして求めた仮想走行軸角TWを最適値とし、最適値である仮想走行軸角TWを実際に直線補間動作によりロボット1を動作させるときに使用する移動後の仮想走行軸角TWとする。このようにして移動後の仮想走行軸角TWごとに直線補間動作の最高速度を求める関数をQCPOPTとして用意してこの関数QCPOPTをロボット制御装置30に実装しておけば、ティーチング時にこの関数を繰り返して実行することにより、直線補間動作によってロボット1を最適に動作させるための移動後の仮想走行軸角TWを求めることができる。なお、PTP動作であるか直線補間動作であるかを問わずロボット1が原点位置を初期位置として順次移動するときは、移動前の仮想走行軸角TWを既知のものとすることができる。
【0033】
図4は、移動前及び移動後のジョイント点J3の位置と移動前の仮想走行軸角TWと加減速条件とが与えられて移動後の仮想走行軸角TWの値を変化させたときに、関数QCPOPTの値、すなわち直線補間動作における最高速度がどのように変化するかの一例を示したグラフである。ここでは、加速時間及び減速時間がいずれも0.2sec、移動前のジョイント点J3の位置(X,Y)が(700,0)、移動前の仮想走行軸角TWが0°、移動後のジョイントJ3の位置(X,Y)が(700,-350)であるとして計算を行っている。関数QCPOPTで得られる最大速度は近似値として算出されるものであるが、図から、仮想走行軸角TWが-17°付近であるときに直線補間動作の最高速度が最大になることが分かる。
【0034】
以下、PTP動作と直線補間動作によるロボット1の動作の実例を説明する。図5は、原点位置にあってジョイント点J3の位置(X,Y)が(0,-385)でありハンド14の直交座標でのジョイント角Sが90°である姿勢から、ジョイント点J3の位置(X,Y)が(-385,0)でありジョイント角Sが270°である姿勢にロボット1を移動させたときのアーム11~13やハンド14の動きを平面図として表している。この移動条件を与えて上述した関数QTWOPTを実行すると最適な仮想走行軸角TWとして24,93°が算出され、関数QTWOPTには計算誤差が含まれることなども考慮して、本実施形態に基づいてPTP動作を行うときに用いる仮想走行軸角TWを25°とした。図5において(a)は、仮想走行軸角TWを0°とした場合(すなわち特許文献1のロボット1と同等の動きをさせた場合)のPTP動作での動きを順を追って示し、(b)は、本実施形態に基づいて移動後の仮想走行軸角TWを25°とした場合のPTP動作での動きを順を追って示している。図6は、図5に示すようにロボット1を動かしたときのジョイント点J3の位置(X,Y)の変化とX軸方向及びY軸方向での速度の変化とを示すグラフである。図6において(a-1)及び(a-2)は、それぞれ、図5において(a)に示すように仮想走行軸角TWを0°としたときの位置の変化及び速度の変化を示し、(b-1)及び(b-2)は、それぞれ、図5において(b)に示すように仮想走行軸角TWを25°としたときの位置の変化及び速度の変化を示している。図7は、図5に示すようにロボット1を動かしたときのジョイント角TH1,TH2,TH3,Sの各々の変化とそれらの角速度の変化とを示すグラフである。図7において(a-1)及び(a-2)は、それぞれ、図5において(a)に示すように仮想走行軸角TWを0°としたときの各ジョイント角及び速度を示し、(b-1)及び(b-2)は、それぞれ、図5において(b)に示すように仮想走行軸角TWを25°としたときの各ジョイント角及び速度を示している。
【0035】
特許文献1のロボットに対応して仮想走行軸角TWを0°とした場合、PTP動作における一連の動きの中で、第1アーム11及び第2アーム12は動かず、ジョイント点J2もジョイント点J0に重なったままであり、第3アーム13が第2アーム12に対して開き、ハンド14がジョイント点J3の周りで回転するだけである。図6及び図7において速度が0となるまでの時間として表されるように、PTP動作による移動が終了するまでに要する時間は3460msecであった。これに対し、本実施形態に制御方法に基づいて移動後の仮想走行軸角TWを25°としてPTP動作を実行させたときは、ジョイント点J2の位置がジョイント点J0からわずかにずれるとともに第1アーム11及び第2アーム12も移動し、その分、第3アーム13の移動すべき量も小さくなって、PTP動作による移動が完了するまでに要する時間が2772msecまで短縮された。
【0036】
図8は、移動前においてジョイント点J2がX軸上にあり(すなわちTW=0°)、
ジョイント点J3の位置(X,Y)が(700,0)でありハンド14の直交座標でのジョイント角Sが-90°である姿勢から、直線補間動作によってジョイント点J3の位置(X,Y)が(700,-350)である姿勢にロボット1を移動させたときのアーム11~13やハンド14の動きを平面図として表している。ハンド14のジョイント角Sに変化はない。この移動の条件は図4を用いて説明した場合と同じであるので、上述した関数QCPOPTを繰り返し実行して得られる最適な仮想走行軸角TWは、上述したように-17°である。そこで直線補間動作を行うときに用いる移動後の仮想走行軸角TWを-17°とした。図8において(a)は、仮想走行軸角TWを0°とした場合(すなわち特許文献1のロボット1と同等の動きをさせた場合)の直線補間動作での動きを順を追って示し、(b)は、本実施形態に基づいて移動後の仮想走行軸角TWを-17°とした場合の直線補間動作での動きを順を追って示している。図9は、図8に示すようにロボット1を動かしたときのジョイント点J3の位置(X,Y)の変化とX軸方向及びY軸方向での速度の変化とを示すグラフである。図9において(a-1)及び(a-2)は、それぞれ、図8において(a)に示すように仮想走行軸角TWを0°としたときの位置及び速度を示し、(b-1)及び(b-2)は、それぞれ、図8において(b)に示すように仮想走行軸角TWを-17°としたときの位置及び速度を示している。図10は、図8に示すようにロボット1を動かしたときのジョイント角TH1,TH2,TH3,Sの各々の変化とそれらの速度の変化とを示すグラフである。図10において(a-1)及び(a-2)は、それぞれ、仮想走行軸角TWを0°としたときの各ジョイント角及び速度を示し、(b-1)及び(b-2)は、それぞれ、仮想走行軸角TWを-17°としたときの各ジョイント角及び速度を示している。
【0037】
特許文献1のロボットに対応して仮想走行軸角TWを0°に固定とした場合、ジョイント点J2はX軸上を動くだけである。図9及び図10において速度が0となるまでの時間として表されるように、直線補間動作による移動が終了するまでに要する時間は6552msecであった。これに対し、本実施形態に制御方法に基づいて移動後の仮想走行軸角TWを-17°として直線補間動作を実行させたときは、ジョイント点J2の位置が仮想走行軸Pの変化とともに-Y方向に移動しており、その分、第2アーム12に対して第3アーム13が回転しなければならない量も減少し、全体としての動作の高速化が達成され、直線補間動作による移動が完了するまでに要する時間が1384msecまで大幅に短縮された。
【0038】
以上説明したように本実施形態では、ジョイント点J0とジョイント点J2とを通る仮想走行軸Pを想定し仮想走行軸Pが基準方向であるX軸方向となす角度を仮想走行軸角TWとして、移動後の仮想走行軸角TWについての最適値を求め、移動後の位置(すなわち目標位置)と最適値である仮想走行軸角TWとを実現するように各軸のモータを駆動する。これにより本実施形態では、ロボット1を目標位置に移動させるときに、最適な仮想走行軸角TWの算出に要する演算量も含めて全体として小さな演算量で、目標位置に対してロボット1を短時間で移動させることができる。
【符号の説明】
【0039】
1…ロボット;5…作業領域;10…基台;11…第1アーム;12…第2アーム;13…第3アーム;14…ハンド;15…昇降筒;21~24…モータ;30…ロボット制御装置;31…ケーブル;32…ペンダント;50…ワーク;51…カセット;52…ワーク処理装置;53…ロードロック室。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10