(57)【特許請求の範囲】
【請求項１】
アーム先端の位置姿勢を指定することにより各軸値が求まるように構成された多関節ロボットを付加軸に搭載してなる付加軸付きロボット、作業対象物及び周辺機器の３次元モデルを画面上に配置して同時に表示し、前記付加軸付きロボットの作業プログラムを生成するプログラム生成装置において、
前記付加軸付きロボットの作業目標に対応する前記アーム先端の位置姿勢を指定する位置姿勢指定手段と、
前記付加軸付きロボットと前記周辺機器との間の最短距離が予め定めた干渉余裕より小さい場合は前記アーム先端の位置姿勢は保持したまま前記付加軸を移動させ、前記付加軸付きロボットと前記周辺機器との間の最短距離が前記干渉余裕より大きくなる複数の付加軸位置を算出する付加軸位置算出手段と、
付加軸位置、及び前記付加軸付きロボットの作業目標に対応する前記アーム先端の位置姿勢から前記付加軸付きロボットの教示点を作成してプログラムを生成するプログラム生成手段と、
生成したプログラムを用いてシミュレーションを実行するシミュレーション実行手段と、
前記シミュレーションにより付加軸付きロボットが通過する通過領域を求める通過領域算出手段と、
前記付加軸位置算出手段により求めた複数の付加軸位置について、前記プログラム生成手段、シミュレーション実行手段及び通過領域算出手段により求めた複数の通過領域の内、予め指定された前記周辺機器上の基準位置から通過領域内の最も遠い部位までの距離が最も短い通過領域に対応するプログラムを選択するプログラム選択手段と、
を備えたことを特徴とする、付加軸構成ロボットのプログラム生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、付加軸と組み合わせて使用される付加軸付きロボットの作業プログラムをオフラインで作成するプログラム作成装置に関する。
【背景技術】
【０００２】
ロボットシステムに７軸構成のロボットを用いた場合、干渉回避や作業スペースの削減が容易となるという利点があり、また双腕構成ロボットを用いた場合、ロボットの動作範囲としてより広い範囲が確保できるという利点がある。
【０００３】
例えば特許文献１には、走行台車を冗長軸として含むロボット系において、該冗長軸が取り得る位置を予め複数の離散的な位置に設定し、オフラインティーチング時に得られるデータから冗長軸の原点位置とロボットのアーム先端部との間の距離を複数の動作状態について演算し、各演算結果に基づいて各動作状態の冗長軸の位置を離散的位置のいずれかに決定し、その決定結果を冗長軸のティーチングデータとする技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−２４４４８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
工作機械にワークをロボットで投入する場合、６軸多関節ロボットを使用することが多い。しかし工作機械の比較的小さい開口部や小窓からワークを入れる作業にロボットを用いる場合、ロボットの肘が出っ張ってしまうため、工作機械ロボットシステムが大型化する。これを解決するためには、６軸ロボットにさらに１軸を付加した７軸構成のロボットを使用することが考えられるが、一般的な７軸構成のロボットは高価である。
【０００６】
そこで、従来からある付加軸と６軸多関節ロボットを組み合わせて、該付加軸の上に該ロボットを載せる構成とすることにより、高価な７軸構成のロボットを使用せずに、実質７軸のロボットを構成することができる。しかし、７軸構成のロボットの教示は困難であるという問題がある。ロボットの教示はロボットを現場で教示操作盤を使用し、付加軸を含む７軸を１軸ずつジョグ操作等で動作させながら、ロボットの先端を目標位置に移動させ、教示操作盤の教示ボタンを使って１点ずつ教示する。
【０００７】
ロボットの動作プログラムをオフラインで作成する場合でも、従来は基本的に６軸ロボットの教示の簡単化は行われているが、７軸ロボットの教示はまだ、画面上でジョグ操作して、教示点を１点ずつ教示している場合が多く、これには時間がかかる。
【０００８】
そこで本発明は、付加軸付きロボットの指定作業動作に基づいて、周辺機器との干渉回避等を考慮した動作プログラムをオフラインで生成するプログラム生成装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本願第１の発明は、アーム先端の位置姿勢を指定することにより各軸値が求まるように構成された多関節ロボットを付加軸に搭載してなる付加軸付きロボット、作業対象物及び周辺機器の３次元モデルを画面上に配置して同時に表示し、前記付加軸付きロボットの作業プログラムを生成するプログラム生成装置において、前記付加軸付きロボットの作業目標に対応する前記アーム先端の位置姿勢を指定する位置姿勢指定手段と、前記付加軸付きロボットと前記周辺機器との間の最短距離が予め定めた干渉余裕より小さい場合は前記アーム先端の位置姿勢は保持したまま前記付加軸を移動させ、前記付加軸付きロボットと前記周辺機器との間の最短距離が前記干渉余裕より大きくなる複数の付加軸位置を算出する付加軸位置算出手段と、付加軸位置、及び前記付加軸付きロボットの作業目標に対応する前記アーム先端の位置姿勢から前記付加軸付きロボットの教示点を作成してプログラムを生成するプログラム生成手段と、生成したプログラムを用いてシミュレーションを実行するシミュレーション実行手段と、前記シミュレーションにより付加軸付きロボットが通過する通過領域を求める通過領域算出手段と、前記付加軸位置算出手段により求めた複数の付加軸位置について、前記プログラム生成手段、シミュレーション実行手段及び通過領域算出手段により求めた複数の通過領域の内、予め指定された前記周辺機器上の基準位置から通過領域内の最も遠い部位までの距離が最も短い通過領域に対応するプログラムを選択するプログラム選択手段と、を備えたことを特徴とする、付加軸構成ロボットのプログラム生成装置を提供する。
【００１０】
第２の発明は、アーム先端の位置姿勢を指定することにより各軸値が求まるように構成された多関節ロボットを付加軸に搭載してなる付加軸付きロボット、作業対象物及び周辺機器の３次元モデルを画面上に配置して同時に表示し、前記付加軸付きロボットの作業プログラムを生成するプログラム生成装置において、前記付加軸付きロボットの作業目標に対応する前記アーム先端の位置姿勢を指定する位置姿勢指定手段と、前記付加軸付きロボットと前記周辺機器との間の最短距離が予め定めた干渉余裕より小さい場合は前記アーム先端の位置姿勢は保持したまま前記付加軸を移動させ、前記付加軸付きロボットと前記周辺機器との間の最短距離が前記干渉余裕より大きくなる複数の付加軸位置を算出する付加軸位置算出手段と、前記付加軸位置算出手段により求めた複数の付加軸位置のそれぞれに対し、所定の評価関数により評価値を求め、該評価値が最も高い付加軸の位置を選択する付加軸位置選択手段と、前記付加軸付きロボットの作業目標に対応する前記アーム先端の位置姿勢と前記選択した付加軸位置から前記付加軸付きロボットの教示点を作成する教示点作成手段と、を備えたことを特徴とする、付加軸付きロボットのプログラム生成装置を提供する。
【００１１】
第３の発明は、第２の発明において、前記付加軸位置選択手段は、前記付加軸位置算出手段で求めた複数の付加軸位置のそれぞれに対して、予め指定された前記周辺機器上の基準位置と前記ロボットアームの最も離れている部分との距離を求め、該求めた距離が最も短い付加軸の位置を選択する、付加軸付きロボットのプログラム生成装置を提供する。
【００１２】
第４の発明は、アーム先端の位置姿勢を指定することにより各軸値が求まるように構成された複数の多関節ロボットを１台の旋回付加軸に搭載してなる旋回付加軸付きロボット、作業対象物及び周辺機器の３次元モデルを画面上に配置して同時に表示し、前記旋回付加軸付きロボットの作業プログラムを生成するプログラム生成装置において、前記旋回付加軸付きロボットの作業目標に対応する前記複数のアーム先端の位置姿勢の組を指定する位置姿勢手段と、前記多関節ロボット同士の最短距離が予め定めた干渉余裕より小さい場合は前記複数のアーム先端の位置姿勢は全て保持したまま前記旋回付加軸を移動させ、前記複数の多関節ロボット同士の最短距離が前記干渉余裕より大きくなる複数の旋回付加軸位置を算出する旋回付加軸位置算出手段と、前記旋回付加軸位置算出手段により求めた複数の旋回付加軸位置のそれぞれに対し、所定の評価関数により評価値を求め、該評価値が最も高い旋回付加軸の位置を選択する旋回付加軸位置選択手段と、前記旋回付加軸付きロボットの作業目標に対応する前記複数のアーム先端の位置姿勢の組と前記選択した旋回付加軸位置から前記旋回付加軸付きロボットの教示点を作成する教示点作成手段と、を備えたことを特徴とする、旋回付加軸付きロボットのプログラム生成装置を提供する。
【発明の効果】
【００１３】
本発明によれば、付加軸構成したロボットを用いて周辺機器に対する作業を行う動作に関し、動作目標であるアーム先端の位置姿勢を指定して、周辺機器に干渉せずかつ周辺機器から大きく離れないように付加軸の値を自動的に決定し、ロボットの動作プログラムを自動生成することができる。
【００１４】
また複数の付加軸位置のそれぞれに対して、予め指定された周辺機器上の基準位置とロボットアームの最も離れている部分との距離を求め、該求めた距離が最も短い付加軸の位置を選択することにより、ロボットが周辺機器から大きく離れないコンパクトなシステムを構成することができる。
【００１５】
付加軸の値を変化させてシミュレーションを実行することにより、ロボットの通過領域が工作機械からできるだけ離れないような付加軸の値を自動的に決定し、ロボットの動作プログラムを自動生成することができる。
【００１６】
付加軸付きロボットを複数台備えた旋回軸付きロボットを用いてワークをハンドリングする動作に関し、動作目標であるアーム先端の位置姿勢を指定して、ロボット同士が干渉しないように、旋回軸の値を自動的に決定し、ロボットの動作プログラムを自動生成することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施形態に係るプログラム作成装置の処理の流れを示すフローチャートである。
【図２】プログラム作成装置の画面上に付加軸付きロボット、周辺機器及びワークを表示させた例を示す図である。
【図３】工作機械内にロボットアームがアクセスしている状態を示す画面表示例である。
【図４】第１の実施形態において、付加軸角度と、ロボット−周辺機器間の距離から干渉余裕を引いた差との関係を示す表である。
【図５】第１の実施形態において、付加軸角度を種々に変化させた場合の、ロボットアーム先端が目標位置姿勢をとっている状態を示す画面表示例である。
【図６】本発明の第２の実施形態に係るプログラム作成装置の処理の流れを示すフローチャートである。
【図７】第２の実施形態において、付加軸角度を種々に変化させた場合の、ロボットアーム先端が目標位置姿勢をとっている状態を示す画面表示例である。
【図８】第２の実施形態において、付加軸角度と、ロボット−周辺機器間の距離から干渉余裕を引いた差と、周辺機器−ロボット最遠点の距離との関係を示す表である。
【図９】本発明の第３の実施形態に係るプログラム作成装置の処理の流れを示すフローチャートである。
【図１０】第３の実施形態において、動作プログラムに基づくシミュレーション例を示す図である。
【図１１】第３の実施形態において、付加軸角度と、周辺機器−ロボットの通過領域の最遠点の距離との関係を示す表である。
【図１２】第３の実施形態において、付加軸角度を種々に変化させた場合のロボットの通過領域を示す画面表示例である。
【図１３】本発明の第４の実施形態に係るプログラム作成装置の処理の流れを示すフローチャートである。
【図１４】プログラム作成装置の画面上に旋回付加軸付きロボット、周辺機器及びワークを表示させた例を示す図である。
【図１５】図１４の構成を上からみた画面表示例である。
【図１６】図１５の状態から旋回軸が旋回した状態を示す画面表示例である。
【図１７】第４の実施形態において、旋回付加軸角度と、ロボットアーム同士間の距離から干渉余裕を引いた差との関係を示す表である。
【図１８】第４の実施形態において、旋回付加軸角度を種々に変化させた場合の、２つのロボットアーム先端が目標位置姿勢をとっている状態を示す画面表示例である。
【発明を実施するための形態】
【００１８】
図１は、本発明に係るプログラム装置の第１の実施形態において、付加軸付きロボットの動作プログラムをオフラインで作成する処理の流れを示すフローチャートであり、図２〜図５は図１のいくつかのステップをより詳細に説明するための図である。先ず図２に例示するように、ステップＳ１０１において、アーム先端の位置姿勢を指定することにより各軸値が求まるように構成されたロボット１０、工作機械等の周辺機器１２及び作業対象物であるワーク２０の３次元モデルをプログラム装置の画面上に配置して同時に表示する。ロボット１０は、設置面１４に略平行な軸線回りにロボット架台１６を旋回可能に支持する付加軸１８を有しており、例えばロボット１０が６軸多関節ロボットである場合、付加軸１８付きのロボットは実質７軸構成となる。本実施形態では、図３に示すように、工作機械１２内に配置されたワーク２０を、工作機械の開口部２２からロボット１０のロボットアーム２４等を進入させて取り出す作業、或いは逆にロボット１０を用いて工作機械１２内にワーク２０を配置する作業を実行するプログラムを自動生成するものとする。
【００１９】
次にステップＳ１０２において、ロボット１０の作業目標に対応するアーム２４の先端の位置及び姿勢（以降、目標位置姿勢と称する）を指定する（図３参照）。本実施形態では、具体的には、工作機械１２内に配置されたワーク２０をロボットアーム２４が取り出す際のアーム２４の先端（例えばツール先端点（Tool Center Point；ＴＣＰ））の位置姿勢、或いは逆に工作機械１２内にワーク２０を配置する際のアーム２４の先端の位置姿勢が指定される。なお本願明細書における「位置姿勢」なる用語は、アーム先端等のロボットの所定部位の位置及び姿勢の双方を表すものとする。
【００２０】
次にステップＳ１０３において、ロボット１０の干渉余裕を表す距離を指定する。なおここでの干渉余裕とは、ロボット１０と周辺機器１２との干渉を確実に回避するために確保すべきロボット１０と周辺機器１２との間の最短距離を意味し、ロボット及び周辺機器の大きさや形状に応じて予め設定される値であり、その具体例は３０ｍｍ〜５０ｍｍである。
【００２１】
次にステップＳ１０４において、現在の付加軸１８の角度θcを指定する。角度θcは、ロボット１０の初期の状態や、本実施形態が対象としている作業の前の作業終了時のロボット１０の状態等から得られる。
【００２２】
次にステップＳ１０５において、付加軸の角度θの初期値と、角度θをインクリメントするための刻み角度αとを指定する。ここでは、θ＝−１８０°、α＝１°とする。
【００２３】
次にステップＳ１０６において、ロボット１０のアーム２４の先端（例えばＴＣＰ）が、工作機械１２内のワークの取り出し又は配置を行うために指定された目標位置姿勢になるよう、ロボットの各軸（本実施形態では６軸）の値を算出する。この際、算出したロボット１０の姿勢を画面に表示してもよい。
【００２４】
次にステップＳ１０７において、ロボット１０と周辺機器１２との間の最短距離、すなわち周辺機器１２に最も近いロボット１０の部分と、ロボット１０に最も近い周辺機器１２の部分との間の距離（図５（ａ）〜（ｃ）の矢印参照）を算出する。
【００２５】
次にステップＳ１０８において、算出された最短距離から上記干渉余裕を引いた差を求める。得られた結果はメモリ等に記憶又は記録してもよい。
【００２６】
次にステップＳ１０９において、現在の付加軸の角度θに上述の刻み角度αを加算する。なお刻み角度は１°に限られず、例えば２°、５°又は１０°のように適宜設定可能である。なおロボット１０と周辺機器１２との間の最短距離が干渉余裕より小さい場合は、ロボットアーム先端の位置姿勢は保持したまま付加軸を回転させ、ロボット１０と周辺機器１２との間の最短距離が干渉余裕以上となる付加軸の回転位置が、最終的に作成されるプログラムに採用される付加軸位置の候補となる。
【００２７】
次にステップＳ１１０において、付加軸角度θが１８０°以下であるかを判定し、１８０°以下であればステップＳ１０６に戻ってステップＳ１０６〜Ｓ１０９の処理を繰り返す。これにより、例えば図４に示すように、付加軸角度、及び最短距離と干渉余裕との差を関連付けた結果が得られる。図４の例では、図５（ａ）〜（ｃ）に示すように、ロボット１０と工作機械１２との最短距離が、付加軸角度１０°、３０°及び６０°の場合にそれぞれ１００ｍｍ、１５０ｍｍ及び２００ｍｍであり、上記干渉余裕が５０ｍｍであった場合（すなわち差が５０ｍｍ、１００ｍｍ及び１５０ｍｍ）を示している。
【００２８】
ステップＳ１１０において付加軸の角度θが１８０°を超え（−１８０°〜１８０°での計算が終了し）たら、ステップＳ１１１に進んで評価値の高い付加軸角度を選択する。ここで評価値とは、所定の評価関数を用いて各付加軸角度におけるロボットの位置姿勢を評価する値であり、本実施形態では図４の表における、ロボットと周辺機器との最短距離から干渉余裕を引いた差を用いる。評価関数としては、該差のより小さい条件により高い評価値を与えるものが挙げられる。さらに、評価値が同程度のものが複数ある場合は、現在の付加軸角度θcに近い付加軸角度条件のものに高い評価値を与えることが好ましい。すなわち、ロボットと周辺機器との間の最短距離が同程度であれば、現在の状態から付加軸の角度変化が小さいものがより高い評価値を得ることになる。なお上記差が負（ロボットと周辺機器との最短距離が干渉余裕未満）である場合は、不適当な条件として評価対象から除外される。
【００２９】
最後にステップＳ１１２において、上記目標位置姿勢と、付加軸を含むロボットの各軸の角度とから教示点を生成し、ロボットを動作させるための動作プログラムを自動作成する。
【００３０】
図６は、本発明に係るプログラム装置の第２の実施形態において、付加軸付きロボットの動作プログラムをオフラインで作成する処理の流れを示すフローチャートであり、図７〜図８は図６のいくつかのステップをより詳細に説明するための図である。先ずステップＳ２０１において、アーム先端の位置姿勢を指定することにより各軸値が求まるように構成されたロボット１０、工作機械等の周辺機器１２及び作業対象物であるワーク２０の３次元モデルをプログラム装置の画面上に配置して同時に表示する。ロボット１０及び工作機械１２の構成は第１の実施形態と同様でよいので説明は省略する。
【００３１】
次にステップＳ２０２において、ロボット１０の作業目標に対応するアーム２４の先端の位置及び姿勢（以降、目標位置姿勢と称する）を指定する。本実施形態では、具体的には、工作機械１２内に配置されたワーク２０をロボットアーム２４が取り出す際のアーム２４の先端（例えばツール先端点（Tool Center Point；ＴＣＰ））の位置姿勢、或いは逆に工作機械１２内にワーク２０を配置する際のアーム２４の先端の位置姿勢が指定される。
【００３２】
次にステップＳ２０３において、ロボット１０の干渉余裕を表す距離を指定する。なおここでの干渉余裕とは、ロボット１０と周辺機器１２との干渉を確実に回避するために確保すべきロボット１０と周辺機器１２との間の最短距離を意味し、ロボット及び周辺機器の大きさや形状に応じて予め設定される値であり、その具体例は３０ｍｍ〜５０ｍｍである。
【００３３】
次にステップＳ２０４において、現在の付加軸１８の角度θcを指定する。角度θcは、ロボット１０の初期の状態や、本実施形態が対象としている作業の前の作業終了時のロボット１０の状態等から得られる。
【００３４】
次にステップＳ２０５において、付加軸の角度θの初期値と、角度θをインクリメントするための刻み角度αとを指定する。ここでは、θ＝−１８０°、α＝１°とする。
【００３５】
次にステップＳ２０６において、ロボット１０のアーム２４の先端（例えばＴＣＰ）が、工作機械１２内のワークの取り出し又は配置を行うために指定された目標位置姿勢（図３参照）になるよう、ロボットの各軸（本実施形態では６軸）の値を算出する。この際、算出したロボット１０の姿勢を画面に表示してもよい。
【００３６】
次にステップＳ２０７において、ロボット１０と周辺機器１２との間の最短距離、すなわち周辺機器１２に最も近いロボット１０の部分と、ロボット１０に最も近い周辺機器１２の部分との間の距離を算出する。
【００３７】
次にステップＳ２０８において、算出された最短距離から上記干渉余裕を引いた差を求める。さらに、例えば図７（ａ）に示すように、ロボット１０において周辺機器１２と水平方向に最も離れている点すなわち最遠点２６と、周辺機器１２の予め定めた基準位置２８（図示例ではロボット１０に最も近い周辺機器１２の部位）との水平距離を求める。得られた結果はメモリ等に記憶又は記録してもよい。
【００３８】
次にステップＳ２０９において、現在の付加軸の角度θに上述の刻み角度αを加算する。なお刻み角度は１°に限られず、例えば２°、５°又は１０°のように適宜設定可能である。なおロボット１０と周辺機器１２との間の最短距離が干渉余裕より小さい場合は、ロボットアーム先端の位置姿勢は保持したまま付加軸を回転させ、ロボット１０と周辺機器１２との間の最短距離が干渉余裕以上となる付加軸の回転位置が、最終的に作成されるプログラムに採用される付加軸位置の候補となる。
【００３９】
次にステップＳ２１０において、付加軸角度θが１８０°以下であるかを判定し、１８０°以下であればステップＳ２０６に戻ってステップＳ２０６〜Ｓ２０９の処理を繰り返す。これにより、例えば図８に示すように、付加軸角度、最短距離と干渉余裕との差、及びロボットの最遠点と周辺機器との距離を関連付けた結果が得られる。図８の例では、図７（ａ）〜（ｃ）に示すように、ロボット１０と工作機械１２との最短距離が、付加軸角度１０°、３０°及び６０°の場合にそれぞれ８０ｍｍ、１００ｍｍ及び１１０ｍｍであり、ロボット１０の最遠点と工作機械１２の基準位置との水平距離が、付加軸角度１０°、３０°及び６０°の場合にそれぞれ５００ｍｍ、７００ｍｍ及び８００ｍｍであり、さらに上記干渉余裕が５０ｍｍであった場合（すなわち差が５０ｍｍ、１００ｍｍ及び１５０ｍｍ）を示している。
【００４０】
ステップＳ２１０において付加軸の角度θが１８０°を超え（−１８０°〜１８０°での計算が終了し）たら、ステップＳ２１１に進んで評価値の高い付加軸角度を選択する。ここで評価値とは、所定の評価関数を用いて各付加軸角度におけるロボットの位置姿勢を評価する値であり、本実施形態では図８の表における、ロボットと周辺機器との最短距離から干渉余裕を引いた差を用いる。評価関数としては、該差のより小さい条件により高い評価値を与えるものが挙げられる。さらに、評価値が同程度のものが複数ある場合は、現在の付加軸角度θcに近い付加軸角度条件のものに高い評価値を与えることが好ましい。すなわち、ロボットと周辺機器との間の最短距離が同程度であれば、現在の状態から付加軸の角度変化が小さいものがより高い評価値を得ることになる。なお上記差が負（ロボットと周辺機器との最短距離が干渉余裕未満）である場合は、不適当な条件として評価対象から除外される。
【００４１】
最後にステップＳ２１２において、上記目標位置姿勢と、付加軸を含むロボットの各軸の角度とから教示点を生成し、ロボットを動作させるための動作プログラムを自動作成する。
【００４２】
図９は、本発明に係るプログラム装置の第３の実施形態において、付加軸付きロボットの動作プログラムをオフラインで作成する処理の流れを示すフローチャートであり、図１０〜図１２は図９のいくつかのステップをより詳細に説明するための図である。先ずステップＳ３０１において、アーム先端の位置姿勢を指定することにより各軸値が求まるように構成されたロボット１０、工作機械等の周辺機器１２及び作業対象物であるワーク２０の３次元モデルをプログラム装置の画面上に配置して同時に表示する。ロボット１０及び工作機械１２の構成は第１の実施形態と同様でよいので説明は省略する。
【００４３】
次にステップＳ３０２において、ロボット１０の作業目標に対応するアーム２４の先端の位置及び姿勢（以降、目標位置姿勢と称する）を指定する（図３参照）。本実施形態では、具体的には、工作機械１２内に配置されたワーク２０をロボットアーム２４が取り出す際のアーム２４の先端（例えばツール先端点（Tool Center Point；ＴＣＰ））の位置姿勢、或いは逆に工作機械１２内にワーク２０を配置する際のアーム２４の先端の位置姿勢が指定される。
【００４４】
次にステップＳ３０３において、ロボット１０の干渉余裕を表す距離を指定する。なおここでの干渉余裕とは、ロボット１０と周辺機器１２との干渉を確実に回避するために確保すべきロボット１０と周辺機器１２との間の最短距離を意味し、ロボット及び周辺機器の大きさや形状に応じて予め設定される値であり、その具体例は３０ｍｍ〜５０ｍｍである。
【００４５】
次にステップＳ３０４において、現在の付加軸１８の角度θcを指定する。角度θcは、ロボット１０の初期の状態や、本実施形態が対象としている作業の前の作業終了時のロボット１０の状態等から得られる。
【００４６】
次にステップＳ３０５において、付加軸の角度θの初期値と、角度θをインクリメントするための刻み角度αとを指定する。ここでは、θ＝−１８０°、α＝１°とする。
【００４７】
次にステップＳ３０６において、ロボット１０のアーム２４の先端（例えばＴＣＰ）が、工作機械１２内のワークの取り出し又は配置を行うために指定された目標位置姿勢になるよう、ロボットの各軸（本実施形態では６軸）の値を算出する。この際、算出したロボット１０の姿勢を画面に表示してもよい。
【００４８】
次にステップＳ３０７において、上記目標位置姿勢と、付加軸を含むロボットの各軸の角度とから教示点を生成し、ロボットを動作させるための動作プログラムを自動作成する。
【００４９】
次にステップＳ３０８において、図１０に示すように、作成された動作プログラムに基づいてシミュレーションを実行する。これにより、ロボット１０の３次元の掃引空間すなわち通過領域３２が求められる。
【００５０】
次にステップＳ３０９において、工作機械１２の所定部位（図示例ではロボット１０側の端部）と、掃引空間３２のうち工作機械１２から水平方向に最も離れている点すなわち最遠点３４との水平方向距離を求め、適当なメモリに記憶又は記録する。
【００５１】
次にステップＳ３１０において、現在の付加軸の角度θに上述の刻み角度αを加算する。なお刻み角度は１°に限られず、例えば２°、５°又は１０°のように適宜設定可能である。なおロボット１０と周辺機器１２との間の最短距離が干渉余裕より小さい場合は、ロボットアーム先端の位置姿勢は保持したまま付加軸を回転させ、ロボット１０と周辺機器１２との間の最短距離が干渉余裕以上となる付加軸の回転位置が、最終的に作成されるプログラムに採用される付加軸位置の候補となる。
【００５２】
次にステップＳ３１１において、付加軸角度θが１８０°以下であるかを判定し、１８０°以下であればステップＳ１０６に戻ってステップＳ３０６〜Ｓ３１０の処理を繰り返す。これにより、例えば図１１に示すように、付加軸角度、及び掃引空間の最遠点と周辺機器との距離を関連付けた結果が得られる。図１１の例では、図１２（ａ）〜（ｃ）に示すように、ロボット１０の掃引空間３２の最遠点３４と工作機械１２との水平方向距離（図１２の矢印３６参照）が、付加軸角度１０°、３０°及び６０°の場合にそれぞれ１０００ｍｍ、１２００ｍｍ及び１５００ｍｍであった場合を示している。
【００５３】
ステップＳ３１１において付加軸の角度θが１８０°を超え（−１８０°〜１８０°での計算が終了し）たら、ステップＳ３１２に進んで評価値の高い動作プログラムを選択する。ここで評価値とは、所定の評価関数を用いて各付加軸角度におけるロボットの位置姿勢を評価する値であり、本実施形態では図１１の表における、ロボットの掃引空間の最遠点と周辺機器との水平方向距離を用いる。評価関数としては、該水平方向距離のより小さい条件により高い評価値を与えるものが挙げられる。さらに、評価値が同程度のものが複数ある場合は、現在の付加軸角度θcに近い付加軸角度条件のものに高い評価値を与えることが好ましい。すなわち、ロボットの掃引空間と周辺機器との水平方向距離が同程度であれば、現在の状態から付加軸の角度変化が小さいものがより高い評価値を得ることになる。ステップＳ３１２で選択された動作プログラムが、ロボットを動作させるための動作プログラムとなる。
【００５４】
図１３は、本発明に係るプログラム装置の第４の実施形態において、旋回付加軸付きロボットの動作プログラムをオフラインで作成する処理の流れを示すフローチャートであり、図１４〜図１８は図１３のいくつかのステップをより詳細に説明するための図である。先ず図１４に例示するように、ステップＳ４０１において、アーム先端の位置姿勢を指定することにより各軸値が求まるように構成された旋回付加軸付きロボット４０、作業台等の周辺機器４２、４４及び作業対象物であるワーク２０をプログラム装置の画面上に配置して同時に表示する。ロボット４０は、第１〜第３の実施形態で使用した付加軸付きロボット１０を複数台（図示例では２台）有し、さらに該複数台のロボット１０を、設置面１４に略垂直な軸線回りに旋回可能な旋回付加軸４６に搭載してなる構成を有する。例えばロボット１０が６軸多関節ロボットである場合、付加軸付きロボットを旋回付加軸４６に搭載した形態は実質８軸構成となる。本実施形態では、図１４に示すように、第１の作業台４２上に載置されたワーク２０を２つのロボットのロボットアーム４８で把持し、第２の作業台４４上に載置されたボックス５０内に収容する作業を実行するプログラムを自動生成するものとする。
【００５５】
次にステップＳ４０２において、双腕ロボット４０の作業目標に対応するアーム４８の先端の位置及び姿勢（以降、目標位置姿勢と称する）を指定する。本実施形態では、図１４の構成を概略的に上からみた図１５に示すように、第１の作業台４２上に載置されたワーク２０を２つのロボットアーム４８で把持する際の各アームの先端（例えばツール先端点（Tool Center Point；ＴＣＰ））の位置姿勢が指定される。
【００５６】
次にステップＳ４０３において、ロボット４０の干渉余裕を表す距離を指定する。なおここでの干渉余裕とは、２つのロボットアーム間の干渉を確実に回避するために確保すべき該ロボットアーム間の最短距離を意味し、ロボットの寸法や仕様に応じて予め設定される値であり、その具体例は３０ｍｍ〜５０ｍｍである。
【００５７】
次にステップＳ４０４において、現在の旋回付加軸４６の角度θc′を指定する。角度θc′は、ロボット１０の初期の状態や、本実施形態が対象としている作業の前の作業終了時のロボット１０の状態等から得られる。
【００５８】
次にステップＳ４０５において、旋回付加軸の角度θ′の初期値と、角度θ′をインクリメントするための刻み角度αとを指定する。ここでは、θ′＝−１８０°、α＝１°とする。
【００５９】
次にステップＳ４０６において、図１６に示すように、ロボット４０の２つのアームの先端（例えばＴＣＰ）が、把持したワーク２０を第２の作業台４４上のボックス５０内に収容できるようにするために指定された目標位置姿勢になるよう、ロボットの各軸（本実施形態では６軸に付加軸を加えた７軸）の値を算出する。この際、算出したロボット４０の姿勢を画面に表示してもよい。
【００６０】
次にステップＳ４０７において、２つのロボットアーム４８間の最短距離、すなわち互いに最も近接し得る２つのロボットアームの部位間の距離を算出する。
【００６１】
次にステップＳ４０８において、算出された最短距離から上記干渉余裕を引いた差を求める。得られた結果はメモリ等に記憶又は記録してもよい。
【００６２】
次にステップＳ４０９において、現在の旋回付加軸の角度θ′に上述の刻み角度αを加算する。なお刻み角度は１°に限られず、例えば２°、５°又は１０°のように適宜設定可能である。なおロボットアーム４８同士間の最短距離が干渉余裕より小さい場合は、全てのロボットアームの先端の位置姿勢は保持したまま旋回付加軸を回転させ、ロボットアーム間の最短距離が干渉余裕以上となる旋回付加軸の回転位置が、最終的に作成されるプログラムに採用される旋回付加軸位置の候補となる。
【００６３】
次にステップＳ４１０において、旋回付加軸角度θ′が１８０°以下であるかを判定し、１８０°以下であればステップＳ４０６に戻ってステップＳ４０６〜Ｓ４０９の処理を繰り返す。これにより、例えば図１７に示すように、旋回付加軸角度、及び上記最短距離と干渉余裕との差を関連付けた結果が得られる。図１７の例では、図１８（ａ）及び（ｂ）に示すように、２つのロボットアーム間の最短距離が、付加軸角度０°及び３０°の場合にそれぞれ１００ｍｍ及び１５０ｍｍであり、上記干渉余裕が５０ｍｍであった場合（すなわち差が５０ｍｍ及び１００ｍｍ）を示している。
【００６４】
ステップＳ４１０において旋回付加軸の角度θ′が１８０°を超え（−１８０°〜１８０°での計算が終了し）たら、ステップＳ４１１に進んで評価値の高い旋回付加軸角度を選択する。ここで評価値とは、所定の評価関数を用いて各旋回付加軸角度におけるロボットの位置姿勢を評価する値であり、本実施形態では図１７の表における、ロボットと周辺機器との最短距離から干渉余裕を引いた差を用いる。評価関数としては、該差のより小さい条件により高い評価値を与えるものが挙げられる。さらに、評価値が同程度のものが複数ある場合は、現在の旋回付加軸角度θc′に近い旋回付加軸角度条件のものに高い評価値を与えることが好ましい。すなわち、ロボットと周辺機器との間の最短距離が同程度であれば、現在の状態から旋回付加軸の角度変化が小さいものがより高い評価値を得ることになる。なお上記差が負（ロボットと周辺機器との最短距離が干渉余裕未満）である場合は、不適当な条件として評価対象から除外される。
【００６５】
他の評価関数として、上記差がより大きい条件に、より高い評価値を与えることも可能である。このような評価関数が適しているのは、ロボットの設置領域に比較的余裕があり、ロボット間の干渉をより確実に防止したい場合（例えば図１８（ｂ）のように、各ロボットに肘を張って作業させたい場合）である。またこの場合にも、評価値が同程度のものが複数あれば、現在の旋回付加軸角度θc′に近い旋回付加軸角度条件のものに高い評価値を与えることが好ましい。なお上述の第１〜３の実施形態についても、同様の考え方に基づき、上記の差が大きいものや水平方向距離の大きいものに高い評価値を与えることもできる。
【００６６】
最後にステップＳ４１２において、上記目標位置姿勢と、旋回付加軸を含むロボットの各軸の角度とから教示点を生成し、ロボットを動作させるための動作プログラムを自動作成する。
【００６７】
なお上述の実施形態で説明したロボット、周辺機器及びワークはいずれも仮想のものであり、予め設定されたＣＡＤデータ等の寸法データに基づいてプログラム作成装置の画面上に表示される。
【００６８】
本発明によれば、工作機械に対するワークのロード又はアンロードを付加軸付きロボットを用いて行うシステム簡単に立ち上げることができる。また付加軸付きの双腕ロボットのハンドリングにおける課題であった、各アーム間の干渉を回避する動作が容易に教示でき、システムの立ち上げが簡単になる。
【符号の説明】
【００６９】
１０    付加軸付きロボット
１２    周辺機器
１８    付加軸
２０    ワーク
２４    ロボットアーム
３２    通過領域
３６    仮想ロボット
４０    旋回付加軸付きロボット
４２、４４    作業台
４６    旋回軸
４８    ロボットアーム
【図１】
0005513661.tif 000002
【図２】
0005513661.tif 000003
【図３】
0005513661.tif 000004
【図４】
0005513661.tif 000005
【図５】
0005513661.tif 000006
【図６】
0005513661.tif 000007
【図７】
0005513661.tif 000008
【図８】
0005513661.tif 000009
【図９】
0005513661.tif 000010
【図１０】
0005513661.tif 000011
【図１１】
0005513661.tif 000012
【図１２】
0005513661.tif 000013
【図１３】
0005513661.tif 000014
【図１４】
0005513661.tif 000015
【図１５】
0005513661.tif 000016
【図１６】
0005513661.tif 000017
【図１７】
0005513661.tif 000018
【図１８】
0005513661.tif 000019