(57)【要約】【課題】走行装置によって移動されるロボットを備えるロボットシステムの立ち上げに掛かる時間を短縮する技術が求められている。【解決手段】走行軸に沿って移動する走行装置１４に搭載されたロボット１２に教示点を教示するための装置５０は、走行軸における走行装置１４の複数の異なる位置を、複数の既定位置として予め記憶する記憶部５４と、教示点の位置情報に基づいて、記憶部５４に記憶された複数の既定位置の中から、ロボット１２を教示点に配置することができる既定位置を選択する位置選択部６０とを備える。【選択図】図１
2020192621.tif 000002
【特許請求の範囲】
【請求項１】
走行軸に沿って移動する走行装置に搭載されたロボットに教示点を教示するための装置であって、
前記走行軸における前記走行装置の複数の異なる位置を、複数の既定位置として予め記憶する記憶部と、
前記教示点の位置情報に基づいて、前記記憶部に記憶された前記複数の既定位置の中から、前記ロボットを前記教示点に配置することができる前記既定位置を選択する位置選択部と、を備える、装置。
【請求項２】
前記位置選択部は、少なくとも１つの前記教示点を各々含む複数の教示点群毎に、該教示点群に含まれる前記教示点に前記ロボットを配置することができる前記既定位置を選択する、請求項１に記載の装置。
【請求項３】
前記位置選択部は、予め定めた条件に従って、前記複数の教示点群毎に前記既定位置を選択し、
前記予め定めた条件は、
選択する前記既定位置の数が最小となること、
選択する前記既定位置の各々において、前記教示点群に含まれる前記教示点が、前記ロボットに対して予め定めた範囲内に収まること、又は
選択する前記既定位置の各々において、前記ロボットを、周囲の環境物と干渉することなく、前記教示点群に含まれる前記教示点の各々に配置できること、
である、請求項２に記載の装置。
【請求項４】
前記装置は、前記記憶部に記憶された各々の前記既定位置に関し、前記ロボットの動作範囲内に含まれる前記教示点の数を計算する計算部をさらに備え、
前記位置選択部は、前記計算部が計算した前記教示点の数が最大となる前記既定位置を選択する、請求項２又は３に記載の装置。
【請求項５】
前記予め定めた条件は、前記ロボットを前記環境物と干渉することなく前記教示点群に含まれる前記教示点の各々に配置できることであり、
前記装置は、各々の前記既定位置に関し、前記ロボットの動作経路と前記環境物とが干渉するか否かを判定する干渉判定部をさらに備える、請求項３に記載の装置。
【請求項６】
前記教示点又は前記既定位置の入力を受け付ける入力受付部をさらに備える、請求項１〜５のいずれか１項に記載の装置。
【請求項７】
走行軸に沿って移動する走行装置と、
前記走行装置に搭載されたロボットと、
請求項１〜６のいずれか１項に記載の装置と、を備える、ロボットシステム。
【請求項８】
走行軸に沿って移動する走行装置に搭載されたロボットに教示点を教示する方法であって、
前記走行軸における前記走行装置の複数の異なる位置を、複数の既定位置として予め記憶し、
前記教示点の位置データに基づいて、記憶された前記複数の既定位置の中から、前記ロボットを前記教示点に配置することができる前記既定位置を選択する、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットに教示点を教示するための装置、ロボットシステム、及びロボットの教示方法に関する。
【背景技術】
【０００２】
走行装置によって移動されるロボットが知られている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開昭６１−２７８９０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来、走行装置によって移動されるロボットを備えるロボットシステムの立ち上げに掛かる時間を短縮する技術が求められている。
【課題を解決するための手段】
【０００５】
本開示の一態様において、走行軸に沿って移動する走行装置に搭載されたロボットに教示点を教示するための装置は、走行軸における走行装置の複数の異なる位置を、複数の既定位置として予め記憶する記憶部と、教示点の位置情報に基づいて、記憶部に記憶された複数の既定位置の中から、ロボットを教示点に配置することができる既定位置を選択する位置選択部とを備える。
【０００６】
本開示の他の態様において、走行軸に沿って移動する走行装置に搭載されたロボットに教示点を教示する方法は、走行軸における走行装置の複数の異なる位置を、複数の既定位置として予め記憶し、教示点の位置データに基づいて、記憶された複数の既定位置の中から、ロボットを教示点に配置することができる既定位置を選択する。
【発明の効果】
【０００７】
本開示によれば、ロボットを教示点に配置可能な走行装置の位置を、予め記憶された既定位置の中から迅速に決定することができる。これにより、教示に掛かる時間を短縮することができ、ロボットシステムの立ち上げを迅速に行うことができる。
【図面の簡単な説明】
【０００８】
【図１】一実施形態に係るロボットシステムのブロック図である。
【図２】一実施形態に係るロボット及び走行装置の図である。
【図３】図１に示す装置を用いてロボットの動作を教示する方法のフローチャートの一例を示す。
【図４】図３中のステップＳ３のフローの一例を示す。
【図５】図４中のステップＳ１２のフローの一例を示す。
【図６】走行装置の既定位置の一例を模式的に示す。
【図７】ロボットの教示点の一例を模式的に示す。
【図８】図７に示す状態から、ロボットが第１の既定位置へ移動された状態を示す。
【図９】図８に示す状態から、ロボットが第２の既定位置へ移動された状態を示す。
【図１０】図１に示すロボットシステムの他の機能を示すブロック図である。
【図１１】図１０に示すロボットシステムが実行するステップＳ１２’のフローの一例を示す。
【図１２】図９に対応する図であって、ロボットの動作経路と環境物とが干渉している状態を示す。
【図１３】他の実施形態に係るロボットシステムのブロック図である。
【発明を実施するための形態】
【０００９】
以下、本開示の実施の形態を図面に基づいて詳細に説明する。なお、以下に説明する種々の実施形態において、同様の要素には同じ符号を付し、重複する説明を省略する。図１及び図２を参照して、一実施形態に係るロボットシステム１０について説明する。ロボットシステム１０は、ロボット１２、走行装置１４、及び装置５０を備える。
【００１０】
図２に示すように、ロボット１２は、垂直多関節ロボットであって、ベース部１６、旋回胴１８、ロボットアーム２０、手首部２２、及びエンドエフェクタ２４を備える。旋回胴１８は、鉛直軸周りに回動可能となるようにベース部１６に設けられている。ロボットアーム２０は、旋回胴１８に回動可能に連結された下腕部２６と、該下腕部２６の先端部に回動可能に設けられた上腕部２８とを有する。手首部２２は、上腕部２８の先端部に回動可能に設けられている。
【００１１】
エンドエフェクタ２４は、溶接ガン、塗料塗布器、又はロボットハンド等であって、手首部２２の先端部に着脱可能に取り付けられている。エンドエフェクタ２４は、ワークに対して所定の作業（溶接、塗装、部品組み付け等）を行う。なお、図２においては、一例として、スポット溶接ガンであるエンドエフェクタ２４を示している。
【００１２】
ロボット１２は、複数のサーボモータ３０（図１）を有する。これらサーボモータ３０は、ベース部１６、旋回胴１８、ロボットアーム２０、及び手首部２２にそれぞれ内蔵され、ロボット１２の各可動要素（すなわち、旋回胴１８、ロボットアーム２０、手首部２２）を回動軸周りに回動させる。
【００１３】
走行装置１４は、ロボット１２を、直線状の走行軸Ａに沿って移動させる。具体的には、走行装置１４は、レール部３２、スライダ３４、及び駆動機構３６を有する。レール部３２は、走行軸Ａに沿って直線状に延在する。スライダ３４は、走行軸Ａに沿って摺動可能となるようにレール部３２と係合している。スライダ３４は、レール部３２と係合することで、走行軸Ａに沿って移動するように案内される。
【００１４】
駆動機構３６は、タイミングベルト３８と、該タイミングベルト３８を回動させるサーボモータ４０（図１）とを有する。タイミングベルト３８は、スライダ３４の下部と係合し、サーボモータ４０の駆動力をスライダ３４へ伝達する。ロボット１２のベース部１６は、スライダ３４の上に固定されている。
【００１５】
サーボモータ４０がタイミングベルト３８を回動させると、該タイミングベルト３８と係合したスライダ３４が走行軸Ａに沿って移動され、これにより、スライダ３４の上に搭載されたロボット１２が走行軸Ａに沿って移動される。こうして、駆動機構３６は、ロボット１２を走行軸Ａに沿って移動する。
【００１６】
図１を参照して、装置５０は、走行装置１４のスライダ３４に搭載されたロボット１２に教示点を教示するためのものであって、プロセッサ５２、記憶部５４、及び入力受付部５６を備える。プロセッサ５２は、ＣＰＵ又はＧＰＵ等であって、各種演算処理を実行する。記憶部５４は、ＲＯＭ及びＲＡＭ等を有し、各種データを記憶する。入力受付部５６は、キーボード、マウス、又はタッチセンサ等を有し、オペレータからの入力操作を受け付ける。
【００１７】
プロセッサ５２、記憶部５４、及び入力受付部５６は、バス５８を介して互いに通信可能に接続されており、プロセッサ５２は、記憶部５４及び入力受付部５６と通信しつつ、後述するロボット１２の教示に係る処理を実行する。本実施形態においては、装置５０は、ロボット１２及び走行装置１４を制御する制御装置に実装されており、プロセッサ５２は、ロボット１２のサーボモータ３０、及び走行装置１４のサーボモータ４０へ指令を送信し、ロボット１２及び走行装置１４を動作させる。
【００１８】
走行装置１４には、走行装置座標系ＣＤが設定される。本実施形態においては、走行装置座標系ＣＤは、そのｘ軸が走行軸Ａと平行であり、そのｚ軸が鉛直方向と平行となるように、設定されている。プロセッサ５２は、走行装置座標系ＣＤを基準として走行装置１４の動作を制御する。走行装置座標系ＣＤは、３次元作業空間内に固定された固定座標系である。なお、走行装置座標系ＣＤの代わりに、３次元作業空間を規定するワールド座標系を用いてもよい。
【００１９】
一方、ロボット１２には、ロボット座標系ＣＲが設定される。本実施形態においては、ロボット座標系ＣＲは、その原点がベース部１６の中心に配置され、該原点が走行軸Ａ上に位置し、且つ、そのｚ軸が鉛直方向と平行となるように、設定されている。ロボット座標系ＣＲは、走行装置１４のスライダ３４とともに、走行軸Ａ（すなわち、走行装置座標系ＣＤのｘ軸）の方向へ移動する移動座標系である。
【００２０】
エンドエフェクタ２４には、ツール座標系ＣＴが設定される。このツール座標系ＣＴは、ロボット座標系ＣＲにおけるエンドエフェクタ２４の位置及び姿勢を規定する。本実施形態においては、ツール座標系ＣＴは、その原点が、エンドエフェクタ２４の作業点（いわゆる、ＴＣＰ）に一致するように、設定される。
【００２１】
プロセッサ５２は、エンドエフェクタ２４の位置及び姿勢を、ツール座標系ＣＴによって規定される位置及び姿勢に一致させるように、ロボット座標系ＣＲにおいて旋回胴１８、ロボットアーム２０、及び手首部２２を動作させる。こうして、エンドエフェクタ２４は、ロボット座標系ＣＲにおいて任意の位置及び姿勢に配置される。
【００２２】
次に、図３〜図９を参照して、装置５０を用いてロボット１２の動作を教示する方法について説明する。図３に示すフローは、例えば、装置５０の電源がＯＮとなったときに、開始する。ステップＳ１において、プロセッサ５２は、第ｎの既定位置Ｂｎ（ｎ＝１、２、３、・・・）の入力を受け付ける。
【００２３】
以下、図６を参照して、第ｎの既定位置Ｂｎについて説明する。第ｎの既定位置Ｂｎは、スライダ３４（すなわち、ロボット１２）を配置することができる、走行軸Ａにおける該スライダ３４（ロボット１２）の位置を示しており、走行軸Ａ上で整列するように設定される。
【００２４】
オペレータは、入力受付部５６を操作して、第ｎの既定位置Ｂｎの情報を入力する。一例として、オペレータは、第ｎの既定位置Ｂｎの情報を、走行装置座標系ＣＤの座標（例えば、ｘ座標）として、入力する。他の例として、オペレータは、第ｎの既定位置Ｂｎの情報として、互いに隣接する２つの既定位置Ｂｎ−１及びＢｎの間の間隔ｄを入力してもよい。
【００２５】
入力受付部５６は、第ｎの既定位置Ｂｎの情報の入力を受け付け、プロセッサ５２は、入力受付部５６が受け付けた第ｎの既定位置Ｂｎの情報を、記憶部５４に記憶する。こうして、図６に示すように、複数の異なる既定位置Ｂｎ（ｎ＝１、２、３、・・・）が走行軸Ａ上に整列するように、任意に設定される。なお、図６に示す例では、既定位置Ｂｎが、走行軸Ａ上で略等間隔で整列するように設定されている。しかしながら、既定位置Ｂｎは、走行軸Ａ上でランダムな間隔で整列するように設定されてもよい。
【００２６】
例えば、第ｎの既定位置Ｂｎにスライダ３４及びロボット１２を配置する場合、プロセッサ５２は、走行装置１４のサーボモータ４０を動作させて、該スライダ３４の中心点（又は、ロボット座標系ＣＲの原点）の、走行装置座標系ＣＤのｘ−ｙ平面の座標が第ｎの既定位置Ｂｎと一致するように、スライダ３４を移動させる。
【００２７】
ステップＳ２において、プロセッサ５２は、第ｍの教示点Ｃｍ（ｍ＝１、２、３、・・・）の入力を受け付ける。以下、図７を参照して、第ｍの教示点Ｃｍについて説明する。第ｍの教示点Ｃｍは、ロボット１２がエンドエフェクタ２４の作業点（ＴＣＰ）を配置すべき３次元作業空間における位置を示している。例えば、第ｍの教示点Ｃｍは、エンドエフェクタ２４で作業をすべき作業位置（溶接位置、塗装位置、部品組付け位置）であるか、又は、エンドエフェクタ２４を移動させるときに該エンドエフェクタ２４の作業点を通過させるべき通過点である。
【００２８】
エンドエフェクタ２４の作業点を第ｍの教示点Ｃｍに配置するとき、プロセッサ５２は、ツール座標系ＣＴの原点が第ｍの教示点Ｃｍに一致するように該ツール座標系ＣＴを設定し、設定したツール座標系ＣＴによって規定される位置及び姿勢にエンドエフェクタ２４を配置するように、ロボット１２を動作させる。
【００２９】
こうして、プロセッサ５２は、エンドエフェクタ２４の作業点（ＴＣＰ）を第ｍの教示点Ｃｍに配置させる。なお、第ｍの教示点Ｃｍを特定する番号「ｍ」は、エンドエフェクタ２４を配置させる順序を表している。すなわち、プロセッサ５２は、エンドエフェクタ２４を、教示点Ｃ１→Ｃ２→Ｃ３→・・・→Ｃｍの順に配置させる。
【００３０】
オペレータは、入力受付部５６を操作して、第ｍの教示点Ｃｍの位置情報を入力する。一例として、オペレータは、第ｍの教示点Ｃｍの位置情報を、走行装置座標系ＣＤ（又は、ワールド座標系）の座標として入力する。プロセッサ５２は、入力受付部５６が受け付けた第ｍの教示点Ｃｍの位置情報を、記憶部５４に記憶する。こうして、図７に示すように、３次元空間（走行装置座標系ＣＤ）内に、複数の教示点Ｃｍ（ｍ＝１、２、３、・・・）が設定される。
【００３１】
ステップＳ３において、プロセッサ５２は、記憶部５４に記憶された複数の既定位置Ｂｎの中から、ロボット１２のエンドエフェクタ２４を教示点Ｃｍに配置することができる既定位置ＢＳを選択するプロセスを実行する。このステップＳ３について、図４を参照して説明する。ステップＳ３の開始後、ステップＳ１１において、プロセッサ５２は、第ｎの既定位置Ｂｎを特定する番号「ｎ」を、初期値αに設定する。一例として、この初期値αは、α＝１に設定される。
【００３２】
ステップＳ１２において、プロセッサ５２は、第ｎの既定位置Ｂｎに関し、ロボット１２の動作範囲Ｄ内に在る教示点Ｃｍの数を計算するプロセスを実行する。このステップＳ１２について、図５を参照して説明する。ステップＳ１２の開始後、ステップＳ２１において、プロセッサ５２は、第ｍの教示点Ｃｍを特定する番号「ｍ」を、初期値γに設定する。ここで、プロセッサ５２は、後述するステップＳ１６（図４）でＹＥＳと判定するまで、図４中のステップＳ１１〜Ｓ１６のループを繰り返し実行する。第１巡目のステップＳ１１〜Ｓ１６のループを実行する場合、初期値γは、γ＝１に設定される。
【００３３】
ステップＳ２２において、プロセッサ５２は、第ｍの教示点Ｃｍが、第ｎの既定位置Ｂｎにロボット１２を配置したときのロボット１２の動作範囲Ｄ内に在るか否かを判定する。一例として、この動作範囲Ｄは、ロボット１２の可動範囲Ｄ１として定められる。この可動範囲Ｄ１は、ロボット１２がエンドエフェクタ２４を移動できる最大範囲、換言すれば、ロボット座標系ＣＲにおいてツール座標系ＣＴを設定できる最大範囲である。
【００３４】
他の例として、この動作範囲Ｄは、ロボット１２の可動範囲Ｄ１に含まれる、該可動範囲Ｄ１よりも小さな所定範囲Ｄ２として、ロボット１２に対して任意に定められる。例えば、この所定範囲Ｄ２は、ロボット座標系ＣＲの原点に近接する領域内にあり、ロボット１２がエンドエフェクタ２４を余裕のある姿勢で配置することができる、ロボット１２の動作範囲である。ここで、「余裕のある姿勢」とは、例えば、下腕部２６と上腕部２８との間の角度が、１８０°よりも小さい角度（例えば、鋭角）となっている（換言すれば、下腕部２６と上腕部２８とが直線状に整列しない）姿勢である。
【００３５】
このような所定範囲Ｄ２は、例えば、ロボット座標系ＣＲにおけるツール座標系ＣＴの位置及び姿勢を表す座標（ｘ，ｙ，ｚ，Ｗ，Ｐ，Ｒ）に閾値を設定することで、規定できる。ここで、座標値ｘ、ｙ及びｚは、それぞれ、ツール座標系ＣＴの原点のロボット座標系ＣＲにおけるｘ座標、ｙ座標、及びｚ座標を示す。また、座標値Ｗ、Ｐ及びＲは、それぞれ、ツール座標系ＣＴをロボット座標系ＣＲのｘ軸周り、ｙ軸周り、及びｚ軸周りに回転させる角度を示す。
【００３６】
これら座標値ｘ、ｙ、ｚ、Ｗ、Ｐ及びＲに対し、それぞれ、［ｘ１、ｘ２］、［ｙ１、ｙ２］、［ｚ１、ｚ２］、［Ｗ１、Ｗ２］、［Ｐ１、Ｐ２］、及び［Ｒ１、Ｒ２］という閾値を設定することで、所定範囲Ｄ２を規定することができる。オペレータは、入力受付部５６を操作して、各々の閾値ｘ１、ｘ２、ｙ１、ｙ２、ｚ１、ｚ２、Ｗ１、Ｗ２、Ｐ１、Ｐ２、Ｒ１及びＲ２を入力してもよい。
【００３７】
図８に、スライダ３４（ロボット１２）を、第１の既定位置Ｂ１に配置させたときのロボット１２の動作範囲Ｄを模式的に示す。動作範囲Ｄ（可動範囲Ｄ１又は所定範囲Ｄ２）は、例えば、ロボット座標系ＣＲの原点を中心とした略球状の領域として、画定され得る。図８に示す例の場合、スライダ３４を第１の既定位置Ｂ１に配置させたとき、動作範囲Ｄ内に、複数の教示点Ｃｍのうちの３つの教示点Ｃ１〜Ｃ３が含まれている。
【００３８】
プロセッサ５２は、このステップＳ２２において、第ｍの教示点Ｃｍの位置情報に基づいて、第ｎの既定位置Ｂｎにロボット１２を配置したときの該ロボット１２の動作範囲Ｄ内に第ｍの教示点Ｃｍが在るか否かを判定する。プロセッサ５２は、第ｍの教示点Ｃｍが動作範囲Ｄ内に在る（すなわち、ＹＥＳ）と判定した場合、ステップＳ２３へ進む一方、第ｍの教示点Ｃｍが動作範囲Ｄ内にない（すなわち、ＮＯ）と判定した場合、ステップＳ２４へ進む。
【００３９】
例えば、このステップＳ２２の開始時点でｎ＝１、ｍ＝１に設定されていたとすると、プロセッサ５２は、第１の既定位置Ｂ１にロボット１２を配置したときの該ロボット１２の動作範囲Ｄ内に、第１の教示点Ｃ１が在るか否かを判定する。図８に示す例の場合、第１の教示点Ｃ１が、第１の既定位置Ｂ１にロボット１２を配置したときの動作範囲Ｄ内に在るので、プロセッサ５２はＹＥＳと判定することになる。
【００４０】
ステップＳ２３において、プロセッサ５２は、第ｍの教示点Ｃｍを特定する番号「ｍ」を、１だけインクリメントする。そして、プロセッサ５２は、ステップＳ２２へ戻る。例えば、このステップＳ２３の開始時点で、ｎ＝１に設定され、該ステップＳ２３で番号「ｍ」を１から２へインクリメントした場合、プロセッサ５２は、ステップＳ２２に戻り、第１の既定位置Ｂ１にロボット１２を配置したときの動作範囲Ｄ内に第２の教示点Ｃ２が在るか否かを判定する。
【００４１】
こうして、プロセッサ５２は、ステップＳ２２でＮＯと判定するまで、ステップＳ２２及びＳ２３のループを繰り返し実行する。例えば、図８に示す例の場合、３つの教示点Ｃ１〜Ｃ３が動作範囲Ｄ内に在るので、プロセッサ５２は、ステップＳ２２及びＳ２３のループを３回繰り返した後、４回目のステップＳ２２でＮＯと判定してステップＳ２４へ進むことになる。
【００４２】
ステップＳ２４において、プロセッサ５２は、ステップＳ２２で動作範囲Ｄ内に在ると判定された教示点Ｃｍの数Ｅｎを計算し、記憶部５４に記憶する。例えば、図８に示す例の場合、第１の既定位置Ｂ１にロボット１２を配置したときに動作範囲Ｄ内に在ると判定された教示点Ｃｍの数Ｅ１は、Ｅ１＝３となる。このように、本実施形態においては、プロセッサ５２は、動作範囲Ｄ内に含まれる教示点Ｃｍの数Ｅ１を計算する計算部６２（図１）として機能する。ステップＳ２４を終了した後、プロセッサ５２は、図４中のステップＳ１３へ進む。
【００４３】
ステップＳ１３において、プロセッサ５２は、第ｎの既定位置Ｂｎを特定する番号「ｎ」を、１だけインクリメントする。ステップＳ１４において、プロセッサ５２は、第ｎの既定位置Ｂｎを特定する番号「ｎ」が、上限値βよりも大きいか否かを判定する。一例として、この上限値βは、記憶部５４に記憶された既定位置Ｂｎの総数に設定される。
【００４４】
プロセッサ５２は、番号「ｎ」が上限値βよりも大きい（すなわち、ＹＥＳ）と判定した場合、ステップＳ１５へ進む一方、番号「ｎ」が上限値β以下（すなわち、ＮＯ）と判定した場合、ステップＳ１２へ戻る。例えば、このステップＳ１４でＮＯと判定した時点でｎ＝２に設定されている場合、プロセッサ５２は、第２の既定位置Ｂ２に関して、図５に示すステップＳ１２のフローを実行する。こうして、プロセッサ５２は、ステップＳ１４でＹＥＳと判定するまでステップＳ１２〜Ｓ１４のループを繰り返し実行し、ｎ＝α〜βに関して教示点Ｃｍの数Ｅｎをそれぞれ記憶していく。
【００４５】
ステップＳ１５において、プロセッサ５２は、既定位置ＢＳを選択する。具体的には、プロセッサ５２は、上述のステップＳ２４で記憶した数Ｅｎ（ｎ＝α〜β）の中から最大の数ＥＳを検索し、該最大の数ＥＳに対応する既定位置ＢＳを、記憶部５４に記憶された複数の既定位置Ｂｎの中から選択する。
【００４６】
例えば、第１巡目のステップＳ１１〜Ｓ１５を実行した結果、最大の数ＥＳが４（すなわち、第１の教示点Ｃ１〜第４の教示点Ｃ４）であり、且つ、該最大の数Ｅｓに対応する既定位置Ｂｎが、第２の既定位置Ｂ２であったとする（図９を参照）。この場合、プロセッサ５２は、４つの教示点Ｃ１〜Ｃ４を含む第１の教示点群Ｃ１〜Ｃ４の各々にロボット１２を配置可能な既定位置ＢＳ_１として、複数の既定位置Ｂｎの中から第２の既定位置Ｂ２を選択することになる。
【００４７】
このように、本実施形態においては、プロセッサ５２は、複数の既定位置Ｂｎの中から既定位置ＢＳを選択する位置選択部６０（図１）として機能する。また、プロセッサ５２は、ステップＳ１５において、ステップＳ１２で計算した教示点Ｃｍの数Ｅｎに基づいて、１つの教示点群に含まれる教示点Ｃｍ（図９の例では、教示点Ｃ１〜Ｃ４）の数が最大となるように、既定位置ＢＳを選択している。
【００４８】
なお、このステップＳ１５において、最大の数ＥＳに対応する既定位置Ｂｎが、複数存在し得る。この場合において、プロセッサ５２は、予め定めた第２条件に従って、最大の数Ｅｓに対応する複数の既定位置Ｂｎのうちの１つを、既定位置ＢＳとして選択してもよい。
【００４９】
例えば、この第２条件は、最大の数Ｅｓに対応する複数の既定位置Ｂｎのうち、最も走行装置座標系ＣＤのｘ座標が小さい（又は大きい）ことであり得る。又は、第２条件は、ロボット１２を、該当する教示点群に含まれる教示点Ｃｍ（図９の例では、第１の教示点群Ｃ１〜Ｃ４）に対して、最も余裕のある姿勢で配置できる（換言すれば、下腕部２６と上腕部２８との角度が最小である）ことであり得る。
【００５０】
ステップＳ１６において、プロセッサ５２は、全ての教示点Ｃｍに関して既定位置ＢＳを選択したか否かを判定する。プロセッサ５２は、全ての教示点Ｃｍに関して既定位置ＢＳを選択した（すなわち、ＹＥＳ）と判定した場合、ステップＳ３を終了し、図３に示すステップＳ４へ進む。一方、プロセッサ５２は、既定位置ＢＳが選択されていない教示点Ｃｍが残存している（すなわち、ＮＯ）と判定した場合、ステップＳ１１へ戻る。
【００５１】
例えば、第１巡目のステップＳ１１〜Ｓ１５を実行した結果、図９に示すように、第１の教示点群Ｃ１〜Ｃ４に対して第２の既定位置Ｂ２を選択した場合、第ｍの教示点Ｃｍ（ｍ＝５、６、７、・・・）に関しては、既定位置ＢＳが選択されていない。よって、この場合、プロセッサ５２は、このステップＳ１６でＮＯと判定し、ステップＳ１１へ戻り、第２巡目のステップＳ１１〜Ｓ１６のループを実行する。
【００５２】
そして、第２巡目のステップＳ１２において、図５中のステップＳ２１を実行する場合、初期値γは、第１巡目のステップＳ１５で選択された既定位置ＢＳ_１（すなわち、第２の既定位置Ｂ２）に対応する第１の教示点群Ｃ１〜Ｃ４の次の教示点Ｃｍ（すなわち、第５の教示点Ｃ５）の番号に設定される（すなわち、γ＝５）。
【００５３】
そして、プロセッサ５２は、第ｍの教示点Ｃｍ（ｍ＝５、６、７、・・・）に関してステップＳ２２〜Ｓ２４を実行し、最も数Ｅｎが多くなる（すなわち、最大の数ＥＳとなる）ように、第２の教示点群に含まれる教示点Ｃｍの各々にロボット１２を配置することができる既定位置ＢＳ_２を、複数の既定位置Ｂｎの中から選択する。
【００５４】
こうして、プロセッサ５２は、第ｉ巡目（ｉ＝１、２、３、・・・）のステップＳ１１〜Ｓ１６のループを実行する毎に、第ｉの教示点群に含まれる教示点Ｃｍの各々にロボット１２を配置することができる既定位置ＢＳ_ｉを、順次選択していく。第ｉの教示点群は、少なくとも１つの教示点Ｃｍを含むことになる。
【００５５】
再度、図３を参照して、ステップＳ４において、プロセッサ５２は、動作プログラムを生成する。具体的には、オペレータは、走行装置１４によってスライダ３４（ロボット１２）を既定位置ＢＳ_ｉに配置した状態で、エンドエフェクタ２４の作業点を、第ｉの教示点群に含まれる教示点Ｃｍの各々に位置決めする動作を該ロボット１２に教示する作業を行う。
【００５６】
例えば、オペレータは、入力受付部５６を操作することで、上記した動作の教示を行うことができる。プロセッサ５２は、教示点Ｃｍ及び既定位置ＢＳ_ｉの位置情報と、教示の結果得られたロボット１２の位置データとに基づいて、動作プログラムを生成する。この動作プログラムは、走行装置１４がロボット１２を移動させつつ、該ロボット１２がエンドエフェクタ２４の作業点を第ｍの教示点Ｃｍに順に配置する動作を、ロボット１２及び走行装置１４に実行させるための指令を含む。
【００５７】
なお、プロセッサ５２は、図３に示すステップＳ３のフローを、シミュレーションソフト等を用いて実行してもよい。また、オペレータは、ステップＳ４におけるロボット１２の教示を、シミュレーションソフト等を用いて、いわゆるオフラインで行ってもよいし、又は、実機のロボット１２及び走行装置１４を用いて、いわゆるオンラインで行ってもよい。
【００５８】
以上に述べたように、本実施形態においては、プロセッサ５２は、教示点Ｃｍの位置情報に基づいて、記憶部５４に記憶された複数の既定位置Ｂｎの中から、ロボット１２のエンドエフェクタ２４を教示点Ｃｍに配置することができる既定位置ＢＳを自動で選択している。
【００５９】
この構成によれば、ロボット１２を教示点Ｃｍに配置するのに適した走行装置１４（具体的には、スライダ３４）の位置を、予め記憶された既定位置Ｂｎから迅速に決定することができる。これにより、教示作業に係る時間を短縮することができ、ロボットシステム１０の立ち上げを迅速に行うことができる。また、ロボットシステム１０の立ち上げ後に動作プログラムの修正が必要となった場合に、該修正を容易に行うことも可能となる。
【００６０】
また、本実施形態においては、プロセッサ５２は、複数の教示点群（第１の教示点群、第２の教示点群、・・・第ｉの教示点群）毎に、該教示点群に含まれる教示点Ｃｍの各々にロボット１２を配置することができる既定位置ＢＳ_ｉを、１つずつ選択している。この構成によれば、１つの既定位置ＢＳ_ｉで複数の教示点Ｃｍ（すなわち、第ｉの教示点群）にロボット１２のエンドエフェクタ２４を配置させることができるので、ロボットシステム１０の作業のサイクルタイムを縮減できる。
【００６１】
ここで、プロセッサ５２は、予め定めた条件に従って、教示点群毎に既定位置ＢＳ_ｉを選択している。一例として、予め定めた条件とは、選択する既定位置ＢＳ_ｉの数（つまり、ｉ）を最小とすることである。この条件に従って既定位置ＢＳ_ｉを選択する場合、プロセッサ５２は、上述のステップＳ２２において、第ｍの教示点Ｃｍがロボット１２の可動範囲Ｄ１内に在るか否かを判定する。
【００６２】
この場合、選択された各既定位置ＢＳ_ｉでロボット１２を配置可能な教示点Ｃｍの数が最大化されることになり、結果、選択する既定位置ＢＳ_ｉの総数を最小化することができる。よって、走行装置１４によってロボット１２を移動させる回数を最小化できるので、ロボットシステム１０の作業のサイクルタイムを、効果的に縮減できる。
【００６３】
他の例として、予め定めた条件とは、選択する既定位置ＢＳ_ｉの各々において、第ｉの教示点群が、ロボット１２に対して定めた所定範囲Ｄ２内に収まることである。この条件に従って既定位置ＢＳ_ｉを選択する場合、プロセッサ５２は、上述のステップＳ２２において、第ｍの教示点Ｃｍがロボット１２の所定範囲Ｄ２内に在るか否かを判定することになる。
【００６４】
この構成によれば、ロボット１２を、第ｉの教示点群に含まれる教示点Ｃｍの各々に対し、余裕のある姿勢で配置することができるとともに、１つの既定位置ＢＳ_ｉで複数の教示点Ｃｍに配置できるので、ロボットシステム１０の作業のサイクルタイムの縮減も図ることができる。
【００６５】
次に、図１０及び図１１を参照して、装置５０の他の機能について説明する。本実施形態においては、プロセッサ５２は、上述のステップＳ１２の代わりに、図１１に示すステップＳ１２’を実行する。具体的には、プロセッサ５２は、ステップＳ２２でＹＥＳと判定した後、ステップＳ３１において、ロボット１２の動作経路Ｇと環境物Ｆとが干渉するか否かを判定する。
【００６６】
ここで、互いに隣り合う２つの教示点Ｃｍ−１とＣｍとの間に、環境物Ｆ（周辺装置、柱等）が存在する場合がある。このような例を図１２に示す。図１２に示す例では、第３の教示点Ｃ３と第４の教示点Ｃ４との間に環境物Ｆが存在している。この場合、ロボット１２がエンドエフェクタ２４を第３の教示点Ｃ３から第４の教示点Ｃ４へ移動させるときの動作経路Ｇが環境物Ｆと干渉し、エンドエフェクタ２４を移動させることができない場合がある。
【００６７】
そこで、本実施形態においては、プロセッサ５２は、このステップＳ３１でロボット１２の動作経路Ｇと環境物Ｆとの干渉の有無を判定する。なお、プロセッサ５２は、このステップＳ３１の開始時点で、第ｍの教示点Ｃｍを特定する番号「ｍ」が、初期値γに設定されている場合（すなわち、第１巡目のステップＳ２２〜Ｓ２３のループを実行している場合）は、このステップＳ３１で自動的にＹＥＳと判定し、ステップＳ２３へ進む。
【００６８】
一方、プロセッサ５２は、このステップＳ３１の開始時点で番号「ｍ」が初期値γよりも大きい場合（すなわち、第２巡目以降のステップＳ２２〜Ｓ２３のループを実行している場合）は、このステップＳ３１で、ロボット１２の動作経路Ｇと環境物Ｆとが干渉するか否かを判定する。
【００６９】
具体的には、プロセッサ５２は、第ｍ−１の教示点Ｃｍ−１及び第ｍの教示点Ｃｍの位置情報に基づいて、第ｍ−１の教示点Ｃｍ−１から第ｍの教示点Ｃｍへの動作経路Ｇの、走行装置座標系ＣＤにおける座標（又は関数）を演算する。例えば、この動作経路Ｇは、教示点Ｃｍ−１及びＣｍを結ぶ直線として演算されてもよいし、又は、教示点Ｃｍ−１及びＣｍを結ぶ任意の曲線として演算されてもよい。
【００７０】
一方、環境物Ｆの走行装置座標系ＣＤにおける座標（又は関数）は、記憶部５４に予め記憶されている。プロセッサ５２は、走行装置座標系ＣＤにおける動作経路Ｇ及び環境物Ｆの座標（又は関数）に基づいて、動作経路Ｇと環境物Ｆとが干渉するか否かを判定することができる。
【００７１】
このように、本実施形態においては、プロセッサ５２は、動作経路Ｇと環境物Ｆとが干渉するか否かを判定する干渉判定部６４（図１０）として機能する。プロセッサ５２は、動作経路Ｇと環境物Ｆとが干渉する（すなわち、ＹＥＳ）と判定した場合、ステップＳ２４へ進む一方、動作経路Ｇと環境物Ｆとが干渉しない（すなわち、ＮＯ）と判定した場合、ステップＳ２３へ進む。
【００７２】
そして、プロセッサ５２は、ステップＳ２４において、動作経路Ｇが環境物Ｆと干渉しない一群の教示点Ｃｍの数Ｅｎを計算し、ステップＳ１５において、数Ｅｎが最大となる既定位置ＢＳ_ｉを選択する。このように、本実施形態においては、プロセッサ５２は、第ｉの教示点群に含まれる教示点Ｃｍにロボット１２を配置できる既定位置ＢＳ_ｉを、予め定めた条件に従って選択しており、該予め定めた条件は、ロボット１２が環境物Ｂと干渉することなく、第ｉの教示点群に含まれる教示点Ｃｍの各々に配置できることである。
【００７３】
この構成によれば、１つの既定位置ＢＳ_ｉで、環境物Ｂと干渉することなく、第ｉの教示点群に含まれる各教示点Ｃｍにロボット１２を配置できることから、ロボット１２と環境物Ｂとの干渉を確実に回避できるとともに、ロボットシステム１０の作業のサイクルタイムの縮減を図ることができる。
【００７４】
なお、図１１に示すフローにおいて、プロセッサ５２は、ステップＳ３１でＹＥＳと判定した場合に、ロボット１２が環境物Ｂを回避できる動作経路を検索してもよい。この場合において、プロセッサ５２は、ロボット１２が環境物Ｂを回避できる動作経路を見出すことができた場合は、ステップＳ２３へ進む一方、ロボット１２が環境物Ｂを回避できる動作経路を見出すことができなかった場合は、ステップＳ２４へ進んでもよい。
【００７５】
なお、上述した実施形態においては、装置５０が、ロボット１２及び走行装置１４を制御する制御装置に実装される場合について述べた。しかしながら、装置５０は、ロボット１２に動作を教示するための教示装置に実装されてもよい。このような形態を、図１３に示す。図１３に示すロボットシステム７０は、ロボット１２、走行装置１４、装置５０、及び制御装置７２を備える。
【００７６】
制御装置７２は、プロセッサ及び記憶部（ともに図示せず）を有し、ロボット１２及び走行装置１４を制御する。本実施形態においては、装置５０は、オペレータが把持可能な手持ち式教示装置（いわゆる、教示ペンダント）に実装され、制御装置７２に通信可能に接続されている。オペレータは、装置５０を把持して入力受付部５６を操作することで、図３に示す教示フローを実行することができる。
【００７７】
なお、上述の実施形態においては、既定位置Ｂｎの番号「ｎ」の初期値αが、α＝１に設定され、また、上限値βが、既定位置Ｂｎの総数に設定されている。この場合、プロセッサ５２は、ステップＳ３において、記憶部５４に記憶された全ての既定位置Ｂｎに関してステップＳ１２のプロセスを実行することになる。しかしながら、初期値α及び上限値βは、第ｉ巡目（ｉ＝１、２、３、・・・）のステップＳ１１〜Ｓ１６のループを実行する毎に変更してもよい。
【００７８】
一例として、初期値α及び上限値βは、第ｉ巡目のステップＳ１１〜Ｓ１６のループの実行時に、最初にステップＳ２２の判定対象となる第ｍの教示点Ｃｍ（すなわち、ｍ＝γである教示点Ｃｍ）から、所定の距離Ｈの範囲内にある既定位置Ｂｎのみを含むように、設定されてもよい。この距離Ｈは、ロボット座標系ＣＲの原点から、ロボット１２の可動範囲Ｄ１の最外縁（換言すれば、ロボット１２がエンドエフェクタ２４の作業点を配置可能な最遠位点）までの距離であってもよい。
【００７９】
具体的に述べると、例えば、第１巡目のステップＳ１１〜Ｓ１６のループを実行するとき、最初にステップＳ２２の判定対象となる教示点Ｃｍは、第１の教示点Ｃ１である（∵  γ＝１）。この場合において、第１の教示点Ｃ１から距離Ｈの範囲内にある既定位置Ｂｎが、第１の既定位置Ｂ１から第４の既定位置Ｂ４であるとすると、初期値αは、α＝１に設定され、上限値βは、β＝４に設定されることになる。これにより、ロボット１２を第１の教示点Ｃ１に配置不能な既定位置Ｂｎ（ｎ＝５、６、７、・・・）を、第１巡目のステップＳ１２のプロセスの対象から除外することができる。
【００８０】
このように、第ｉ巡目のステップＳ１１〜Ｓ１６のループを実行する毎に、初期値α及び上限値βを、所定の条件に従って適宜設定することにより、プロセッサ５２が実行する演算量を最適化し、プロセッサ５２の演算処理に係る負担を低減できる。また、ステップＳ３の実行に要する時間を短縮することもできる。
【００８１】
なお、上述の実施形態においては、複数の教示点Ｃｍが設定され、プロセッサ５２が、教示点群（第１の教示点群、第２の教示点群、・・・第ｉの教示点群）毎に既定位置ＢＳ_ｉを選択する場合について述べた。しかしながら、これに限らず、１つのみの教示点Ｃ１が設定されてもよい。この場合、装置５０から、上述の計算部６２及び干渉判定部６４を省略することもできる。
【００８２】
また、装置５０から入力受付部５６を省略することもできる。この場合において、オペレータは、装置５０とネットワーク（ＬＡＮ、インターネット等）を介して通信可能に接続された入力装置（ＰＣ、タブレット等）を用いて、遠隔操作により、既定位置Ｂｎ又は教示点Ｃｍを装置５０に入力してもよい。
【００８３】
また、記憶部５４は、必ずしも装置５０に内蔵されていなくてもよく、例えば、装置５０に外付けされる記憶装置（フラッシュメモリ、ＨＤＤ等）であってもよいし、又は、装置５０とネットワーク（ＬＡＮ、インターネット等）を介して通信可能に接続された外部機器（サーバ等）に内蔵されてもよい。
【００８４】
また、ロボット１２は、垂直多関節ロボットに限らず、水平多関節ロボット、パラレルリンクロボット等、如何なるタイプのロボットであってもよい。また、走行軸Ａは、直線に限らず、円弧、又は任意の曲線であってもよい。例えば、走行装置１４は、スライダ３４（又は、ロボット１２）を、所定の中心軸周りに回動させるように構成されてもよい。この場合において、所定の中心軸は、スライダ３４の中心、又は、ロボット座標系ＣＲの原点を通過する（ロボット座標系ＣＲのｚ軸と一致する）ように、配置されてもよい。
【００８５】
以上、実施形態を通じて本開示を説明したが、上述の実施形態は、特許請求の範囲に係る発明を限定するものではない。
【符号の説明】
【００８６】
１０，７０    ロボットシステム
１２    ロボット
１４    走行装置
５０    装置
５２    プロセッサ
５４    記憶部
５６    入力受付部
６０    位置選択部
６２    計算部
６４    干渉判定部
【図１】
2020192621.tif 000003
【図２】
2020192621.tif 000004
【図３】
2020192621.tif 000005
【図４】
2020192621.tif 000006
【図５】
2020192621.tif 000007
【図６】
2020192621.tif 000008
【図７】
2020192621.tif 000009
【図８】
2020192621.tif 000010
【図９】
2020192621.tif 000011
【図１０】
2020192621.tif 000012
【図１１】
2020192621.tif 000013
【図１２】
2020192621.tif 000014
【図１３】
2020192621.tif 000015