JPH09201784A - ロボットの教示装置 - Google Patents

ロボットの教示装置

Info

Publication number
JPH09201784A
JPH09201784A JP1469496A JP1469496A JPH09201784A JP H09201784 A JPH09201784 A JP H09201784A JP 1469496 A JP1469496 A JP 1469496A JP 1469496 A JP1469496 A JP 1469496A JP H09201784 A JPH09201784 A JP H09201784A
Authority
JP
Japan
Prior art keywords
robot
distance
value
work
freedom
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
JP1469496A
Other languages
English (en)
Inventor
Masahito Kageyama
雅人 影山
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.)
Komatsu Ltd
Original Assignee
Komatsu 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 Komatsu Ltd filed Critical Komatsu Ltd
Priority to JP1469496A priority Critical patent/JPH09201784A/ja
Publication of JPH09201784A publication Critical patent/JPH09201784A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】作業に最適なロボットの位置・姿勢を迅速に、
かつ確実に求める。 【解決手段】入力された目的位置・姿勢角の教示データ
と、ロボットの周囲に存在する障害物の位置データとに
基づき、当該入力された値にツール先端位置と姿勢角を
維持したままで、冗長な自由度の値を順次変化させたと
きのロボットの各軸の位置と、ロボットから障害物まで
の距離とが順次演算される。そして、ロボットの各軸位
置のリミット位置までの余裕度と、ロボットから障害物
までの距離の余裕度とをパラメータとする評価関数が設
定され、上記演算される冗長な自由度の値を順次変化さ
せたときのロボットの各軸の位置と、ロボットから障害
物までの距離とに基づき評価関数の評価値が順次求めら
れていき、余裕度が最大となる評価値が得られるときの
冗長な自由度の値が最終的に教示データとして決定され
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ロボットのツール
先端の移動経路を教示する装置に関する。
【0002】
【従来の技術および発明が解決しようとする課題】ティ
−チングプレイバック方式のロボットを工場等の生産現
場で使用する場合には、ロボットに作業を教示している
間は生産ラインを止めなければならない上に、ロボット
に行わせる作業が複雑になるとロボットプログラムを作
成する作業は試行錯誤的なものとなる。このため、ロボ
ットプログラムの作成作業に長時間を要し、作業効率が
損なわれるという問題があった。
【0003】また、教示作業のためには、ロボットの動
作範囲内にオペレ―タが入らなければならないことがあ
り、このような危険な作業を長時間続けて行うことは、
安全上の観点からも問題があった。
【0004】ここで、ロボットの教示にロボットマニプ
レ―タ本体を用いず、ロボットコントロ―ラとは別のコ
ンピュ―タでロボットプログラムを作成するオフライン
教示システムでは、このような生産性の問題や安全性の
問題は生じない。
【0005】この種のオフライン教示システムでは、ロ
ボットの作業可能性の判断を、目的の位置・姿勢に、干
渉を起こすことなくロボットを到達させることができる
経路があるかどうかを判定することで行うようにしてい
た。
【0006】すなわち、従来技術では、経路を求めた後
に、その経路が妥当かどうかを画面上で判断するように
していた。
【0007】例えば、特開平5ー108764号公報や
特開平5ー324041号公報では、干渉チェック機能
を備えるオフラインシミュレ―ション上でオペレ−タが
ロボットを動作させ、2次元画面上で干渉チェック機能
を頼りに試行錯誤的な作業を繰り返し行い経路を導き出
すようにしている。
【0008】また、JICST M88010985(「迷路法に基づ
く自由空間算出法を用いた障害物回避動作計画」/近
藤、木村) などに示されるような経路の探索方法アル
ゴリズムを用いて、経路を求め、その結果、妥当な経路
の有無を判断していた。
【0009】このJICST M88010985の内容のあらましは
以下の通りである。
【0010】すなわち、ロボットの軸数と同じ次元を持
ち、空間の座標軸にロボットの各軸の角度をあてはめた
空間が、コンフィグレ―ション空間と呼ばれる。ワ―ク
などの干渉物は、このコンフィグレション空間に写像す
ることが出来る。例えば、ある6軸ロボットを、ある位
置{q1,q2,q3,q4,q5,q6}に動作させたとき、ロボットと
ワ―クと干渉していれば、このコンフィグレ―ション空
間上の点{q1,q2,q3,q4,q5,q6}には、干渉物があること
になる。ロボットを全動作範囲にわたって変化させれ
ば、コンフィグレ―ション空間上の干渉物の形状も明ら
かになるが、計算量が膨大になる。このJICSTM88010985
では、出発点と到着点が与えられたときに、迷路法によ
ってこの全コンフィグレ―ション空間を計算することな
く、経路を計算する方法を示している。しかしながら、
出発点と、到着点でのすべての軸の角度は与えられるこ
ととして、求めていない。
【0011】以上のように、JICSTM88010985に示される
経路探索アルゴリズムは、その探索空間の大きさから、
経路が存在しないことを確認するのに通常、分単位の大
きな計算時間を必要するという問題があった。
【0012】ここに、溶接ロボットが作業するのに最適
なワ―クのレイアウトを調べるような場合には、溶接上
の複数の点に対し画面上でロボットを移動させ、その点
でワ―ク等と干渉せず、かつ溶接が可能な位置姿勢がと
れるかどうかを、ロボットに様々な姿勢とらせながら確
認する必要があり、しかも、こうした作業をワ―クの位
置を変えながら繰り返さなければならない。
【0013】こうした作業を上述した従来技術により行
った場合には、オペレータに負担がかかるとともに計算
時間が膨大なものとなっていた。
【0014】さらに、たとえ干渉しない位置が発見でき
た場合であっても、ワ―クにロボットが干渉するまでの
距離や、ロボットの現在の各軸位置は、動作リミット位
置までどの程度余裕があるか、と言った有用な情報につ
いては簡単に得られず、計算した位置まで実際にロボッ
トを移動させると、取り付け誤差などの影響によりワー
クと干渉したり、動作範囲オ―バ―になる場合なども多
かった。
【0015】このように、従来技術によれば、作業に最
適なロボットの位置・姿勢を迅速に求めることができな
いばかりか、場合によっては、確実性に欠けることにな
っていた。
【0016】また、オペレ―タにとっても、2次元のグ
ラフィック画面上で作業が可能かどうかを判断し最適な
ロボットの位置・姿勢を求めることは、場合によっては
実際のロボットを動かして教示する場合よりも、さらに
困難であり多くの労力を要することとなっていた。とり
わけ、新たなワ―クの加工を検討する場合など、繰り返
しロボットとワ―クの位置関係を変えながら作業可能性
を判断しなければならないような場合には、オペレ―タ
の負担はさらに大きいものとなっていた。
【0017】本発明は、こうした実状に鑑みてなされた
ものであり、作業に最適なロボットの位置・姿勢を迅速
に、かつ確実に求めることができるようにすることを第
1の目的とし、作業が不可能な場合を迅速に判別できる
ようにし、オペレータにかかる負担を軽減することを第
2の目的とするものである。
【0018】
【課題を解決するための手段および効果】そこで、この
発明の第1発明では、ロボットのアームに取り付けられ
たツールの先端位置と、当該ツールの姿勢角と、冗長な
自由度の値とを決定することにより当該ロボットの姿勢
が一義的に定まるロボットに適用されるロボットの教示
装置であって、前記ロボットの作業内容に応じて、前記
ツール先端が到達すべき目的位置と、当該目的位置にお
けるツールの目的姿勢角と、前記自由度の値とを、教示
データとして与え、前記ロボットの各軸を駆動して前記
目的位置まで前記ツール先端を移動させ、前記教示デー
タに応じた所望の作業姿勢で前記ロボットに作業を行わ
せるようにしたロボットの教示装置において、前記ツー
ル先端の目的位置と目的姿勢角の教示データを入力する
入力手段と、前記目的位置・姿勢角の教示データと、前
記ロボットの周囲に存在する障害物の位置データとに基
づき、当該入力された値にツール先端位置と姿勢角を維
持したままで、前記冗長な自由度の値を順次変化させた
ときの前記ロボットの各軸の位置と、前記ロボットから
前記障害物までの距離とを順次演算する第1の演算手段
と、前記ロボットの各軸位置のリミット位置までの余裕
度と、前記ロボットから前記障害物までの距離の余裕度
とをパラメータとする評価関数を設定し、前記第1の演
算手段で演算される前記冗長な自由度の値を順次変化さ
せたときの前記ロボットの各軸の位置と、前記ロボット
から前記障害物までの距離とに基づき前記評価関数の評
価値を順次求めていき、余裕度が最大となる評価値が得
られるときの冗長な自由度の値を教示データとして決定
する第2の演算手段とを具えるようにしている。
【0019】また、この発明の第2発明では、さらに、
前記第2の演算手段で順次求められる余裕度の大きさを
示す評価値がすべて所定のしきい値以下である場合に
は、前記目的位置まで前記ツール先端を移動させること
ができないと判断するようにしている。
【0020】すなわち、かかる第1発明の構成によれ
ば、入力された目的位置・姿勢角の教示データと、ロボ
ットの周囲に存在する障害物の位置データとに基づき、
当該入力された値にツール先端位置と姿勢角を維持した
ままで、冗長な自由度の値を順次変化させたときのロボ
ットの各軸の位置と、ロボットから障害物までの距離と
が順次演算される。
【0021】そして、ロボットの各軸位置のリミット位
置までの余裕度と、ロボットから障害物までの距離の余
裕度とをパラメータとする評価関数が設定され、上記演
算される冗長な自由度の値を順次変化させたときのロボ
ットの各軸の位置と、ロボットから障害物までの距離と
に基づき評価関数の評価値が順次求められていき、余裕
度が最大となる評価値が得られるときの冗長な自由度の
値が最終的に教示データとして決定される。
【0022】すなわち、ロボットの目的作業点における
位置・姿勢の教示データは、作業を実行するために必要
な目的位置・姿勢データ(入力データ)と、冗長な位置
・姿勢データに分けられる。
【0023】そこで、冗長な位置・姿勢データを順次変
化させながら、評価関数により逐次評価することによ
り、ロボットが目的の作業点において、ただ単に目的の
位置・姿勢を取り得ることができるばかりでなく、動作
範囲に十分余裕があり、かつワ―ク等の障害物との干渉
がない最適な位置・姿勢が最終的に探索される。
【0024】このような最適な位置・姿勢をとることが
できれば、動作範囲に十分余裕があり、かつワ―ク等の
障害物との干渉がないので、その目的位置までロボット
を到達させるのは容易である。
【0025】よって、最適な位置・姿勢を探索すること
ができれば、ロボットをその目的位置まで到達させるこ
とができると判断することができる。
【0026】以上のように、第1発明によれば、作業に
最適なロボットの位置・姿勢を迅速に、かつ確実に求め
ることができる。
【0027】逆に、冗長な位置・姿勢データを順次変化
させたとしても、ロボットが目的の作業点において、動
作範囲に余裕があり、かつワ―ク等の障害物との干渉が
ない位置・姿勢がとることができないと、評価関数の評
価値が示している場合には、ロボットをその目的位置ま
で到達させることができないと判断することができる。
【0028】以上のように、第2発明によれば、作業が
不可能な場合を迅速に判別することができるようにな
り、オペレータにかかる負担が飛躍的に軽減される。
【0029】
【発明の実施の形態】以下、図面を参照して本発明に係
るロボットの教示装置の実施の形態について説明する。
【0030】まず、以下の実施の形態に適用されるロボ
ットについて図14ないし図17を参照して説明する。
【0031】図14に示すロボット20は、6軸の垂直
多関節ロボットであり、第1アーム21と第2アーム2
2とを具えている。同図14には、ベース面と第1軸
(旋回軸)の回転軸との交点を原点とするベース座標系
XーYーZが示されている。
【0032】第2アーム22の先端には、図15に示す
ように、所定の作業を行うためのツール23が配設され
ている。
【0033】いま、ツール23の先端23aの位置を制
御点と呼ぶことにすると、その制御点の座標位置は、上
記ベース座標系XーYーZにおける位置(X、Y、Z)
により特定され、そのツール23の方向はオイラー角
(A、B、C)で特定される。ここで、オイラー角
(A、B、C)について説明すると、同図に示すよう
に、ベース座標XーYーZを制御点がその原点になるよ
うに移動させ、X´ーY´ーZ´座標系を生成する。そ
こで、ツール方向ベクトルをX´Y´平面に投影したベ
クトルがX´軸となす角がAとなる。また、ツール方向
ベクトルとX´Y´平面とのなす角がBとなる。Cは、
ツール方向ベクトルの回転角である。
【0034】図16は構造パラメータSPが3ビットの
データで表されることを説明する図である。
【0035】すなわち、制御点の位置(X、Y、Z)と
ツール23の方向(A、B、C)を指定しても、ロボッ
ト20の各軸の角度は1つに決まらない。これには何通
りの組合せがある。
【0036】そこで、制御点の位置とツール23の方向
以外に構造パラメータSPと呼ぶものを使って各軸の角
度を1つに決めようとするものである。
【0037】同図16に示すように、構造パラメータS
Pは、6軸角度が正であるか負であるかと、5軸角度が
正であるか負であるかと、制御点がロボット20の正面
にあるか背面にあるかどうかの組合せからなる。
【0038】ここで、制御点がロボット20の正面にあ
る場合とは、図17(a)に示すように、制御点が第1
軸(一点鎖線)より前にある姿勢のことであり、また制
御点がロボット20の背面にある場合とは、図17
(b)に示すように、制御点が第1軸(一点鎖線)より
後ろにある姿勢のことである。
【0039】ここで、走行台車が設けられている6軸ロ
ボット20の例をとると、ツ―ル23の先端23aの位
置・姿勢は、x、y、z(ツ―ル先端位置)、a、b、
c(先端角度)、sp( 構造パラメ―タ)、r(走行台車
の位置)で表すことができる。これら位置・姿勢のデー
タは、溶接等の作業のために必要となる位置・姿勢のデ
ータx、y、z、a、bと、冗長な自由度である残りの
位置・姿勢のデータc、sp、rとに分けることができ
る。
【0040】(1)冗長な自由度を変化させ、最適な位
置・姿勢を評価関数によって求める。ここでは、溶接ロ
ボットを例にとる。溶接ロボット20はトーチ23を、
溶接線に対して一定の角度で移動させることにより溶接
作業を行うものである。
【0041】すなわち、この場合、ア―ク溶接ロボット
としては、溶接開始点に接近して、溶接線上の各点を順
次移動し、溶接終了点から待避する動きをする。
【0042】そこで、こうした作業点Pw(溶接開始
点、溶接線上の各点、溶接待避点)へ到達できるかどう
かを評価関数を用いて判断しようとするものである。
【0043】こうした作業点の位置・姿勢のデータは、
前述したように、作業に必要な目的位置・姿勢と、作業
に必要でない冗長な自由度とに分類することができる。
【0044】つまり、目的位置x、y、zと目的角度
a、bが、溶接の加工条件によって定まる目的位置・姿
勢であり、残る自由度cとspが冗長な自由度である。
【0045】そこで、ツール先端23aが作業点Pwに
位置されている状態(x、y、zとa、bが固定)で、
この冗長な自由度cとspを順番に変化させ新たな位置
・姿勢を順次生成していき、ワーク等の障害物と干渉し
ない位置・姿勢を探索するようにし、この探索できた干
渉しない位置・姿勢を、新たな初期位置・姿勢として、
その新たな初期位置・姿勢から、ア―ムに沿った中間位
置・姿勢を求めることができる。つまり、これにより待
避経路や接近経路を生成することができる。
【0046】さらに、ワ―ク24とロボット20との距
離と、ロボット20の各軸のリミット位置(角度)まで
の余裕を評価することによって、さらに、よりよい位置
・姿勢を探索することができる。また、評価関数値によ
って実際にその位置・姿勢に到達することの難しさ度合
いを評価、判断することもできる。
【0047】図1は、評価関数を用いて作業点Pwに到
達できるかどうかを判断する処理の手順を示すフローチ
ャートである。
【0048】ここで、qOi は、ロボット20の6軸の
うちの第i軸の基準角度、つまりリミット角度を示して
いる。また、qiは、冗長な自由度c、spから逆変換
によって求められる第i軸の角度を示す。また、dq
は、ロボット20の各軸の角度の基準角度に対する変化
量を示している。WQiは、ロボット20の軸i毎の重
みである。また、dは、その位置・姿勢におけるロボッ
ト20とワ―ク24との最小の距離を示す。ただし、ロ
ボット20の部品毎に定められた倍率によって個々のロ
ボット20の部品とワ―ク24との距離は、補正されて
おり、ツ―ル23とワ―ク24のみの距離を演算するこ
とを避けている。
【0049】そして、その位置・姿勢(x、y、zと
a、bが固定)で、最後に得られるcbest、sp bestが最
も良い冗長自由度であり、e bestが最も良い評価関数値
になる。すなわち、評価関数e=f(d、dq)の評価
値eは、dが大きいほど(ワークまでの距離に余裕があ
るほど)、dqが大きいほど(リミットまで余裕がある
ほど)、よりよい評価値となる。この場合、関数fは、
関数値eが小さいほど、よりよい評価値となるように設
定されているものとする。よって、逆にいうと、e best
の値が大きさが、作業点Pwに到達することの難しさ度
合いを示すことにもなる。
【0050】すなわち、同図1に示すように、まず、溶
接の加工条件によって定まるx、y、zとa、bが、作
業点Pwの目的位置・姿勢データとして入力される(ス
テップ101)。
【0051】そして、冗長な自由度c、sp、最もよい
自由度c best、sp bestが零にイニシャライズされると
ともに、評価関数値e bestが大きな定数BNに設定され
る。この大きな定数BNは、作業点Pwに到達できない
ことを判断するためのしきい値である(ステップ10
2)。
【0052】ついで、冗長な自由度c、spから逆変換
によって求められる各軸iの角度に基づいて、基準角
度に達しているかどうかのリミットチェックがなされる
(ステップ103)。
【0053】この結果、リミットに達していると判断さ
れたならば、評価値を求めることなく、冗長な角度c、
spを順次変化させていく(ステップ104〜10
7)。
【0054】一方、ステップ103でリミットに達して
いないと判断されたならば、ステップ111に移行さ
れ、各軸iの角度qiのリミット角度q0までの余裕度d
qが演算されるとともに、ロボット20からワーク24
等の障害物までの最小距離dが演算され、これらに基づ
いて評価関数fにより評価値eが演算される(ステップ
111)。
【0055】ついで、求められた距離dが零以上でか
つ、求められた評価値eが前回までの最もよい評価値e
bestより小さい(よりよい評価値)かどうかが判断され
る(ステップ112)。判断結果がNOならば、最もよ
い自由度c best、sp best、最もよい評価値e bestを更
新することなく、手順はステップ104に移行され、冗
長な角度c、spを、つぎの値に変化させる処理を行う
(ステップ104〜107)。
【0056】上記ステップ112の判断結果がYESな
らば、よりよい自由度、よりよい評価値が得られた場合
なので、現在、取得されている値e、c、spで、最も
よい自由度c best、sp best、最もよい評価値e bestが
更新される(ステップ113)。
【0057】こうして、冗長な角度c、spをすべての
範囲にわたって変化させて、最終的に取得された最もよ
い評価値e bestが、上記大きな定数BNであるかどうか
が判断される(ステップ108)。
【0058】上記大きな定数BNは、作業点Pwに到達
できないことを判断するためのしきい値であるので、ス
テップ108の判断結果がYESならば、ロボット20
はその作業点Pwに到達できないと判断される(ステッ
プ109)。
【0059】一方、最終的に取得された最もよい評価値
e bestが、上記大きな定数BNよりも小さい場合には
(ステップ108の判断NO)、作業点Pwにロボット
20が到達できる可能性ありとの判断がなされ、最終的
に取得された最もより自由度cbest、sp bestの値が、教
示データc、spとして出力されることになる。こうし
て得られた位置・姿勢の教示データ(x、y、z、a、
b、c、sp)に基づき作業点Pwにおけるロボット各
軸の角度を求めるようにすれば、ロボット20の姿勢
を、ワーク等との干渉もなく動作範囲に余裕のある最適
な姿勢にすることができる(ステップ110)。
【0060】また、図1では、目的角度(ツール姿勢
角)a、bを固定のままとしたが、これら目的角度a、
bの角度についても、溶接の加工条件の許す範囲で変化
させるようにしてもよい。また、図1では、冗長な自由
度c、spを、次第に大きくするよう変化させている
が、変化の方法としても任意であり、乱数で与えてもよ
い。また、最初は、大きな刻みで変化させ、よい評価値
eが取得される範囲では、細かい刻みで変化させてもよ
い。また、冗長自由度を変化させればよいのであるか
ら、例えば、走行台車付きのロボットシステムであれ
ば、冗長な自由度である走行台車の位置を変化させるよ
うにしてもよい。
【0061】また、この実施の形態で想定している図1
4に示す構造のロボット20の場合、構造パラメ―タs
pを変えたとき、6軸の構造パラメ−タは6軸を360
度回転させ、5軸の構造パラメ―タの場合は4軸を18
0度回転させるようになり、4軸は180度回転させた
とき同じ形状になるので、構造パラメ―タspを変更し
ても外見上の変化はない。従って、構造パラメ―タsp
は、上記ステップ111、112の干渉チェックを行わ
なくても適当に決めてよい。このように、干渉チェック
の回数を減らして、処理時間の短縮を図ることができる
処理手順を図2に示す。
【0062】この図2では、冗長な自由度c、spを変
化させる処理であるステップ203〜208が、図1の
ステップ103〜107と異なっている点を除いて、図
1と同様の処理が実行される。すなわち、リミットチェ
ック(ステップ204)でOKと判断された構造パラメ
ータspについてのみ順次角度cを変化させていき(ス
テップ207、208)、干渉チェック(ステップ21
2、213)を順次行なうようにしている。これにより
処理時間の短縮が図られる。
【0063】(2)到達可能の度合いを表示する。
【0064】図14に示す構造のロボット20の場合、
第5軸が0度になる姿勢では、第6軸と第4軸の回転軸
が一直線上に重なることになる。このとき、ツ―ル23
の前端角度から計算すると、第6軸と第4軸の回転角度
が定まらず逆変換演算が行なえなくなる。そして、第5
軸の回転位置(プラスかマイナスか)を示す構造パラメ
―タspが変化する(図16参照)ような移動では、必
然的に第5軸が0度になる姿勢を通らなければならな
い。
【0065】よって、逆変換演算を行い、ツール先端位
置を補間する直線移動命令や、円弧移動命令では、第5
軸の回転位置を示す構造パラメ―タspが変化するよう
な移動をさせることは、避けなければならない。
【0066】そこで、この実施の形態の教示装置では、
複数の目的位置を同時に記憶して、例えば溶接区間のよ
うに、その目的位置・姿勢の間を直線移動命令や、円弧
移動命令などにより補間する処理を行うときには、複数
の目的位置の構造パラメ―タspを統一して残りの自由
度を変化させることで、最適な位置・姿勢を演算するよ
うにしている。
【0067】図3、図4は、かかる処理の手順を示すフ
ローチャートである。
【0068】ここで、x(),y(),z(),
a(),b()は、複数の目的位置を保存する1次元の
配列であり、Nは、目的位置の数である。また、e()
(),c()(),sp()()は、第5軸の回転位置
を示す構造パラメータ、目的位置を変数とする評価関数
値e、C角度、構造パラメ―タspの2次元の配列であ
る。例えば、e(0)(0)は、第5軸の回転位置を示
す構造パラメ―タが0の時の、0番目の目的位置・姿勢
の評価関数値であり、e(1)(2)は、第5軸の回転
位置を示す構造パラメ―タが1の時の、2番目の目的位
置・姿勢の評価関数値である。
【0069】また、e best all()は、第5軸の回転位置
を示す構造パラメータ別に保存される評価関数値の総和
である。最終的には、e best all(0) か、e best all
(1) のどちらか小さいほう(よりよい評価値が得られる
ほう)の第5軸の回転位置を示す構造パラメ―タが選択
されることになる。
【0070】すなわち、図3に示すように、複数の目的
位置・姿勢のデータx(),y(),z(),a(),
b()が1次元の配列として入力されるとともに、目的
位置の数Nが入力される(ステップ301)。
【0071】そして、第5軸の回転位置を示す構造パラ
メータi、構造パラメータspがそれぞれ0にイニシャ
ライズされる(ステップ302)。
【0072】ついで、目的位置を示すi、評価関数値の
総和e best all()がそれぞれ0にイニシャライズされる
(ステップ304)。
【0073】そして、x,y,z,a,bの内容をそれ
ぞれ、x(i),y(i),z(i),a(i),b
(i)にして(ステップ304)、手順は図4のステッ
プ313に移行され、以後、上記図1と同様にして、最
もよい評価関数値e best、最もよい自由度c best、sp b
estを探索する処理が実行される。
【0074】すなわち、冗長な自由度c、構造パラメー
タspのうち第5軸の回転位置以外のものを示す構造パ
ラメータk、最もよい自由度c best、sp bestが零にイ
ニシャライズされるとともに、評価関数値e bestが大き
な定数BNに設定される。この大きな定数BNは、目的
位置に到達できないことを判断するためのしきい値であ
る(ステップ313)。
【0075】ついで、冗長な自由度c、spから逆変換
によって求められる各軸iの角度に基づいて、基準角
度に達しているかどうかのリミットチェックがなされる
(ステップ314)。
【0076】この結果、リミットに達していると判断さ
れたならば、評価値を求めることなく、冗長な角度c、
構造パラメータsp、kを順次変化させていく(ステッ
プ315〜318)。
【0077】一方、ステップ314でリミットに達して
いないと判断されたならば、ステップ320に移行さ
れ、各軸iの角度qiのリミット角度q0までの余裕度d
qが演算されるとともに、ロボット20からワーク24
等の障害物までの最小距離dが演算され、これらに基づ
いて評価関数fにより評価値eが演算される(ステップ
320)。
【0078】ついで、求められた距離dが零以上でか
つ、求められた評価値eが前回までの最もよい評価値e
bestより小さい(よりよい評価値)かどうかが判断され
る(ステップ321)。判断結果がNOならば、最もよ
い自由度c best、sp best、最もよい評価値e bestを更
新することなく、手順はステップ315に移行され、冗
長な角度c、構造パラメータsp、kを、つぎの値に変
化させる処理を行う(ステップ315〜318)。
【0079】上記ステップ321の判断結果がYESな
らば、よりよい自由度、よりよい評価値が得られた場合
なので、現在、取得されている値c、sp、eで、最も
よい自由度c best、sp best、最もよい評価値e bestが
更新される(ステップ322)。
【0080】こうして、冗長な角度c、sp、kをすべ
ての範囲にわたって変化させて、最終的に取得された最
もよい評価値e best、最もよい自由度c best、sp best
が、e(j)(i)、c(j)(i)、sp(j)
(i)の内容とされ(ステップ319)、手順は図3の
ステップ305に移行される。
【0081】そして、e best all(j)に上記ステップ3
19で取得された最もよい評価値e bestを加えたもの
が、新たな評価関数値の総和e best all(j)とされる
(ステップ305)。
【0082】以下、目的位置iがNまで順次更新されて
(ステップ306、307)、第5軸の回転位置を示す
構造パラメータが0(j=0)のときの評価関数値の総
和ebest all(j)が最終的に取得されることになる。
【0083】以後、今度は、構造パラメータsp、第5
軸の回転位置を示す構造パラメータjが、更新されて
(ステップ308、309)、同様の処理が実行され
(ステップ301〜307、ステップ313〜31
9)、第5軸の回転位置を示す構造パラメータが1(j
=1)のときの評価関数値の総和e best all(j)が最終
的に取得されることになる。
【0084】そして、こうして取得された両評価関数値
の総和e best all(0)、e best all(1)の大きさが比較さ
れる(ステップ310)。
【0085】この結果、第5軸の回転位置を示す構造パ
ラメータが0のときの評価値の総和の方がよい評価値で
あるならば(ステップ310の判断YES)、第5軸の
回転位置を示す構造パラメータが0のときの評価関数値
e、C角度、構造パラメ―タspの2次元の配列e
(0)(),c(0)(),sp(0)()が選択され
る(ステップ311)。一方、第5軸の回転位置を示す
構造パラメータが1のときの評価値の総和の方がよい評
価値であるならば(ステップ310の判断NO)、第5
軸の回転位置を示す構造パラメータが1のときの評価関
数値e、C角度、構造パラメ―タspの2次元の配列e
(0)(),c(0)(),sp(0)()が選択され
ることになる(ステップ312)。
【0086】こうして、最終的に選択された、第5軸の
回転位置を示す構造パラメータが統一された最もよい自
由度c(0)(),sp(0)()が、溶接経路の教示
データc、spとして出力されることになる。こうして
得られた位置・姿勢の教示データ(x、y、z、a、
b、c、sp)に基づき、溶接経路上の各目的位置Pw
におけるロボット各軸の角度を求めるようにすれば、ロ
ボット20の姿勢を、ワーク等との干渉もなく動作範囲
に余裕のある最適な姿勢にすることができる。
【0087】なお、このフロ―チャ―トでは示されてい
ないが、e best all(0) >=BNのとき、この構造パラ
メ―タ0では、干渉しないで、この区間を移動すること
ができないと判断されることになる。
【0088】このようにして、溶接経路上の教示データ
が取得されるわけであるが、評価関数値eがとる値に応
じて、各目的位置を、複数のレベルの色、または異なる
形状で表示することにより、複数の目的位置毎に、到達
可能の困難度の度合いを表示するようにしてもよい。 (3)距離の計算方法 さて、ロボット20とワ―ク24との距離の計算方法と
しては、多くの方法が考えられるが、以下のようにして
求めることもできる。
【0089】すなわち、図5に示すように、物体の表面
を等間隔のメッシュで区切り、そのメッシュの交点に、
お互いが隙間なく接するような小球を考える。
【0090】2つの物体があるとき、すべてのメッシュ
交点の距離を求め、その最小の距離をdmとし、小球の
半径をrsとすると、物体間の距離doとdm、rsの関
係は、 do>dmー2rs となる。ここで、メッシュを十分に細かくすると、do
は真の物体間の距離に近ずく。doが負の時、物体は干
渉していることになる。
【0091】距離の計算は、図6に示すように、部品を
包む近接球を設定し、この近接球間の距離を計算して、
その距離が予め設定したしきい値以下である場合のみ、
精密な距離計算をすることによって、無駄な距離計算を
省くようにする。
【0092】いま、ある目的位置でロボット20とワ―
ク24の各部品間で最小の距離を求める場合を考える。
この場合、部品間の距離のうち最小のもののみを求めれ
ばよいのであるから、近接球の距離のうち最小のものの
みを求めるだけでよく、余分な計算を省くことができ
る。つまり、計算ル―プの中で、順次、近接球間の距離
の最小値dis min を更新していき、最終的に得られた近
接球間の距離dis minについてのみ精密な距離計算を行
えばよい。これにより時間のかかる精密な距離計算の回
数を少なくすることができ、演算時間を大幅に短縮する
ことができる。
【0093】図7は、かかる演算時間を短縮することが
できる処理の手順を示すフローチャートである。
【0094】ここで、図中のpart of robot[i]は、ロボ
ット20の各部品の形状デ―タ、位置デ―タが納められ
ている配列であり、parts of work[j]は、ワ―ク24の
各部品の形状デ―タ、位置デ―タが納められている配列
である。
【0095】上記配列には、部品の形状を示すデ―タの
他、近接球(circumsphere)の中心座標位置、半径等のデ
ータも納められている。
【0096】また、定数FNは、予め与えられるとされ
る距離計算の為のしきい値であり、この距離FN以上、
ロボット20とワ―ク24とが離れている場合には、十
分に安全であると判断できる距離のことである。
【0097】図7の処理では、まず、dis minの内容が
上記定数FNに設定されるとともに、ロボット20の部
品の番号iが0にイニシャライズされる(ステップ40
1)。ついで、ワーク24の部品の番号jが0にイニシ
ャライズされる(ステップ402)。
【0098】そして、距離を求めるべきロボット部品pa
rts1の内容がpart of robot[i]にされるとともに、距離
を求めるべきワーク部品parts2の内容がparts of work
[j]にされるとともに、i、jがそれぞれ+1インクリ
メントされる(ステップ403)。
【0099】そして、現在のロボット20とワーク24
との距離disの内容が、ロボット部品parts1の近接球と
ワーク部品parts2の近接球との距離にされる(ステップ
404)。
【0100】ここで、disがdis minよりも小さいか否か
が判断される(ステップ405)。この結果、判断がN
Oである場合には、精密な距離計算を行うことなく、手
順はステップ410に移行される。
【0101】そして、ロボット部品の番号iが、ロボッ
ト部品の個数(number of parts ofrobot)より小さい
か、あるいは、ワーク部品の番号jが、ワーク部品の個
数(number of parts of work)より小さい限りは(ス
テップ410、411の判断YES)、ロボット部品の
番号iあるいはワーク部品の番号jを順次変化させて、
ロボット部品の番号iとワーク部品の番号jの組合せを
変えた上で、ステップ403以降同様の処理を繰り返
す。
【0102】一方、ステップ405の判断結果がYES
の場合には、精密な距離計算を行うべく、手順はステッ
プ406に移行される。
【0103】そして、ロボット部品parts1とワーク部品
parts2の正確な距離が演算され、その正確な距離がdis
の内容とされる(ステップ406)。
【0104】さらに、ステップ405と同様にして、現
在のdisがdis minよりも小さいか否かが判断される(ス
テップ407)。判断結果がNOである場合には、ステ
ップ405で判断NOとされた場合と同様な処理が実行
されるが、判断YESの場合には、現在のdisが最小の
距離であるので、このdisがdis minの内容とされる(ス
テップ408)。
【0105】ついで、こうして得られた現在の最小の距
離dis minが、0であるか否かが判断される(ステップ
409)。
【0106】この結果、判断YESの場合には、ワーク
24と干渉するものと判断して(ステップ413)、そ
の時点以後の距離演算を中止して、距離計算を終了させ
る。一方、ステップ409の判断がNOの場合には、さ
らに距離演算を行うべく、手順はステップ410に移行
される。
【0107】そして、ロボット部品の番号iが、ロボッ
ト部品の個数(number of parts ofrobot)より小さい
か、あるいは、ワーク部品の番号jが、ワーク部品の個
数(number of parts of work)より小さい限りは(ス
テップ410、411の判断YES)、ロボット部品の
番号iあるいはワーク部品の番号jを順次変化させて、
ロボット部品の番号iとワーク部品の番号jの組合せを
変えた上で、ステップ403以降同様の処理を繰り返
す。
【0108】こうして、最終的に、最小の距離dis min
が取得され、これが、目的位置において位置・姿勢が変
化された後のロボット20とワーク24との最小距離で
あるとされる(ステップ412)。
【0109】こうした距離の計算に当たっては、ト―チ
先端23aが、常にワ―ク24に当接した状態で距離を
計算しなければならないことを考慮しなければならな
い。
【0110】すなわち、溶接ロボット20の場合、ワイ
ヤ―は常にワ―ク24に干渉している状態にあり、ト―
チの先端部分23aはワ―ク24の開先部分にごく接近
して使われることが多い。
【0111】ここで、ロボット20とワ―ク24との最
小距離を評価しようとする場合、単純にロボット20と
ワ―ク24との最小の距離に基づき行うものとすると、
ト―チ部23あるいはワイヤ―部と、ワ―ク24との最
小距離のみを評価してしまうことになり、ロボット20
の他の部分を無視することになる。
【0112】逆に、ト―チ部23あるいはワイヤ―部を
完全に無視してしまうと、ト―チ部23がワ―ク24と
接触してしまう虞もある。
【0113】そこで、図8に示す処理では、ロボット2
0の各部位(各部品)毎に、距離に対する重みを与える
ことによって、この問題を解決するようにしている。
【0114】ここで、ワイヤ―は、接触して作業を行う
ので距離計算を行わないこととしており、ト―チ先端2
3aの部分は、計算で求めた距離を拡大するようにして
いる。また、柔軟なゴムなどで作られている部品など
は、干渉に対する危険性は小さいと評価できるので、距
離を小さく評価してもよい。
【0115】図8において、magnification parts of r
obot[i]は、ロボット部品毎の拡大率であり、予め与え
られているものとする。たとえば、この数値が−1と負
であれば、この部品についての距離計算は行われない。
【0116】例えば、ワイヤ―部は−1、ト―チ先端部
は50、その他の部品は1に設定される。
【0117】図8における処理内容は、基本的には、前
述した図7と同内容であり、図7のステップ403、4
04の代わりに、ステップ503、504、505が、
また図7のステップ406の代わりに、ステップ507
が実行される点のみが異なっている。
【0118】すなわち、ステップ503では、距離を求
めるべきロボット部品parts1の内容がparts of robot
[i]にされるとともに、距離を求めるべきワーク部品par
ts2の内容がparts of work[j]にされるとともに、i、
jがそれぞれ+1インクリメントされる。さらに、rati
oの内容が、現在のロボット部品の拡大率magnification
parts of robot[i]にされる(ステップ503)。
【0119】ついで、ratioが0よりも大きいか否かが
判断される(ステップ504)。この結果、ratioが0
以下であると判断された場合、たとえば、現在のロボッ
ト部品がワイヤ―部であるような場合には、以下の距離
計算を行うことなく、手順はステップ511に移行さ
れ、以後、i、jが所要に更新される。
【0120】一方、ratioが0より大きいと判断された
場合、たとえば、現在のロボット部品がト―チ先端部2
3aあるいは、ワイヤー部を除く他の部品であるような
場合には、以下の距離計算を行うべく、手順はステップ
505に移行される。
【0121】そして、現在のロボット20とワーク24
との距離disの内容が、ロボット部品parts1の近接球と
ワーク部品parts2の近接球との距離にされる。さらに、
disの内容が、dis・ratioとされ、距離に対する重みが
付与される。ここで、重みは、前述したように、たとえ
ばト―チ先端部23aなら50、その他の部品は1であ
る(ステップ505)。
【0122】ステップ507では、ロボット部品parts1
とワーク部品parts2の正確な距離が演算され、その正確
な距離がdisの内容とされる。さらに、disの内容が、di
s・ratioとされ、距離に対する重みが付与される(ステ
ップ507)。
【0123】さて、こうした、ト―チ部23の距離のみ
を評価し、ロボット20の他の部分を無視する問題は、
例えば、ト―チ部23と、その他のロボットの部分の最
小距離を別々に計算して、その平均を求めることによっ
ても、ある程度解決することができる。
【0124】しかしながら、この場合には、ト―チ部2
3の距離を過大に評価してしまい、ト−チ部23の距離
の影響を自由に調節できない。また、2つの部分毎に最
小距離を求めることになるので、近接球間の距離を小さ
くしていくことで計算の効率を上げる処理方法をとった
とき、計算しなくてもよかった部品間の精密な距離を演
算しなければならないことが多くなり、計算速度が遅く
なってしまう。
【0125】(4)評価関数を向上させる距離の予測に
よる高速化 以下、ある距離のしきい値を設定して、距離の計算の途
中において、ロボット20の一部とワ―ク24の一部が
このしきい値よりも小さくなった場合に、もはや評価関
数値は向上しないものとして、残りの距離の計算を中断
することによって、最適な目的位置・姿勢を求める演算
を高速化することができる実施の形態について説明す
る。
【0126】ここで、評価関数は、ロボット部品の拡大
率を考慮した最小距離dの関数f1(d)と、ロボット軸
の角度の基準角度からの変化量の関数f2(dq)の和、 e=f1(d)+f2(dq) から成るものとする。
【0127】そして、目的位置において、冗長な自由度
を変化させ、評価関数の値eを得る。
【0128】こうして順次取得された評価値のうち最小
となる最もよい評価値をe bestとしたとき、距離、 dmin worst=(f1)-1(e best-f2(dq)) が、この目的位置・姿勢において評価関数値が向上する
ための最小のロボット20とワ―ク24との距離とな
る。逆にいうと、この距離dmin worst以上ロボット20
とワーク24が近づくと評価関数値は、e bestよりもよ
くならない。
【0129】図9、図10は、かかる内容を処理する手
順を示すフローチャートである。なお、この処理では、
上記実施の形態(3)と同様に、ト―チ部分23をロボ
ット20の他の部分と同様に取り扱いがことができ、計
算の中断についてもト―チ部分23を特別に取り扱うこ
となく行えるようになっている。
【0130】すなわち、図9に示すように、まず、溶接
の加工条件によって定まるx、y、zとa、bが、作業
点Pwの目的位置・姿勢データとして入力される(ステ
ップ601)。
【0131】そして、冗長な自由度c、sp、最もよい
自由度c best、sp bestが零にイニシャライズされると
ともに、評価関数値e bestが大きな定数BNに設定され
る。この大きな定数BNは、作業点Pwに到達できない
ことを判断するためのしきい値である(ステップ60
2)。
【0132】ついで、冗長な自由度c、spから逆変換
によって求められる各軸iの角度に基づいて、基準角
度に達しているかどうかのリミットチェックがなされ
る。
【0133】そして、各軸iの角度に基づいて、ロボッ
ト20を構成する部品のそれぞれの位置が計算される
(ステップ603)。
【0134】この結果、リミットに達していると判断さ
れたならば、評価値を求めることなく、冗長な角度c、
spを順次変化させていく(ステップ604〜60
7)。
【0135】一方、ステップ603でリミットに達して
いないと判断されたならば、ステップ611に移行さ
れ、各軸iの角度qiのリミット角度q0までの余裕度d
qが演算される。さらに、現在のdqとe bestと、評価
関数e=f1(d)+f2(dq)に基づき、距離のしきい値
dmin worst=(f1)-1(e best-f2(dq))が求められる
(ステップ611)。
【0136】ついで、手順は図10のステップ701に
移行される。
【0137】図10の処理では、まず、dis minの内容
が上記定数FNに設定されるとともに、ロボット20の
部品の番号iが0にイニシャライズされる(ステップ7
01)。ついで、ワーク24の部品の番号jが0にイニ
シャライズされる(ステップ702)。
【0138】そして、距離を求めるべきロボット部品pa
rts1の内容がpart of robot[i]にされるとともに、距離
を求めるべきワーク部品parts2の内容がparts of work
[j]にされるとともに、i、jがそれぞれ+1インクリ
メントされる。さらに、ratioの内容が、現在のロボッ
ト部品の拡大率magnification parts of robot[i]にさ
れる(ステップ703)。
【0139】ついで、ratioが0よりも大きいか否かが
判断される(ステップ704)。この結果、ratioが0
以下であると判断された場合、たとえば、現在のロボッ
ト部品がワイヤ―部であるような場合には、以下の距離
計算を行うことなく、手順はステップ711に移行さ
れ、以後、i、jが所要に更新される。
【0140】一方、ratioが0より大きいと判断された
場合、たとえば、現在のロボット部品がト―チ先端部2
3aあるいは、ワイヤー部を除く他の部品であるような
場合には、以下の距離計算を行うべく、手順はステップ
705に移行される。
【0141】そして、現在のロボット20とワーク24
との距離disの内容が、ロボット部品parts1の近接球と
ワーク部品parts2の近接球との距離にされる。さらに、
disの内容が、dis・ratioとされ、距離に対する重みが
付与される。ここで、重みは、前述したように、たとえ
ばト―チ先端部23aなら50、その他の部品は1であ
る(ステップ705)。
【0142】ここで、disがdis minよりも小さいか否か
が判断される(ステップ706)。この結果、判断がN
Oである場合には、精密な距離計算を行うことなく、手
順はステップ711に移行される。
【0143】そして、ロボット部品の番号iが、ロボッ
ト部品の個数(number of parts ofrobot)より小さい
か、あるいは、ワーク部品の番号jが、ワーク部品の個
数(number of parts of work)より小さい限りは(ス
テップ711、712の判断YES)、ロボット部品の
番号iあるいはワーク部品の番号jを順次変化させて、
ロボット部品の番号iとワーク部品の番号jの組合せを
変えた上で、ステップ703以降同様の処理を繰り返
す。
【0144】一方、ステップ706の判断結果がYES
の場合には、精密な距離計算を行うべく、手順はステッ
プ707に移行される。
【0145】ステップ707では、ロボット部品parts1
とワーク部品parts2の正確な距離が演算され、その正確
な距離がdisの内容とされる。さらに、disの内容が、di
s・ratioとされ、距離に対する重みが付与される(ステ
ップ707)。
【0146】さらに、ステップ706と同様にして、現
在のdisがdis minよりも小さいか否かが判断される(ス
テップ708)。判断結果がNOである場合には、ステ
ップ706で判断NOとされた場合と同様な処理が実行
されるが、判断YESの場合には、現在のdisが最小の
距離であるので、このdisがdis minの内容とされる(ス
テップ709)。
【0147】ついで、こうして得られた現在の最小の距
離disが、評価関数値eが向上するかどうかを判断する
ためのしきい値dmin worstより小さいか否かが判断され
る(ステップ710)。
【0148】この結果、判断YES、つまり、その距離
disでは、もはや評価関数値eが向上しないと判断した
場合には、その時点以後の距離演算を中止して、目的位
置・姿勢におけるロボット20とワーク24との距離d
の内容を0にして(ステップ714)、距離計算を終了
させる。
【0149】一方、ステップ710の判断がNO、つま
り、その距離disであれば、評価関数値eが向上すると
判断した場合には、さらに距離演算を行うべく、手順は
ステップ711に移行される。
【0150】そして、ロボット部品の番号iが、ロボッ
ト部品の個数(number of parts ofrobot)より小さい
か、あるいは、ワーク部品の番号jが、ワーク部品の個
数(number of parts of work)より小さい限りは(ス
テップ711、712の判断YES)、ロボット部品の
番号iあるいはワーク部品の番号jを順次変化させて、
ロボット部品の番号iとワーク部品の番号jの組合せを
変えた上で、ステップ703以降同様の処理を繰り返
す。
【0151】こうして、最終的に、評価関数値eが向上
するとされる最小の距離dis minが取得され、これが、
位置・姿勢が変化された後の目的位置・姿勢におけるロ
ボット20とワーク24との最小距離dであるとされる
(ステップ713)。
【0152】手順は再び図9のステップ612に移行さ
れ、現在の最小距離dと現在のdqとにより評価値eが
演算される(ステップ612)。
【0153】ついで、求められた距離dが零以上でか
つ、求められた評価値eが前回までの最もよい評価値e
bestより小さい(よりよい評価値)かどうかが判断され
る(ステップ613)。判断結果がNOならば、最もよ
い自由度c best、sp best、最もよい評価値e bestを更
新することなく、手順はステップ604に移行され、冗
長な角度c、spを、つぎの値に変化させる処理を行う
(ステップ604〜607)。
【0154】上記ステップ613の判断結果がYESな
らば、よりよい自由度、よりよい評価値が得られた場合
なので、現在、取得されている値e、c、spで、最も
よい自由度c best、sp best、最もよい評価値e bestが
更新される(ステップ614)。
【0155】こうして、冗長な角度c、spをすべての
範囲にわたって変化させて、最終的に取得された最もよ
い評価値e bestが、上記大きな定数BNであるかどうか
が判断される(ステップ608)。
【0156】上記大きな定数BNは、作業点Pwに到達
できないことを判断するためのしきい値であるので、ス
テップ608の判断結果がYESならば、ロボット20
はその作業点Pwに到達できないと判断される(ステッ
プ609)。
【0157】一方、最終的に取得された最もよい評価値
e bestが、上記大きな定数BNよりも小さい場合には
(ステップ608の判断NO)、作業点Pwにロボット
20が到達できる可能性ありとの判断がなされ、最終的
に取得された最もより自由度cbest、sp bestの値が、教
示データc、spとして出力されることになる。こうし
て得られた位置・姿勢の教示データ(x、y、z、a、
b、c、sp)に基づき作業点Pwにおけるロボット各
軸の角度を求めるようにすれば、ロボット20の姿勢
を、ワーク等との干渉もなく動作範囲に余裕のある最適
な姿勢にすることができる(ステップ610)。
【0158】
【実施例】以下、上述した実施の形態に基づき、より具
体的な実施例について説明する。まず、図12は、この
実施例で使用されるオフライン教示システムの中心とな
る表示装置の表示画面を示している。なお、この実施例
で想定しているハードウエアは公知のものであり、その
ソフトウエアに特徴があるので、コンピュータ本体等の
ハードウエアについては図示しない。
【0159】このオフライン教示システムの表示画面
は、逐次画面を変化させることで、ロボット20をグラ
フィック表示させたり、図12に示すように、画面を見
ながら、ロボット20を操作したりでき、ロボットプロ
グラムの作成、編集ができるようになっている。なお、
入力装置としては、マウス等の公知のものが使用され
る。
【0160】いま、図11に示すように、溶接ロボット
20によってワ―ク24を加工する場合に、このオフラ
イン教示システムを適用することを想定する。ワ―ク2
4は建築物の骨格となる鉄骨部品であり、ロボット20
は6軸の垂直多関節ロボットである。図11に示すワ―
ク24の一部を、溶接によって接続する作業を想定す
る。
【0161】以下、つぎのような手順で教示処理が実行
される。
【0162】1.目的位置・姿勢の入力 まずは、溶接作業に必要な目的位置・姿勢、つまり冗長
な自由度であるC角と構造パラメータspを除いた、ツ
―ル先端23aの位置x、y、zとツール姿勢角度A、
Bが入力される。
【0163】すなわち、オペレ―タが、画面上でワ―ク
24の溶接線上の点を選び、その位置をマウスでクリッ
クする。すると、マウスで選択されたワ―ク24の線上
に、図11に示すような座標軸が表示されるので、座標
軸の角度をA、Bの2つの数値として入力する。
【0164】ここで、図12にA、Bの入力に用いる画
面13を示す。この画面13は、メニュ―により選択さ
れ、ワ―ク24やロボット20のグラフィカルな画面と
同じ画面上に表示させることができる。ここでは、これ
をA、B入力画面13と呼ぶことにする。すなわち、マ
ウスにより、図12のボタン1を選択する毎と、ボタン
1の横のA角度を示す数値が順次変化し、それに応じて
グラフィック画面上の座標軸の角度も変化する。同様
に、ボタン2を選択するとB角度を変更することができ
る。オペレータは、表示された数値と、グラフィック画
面の座標軸の傾き具合によって角度を確認した後、ボタ
ン8を選択する。すると、枠7内に目的位置・姿勢の名
称(例えば「P0」)が表示され、この点P0に対応づけ
られて、入力されたツール先端位置xyzとツール姿勢
角abが登録される。
【0165】同様の操作を繰り返し行い、複数の目的位
置・姿勢P0、P1、P2…を登録する。
【0166】2.目的位置・姿勢へのロボットの移動 ついで、画面13のボタン3が選択されると、冗長な自
由度のc角と構造パラメータspが変化され、評価関数
fを最小化する最適なc角と構造パラメータspの値が
決定される。この際、前述した実施の形態(4)に示さ
れる内容が、実行される。そして、決定した位置・姿勢
におけるロボット20がグラフィック表示される。
【0167】ここで、評価関数fには、次の式が用いら
れる。
【0168】 e=f(d,dq)=α/(d)2+βdq ここで、α、βは定数、q0jはj軸の基準角度、qjは
逆変換(inverse kinematics)によって求められるj軸
の角度を示す。dは、その位置・姿勢(たとえば点P
0)におけるロボット20とワーク24との最小距離を
示す。
【0169】ただし、ロボット20を構成する部品毎に
定められた倍率によって個々のロボット部品とワ―ク2
4との距離は補正されており、ツ―ル23とワ―ク24
のみの距離をそのまま演算することを避けている(通
常、ツール23はワーク24に接するから)。
【0170】また、ロボット20をグラフィック表示さ
せる際、ロボット20の各部はワ―ク24との距離に応
じて、赤色(ワークと干渉することを意味する色)、黄
色(ワークまでの距離が10mm)、青色(ワークまで
の距離が50mmより小さい)、黒色(ワークまでの距
離が50mm以上)に色分けして表示される。
【0171】このとき、もし、ロボット20の動作範囲
内に入るc角と構造パラメータspが存在しなかったと
きは、「リミットオーバー(limit over)」と表示され
る。
【0172】また、ロボット20の動作範囲内に入る
が、ワーク24と干渉しない位置・姿勢が存在しないと
きには、基準角度q0jに最も近いロボット20の位置・
姿勢が表示され、ワーク24と干渉するロボット20の
部位が赤色で表示されることになる。
【0173】以上のようにして、冗長な自由度のc角と
構造パラメータspが変化された後のロボット20の姿
勢が、図13に示すごとく表示される。
【0174】さて、最初に登録された目的位置・姿勢
(たとえばP0)の座標軸は、点線で表示される。
【0175】ボタン9が選択されると、最適な冗長な自
由度が計算され、座標軸が実線で表示される。ここで、
表示の色は評価関数値によって、赤色(動作範囲外、ま
たは、干渉する場合)、黄色、青色、黒色(干渉しない
位置・姿勢がある場合:評価関数値がよくなるにつれて
黄色、青色、黒色と変化する)に色分けされる。
【0176】目的位置・姿勢は、ワ―ク座標軸上で定義
されているので、ワ―ク移動画面によりワ―クを移動さ
せると、ワ―クと同時に位置と角度が変わる。ボタン9
によって再度、評価され、座標軸の色が変化することに
なる。
【0177】なお、ボタン5が選択されると、上記のご
とく冗長な自由度を変化させて求めた現在のロボットの
位置(例えばP0)から、別に設定される待機位置まで
の待避経路を求める処理が実行される。
【0178】また、ボタン11が選択されると、登録さ
れた目的位置P0、P1、P2を結ぶ溶接経路が生成され
る。この溶接経路の作成にかかった時間、評価関数値等
が、表示枠4に表示される。
【0179】また、ボタン10が選択されると、登録し
た目的位置P0、P1、P2が消去され、ボタン12が選
択されると、この画面13が終了される。
【図面の簡単な説明】
【図1】図1は、本発明の実施の形態の処理の手順を示
すフローチャートである。
【図2】図2は、本発明の実施の形態の処理の手順を示
すフローチャートである。
【図3】図3は、本発明の実施の形態の処理の手順を示
すフローチャートである。
【図4】図4は、本発明の実施の形態の処理の手順を示
すフローチャートである。
【図5】図5は距離の計算を説明するために用いた図で
ある。
【図6】図6は距離の計算を説明するために用いた図で
ある。
【図7】図7は本発明の実施の形態の処理の手順を示す
フローチャートである。
【図8】図8は本発明の実施の形態の処理の手順を示す
フローチャートである。
【図9】図9は本発明の実施の形態の処理の手順を示す
フローチャートである。
【図10】図10は本発明の実施の形態の処理の手順を
示すフローチャートである。
【図11】図11はロボットとワークの配置関係を示す
斜視図である。
【図12】図12は本発明の実施例の表示画面に表示さ
れる内容を示す図である。
【図13】図13は本発明の実施例のロボットがワーク
に到達している様子を説明する斜視図である。
【図14】図14は、垂直多関節ロボットを説明する斜
視図である。
【図15】図15は図14のロボットのツールの姿勢角
を説明する斜視図である。
【図16】図16は図14のロボットの構造パラメータ
を説明する図である。
【図17】図17(a)、(b)は図14のロボットの
構造パラメータの値によって変化するロボット姿勢を示
す図である。
【符号の説明】
20 ロボット 22 第2アーム 23 ツール 24 ワーク
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成8年12月2日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】請求項1
【補正方法】変更
【補正内容】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0018
【補正方法】変更
【補正内容】
【0018】
【課題を解決するための手段および効果】そこで、この
発明の第1発明では、ロボットのアームに取り付けられ
たツールの先端位置と、当該ツールの姿勢角と、冗長な
自由度の値とを決定することにより当該ロボットの姿勢
が一義的に定まるロボットに適用されるロボットの教示
装置であって、前記ロボットの作業内容に応じて、前記
ツール先端が到達すべき目的位置と、当該目的位置にお
けるツールの目的姿勢角と、前記自由度の値とを、教示
データとして与え、前記ロボットの各軸を駆動して前記
目的位置まで前記ツール先端を移動させ、前記教示デー
タに応じた所望の作業姿勢で前記ロボットに作業を行わ
せるようにしたロボットの教示装置において、前記ツー
ル先端の目的位置と目的姿勢角を入力する入力手段と、
前記目的位置・姿勢角と、前記ロボットの周囲に存在す
る障害物の位置データとに基づき、当該入力された値に
ツール先端位置と姿勢角を維持したままで、前記冗長な
自由度の値を順次変化させたときの前記ロボットの各軸
の位置と、前記ロボットから前記障害物までの距離とを
順次演算する第1の演算手段と、前記ロボットの各軸位
置のリミット位置までの余裕度と、前記ロボットから前
記障害物までの距離の余裕度とをパラメータとする評価
関数を設定し、前記第1の演算手段で演算される前記冗
長な自由度の値を順次変化させたときの前記ロボットの
各軸の位置と、前記ロボットから前記障害物までの距離
とに基づき前記評価関数の評価値を順次求めていき、余
裕度が最大となる評価値が得られるときの冗長な自由度
の値を教示データとして決定する第2の演算手段とを具
えるようにしている。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0020
【補正方法】変更
【補正内容】
【0020】すなわち、かかる第1発明の構成によれ
ば、入力された目的位置・姿勢角と、ロボットの周囲に
存在する障害物の位置データとに基づき、当該入力され
た値にツール先端位置と姿勢角を維持したままで、冗長
な自由度の値を順次変化させたときのロボットの各軸の
位置と、ロボットから障害物までの距離とが順次演算さ
れる。

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 ロボットのアームに取り付けられた
    ツールの先端位置と、当該ツールの姿勢角と、冗長な自
    由度の値とを決定することにより当該ロボットの姿勢が
    一義的に定まるロボットに適用されるロボットの教示装
    置であって、 前記ロボットの作業内容に応じて、前記ツール先端が到
    達すべき目的位置と、当該目的位置におけるツールの目
    的姿勢角と、前記自由度の値とを、教示データとして与
    え、前記ロボットの各軸を駆動して前記目的位置まで前
    記ツール先端を移動させ、前記教示データに応じた所望
    の作業姿勢で前記ロボットに作業を行わせるようにした
    ロボットの教示装置において、 前記ツール先端の目的位置と目的姿勢角の教示データを
    入力する入力手段と、 前記目的位置・姿勢角の教示データと、前記ロボットの
    周囲に存在する障害物の位置データとに基づき、当該入
    力された値にツール先端位置と姿勢角を維持したまま
    で、前記冗長な自由度の値を順次変化させたときの前記
    ロボットの各軸の位置と、前記ロボットから前記障害物
    までの距離とを順次演算する第1の演算手段と、 前記ロボットの各軸位置のリミット位置までの余裕度
    と、前記ロボットから前記障害物までの距離の余裕度と
    をパラメータとする評価関数を設定し、前記第1の演算
    手段で演算される前記冗長な自由度の値を順次変化させ
    たときの前記ロボットの各軸の位置と、前記ロボットか
    ら前記障害物までの距離とに基づき前記評価関数の評価
    値を順次求めていき、余裕度が最大となる評価値が得ら
    れるときの冗長な自由度の値を教示データとして決定す
    る第2の演算手段とを具えたロボットの教示装置。
  2. 【請求項2】 前記第2の演算手段で順次求められ
    る余裕度の大きさを示す評価値がすべて所定のしきい値
    以下である場合には、前記目的位置まで前記ツール先端
    を移動させることができないと判断するようにした請求
    項1記載のロボットの教示装置。
  3. 【請求項3】 冗長な自由度は構造パラメータを含
    むものであり、 複数の目的位置に沿って前記ツールを移動させるときに
    前記構造パラメータの値を変化させることができない場
    合には、 前記複数の目的位置について教示を行う際に、前記構造
    パラメータの値は各目的位置について同じ値に固定した
    ままで当該構造パラメータ以外の冗長な自由度について
    の値を変化させるようにした請求項1記載のロボットの
    教示装置。
  4. 【請求項4】 前記複数の目的位置について教示を
    行った結果、各目的位置について得られた評価関数の評
    価値を、各目的位置に対応づけて表示装置に表示させる
    ようにした請求項1記載のロボットの教示装置。
  5. 【請求項5】 前記第1の演算手段は、前記ロボット
    を、複数の構成部品に分割し、各部品毎に前記障害物ま
    での距離を演算するものであり、 各部品毎に補正係数を設定し、各部品と前記障害物との
    距離に対して当該部品について設定された補正係数をか
    け合わせて得られる各部品毎の補正距離の中の最小距離
    を、前記ロボットから前記障害物までの距離として出力
    するようにした請求項1記載のロボットの教示装置。
  6. 【請求項6】 前記評価関数の評価値が前回までの評
    価値に比べて向上したか否かを判別する前記ロボットか
    ら前記障害物までの距離のしきい値を目的位置毎に求め
    ておき、 前記冗長な自由度の値が変化された第1の目的位置にお
    いて、前記ロボットの各部品から前記障害物までの距離
    を逐次演算する毎に、演算距離と前記第1の目的位置に
    ついての距離のしきい値とを比較し、演算距離が当該し
    きい値以下である場合に、前記評価関数の評価値は前回
    までの評価値に比べて向上しないものとして当該第1の
    目的位置における距離の演算を終了させるようにした請
    求項5記載のロボットの教示装置。
