JP2020082285A - 複数のロボットの干渉確認方法、ロボットシステム - Google Patents
複数のロボットの干渉確認方法、ロボットシステム Download PDFInfo
- Publication number
- JP2020082285A JP2020082285A JP2018221637A JP2018221637A JP2020082285A JP 2020082285 A JP2020082285 A JP 2020082285A JP 2018221637 A JP2018221637 A JP 2018221637A JP 2018221637 A JP2018221637 A JP 2018221637A JP 2020082285 A JP2020082285 A JP 2020082285A
- Authority
- JP
- Japan
- Prior art keywords
- robot
- interference
- robots
- trajectory
- control unit
- 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
Links
Images
Landscapes
- Numerical Control (AREA)
- Manipulator (AREA)
Abstract
【課題】近接した複数のロボットに作業を教示する際に、実際にロボットを動作させてロボット同士の干渉確認をする作業者の負荷を低減可能な干渉確認方法と、それを実行するロボットシステムが求められていた。【解決手段】ロボットの軌道を生成するシミュレータを有するロボット制御部が、複数のロボットについて、作業を行うための軌道を生成する工程と、生成した軌道に基づいて、各ロボットの通過領域を仮想空間に生成する工程と、仮想空間に生成した各ロボットの通過領域に、現実の各ロボットで生じ得るずれに応じた冗長部を付加する工程と、冗長部を付加した各ロボットの通過領域が、互いに接触あるいは重複するかを判定する判定工程と、判定工程で接触あるいは重複すると判定した場合に、複数のロボットの軌道のうち、接触あるいは重複が発生する位置を含む軌道部分を抽出して記憶する工程を実行する。【選択図】図4
Description
本発明は、オフラインシミュレータで作成したロボットの軌道を、必要に応じて実際にロボットを動作させて確認する方法に関する。特に、複数のロボットを近接して作業させる軌道を作成した場合に、ロボット同士やロボットと障害物の間で干渉が発生しないかを、作業開始前に予め確認する干渉確認方法に関するものである。
近年では、産業用ロボットを用いて、工場の生産ラインにおける組立て、搬送、塗布といった作業の自動化が盛んに行われている。ロボットの作業設計者は、ロボットの通過する経路や動作させるタイミングを作業に応じて考え、周囲に存在する物体と干渉しないようにシミュレータなどを用いて軌道を設計している。
しかし、シミュレータ上では物体と干渉しないようにロボットの軌道を設計したとしても、シミュレータ上の設計値と実際のロボットの設置位置、物体の位置、形状等の間には誤差がある場合があり、実際にはロボットと物体が干渉する可能性がある。そのため、オペレータが実機をオンラインで動作させて、ロボットと物体の干渉が発生しないことを確認していたが、作業の全ての軌道について実機で確認するのは負荷が大きく、能率的ではなかった。
しかし、シミュレータ上では物体と干渉しないようにロボットの軌道を設計したとしても、シミュレータ上の設計値と実際のロボットの設置位置、物体の位置、形状等の間には誤差がある場合があり、実際にはロボットと物体が干渉する可能性がある。そのため、オペレータが実機をオンラインで動作させて、ロボットと物体の干渉が発生しないことを確認していたが、作業の全ての軌道について実機で確認するのは負荷が大きく、能率的ではなかった。
特許文献1には、作業対象物に対して例えば溶接を行うロボットの作業経路を生成し、一連の作業経路の中でロボット及び工具が作業対象物と干渉が生じるかを作業対象物の3次元情報に基づきオフラインで判断する装置が開示されている。干渉が生じると判断した場合には、可能な限りオフライン教示によりオペレータがロボット及び工具の姿勢を変更することとし、オンライン教示を可及的に低減させている。
近年の生産ラインでは、生産能力の向上や省スペース化のために、複数台のロボットを近接して配置し、共通の作業領域内で複数台のロボットが作業を行うことが多い。このような場合に、ロボットの作業設計者は、ロボットが通過する経路や軌道、各ロボットを動作させるタイミングを考え、ロボット同士が干渉し合わないようにシミュレータなどで設計していた。
しかし、ロボットの設置誤差等のため、ロボット同士が干渉し合わないようにシミュレータ上で設計しても、実際にはシミュレーション結果との差が生じてロボット同士の干渉が起きる可能性がある。作業者が実機をオンラインで動作させてロボット同士の干渉が発生しないことを確認しようとすると、従来の一台のロボットと静止物体の干渉を確認するのと比べ、動体同士の軌道の場合には更に膨大な確認作業負荷がかかっていた。
しかし、ロボットの設置誤差等のため、ロボット同士が干渉し合わないようにシミュレータ上で設計しても、実際にはシミュレーション結果との差が生じてロボット同士の干渉が起きる可能性がある。作業者が実機をオンラインで動作させてロボット同士の干渉が発生しないことを確認しようとすると、従来の一台のロボットと静止物体の干渉を確認するのと比べ、動体同士の軌道の場合には更に膨大な確認作業負荷がかかっていた。
例えば、一般的にロボット同士のクリアランス(隙間)が狭くなる箇所は、教示点間を移動する軌道上に存在することが多いが、どこで最も近接するかを実機で確認するためには、教示点間の全経路の移動を実施する必要があった。ロボットが1台であれば1回経路を確認すれば良いが、ロボットが複数の場合は、確認が必要な対象のアーム同士が最も近接する状態を作り出して確認する必要がある。例えば、2台のロボットが最も近接する状態を作り出すためには、第一のロボットの軌道を確認し、第二のロボットの軌道と最も近接しそうな位置を作業者が目視で確認する。次に、その最も近接しそうな位置にて第一のロボットを作業者が停止させ、第二のロボットの軌道を実行して干渉がないことを確認する必要がある。ただし、第一のロボットを停止させた位置は、作業者が目視で判断した位置であり、真の最近接位置とは限らないため、確認を確実にするためにはクリアランス(隙間)が小さかった場合には、その近傍についても前記操作を繰り返し実行する必要がある。
そのため、干渉確認に時間がかかり作業者の負担が大きく、複数のロボット同士について確認を必要とする軌道の組み合わせのパターンが多い場合には、確認モレが発生する可能性もあった。
そこで、近接した複数のロボットに作業を教示する際に、実際にロボットを動作させてロボット同士の干渉確認をする作業者の負荷を低減可能な干渉確認方法と、それを実行するロボットシステムが求められていた。
そこで、近接した複数のロボットに作業を教示する際に、実際にロボットを動作させてロボット同士の干渉確認をする作業者の負荷を低減可能な干渉確認方法と、それを実行するロボットシステムが求められていた。
本発明は、ロボットの軌道を生成するシミュレータを有するロボット制御部が、複数のロボットについて、作業を行うための軌道を生成する工程と、生成した前記軌道に基づいて、各ロボットの通過領域を仮想空間に生成する工程と、仮想空間に生成した前記各ロボットの通過領域に、現実の各ロボットで生じ得るずれに応じた冗長部を付加する工程と、前記冗長部を付加した各ロボットの通過領域が、互いに接触あるいは重複するかを判定する判定工程と、前記判定工程で接触あるいは重複すると判定した場合に、前記複数のロボットの前記軌道のうち、前記接触あるいは重複が発生する位置を含む軌道部分を抽出して記憶する工程と、を実行する、ことを特徴とする複数のロボットの干渉を確認する方法である。
本発明によれば、近接した複数のロボットに作業を教示する際に、実際にロボットを動作させてロボット同士の干渉確認をする作業者の負荷を低減可能な干渉確認方法と、それを実行するロボットシステムを提供することができる。
[第1実施形態]
以下、図面を参照して、本発明の第1実施形態であるロボットの干渉確認方法とロボットシステムについて説明する。
(ロボットシステム)
図1は、第1実施形態に係るロボットシステム100の全体構成を示す説明図である。ロボットシステム100は、複数(第1実施形態では2台)のロボット2001、ロボット2002と、これらのロボットを制御するロボット制御部であるロボット制御システム350とを備える。尚、ロボット2001とロボット2002の到達可能範囲内には、構造物等である障害物700が存在するものとする。
以下、図面を参照して、本発明の第1実施形態であるロボットの干渉確認方法とロボットシステムについて説明する。
(ロボットシステム)
図1は、第1実施形態に係るロボットシステム100の全体構成を示す説明図である。ロボットシステム100は、複数(第1実施形態では2台)のロボット2001、ロボット2002と、これらのロボットを制御するロボット制御部であるロボット制御システム350とを備える。尚、ロボット2001とロボット2002の到達可能範囲内には、構造物等である障害物700が存在するものとする。
ロボット制御部であるロボット制御システム350は、処理部の一例であるロボット制御装置300と、入力部の一例である入力装置400と、表示部の一例である表示装置500と、を備えている。入力装置400は、例えばキーボード401、マウス402及び教示ペンダント403等で構成されており、作業者は入力装置400を用いてロボット制御装置300へのデータ入力などを行うことができる。教示ペンダント403は、作業者が操作するものであり、ロボット2001、ロボット2002やロボット制御装置300の動作を指示するのに用いる。また、教示ペンダント403は、後述する干渉確認のための動作を開始させる釦410と、ロボット2001、ロボット2002に組立作業等の物品の製造作業を開始させる釦411とを有する。なお、入力装置400の構成は、この例に限定するものではなく、例えばキーボード401、マウス402及び教示ペンダント403のうち、必要に応じていずれかを省略してもよいし、これらとは別の入力装置を用いてもよい。表示装置500は、画像を表示するディスプレイである。
ロボット2001とロボット2002は、異なる構造のロボットであってもよいが、通常は略同一の構成である。本実施形態では、同一構成のロボットを用いているので、ロボット2001の構成についてのみ説明し、ロボット2002の構成については説明を省略する。
ロボット2001は、垂直多関節のロボットであり、ロボットアーム251を備え、ロボットアーム251の先端にはエンドエフェクタの一例であるロボットハンド252が取付けられている。ロボットアーム251の基端は、台座に固定されている。ロボットハンド252は、ツールや部品等のワークを把持することが可能である。
ロボット2001は、垂直多関節のロボットであり、ロボットアーム251を備え、ロボットアーム251の先端にはエンドエフェクタの一例であるロボットハンド252が取付けられている。ロボットアーム251の基端は、台座に固定されている。ロボットハンド252は、ツールや部品等のワークを把持することが可能である。
ロボットアーム251は、複数の関節で連結された複数のリンクを備えており、図1の例では、6つの関節J1〜関節J6で連結された7つのリンク210〜リンク216を備えている。関節J1〜関節J6の各々は、関節軸を回転駆動させるためのサーボモータ(不図示)を有しており、関節J1〜関節J6の各々を回転駆動することで、ロボットアーム251の姿勢を自在に変更することができる。ロボットアーム251の姿勢を変更することにより、ロボット2001の手先、即ちロボットアーム251の先端のロボットハンド252の位置及び姿勢を、任意に変更することができる。
ロボット2001の手先の位置及び姿勢は、ロボットアーム251の基端、即ち台座を基準とするベース座標系で表現される。ロボット制御装置300においては、ロボット2001の手先の位置は、TCP(tool center point)で定義される。作業者は、ベース座標系におけるTCPの位置及び姿勢を入力装置400から指示することにより、ロボット2001の手先の位置及び姿勢を決めることができる。
(制御系)
次に、本実施形態のロボットシステムの制御系について説明する。
図2は、第1実施形態に係るロボットシステム100の制御系を示すブロック図である。ロボット制御装置300は、コンピュータで構成されている。ロボット制御装置300は、Central Processing UnitであるCPU301を備えている。また、ロボット制御装置300は、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)等で構成された記憶部302を備えている。また、ロボット制御装置300は、記録ディスクドライブ303及び不図示の入出力インタフェースを備えている。CPU301、記憶部302、記録ディスクドライブ303、及び入出力インタフェースは、互いに通信可能にバス310で接続されている。CPU301は、記憶部302及び記録ディスクドライブ303を制御するとともに、入出力インタフェースに接続されたロボット2001、ロボット2002、入力装置400及び表示装置500と通信し、これらを適宜制御する。記録ディスクドライブ303は、記録ディスク304に記録された各種データやプログラム等を読み出したり、記録ディスク304に書き込んだりすることができる。
次に、本実施形態のロボットシステムの制御系について説明する。
図2は、第1実施形態に係るロボットシステム100の制御系を示すブロック図である。ロボット制御装置300は、コンピュータで構成されている。ロボット制御装置300は、Central Processing UnitであるCPU301を備えている。また、ロボット制御装置300は、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)等で構成された記憶部302を備えている。また、ロボット制御装置300は、記録ディスクドライブ303及び不図示の入出力インタフェースを備えている。CPU301、記憶部302、記録ディスクドライブ303、及び入出力インタフェースは、互いに通信可能にバス310で接続されている。CPU301は、記憶部302及び記録ディスクドライブ303を制御するとともに、入出力インタフェースに接続されたロボット2001、ロボット2002、入力装置400及び表示装置500と通信し、これらを適宜制御する。記録ディスクドライブ303は、記録ディスク304に記録された各種データやプログラム等を読み出したり、記録ディスク304に書き込んだりすることができる。
記憶部302には、制御プログラム311、タスクプログラム312、CADデータ313、干渉確認データ314や、軌道データ生成時の制約条件等のデータが記憶されている。制御プログラム311は、タスクプログラム312の解釈、ロボット2001とロボット2002の軌道データの生成やシミュレーション、あるいは実動作制御等、後述するロボット教示方法の各工程をCPU301に行わせるプログラムである。制御プログラム311は、ユーザの過誤による変更が容易には起きないように保護されている。タスクプログラム312は、例えばロボット言語で記述されたテキストファイルであり、ユーザにより変更が可能となっている。タスクプログラム312は、ロボット2001とロボット2002に行わせる一連の動作を指令する複数の動作指令、複数の動作指令を区分けする箇所を示す区間データなどで構成される。
ロボットの動作指令は、ロボット言語で記述されている。例えば、TCPを教示点P1から教示点P2に直線移動させる動作指令は、「Mov P1 P2」のように記述する。CPU301は、タスクプログラム312により動作指令として指定された教示点を結ぶTCPの軌道データを、タスクプログラム312により指定された補間方法(例えば、直線補間や円弧補間等)により生成する。軌道データは、例えば1[ms]などの所定時間毎に指令するTCPの位置及び姿勢のデータ(又は各関節の角度のデータ)の集合であり、速度情報を含んでいることになる。CADデータ313は、ロボット2001及びロボット2002の形状データ、障害物700の形状データ等を含んでいる。
干渉確認データ314は、詳しくは後述するが、仮想空間内のシミュレーションで教示したロボット軌道のうち、実際にロボットを動作させて干渉の有無を確認すべき領域を特定するためのデータである。
第1実施形態では、記憶部302がコンピュータ読み取り可能な記録媒体であり、制御プログラム311が記憶部302に格納されている場合について説明するが、制御プログラム311の所在は、この例に限定されるわけではない。例えば、図2に示す記録ディスク304を、制御プログラムをコンピュータに供給するための記録媒体として用い、記録ディスク304から制御プログラムをRAMにロードしてもよい。
第1実施形態では、CPU301は、シミュレーションによるオフライン教示が可能に構成され、かつロボット2001とロボット2002をオンラインで実動作させて制御することが可能に構成されている。即ち、CPU301は、仮想ロボットに一連の動作を行わせるシミュレーションが実行可能であるとともに、ロボット2001及びロボット2002に一連の実動作を実行可能に構成されている。
CPU301は、作業者により教示ペンダント403の釦411が操作されると、タスクプログラム312に基づき生成した軌道データに従って各ロボット2001及びロボット2002を動作させ、物品を製造することができる。
CPU301は、作業者により教示ペンダント403の釦411が操作されると、タスクプログラム312に基づき生成した軌道データに従って各ロボット2001及びロボット2002を動作させ、物品を製造することができる。
(教示)
生産ラインに配置されたロボット2001とロボット2002を用いて物品の製造を開始する前に、ロボット2001とロボット2002に物品の製造にかかる動作を教示し、タスクプログラム312を作成しておく必要がある。教示方法は、種々存在する。例えばオフライン教示でタスクプログラム312を仮作成し、オフラインシミュレータ上でロボット2001とロボット2002を動作させ、各ロボットが周囲の物体に干渉しないかどうかの干渉確認を行う。なお、ここで言う周囲の物体とは、障害物だけでなく、自身以外のロボットも含んでいる。
生産ラインに配置されたロボット2001とロボット2002を用いて物品の製造を開始する前に、ロボット2001とロボット2002に物品の製造にかかる動作を教示し、タスクプログラム312を作成しておく必要がある。教示方法は、種々存在する。例えばオフライン教示でタスクプログラム312を仮作成し、オフラインシミュレータ上でロボット2001とロボット2002を動作させ、各ロボットが周囲の物体に干渉しないかどうかの干渉確認を行う。なお、ここで言う周囲の物体とは、障害物だけでなく、自身以外のロボットも含んでいる。
オフライン教示を行う際には、CPU301は、ロボット2001及びロボット2002に対応する仮想ロボットや障害物700に対応する仮想障害物を、表示装置500に3Dグラフィックス表示するのが好ましい。そして、作業者が表示装置500を見ながら入力装置400を用いてCPU301に指示を入力するようにして、教示を支援するのが好ましい。
図3は、第1実施形態におけるロボット制御装置300による教示シミュレーションの模式的な説明図である。図3には、仮想空間RIに配置された仮想ロボット200I1、仮想ロボット200I2及び仮想障害物700Iが模式的に図示されている。仮想ロボット200I1はロボット2001と対応し、仮想ロボット200I2はロボット2002と対応し、仮想障害物700Iは障害物700と対応している。CPU301は、CADデータ313に基づいて、図3に示すように、仮想空間RI内に仮想ロボット200I1、仮想ロボット200I2及び仮想障害物700Iを配置する。なお、第1実施形態では、CPU301は、仮想ロボット200I1、仮想ロボット200I2及び仮想障害物700Iを作業者に認識できるように、表示装置500に3Dグラフィックスによって表示させる。図3では、図示の便宜から、仮想ロボット200I1、仮想ロボット200I2を3軸のロボットとして簡略化して図示しているが、実際には実物のロボットに準じた形態で表示装置500に表示するのが望ましい。
図4は、第1実施形態に係るロボット教示方法の各工程を示すフローチャートである。CPU301は、ロボット2001、ロボット2002の一連の動作に対応する複数の動作指令を記憶部302から読み込む(S101)。また、ロボット2001、ロボット2002の複数の動作指令を区切る区間を、記憶部のタスクプログラム312から読み込む(S102)。以下、ステップS101からステップS102の処理について具体的に説明する。
図5(a)は、第1実施形態におけるロボットの動作指令を説明するための図である。CPU301は、ステップS101において、ロボット2001に行わせる複数の動作指令CMA1、CMA2、CMA3、…、及びロボット2002に行わせる複数の動作指令CMB1、CMB2、CMB3、…を記憶部302から取得する。CPU301は、ステップS102において、複数の動作指令CMA1、CMA2、CMA3、…を、予め決められた区間S1と区間S2に分配する。区間S1に分配された動作指令より成る指令セットCSA1と、区間S2に分配された動作指令より成る指令セットCSA2は、各々1つ以上の動作指令を含んでいる。同様に、CPU301は、ステップS102において、複数の動作指令CMB1、CMB2、CMB3、・・・を、予め決められた区間S1と区間S2に分配する。区間S1に分配された動作指令より成る指令セットCSB1と、区間S2に分配された動作指令より成る指令セットCSB2は、各々1つ以上の動作指令を含んでいる。尚、タスクプログラム312において、動作指令群が予め複数の指令セットに分けられた状態で記録されていてもよい。この場合、CPU301は、複数の指令セットを記憶部302から読み込むことになる。
次に、CPU301は、区間毎にロボット2001とロボット2002の軌道データを生成する(S103)。図5(b)は、第1実施形態におけるロボットの軌道生成を説明するための図である。図5(b)に示すように、ロボット2001の一連の動作MAに対応する一連の軌道データTAと、ロボット2002の一連の動作MBに対応する一連の軌道データTBが生成される。
CPU301は、ステップS103において、指令セットCSA1と指令セットCSA2に基づき、区間S1のロボット2001の一連の軌道データTA1と、区間S2のロボット2001の一連の軌道データTA2を生成する。同様に、CPU301は、指令セットCSB1と指令セットCSB2に基づき、区間S1のロボット2002の一連の軌道データTB1と、区間S2のロボット2002の一連の軌道データTB2を生成する。つまり、CPU301は、指令セットCSA1に基づき軌道データTA1を、指令セットCSA2に基づき軌道データTA2を、指令セットCSB1に基づき軌道データTB1を、指令セットCSB2に基づき軌道データTB2を、生成する。
このように、ロボット2001の軌道データTAは、軌道データTA1と軌道データTA2に分けられて生成される。同様に、ロボット2002の軌道データTBは、軌道データTB1と軌道データTB2に分けられて生成される。尚、各軌道データは、記憶部302に予め記憶された各ロボットの各関節の回転速度や回転加速度などの制約条件を超えない範囲で算出される。
このように、ロボット2001の軌道データTAは、軌道データTA1と軌道データTA2に分けられて生成される。同様に、ロボット2002の軌道データTBは、軌道データTB1と軌道データTB2に分けられて生成される。尚、各軌道データは、記憶部302に予め記憶された各ロボットの各関節の回転速度や回転加速度などの制約条件を超えない範囲で算出される。
CPU301は、区間S1において、軌道データTA1に従ってロボット2001を動作させることで、ロボット2001に部分動作MA1を行わせることができる。また、区間S1において、軌道データTB1に従ってロボット2002を動作させることで、ロボット2002に部分動作MB1を行わせることができる。同様に、CPU301は、区間S2において、軌道データTA2に従ってロボット2001を動作させることで、ロボット2001に部分動作MA2を行わせることができる。また、区間S2において、軌道データTB2に従ってロボット2002を動作させることで、ロボット2002に部分動作MB2を行わせることができる。
このように、第1実施形態では、ロボット2001の一連の動作MAは、複数の部分動作MA1、部分動作MA2からなり、ロボット2002の一連の動作MBは、複数の部分動作MB1、部分動作MB2からなる。
このように、第1実施形態では、ロボット2001の一連の動作MAは、複数の部分動作MA1、部分動作MA2からなり、ロボット2002の一連の動作MBは、複数の部分動作MB1、部分動作MB2からなる。
ここで、区間S1と区間S2は、タスクプログラム312において、ロボット2001とロボット2002の通過領域が、他の物体に干渉しないように設定されている。つまり、ロボット2001とロボット2002、ロボット2001と障害物700、ロボット2002と障害物700が、互いに干渉しないように予め区切られている。
区切る箇所の設定は、オフラインシミュレータ上で検討を行う。例えば、ロボット2001とロボット2002が、把持したワークを組付ける際に共通で使用する組付台が存在する場合には、組付台にはロボット2001とロボット2002がともにアクセスする。その場合には同じ場所で組付を行うため、両ロボットのタイミングをずらさなければ干渉が発生する。そのような組付作業に関しては、ロボット2001が組付台にアクセスする動作とロボット2002が組付台にアクセスする動作が区別できるように区間を区切る。各区間内においては、ロボット同士が同時に組付台にアクセスすることはないので、ロボット同士の干渉は発生せず、ロボット2001とロボット2002同士の動作タイミングの同期を検討する必要はない。即ち、ステップS103において、ロボット2001とロボット2002間の同期を考慮する必要はなく、各ロボットの軌道データを算出すればよい。
区切る箇所の設定は、オフラインシミュレータ上で検討を行う。例えば、ロボット2001とロボット2002が、把持したワークを組付ける際に共通で使用する組付台が存在する場合には、組付台にはロボット2001とロボット2002がともにアクセスする。その場合には同じ場所で組付を行うため、両ロボットのタイミングをずらさなければ干渉が発生する。そのような組付作業に関しては、ロボット2001が組付台にアクセスする動作とロボット2002が組付台にアクセスする動作が区別できるように区間を区切る。各区間内においては、ロボット同士が同時に組付台にアクセスすることはないので、ロボット同士の干渉は発生せず、ロボット2001とロボット2002同士の動作タイミングの同期を検討する必要はない。即ち、ステップS103において、ロボット2001とロボット2002間の同期を考慮する必要はなく、各ロボットの軌道データを算出すればよい。
以上、ステップS101、ステップS102、ステップS103の処理により、ロボット2001の一連の動作MAとロボット2002の動作MBに対応して、一連の軌道データTAと軌道データTBが生成される。ロボット2001については、区間S1の部分動作MA1に対応する軌道データTA1と、区間S2の部分動作MA2に対応する軌道データTA2が生成される。ロボット2002については、区間S1の部分動作MB1に対応する軌道データTB1と、区間S2の部分動作MB2に対応する軌道データTB2が生成される。尚、これら一連の軌道データTA、軌道データTBを、予め作成して記憶部302に記憶していてもよい。その場合、CPU301は、記憶部302から一連の軌道データTA、軌道データTBを読み込むだけでよい。
(干渉確認)
オフライン教示により、シミュレーション上では干渉が発生しないことが確認された軌道データでも、実機を動作させると干渉が発生する場合がある。これは、実機とオフラインとの間では、ロボット2001、ロボット2002、障害物700の設置誤差や、ロボットの位置再現性、軌跡追従性などにおいて差異があるためである。そのため、オフライン教示完了後には、組立作業等の物品の製造を開始する前に、オンライン制御で実機を動作させて干渉が起きないかを確認する必要がある。
オフライン教示により、シミュレーション上では干渉が発生しないことが確認された軌道データでも、実機を動作させると干渉が発生する場合がある。これは、実機とオフラインとの間では、ロボット2001、ロボット2002、障害物700の設置誤差や、ロボットの位置再現性、軌跡追従性などにおいて差異があるためである。そのため、オフライン教示完了後には、組立作業等の物品の製造を開始する前に、オンライン制御で実機を動作させて干渉が起きないかを確認する必要がある。
本実施形態では、干渉確認データ314に、仮想空間内のシミュレーションで生成したロボット軌道のうち、オンライン制御で実際にロボットを部分動作させて干渉の有無を確認すべき領域を特定するためのデータが記憶されている。これは、仮想空間内のシミュレーションで教示した際のロボット軌道や障害物位置のデータに、現実のロボットや障害物で生じ得るずれに相当する冗長部を付加して相互のクリアランス(間隔)を算出し、それに基づき選択した軌道領域が含まれている。
仮想空間内のシミュレーションによる教示では、ロボット同士やロボットと障害物が互いに干渉しないようにロボット軌道を設定するので、教示軌道に基づく仮想空間における相互のクリアランスデータ(間隔データ)は、当然に正の値になる。しかし、現実空間におけるロボット軌道や障害物位置は、設置誤差や部品公差等により、仮想空間内の設定位置とずれる場合がある。そこで、仮想空間内のロボット軌道や障害物位置のデータに、現実に生じ得るずれ分の冗長部を付加する。この場合には、仮想空間内でロボット軌道や障害物が占める範囲が冗長部の分だけ拡大するため、仮想空間内でロボット軌道や障害物が互いに接したり重なったりして、クリアランスデータ(間隔)が正の値にならない場合がある。この場合のクリアランスデータ(間隔)が正の値にならないからといって、現実の装置で必ず干渉が発生するとは限らないが、干渉が発生する可能性がある以上は、実機を動作させての干渉確認が必要になる。
そこで、現実に生じ得るずれ分の冗長部を付加した場合に、クリアランスデータ(間隔)が正の値にならない領域を特定するためのデータを、干渉確認データ314として記憶しておく。実際にロボットを動作させて干渉の有無を確認する際には、干渉確認データ314から特定される領域の軌道のみを動作させて確認すればよく、全軌道を動作させる必要がないため、作業者の負荷を大幅に軽減することができる。
尚、仮想空間内のロボット軌道に現実に生じ得るずれ分の冗長部を付加する場合には、ロボットを動作させた際の外形に与える静的なバラツキと動的なバラツキに基づいて、冗長部を設定することが望ましい。静的なバラツキとは、例えば、設置誤差や部品公差、リンクパラメータの誤差などである。動的なバラツキとは、ロボットの直進性やオーバーシュート、振動などである。また、障害物に関して現実に生じ得るずれ分の冗長部を付加する場合には、障害物700が固定されている場合には、冗長部は静的なバラツキとしての設置誤差や部品公差などに基づいて設定されることが望ましい。
干渉確認は、具体的には以下の手順で行う。
図4のフローチャートにおいて、CPU301は、シミュレーションにより、軌道データTA1と軌道データTA2に基づき、仮想ロボット200I1が通過する領域を計算して生成する。同様に、CPU301は、シミュレーションにより、軌道データTB1と軌道データTB2に基づき、仮想ロボット200I2が通過する領域を計算して生成する(S104)。
図4のフローチャートにおいて、CPU301は、シミュレーションにより、軌道データTA1と軌道データTA2に基づき、仮想ロボット200I1が通過する領域を計算して生成する。同様に、CPU301は、シミュレーションにより、軌道データTB1と軌道データTB2に基づき、仮想ロボット200I2が通過する領域を計算して生成する(S104)。
図5(c)は、S104におけるロボット制御装置300によるシミュレーションの説明図である。ただし、図3と同様に、図5(c)では仮想ロボット200I1と仮想ロボット200I2を簡略化して図示している。軌道データTA1に基づく仮想ロボット200I1の動作と、軌道データTB1に基づく仮想ロボット200I2の動作、すなわち区間S1における両ロボットの動作を模式的に示している。
CPU301は、ステップS104において、軌道データTA1に従って仮想ロボット200I1を仮想的に動作させたときの仮想ロボット200I1の軌跡から、仮想ロボット200I1が通過した通過領域R1を求める。具体的には、図5(c)に示すように、軌道データTA1の始点SAから終点GAまで仮想ロボット200I1を仮想空間RIにおいて仮想的に動作させ、空間掃引によって通過領域R1を生成する。仮想ロボット200I1は、ロボット2001の形状データを含むCADデータ313を用いてポリゴンの集合体で表現される。通過領域R1は、軌道データTA1を用いて、ポリゴンの集合体を仮想空間RI内で動作させることで求められる。なお、移動体の通過領域を求める手法としては、例えば、Swept Volume生成の手法や、通過領域を立方体や球体などの簡易な形状へ近似する手法などを用いることができる。CPU301は、仮想ロボット200I2が通過した通過領域R2についても、同様にして求める。
次にCPU301は、ステップS105において、生じ得るずれの大きさのデータを記憶部302から読み出す。生じ得るずれの大きさのデータとは、仮想空間内のシミュレーションで教示した際のロボット軌道や障害物位置に対して、現実のロボットや障害物で生じ得るずれの大きさを示すデータである。例えば、ロボットの設置誤差や部品公差、リンクパラメータの誤差、直進性やオーバーシュート、振動や、障害物の設置誤差、部品公差などに基づいて決めたデータである。
次に、CPU301は、ステップS105で読み出した生じ得るずれの大きさのデータに基づき、仮想ロボット200I1の通過領域R1に冗長部を付加し、通過し得る領域を計算して生成する(S106)。同様に、CPU301は、ステップ105で読み出した生じ得るずれの大きさのデータに基づき、仮想ロボット200I2の通過領域R2に冗長部を付加し、通過し得る領域を計算して生成する(S106)。
図5(d)に示すように、冗長部を付加すると仮想ロボット200I1の通過領域はR1よりもR1offだけ拡大し、仮想ロボット200I2の通過領域はR2よりもR2offだけ拡大する。また、CPU301は、仮想障害物700Iについても、ステップS105で読み出した生じ得るずれの大きさのデータの分だけ冗長部を付加して外形を大きくする。尚、図5(d)は、障害物については生じ得るずれの大きさが極めて小さな場合の例を示している。このように、ステップS106では、仮想空間内のシミュレーションで教示した際のロボット軌道に基づく通過領域や障害物位置のデータに、現実のロボットや障害物で生じ得るずれの大きさに相当する冗長部を付加する。
次に、CPU301は、通過領域R1off、通過領域R2off、外形を大きくした仮想障害物700Iの相互のクリアランス(間隔)を算出し、互いに接触したり重なったりしている領域が存在するかを判定する(S107)。判定は、例えば境界ボリューム階層(bounding volume hierarchy、BVH)と呼ばれる方法をとることが望ましい。
以下では、図5(d)に示すように、仮想ロボット200I1の拡大された通過領域R1offと、仮想ロボット200I2の拡大された通過領域R2offとの間に、COLとして示す部分において接触または重複が存在した場合を例に説明する。
図4のステップS107において、接触または重複が存在すると判定された場合には(S107:Yes)、ステップS108に進む。
図4のステップS107において、接触または重複が存在すると判定された場合には(S107:Yes)、ステップS108に進む。
逆に、接触または重複が存在しないと判定された場合には(S107:No)、教示を終了(End)する。この場合には、教示した軌道によりロボット2001とロボット2002を用いて物品の製造を行うことが可能となる。CPU301は、教示ペンダント403の釦411の操作による入力指示を受け付け可能となり、入力指示を受け付けた際には、タスクプログラム312に従ってロボット2001とロボット2002を動作させ、物品の製造を行わせる。
ステップS108に進んだ場合には、CPU301は、仮想ロボット200I1の通過領域R1offと仮想ロボット200I2の通過領域R2offとが接触または重複している軌道部分の抽出を行う(S108)。すなわち、図5(d)のCOLに示すように、クリアランス(間隔)が存在せず、通過領域同士の外形が接触または重複する領域の軌道(軌道部分)を抽出する。この例では、抽出した軌道部分はそれぞれ、仮想ロボット200I1がR1_TR、仮想ロボット200I2がR2_TRとなる。
次に、ステップS109において、抽出した軌道部分の組み合わせが、記憶部302の干渉確認データ314に記憶される(S109)。すなわち、図4のステップS107、ステップS108を実行すると、CPU301は、軌道部分R1_TRと軌道部分R2_TRの組み合わせにおいて通過領域が重なると判断し、ステップS109でこれを記憶する。尚、今回の例では、仮想ロボットの先端同士の通過領域が重なった例を示したが、確認すべき干渉はこれに限るわけではなく、例えば先端と関節や関節同士が干渉する場合もありえる。
次に、ステップS110において、CPU301は、抽出した軌道部分について、オンラインで実機を駆動して行う干渉確認の処理を実行する(S110)。
図6を参照して、ステップS110の干渉確認の処理について具体的に説明する。図6は、干渉確認の処理に含まれる各工程を示したフローチャートである。
図6を参照して、ステップS110の干渉確認の処理について具体的に説明する。図6は、干渉確認の処理に含まれる各工程を示したフローチャートである。
ステップS110の処理が開始されると、CPU301は、干渉確認が必要であることを作業者に示す警告画像を表示装置500に表示させる(S113)。これにより、作業者は、干渉確認処理が必要であり、それが開始したことを認識できる。
第1実施形態では、干渉確認が必要な区間S1の軌道部分R1_TRと軌道部分R2_TRについての干渉確認を実施しない限り、ロボット2001及びロボット2002による物品の製造を開始できないようにプログラムされている。具体的には、図1に示す教示ペンダント403の釦411は、生産作業開始の指示をロボット制御装置300に入力する釦であるが、ロボット制御装置300のCPU301は、釦411が操作されても、その入力指示を受け付ない。つまり、ロボット2001及びロボット2002による物品の製造を開始しない。このように、本実施形態では、作業者の不注意等により干渉確認を行うことなく生産作業が開始され不測の事態が発生するのを、未然に防止している。
S114において、CPU301は、図1に示す教示ペンダント403の釦410が作業者により操作されたかどうかを判断する。即ち、CPU301は、図1に示す入力装置400から、干渉確認処理開始の入力指示を受け付けたかどうかを判断する。CPU301は、釦410が操作されていなければ(S114:No)、そのまま待機する。CPU301は、釦410が操作された場合、即ち入力装置400からの入力指示を受け付けた場合には(S114:Yes)、干渉確認動作(S115)を開始する。
S115において、干渉確認動作が開始されると、CPU301は、ロボット2001を、干渉確認軌道の軌道データである軌道部分R1_TRの開始位置R1_Sに移動する。CPU301は、ロボット2002についても同様に、ロボット2002を干渉確認軌道の軌道データである軌道部分R2_TRの開始位置R2_Sに移動する。その上でメイン動作させるロボット2001、もしくはロボット2002の動作を開始させる。今回の説明では、メイン動作させるロボットは、ロボット2001であるとする。
CPU301は、ロボット2002を、軌道部分R2_TR上の開始位置R2_Sに停止させておく。そして、ロボット2001を、軌道部分R1_TRの開始位置R1_Sから終了位置R1_Eに向けて移動させる。ただし、CPU301は、物品を製造するために教示した軌道データTA1に基づく移動速度よりも低い速度でロボット2001を移動させる。これは、干渉確認処理中に、ロボット2001が物体(ロボット2002)と干渉したとしても、その時の衝撃力を低下させ、破損等を防止するためである。
なお、教示ペンダント403の釦410により干渉確認動作の開始の指示がなされる例を説明したが、入力装置400において作業者が操作可能なものであれば、開始の指示は釦410からに限定されるものではない。いずれの指示方法を採用するにせよ、CPU301は、作業者から入力指示を受け付けてから、ロボットの動作を開始すればよい。
なお、教示ペンダント403の釦410により干渉確認動作の開始の指示がなされる例を説明したが、入力装置400において作業者が操作可能なものであれば、開始の指示は釦410からに限定されるものではない。いずれの指示方法を採用するにせよ、CPU301は、作業者から入力指示を受け付けてから、ロボットの動作を開始すればよい。
S115において、CPU301は、ロボット2001が開始位置R1_Sから終了位置R1_Eに到達するまでの間に、ロボット2002との干渉が発生したかどうかを判定する。干渉発生の有無は、センサ等を用いることにより検知することができる。例えば、ロボット2001、ロボット2002に設けられた不図示の力センサや、ロボット2001、ロボット2002あるいはその近傍に設けられた不図示の視覚センサの検知結果に基づいて判定を行うことが可能である。なお、作業者が目視により確認し、干渉が発生したときには、入力装置400を介して作業者からCPU301に通知される構成としてもよい。
CPU301は、軌道部分R1_TRに沿ってロボット2001を移動させても干渉が発生しないと判定したら(S115:No)、ロボット2002の1つの位置(開始位置R2_S)に関する干渉確認動作を終了させる。
CPU301は、軌道部分R1_TRに沿ってロボット2001を移動させても干渉が発生しないと判定したら(S115:No)、ロボット2002の1つの位置(開始位置R2_S)に関する干渉確認動作を終了させる。
そして、S116において、干渉確認が必要な軌道部分の全域の確認が終了したかを判断し、終了していない場合には(S116:No)、S115に戻り、ロボット2002の異なる位置に関する干渉確認動作を開始する。すなわち、ロボット2001を、干渉確認軌道の軌道部分R1_TRの開始位置R1_Sに再び移動させる。そして、ロボット2002を、ロボット2002の軌道部分R2_TRの開始位置よりも終了位置R2_Eに近づいた位置に移動させる。移動量は、実際に物品の製造等の動作を行う際の1制御周期(例えば1msec)に移動する量や、位置制御の最小分解能、操作者が任意に決めた量、などから適宜選択すればよい。
次に、ロボット2001を、干渉確認軌道の軌道部分R1_TRの開始位置R1_Sから終了位置R1_Eに向けて、再度移動させ、干渉確認を行う(S115)。干渉が発生したと判定しない(S115:NO)限りは、ロボット2002が干渉確認軌道の軌道データの終了位置R2_Eに到達するまで、ステップS115〜ステップS116の動作を繰り返し行う。
干渉が発生したと判定せずに干渉確認軌道の軌道部分R1_TRと軌道部分R2_TRの組合せ全域について干渉確認動作が終了したら(S116:YES)、CPU301は、干渉していない旨を表示装置500に表示させる(S117)。そして、干渉確認処理を終了する(End)。これにより、作業者は、干渉しないことを認識することができる。また、CPU301は、釦411の操作による物品の製造作業開始の入力指示を受け付け可能となる。
一方、干渉が発生したと判定した場合には(S115:YES)、CPU301は、直ちにロボット2001を停止させ(S118)、干渉が発生した旨を表示装置500に表示させる(S119)。これにより、作業者は、干渉が発生したことを認識することができる。そして、干渉確認処理を終了する(End)。
干渉確認処理で干渉の発生が確認された場合には、作業者は、実機において干渉が発生しないようにロボットの動作指令を変更する。すなわち、ロボット制御装置は、作業者による軌道の修正指示を受け付ける。例えば、実機に対する直接教示あるいは教示ペンダント403を用いたオンライン教示か、あるいは入力装置400を用いたシミュレータ上のオフライン教示により、作業者は教示点を修正して動作指令を変更する。作業者が動作指令を変更したら、CPU301は、図4のステップS101に戻り、再度ロボットの軌道を生成し直して、干渉確認処理が必要か否かを判定する。
本実施形態によれば、仮想空間で教示したロボット軌道の通過領域や障害物位置に対して、現実に生じ得るずれの大きさに相当する冗長部を付加し、相互のクリアランス(間隔)を確認する。クリアランス(間隔)が確保されている場合には、実機を動作させての干渉確認処理を省略し、ロボット2001とロボット2002の教示に要する時間を短縮することができる。
現実に生じ得るずれの大きさに相当する冗長部を付加すると、仮想空間で教示したロボット軌道の通過領域や障害物位置にクリアランスがなくなる、つまり仮想空間上で接触や重複が生ずる場合にのみ、実機を動作させて干渉確認処理を行う。干渉確認処理において、複数のロボットのロボット軌道の組合せのうち、クリアランスがない部分軌道だけを抽出して実機による干渉確認処理を行うことで、干渉確認に要する作業時間を短縮することができる。
[第2実施形態]
第2実施形態に係るロボットの干渉確認方法とロボットシステムについて説明する。
第2実施形態におけるロボットシステムの構成は、第1実施形態と同様であるため、説明を省略する。第2実施形態は、図6に示す干渉確認処理におけるステップS115の具体的な動作が、第1実施形態とは異なる。ステップS115以外のステップは、第1実施形態と同様であるため、ここでは説明を省略する。
第2実施形態に係るロボットの干渉確認方法とロボットシステムについて説明する。
第2実施形態におけるロボットシステムの構成は、第1実施形態と同様であるため、説明を省略する。第2実施形態は、図6に示す干渉確認処理におけるステップS115の具体的な動作が、第1実施形態とは異なる。ステップS115以外のステップは、第1実施形態と同様であるため、ここでは説明を省略する。
第1実施形態では、ロボット2001を軌道部分R1_TRの開始位置R1_Sから終了位置R1_Eまで移動させてロボット2002の1つの位置姿勢に対する干渉確認動作を終了させた後、ロボット2001を開始位置R1_Sに戻していた。これに対して、第2実施形態では、次の干渉確認動作を開始する前に、ロボット2001を終了位置R1_Eから開始位置R1_Sに毎回必ず戻すわけではない点が異なる。
図5に示すように、干渉確認処理を行う領域では、ロボット2001とロボット2002の軌道は、現実に生じ得るずれの大きさの範囲内にまで近接している。その為、終了位置R1_Eから開始位置R1_Sに戻すための移動をする際に、軌道を配慮せずにロボット2001を単純に2点間移動したのでは、ロボット2002と干渉を起こす恐れがある。そこで、開始位置R1_Sまで戻すのに、軌道部分R1_TRを逆にトレースするとすれば、干渉確認のために開始位置R1_Sから終了位置R1_Eまで移動させた時と同一の軌道であるため、ヒステリシス誤差を除けば干渉が発生する可能性は小さい。
ここで、軌道部分R1_TRを使用して終了位置R1_Eから開始位置R1_Sに戻すのであるなら、その際にも干渉確認を行った方が効率がよい。そこで、本実施形態では、ロボット2002の1つの位置姿勢に対する干渉確認動作を終了させたら、ロボット2002を、干渉確認する軌道部分R2_TR上の終了位置R2_Eに近い位置に移動させる。その後、ロボット2001を終了位置R1_Eから開始位置R1_Sに移動させながら、干渉確認を行う。このように、本実施形態では、ロボット2001を軌道部分R1_TRに沿って順方向と逆方向に交互に移動させて干渉確認を行うことにより、ロボット2001を開始位置に戻すだけのための移動工程を省略できる。このため、干渉確認に要する時間を更に短縮することができる。
[第3実施形態]
第3実施形態に係るロボットの干渉確認方法とロボットシステムについて説明する。
第3実施形態におけるロボットシステムの構成は、第1実施形態と同様であるため、説明を省略する。第3実施形態は、図6に示す干渉確認処理におけるステップS115の具体的な動作が第1実施形態及び第2実施形態と異なる。ステップS115以外のステップは、第1実施形態と同様であるため、ここでは説明を省略する。
第1実施形態及び第2実施形態では、干渉確認処理を開始すると、まずロボット2001とロボット2002を、それぞれの干渉確認軌道の軌道部分の一端である開始位置に移動させた。すなわち、ロボット2001を開始位置R1_Sに、ロボット2002を開始位置R2_Sに移動させた。
第3実施形態に係るロボットの干渉確認方法とロボットシステムについて説明する。
第3実施形態におけるロボットシステムの構成は、第1実施形態と同様であるため、説明を省略する。第3実施形態は、図6に示す干渉確認処理におけるステップS115の具体的な動作が第1実施形態及び第2実施形態と異なる。ステップS115以外のステップは、第1実施形態と同様であるため、ここでは説明を省略する。
第1実施形態及び第2実施形態では、干渉確認処理を開始すると、まずロボット2001とロボット2002を、それぞれの干渉確認軌道の軌道部分の一端である開始位置に移動させた。すなわち、ロボット2001を開始位置R1_Sに、ロボット2002を開始位置R2_Sに移動させた。
これに対して、第3実施形態では干渉確認処理を開始すると、まずロボット2001とロボット2002を、干渉確認軌道の中で現実に干渉が発生する確率が高い位置に移動させて干渉確認を行う。すなわち、必ずしも干渉確認軌道の一端から干渉確認を開始するわけではない。干渉確認の開始位置は、ステップS108において、冗長部を付加したロボット2001とロボット2002の軌道の通過領域の重なりが最大であった位置、あるいはその近傍とするのが望ましい。本実施形態では、最初に干渉が発生する確率が高い位置にロボットを移動させて干渉確認を行うことにより、干渉が発生する場合にそれを検出するまでに要する時間を短縮することが可能である。尚、最初に干渉が発生する確率が高い位置にロボットを移動させる際には、CPU301は、物品を製造するために教示した軌道データに基づく移動速度よりも低い速度でロボットを移動させる。これは、干渉確認処理中に、ロボット同士が干渉したとしても、その時の衝撃力を低下させ、破損等を防止するためである。
[他の実施形態]
本発明の実施形態は、上述した第1実施形態〜第3実施形態に限られるものではなく、本発明の技術的思想内で多くの変形が可能である。
例えば、上記実施形態では、作業者に干渉確認処理が必要なことを通知する際には、表示装置500に警告を示す画像を表示させたが(ステップS113)、作業者に通知する方法はこれに限られるわけではない。例えば、音声メッセージで通知してもよい。場合によっては、作業者に通知することなく、作業者からの干渉確認処理の開始の指示を待ってもよい。
本発明の実施形態は、上述した第1実施形態〜第3実施形態に限られるものではなく、本発明の技術的思想内で多くの変形が可能である。
例えば、上記実施形態では、作業者に干渉確認処理が必要なことを通知する際には、表示装置500に警告を示す画像を表示させたが(ステップS113)、作業者に通知する方法はこれに限られるわけではない。例えば、音声メッセージで通知してもよい。場合によっては、作業者に通知することなく、作業者からの干渉確認処理の開始の指示を待ってもよい。
また、干渉確認処理において干渉が発生した場合に、表示装置500に干渉発生を示す画像を表示させたが(ステップS119)、作業者に通知する方法はこれに限られるわけではない。例えば、音声メッセージで通知してもよい。
実施形態1では、干渉確認処理において、ロボット2001をメイン動作させる場合について説明したが、これは一例であり、これに限定されるものではない。
実施形態1では、干渉確認処理において、ロボット2001をメイン動作させる場合について説明したが、これは一例であり、これに限定されるものではない。
また、上記実施形態では、共通の作業領域内に2台のロボットが設置された場合を説明したが、制御可能なロボットの数は2台に限られるわけではなく、3台以上の複数のロボットが互いに干渉し得る範囲内に配置されたロボットシステムであってもよい。
100・・・ロボットシステム/2001、2002・・・ロボット/210〜216・・・リンク/251・・・ロボットアーム/252・・・ロボットハンド/300・・・ロボット制御装置/301・・・CPU/302・・・記憶部/303・・・記録ディスクドライブ/304・・・記録ディスク/310・・・バス/311・・・制御プログラム/312・・・タスクプログラム/313・・・CADデータ/314・・・干渉確認データ/350・・・ロボット制御システム/400・・・入力装置/401・・・キーボード/402・・・マウス/403・・・教示ペンダント/410、411・・・釦/500・・・表示装置/700・・・障害物/200I1、200I2・・・仮想ロボット/700I・・・仮想障害物/J1〜J6・・・関節
Claims (15)
- ロボットの軌道を生成するシミュレータを有するロボット制御部が、
複数のロボットについて、作業を行うための軌道を生成する工程と、
生成した前記軌道に基づいて、各ロボットの通過領域を仮想空間に生成する工程と、
仮想空間に生成した前記各ロボットの通過領域に、現実の各ロボットで生じ得るずれに応じた冗長部を付加する工程と、
前記冗長部を付加した各ロボットの通過領域が、互いに接触あるいは重複するかを判定する判定工程と、
前記判定工程で接触あるいは重複すると判定した場合に、前記複数のロボットの前記軌道のうち、前記接触あるいは重複が発生する位置を含む軌道部分を抽出して記憶する工程と、を実行する、
ことを特徴とする複数のロボットの干渉を確認する方法。 - 前記判定工程において接触あるいは重複すると判定した場合に、前記ロボット制御部が、前記複数のロボットを前記軌道部分についてオンライン制御で移動させる干渉確認工程を実行する、
ことを特徴とする請求項1に記載の複数のロボットの干渉を確認する方法。 - 前記干渉確認工程において、前記ロボット制御部は、前記作業を行う時よりも低い速度で前記複数のロボットを移動させる、
ことを特徴とする請求項2に記載の複数のロボットの干渉を確認する方法。 - 前記干渉確認工程において、前記軌道部分について干渉が発生すると確認された場合には、前記ロボット制御部は、前記軌道の修正指示を受け付ける、
ことを特徴とする請求項2または3に記載の複数のロボットの干渉を確認する方法。 - 前記干渉確認工程は、前記ロボット制御部が、前記複数のロボットの各々を、各々の前記軌道部分の一端に移動させるステップを含む、
ことを特徴とする請求項2乃至4のいずれか1項に記載の複数のロボットの干渉を確認する方法。 - 前記干渉確認工程は、前記ロボット制御部が、前記軌道部分に沿って前記作業の時と同じ方向に前記ロボットを移動させるステップと、前記軌道部分に沿って前記作業の時とは逆方向に前記ロボットを移動させるステップを含む、
ことを特徴とする請求項2乃至5のいずれか1項に記載の複数のロボットの干渉を確認する方法。 - 前記干渉確認工程は、前記ロボット制御部が、前記複数のロボットの各々を、前記判定工程において前記接触あるいは重複が発生した位置に移動させるステップを含む、
ことを特徴とする請求項2乃至6のいずれか1項に記載の複数のロボットの干渉を確認する方法。 - 前記ロボット制御部は、前記判定工程において接触あるいは重複すると判定した場合に、前記干渉確認工程の実施が必要であることを作業者に通知する、
ことを特徴とする請求項2乃至7のいずれか1項に記載の複数のロボットの干渉を確認する方法。 - 前記ロボット制御部は、前記干渉確認工程において干渉が発生したと判定した場合に、軌道の修正が必要であることを作業者に通知する、
ことを特徴とする請求項2乃至8のいずれか1項に記載の複数のロボットの干渉を確認する方法。 - 請求項1乃至9のいずれか1項に記載の複数のロボットの干渉を確認する方法を、コンピュータに実行させるためのプログラム。
- 請求項10に記載のプログラムを記録した、コンピュータにより読み取り可能な記録媒体。
- 請求項1乃至9のいずれか1項に記載の複数のロボットの干渉を確認する方法を実行可能なロボット制御部と、前記ロボット制御部が制御可能な複数のロボットと、を備える、
ことを特徴とするロボットシステム。 - 請求項1乃至9のいずれか1項に記載の複数のロボットの干渉を確認する方法における前記判定工程において接触あるいは重複しないと判定した場合には、前記ロボット制御部は、前記軌道を用いて前記複数のロボットを動作させて物品を製造する、
ことを特徴とする物品の製造方法。 - 請求項2乃至9のいずれか1項に記載の複数のロボットの干渉を確認する方法における前記判定工程において接触あるいは重複すると判定した場合には、前記ロボット制御部は、前記干渉確認工程を実施するまでは、前記複数のロボットによる前記軌道を用いた物品の製造を行わない、
ことを特徴とする物品の製造方法。 - 請求項2乃至9のいずれか1項に記載の複数のロボットの干渉を確認する方法における前記干渉確認工程において前記軌道部分について干渉が発生しないと確認された場合には、前記ロボット制御部は、前記軌道を用いて前記複数のロボットを動作させて物品を製造する、
ことを特徴とする物品の製造方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018221637A JP2020082285A (ja) | 2018-11-27 | 2018-11-27 | 複数のロボットの干渉確認方法、ロボットシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018221637A JP2020082285A (ja) | 2018-11-27 | 2018-11-27 | 複数のロボットの干渉確認方法、ロボットシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020082285A true JP2020082285A (ja) | 2020-06-04 |
Family
ID=70909536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018221637A Pending JP2020082285A (ja) | 2018-11-27 | 2018-11-27 | 複数のロボットの干渉確認方法、ロボットシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020082285A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022106598A (ja) * | 2021-01-07 | 2022-07-20 | 株式会社安川電機 | 動作指令生成装置、機構制御システム、コンピュータプログラム、動作指令生成方法及び機構制御方法 |
EP4242763A1 (en) * | 2022-03-08 | 2023-09-13 | Kabushiki Kaisha Yaskawa Denki | Robot system, control method and memory device |
US11878424B2 (en) | 2021-12-06 | 2024-01-23 | Fanuc Corporation | Point set interference check |
-
2018
- 2018-11-27 JP JP2018221637A patent/JP2020082285A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022106598A (ja) * | 2021-01-07 | 2022-07-20 | 株式会社安川電機 | 動作指令生成装置、機構制御システム、コンピュータプログラム、動作指令生成方法及び機構制御方法 |
JP7276359B2 (ja) | 2021-01-07 | 2023-05-18 | 株式会社安川電機 | 動作指令生成装置、機構制御システム、コンピュータプログラム、動作指令生成方法及び機構制御方法 |
US11878424B2 (en) | 2021-12-06 | 2024-01-23 | Fanuc Corporation | Point set interference check |
EP4242763A1 (en) * | 2022-03-08 | 2023-09-13 | Kabushiki Kaisha Yaskawa Denki | Robot system, control method and memory device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108453702B (zh) | 机器人仿真器、机器人系统以及仿真方法 | |
CN110116405B (zh) | 轨迹生成方法和轨迹生成装置 | |
JP5980867B2 (ja) | ロボットをオフラインで教示するロボット教示装置 | |
US20080114492A1 (en) | Method and System for Off-Line Programming of Multiple Interacting Robots | |
JP2020082285A (ja) | 複数のロボットの干渉確認方法、ロボットシステム | |
CN108687767B (zh) | 离线编程装置以及离线编程方法 | |
CN104339352A (zh) | 机器人系统、机器人控制装置以及机器人控制方法 | |
JP2005108144A (ja) | ロボットの補正データ確認装置 | |
JP6567101B2 (ja) | 教示方法、ロボットの動作方法、プログラム、記憶媒体、教示装置 | |
CN102378943A (zh) | 控制机器人工具的方法 | |
JP5268495B2 (ja) | オフライン教示データの作成方法及びロボットシステム | |
WO2015137162A1 (ja) | 制御装置、ロボットシステム、および制御用データ生成方法 | |
JP3327854B2 (ja) | 溶接ロボットの教示方法および教示装置 | |
JP4574580B2 (ja) | 作業ロボットのオフラインティーチング装置 | |
US10022868B2 (en) | Inverse kinematic solution for multi-joint link mechanism, and teaching-data creating device using the inverse kinematic solution | |
JP7314215B2 (ja) | シミュレータ、ロボット教示装置、ロボットシステム、物品の製造方法、シミュレーション方法、プログラム及び記録媒体 | |
JP2019081204A (ja) | ロボット制御方法、制御端末、およびロボットシステム | |
JP7061013B2 (ja) | 経路補正方法及び多軸加工機の制御装置 | |
JPH09201784A (ja) | ロボットの教示装置 | |
JP4794937B2 (ja) | アーク溶接用プログラミング装置 | |
JPH0736519A (ja) | ロボットのニアミスチェック方法 | |
JP2021146435A (ja) | ロボットシステム、ロボットシステムで実行される方法および教示データを生成する方法 | |
JP7232704B2 (ja) | ロボットプログラム評価装置、ロボットプログラム評価方法及びロボットプログラム評価プログラム | |
WO2023066460A1 (en) | Method of handling safety of industrial robot, control system and robot system | |
JP2567834B2 (ja) | ロボツト制御デ−タの作成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20200206 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20200207 |