JP2020192621A - ロボットに教示点を教示するための装置、ロボットシステム、及びロボットの教示方法 - Google Patents
ロボットに教示点を教示するための装置、ロボットシステム、及びロボットの教示方法 Download PDFInfo
- Publication number
- JP2020192621A JP2020192621A JP2019098026A JP2019098026A JP2020192621A JP 2020192621 A JP2020192621 A JP 2020192621A JP 2019098026 A JP2019098026 A JP 2019098026A JP 2019098026 A JP2019098026 A JP 2019098026A JP 2020192621 A JP2020192621 A JP 2020192621A
- Authority
- JP
- Japan
- Prior art keywords
- robot
- teaching
- teaching point
- predetermined
- processor
- 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
【課題】走行装置によって移動されるロボットを備えるロボットシステムの立ち上げに掛かる時間を短縮する技術が求められている。【解決手段】走行軸に沿って移動する走行装置14に搭載されたロボット12に教示点を教示するための装置50は、走行軸における走行装置14の複数の異なる位置を、複数の既定位置として予め記憶する記憶部54と、教示点の位置情報に基づいて、記憶部54に記憶された複数の既定位置の中から、ロボット12を教示点に配置することができる既定位置を選択する位置選択部60とを備える。【選択図】図1
Description
本発明は、ロボットに教示点を教示するための装置、ロボットシステム、及びロボットの教示方法に関する。
走行装置によって移動されるロボットが知られている(例えば、特許文献1)。
従来、走行装置によって移動されるロボットを備えるロボットシステムの立ち上げに掛かる時間を短縮する技術が求められている。
本開示の一態様において、走行軸に沿って移動する走行装置に搭載されたロボットに教示点を教示するための装置は、走行軸における走行装置の複数の異なる位置を、複数の既定位置として予め記憶する記憶部と、教示点の位置情報に基づいて、記憶部に記憶された複数の既定位置の中から、ロボットを教示点に配置することができる既定位置を選択する位置選択部とを備える。
本開示の他の態様において、走行軸に沿って移動する走行装置に搭載されたロボットに教示点を教示する方法は、走行軸における走行装置の複数の異なる位置を、複数の既定位置として予め記憶し、教示点の位置データに基づいて、記憶された複数の既定位置の中から、ロボットを教示点に配置することができる既定位置を選択する。
本開示によれば、ロボットを教示点に配置可能な走行装置の位置を、予め記憶された既定位置の中から迅速に決定することができる。これにより、教示に掛かる時間を短縮することができ、ロボットシステムの立ち上げを迅速に行うことができる。
以下、本開示の実施の形態を図面に基づいて詳細に説明する。なお、以下に説明する種々の実施形態において、同様の要素には同じ符号を付し、重複する説明を省略する。図1及び図2を参照して、一実施形態に係るロボットシステム10について説明する。ロボットシステム10は、ロボット12、走行装置14、及び装置50を備える。
図2に示すように、ロボット12は、垂直多関節ロボットであって、ベース部16、旋回胴18、ロボットアーム20、手首部22、及びエンドエフェクタ24を備える。旋回胴18は、鉛直軸周りに回動可能となるようにベース部16に設けられている。ロボットアーム20は、旋回胴18に回動可能に連結された下腕部26と、該下腕部26の先端部に回動可能に設けられた上腕部28とを有する。手首部22は、上腕部28の先端部に回動可能に設けられている。
エンドエフェクタ24は、溶接ガン、塗料塗布器、又はロボットハンド等であって、手首部22の先端部に着脱可能に取り付けられている。エンドエフェクタ24は、ワークに対して所定の作業(溶接、塗装、部品組み付け等)を行う。なお、図2においては、一例として、スポット溶接ガンであるエンドエフェクタ24を示している。
ロボット12は、複数のサーボモータ30(図1)を有する。これらサーボモータ30は、ベース部16、旋回胴18、ロボットアーム20、及び手首部22にそれぞれ内蔵され、ロボット12の各可動要素(すなわち、旋回胴18、ロボットアーム20、手首部22)を回動軸周りに回動させる。
走行装置14は、ロボット12を、直線状の走行軸Aに沿って移動させる。具体的には、走行装置14は、レール部32、スライダ34、及び駆動機構36を有する。レール部32は、走行軸Aに沿って直線状に延在する。スライダ34は、走行軸Aに沿って摺動可能となるようにレール部32と係合している。スライダ34は、レール部32と係合することで、走行軸Aに沿って移動するように案内される。
駆動機構36は、タイミングベルト38と、該タイミングベルト38を回動させるサーボモータ40(図1)とを有する。タイミングベルト38は、スライダ34の下部と係合し、サーボモータ40の駆動力をスライダ34へ伝達する。ロボット12のベース部16は、スライダ34の上に固定されている。
サーボモータ40がタイミングベルト38を回動させると、該タイミングベルト38と係合したスライダ34が走行軸Aに沿って移動され、これにより、スライダ34の上に搭載されたロボット12が走行軸Aに沿って移動される。こうして、駆動機構36は、ロボット12を走行軸Aに沿って移動する。
図1を参照して、装置50は、走行装置14のスライダ34に搭載されたロボット12に教示点を教示するためのものであって、プロセッサ52、記憶部54、及び入力受付部56を備える。プロセッサ52は、CPU又はGPU等であって、各種演算処理を実行する。記憶部54は、ROM及びRAM等を有し、各種データを記憶する。入力受付部56は、キーボード、マウス、又はタッチセンサ等を有し、オペレータからの入力操作を受け付ける。
プロセッサ52、記憶部54、及び入力受付部56は、バス58を介して互いに通信可能に接続されており、プロセッサ52は、記憶部54及び入力受付部56と通信しつつ、後述するロボット12の教示に係る処理を実行する。本実施形態においては、装置50は、ロボット12及び走行装置14を制御する制御装置に実装されており、プロセッサ52は、ロボット12のサーボモータ30、及び走行装置14のサーボモータ40へ指令を送信し、ロボット12及び走行装置14を動作させる。
走行装置14には、走行装置座標系CDが設定される。本実施形態においては、走行装置座標系CDは、そのx軸が走行軸Aと平行であり、そのz軸が鉛直方向と平行となるように、設定されている。プロセッサ52は、走行装置座標系CDを基準として走行装置14の動作を制御する。走行装置座標系CDは、3次元作業空間内に固定された固定座標系である。なお、走行装置座標系CDの代わりに、3次元作業空間を規定するワールド座標系を用いてもよい。
一方、ロボット12には、ロボット座標系CRが設定される。本実施形態においては、ロボット座標系CRは、その原点がベース部16の中心に配置され、該原点が走行軸A上に位置し、且つ、そのz軸が鉛直方向と平行となるように、設定されている。ロボット座標系CRは、走行装置14のスライダ34とともに、走行軸A(すなわち、走行装置座標系CDのx軸)の方向へ移動する移動座標系である。
エンドエフェクタ24には、ツール座標系CTが設定される。このツール座標系CTは、ロボット座標系CRにおけるエンドエフェクタ24の位置及び姿勢を規定する。本実施形態においては、ツール座標系CTは、その原点が、エンドエフェクタ24の作業点(いわゆる、TCP)に一致するように、設定される。
プロセッサ52は、エンドエフェクタ24の位置及び姿勢を、ツール座標系CTによって規定される位置及び姿勢に一致させるように、ロボット座標系CRにおいて旋回胴18、ロボットアーム20、及び手首部22を動作させる。こうして、エンドエフェクタ24は、ロボット座標系CRにおいて任意の位置及び姿勢に配置される。
次に、図3〜図9を参照して、装置50を用いてロボット12の動作を教示する方法について説明する。図3に示すフローは、例えば、装置50の電源がONとなったときに、開始する。ステップS1において、プロセッサ52は、第nの既定位置Bn(n=1、2、3、・・・)の入力を受け付ける。
以下、図6を参照して、第nの既定位置Bnについて説明する。第nの既定位置Bnは、スライダ34(すなわち、ロボット12)を配置することができる、走行軸Aにおける該スライダ34(ロボット12)の位置を示しており、走行軸A上で整列するように設定される。
オペレータは、入力受付部56を操作して、第nの既定位置Bnの情報を入力する。一例として、オペレータは、第nの既定位置Bnの情報を、走行装置座標系CDの座標(例えば、x座標)として、入力する。他の例として、オペレータは、第nの既定位置Bnの情報として、互いに隣接する2つの既定位置Bn−1及びBnの間の間隔dを入力してもよい。
入力受付部56は、第nの既定位置Bnの情報の入力を受け付け、プロセッサ52は、入力受付部56が受け付けた第nの既定位置Bnの情報を、記憶部54に記憶する。こうして、図6に示すように、複数の異なる既定位置Bn(n=1、2、3、・・・)が走行軸A上に整列するように、任意に設定される。なお、図6に示す例では、既定位置Bnが、走行軸A上で略等間隔で整列するように設定されている。しかしながら、既定位置Bnは、走行軸A上でランダムな間隔で整列するように設定されてもよい。
例えば、第nの既定位置Bnにスライダ34及びロボット12を配置する場合、プロセッサ52は、走行装置14のサーボモータ40を動作させて、該スライダ34の中心点(又は、ロボット座標系CRの原点)の、走行装置座標系CDのx−y平面の座標が第nの既定位置Bnと一致するように、スライダ34を移動させる。
ステップS2において、プロセッサ52は、第mの教示点Cm(m=1、2、3、・・・)の入力を受け付ける。以下、図7を参照して、第mの教示点Cmについて説明する。第mの教示点Cmは、ロボット12がエンドエフェクタ24の作業点(TCP)を配置すべき3次元作業空間における位置を示している。例えば、第mの教示点Cmは、エンドエフェクタ24で作業をすべき作業位置(溶接位置、塗装位置、部品組付け位置)であるか、又は、エンドエフェクタ24を移動させるときに該エンドエフェクタ24の作業点を通過させるべき通過点である。
エンドエフェクタ24の作業点を第mの教示点Cmに配置するとき、プロセッサ52は、ツール座標系CTの原点が第mの教示点Cmに一致するように該ツール座標系CTを設定し、設定したツール座標系CTによって規定される位置及び姿勢にエンドエフェクタ24を配置するように、ロボット12を動作させる。
こうして、プロセッサ52は、エンドエフェクタ24の作業点(TCP)を第mの教示点Cmに配置させる。なお、第mの教示点Cmを特定する番号「m」は、エンドエフェクタ24を配置させる順序を表している。すなわち、プロセッサ52は、エンドエフェクタ24を、教示点C1→C2→C3→・・・→Cmの順に配置させる。
オペレータは、入力受付部56を操作して、第mの教示点Cmの位置情報を入力する。一例として、オペレータは、第mの教示点Cmの位置情報を、走行装置座標系CD(又は、ワールド座標系)の座標として入力する。プロセッサ52は、入力受付部56が受け付けた第mの教示点Cmの位置情報を、記憶部54に記憶する。こうして、図7に示すように、3次元空間(走行装置座標系CD)内に、複数の教示点Cm(m=1、2、3、・・・)が設定される。
ステップS3において、プロセッサ52は、記憶部54に記憶された複数の既定位置Bnの中から、ロボット12のエンドエフェクタ24を教示点Cmに配置することができる既定位置BSを選択するプロセスを実行する。このステップS3について、図4を参照して説明する。ステップS3の開始後、ステップS11において、プロセッサ52は、第nの既定位置Bnを特定する番号「n」を、初期値αに設定する。一例として、この初期値αは、α=1に設定される。
ステップS12において、プロセッサ52は、第nの既定位置Bnに関し、ロボット12の動作範囲D内に在る教示点Cmの数を計算するプロセスを実行する。このステップS12について、図5を参照して説明する。ステップS12の開始後、ステップS21において、プロセッサ52は、第mの教示点Cmを特定する番号「m」を、初期値γに設定する。ここで、プロセッサ52は、後述するステップS16(図4)でYESと判定するまで、図4中のステップS11〜S16のループを繰り返し実行する。第1巡目のステップS11〜S16のループを実行する場合、初期値γは、γ=1に設定される。
ステップS22において、プロセッサ52は、第mの教示点Cmが、第nの既定位置Bnにロボット12を配置したときのロボット12の動作範囲D内に在るか否かを判定する。一例として、この動作範囲Dは、ロボット12の可動範囲D1として定められる。この可動範囲D1は、ロボット12がエンドエフェクタ24を移動できる最大範囲、換言すれば、ロボット座標系CRにおいてツール座標系CTを設定できる最大範囲である。
他の例として、この動作範囲Dは、ロボット12の可動範囲D1に含まれる、該可動範囲D1よりも小さな所定範囲D2として、ロボット12に対して任意に定められる。例えば、この所定範囲D2は、ロボット座標系CRの原点に近接する領域内にあり、ロボット12がエンドエフェクタ24を余裕のある姿勢で配置することができる、ロボット12の動作範囲である。ここで、「余裕のある姿勢」とは、例えば、下腕部26と上腕部28との間の角度が、180°よりも小さい角度(例えば、鋭角)となっている(換言すれば、下腕部26と上腕部28とが直線状に整列しない)姿勢である。
このような所定範囲D2は、例えば、ロボット座標系CRにおけるツール座標系CTの位置及び姿勢を表す座標(x,y,z,W,P,R)に閾値を設定することで、規定できる。ここで、座標値x、y及びzは、それぞれ、ツール座標系CTの原点のロボット座標系CRにおけるx座標、y座標、及びz座標を示す。また、座標値W、P及びRは、それぞれ、ツール座標系CTをロボット座標系CRのx軸周り、y軸周り、及びz軸周りに回転させる角度を示す。
これら座標値x、y、z、W、P及びRに対し、それぞれ、[x1、x2]、[y1、y2]、[z1、z2]、[W1、W2]、[P1、P2]、及び[R1、R2]という閾値を設定することで、所定範囲D2を規定することができる。オペレータは、入力受付部56を操作して、各々の閾値x1、x2、y1、y2、z1、z2、W1、W2、P1、P2、R1及びR2を入力してもよい。
図8に、スライダ34(ロボット12)を、第1の既定位置B1に配置させたときのロボット12の動作範囲Dを模式的に示す。動作範囲D(可動範囲D1又は所定範囲D2)は、例えば、ロボット座標系CRの原点を中心とした略球状の領域として、画定され得る。図8に示す例の場合、スライダ34を第1の既定位置B1に配置させたとき、動作範囲D内に、複数の教示点Cmのうちの3つの教示点C1〜C3が含まれている。
プロセッサ52は、このステップS22において、第mの教示点Cmの位置情報に基づいて、第nの既定位置Bnにロボット12を配置したときの該ロボット12の動作範囲D内に第mの教示点Cmが在るか否かを判定する。プロセッサ52は、第mの教示点Cmが動作範囲D内に在る(すなわち、YES)と判定した場合、ステップS23へ進む一方、第mの教示点Cmが動作範囲D内にない(すなわち、NO)と判定した場合、ステップS24へ進む。
例えば、このステップS22の開始時点でn=1、m=1に設定されていたとすると、プロセッサ52は、第1の既定位置B1にロボット12を配置したときの該ロボット12の動作範囲D内に、第1の教示点C1が在るか否かを判定する。図8に示す例の場合、第1の教示点C1が、第1の既定位置B1にロボット12を配置したときの動作範囲D内に在るので、プロセッサ52はYESと判定することになる。
ステップS23において、プロセッサ52は、第mの教示点Cmを特定する番号「m」を、1だけインクリメントする。そして、プロセッサ52は、ステップS22へ戻る。例えば、このステップS23の開始時点で、n=1に設定され、該ステップS23で番号「m」を1から2へインクリメントした場合、プロセッサ52は、ステップS22に戻り、第1の既定位置B1にロボット12を配置したときの動作範囲D内に第2の教示点C2が在るか否かを判定する。
こうして、プロセッサ52は、ステップS22でNOと判定するまで、ステップS22及びS23のループを繰り返し実行する。例えば、図8に示す例の場合、3つの教示点C1〜C3が動作範囲D内に在るので、プロセッサ52は、ステップS22及びS23のループを3回繰り返した後、4回目のステップS22でNOと判定してステップS24へ進むことになる。
ステップS24において、プロセッサ52は、ステップS22で動作範囲D内に在ると判定された教示点Cmの数Enを計算し、記憶部54に記憶する。例えば、図8に示す例の場合、第1の既定位置B1にロボット12を配置したときに動作範囲D内に在ると判定された教示点Cmの数E1は、E1=3となる。このように、本実施形態においては、プロセッサ52は、動作範囲D内に含まれる教示点Cmの数E1を計算する計算部62(図1)として機能する。ステップS24を終了した後、プロセッサ52は、図4中のステップS13へ進む。
ステップS13において、プロセッサ52は、第nの既定位置Bnを特定する番号「n」を、1だけインクリメントする。ステップS14において、プロセッサ52は、第nの既定位置Bnを特定する番号「n」が、上限値βよりも大きいか否かを判定する。一例として、この上限値βは、記憶部54に記憶された既定位置Bnの総数に設定される。
プロセッサ52は、番号「n」が上限値βよりも大きい(すなわち、YES)と判定した場合、ステップS15へ進む一方、番号「n」が上限値β以下(すなわち、NO)と判定した場合、ステップS12へ戻る。例えば、このステップS14でNOと判定した時点でn=2に設定されている場合、プロセッサ52は、第2の既定位置B2に関して、図5に示すステップS12のフローを実行する。こうして、プロセッサ52は、ステップS14でYESと判定するまでステップS12〜S14のループを繰り返し実行し、n=α〜βに関して教示点Cmの数Enをそれぞれ記憶していく。
ステップS15において、プロセッサ52は、既定位置BSを選択する。具体的には、プロセッサ52は、上述のステップS24で記憶した数En(n=α〜β)の中から最大の数ESを検索し、該最大の数ESに対応する既定位置BSを、記憶部54に記憶された複数の既定位置Bnの中から選択する。
例えば、第1巡目のステップS11〜S15を実行した結果、最大の数ESが4(すなわち、第1の教示点C1〜第4の教示点C4)であり、且つ、該最大の数Esに対応する既定位置Bnが、第2の既定位置B2であったとする(図9を参照)。この場合、プロセッサ52は、4つの教示点C1〜C4を含む第1の教示点群C1〜C4の各々にロボット12を配置可能な既定位置BS_1として、複数の既定位置Bnの中から第2の既定位置B2を選択することになる。
このように、本実施形態においては、プロセッサ52は、複数の既定位置Bnの中から既定位置BSを選択する位置選択部60(図1)として機能する。また、プロセッサ52は、ステップS15において、ステップS12で計算した教示点Cmの数Enに基づいて、1つの教示点群に含まれる教示点Cm(図9の例では、教示点C1〜C4)の数が最大となるように、既定位置BSを選択している。
なお、このステップS15において、最大の数ESに対応する既定位置Bnが、複数存在し得る。この場合において、プロセッサ52は、予め定めた第2条件に従って、最大の数Esに対応する複数の既定位置Bnのうちの1つを、既定位置BSとして選択してもよい。
例えば、この第2条件は、最大の数Esに対応する複数の既定位置Bnのうち、最も走行装置座標系CDのx座標が小さい(又は大きい)ことであり得る。又は、第2条件は、ロボット12を、該当する教示点群に含まれる教示点Cm(図9の例では、第1の教示点群C1〜C4)に対して、最も余裕のある姿勢で配置できる(換言すれば、下腕部26と上腕部28との角度が最小である)ことであり得る。
ステップS16において、プロセッサ52は、全ての教示点Cmに関して既定位置BSを選択したか否かを判定する。プロセッサ52は、全ての教示点Cmに関して既定位置BSを選択した(すなわち、YES)と判定した場合、ステップS3を終了し、図3に示すステップS4へ進む。一方、プロセッサ52は、既定位置BSが選択されていない教示点Cmが残存している(すなわち、NO)と判定した場合、ステップS11へ戻る。
例えば、第1巡目のステップS11〜S15を実行した結果、図9に示すように、第1の教示点群C1〜C4に対して第2の既定位置B2を選択した場合、第mの教示点Cm(m=5、6、7、・・・)に関しては、既定位置BSが選択されていない。よって、この場合、プロセッサ52は、このステップS16でNOと判定し、ステップS11へ戻り、第2巡目のステップS11〜S16のループを実行する。
そして、第2巡目のステップS12において、図5中のステップS21を実行する場合、初期値γは、第1巡目のステップS15で選択された既定位置BS_1(すなわち、第2の既定位置B2)に対応する第1の教示点群C1〜C4の次の教示点Cm(すなわち、第5の教示点C5)の番号に設定される(すなわち、γ=5)。
そして、プロセッサ52は、第mの教示点Cm(m=5、6、7、・・・)に関してステップS22〜S24を実行し、最も数Enが多くなる(すなわち、最大の数ESとなる)ように、第2の教示点群に含まれる教示点Cmの各々にロボット12を配置することができる既定位置BS_2を、複数の既定位置Bnの中から選択する。
こうして、プロセッサ52は、第i巡目(i=1、2、3、・・・)のステップS11〜S16のループを実行する毎に、第iの教示点群に含まれる教示点Cmの各々にロボット12を配置することができる既定位置BS_iを、順次選択していく。第iの教示点群は、少なくとも1つの教示点Cmを含むことになる。
再度、図3を参照して、ステップS4において、プロセッサ52は、動作プログラムを生成する。具体的には、オペレータは、走行装置14によってスライダ34(ロボット12)を既定位置BS_iに配置した状態で、エンドエフェクタ24の作業点を、第iの教示点群に含まれる教示点Cmの各々に位置決めする動作を該ロボット12に教示する作業を行う。
例えば、オペレータは、入力受付部56を操作することで、上記した動作の教示を行うことができる。プロセッサ52は、教示点Cm及び既定位置BS_iの位置情報と、教示の結果得られたロボット12の位置データとに基づいて、動作プログラムを生成する。この動作プログラムは、走行装置14がロボット12を移動させつつ、該ロボット12がエンドエフェクタ24の作業点を第mの教示点Cmに順に配置する動作を、ロボット12及び走行装置14に実行させるための指令を含む。
なお、プロセッサ52は、図3に示すステップS3のフローを、シミュレーションソフト等を用いて実行してもよい。また、オペレータは、ステップS4におけるロボット12の教示を、シミュレーションソフト等を用いて、いわゆるオフラインで行ってもよいし、又は、実機のロボット12及び走行装置14を用いて、いわゆるオンラインで行ってもよい。
以上に述べたように、本実施形態においては、プロセッサ52は、教示点Cmの位置情報に基づいて、記憶部54に記憶された複数の既定位置Bnの中から、ロボット12のエンドエフェクタ24を教示点Cmに配置することができる既定位置BSを自動で選択している。
この構成によれば、ロボット12を教示点Cmに配置するのに適した走行装置14(具体的には、スライダ34)の位置を、予め記憶された既定位置Bnから迅速に決定することができる。これにより、教示作業に係る時間を短縮することができ、ロボットシステム10の立ち上げを迅速に行うことができる。また、ロボットシステム10の立ち上げ後に動作プログラムの修正が必要となった場合に、該修正を容易に行うことも可能となる。
また、本実施形態においては、プロセッサ52は、複数の教示点群(第1の教示点群、第2の教示点群、・・・第iの教示点群)毎に、該教示点群に含まれる教示点Cmの各々にロボット12を配置することができる既定位置BS_iを、1つずつ選択している。この構成によれば、1つの既定位置BS_iで複数の教示点Cm(すなわち、第iの教示点群)にロボット12のエンドエフェクタ24を配置させることができるので、ロボットシステム10の作業のサイクルタイムを縮減できる。
ここで、プロセッサ52は、予め定めた条件に従って、教示点群毎に既定位置BS_iを選択している。一例として、予め定めた条件とは、選択する既定位置BS_iの数(つまり、i)を最小とすることである。この条件に従って既定位置BS_iを選択する場合、プロセッサ52は、上述のステップS22において、第mの教示点Cmがロボット12の可動範囲D1内に在るか否かを判定する。
この場合、選択された各既定位置BS_iでロボット12を配置可能な教示点Cmの数が最大化されることになり、結果、選択する既定位置BS_iの総数を最小化することができる。よって、走行装置14によってロボット12を移動させる回数を最小化できるので、ロボットシステム10の作業のサイクルタイムを、効果的に縮減できる。
他の例として、予め定めた条件とは、選択する既定位置BS_iの各々において、第iの教示点群が、ロボット12に対して定めた所定範囲D2内に収まることである。この条件に従って既定位置BS_iを選択する場合、プロセッサ52は、上述のステップS22において、第mの教示点Cmがロボット12の所定範囲D2内に在るか否かを判定することになる。
この構成によれば、ロボット12を、第iの教示点群に含まれる教示点Cmの各々に対し、余裕のある姿勢で配置することができるとともに、1つの既定位置BS_iで複数の教示点Cmに配置できるので、ロボットシステム10の作業のサイクルタイムの縮減も図ることができる。
次に、図10及び図11を参照して、装置50の他の機能について説明する。本実施形態においては、プロセッサ52は、上述のステップS12の代わりに、図11に示すステップS12’を実行する。具体的には、プロセッサ52は、ステップS22でYESと判定した後、ステップS31において、ロボット12の動作経路Gと環境物Fとが干渉するか否かを判定する。
ここで、互いに隣り合う2つの教示点Cm−1とCmとの間に、環境物F(周辺装置、柱等)が存在する場合がある。このような例を図12に示す。図12に示す例では、第3の教示点C3と第4の教示点C4との間に環境物Fが存在している。この場合、ロボット12がエンドエフェクタ24を第3の教示点C3から第4の教示点C4へ移動させるときの動作経路Gが環境物Fと干渉し、エンドエフェクタ24を移動させることができない場合がある。
そこで、本実施形態においては、プロセッサ52は、このステップS31でロボット12の動作経路Gと環境物Fとの干渉の有無を判定する。なお、プロセッサ52は、このステップS31の開始時点で、第mの教示点Cmを特定する番号「m」が、初期値γに設定されている場合(すなわち、第1巡目のステップS22〜S23のループを実行している場合)は、このステップS31で自動的にYESと判定し、ステップS23へ進む。
一方、プロセッサ52は、このステップS31の開始時点で番号「m」が初期値γよりも大きい場合(すなわち、第2巡目以降のステップS22〜S23のループを実行している場合)は、このステップS31で、ロボット12の動作経路Gと環境物Fとが干渉するか否かを判定する。
具体的には、プロセッサ52は、第m−1の教示点Cm−1及び第mの教示点Cmの位置情報に基づいて、第m−1の教示点Cm−1から第mの教示点Cmへの動作経路Gの、走行装置座標系CDにおける座標(又は関数)を演算する。例えば、この動作経路Gは、教示点Cm−1及びCmを結ぶ直線として演算されてもよいし、又は、教示点Cm−1及びCmを結ぶ任意の曲線として演算されてもよい。
一方、環境物Fの走行装置座標系CDにおける座標(又は関数)は、記憶部54に予め記憶されている。プロセッサ52は、走行装置座標系CDにおける動作経路G及び環境物Fの座標(又は関数)に基づいて、動作経路Gと環境物Fとが干渉するか否かを判定することができる。
このように、本実施形態においては、プロセッサ52は、動作経路Gと環境物Fとが干渉するか否かを判定する干渉判定部64(図10)として機能する。プロセッサ52は、動作経路Gと環境物Fとが干渉する(すなわち、YES)と判定した場合、ステップS24へ進む一方、動作経路Gと環境物Fとが干渉しない(すなわち、NO)と判定した場合、ステップS23へ進む。
そして、プロセッサ52は、ステップS24において、動作経路Gが環境物Fと干渉しない一群の教示点Cmの数Enを計算し、ステップS15において、数Enが最大となる既定位置BS_iを選択する。このように、本実施形態においては、プロセッサ52は、第iの教示点群に含まれる教示点Cmにロボット12を配置できる既定位置BS_iを、予め定めた条件に従って選択しており、該予め定めた条件は、ロボット12が環境物Bと干渉することなく、第iの教示点群に含まれる教示点Cmの各々に配置できることである。
この構成によれば、1つの既定位置BS_iで、環境物Bと干渉することなく、第iの教示点群に含まれる各教示点Cmにロボット12を配置できることから、ロボット12と環境物Bとの干渉を確実に回避できるとともに、ロボットシステム10の作業のサイクルタイムの縮減を図ることができる。
なお、図11に示すフローにおいて、プロセッサ52は、ステップS31でYESと判定した場合に、ロボット12が環境物Bを回避できる動作経路を検索してもよい。この場合において、プロセッサ52は、ロボット12が環境物Bを回避できる動作経路を見出すことができた場合は、ステップS23へ進む一方、ロボット12が環境物Bを回避できる動作経路を見出すことができなかった場合は、ステップS24へ進んでもよい。
なお、上述した実施形態においては、装置50が、ロボット12及び走行装置14を制御する制御装置に実装される場合について述べた。しかしながら、装置50は、ロボット12に動作を教示するための教示装置に実装されてもよい。このような形態を、図13に示す。図13に示すロボットシステム70は、ロボット12、走行装置14、装置50、及び制御装置72を備える。
制御装置72は、プロセッサ及び記憶部(ともに図示せず)を有し、ロボット12及び走行装置14を制御する。本実施形態においては、装置50は、オペレータが把持可能な手持ち式教示装置(いわゆる、教示ペンダント)に実装され、制御装置72に通信可能に接続されている。オペレータは、装置50を把持して入力受付部56を操作することで、図3に示す教示フローを実行することができる。
なお、上述の実施形態においては、既定位置Bnの番号「n」の初期値αが、α=1に設定され、また、上限値βが、既定位置Bnの総数に設定されている。この場合、プロセッサ52は、ステップS3において、記憶部54に記憶された全ての既定位置Bnに関してステップS12のプロセスを実行することになる。しかしながら、初期値α及び上限値βは、第i巡目(i=1、2、3、・・・)のステップS11〜S16のループを実行する毎に変更してもよい。
一例として、初期値α及び上限値βは、第i巡目のステップS11〜S16のループの実行時に、最初にステップS22の判定対象となる第mの教示点Cm(すなわち、m=γである教示点Cm)から、所定の距離Hの範囲内にある既定位置Bnのみを含むように、設定されてもよい。この距離Hは、ロボット座標系CRの原点から、ロボット12の可動範囲D1の最外縁(換言すれば、ロボット12がエンドエフェクタ24の作業点を配置可能な最遠位点)までの距離であってもよい。
具体的に述べると、例えば、第1巡目のステップS11〜S16のループを実行するとき、最初にステップS22の判定対象となる教示点Cmは、第1の教示点C1である(∵ γ=1)。この場合において、第1の教示点C1から距離Hの範囲内にある既定位置Bnが、第1の既定位置B1から第4の既定位置B4であるとすると、初期値αは、α=1に設定され、上限値βは、β=4に設定されることになる。これにより、ロボット12を第1の教示点C1に配置不能な既定位置Bn(n=5、6、7、・・・)を、第1巡目のステップS12のプロセスの対象から除外することができる。
このように、第i巡目のステップS11〜S16のループを実行する毎に、初期値α及び上限値βを、所定の条件に従って適宜設定することにより、プロセッサ52が実行する演算量を最適化し、プロセッサ52の演算処理に係る負担を低減できる。また、ステップS3の実行に要する時間を短縮することもできる。
なお、上述の実施形態においては、複数の教示点Cmが設定され、プロセッサ52が、教示点群(第1の教示点群、第2の教示点群、・・・第iの教示点群)毎に既定位置BS_iを選択する場合について述べた。しかしながら、これに限らず、1つのみの教示点C1が設定されてもよい。この場合、装置50から、上述の計算部62及び干渉判定部64を省略することもできる。
また、装置50から入力受付部56を省略することもできる。この場合において、オペレータは、装置50とネットワーク(LAN、インターネット等)を介して通信可能に接続された入力装置(PC、タブレット等)を用いて、遠隔操作により、既定位置Bn又は教示点Cmを装置50に入力してもよい。
また、記憶部54は、必ずしも装置50に内蔵されていなくてもよく、例えば、装置50に外付けされる記憶装置(フラッシュメモリ、HDD等)であってもよいし、又は、装置50とネットワーク(LAN、インターネット等)を介して通信可能に接続された外部機器(サーバ等)に内蔵されてもよい。
また、ロボット12は、垂直多関節ロボットに限らず、水平多関節ロボット、パラレルリンクロボット等、如何なるタイプのロボットであってもよい。また、走行軸Aは、直線に限らず、円弧、又は任意の曲線であってもよい。例えば、走行装置14は、スライダ34(又は、ロボット12)を、所定の中心軸周りに回動させるように構成されてもよい。この場合において、所定の中心軸は、スライダ34の中心、又は、ロボット座標系CRの原点を通過する(ロボット座標系CRのz軸と一致する)ように、配置されてもよい。
以上、実施形態を通じて本開示を説明したが、上述の実施形態は、特許請求の範囲に係る発明を限定するものではない。
10,70 ロボットシステム
12 ロボット
14 走行装置
50 装置
52 プロセッサ
54 記憶部
56 入力受付部
60 位置選択部
62 計算部
64 干渉判定部
12 ロボット
14 走行装置
50 装置
52 プロセッサ
54 記憶部
56 入力受付部
60 位置選択部
62 計算部
64 干渉判定部
Claims (8)
- 走行軸に沿って移動する走行装置に搭載されたロボットに教示点を教示するための装置であって、
前記走行軸における前記走行装置の複数の異なる位置を、複数の既定位置として予め記憶する記憶部と、
前記教示点の位置情報に基づいて、前記記憶部に記憶された前記複数の既定位置の中から、前記ロボットを前記教示点に配置することができる前記既定位置を選択する位置選択部と、を備える、装置。 - 前記位置選択部は、少なくとも1つの前記教示点を各々含む複数の教示点群毎に、該教示点群に含まれる前記教示点に前記ロボットを配置することができる前記既定位置を選択する、請求項1に記載の装置。
- 前記位置選択部は、予め定めた条件に従って、前記複数の教示点群毎に前記既定位置を選択し、
前記予め定めた条件は、
選択する前記既定位置の数が最小となること、
選択する前記既定位置の各々において、前記教示点群に含まれる前記教示点が、前記ロボットに対して予め定めた範囲内に収まること、又は
選択する前記既定位置の各々において、前記ロボットを、周囲の環境物と干渉することなく、前記教示点群に含まれる前記教示点の各々に配置できること、
である、請求項2に記載の装置。 - 前記装置は、前記記憶部に記憶された各々の前記既定位置に関し、前記ロボットの動作範囲内に含まれる前記教示点の数を計算する計算部をさらに備え、
前記位置選択部は、前記計算部が計算した前記教示点の数が最大となる前記既定位置を選択する、請求項2又は3に記載の装置。 - 前記予め定めた条件は、前記ロボットを前記環境物と干渉することなく前記教示点群に含まれる前記教示点の各々に配置できることであり、
前記装置は、各々の前記既定位置に関し、前記ロボットの動作経路と前記環境物とが干渉するか否かを判定する干渉判定部をさらに備える、請求項3に記載の装置。 - 前記教示点又は前記既定位置の入力を受け付ける入力受付部をさらに備える、請求項1〜5のいずれか1項に記載の装置。
- 走行軸に沿って移動する走行装置と、
前記走行装置に搭載されたロボットと、
請求項1〜6のいずれか1項に記載の装置と、を備える、ロボットシステム。 - 走行軸に沿って移動する走行装置に搭載されたロボットに教示点を教示する方法であって、
前記走行軸における前記走行装置の複数の異なる位置を、複数の既定位置として予め記憶し、
前記教示点の位置データに基づいて、記憶された前記複数の既定位置の中から、前記ロボットを前記教示点に配置することができる前記既定位置を選択する、方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019098026A JP2020192621A (ja) | 2019-05-24 | 2019-05-24 | ロボットに教示点を教示するための装置、ロボットシステム、及びロボットの教示方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019098026A JP2020192621A (ja) | 2019-05-24 | 2019-05-24 | ロボットに教示点を教示するための装置、ロボットシステム、及びロボットの教示方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020192621A true JP2020192621A (ja) | 2020-12-03 |
Family
ID=73548476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019098026A Pending JP2020192621A (ja) | 2019-05-24 | 2019-05-24 | ロボットに教示点を教示するための装置、ロボットシステム、及びロボットの教示方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020192621A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023032984A1 (ja) * | 2021-08-31 | 2023-03-09 | 川崎重工業株式会社 | 操作端末、ロボットシステム及びコンピュータプログラム |
-
2019
- 2019-05-24 JP JP2019098026A patent/JP2020192621A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023032984A1 (ja) * | 2021-08-31 | 2023-03-09 | 川崎重工業株式会社 | 操作端末、ロボットシステム及びコンピュータプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11458626B2 (en) | Trajectory generating method, and trajectory generating apparatus | |
EP2699392B1 (en) | An industrial robot having a kinematically redundant arm and a method for controlling the robot | |
CN102216037B (zh) | 用于优化工业机器人的编程移动路径的方法和装置 | |
US20150190926A1 (en) | Method and system for off-line programming of multiple interacting robots | |
JP4137909B2 (ja) | ロボットプログラム補正装置 | |
US8972056B2 (en) | Method of finding feasible joint trajectories for an n-dof robot with rotation invariant process (n>5) | |
US11433537B2 (en) | Automatic path generation device | |
Bolmsjö et al. | Robotic arc welding–trends and developments for higher autonomy | |
TW202244643A (zh) | 數值控制裝置及數值控制系統 | |
JP2009134352A (ja) | ロボットの動作経路作成装置及びロボットの動作経路作成方法 | |
US6895299B2 (en) | Systems and methods for representing complex n-curves for direct control of tool motion | |
Decré et al. | Extending the iTaSC constraint-based robot task specification framework to time-independent trajectories and user-configurable task horizons | |
Bhatt et al. | Optimizing multi-robot placements for wire arc additive manufacturing | |
JP7210201B2 (ja) | 情報処理方法、プログラム、記録媒体、情報処理装置、ロボットシステム、物品の製造方法 | |
JP2020192621A (ja) | ロボットに教示点を教示するための装置、ロボットシステム、及びロボットの教示方法 | |
Ostanin et al. | Programming by Demonstration Using Two-Step Optimization for Industrial Robot. | |
JP7144754B2 (ja) | 多関節ロボットおよび多関節ロボットシステム | |
Hazard et al. | Automated design of manipulators for in-hand tasks | |
Wohlke | A neuro-fuzzy-based system architecture for the intelligent control of multi-finger robot hands | |
KR101640135B1 (ko) | 병렬구조 다자유도 시스템 및 이의 최적해 도출 방법 | |
CN108475051A (zh) | 用于在工业机器人的编程期间对准工具的方法和系统 | |
Hassan Shabeeb et al. | Forward analysis of 5 DOF robot manipulator and position placement problem for industrial applications | |
Lopes et al. | Learning sensory-motor maps for redundant robots | |
CN111989193A (zh) | 控制机器人的运动轨迹的方法和控制系统 | |
JP2009050949A (ja) | ロボットアームの軌道教示方法および軌道教示装置 |