JP1469496A 1996-01-30 1996-01-30 ロボットの教示装置 Pending JPH09201784A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1469496A JPH09201784A (ja) 1996-01-30 1996-01-30 ロボットの教示装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1469496A JPH09201784A (ja) 1996-01-30 1996-01-30 ロボットの教示装置

Publications (1)

Publication Number Publication Date
JPH09201784A true JPH09201784A (ja) 1997-08-05

Family

ID=11868306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1469496A Pending JPH09201784A (ja) 1996-01-30 1996-01-30 ロボットの教示装置

Country Status (1)

Country Link
JP (1) JPH09201784A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008146930A1 (ja) * 2007-05-28 2008-12-04 Toyota Jidosha Kabushiki Kaisha ロボットの設置位置決定装置及びロボットの設置位置決定方法
JP2009226561A (ja) * 2008-03-25 2009-10-08 Kobe Steel Ltd ロボットの動作余裕量演算表示方法及びその装置
JP2010142910A (ja) * 2008-12-19 2010-07-01 Yaskawa Electric Corp ロボットシステム
JP2011011263A (ja) * 2009-06-30 2011-01-20 Fanuc Ltd 付加軸付きロボットのオフラインプログラム作成装置
JP2011258178A (ja) * 2010-05-10 2011-12-22 Fanuc Ltd 多軸加工機用数値制御装置
JP2013193131A (ja) * 2012-03-15 2013-09-30 Jtekt Corp ロボットの制御方法及びロボット制御装置、並びにロボット制御システム
WO2023002627A1 (ja) * 2021-07-21 2023-01-26 ファナック株式会社 移動経路決定装置及びコンピュータプログラム
KR20230170569A (ko) 2022-06-10 2023-12-19 가부시키가이샤 고베 세이코쇼 로봇의 이동 경로 생성 방법, 이동 경로 생성 장치, 로봇 시스템, 및 프로그램

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008146930A1 (ja) * 2007-05-28 2008-12-04 Toyota Jidosha Kabushiki Kaisha ロボットの設置位置決定装置及びロボットの設置位置決定方法
JP2008290223A (ja) * 2007-05-28 2008-12-04 Toyota Motor Corp ロボットの設置位置決定装置及びロボットの設置位置決定方法
JP4730337B2 (ja) * 2007-05-28 2011-07-20 トヨタ自動車株式会社 ロボットの設置位置決定装置及びロボットの設置位置決定方法
JP2009226561A (ja) * 2008-03-25 2009-10-08 Kobe Steel Ltd ロボットの動作余裕量演算表示方法及びその装置
JP2010142910A (ja) * 2008-12-19 2010-07-01 Yaskawa Electric Corp ロボットシステム
JP2011011263A (ja) * 2009-06-30 2011-01-20 Fanuc Ltd 付加軸付きロボットのオフラインプログラム作成装置
JP2011258178A (ja) * 2010-05-10 2011-12-22 Fanuc Ltd 多軸加工機用数値制御装置
US8255078B2 (en) 2010-05-10 2012-08-28 Fanuc Corporation Numerical controller for multi-axis machine tool
JP2013193131A (ja) * 2012-03-15 2013-09-30 Jtekt Corp ロボットの制御方法及びロボット制御装置、並びにロボット制御システム
WO2023002627A1 (ja) * 2021-07-21 2023-01-26 ファナック株式会社 移動経路決定装置及びコンピュータプログラム
KR20230170569A (ko) 2022-06-10 2023-12-19 가부시키가이샤 고베 세이코쇼 로봇의 이동 경로 생성 방법, 이동 경로 생성 장치, 로봇 시스템, 및 프로그램

