JPH08194512A - ロボットの制御装置 - Google Patents

ロボットの制御装置

Info

Publication number
JPH08194512A
JPH08194512A JP772195A JP772195A JPH08194512A JP H08194512 A JPH08194512 A JP H08194512A JP 772195 A JP772195 A JP 772195A JP 772195 A JP772195 A JP 772195A JP H08194512 A JPH08194512 A JP H08194512A
Authority
JP
Japan
Prior art keywords
robot
maximum
work
value
angular velocity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP772195A
Other languages
English (en)
Inventor
Yusuke Akami
裕介 赤見
Yoshiko Matsuoka
佳子 松岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tokico Ltd
Original Assignee
Tokico Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tokico Ltd filed Critical Tokico Ltd
Priority to JP772195A priority Critical patent/JPH08194512A/ja
Publication of JPH08194512A publication Critical patent/JPH08194512A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

(57)【要約】 【目的】 ロボットの性能を考慮しながら、オペレータ
に対してワークの最適な配置位置を指示することができ
るロボットの制御装置を提供すること。 【構成】 CPU11は、ROM12に記憶された制御
プログラムに従って、RAM13を用いて処理を行うこ
とにより、制御装置3の各部を制御する。動作範囲指示
装置17は、ロボット1のアームの先端に把持された塗
装ガン先端を塗装範囲の外縁に沿って移動させる。CP
U11は、ワークが上記塗装範囲の内側にはいるように
教示データを自動的に修正する。また、CPU11は、
ロボット1の各回転軸の移動時の角速度,角加速度と最
大角速度,最大角加速度との比を考慮しながら、ロボッ
ト1が最も効率よく作業できる位置にワークがくるよう
に教示データを修正する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はティーチングプレイバッ
ク(教示再生方式)型のロボットの教示・制御に用いら
れるロボットの制御装置に関する。
【0002】
【従来の技術】以下、塗装用ロボットシステムを例に取
ってティーチングプレイバック型のロボットについて説
明を行う。ティーチングプレイバック型のロボットは、
オペレータによって教示された塗装の手順や動作のタイ
ミング等からなる教示データを再生する事で目的とする
動作を行う。教示は、オンライン教示装置を用いて実際
にロボットを動作させながら教示を行うオンライン教示
と、ロボットを動作させることなく、専用のディスプレ
イと入力装置とからなるオフライン教示装置を用いて教
示を行うオフライン教示とに大別できる。
【0003】図50は従来のロボットの制御装置を用い
た塗装用ロボットシステムの構成例を示す斜視図であ
る。ロボット1は、アーム1a,1bと4つの回転軸1
c1〜1c4を有す4自由度のスカラ型のロボット(平
行リンク機構および手首を持つ)であり、固定ベース1
dを介して、天井または壁に取り付けられている。ま
た、ロボット1は、手首の先端に把持された塗装ガン2
をその動作範囲内(以下、塗装ガン2が移動することの
できる動作範囲を塗装範囲と称する)の任意の位置に移
動させ、水平面に向かって塗装を行う。
【0004】制御装置103は、CPU(中央処理装
置),ROM(リードオンリメモリ),RAM(ランダ
ムアクセスメモリ),フロッピディスクドライブ(以
下、FDDと称する)等からなり、ケーブル103aに
よってロボット1と電気的に接続されている。制御装置
103は、ロボット1に内蔵されたエンコーダが検出し
た各回転軸1c1〜1c4の角度から塗装ガン2先端の
位置およびロボット1の姿勢を求め、教示によって与え
られた座標位置を塗装ガン2先端が通過するように、ロ
ボット1の動作を制御する。また、制御装置103は、
手元操作装置4と組み合わせてオンライン教示装置とし
ても使用される。
【0005】手元操作装置4は、入力用キーと非常停止
ボタンと出力用液晶表示装置等を有する入出力装置であ
る。オペレータは、手元操作装置4を操作して、ロボッ
ト1に対する動作の指示、教示データの再生、各アーム
1a,1bの長さやアーム1bの先端から塗装ガン2先
端までの距離等のロボット1固有のデータ管理等を行う
ことができる。オフライン教示装置104は、CPU,
ROM,RAMの他にディスプレイ,キーボード,FD
D等を有し、ロボット1や制御装置103との間にケー
ブル等の信号伝送手段を持たないコンピュータシステム
である。オフライン教示装置104は、上記ROMにロ
ボット教示用の専用ソフトウェアを有し、これによって
オペレータは、実際にロボット1を動かすことなく、動
作の教示やシミュレーションを行うことが可能である。
【0006】制御装置103および手元操作装置4を用
いたオンライン教示は、以下に述べる〜の手順で行
われる。 :オペレータは、塗装作業の対象物(以下、ワークと
称する)を塗装範囲内に設置する。また、ワークを配置
する手段としてワーク供給装置やコンベアライン等が使
用される場合もあり、この場合、上記ワーク供給装置や
コンベアラインを設置後、これらの装置によって配置さ
れるワークが塗装範囲内に正しく収まるようにロボット
を設置する必要がある。 :オペレータは、PTP(Point To Point)またはC
P(Continuous Pass)等の方法で、塗装ガン2先端が
移動する軌道(以下、塗装軌道と称する)やロボット1
の姿勢を教示する。 :オペレータは、塗装ガン2の移動速度,塗料を吐出
する位置,塗装色の切り替え,塗装の霧化のパターン,
空吹きによるクリーニング等の教示条件を設定する。 :オペレータは、上記ワーク供給装置が出力するワー
ク設置完了信号、あるいはコンベアラインが出力する追
従信号に対してロボット1が行うロボット1の動作を教
示する。
【0007】オフライン教示は、上記オンライン教示と
同様の教示手順を、実際にロボット1を動作させること
なく、オフライン教示装置104を用いて行う教示方法
である。作成された教示データは、オフライン教示装置
104内蔵のFDDでフロッピディスクに保存され、制
御装置103内蔵のFDDで制御装置103へ読み込ま
れる。オフライン教示の場合、オペレータは、実際にロ
ボット1を動作させることなく教示が可能であるので、
教示作業のためにロボット1や工場のライン等の塗装作
業を停止させることなく教示を行うことができる。ま
た、オフライン教示では、オペレータは、教示データを
基にロボット1の動作のシミュレーションを行うことに
より、教示時に塗装品質の予測,確認が可能である。
【0008】オンライン教示またはオフライン教示によ
って教示データが作成されると、オペレータは、制御装
置103の動作モードを再生モードにセットし、教示デ
ータを再生させ、ロボット1に実際に塗装作業を行わせ
てみる。このとき、オペレータは、塗装軌道,ワークに
対する塗料の付着量や塗りむら等の塗装品質などを確認
し、塗装軌道や塗装品質に問題がなければ、教示作業を
終了する。しかし、1度目の教示で、オペレータが意図
した通りの塗装軌道や塗装品質が得られることは希であ
り、塗装軌道や塗装品質等に問題がある場合には、オペ
レータは、ロボット1の動作終了後、制御装置103の
動作モードを再び教示モードにセットし、教示点の教示
および塗装条件の設定をやり直す。
【0009】特に、オフライン教示の場合、オフライン
教示装置104の画面上におけるチェックであり、3次
元の動作を厳密に確認することができない。そのため、
オペレータは、その教示データを用いてロボットに再生
動作を行わせながら、現物合わせで少しづつ修正を繰り
返し、各ロボットシステムに適切な教示データを生成す
る。あるロボットシステムに対して教示された教示デー
タを、別のロボットシステムに転送し利用する場合も同
様の作業が必要となる。このように通常は「教示→塗装
軌道および塗装品質を確認するために再生→教示データ
を修正するために再教示」といった手順を何度か繰り返
さなければ、満足のいく塗装品質が得られない場合が多
い。
【0010】また、教示データの再生によって得られる
塗装軌道が塗装範囲を越える場合には、その越える量が
僅かな場合であっても、制御装置103は教示データを
再生不能と判断し、即座にロボット1の動作を停止す
る。その後、オペレータは、塗装軌道が塗装範囲内には
いるように、リモート操作で教示データの修正を行う。
さらに、ロボット1の動作速度が不十分なために塗装軌
道が大幅に崩れた場合、制御装置103はロボット1の
動作を停止する。また、目標または指令する速度に対し
て、実際の動作速度が遅い場合、制御装置103は、そ
のままロボット1を動作させるか、あるいは、ロボット
1の性能に合わせて速度を変更する。
【0011】
【発明が解決しようとする課題】ところで、上述した従
来のロボットの制御装置を用いて教示を行うときには、
以下に述べるような欠点があった。 上記のワーク供給装置を用いず、人手でワークを配置
する場合、オペレータは、ロボットの動作の基準となる
原点からワークまでの距離を実測したり、目測で大体の
見当をつけながら、塗装範囲内にきちんと収まるように
ワークを設置しなくてはならなかった。そのため、塗装
範囲が狭い場合やワークが大きい場合には、ワークが塗
装範囲内に完全に収まっていなかったり、オーバースプ
レー時の塗装軌道が塗装範囲からはみ出してしまうこと
が頻繁に起こり、その度にワークの設置および教示作業
をやり直していたので、教示作業に多大な時間と高い教
示技術を要していた。
【0012】リモート教示において、オペレータが実
際にロボットを操作しながら教示データの修正を行う場
合、教示および再生の繰り返しが多くなると、オペレー
タは動作中のロボットの近くで長時間の教示作業を行う
ことになる。そのため、オペレータは、気のゆるみや疲
労等から操作ミスを起こしやすくなり、教示データの誤
消去や操作ミス等を引き起こす恐れがあった。 教示時に指定した速度に対して、ロボットが実際に出
せる動作速度、つまり該ロボットの性能が低い場合、そ
のままロボットを動作させると、教示データに対して塗
装軌道の精度が低下し、そのため塗装品質が著しく低下
した。また、再生時にロボットの性能に合わせて動作速
度を自動的に変更すると、塗装面上での塗料の分量が変
化し、塗りむらが生じるという欠点があった。
【0013】教示および再生の繰り返し回数が多くな
ると、再生時の塗装試験に使用される塗料やサンプルワ
ークの量も多くなり、塗装試験の費用が大きくなるとい
う欠点があった。 この発明は、このような背景の下になされたもので、ロ
ボットの性能を考慮しながら、オペレータに対してワー
クの最適な配置位置を指示することができるロボットの
制御装置を提供することを目的とする。
【0014】
【課題を解決するための手段】請求項1記載の発明は、
複数の回転軸によって動かされるアームの先端に設けら
れた作業具を用いて所定の作業を行うロボットを制御す
るロボットの制御装置において、前記複数の回転軸のそ
れぞれを、前記ロボットの機械的構造によって決定され
る最大回転範囲に渡って回転させることにより、前記作
業具の最大到達領域を求める演算手段と、前記演算手段
からの出力により前記最大到達領域の輪郭に沿って前記
ロボットを作動させる作動範囲を報知する報知手段とを
具備することを特徴としている。
【0015】請求項2記載の発明は、請求項1記載のロ
ボットの制御装置において、前記最大到達領域を記憶す
る記憶手段と、前記作業具が所定の移動方向へ所定の移
動距離だけ移動するように前記ロボットに移動指令を与
える指令手段と、前記移動指令の実行による前記作業具
の移動前に、前記作業具の移動先となる予定位置が前記
最大到達領域内にあるか否かを判断する判断手段と、前
記予定位置が前記最大到達領域の外にある場合、前記作
業具の現在位置を前記移動方向とは異なる所定の方向へ
前記移動距離とは異なる所定の距離だけ移動させてか
ら、前記移動方向を変更させる移動方向変更手段とを具
備することを特徴としている。
【0016】請求項3記載の発明は、ロボットのアーム
の先端に設けられた作業具を軌道データに従って移動さ
せることで、所定の作業を行うロボットを制御するロボ
ットの制御装置において、前記軌道データのうち前記ロ
ボットの座標系における各軸方向の最大値および最小値
を示す点を求め、該軌道データを、これらの点を通り各
軸に平行な直線で囲まれた形状を表す変換データに変換
するデータ変換手段と、前記変換データの各辺に対し
て、前記作業具の最大到達領域からはみ出している部分
の長さの該辺の全長に対する割合である動作領域比率を
求める演算手段と、前記変換データの各辺のうち、対応
する前記動作領域比率が最も大きい辺である動作領域比
率最大辺を選択する選択手段と、前記動作領域比率最大
辺が一つの場合には、該動作領域比率最大辺が対向する
辺に向かう方向へ前記変換データを平行移動させ、前記
動作領域比率最大辺が前記変換データの対向する辺であ
る場合には、前記変換データの中心点を中心として前記
変換データを回転させる修正手段と、前記変換データが
前記最大到達領域内に完全に収まるまで、前記演算手段
には前記変換データの各辺に対して前記動作領域比率を
求めさせ、前記選択手段には動作領域比率最大辺を求め
させ、前記修正手段には前記動作領域比率最大辺の個数
に従って前記変換データを平行移動または回転させる制
御手段とを具備することを特徴としている。
【0017】請求項4記載の発明は、ロボットアームの
先端に設けられた作業具を、前記作業具を移動させるこ
とができる領域である最大到達領域内において移動さ
せ、所定の作業を行うロボットを制御するロボットの制
御装置において、前記最大到達領域内に前記作業具の作
業の対象となるワークを所定の半径の円弧上を移動させ
ながら供給するターンテーブルと、作業時における前記
ワークに対する前記作業具の軌道を示す軌道データにつ
いて、前記軌道データのうち前記ロボットの座標系にお
ける各軸方向の最大値および最小値を示す点を求め、該
軌道データを、これらの点を通り各軸に平行な直線で囲
まれた形状を表す変換データに変換するデータ変換手段
と、前記変換データの各辺に対して、前記最大到達領域
からはみ出している部分の長さの該辺の全長に対する割
合である動作領域比率を求める演算手段と、前記変換デ
ータの各辺のうち、対応する前記動作領域比率が最も大
きい辺である動作領域比率最大辺を選択する選択手段
と、前記変換データの全ての辺の前記動作領域比率が等
しい場合には、前記変換データを前記円弧の中心点を中
心として移動させ、前記動作領域比率最大辺が前記変換
データの隣合う二つの辺である場合には、前記変換デー
タを前記円弧の中心点を中心として前記2つの動作領域
比率最大辺が作る頂点が該頂点の対頂点へ向かう方向へ
所定の角度だけ移動させる修正手段と、前記変換データ
が前記最大到達領域内に完全に収まるまで、前記演算手
段には前記変換データの各辺に対して前記動作領域比率
を求めさせ、前記選択手段には動作領域比率最大辺を求
めさせ、前記修正手段には前記動作領域比率最大辺の個
数に従って前記変換データを移動または回転させる制御
手段とを具備することを特徴としている。
【0018】請求項5記載の発明は、複数の回転軸で連
結されたロボットアームの先端に設けられた作業具を移
動させ、所定の作業を行うロボットを制御するロボット
の制御装置において、前記作業具の移動時において、前
記複数の回転軸のそれぞれに対して角速度を求める角速
度算出手段と、前記複数の回転軸の前記角速度を該回転
軸の最大角速度で割った値である角速度比を、前記複数
の回転軸のそれぞれについて求める角速度比算出手段
と、前記複数の回転軸のそれぞれの前記角速度比のう
ち、最大の角速度比を選択し、該最大の角速度比を角速
度能力値とする角速度能力値選択手段と、前記作業具の
最大到達領域内の各座標点に対して、前記角速度能力値
が所定の値以上であるか否かを判断する角速度能力値判
断手段と、前記所定の値以上の前記角速度能力値を示す
座標点によって構成される領域である角速度能力領域を
表示する角速度能力領域表示手段と、前記角速度能力領
域の内部と外部との境界線に沿って前記作業具を移動さ
せる角速度境界移動手段とを具備することを特徴として
いる。
【0019】請求項6記載の発明は、複数の回転軸で連
結されたロボットアームの先端に設けられた作業具を移
動させ、所定の作業を行うロボットを制御するロボット
の制御装置において、前記作業具の移動時において、前
記複数の回転軸のそれぞれに対して角加速度を求める角
加速度算出手段と、前記複数の回転軸の前記角加速度を
該回転軸の最大角加速度で割った値である角加速度比
を、前記複数の回転軸のそれぞれについて求める角加速
度比算出手段と、前記複数の回転軸のそれぞれの前記角
加速度比のうち、最大の角加速度比を選択し、該最大の
角加速度比を角加速度能力値とする角加速度能力値選択
手段と、 前記作業具の最大到達領域内の各座標点に対
して、前記角加速度能力値が所定の値以上であるか否か
を判断する角加速度能力値判断手段と、前記所定の値以
上の前記角加速度能力値を示す座標点によって構成され
る領域である角加速度能力領域を表示する角加速度能力
領域表示手段と、前記角加速度能力領域の内部と外部と
の境界線に沿って前記作業具を移動させる角加速度境界
移動手段とを具備することを特徴としている。
【0020】
【作用】請求項1記載の発明によれば、演算手段は複数
の回転軸のそれぞれを、ロボットの機械的構造によって
決定される最大回転範囲に渡って回転させることによ
り、作業具の最大到達領域を求め、報知手段は演算手段
からの出力により最大到達領域の輪郭に沿ってロボット
を作動させる作動範囲を報知する。
【0021】請求項2記載の発明によれば、指令手段は
作業具が所定の移動方向へ所定の移動距離だけ移動する
ようにロボットに移動指令を与える。判断手段は移動指
令の実行による作業具の移動前に、作業具の移動先とな
る予定位置が最大到達領域内にあるか否かを判断する。
移動方向変更手段は予定位置が最大到達領域の外にある
場合、作業具の現在位置を移動方向とは異なる所定の方
向へ移動距離とは異なる所定の距離だけ移動させてか
ら、移動方向を変更させる。
【0022】請求項3記載の発明によれば、選択手段は
変換データの各辺のうち、対応する動作領域比率が最も
大きい辺である動作領域比率最大辺を選択する。修正手
段は、動作領域比率最大辺が一つの場合には、該動作領
域比率最大辺が対辺へ向かう方向へ変換データを平行移
動させ、動作領域比率最大辺が変換データの対向する辺
である場合には、変換データの中心点を中心として回転
させる。制御手段は、変換データが最大到達領域内に完
全に収まるまで、演算手段には変換データの各辺に対し
て動作領域比率を求めさせ、選択手段には動作領域比率
最大辺を求めさせ、修正手段には動作領域比率最大辺の
個数に従って変換データを平行移動または回転させる。
【0023】請求項4記載の発明によれば、選択手段
は、変換データの各辺のうち、対応する動作領域比率が
最も大きい辺である動作領域比率最大辺を選択する。修
正手段は変換データの全ての辺の動作領域比率が等しい
場合には、変換データを円弧の中心点を中心として移動
させ、動作領域比率最大辺が変換データの隣合う二つの
辺である場合には、変換データを円弧の中心点を中心と
して2つの動作領域比率最大辺が作る頂点が該頂点の対
頂点へ向かう方向へ所定の角度だけ移動させる。制御手
段は、変換データが最大到達領域内に完全に収まるま
で、演算手段には変換データの各辺に対して動作領域比
率を求めさせ、選択手段には動作領域比率最大辺を求め
させ、修正手段には動作領域比率最大辺の個数に従って
変換データを平行移動または回転させる。
【0024】請求項5記載の発明によれば、角速度算出
手段は複数の回転軸のそれぞれに対して角速度を求め、
角速度比算出手段は複数の回転軸の角速度を該回転軸の
最大角速度で割った値である角速度比を、複数の回転軸
のそれぞれについて求める。角速度能力値選択手段は、
複数の回転軸のそれぞれの角速度比のうち、最大の角速
度比を選択し、該最大の角速度比を角速度能力値とす
る。角速度能力値判断手段は、最大到達領域内の各座標
点に対して、角速度能力値が所定の値以上であるか否か
を判断する。
【0025】請求項6記載の発明によれば、角加速度算
出手段は複数の回転軸のそれぞれに対して角加速度を求
め、角加速度比算出手段は複数の回転軸の角加速度を該
回転軸の最大角加速度で割った値である角加速度比を、
複数の回転軸のそれぞれについて求める。角加速度能力
値選択手段は、複数の回転軸のそれぞれの角加速度比の
うち、最大の角加速度比を選択し、該最大の角加速度比
を角加速度能力値とする。角加速度能力値判断手段は、
最大到達領域内の各座標点に対して、角加速度能力値が
所定の値以上であるか否かを判断する。
【0026】
【実施例】以下、図面を参照して、この発明の実施例に
ついて説明する。尚、以下の説明において(d/dx)はxに
ついて1回微分することを、(d/dx)2はxについて2回
微分することを示す。例えば、(d/dx)yはy=f(x)
をxについて1回微分し、(d/dx)2yはy=f(x)を
xについて2回微分することを示す。
【0027】図1はこの発明の一実施例によるロボット
の制御装置の構成および他の要素との関わりを示すブロ
ック図である。CPU(中央処理装置)11は、ROM
(リードオンリメモリ)12に記憶された制御プログラ
ムに従って、RAM(ランダムアクセスメモリ)13を
用いて処理を行うことにより、制御装置3の各部を制御
する。また、CPU11は、タイマ15から所定のサン
プリング間隔ごとに入力されるパルス信号を基準とし
て、ROM12からロボット1を制御するための制御プ
ログラムを、RAM13から教示点や塗装条件を読み出
し、塗装ガン2先端の移動量および移動速度を計算す
る。CPU11は、FDD14を用いてRAM13に記
憶されている内容をフロッピディスクに保存することが
できる。塗装ガン2先端の軌道が大幅にずれたり、ロボ
ット1に異常が発生した場合には、CPU11はスピー
カ16から警告音を鳴らす。これによって、オペレータ
は危険と異常を知ることができる。
【0028】動作範囲指示装置17は、塗装ガン2先端
を塗装範囲の外縁に沿って移動させる動作範囲指示処理
(図6〜図9参照)を行う。また、動作範囲指示装置1
7は、手元操作装置4からの入力を常に監視しており、
オペレータが非常停止キーを押すと、動作範囲指示装置
17は上記動作範囲指示処理を中止し、直ちにロボット
1を停止させる。
【0029】ロボット1の各回転軸1c1〜1c4には
サーボモータ19およびエンコーダ20が内蔵されてい
る。CPU11が計算した塗装ガン2の移動量および移
動速度は、モータドライバ18で角速度および回転角度
に変換され、サーボモータ19へ送られる。サーボモー
タ19は、図示しない減速機を介して、各回転軸1c1
〜1c4を上記角速度で上記回転角度だけ回転させ、ア
ーム1aおよび1bを駆動する。エンコーダ20は、上
記減速器の減速比が比較的大きい場合であっても、各回
転軸1c1〜1c4に内蔵されたサーボモータ19の回
転角度と角速度の検出できる。CPU11は、エンコー
ダ20が検出した角速度および回転角度をモータドライ
バ18を介して取り込み、アーム1a,1bの姿勢や、
塗装ガン2先端の座標を計算する。
【0030】図2は制御装置3を用いた塗装用ロボット
システムの構成例を示す斜視図である。この図におい
て、図49の各部に対応する部分には同一の符号を付
け、その説明を省略する。この図に示す塗装用ロボット
システムにおいては、制御装置103に代えて制御装置
3が新たに設けられている。また、本発明はオンライン
教示に使用される制御装置であるので、対応する構成品
を持たないオフライン教示装置104(図49参照)の
図示は省略する。
【0031】次に、図3を用いて本実施例で使用される
ロボット1のロボットベース座標系と数学モデルについ
て説明する。ロボットベース座標形は、図3に示す点o
を原点とし、互いに直行したx軸、y軸、z軸からなる
直交座標系である。回転軸1c1はθ1方向に回転し、
図3に示す平行リンク1dを介して、アーム1aを上下
に動かす。平行リンク1dのr1が床面と平行になった
とき(アーム1a,1bはスカラ型なので常に床面と平
行)の回転軸1c1の角度をθ1=0°とする。平行リ
ンク1dの一端に設けられた回転軸1c2はθ2方向に
回転し、アーム1aを左右に動かす。アーム1aがzx
平面上にあるときの回転軸1aの角度をθ2=0°とす
る。
【0032】アーム1aの他端に設けられた回転軸1c
3はθ3方向に回転し、アーム1bを左右に動かす。ア
ーム1bがアーム1aと一直線になったときの回転軸1
bの角度をθ3=0°とする。アーム1bの先端に設け
られた回転軸1c4はθ4方向に回転し、塗装ガン2先
端の向きを変化させる。塗装ガン2先端が鉛直方向に下
を向いたときの回転軸1c4の角度をθ4=0°する。
【0033】また、各回転軸4間の距離を図3に示すr
1,r2,r3,r4,r5,r6のように定義すると、塗装
ガン2の先端の座標(x,y,z)および回転角度α
は、 x= r1cosθ1+r2cosθ2+r3cos(θ2+θ3)−r6sinθ4 ・・・・・・・・・・・・(1) y= r2sinθ2+r3sin(θ2+θ3)+r5 ・・・・・・・・(2) z=−r1sinθ1−r4−r6cosθ4 ・・・・・・・・・・・・・(3) α= θ4 ・・・・・・・・・・・・・・・・・・・・・・・・・・・(4) のように表される。
【0034】上記の式(1)〜(4)より、各回転軸1
c1〜1c4の角度(θ1,θ2,θ3,θ4)と塗装ガン
2の先端の座標(x,y,z)および回転角度αとは1
対1に対応し合っていることが分かる。このように上記
の式(1)〜(4)を用いて、各回転軸1c1〜1c4
の角度(θ1,θ2,θ3,θ4)から塗装ガン2の先端の
座標(x,y,z)および回転角度αを求めることを運
動学変換という。逆に、上記の式(1)〜(4)を次式
(5)〜(16)に示すように変形することによって、
塗装ガン2の先端の位置(x,y,z,α)から各回転
軸1c1〜1c4の角度(θ1,θ2,θ3,θ4)を求め
ることを逆運動学変換という。
【数1】
【0035】このような構成において、まず初めに、制
御装置3が塗装ガン2先端を塗装範囲の外縁に沿って移
動させ、図4に示すように、床面にその塗装軌道を描か
せる方法について述べる。尚、本実施例による塗装用ロ
ボットシステムの制御系は、図5に示すような比例制御
系であるとする。この図において、θirefは目標値、u
ikはモータドライバ18への速度指令値、θifは位置フ
ィードバック値、kipは比例ゲイン、Gi(V)はサー
ボモータ19およびロボット1の伝達関数である。ここ
で、各パラメータは、最初の添字iがi=1のときは回
転軸1c1について、i=2のときは回転軸1c2につ
いて、i=3のときは回転軸1c3について、i=4の
ときは回転軸1c4についての値を表している。
【0036】以下の説明において、回転軸1ci(i=
1〜4)の最大角度θimaxおよび最小角度θiminとは、
ロボットの仕様によって決定される各回転軸1c1〜1
c4の回転範囲を示す値である。図4において、点A
は、回転軸1c1の角度を0°に、回転軸1c2の角度
を最大角度θ2max=120°に、回転軸1c3の角度を
0°に、回転軸1c4の角度を0°にした時の塗装ガン
2先端の位置である。軌道は、塗装ガン2先端が点A
にあるときに、回転軸1c1,1c3および1c4の角
度は変えずに、回転軸1c2の角度を最大角度θ2max
120°から最小角度θ2min=−90°まで変化させ、
塗装ガン2先端を点Aから点Bまで移動させた場合に、
塗装ガン2先端によって描かれる軌道である。軌道
は、塗装ガン2先端が点Bにあるときに、回転軸1c3
の角度を0°から−150°まで変化させ、塗装ガン2
先端を点Bから点Cまで移動させた場合に、塗装ガン2
先端によって描かれる軌道である。
【0037】軌道は、塗装ガン2先端が点Cにあると
きに、回転軸1c2の角度を最小角度θ2min=−90°
から最大角度θ2max=120°まで変化させ、塗装ガン
2先端を点Cから点Dまで移動させた場合に、塗装ガン
2先端によって描かれる軌道である。軌道は、塗装ガ
ン2先端が点Dにあるときに、回転軸1c3の角度を−
150°から0°まで変化させ、塗装ガン2先端を点D
から点Aまで移動させた場合に、塗装ガン2先端によっ
て描かれる軌道である。制御装置3は、これらの軌道を
塗装ガン2先端の座標から直接求める必要はなく、上述
した運動学変換式(1)〜(4)を用いることによって
各回転軸1c1〜1c4の角度から求めることができ
る。
【0038】次に、動作範囲指示装置17が、塗装ガン
2先端を図4に示す軌道を描くように移動させる処理に
ついて、図6〜図10に示すPAD図を参照して説明す
る。オペレータが、上記処理の開始を指示すると、動作
範囲指示装置17は図4に示すA点まで塗装ガン2の先
端を移動させた後、図6のステップSA1へ進む。ステ
ップSA1では、タイマ15が10msecのサンプリ
ング間隔で出力するパルス信号を受信する度に、モータ
ドライバ18の状態、および、位置フィードバック値
(図5のθif,但しi=1〜4)をRAM13へ読み込
み、ステップSA2へ進む。ステップSA2では、後述
する図7および図8に示す処理を行い、目標値(図5の
θiref,但しi=1〜4)を算出し、ステップSA3へ
進む。ステップSA3では、ステップSA1で読み込ん
だ位置フィードバック値θifとステップSA2で求めた
目標値θirefを基に速度指令値(図5のuik,但しi=
1〜4)を算出し、ステップSA4へ進む。ステップS
A4では、モータドライバ18へ速度指令値uikを出力
した後、一例の処理を終了する。この処理は前述のよう
に10msecごとに繰り返される。
【0039】続いて、図6のステップSA2に示した処
理、すなわち、動作範囲指示装置17が各回転軸1c1
〜1c4の目標値θirefを生成する処理について、図7
および図8に示すPAD図を参照して説明する。ここ
で、各回転軸1c1〜1c4の最大角度θimax,最小角
度θimin、および、回転軸1c2と回転軸1c3との相
対角度φの最大角度,最小角度は、ロボット1の仕様に
よってあらかじめ決定されている。尚、上記相対角度φ
は次に示す式(17)を用いて計算することができる。 φ=(−π/2)−(θ2+θ3)・・・・・・・・・・・・・・・・(17) また、以下に示すΔθi(但しi=1〜3)の値は5°
であるとする。
【0040】動作範囲指示装置17の処理が、図6に示
すステップSA2へ進むと、該処理は更に図7のステッ
プSB1へ進む。ステップSB1では、回転軸1c1の
目標値θ1refに、その最大角度θ1maxを代入し、ステッ
プSB2へ進む。ステップSB2では、該目標値θ1ref
が、その最小角度θ1minより小さい間、ステップSB3
からステップSB14の処理を繰り返す。ステップSB
3およびSB4では、回転軸1c3の目標値θ3refおよ
び回転軸1c2の目標値θ2refに、それぞれの最大角度
θ3maxおよび最大角度θ2maxを代入し、ステップSB5
へ進む。
【0041】ステップSB5では、回転軸1c2の目標
値θ2refが、その最小角度θ2minより大きい間、ステッ
プSB6の処理を繰り返す。ステップSB6では、回転
軸1c2の目標値θ2refからΔθ2を引く。ステップS
B5において、回転軸1c2の目標値θ2refが、その最
小角度θ2min以下になるとステップSB7へ進む。ステ
ップSB7では、回転軸1c2の目標値θ2refに、その
最小角度θ2minを代入し、ステップSB8へ進む。ステ
ップSB8では、回転軸1c3の目標値θ3refが、その
最小角度θ3minより大きく、かつ、回転軸1c2と回転
軸1c3との相対角度φが、その最小角度φminより大
きい間、ステップSB9の処理を繰り返す。ステップS
B9では、回転軸1c3の目標値θ3refからΔθ3を引
く。ステップSB8において、回転軸1c3の目標値θ
3refが、その最小角度θ3min以下となるか、あるいは、
回転軸1c2と回転軸1c3との相対角度φが、その最
小角度φmin以下になると、図8に示すステップSB1
0へ進む。
【0042】ステップSB10では、回転軸1c2の目
標値θ2refが、その最大角度θ2maxより小さい間、ステ
ップSB11の処理を繰り返す。ステップSB11で
は、回転軸1c2の目標値θ2refにΔθ2を加える。ス
テップSB10において、回転軸1c2の目標値θ2ref
が、その最大角度θ2max以上になると、ステップSB1
2へ進む。ステップSB12では、回転軸1c3の目標
値θ3refが、その最大角度θ3maxより小さい間、ステッ
プSB13の処理を繰り返す。ステップSB13では、
回転軸1c3の目標値θ3refにΔθ3を加える。ステッ
プSB12において、回転軸1c3の目標値θ3refが、
その最大角度θ3max以上になると、ステップSB14へ
進む。ステップSB14では、回転軸1c1の目標値θ
1refからΔθ1を引き、ステップSB2へ戻る。ステッ
プSB2において、回転軸1c1の目標値θ1refが、そ
の最小角度θ1m in以上になると一例の処理を終了する。
【0043】尚、図7および図8に示したΔθi(但し
i=1〜3)の値は5°であるとしたが、Δθiの値は
任意の値に設定することが可能であり、この値を大きく
すれば、塗装範囲の外縁を描くときの塗装ガン2先端の
移動速度は上がる。
【0044】図6〜図8に従って処理を行う場合、動作
範囲指示装置17が回転軸1c1をθ1min〜θ1maxに渡
って5°ずづ回転させるのに従って、塗装ガン2先端は
z軸方向に移動するので、複数の高さのxy平面におい
て塗装範囲の外縁を示すことになる。しかし、実際の教
示では、塗装の対象となるワークの高さに合わせて、特
定の高さのxy平面上の塗装範囲のみが必要となる場合
が多い。この場合、オペレータが、手元操作装置4を用
いて、塗装範囲を求めたいxy平面の高さを指定した
後、動作範囲指示装置17に上記処理の開始を指示する
と、動作範囲指示装置17は、図7に示すステップSB
1およびSB2の処理を行わず、任意のθ1に対してス
テップSB3〜SB14を1度だけ実行する。
【0045】次に、動作範囲指示装置17が、塗装ガン
2先端を塗装範囲の外縁に沿って移動させながら塗料を
吐出させ、塗装範囲の外縁を床面に描かせる処理につい
て図6および図9に示すPAD図を参照しながら説明す
る。尚、塗装ガン2先端と床面との距離が大きすぎる場
合には、オペレータは塗装ガン2先端延長用の治具等を
用いて塗装ガン2先端を床面に近づける。尚、図6に示
すPAD図の各ステップで行われる処理の説明は、既に
述べてあるので省略する。オペレータが上記処理の開始
を指示すると、動作範囲指示装置17は、図6に示すス
テップSA1を経てステップSA2へ進み、更にステッ
プSA2で図9に示す処理へ進む。
【0046】図9に示す処理は、ステップSC1および
SC13で塗装ガン2から塗料の吐出を開始および停止
することを除くと、図7および図8のステップSB3〜
SB13に示した処理と同じものであるので、その説明
を省略する。尚、アーム1bの先端に塗装ガン2の代わ
りに軌道描画用のペンを取り付け、上記ペンが図9に示
すステップSC1で床面に下ろされ、SC13で床面か
ら上げられることによって、塗装ガン2先端の軌道を床
面に描くことも考えられる。
【0047】次に、CPU11が、塗装範囲の内側にお
いて、塗装ガン2先端を図10に示すような軌道で移動
させるために、塗装ガン先端位置X
〔0〕〜X〔27〕
を求める処理について図11および図12に示すPAD
図を参照して説明する。尚、塗装ガン先端位置X〔t
p〕は、塗装ガン2の座標値(x,y,z)および塗装
ガン2の向きαからなる数値の組(x,y,z,α)で
あり、tpは図10に示した塗装軌道上において塗装ガ
ン2先端が移動していく順番を表す。つまり、塗装ガン
先端位置X
〔0〕〜X〔27〕が与えられると、制御装
置3は、塗装ガン2先端を、塗装ガン先端位置X
〔0〕
から、X〔1〕,X〔2〕・・・X〔26〕,X〔2
7〕という順番で移動させる。
【0048】オペレータが上記処理の開始を指示する
と、CPU11は図11のステップSD1へ進む。ステ
ップSD1では、塗装ガン先端位置X〔tp〕を初期化
し、さらにオペレータが手元操作装置4から入力した変
数zをRAM13に読み込み、ステップSD2へ進む。
ここで、変数zとは処理の対象となるxy平面のz軸に
沿った位置(本実施例では塗装ガン2は床面に向かって
塗装を行うので、該床面に平行な面の高さ)を表す。
【0049】ステップSD2では、変数i,j,tpに
0を、Δjに+1をそれぞれ代入し、また、ma_fお
よびl_ma_fをOFFとした後、ステップSD3へ
進む。ここで、iおよびjは図10に示す破線の各交点
(以下、参照点と称する)を指定する変数である。ま
た、Δjは参照点を参照していく方向を示す変数であ
り、Δjが+1の場合は図10に示すy軸の正の方向
へ、Δjが負の場合はy軸の負の方向へ、参照の対象と
なる参照点をずらしていき、その参照点が塗装ガン先端
位置X〔tp〕であるか否かを判定していく。ma_f
は直前に参照した参照点が塗装範囲内に入っていたか否
かを示す変数であり、ma_fがONの場合は、直前に
参照した参照点が塗装範囲内に入っていたことを、OF
Fの場合は入っていなかったことを示す。また、l_m
a_fは2つ前に参照した参照点を対象とする事を除く
と、ma_fと同じ変数である。
【0050】ステップSD3では、参照点の位置を示す
座標(x,y)のうちのxに0を代入し、ステップSD
4へ進む。ステップSD4では、xが図10に示すx
max以下の間、ステップSD5からステップSD17ま
での処理を繰り返す。ステップSD5では、yにymin
+Δy×jを、xにxmin+Δx×iを代入し、座標
(x,y)を参照点とし、ステップSD6へ進む。ステ
ップSD6では、上述した逆運動学変換を用いて、塗装
ガン2先端が上記参照点にあるときの各回転軸1c1〜
1c4の角度(θ1,θ2,θ3,θ4)を求め、ステップ
SD7へ進む。ステップSD7では、上記の式(17)
を用いて回転軸1c2と回転軸1c3との相対角度φを
求め、ステップSD8へ進む。
【0051】ステップSD8では、ステップSD6で求
めた各回転軸の角度およびステップSD7で求めた相対
角度φについて、それぞれの角度が、ロボット1の仕様
によって決定される回転範囲内にあるか否かを判断す
る。この判断結果が「YES」の場合には、ステップS
D9へ進む。ステップSD9では、ma_fがOFFで
あるか否かを判断する。この判断結果が「YES」であ
る場合には、ステップSD10へ進む。ステップSD1
0では、現在の塗装ガン2先端の位置(x,y,z,
α)を塗装ガン先端位置X〔tp〕へ代入し、ステップ
SD11へ進む。
【0052】ステップSD11では、l_ma_fがO
Nであるか否かを判断する。この判断結果が「YES」
である場合には、ステップSD12へ進む。ステップS
D12では、x〔tp−1〕に(x−Δx,y,z,
α)を、ma_fにONを代入し、ステップSD13へ
進む。一方、ステップSD11の判断結果が「NO」の
場合には、ステップSD12へは進まず、ステップSD
13へ進む。ステップSD13では、tpに1を加え、
l_ma_fにma_fの値を、ma_fにONを代入
し、iに1を加え、Δjに−1を乗じる。一方、ステッ
プSD9の判断結果が「NO」の場合には、ステップS
D14へ進む。ステップSD14では、l_ma_fに
ma_fを、ma_fにONを代入し、jにΔjを加え
る。
【0053】一方、ステップSD8の判断結果が「N
O」の場合には、ステップSD15へ進む。ステップS
D15では、ma_fがONであるか否かを判断する。
この判断結果が「YES」である場合には、ステップS
D16へ進む。ステップSD16では、Δjに−1を乗
じ、jにΔjを加え、yにymin+Δy×jを代入し、
(x,y,z,α)をX〔tp〕へ代入し、tpに1を
加える。次に、iに1を加え、xにxmin+Δx×iを
代入し、(x,y,z,α)をX〔tp〕に代入し、t
pに1を加える。最後に、l_ma_fにONを、ma
_fにONを代入し、tpに1を加える。
【0054】一方、ステップSD15の判断結果が「N
O」の場合には、ステップSD17へ進む。ステップS
D17では、l_ma_fにma_fを代入する。その
後、ma_fにOFFを代入し、jにΔjを加える。以
上述べたステップSD5〜SD17の処理を、ステップ
SD4においてxがxmax以下である間繰り返す。xが
maxを越えると、一例の処理を終了する。
【0055】次に、CPU11が、塗装ガン2先端が図
10に示す軌道を描きながら塗装ガン先端位置X〔t
p〕を順番に通過するようにロボット1を動かす処理に
ついて図13に示すPAD図を参照して説明する。オペ
レータが、上記処理の開始を指示すると、図13のステ
ップSE1へ進む。ステップSE1では、タイマ15が
10msecのサンプリング間隔で出力するパルス信号
を受信する度に、モータドライバ18の状態、および、
各回転軸1c1〜1c4の角度フィードバック値をRA
M13へ読み込み、ステップSE2へ進む。ステップS
E2では、塗装ガン先端位置X〔tp〕をRAM13か
ら読み出し、ステップSE3へ進む。ステップSE3で
は、上記逆運動学変換式(5)〜(16)を用いて、塗
装ガン先端位置X〔tp〕より各回転軸1c1〜1c4
の目標角度を算出し、ステップSE4へ進む。ステップ
SE4では、ステップSE1で読み込んだ位置フィード
バック値θifとステップSE3で求めた目標角度を基に
速度指令値を算出し、ステップSE5へ進む。ステップ
SE5では、モータドライバ18へ速度指令値uikを出
力した後、一例の処理を終了する。
【0056】次に、図14〜図16に示すように長方形
のワーク30が塗装範囲31からはみ出している場合
に、ワーク30を塗装範囲31の内側に移動させるため
の方向および移動量を求め、そのワーク30に対する教
示データを修正する処理について図17〜図19に示す
PAD図を参照して説明する。オペレータが上記処理の
開始を指示すると、CPU11は図17のステップSF
1へ進む。ステップSF1では、教示データを図1に示
すFDD14から同図に示すRAM13にロードし、ス
テップSF2へ進む。ステップSF2では、ステップS
F1でロードされた教示データを、長方形を示すデータ
に変換し、ステップSF3へ進む。具体的には、図20
に示すように、教示データがp0→p1→・・・→p11
いう軌道を描くデータである場合には、CPU11は、
この教示データを、上記軌道に外接する長方形Q01
23を示すデータに変換する。
【0057】ステップSF3では、limit_fをO
Nとし、ステップSF4へ進む。ここでlimit_f
は、ONである場合には上記長方形Q0123が塗装
範囲からはみ出していることを、OFFである場合には
上記長方形Q0123が塗装範囲内に収まっているこ
とを表す。ステップSF4では、limit_fがON
である間、あるいは、ステップSF5〜ステップSF2
5までの一連の処理の試行回数が10回以内である間
は、ステップSF5〜ステップSF25の処理を繰り返
す。ステップSF5では、hの値が0〜3である間、ス
テップSF6〜ステップSF15の処理を繰り返す。
【0058】ステップSF6では、hの値が3であるか
否かを判断する。この判断結果が「YES」の場合に
は、ステップSF7へ進む。ステップSF7では、X0
にQhを代入し、X1にQh+1を代入し、ステップSF9
へ進む。一方、ステップSF6の判断結果が「NO」の
場合、つまり、hの値が3である場合には、ステップS
F8へ進む。ステップSF8では、X0にQ3を代入し、
1にQ0を代入し、ステップSF9へ進む。
【0059】ステップSF9では、大きさが1である単
位ベクトルevを求め、ステップSF10へ進む。この
単位ベクトルevの向きは、始点が点X0,終点が点X1
であるベクトルと等しい。ステップSF10では、li
m_chkに0を代入し、ステップSF11へ進む。ス
テップSF11では、点X0と点X1とを結ぶ辺上の点に
ついて、単位ベクトルevが示す向きへ、長さΔlの間
隔ごとに、点X0から点X1まで参照点を移動させ、その
各点についてステップSF12〜ステップSF15の処
理を行う。ステップSF12では、上記逆運動学変換
(5)〜(16)を用いて、塗装ガン2先端が参照点に
ある場合のロボット1の各回転軸1c1〜1c4の角度
を求め、ステップSF13へ進む。ステップSF13で
は、ステップSF12で求めた各回転軸1c1〜1c4
の角度が、それぞれの最小角度θiminおよび最大角度θ
im axを越えているか否かを判断する。この判断結果が
「YES」の場合には、ステップSF14へ進む。ステ
ップSF14では、lim_chk〔h〕に1を加え、
ステップSF11へ戻る。ステップSF11において、
参照点が点X1に達すると、ステップSF15へ進む。
【0060】ステップSF15では、lim_chk
〔h〕にΔlを乗じた値を、点X0と点X1とを結ぶ辺の
長さで割り、ステップSF16へ進む。ステップSF1
6では、長方形Q0123の辺のうち、lim_ch
k〔h〕の値が最も大きい辺を選択する。その後、最も
大きいlim_chk〔h〕の値を1として、他の3つ
のlim_chk〔h〕の値を正規化し、ステップSF
17へ進む。ステップSF17では、各辺に対応するl
im_chk〔h〕の値に応じて、条件分岐を行う。図
14(a)に示すように、辺Q01と辺Q23とが塗装
範囲からはみ出す場合、つまり、lim_chk
〔0〕
とlin_chk〔2〕とが共に1である場合には、ス
テップSF18へ進む。ステップSF18では、図14
(a)に示すように長方形Q0123の対角線の交点
Gを中心として長方形Q0123を90°回転させ
る。
【0061】また、ステップSF17の条件分岐におい
て、図14(b)に示すように、長方形Q0123
全ての辺が塗装範囲からはみ出す場合には、ステップS
F19へ進む。ステップSF19では、この長方形Q0
123を塗装範囲の内側に収めることは不可能であ
り、このロボットシステムを用いて塗装することはでき
ないと判断する。また、ステップSF17の条件分岐に
おいて、図15(a)に示すように、長方形Q012
3の辺のうち、塗装範囲からはみ出す長さが一番大き
い辺が辺Q01である場合、つまり、lim_chk
〔0〕が1である場合には、ステップSF20へ進む。
ステップSF20では、図15(a)に示すように、長
方形Q0123をx軸の負の方向へΔxだけ平行移動
させる。
【0062】以下、ステップSF17の条件分岐におい
て、長方形Q0123の辺のうち、塗装範囲からはみ
出す長さが一番大きい辺が、辺Q12である場合(図1
5(b)参照)、つまり、lim_chk〔1〕が1で
ある場合には、ステップSF21へ進み、ステップSF
21では、長方形Q0123をy軸の正の方向へΔy
だけ平行移動させる。塗装範囲からはみ出す長さが一番
大きい辺が、辺Q23である場合(図16(a)参
照)、つまり、lim_chk〔2〕が1である場合に
は、ステップSF22へ進み、ステップSF22では、
長方形Q0123をx軸の正の方向へΔxだけ平行移
動させる。塗装範囲からはみ出す長さが一番大きい辺
が、辺Q30である場合(図16(b)参照)、つま
り、lim_chk〔3〕が1である場合には、ステッ
プSF23へ進み、ステップSF23では、長方形Q0
123をy軸の負の方向へΔyだけ平行移動させ
る。
【0063】また、ステップSF17の分岐において、
長方形Q0123の全ての辺が塗装範囲内に収まって
いる場合、つまり、lim_chk
〔0〕〜lim_c
hk〔3〕が全て0である場合には、ステップSF24
へ進む。ステップSF24では、この長方形Q012
3は塗装範囲の内側に収まっており、平行移動は行う
必要がなく、現在の位置で長方形Q0123内の塗装
の軌道を全て再生が可能であるとして、limit_f
にOFFを代入する。ステップSF17における条件分
岐と、各分岐先のステップSF18〜SF24における
処理を終了すると、ステップSF25へ進む。
【0064】ステップSF25では、ステップSF5〜
SF24の一連の処理を行った試行回数をインクリメン
トし、ステップSF4へ戻る。ステップSF4におい
て、limit_fがOFF、または、上記試行回数が
10回になると、ステップSF26へ進む。ステップS
F4〜SF25に示す処理の結果、ステップSF5〜S
F25で行った最大10回の平行移動または回転移動に
もかかわらず長方形Q0123が塗装範囲の外にはみ
出している場合には、limit_fはONである。ま
た、長方形Q0123が塗装範囲の中に収まりきった
場合には、limit_fはOFFとなる。
【0065】ステップSF26では、limit_fが
ONであるか否か、あるいは、長方形Q0123が大
きすぎて塗装範囲の中に収まりきらないか否かを判断す
る。この判断において、limit_fがON、あるい
は、長方形Q0123が大きすぎると判断された場合
には、ステップSF27へ進む。ステップSF27で
は、手元操作装置4に設けられた液晶表示装置に図21
に示すように「ワークガ オオキスギマス」というメッ
セージを出力する。一方、ステップSF26の判断にお
いて、limit_fがOFFであり、かつ、長方形Q
0123が大きすぎると判断されていない場合には、
ステップSF28へ進む。ステップSF28では、教示
データを、ワーク移動後の教示データに変換し、ステッ
プSF29へ進む。ステップSF29では、手元操作装
置4に設けられた液晶表示装置に「キョウジデータ ノ
ヘンカンカンリョウ」というメッセージを出力する。
さらに、この変換された教示データを用いてロボット1
を動かし、オペレータに対し、新しい塗装の軌道を示し
た後、一例の処理を終了する。
【0066】ところで、塗装ガン2先端から吐出される
塗料は、ある程度の範囲に広がって吹き付けられるの
で、図22に示すように、塗装範囲31に対して、教示
データを変換した上記長方形Q0123のはみ出して
いる部分の面積が微小である場合には、塗装の品質には
影響を及ぼさない場合がある。このような場合には、長
方形Q0123が塗装範囲からはみ出している場合で
あっても、図18のステップSF18およびSF20〜
SF23に示した回転または平行移動処理を行う必要が
なく、現在の教示データを補正するだけで良い。このよ
うな場合における教示データの補正方法について図23
および24に示すPAD図を参照して説明する。
【0067】オペレータが上記処理の開始を指示する
と、CPU11の処理は図23のステップSG1へ進
む。ステップSG1およびSG2の処理は、上述したス
テップSF1およびSF2(図17参照)に示した処理
と同じものである。ステップSG3では、hの値が0〜
3である間、ステップSG4〜SG15の処理を繰り返
す。ステップSG4では、長方形Q0123の頂点Q
hへ塗装ガン2先端を移動させ、そのときのロボット1
の姿勢における各回転軸1c1〜1c4の角度θ1〜θ4
を求め、limit_fにOFFを代入し、ステップS
G5へ進む。この時、上記逆運動学変換式(5)〜(1
6)を用いても角度θ1〜θ4を求めることができない場
合には、図22に示すように、長方形Q0123の辺
30と塗装範囲外縁との交点をQ’0とし、辺Q12
と塗装範囲外縁との交点Q’1とし、このQ’h(h=
0,1)に塗装ガン2先端を移動させたときのロボット
1の姿勢における各回転軸1c1〜1c4の角度θ1
θ4を求める。この場合、長方形Q0123の頂点の
位置を補正したので、limit_fをONする。
【0068】ステップSG5では、iの値が1〜4であ
る間、ステップSG6〜SG9の処理を繰り返す。ステ
ップSG6では、ステップSG4で求めたθiがその最
大角度θimaxより大きいか否かを判断する。この判断結
果が「YES」の場合には、ステップSG7へ進む。ス
テップSG7では、limit_fにONを代入し、θ
iにθimaxを代入し、ステップSG10へ進む。一方、
ステップSG6の判断結果が「NO」の場合には、ステ
ップSG8へ進む。ステップSG8では、ステップSG
4で求めたθiがその最小角度θiminより小さいか否か
を判断する。この判断結果が「YES」の場合には、ス
テップSG9へ進む。ステップSG9では、limit
_fにONを代入し、θiにθiminを代入し、ステップ
SG10へ進む。
【0069】ステップSG10では、limit_fが
ONであるか否かを判断する。この判断結果が「YE
S」の場合には、ステップSG11へ進む。ステップS
G11では、ロボット1の各回転軸1c1〜1c4の角
度がそれぞれステップSG6〜SG9にて修正した角度
θ1〜θ4である場合の塗装ガン2先端の位置を求め、そ
の位置をQ’hとし、ステップSG11へ進む。ステッ
プSG12では、長方形Q0123の頂点Qhと、ス
テップSG11で求めた塗装ガン2の位置Q’hとの距
離Δqを次に示す式(18)を用いて求め、ステップS
G13へ進む。 Δq=|Q’h−Qh|・・・・・・・・・・・・・・・・・・・・・(18)
【0070】ステップSG13では、Δqが所定の値ε
より小さいか否かを判断する。εはオペレータが手元操
作装置4を用いて、あらかじめ制御装置3内のRAM1
3に設定してある値である。本実施例では、ε=50c
mとする。ステップSG13の判断結果が「YES」で
ある場合には、ステップSG14へ進む。ステップSG
14では、QhにQh’を代入し、ステップSG3へ戻
る。一方、ステップSG13の判断結果が「NO」の場
合には、ステップSG15へ進む。ステップSG15で
は、現在の教示データを再生した場合、高い塗装品質が
得られないこと、あるいは、塗装が不可能であることを
手元操作装置4の表示部に表示し、ステップSG3へ戻
る。ステップSG3においてhの値が3を越えると、一
例の処理を終了する。
【0071】次に、図25に示すように、ワークがター
ンテーブルの上に載っており、所定の回転中心Cを中心
とする円弧上を移動し、塗装範囲の内側に入ってくる場
合を考える。この場合において、ワークを移動させる上
記ターンテーブルの回転角度を求める方法、およびその
回転によって移動するワークに対する教示データの変換
方法について図26〜図28に示すPAD図を参照して
説明する。オペレータが、上記処理の開始を指示する
と、CPU11は図26のステップSH1へ進む。ステ
ップSH1では、ワークの教示データ、および、ターン
テーブルの情報をFDD14からRAM13へ読み出
し、ステップSH2へ進む。ステップSH2〜SH16
で行う処理は、図17を参照して説明したステップSF
2〜SF16の処理と同じものである。ステップSH1
6に示す処理を終了すると、図27に示すステップSH
17へ進む。
【0072】ステップSH17では、各辺に対応するl
im_chk〔h〕の値に応じて、条件分岐を行う。図
25のAに示すように、長方形Q0123の全ての辺
が塗装範囲からはみ出している場合、つまり、lim_
chk〔h〕が全て1である場合には、ステップSH1
8へ進み、ターンテーブルを180°回転させる。ま
た、ステップSH17の条件分岐において、図25のB
に示すように、長方形Q0123の辺のうち、塗装範
囲からはみ出す長さが一番大きい辺が辺Q30である場
合、つまり、lim_chk〔3〕が1である場合に
は、ステップSH19へ進み、ターンテーブルを右回り
方向へΔφ回転させる。同様に、ステップSH17の条
件分岐において、図25のCに示すように、長方形Q0
123の辺のうち、塗装範囲からはみ出す長さが一
番大きい辺が辺Q12である場合、つまり、lim_c
hk〔1〕が1である場合には、ステップSH20へ進
み、ターンテーブルを左回り方向へΔφ回転させる。
【0073】また、図25のDに示すように、長方形Q
0123の全ての辺が塗装範囲内に入っている場合、
つまり、lim_chk〔h〕が全て0である場合に
は、ステップSH21へ進み、ターンテーブルは回転さ
せず、limit_fにOFFを代入する。ステップS
H17における条件分岐と、各分岐先のステップSH1
8〜SH21における処理を終了すると、ステップSH
22へ進む。ステップSH22では、ステップSH5〜
SF22の処理を行った試行回数をインクリメントし、
ステップSH4へ戻る。ステップSH4において、li
mit_fがOFF、または、ステップSH5〜SH2
2の処理を行った試行回数が10回より大きいならば、
ステップSH23へ進む。
【0074】ステップSH23では、limit_fが
ONであるか否かを判断する。この判断結果が「YE
S」の場合には、ステップSH24へ進む。ステップS
H24では、図21に一例を示すようなメッセージを、
手元操作装置4の表示部へ出力する。一方、ステップS
H23の判断結果が「NO」の場合には、ステップSH
25へ進む。ステップSH25では、教示データを、ス
テップSH18〜SH20で求めたターンテーブルの回
転角度に基づいて変換し、ステップSH26へ進む。ス
テップSH26では、ターンテーブルに、ステップSH
18〜SH20で求めた回転角度を送信する。ステップ
SH24またはSH26の処理を終了した後、一例の処
理を終了する。図25に示すように、ワークがターンテ
ーブルの上に載っており、所定の回転中心Cを中心とす
る円弧上を移動する場合に、上記図26〜図28に示す
処理を適用すると、制御装置3はターンテーブルに対し
てワークの位置の変更を自動的に指示するので、オペレ
ータはワークの位置を厳しく決めて配置する必要はな
く、塗装品質が向上する。
【0075】次に、塗装ガン2先端を、塗装範囲内の各
座標点から所定の方向へ1m/secの速度で移動させ
る場合に、各回転軸1c1〜1c4の最大角速度を移動
時の各回転軸1c1〜1c4の角速度で割った角速度比
を各回転軸1c1〜1c4について求め、それらのうち
最小の値である角速度能力値を各座標点について求める
処理について図29に示すPAD図を参照して説明す
る。尚、これまで示した実施例では、z軸方向の値を定
数ωとする特定のxy平面を対象とする処理について説
明してきたが、図29に示す処理では、z軸方向の値も
可変とした3次元空間内の全ての座標点を対象とした処
理について説明する。
【0076】オペレータが上記処理の開始を指示する
と、図29のステップSI1へ進む。ステップSI1で
は、オペレータが手元操作装置4を用いて任意の速度ベ
クトルvvを入力すると、その値をRAM13に読み込
み、ステップSI2へ進む。ステップSI2では、速度
ベクトルvvの大きさを求め、その値を変数velに代
入し、ステップSI3へ進む。ステップSI3では、速
度ベクトルvvと同じ向きであり、かつ、その大きさが
1mである方向ベクトルevを次に示す式(19)を用
いて算出し、ステップSI4へ進む。 ev=vv/vel ・・・・・・・・・・・・・・・・・・・・・・(19)
【0077】ステップSI4〜SI9では、変数iの値
を0〜lに、変数jの値を0〜mに、変数kの値を0〜
nに変化させていき、それぞれの値を次に示す式(2
0)〜(22)に代入して上記角速度能力値を算出する
参照点の座標値(x,y,z)を求め、ステップSH1
0へ進む。 x=xmin+Δx×i ・・・・・・・・・・・・・・・・・・・・(20) y=ymin+Δy×j ・・・・・・・・・・・・・・・・・・・・(21) z=zmin+Δz×k ・・・・・・・・・・・・・・・・・・・・(22) ステップSI10では、上述した逆運動学変換式(5)
〜(16)を用いて、塗装ガン2先端が上記参照点
(x,y,z)にある場合の各回転軸1c1〜1c4の
角度θ1〜θ4を算出し、ステップSH11へ進む。ステ
ップSI11では、ステップSI10で求めた角度θ1
〜θ4を用いて逆ヤコビ行列JM -1を求め、ステップSH
12へ進む。ここでヤコビ行列JMは、上記運動学変換
式(1)〜(4)をθ1〜θ4で偏微分した4×4の行列
である。
【0078】ステップSI12では、各回転軸1c1〜
1c4の角速度(d/dt)θiを次に示す式(23)を用い
て求め、ステップSH13へ進む。尚、上述したように
(d/dx)はxについて1回微分することを、(d/dx)2はx
について2回微分することを示す。また、(d/dt)θM
〔(d/dt)θ1,(d/dt)θ2,(d/dt)θ3,(d/dt)θ4T
あり、(d/dt)θ1は回転軸1c1の角速度を、(d/dt)θ2
は回転軸1c2の角速度を、(d/dt)θ3は回転軸1c3
の角速度を、(d/dt)θ4は回転軸1c4の角速度をそれ
ぞれ表している。また、JM -1は上記ヤコビ行列JMの逆
行列である。 (d/dt)θM=JM -1・ev ・・・・・・・・・・・・・・・・・・・(23)
【0079】ステップSI13では、各回転軸1c1〜
1c4について、ステップSI12で求めた角速度(d/d
t)θiと、最大角速度(d/dt)θimaxとの比Riを次に示す
式(24)を用いて求め、ステップSH24へ進む。 Ri=(d/dt)θimax/(d/dt)θi (但し、i=1〜4)・・・・・(24) ステップSI14では、R1〜R4のうちの最小値を、上
記座標点(x,y,z)における速度能力値として、配
列v〔i,j,k〕に格納する。以上述べたステップS
I10〜SI14の処理を、ステップSI4〜SI9で
その座標値が求められる全ての参照点(x,y,z)に
ついて繰り返した後、一例の処理を終了する。
【0080】次に、速度ベクトルvvの大きさvelよ
り大きい上記速度能力値を示す座標点の集合を速度能力
領域と定義し、該速度能力領域の外縁に沿って塗装ガン
2先端を移動させる場合に、制御装置3が塗装ガン2先
端を順次通過させていく座標点tcpを求める処理につ
いて図30〜図34に示すPAD図を参照して説明す
る。尚、図29に示した処理では、z軸方向の値も可変
とした3次元空間を対象として処理を行ったが、図30
〜図34に示す処理では、図35に示すようにzを定数
ωに固定した所定のxy平面上を対象として処理を行
う。
【0081】オペレータが上記処理の開始を指示する
と、図30のステップSJ1へ進む。ステップSJ1で
は、imin,i_limmaxにはlを、jmin,j_li
maxにはmを、i,j,imax,jmax,i_li
min,j_limmin,file_numには0を代入
し、ステップSJ2へ進む。ここで、iおよびjは、図
35に示すxy平面において処理の対象となる座標点
(参照点)を指定するための変数である。また、
min,imax,jmin,jmaxは、上記参照点の集合であ
る領域を指定する定数であり、この領域は、具体的には
図35に示す(i,j)=(0,0),(l,0),
(0,m),(l,m)の4点を頂点とする長方形の内
側を指す。また、i_limmin,i_limmax,j_
limmin,j_limmaxは、上記参照点(i,j)が
上記長方形の内側にあるか否かの判断に使用される変数
である。また、file_numは処理の対象となる教
示データを識別するためのファイル番号である。
【0082】ステップSJ2では、l_status,
statusをNOとし、counterに0を、Δ
i,Δjに+1を、dirにxを代入し、ステップSJ
3へ進む。ここで、statusは、その値がYESな
らば直前に処理した参照点における塗装ガン2先端の移
動速度が速度velより大きいことを、NOならば該移
動速度が速度velより小さいことを示す。l_sta
tusは、2つ前に処理した参照点における塗装ガン2
先端の移動速度についてstatusと同じ内容を示
す。また、dirは塗装ガン2先端が速度領域の外縁に
沿って移動する場合の移動方向を示し、dirの値がx
の場合には塗装ガン2先端はx軸方向へ移動しているこ
とを、またyの場合にはy軸方向へ移動していることを
示している。また、ΔiおよびΔjは変数iおよびjの
増減量を、counterは塗装ガン2先端が座標点t
cpを通過していく順番を示している。
【0083】ステップSJ3では、v〔i,j,ω〕が
速度ベクトルvvの大きさvelより小さい間、ステッ
プSJ4〜SJ12の処理を繰り返す。ステップSJ4
では、iにΔiを加え、ステップSJ5へ進む。ステッ
プSJ5では、iがi_limmaxより大きいか否かを
判断する。この判断結果が「YES」の場合には、ステ
ップSJ6へ進む。ステップSJ6では、Δiに−1を
かけ、ステップSJ7へ進む。ステップSJ7では、i
にi_limmaxを代入し、ステップSJ8へ進む。ス
テップSJ8では、jにΔjを加え、ステップSJ9へ
進む。一方、ステップSJ5の判断結果が「NO」であ
る場合には、そのままステップSJ9へ進む。
【0084】ステップSJ9では、iがi_limmin
より小さいか否かを判断する。この判断結果が「YE
S」の場合には、ステップSJ10へ進む。ステップS
J10では、Δiに−1をかけ、ステップSJ11へ進
む。ステップSJ11では、iにi_limminを代入
し、ステップSJ12へ進む。ステップSJ12では、
jにΔjを加え、ステップSJ3へ戻る。一方、ステッ
プSJ9の判断結果が「NO」である場合には、そのま
まステップSJ3へ戻る。ステップSJ3において、v
〔i,j,ω〕が速度ベクトルvvの大きさvel以上
になると、ステップSJ13へ進む。
【0085】ステップSJ13では、xにxmin+Δx
×iを、yにymin+Δy×jを代入し、ステップSJ
14へ進む。ステップSJ14では、ステップSJ13
で求めたx,yで指定される点(x,y)を教示点とし
てtcp〔counter〕へ代入し、counter
に1を加え、statusにYESを代入し、ステップ
SJ15へ進む。ステップSJ15では、tcp〔co
unter〕がtcp
〔0〕と等しくない間、ステップ
SJ16〜SJ50の処理を繰り返す。図32に示すス
テップSJ16では、v〔i,j,ω〕が速度ベクトル
vの大きさvelより大きいか否かを判断する。この
判断結果が「YES」の場合には、ステップSJ17へ
進む。ステップSJ17では、dirがxであるか否か
を判断する。この判断結果が「YES」の場合には、図
33に示すステップSJ18へ進む。
【0086】ステップSJ18では、v〔i,j−Δ
j,ω〕が速度ベクトルvvの大きさvelより大きい
か否かを判断する。この判断結果が「YES」の場合に
は、ステップSJ19へ進む。ステップSJ19では、
dirにyを代入し、Δjに−1をかけ、図32に示す
ステップSJ32にへ進む。一方、ステップSJ18の
判断結果が「NO」の場合には、ステップSJ20へ進
む。ステップSJ20では、xにxmin+Δx×iを、
yにymin+Δy×jを代入し、tcp〔counte
r〕に点(x,y,ω)を教示点として代入する。その
後、conterに1を、iにΔiを加え、ステップS
J21へ進む。
【0087】ステップSJ21では、iがi_lim
minより小さいか否かを判断する。この判断結果が「Y
ES」の場合には、ステップSJ22へ進む。ステップ
SJ22では、iにi_limminを代入し、jにΔj
を加え、Δiに−1をかけ、ステップSJ23へ進む。
一方、ステップSJ21の判断結果が「NO」の場合に
は、そのままステップSJ23へ進む。ステップSJ2
3では、iがi_limmaxより大きいか否かを判断す
る。この判断結果が「YES」の場合には、ステップS
J24へ進む。ステップSJ24では、iにi_lim
maxを代入し、jにΔjを加え、Δiに−1をかけ、図
32に示すステップSJ32へ進む。
【0088】一方、図32に示すステップSJ17の判
断結果が「NO」の場合には、図33に示すステップS
J25へ進む。ステップSJ25では、v〔i−Δi,
j,ω〕が速度ベクトルvvの大きさvelより大きい
か否かを判断する。この判断結果が「YES」の場合に
は、ステップSJ26へ進む。ステップSJ26では、
dirにxを代入し、Δiに−1をかけ、図32に示す
ステップSJ32に進む。一方、ステップSJ25の判
断結果が「NO」の場合には、ステップSJ27へ進
む。ステップSJ27では、xにxmin+Δx×iを、
yにymin+Δy×jを代入し、tcp〔counte
r〕に点(x,y,ω)を教示点として代入する。その
後、conterに1を、jにΔjを加え、ステップS
J28へ進む。
【0089】ステップSJ28では、jがj_lim
minより小さいか否かを判断する。この判断結果が「Y
ES」の場合には、ステップSJ29へ進む。ステップ
SJ29では、jにj_limminを代入し、iにΔi
を加え、Δjに−1をかけ、ステップSJ30へ進む。
一方、ステップSJ28の判断結果が「NO」である場
合には、そのままステップSJ30へ進む。
【0090】ステップSJ30では、jがj_lim
maxより大きいか否かを判断する。この判断結果が「Y
ES」の場合には、ステップSJ31へ進む。ステップ
SJ31では、jにj_limmaxを代入し、iにΔi
を加え、Δjに−1をかけ、図32に示すステップSJ
32へ進む。一方、ステップSJ30の判断結果が「N
O」である場合には、そのままステップSJ32へ進
む。ステップSJ32では、l_statusに現在の
statusの値を、statusにNOを代入し、図
30に示すステップSJ15へ戻る。
【0091】一方、図32に示すステップSJ16の判
断結果が「NO」の場合には、ステップSJ33へ進
む。ステップSJ33では、statusがYESであ
るか否かを判断する。この判断結果が「YES」の場合
には、ステップSJ34へ進む。ステップSJ34で
は、dirがxであるか否かを判断する。この判断結果
が「YES」の場合には、ステップSJ35へ進む。ス
テップSJ35では、dirにyを代入し、iからΔi
を引き、jにΔjを加える。さらに、l_status
に現在のstatusの値を、statusにNOを代
入し、図34に示すステップSJ37へ進む。
【0092】一方、図32に示すステップSJ34の判
断結果が「NO」の場合には、ステップSJ36へ進
む。ステップSJ36では、dirにxを代入し、jか
らΔjを引き、iにΔiを加える。さらに、l_sta
tusに現在のstatusの値を、statusにN
Oを代入し、図34に示すステップSJ37へ進む。ス
テップSJ37では、statusがNOであるか否か
を判断する。この判断結果が「YES」の場合には、ス
テップSJ38へ進む。ステップSJ38では、l_s
tatusがNOであるか否かを判断する。この判断結
果が「YES」の場合には、ステップSJ39へ進む。
ステップSJ39では、dirがyであるか否かを判断
する。この判断結果が「YES」の場合には、ステップ
SJ40へ進む。ステップSJ40では、jにΔjを加
え、図30に示すステップSJ15へ戻る。一方、ステ
ップSJ39の判断結果が「NO」の場合には、ステッ
プSJ41へ進む。ステップSJ41では、iにΔiを
加え、図30に示すステップSJ15へ戻る。
【0093】一方、ステップSJ38の判断結果が「N
O」の場合には、ステップSJ42へ進む。ステップS
J42では、dirがxであるか否かを判断する。この
判断結果が「YES」である場合には、ステップSJ4
3へ進む。ステップSJ43では、v〔i,j−Δj,
ω〕が速度ベクトルvvの大きさvelより大きいか否
かを判断する。この判断結果が「YES」の場合には、
ステップSJ44へ進む。ステップSJ44では、tc
p〔counter〕に(i,j−Δj,ω)を教示点
として代入し、図30に示すステップSJ15へ戻る。
一方、ステップSJ43の判断結果が「NO」の場合に
は、ステップSJ45へ進む。ステップSJ45では、
dirにyを代入し、Δjに−1を掛け、iにΔiを加
え、ステップSJ46へ進む。ステップSJ46では、
l_statusにstatusの値を代入し、sta
tusにNOを代入し、図30に示すステップSJ15
へ戻る。
【0094】一方、ステップSJ42の判断結果が「N
O」の場合には、ステップSJ47へ進む。ステップS
J47では、v〔i−Δi,j,ω〕が速度ベクトルv
vの大きさvelより大きいか否かを判断する。この判
断結果が「YES」の場合には、ステップSJ48へ進
む。ステップSJ48では、tcp〔counter〕
に(i−Δi,j,ω)を教示点として代入し、図30
に示すステップSJ15へ戻る。一方、ステップSJ4
7の判断結果が「NO」の場合には、ステップSJ49
へ進む。ステップSJ49では、dirにxを代入し、
Δiに−1を掛け、jにΔjを加え、ステップSJ50
へ進む。ステップSJ50では、l_statusにs
tatusの値を代入し、statusにNOを代入
し、図30に示すステップSJ15へ戻る。
【0095】上記ステップSJ14〜SJ50の処理を
tcp〔counter〕がtcp
〔0〕と等しくなる
まで繰り返し、ステップSJ15において、tcp〔c
ounter〕がtcp
〔0〕と等しくなると、ステッ
プSJ51へ進む。ステップSJ51では、ステップS
J1で設定した各変数の初期値を変更し、動作範囲全域
をチェックするまでステップSJ16〜SJ50の処理
を行う。具体的には、i_limminにiminを、i_l
immaxにlを、j_limminにjminを、j_lim
maxにmを代入し、再びステップSJ15〜SJ50の
処理を行い、それらの処理の終了後、さらにステップS
J51で、i_limminに0を、i_limmaxにi
maxを、j_limminに0を、j_limmaxにjmax
代入し、再びステップSJ15〜SJ50の処理を行
い、一例の処理を終了する。
【0096】図30〜図34のPAD図に示した処理を
用いると、塗装ガン2は塗料を吐出しながら速度能力領
域の外縁に沿って移動するので、図36に示すように網
5の上にワーク6を置いて網塗りを行う場合には、オペ
レータは、網5の上に実際に速度能力領域を描かせ、そ
の網5に描かれた速度能力領域内にワーク6を設置する
ことができる。
【0097】次に、CPU11が、速度能力領域の内部
において図37に示すような軌道で、塗装ガン2先端を
移動させる処理について図38に示すPAD図を参照し
て説明する。オペレータが上記処理の開始を指示する
と、CPU11は図38に示すステップSK1に進む。
ステップSK1では、iにlを、jに0を、Δiに−1
を、Δjに+1を代入し、ステップSK2へ進む。ステ
ップSK2では、iが0より大きい間、ステップSK3
〜SK12の処理を繰り返す。ステップSK3では、v
〔i,j,ω〕が速度ベクトルvvの大きさvelより
大きいか否かを判断する。この判断結果が「YES」の
場合には、ステップSK4へ進む。ステップSK4で
は、xにxmin+Δx×iを、yにym in+Δy×jを代
入し、ステップSK5へ進む。ステップSK5では、塗
装ガン2先端を点(x,y,ω)へ移動させ、ステップ
SK6へ進む。ステップSK6では、塗装ガン2から塗
料を吐出、または、制御装置3に内蔵されたスピーカ1
6から警告音を鳴らし、ステップSK8へ進む。
【0098】一方、ステップSK3の判断結果が「N
O」の場合には、ステップSK7へ進む。ステップSK
7では、塗装ガン2は塗料を吐出せず、あるいは制御装
置3は上記警告音を鳴らさず、ステップSK8へ進む。
ステップSK8では、jにΔjを加え、ステップSK9
へ進む。ステップSK9では、jがmより大きいか否か
を判断する。この判断結果が「YES」の場合には、ス
テップSK10へ進む。ステップSK10では、jにm
を、Δjに−1を代入し、iにΔiを加え、ステップS
K11へ進む。一方、ステップSK9の判断結果が「N
O」の場合には、そのままステップSK11へ進む。
【0099】ステップSK11では、jが0より小さい
か否かを判断する。この判断結果が「YES」の場合に
は、ステップSK12へ進む。ステップSK12では、
jに0を、Δjに+1を代入し、iにΔiを加えステッ
プSK2へ戻る。一方、ステップSK11の判断結果が
「NO」の場合には、そのままステップSK2へ戻る。
ステップSK2において、iが0より大きいか否かを判
断し、ステップSK3〜SK12の処理をiが0より大
きい間繰り返した後、一例の処理を終了する。
【0100】図38のPAD図に示した処理を行うと、
塗装ガン2先端は図37に示すような軌道を床面に描く
が、この他に、塗装ガン2先端が速度能力領域からはみ
出した場合に、スピーカ16より警告音を鳴らすように
しても良い。また、制御装置3にパトライトを設け、塗
装ガン2先端が速度能力領域からはみ出した場合に、上
記警告音の代わりに該パトライトを点滅させたり、該パ
トライトの点灯色を切り換えても良い。また、図38の
PAD図に示した処理を行うと、塗装ガン2先端は図3
7に示すような軌道を描きながら移動するので、オペレ
ータは、図39に示すように、そのとき床面に描かれた
軌道に合わせてワーク6を置くことができる。
【0101】次に、塗装ガン2先端を塗装範囲内の各座
標点から所定の方向へ所定の速度で移動させる場合にお
いて、各回転軸1c1〜1c4の角速度を各回転軸1c
1〜1c4の最大角速度で割った値を上記各座標点につ
いて求め、この値を考慮する事によって、ロボット1が
その性能を最も引き出せる位置へワークを移すように教
示データを変換する処理について図40および図41に
示すPAD図を参照して説明する。オペレータ上記処理
の開始を指示すると、CPU11は図40のステップS
L1へ進む。ステップSL1では、オペレータの教示操
作により教示データを作成、あるいは、既に教示の終了
した教示データをRAM13にロードする。また、CP
U11は、ロボット1の動作を調整する各種パラメータ
をRAM13にロードする。これらの処理の後、ステッ
プSL2へ進む。
【0102】ステップSL2では、上記教示データによ
って決定される塗装作業面の上記ロボットベース座標系
における位置および方向を算出し、ステップSL3へ進
む。ステップSL3では、教示データ内の教示点のう
ち、1番目に教示された教示点と2番目に教示された教
示点とを結ぶ直線を求め、その直線方向を塗装ガン2先
端の動作方向とする。ステップSL4では、先に図20
に示したように、教示データを長方形Q0123を表
すデータへ変換し、該長方形Q0123の対角線の交
点をワークの中心とし、ステップSL5へ進む。
【0103】ステップSL5では、変数xをxmin〜x
maxの範囲において所定距離Δxの間隔で変化させなが
ら、該変数xによってx軸上の座標値を指定されるyz
平面に対して、ステップSL6〜SL7の処理を行う。
ここでxmin,xmaxは、ロボット1の仕様によって決定
される上記塗装範囲において、塗装ガン2先端のx軸方
向の移動範囲を指定する値であり、以下に述べる
min,ymaxおよびzmin,zm axもそれぞれ同様に上記
塗装範囲における塗装ガン2先端のy軸方向およびz軸
方向の移動範囲を指定する。
【0104】ステップSL6では、塗装ガン2先端がy
軸に沿った方向へ移動する場合において、教示によって
与えられた速度以上の速度で移動することのできる領域
の面積(以下、上記領域の面積を速度領域面積と称す
る)を求める。そして、求めた上記速度領域面積が変数
yx_v〔i〕の値より大きい場合には、該変数yx_
v〔i〕の値を上記速度領域面積に更新し、この時のx
の値をyx〔i〕に格納し、ステップSL7へ進む。
【0105】ステップSL7で行う処理の説明に移る前
に、ステップSL6において速度領域面積を求める具体
的計算方法を以下に述べる。塗装ガン2先端の位置をw
とすると、この位置wは上記運動学変換式(1)〜
(4)によって各回転軸1c1〜1c4の角度の関数と
して表現できる。ここで、 w=f(θ)・・・・・・・・・・・・・・・・・・・・・・・・・(24) とする。塗装ガン2先端の速度は、
【数2】 と表すことができる。ここでf(θ)のθによる偏微分
はヤコビ行列JMである。
【0106】式(25)より、各軸の角速度(d/dt)θ
は、 (d/dt)θ=J-1・(d/dt)w ・・・・・・・・・・・・・・・・・・(26) と表すことができ、この式の(d/dt)wに教示された塗装
速度を代入すると、(d/dt)θが得られる。この(d/dt)θ
と各軸の最大角速度(d/dt)θmaxとを比較することによ
り、図41のような速度マップが得られ、この図におい
て100%以上の領域の面積を変数yx_v〔i〕に格
納する。
【0107】ステップSL7では、塗装ガン2先端がz
軸に沿った方向へ移動する場合において、ステップSL
6と同様の計算方法で上記速度領域面積を求める。そし
て、求めた速度領域面積が変数zx_v〔i〕の値より
大きい場合には、該変数zx_v〔i〕の値を上記速度
領域面積に更新し、この時のxの値をzx〔i〕に格納
し、ステップSL5へ戻る。ステップSL5において、
変数xがxmaxより大きくなると、ステップSL8へ進
む。
【0108】ステップSL8では、変数zをzmin〜z
maxの範囲において所定距離Δzの間隔で変化させなが
ら、該変数zによってz軸上の座標値を指定されるxy
平面に対して、ステップSL9〜SL10の処理を行
う。ステップSL9では、塗装ガン2先端がx軸に沿っ
た方向へ移動する場合において、ステップSL6と同様
の計算方法で上記速度領域面積を求める。そして、求め
た速度領域面積が変数xz_v〔i〕の値より大きい場
合には、該変数xz_v〔i〕の値を上記速度領域面積
に更新し、この時のzの値をxz〔i〕に格納し、ステ
ップSL10へ進む。
【0109】ステップSL10では、塗装ガン2先端が
y軸に沿った方向へ移動する場合において、ステップS
L6と同様の計算方法で上記速度領域面積を求める。そ
して、求めた速度領域面積が変数yz_v〔i〕の値よ
り大きい場合には、該変数yz_v〔i〕の値を上記速
度領域面積に更新し、この時のzの値をyz〔i〕に格
納し、ステップSL8へ戻る。ステップSL8におい
て、変数zがzmaxより大きくなると、ステップSL1
1へ進む。
【0110】ステップSL11では、変数yをymin
maxの範囲において所定距離Δyの間隔で変化させな
がら、該変数yによってy軸上の座標値を指定されるz
x平面に対して、ステップSL12〜SL13の処理を
行う。ステップSL12では、塗装ガン2先端がx軸に
沿った方向へ移動する場合において、ステップSL6と
同様の計算方法で上記速度領域面積を求める。そして、
求めた速度領域面積が変数xy_v〔i〕の値より大き
い場合には、該変数xy_v〔i〕の値を上記速度領域
面積に更新し、この時のyの値をxy〔i〕に格納し、
ステップSL13へ進む。
【0111】ステップSL13では、塗装ガン2先端が
z軸に沿った方向へ移動する場合において、ステップS
L6と同様の計算方法で上記速度領域面積を求める。そ
して、求めた速度領域面積が変数zy_v〔i〕の値よ
り大きい場合には、該変数zy_v〔i〕の値を上記速
度領域面積に更新し、この時のyの値をzy〔i〕に格
納し、ステップSL11へ戻る。ステップSL11にお
いて、変数yがymaxより大きくなると、ステップSL
14へ進む。
【0112】ステップSL14では、ステップSL5〜
SL13で求められた速度領域面積yx_v〔i〕,z
x_v〔i〕,xz_v〔i〕,yz_v〔i〕,zy
_v〔i〕,xy_v〔i〕のうちから最大値を選択
し、さらに同じくステップSL5〜SL13で求められ
たyx〔i〕,zx〔i〕,xz〔i〕,yz〔i〕,
zy〔i〕,xy〔i〕のうちから上記最大値と共に求
められた値(以下、速度領域指定値と称する)を選択す
る。その後、上記速度領域指定値で指定されるxy平
面,yz平面,zx平面のうちのいづれかの平面(以
下、作業平面と称する)における塗装範囲の中心位置を
求め、ステップSL15へ進む。これにより、ステップ
SL5〜SL13で求められた速度領域の内で面積が最
も大きいものを選択できる。
【0113】ステップSL15では、ステップSL14
で選択された平面について、塗装ガン2先端が移動する
作業平面と作業方向を決定し、ステップSL16へ進
む。ステップSL16では、選択された作業平面と作業
方向において、塗装ガン2先端が最も速度が出せる位置
xcを上記の式(26)より求め、ステップSL17へ
進む。ステップSL17では、長方形Q0123を近
似させたワークの中心位置がxcに来るように、長方形
0123のデータを変換し、ステップSL18へ進
む。
【0114】ステップSL18では、ワークが塗装ガン
2の動作範囲からはみ出している間は、ステップSL1
9の処理を繰り返す。ステップSL19では、ステップ
SL14で選択された上記作業平面上において、上記長
方形Q0123の中心が上記ロボットベース座標系の
原点に近づくように、該長方形Q0123を平行移動
させる。この時、平行移動後の長方形Q0123によ
って近似される教示データ再生時のロボット1の各回転
軸1c1〜1c4が、それぞれの回転軸の最小回転角度
および最大回転角度を越えないようにする。その後、C
PU11は上記平行移動量を求め、ステップSL20へ
進む。ステップSL20では、図43に示す表に従って
教示データを回転,平行移動させ、これを新しい教示デ
ータとして記憶し、ステップSL21へ進む。ステップ
SL21では、新しく求めたデータに基づいてロボット
1を動かし、一例の処理を終了する。
【0115】次に、ロボット1の各回転軸1c1〜1c
4の最大回転速度に合わせて、ロボット1の性能を最も
引き出せる位置へワークを移すように教示データを変換
し、その変換によって得られた教示データの作業開始点
および作業終了点や、ワークの移動量をディスプレイに
表示する処理について図44および図45に示すPAD
図を参照して説明する。
【0116】図44および図45に示す処理のうち、ス
テップSM1〜SM20の処理は、図40〜図41に示
したステップSL1〜SL20の処理と同じものである
ので、その説明を省略する。ステップSM21では、教
示データの変換後、図46(a)に示すように、変換後
の教示データのロボットベース座標系における第1点と
最終点(具体的には図20のP0およびP11を参照)を
ディスプレイに表示する。また、図46(b)に示すよ
うに、ワークの移動方向と距離,回転角度を表示しても
よい。なお、変換後の教示データにおける作業開始点お
よび作業終了点をディスプレイに表示することにより、
ワークの位置がインデックステーブル等の形式でRAM
13に記憶されている場合には、オペレータは上記作業
開始点および作業終了点の座標値を入力するだけで位置
の修正を行うことができる。
【0117】次に、アーム1b先端の移動時の最大加速
度を目安に教示データを変換する処理について図47お
よび図48に示すPAD図を参照して説明する。なお、
これまでの実施例の説明では、ロボット1が、そのアー
ム1bに塗装ガン2を装備し、塗装作業を行う場合につ
いて述べてきたが、本説明では、塗装ガン2の代わりに
ワーク把持用のロボットハンドを設け、所定の組立作業
を行う場合について説明する。
【0118】オペレータが上記処理の開始を指示する
と、CPU11は図47に示すステップSN1へ進む。
ステップSN1では、オペレータがオンラインまたはオ
フラインで教示を行った組み立て手順に従って教示デー
タを作成、またはRAM13に教示データを格納し、ス
テップSN2へ進む。ステップSN2では、RAM13
内の教示データより、点(xwmax,ywmax)と点(x
wmin,ywmin)とを結ぶ直線を対角線とする長方形にワ
ークを近似し、ステップSN3へ進む。ここで、xwmax
は組立作業時にロボットハンドがx軸方向へ移動する最
大値である。同様にywmaxはy軸方向へ移動する最大
値、xwminはx軸方向へ移動する最小値、ywm inはy軸
方向へ移動する最小値である。
【0119】ステップSN3では、ロボットハンドがx
軸方向へ移動するときに出すことのできる最大加速度A
xmaxと、ロボットハンドがy軸方向へ移動するときに出
すことができる最大加速度Aymaxとに0を代入し、ステ
ップSN4へ進む。ステップSN4では、xの値をx
min〜xmaxの範囲においてΔxごとに変えていき、ステ
ップSN5〜SN12の処理を行う。ステップSN5で
は、yの値をymin〜ym axの範囲においてΔyごとに変
えていき、ステップSN6〜SN12の処理を行う。ス
テップSN6では、次に述べる方法でロボットハンドが
x軸方向へ移動するときの加速度Ax、およびy軸方向
へ移動するときの加速度Ayを求め、ステップSN7へ
進む。
【0120】式(25)をさらに時間で微分すると、次
に示す式(27)が得られる。 (d/dt)2M=JM・(d/dt)2θM+JM・(d/dt)θM・・・・・・・・・・(27) また、各回転軸1c1〜1c4のトルクτiは、次に示
す式(28)で求められることができる。ここで、τ1
は回転軸1c1のトルクを、τ2は回転軸1c2のトル
クを、τ3は回転軸1c3のトルクを、τ4は回転軸1c
4のトルクを表す。
【数3】 ここで、上式の第1項は回転軸iの回転によって移動す
るロボットアームの移動によって発生する慣性トルク、
第2項は他のロボットアームの動きのよって回転軸iが
受ける干渉トルク、第3項はコリオリ力,遠心力などの
非線形力、第4項は重力トルクである。
【0121】さらに、各回転軸1c1〜1c4の角速度
(d/dt)θ,角加速度(d/dt)2θは、式(29),(3
0)を以下に示すように変形して求められる。 wM=f(θM)・・・・・・・・・・・・・・・・・・・・・・・・・(29) (d/dt)wM=JM・(d/dt)θMM -1・(d/dt)wM=JM -1・JM ・(d/dt)θMM -1・(d/dt)wM=IM・(d/dt)θM ∴(d/dt)θM=JM -1・(d/dt)wM (d/dt)2M=JM・(d/dt)2θM+JM・(d/dt)θM ・・・・・・・・・・(30) (d/dt)2M−JM・(d/dt)θM=JM・(d/dt)2θMM -1{(d/dt)2M−JM・(d/dt)θM}=JM -1・JM・(d/dt)2θMM -1{(d/dt)2M−JM・(d/dt)θM}=IM・(d/dt)2θM ∴(d/dt)2θM=JM -1{(d/dt)2M−JM・(d/dt)θM
【0122】さらに、各回転軸1c1〜1c4の角速度
(d/dt)θおよび角加速度(d/dt)2θから、塗装ガン2先
端がx軸方向およびy軸方向へ移動するときの加速度A
を求めると、速度の場合と同様に、図49のような加速
度マップが得られる。さらに上記加速度Aより、ロボッ
トハンドがx軸方向へ移動するときの加速度Ax、およ
びy軸方向へ移動するときの加速度Ayを求める。ステ
ップSN7では、ステップSN6で求めた加速度Ax
最大加速度Axmaxより大きいか否かを判断する。この判
断結果が「YES」の場合には、ステップSN8へ進
む。ステップSN8では、最大加速度Axmaxに加速度A
xを代入し、ステップSN10へ進む。一方、ステップ
SN7の判断結果が「NO」の場合には、ステップSN
8へ進む。ステップSN9では、点wxを点(x,y)
とし、ステップSN10へ進む。
【0123】ステップSN10では、ステップSN6で
求めた加速度Ayが最大加速度Ayma xより大きいか否か
を判断する。この判断結果が、「YES」の場合には、
ステップSN11へ進む。ステップSN11では、最大
加速度Aymaxに加速度Ayを代入し、ステップSN5へ
戻る。一方、ステップSN10の判断結果が「NO」で
ある場合には、ステップSN12へ進む。ステップSN
12では、点wyを点(x,y)とし、ステップSN5
へ戻る。ステップSN5において、変数yの値がyma x
になると、ステップSN4へ戻る。ステップSN4にお
いて、変数xの値がxm axになると、ステップSN13
へ進む。
【0124】ステップSN13では、x軸方向およびy
軸方向において最大加速度が得られた点xc,ycの中
点をxwcとし、ステップSN14へ進む。ステップSN
14では、ワークを近似した長方形の中心位置が点xwc
に来るようにワークを移動させ、ステップSN15へ進
む。ステップSN15では、ワークがロボットハンドの
動作範囲をはみ出している間、ステップSN16の処理
を繰り返す。ステップSN16では、ワークを近似した
長方形の中心位置が、ロボットベース座標系の原点の方
向に移動するように、ワークを平行移動する。ステップ
SN15において、ワークがロボットハンドの動作範囲
内に収まると、ステップSN17へ進む。
【0125】ステップSN17では、教示データをワー
クの中心をxwcとした教示データを変換し、ステップS
N18へ進む。ステップSN18では、変換後の教示デ
ータの先頭に、ワークを把持・移動する動作を指示する
教示データを生成して付加し、ステップSN19へ進
む。ステップSN19では、変換後の教示データの末尾
に、ワークを元の位置に戻す動作を指示する教示データ
を生成して付加し、ステップSN20へ進む。ステップ
SN20では、作成された教示データを用いてロボット
に組み立て作業を行わせ、一例の処理を終了する。
【0126】以上、この発明の実施例を図面を参照して
詳述してきたが、具体的な構成はこの実施例に限られる
ものではなく、この発明の要旨を逸脱しない範囲の設計
の変更等があってもこの発明に含まれる。例えば、上述
した実施例では、x軸,y軸,z軸からなる3次元空間
において、z軸方向の値を特定の値に固定したxy平面
を対象とする処理について述べたが、処理の対象をz軸
方向の値を可変とした3次元空間に拡大しても構わな
い。また、同実施例では、塗装用ロボットシステムを例
にとって教示装置3の構成および動作を説明したが、教
示装置3は他の用途(溶接,組立等)のマニピュレータ
1の制御に使用することも可能である。
【0127】
【発明の効果】以上説明したように、請求項1または請
求項2に記載の発明によれば、作業者は最大到達領域を
実際に目で見て確認することができ、該最大到達領域内
にワークおよび周辺装置を設置する際に、設置に要する
工数を減らすことができる。また、作業者は最大到達領
域内に正確に、かつ、該最大到達領域を有効に利用して
ワークおよび周辺装置を設置することができる。さら
に、作業者は、ロボットの動作中に、最大到達領域に入
らないように注意することができるので、教示作業時の
安全性が高まる。
【0128】請求項3または請求項4に記載の発明によ
れば、ワークに位置に応じて教示データの修正が自動的
に行われるので、作業者は教示および教示データの修正
に要する工数を減らすことができ、生産ラインを止める
必要がなく、生産ラインの生産効率を上げることができ
る。
【0129】請求項5に記載の発明によれば、作業者は
角速度能力領域を実際に目で見て確認することができ、
該角速度能力領域内にワークおよび周辺装置を設置する
際に、設置に要する工数を減らすことができる。また、
作業者は角速度能力領域内に正確に、かつ、該角速度能
力領域を有効に利用してワークおよび周辺装置を設置す
ることができる。さらに、ワークが角速度能力領域内に
収まるように教示データが自動的に修正されるので、作
業具に質の高い作業を行わせることができ、作業時間が
短縮される。
【0130】請求項6に記載の発明によれば、作業者は
角加速度能力領域を実際に目で見て確認することがで
き、該角加速度能力領域内にワークおよび周辺装置を設
置する際に、設置に要する工数を減らすことができる。
また、作業者は、角加速度能力領域内に正確に、かつ、
該角加速度能力領域を有効に利用してワークおよび周辺
装置を設置することができる。さらに、ワークが角加速
度能力領域内に収まるように教示データが自動的に修正
されるので、作業具に質の高い作業を行わせることがで
き、作業時間が短縮される。また、ロボットおよび周辺
装置の仕様が変更された場合であっても、それに合わせ
てそれらの領域を自動的に求めることができ、作業者は
ロボットおよび周辺装置の調整に要する工数を減らすこ
とができる。
【図面の簡単な説明】
【図1】この発明の一実施例によるロボットの制御装置
の構成を示すブロック図である。
【図2】同実施例によるロボットの制御装置を用いたロ
ボットシステムの構成を示す斜視図である。
【図3】ロボット1の数学モデルおよびロボットベース
座標系を示す説明図である。
【図4】塗装ガン2の塗装範囲およびその外縁の軌道を
示す平面図である。
【図5】制御装置3の制御系を示すブロック図である。
【図6】塗装範囲を求める処理の流れを示すPAD図で
ある。
【図7】各回転軸の目標値を求める処理の流れを示すP
AD図である。
【図8】各回転軸の目標値を求める処理の流れを示すP
AD図である。
【図9】塗装範囲を床面に描く処理の流れを示すPAD
図である。
【図10】塗装範囲内部を塗りつぶす軌道を示す平面図
である。
【図11】塗装範囲内部を塗りつぶす軌道の教示データ
を求める処理の流れを示すPAD図である。
【図12】塗装範囲内部を塗りつぶす軌道の教示データ
を求める処理の流れを示すPAD図である。
【図13】塗装範囲内部を塗りつぶす処理の流れを示す
PAD図である。
【図14】塗装範囲とワークの位置との位置関係を示す
平面図である。
【図15】塗装範囲とワークの位置との位置関係を示す
平面図である。
【図16】塗装範囲とワークの位置との位置関係を示す
平面図である。
【図17】ワークを移動させる処理を示すPAD図であ
る。
【図18】ワークを移動させる処理を示すPAD図であ
る。
【図19】ワークを移動させる処理を示すPAD図であ
る。
【図20】教示データを長方形に近似する処理を示す説
明図である。
【図21】ワークが塗装範囲内に入らない場合に手元操
作装置4の表示部に出力するメッセージを示す説明図で
ある。
【図22】ワークの微小部分が塗装範囲からはみ出して
いることを示す平面図である。
【図23】塗装範囲からはみ出しているワークに対する
教示データを補正する処理を示すPAD図である。
【図24】塗装範囲からはみ出しているワークに対する
教示データを補正する処理を示すPAD図である。
【図25】ターンテーブル上のワークの位置と塗装ガン
2の動作範囲との位置関係を示す平面図である。
【図26】ターンテーブル上のワークを移動させる処理
を示すPAD図である。
【図27】ターンテーブル上のワークを移動させる処理
を示すPAD図である。
【図28】ターンテーブル上のワークを移動させる処理
を示すPAD図である。
【図29】速度能力配列を求める処理を示すPAD図で
ある。
【図30】所定の速度以上の速度で塗装ガン2先端を移
動させることができる領域の外縁に沿って塗装ガン2先
端を移動させる処理を示す平面図である。
【図31】所定の速度以上の速度で塗装ガン2先端を移
動させることができる領域の外縁に沿って塗装ガン2先
端を移動させる処理を示すPAD図である。
【図32】所定の速度以上の速度で塗装ガン2先端を移
動させることができる領域の外縁に沿って塗装ガン2先
端を移動させる処理を示すPAD図である。
【図33】所定の速度以上の速度で塗装ガン2先端を移
動させることができる領域の外縁に沿って塗装ガン2先
端を移動させる処理を示すPAD図である。
【図34】所定の速度以上の速度で塗装ガン2先端を移
動させることができる領域の外縁に沿って塗装ガン2先
端を移動させる処理を示すPAD図である。
【図35】所定の速度以上の速度で塗装ガン2先端を移
動させることができる領域の外縁に沿って塗装ガン2先
端を移動させる軌道を示すPAD図である。
【図36】所定の速度以上の速度で塗装ガン2先端を移
動させることができる領域の内側におけるワークの配置
例を示す平面図である。
【図37】所定の速度以上の速度で塗装ガン2先端を移
動させることができる領域内を塗りつぶす軌道を示す平
面図である。
【図38】所定の速度以上の速度で塗装ガン2先端を移
動させることができる領域内を塗りつぶす処理を示すP
AD図である。
【図39】所定の速度以上の速度で塗装ガン2先端を移
動させることができる領域の内側におけるワークの配置
例を示す平面図である。
【図40】速度能力配列を利用して教示データを変換す
る手順を示すPAD図である。
【図41】速度能力配列を利用して教示データを変換す
る手順を示すPAD図である。
【図42】塗装ガン2先端の移動速度の最大速度マップ
である。
【図43】塗装ガン2先端の移動速度が最大値となる各
条件とワークの移動規則との関係を示す表である。
【図44】速度能力配列を利用して教示データを変換
し、その結果を表示する処理を示すPAD図である。
【図45】速度能力配列を利用して教示データを変換
し、その結果を表示する処理を示すPAD図である。
【図46】教示データの変換結果の表示例である。
【図47】ロボットハンドが移動するときの最大加速度
を求め、その結果に基づいて教示データを修正する処理
を示すPAD図である。
【図48】ロボットハンドが移動するときの最大加速度
を求め、その結果に基づいて教示データを修正する処理
を示すPAD図である。
【図49】ロボットハンドが移動する際の加速度マップ
である。
【図50】従来のロボットの制御装置を用いたロボット
システムの構成を示す斜視図である。
【符号の説明】
1……ロボット、 2……塗装ガン、 3,103……
制御装置、4……手元操作装置、 11……CPU、
12……ROM、13……RAM、 14……FDD、
15……タイマ、16……スピーカ、 17……動作
範囲指示装置、18……モータドライバ、 19……サ
ーボモータ、 20……エンコーダ

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 複数の回転軸によって動かされるアーム
    の先端に設けられた作業具を用いて所定の作業を行うロ
    ボットを制御するロボットの制御装置において、 前記複数の回転軸のそれぞれを、前記ロボットの機械的
    構造によって決定される最大回転範囲に渡って回転させ
    ることにより、前記作業具の最大到達領域を求める演算
    手段と、 前記演算手段からの出力により前記最大到達領域の輪郭
    に沿って前記ロボットを作動させる作動範囲を報知する
    報知手段とを具備することを特徴とするロボットの制御
    装置。
  2. 【請求項2】 請求項1記載のロボットの制御装置にお
    いて、 前記最大到達領域を記憶する記憶手段と、 前記作業具が所定の移動方向へ所定の移動距離だけ移動
    するように前記ロボットに移動指令を与える指令手段
    と、 前記移動指令の実行による前記作業具の移動前に、前記
    作業具の移動先となる予定位置が前記最大到達領域内に
    あるか否かを判断する判断手段と、 前記予定位置が前記最大到達領域の外にある場合、前記
    作業具の現在位置を前記移動方向とは異なる所定の方向
    へ前記移動距離とは異なる所定の距離だけ移動させてか
    ら、前記移動方向を変更させる移動方向変更手段とを具
    備することを特徴とするロボットの制御装置。
  3. 【請求項3】 ロボットのアームの先端に設けられた作
    業具を軌道データに従って移動させることで、所定の作
    業を行うロボットを制御するロボットの制御装置におい
    て、 前記軌道データのうち前記ロボットの座標系における各
    軸方向の最大値および最小値を示す点を求め、該軌道デ
    ータを、これらの点を通り各軸に平行な直線で囲まれた
    形状を表す変換データに変換するデータ変換手段と、 前記変換データの各辺に対して、前記作業具の最大到達
    領域からはみ出している部分の長さの該辺の全長に対す
    る割合である動作領域比率を求める演算手段と、 前記変換データの各辺のうち、対応する前記動作領域比
    率が最も大きい辺である動作領域比率最大辺を選択する
    選択手段と、 前記動作領域比率最大辺が一つの場合には、該動作領域
    比率最大辺が対向する辺に向かう方向へ前記変換データ
    を平行移動させ、前記動作領域比率最大辺が前記変換デ
    ータの対向する辺である場合には、前記変換データの中
    心点を中心として前記変換データを回転させる修正手段
    と、 前記変換データが前記最大到達領域内に完全に収まるま
    で、前記演算手段には前記変換データの各辺に対して前
    記動作領域比率を求めさせ、前記選択手段には動作領域
    比率最大辺を求めさせ、前記修正手段には前記動作領域
    比率最大辺の個数に従って前記変換データを平行移動ま
    たは回転させる制御手段とを具備することを特徴とする
    ロボットの制御装置。
  4. 【請求項4】 ロボットアームの先端に設けられた作業
    具を、前記作業具を移動させることができる領域である
    最大到達領域内において移動させ、所定の作業を行うロ
    ボットを制御するロボットの制御装置において、 前記最大到達領域内に前記作業具の作業の対象となるワ
    ークを所定の半径の円弧上を移動させながら供給するタ
    ーンテーブルと、 作業時における前記ワークに対する前記作業具の軌道を
    示す軌道データについて、前記軌道データのうち前記ロ
    ボットの座標系における各軸方向の最大値および最小値
    を示す点を求め、該軌道データを、これらの点を通り各
    軸に平行な直線で囲まれた形状を表す変換データに変換
    するデータ変換手段と、 前記変換データの各辺に対して、前記最大到達領域から
    はみ出している部分の長さの該辺の全長に対する割合で
    ある動作領域比率を求める演算手段と、 前記変換データの各辺のうち、対応する前記動作領域比
    率が最も大きい辺である動作領域比率最大辺を選択する
    選択手段と、 前記変換データの全ての辺の前記動作領域比率が等しい
    場合には、前記変換データを前記円弧の中心点を中心と
    して移動させ、前記動作領域比率最大辺が前記変換デー
    タの隣合う二つの辺である場合には、前記変換データを
    前記円弧の中心点を中心として前記2つの動作領域比率
    最大辺が作る頂点が該頂点の対頂点へ向かう方向へ所定
    の角度だけ移動させる修正手段と、 前記変換データが前記最大到達領域内に完全に収まるま
    で、前記演算手段には前記変換データの各辺に対して前
    記動作領域比率を求めさせ、前記選択手段には動作領域
    比率最大辺を求めさせ、前記修正手段には前記動作領域
    比率最大辺の個数に従って前記変換データを移動または
    回転させる制御手段とを具備することを特徴とするロボ
    ットの制御装置。
  5. 【請求項5】 複数の回転軸で連結されたロボットアー
    ムの先端に設けられた作業具を移動させ、所定の作業を
    行うロボットを制御するロボットの制御装置において、 前記作業具の移動時において、前記複数の回転軸のそれ
    ぞれに対して角速度を求める角速度算出手段と、 前記複数の回転軸の前記角速度を該回転軸の最大角速度
    で割った値である角速度比を、前記複数の回転軸のそれ
    ぞれについて求める角速度比算出手段と、 前記複数の回転軸のそれぞれの前記角速度比のうち、最
    大の角速度比を選択し、該最大の角速度比を角速度能力
    値とする角速度能力値選択手段と、 前記作業具の最大到達領域内の各座標点に対して、前記
    角速度能力値が所定の値以上であるか否かを判断する角
    速度能力値判断手段と、 前記所定の値以上の前記角速度能力値を示す座標点によ
    って構成される領域である角速度能力領域を表示する角
    速度能力領域表示手段と、 前記角速度能力領域の内部と外部との境界線に沿って前
    記作業具を移動させる角速度境界移動手段とを具備する
    ことを特徴とするロボットの制御装置。
  6. 【請求項6】 複数の回転軸で連結されたロボットアー
    ムの先端に設けられた作業具を移動させ、所定の作業を
    行うロボットを制御するロボットの制御装置において、 前記作業具の移動時において、前記複数の回転軸のそれ
    ぞれに対して角加速度を求める角加速度算出手段と、 前記複数の回転軸の前記角加速度を該回転軸の最大角加
    速度で割った値である角加速度比を、前記複数の回転軸
    のそれぞれについて求める角加速度比算出手段と、 前記複数の回転軸のそれぞれの前記角加速度比のうち、
    最大の角加速度比を選択し、該最大の角加速度比を角加
    速度能力値とする角加速度能力値選択手段と、 前記作業具の最大到達領域内の各座標点に対して、前記
    角加速度能力値が所定の値以上であるか否かを判断する
    角加速度能力値判断手段と、 前記所定の値以上の前記角加速度能力値を示す座標点に
    よって構成される領域である角加速度能力領域を表示す
    る角加速度能力領域表示手段と、 前記角加速度能力領域の内部と外部との境界線に沿って
    前記作業具を移動させる角加速度境界移動手段とを具備
    することを特徴とするロボットの制御装置。
JP772195A 1995-01-20 1995-01-20 ロボットの制御装置 Pending JPH08194512A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP772195A JPH08194512A (ja) 1995-01-20 1995-01-20 ロボットの制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP772195A JPH08194512A (ja) 1995-01-20 1995-01-20 ロボットの制御装置

Publications (1)

Publication Number Publication Date
JPH08194512A true JPH08194512A (ja) 1996-07-30

Family

ID=11673594

Family Applications (1)

Application Number Title Priority Date Filing Date
JP772195A Pending JPH08194512A (ja) 1995-01-20 1995-01-20 ロボットの制御装置

Country Status (1)

Country Link
JP (1) JPH08194512A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998042483A1 (fr) * 1997-03-25 1998-10-01 Fanuc Ltd Controleur de robot
WO2004085120A1 (ja) * 2003-03-25 2004-10-07 Rorze Corporation ロボットシミュレーション装置、および、シミュレーションプログラム
JP2013154430A (ja) * 2012-01-30 2013-08-15 Okumura Corp コンクリート壁面研掃処理方法
JP2016120529A (ja) * 2014-12-24 2016-07-07 セイコーエプソン株式会社 ロボット、ロボットシステム、制御装置、及び制御方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998042483A1 (fr) * 1997-03-25 1998-10-01 Fanuc Ltd Controleur de robot
US6208105B1 (en) 1997-03-25 2001-03-27 Fanuc Ltd. Robot controller
WO2004085120A1 (ja) * 2003-03-25 2004-10-07 Rorze Corporation ロボットシミュレーション装置、および、シミュレーションプログラム
US7606633B2 (en) 2003-03-25 2009-10-20 Rorze Corporation Robot simulation device, and robot simulation program
JP2013154430A (ja) * 2012-01-30 2013-08-15 Okumura Corp コンクリート壁面研掃処理方法
JP2016120529A (ja) * 2014-12-24 2016-07-07 セイコーエプソン株式会社 ロボット、ロボットシステム、制御装置、及び制御方法

Similar Documents

Publication Publication Date Title
JP3782679B2 (ja) 干渉回避装置
US7765031B2 (en) Robot and multi-robot interference avoidance method
KR101473054B1 (ko) 도장 시스템
US9731419B2 (en) System and method for programming robots
US5880956A (en) Lead-through robot programming system
JP5144035B2 (ja) 産業用ロボットのツールの位置・姿勢制御方法及び制御システム
WO2012090441A1 (ja) 7軸多関節ロボットの制御方法、制御プログラム及びロボット制御装置
JP2007523757A (ja) 複数のロボットアームの追従及び鏡映ジョグ
JP4917252B2 (ja) アーク溶接用装置
Bolmsjö et al. Robotic arc welding–trends and developments for higher autonomy
WO2012090440A1 (ja) 7軸多関節ロボットの制御装置および教示方法
JP2022122729A (ja) 教示装置、教示方法および教示プログラム
JP4396553B2 (ja) ロボット制御装置,コンピュータプログラム
JPH08194512A (ja) ロボットの制御装置
JP2006059037A (ja) 溶接ロボット制御装置
JPH11191005A (ja) ロボット制御装置
JPH0889859A (ja) 塗装用ロボットの動作教示方法及び装置
JP3668821B2 (ja) ロボットコントローラおよびロボット制御方法
JPH05337856A (ja) 産業用多関節ロボットのマスタリング装置
JP7518203B2 (ja) 複数の移動機械を移動させて所定の作業を行う制御装置、機械システム、方法、及びコンピュータプログラム
WO2023002624A1 (ja) 機構データに基づいてロボットを制御するロボットの制御装置および動作プログラムの修正装置
JP7502439B2 (ja) ロボット制御装置
JP7424097B2 (ja) ロボットの制御装置及びロボットの制御方法
JP7396829B2 (ja) ロボット座標系を設定する装置、ロボット制御装置、ロボットシステム、及び方法
JPH11345018A (ja) ロボット制御装置