Similar Documents

Publication Publication Date Title
US9207668B2 (en) Method of and apparatus for automated path learning
JP6311421B2 (ja) ティーチングシステム、ロボットシステムおよびティーチング方法
JP5268495B2 (ja) オフライン教示データの作成方法及びロボットシステム
JP5980867B2 (ja) ロボットをオフラインで教示するロボット教示装置
JP2006048244A (ja) 加工プログラム作成装置
US10406688B2 (en) Offline programming apparatus and method having workpiece position detection program generation function using contact sensor
JP2013257809A (ja) 工作機械の工具ベクトルを表示する工具軌跡表示装置
JP2015066668A (ja) ロボットの教示点調整方法、ロボットの設置位置算出方法、ロボットシステム、プログラム及び記録媒体
JPH09201784A (ja) ロボットの教示装置
JP3639873B2 (ja) ロボット制御方法およびロボット制御システム
JP2009166164A (ja) 工業用ロボット
JP2009119589A (ja) ロボットシミュレータ
JP2020082285A (ja) 複数のロボットの干渉確認方法、ロボットシステム
JPH09212229A (ja) ロボットの教示装置
JPH09212225A (ja) ロボットの教示装置
US11534914B2 (en) Method and system for teaching robot
JPS60195615A (ja) 多関節ロボツトの姿勢教示方法
JP4354608B2 (ja) 溶接用ロボットの教示方法及び装置
JPH09251308A (ja) 産業用ロボットのツール干渉チェック方法
JPH08286722A (ja) Cadデータ利用オフラインティーチング方法及びそのシステム
JP3902310B2 (ja) 産業用ロボットの姿勢生成方法
JP4730337B2 (ja) ロボットの設置位置決定装置及びロボットの設置位置決定方法
WO2023135762A1 (ja) 制御装置、教示装置、及び機械システム
JP3621867B2 (ja) 溶接システム及び溶接方法
US20230398687A1 (en) Method for generating movement route of robot, movement route generation apparatus, robot system, and program