IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社安川電機の特許一覧

特許7474681プログラム生成システム、ロボットシステム、プログラム生成方法、および生成プログラム
<>
  • 特許-プログラム生成システム、ロボットシステム、プログラム生成方法、および生成プログラム 図1
  • 特許-プログラム生成システム、ロボットシステム、プログラム生成方法、および生成プログラム 図2
  • 特許-プログラム生成システム、ロボットシステム、プログラム生成方法、および生成プログラム 図3
  • 特許-プログラム生成システム、ロボットシステム、プログラム生成方法、および生成プログラム 図4
  • 特許-プログラム生成システム、ロボットシステム、プログラム生成方法、および生成プログラム 図5
  • 特許-プログラム生成システム、ロボットシステム、プログラム生成方法、および生成プログラム 図6
  • 特許-プログラム生成システム、ロボットシステム、プログラム生成方法、および生成プログラム 図7
  • 特許-プログラム生成システム、ロボットシステム、プログラム生成方法、および生成プログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-17
(45)【発行日】2024-04-25
(54)【発明の名称】プログラム生成システム、ロボットシステム、プログラム生成方法、および生成プログラム
(51)【国際特許分類】
   B25J 9/22 20060101AFI20240418BHJP
   G05B 19/4093 20060101ALI20240418BHJP
【FI】
B25J9/22 A
G05B19/4093 D
G05B19/4093 E
【請求項の数】 14
(21)【出願番号】P 2020187406
(22)【出願日】2020-11-10
(65)【公開番号】P2022076814
(43)【公開日】2022-05-20
【審査請求日】2023-06-15
【新規性喪失の例外の表示】特許法第30条第2項適用 販売日 2020年3月1日 販売した場所 株式会社安川電機(福岡県北九州市八幡西区黒崎城石2番1号)
(73)【特許権者】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】100088155
【弁理士】
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100145012
【弁理士】
【氏名又は名称】石坂 泰紀
(74)【代理人】
【識別番号】100171099
【弁理士】
【氏名又は名称】松尾 茂樹
(74)【代理人】
【識別番号】100144440
【弁理士】
【氏名又は名称】保坂 一之
(72)【発明者】
【氏名】高橋 誠
(72)【発明者】
【氏名】渡邉 航
(72)【発明者】
【氏名】内田 雄太郎
(72)【発明者】
【氏名】株丹 亮
【審査官】松浦 陽
(56)【参考文献】
【文献】特開平06-059713(JP,A)
【文献】特開平05-324049(JP,A)
【文献】特開2020-175471(JP,A)
【文献】特開2019-084664(JP,A)
【文献】国際公開第2018/092860(WO,A1)
【文献】特開2019-214084(JP,A)
【文献】特開2014-180705(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
G05B 19/18 - 19/416
G05B 19/42 - 19/46
(57)【特許請求の範囲】
【請求項1】
タスクにおけるロボットの軌道である作業パスと、タスク間をつなぐ前記ロボットの軌道であるエアカットパスとの間の接続域における前記ロボットの複数通りの候補姿勢を設定する設定部と、
前記接続域における前記ロボットの姿勢を前記複数通りの候補姿勢の中で変更しながら、前記作業パスおよび前記エアカットパスを含む動作プログラムを評価する評価部と、
前記評価部による評価結果に基づいて、前記複数通りの候補姿勢のうちの一つを前記接続域における前記ロボットの姿勢として決定し、前記動作プログラムを生成する生成部と、
を備えるプログラム生成システム。
【請求項2】
前記設定部は、追加されたそれぞれの候補姿勢において前記ロボットが実行可能か否かを判定して、前記ロボットが実行不可能な前記候補姿勢を破棄し、
前記評価部は、前記接続域における前記ロボットの姿勢を、前記ロボットが実行可能な前記複数通りの候補姿勢の中で変更しながら、前記動作プログラムを評価する、
請求項1に記載のプログラム生成システム。
【請求項3】
前記設定部は、複数の前記タスクに対応する複数の前記接続域のそれぞれについて、前記複数通りの候補姿勢を設定し、
前記評価部は、前記複数の接続域のそれぞれについて、該接続域における前記ロボットの姿勢を前記複数通りの候補姿勢の中で変更しながら、前記動作プログラムを評価し、
前記生成部は、前記複数の接続域のそれぞれについて、前記複数通りの候補姿勢のうちの一つを該接続域における前記ロボットの姿勢として決定する、
請求項1または2に記載のプログラム生成システム。
【請求項4】
前記設定部は、前記ロボットが前記タスクにアプローチする前記接続域であるアプローチ域における前記ロボットの複数通りの候補アプローチ姿勢と、前記ロボットが該タスクから退避する前記接続域である退避域における前記ロボットの複数通りの候補退避姿勢とを、前記複数通りの候補姿勢として設定し、
前記生成部は、アプローチ姿勢および退避姿勢の組合せを前記ロボットの姿勢として決定する、
請求項1~3のいずれか一項に記載のプログラム生成システム。
【請求項5】
前記評価部は、前記複数通りの候補アプローチ姿勢と前記複数通りの候補退避姿勢との複数の組合せについて前記動作プログラムを評価する、
請求項4に記載のプログラム生成システム。
【請求項6】
前記生成部は、前記ロボットの動作時間に基づいて、前記複数通りの候補姿勢のうちの一つを、前記接続域における前記ロボットの姿勢として決定する、
請求項1~5のいずれか一項に記載のプログラム生成システム。
【請求項7】
前記評価部は、前記接続域における前記ロボットの姿勢を前記複数通りの候補姿勢の中で変更しながら、仮想空間上で仮想的に前記動作プログラムを繰り返し実行して、前記動作プログラムを評価する、
請求項1~6のいずれか一項に記載のプログラム生成システム。
【請求項8】
前記接続域における前記ロボットの教示姿勢を取得する取得部をさらに備え、
前記設定部は、前記教示姿勢を基準とする物理的範囲内で前記複数通りの候補姿勢を設定する、
請求項1~7のいずれか一項に記載のプログラム生成システム。
【請求項9】
前記設定部は、前記複数通りの候補姿勢の設定として、前記教示姿勢を基準として所与のステップ幅毎に前記候補姿勢を追加する、
請求項8に記載のプログラム生成システム。
【請求項10】
前記設定部は、前記複数通りの候補姿勢の設定として、前記教示姿勢を挟むように2以上の前記候補姿勢を追加する、
請求項8または9に記載のプログラム生成システム。
【請求項11】
前記設定部は、前記ロボットによって処理されるワークの被処理面と交差する基準軸の周りの1自由度に沿って前記複数通りの候補姿勢を設定する、
請求項1~10のいずれか一項に記載のプログラム生成システム。
【請求項12】
ロボットと、
請求項1~11のいずれか一項に記載のプログラム生成システムと、
前記生成された動作プログラムに基づいて前記ロボットを動作させるロボットコントローラと、
を備えるロボットシステム。
【請求項13】
少なくとも一つのプロセッサを備えるプログラム生成システムにより実行されるプログラム生成方法であって、
タスクにおけるロボットの軌道である作業パスと、タスク間をつなぐ前記ロボットの軌道であるエアカットパスとの間の接続域における前記ロボットの複数通りの候補姿勢を設定する設定ステップと、
前記接続域における前記ロボットの姿勢を前記複数通りの候補姿勢の中で変更しながら、前記作業パスおよび前記エアカットパスを含む動作プログラムを評価する評価ステップと、
前記評価ステップにおける評価結果に基づいて、前記複数通りの候補姿勢のうちの一つを前記接続域における前記ロボットの姿勢として決定し、前記動作プログラムを生成する生成ステップと、
を含むプログラム生成方法。
【請求項14】
タスクにおけるロボットの軌道である作業パスと、タスク間をつなぐ前記ロボットの軌道であるエアカットパスとの間の接続域における前記ロボットの複数通りの候補姿勢を設定する設定ステップと、
前記接続域における前記ロボットの姿勢を前記複数通りの候補姿勢の中で変更しながら、前記作業パスおよび前記エアカットパスを含む動作プログラムを評価する評価ステップと、
前記評価ステップにおける評価結果に基づいて、前記複数通りの候補姿勢のうちの一つを前記接続域における前記ロボットの姿勢として決定し、前記動作プログラムを生成する生成ステップと、
をコンピュータに実行させる生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の一側面はプログラム生成システム、ロボットシステム、プログラム生成方法、および生成プログラムに関する。
【背景技術】
【0002】
特許文献1には、データセットに基づく機械学習プロセスの結果に基づいて、任意に設定された始点と終点との間のロボッ卜のパスを生成するロボッ卜パス生成装置が記載されている。
【先行技術文献】
【特許文献】
【0003】
【文献】国際公開第2018/143003号
【発明の概要】
【発明が解決しようとする課題】
【0004】
ロボット制御のプランニングを適切に実行することが望まれている。
【課題を解決するための手段】
【0005】
本開示の一側面に係るプログラム生成システムは、タスクにおけるロボットの軌道である作業パスと、タスク間をつなぐロボットの軌道であるエアカットパスとの間の接続域におけるロボットの複数通りの候補姿勢を設定する設定部と、接続域におけるロボットの姿勢を複数通りの候補姿勢の中で変更しながら、作業パスおよびエアカットパスを含む動作プログラムを評価する評価部と、評価部による評価結果に基づいて、複数通りの候補姿勢のうちの一つを接続域におけるロボットの姿勢として決定し、動作プログラムを生成する生成部とを備える。
【0006】
本開示の一側面に係るプログラム生成方法は、少なくとも一つのプロセッサを備えるプログラム生成システムにより実行されるプログラム生成方法であって、タスクにおけるロボットの軌道である作業パスと、タスク間をつなぐロボットの軌道であるエアカットパスとの間の接続域におけるロボットの複数通りの候補姿勢を設定する設定ステップと、接続域におけるロボットの姿勢を複数通りの候補姿勢の中で変更しながら、作業パスおよびエアカットパスを含む動作プログラムを評価する評価ステップと、評価ステップにおける評価結果に基づいて、複数通りの候補姿勢のうちの一つを接続域におけるロボットの姿勢として決定し、動作プログラムを生成する生成ステップとを含む。
【0007】
本開示の一側面に係る生成プログラムは、タスクにおけるロボットの軌道である作業パスと、タスク間をつなぐロボットの軌道であるエアカットパスとの間の接続域におけるロボットの複数通りの候補姿勢を設定する設定ステップと、接続域におけるロボットの姿勢を複数通りの候補姿勢の中で変更しながら、作業パスおよびエアカットパスを含む動作プログラムを評価する評価ステップと、評価ステップにおける評価結果に基づいて、複数通りの候補姿勢のうちの一つを接続域におけるロボットの姿勢として決定し、動作プログラムを生成する生成ステップとをコンピュータに実行させる。
【0008】
本開示の一側面に係るロボットシステムは、ロボットと、上記のプログラム生成システムと、生成された動作プログラムに基づいてロボットを動作させるロボットコントローラとを備える。
【発明の効果】
【0009】
本開示の一側面によれば、ロボット制御のプランニングを適切に実行できる。
【図面の簡単な説明】
【0010】
図1】ロボットシステムの構成の一例を示す図である。
図2】プログラミング支援装置のハードウェア構成の一例を示す図である。
図3】プログラミング支援装置の機能構成の一例を示す図である。
図4】プログラミング支援装置の動作の一例を示すフローチャートである。
図5】ワークに対するロボットの処理の一例を示す図である。
図6】候補姿勢の設定の一例を示す図である。
図7】動作プログラムの生成の具体例を示す図である。
図8】動作プログラムの生成の具体例を示す図である。
【発明を実施するための形態】
【0011】
以下、添付図面を参照しながら本開示での実施形態を詳細に説明する。図面の説明において同一または同等の要素には同一の符号を付し、重複する説明を省略する。
【0012】
[ロボットシステム]
本実施形態では、本開示に係るプログラム生成システムをロボットシステム1のプログラミング支援装置4に適用する。ロボットシステム1は、オペレータにより教示された動作をロボットに実行させることにより、加工、組立などの様々な作業を自動化するシステムである。図1はロボットシステム1の構成の一例を示す図である。一例では、ロボットシステム1は、1以上のロボット2と、1以上のロボット2に対応する1以上のロボットコントローラ3と、プログラミング支援装置4とを備える。図1は3台のロボット2および3台のロボットコントローラ3を示し、一つのロボットコントローラ3に一つのロボット2が接続される構成を示す。しかし、各装置の台数も接続方法も図1の例に限定されない。例えば、一つのロボットコントローラ3に複数台のロボット2が接続されてもよい。
【0013】
一例では、ロボット2は多軸のシリアルリンク型の垂直多関節ロボットであり、その先端部5にツールを保持した状態で様々な処理を実行できるように構成される。ロボット2は、所定の範囲内において先端部5の位置および姿勢を自在に変更し得る。ロボット2は、6軸の垂直多関節ロボットでもよいし、6軸に1軸の冗長軸を追加した7軸の垂直多関節ロボットでもよい。一例では、複数台のロボット2は、同一の位置に配置された同一のワークに対し、いずれのロボット2によっても同一の処理を実行し得るように配置される。
【0014】
ロボットコントローラ3は、予め生成された動作プログラムに従ってロボット2を制御する装置である。一例では、動作プログラムはロボット2を制御するためのデータを含み、例えば、ロボット2の軌道を示すパスを含む。ロボット2の軌道とは、ロボット2またはその構成要素の動きの経路をいう。例えば、ロボット2の軌道は先端部5の軌道であり得る。一例では、ロボットコントローラ3は、動作プログラムで示される目標値に先端部5の位置および姿勢を一致させるための関節角度目標値(ロボット2の各関節の角度目標値)を算出し、その角度目標値に従ってロボット2を制御する。
【0015】
ロボットコントローラ3の制御によってロボット2は一連の処理を実行する。本開示ではその一連の処理をジョブともいう。また、そのジョブを構成する最小単位の処理をタスクという。したがって、ジョブは1以上のタスクを含む。ロボット2は「部品を取る」、「部品を置く」、「部品を(ワークに)嵌合する」、「待機姿勢を取る」などの様々なタスクを実行し得る。一つのタスクは、該タスクにおけるロボット2の軌道である作業パスを含み得る。一例では、この作業パスはタスクを生成する際にユーザ入力に基づいて設定される。すなわち、作業パスは人手により設定される。
【0016】
一例では、ロボット2は、自走可能な移動ロボットであってもよい。この場合には、ロボット2は処理の開始に先立って、動作プログラムに従って作業空間内を移動して所与の位置に移動し得る。例えば、ロボット2は他の物体を避けながら自走することが可能である。このロボット2は、動作プログラムで示される配置において、該動作プログラムで示されるジョブ(すなわち、少なくとも一つのタスク)を繰り返し実行し得る。
【0017】
動作プログラムは、タスク間をつなぐロボット2の軌道を示すパスを含む。このパスは、先行するタスクにおける作業パスの終点と、後続のタスクにおける作業パスの始点とを結ぶ。本開示では、作業パスと区別するために、タスク間のパスを「エアカットパス」ともいう。一例では、エアカットパスは、例えば始点および終点以外の少なくとも一つの教示点が設定されることによって、自動的に設定される。教示点とは、パスを規定するために設定される基準点をいう。
【0018】
プログラミング支援装置4は動作プログラムを生成する装置である。例えば、プログラミング支援装置4は、1以上のロボット2のそれぞれについて、該ロボット2により実行されるジョブを示す動作プログラムを生成する。一例では、プログラミング支援装置4は、エアカットパス、ある時点におけるロボット2の姿勢などのような、ジョブの少なくとも一部の構成要素を評価する。そして、プログラミング支援装置4はその評価結果に基づいて動作プログラムを生成する。プログラミング支援装置4はシミュレーションを実行してその評価を実行してもよい。シミュレーションとは動作プログラムの少なくとも一部を仮想的に実行する処理をいう。より詳しくいうと、シミュレーションは、ロボット2を実際に作動させることなく動作プログラムの少なくとも一部をコンピュータ上で模擬的に実行することをいう。一例では、シミュレーションは、ロボット2および他の物体が配置された仮想空間上で動作プログラムの少なくとも一部を仮想的に実行する処理である。他の物体とは、ロボット2の周辺に配置された物体であり、例えば、他のロボット2、ワーク、他の製造装置などであり得る。
【0019】
[プログラミング支援装置]
図2はプログラミング支援装置4のハードウェア構成の一例を示す図である。プログラミング支援装置4は本体10、モニタ20、および入力デバイス30を備える。
【0020】
本体10は少なくとも一つのコンピュータにより構成される。本体10は回路160を有し、回路160は、少なくとも一つのプロセッサ161と、メモリ162と、ストレージ163と、入出力ポート164とを有する。ストレージ163は、本体10の各機能モジュールを構成するためのプログラムを記録する。ストレージ163は、ハードディスク、不揮発性の半導体メモリ、磁気ディスク、光ディスク等の、コンピュータ読み取り可能な記録媒体である。メモリ162は、ストレージ163からロードされたプログラム、プロセッサ161の演算結果等を一時的に記憶する。プロセッサ161は、メモリ162と協働してプログラムを実行することで、各機能モジュールを構成する。入出力ポート164は、プロセッサ161からの指令に応じ、モニタ20、入力デバイス30、およびロボットコントローラ3の間で電気信号の入出力を行う。
【0021】
モニタ20は、本体10から出力された情報を表示するための装置である。モニタ20は、グラフィック表示が可能であればいかなるものであってもよく、その具体例としては液晶パネル等が挙げられる。入力デバイス30は、本体10に情報を入力するための装置である。入力デバイス30は、所望の情報を入力可能であればいかなるものであってもよく、その具体例としてはキーパッド、マウス等が挙げられる。
【0022】
モニタ20および入力デバイス30はタッチパネルとして一体化されていてもよい。例えばタブレットコンピュータのように、本体10、モニタ20、および入力デバイス30が一体化されていてもよい。
【0023】
図3はプログラミング支援装置4の機能構成の一例を示す図である。一例では、プログラミング支援装置4は機能モジュールとして取得部101、設定部102、評価部103、生成部104、および出力部105を備える。取得部101は動作プログラムを生成するために必要なデータを取得する機能モジュールである。設定部102は、作業パスとエアカットパスとの間の接続域におけるロボットの複数通りの候補姿勢を設定する機能モジュールである。候補姿勢とは、ロボットの姿勢を最終的に決めるための選択肢として用意される姿勢をいう。評価部103は、接続域におけるロボットの姿勢を複数通りの候補姿勢の中で変更しながら、作業パスおよびエアカットパスを含む動作プログラムを評価する機能モジュールである。生成部104は、評価部103による評価結果に基づいて、複数通りの候補姿勢のうちの一つを接続域におけるロボットの姿勢として決定し、動作プログラムを生成する機能モジュールである。この動作プログラムは、その決定されたロボットの姿勢を示す。出力部105は生成された動作プログラムを出力する機能モジュールである。
【0024】
接続域とは、作業パスとエアカットパスとが接続される物理的位置を包含する限定された物理的範囲をいう。端的にいうと、接続域とは作業パスとエアカットパスとの接続点の周辺の範囲をいう。接続域についてはアプローチ域と退避域という2種類が存在する。アプローチ域とは、或るエアカットパスの終点と、そのエアカットパスに接続する作業パスの始点とがつながる位置を包含する物理的範囲をいう。要するに、アプローチ域はロボット2がタスクにアプローチする接続域であり、言い換えると、ロボット2がエアカットパスから後続の作業パスに入る接続域である。退避域とは、或る作業パスの終点と、その作業パスに接続するエアカットパスの始点とがつながる位置を包含する物理的範囲をいう。要するに、退避域はロボット2がタスクから退避する接続域であり、言い換えると、ロボット2が作業パスから後続のエアカットパスに入る接続域である。本開示では、アプローチ域における候補姿勢を「候補アプローチ姿勢」ともいい、退避域における候補姿勢を「候補退避姿勢」ともいう。一例では、設定部102は、或るタスクに対応するアプローチ域における複数通りの候補アプローチ姿勢と、該タスクに対応する退避域における複数通りの候補退避姿勢とを設定する。
【0025】
[プログラム生成方法]
本開示に係るプログラム生成方法の一例として、図4図6を参照しながら、プログラミング支援装置4により実行される一連の処理手順の一例を説明する。図4はプログラミング支援装置4の動作の一例を処理フローS1として示すフローチャートである。すなわち、プログラミング支援装置4は処理フローS1を実行する。図5はワークに対するロボット2の処理の一例を示す図である。図6は候補姿勢の設定の一例を示す図である。
【0026】
ステップS11では、取得部101が、動作プログラムを生成するために必要な教示データを取得する。この教示データはロボット2にジョブを実行させるために必要な情報を含む電子データであり、例えば、ロボット2の動作に関する制約を示す。その制約の例として、ロボット2の配置、複数のタスクの順序、ロボット2とタスクとの対応関係、およびインターロックが挙げられる。インターロックとは、所与の条件が整って初めて次の動作を実行させるための仕組みのことをいう。教示データは、個々のロボット2について個別に設定される事項と、1以上のロボット2について共通に設定される事項とのうちの少なくとも一つを含んでよい。一例では、教示データは少なくとも一つの作業パスと、少なくとも一つの接続域のそれぞれにおけるロボット2の教示姿勢とを示す。作業パスおよび教示姿勢も制約の一例である。教示姿勢とは人手により設定されたロボット2の姿勢をいう。一例では、ジョブは複数の接続域を含み、これに対応して、教示データは複数の接続域のそれぞれにおけるロボット2の教示姿勢を示す。教示データを取得するために様々な手法が用いられてよい。例えば、取得部101はユーザにより入力された教示データを受け付けてもよいし、ユーザ入力に基づいて所与の記憶装置から教示データを読み出してもよいし、他のコンピュータから送られてきた教示データを受信してもよい。
【0027】
図5を参照しながら教示データの一例を説明する。図5の例では、ロボット2はワーク200の被処理面上の8箇所を、先端部5に取り付けられた溶接ガンを用いて溶接する。溶接ガンはツールの一例である。図5ではその8箇所を溶接点201~208として表す。ロボット2はまず溶接点201~205を処理し、その後に溶接点206~208を処理するものとする。この例では、教示データはその溶接のための二つの作業パス301,302を示す。作業パス301は溶接点201,202,203,204,205をこの順に溶接するタスクに対応する。作業パス302は溶接点206,207,208をこの順に溶接するタスクに対応する。プログラミング支援装置4は作業パス301の始点に接続するエアカットパス310と、作業パス301と作業パス302とを接続するエアカットパス311と、作業パス302の終点に接続するエアカットパス312とを自動的に生成する。ロボット2の軌道は、エアカットパス310、作業パス301、エアカットパス311、作業パス302、およびエアカットパス312をこの順に通る。教示データはアプローチ域321、退避域322、アプローチ域323、および退避域324のそれぞれにおけるロボット2の教示姿勢を示す。
【0028】
図4に戻って、ステップS12では、設定部102が個々の接続域について、候補姿勢を設定し得る物理的範囲を候補範囲として設定する。一例では、設定部102は教示姿勢を基準とする候補範囲を設定する。設定部102は教示姿勢から所与の距離内の範囲を候補範囲として設定してもよい。あるいは、設定部102は教示姿勢に対して回転中心を設定し、その回転中心の周りの所与の角度内の範囲を候補範囲として設定してもよい。図5の例では、設定部102はアプローチ域321、退避域322、アプローチ域323、および退避域324について候補範囲を設定する。
【0029】
ステップS13では、設定部102が個々の接続域について複数通りの候補姿勢を設定する。設定部102は教示姿勢とは異なる少なくとも一つの姿勢を候補姿勢として追加することで、複数通りの候補姿勢を設定する。一例では、教示姿勢は複数通りの候補姿勢のうちの一つである。例えば、設定部102は候補範囲内で複数通りの候補姿勢を設定する。設定部102は或る一つの接続域において、教示姿勢を基準として所与のステップ幅毎に候補姿勢を追加してもよい。すなわち、設定部102は複数の候補姿勢を離散的に設定してもよい。ステップ幅は隣接する二つの候補姿勢の間隔を示し、例えば距離または角度によって定義される。設定部102は教示姿勢を挟むように2以上の候補姿勢を追加してもよい。この場合には、教示姿勢を始点とする第1方向において少なくとも一つの候補姿勢が設定され、教示姿勢を始点とし且つ該第1方向とは反対である第2方向において少なくとも一つの候補姿勢が設定される。
【0030】
図6を参照しながら候補姿勢の設定の一例を説明する。図6の例では、設定部102は、ロボット2の先端部5に取り付けられたツール(例えば溶接ガン)に設定された座標系のZ軸の周りの1自由度に沿って複数通りの候補姿勢を設定する。Z軸は、ロボット2によって処理されるワークの被処理面と交差する基準軸410の一例である。例えば、基準軸410はワークの被処理面と直交する。この例では、設定部102は取得された教示姿勢401に応答して候補姿勢421~426を追加して、計7個の候補姿勢を設定する。図6では個々の候補姿勢を実線で模擬的に示す。設定部102は教示姿勢401から第1方向(時計回りの方向)411に向かって所与のステップ幅(例えば15°)毎に候補姿勢421,422,423を追加する。さらに、設定部102は教示姿勢401から第2方向(反時計回りの方向)412に向かって所与のステップ幅(例えば15°)毎に候補姿勢424,425,426を追加する。候補姿勢423,426は候補範囲の外縁に位置してもよいし、候補範囲の外縁よりも内側に位置してもよい。教示姿勢401は候補姿勢421~423と候補姿勢424~426との間に挟まれる。
【0031】
図4に戻って、ステップS14では、設定部102が個々の接続域について、ロボット2が実行不可能な候補姿勢を破棄し、ロボット2が実行可能な候補姿勢を抽出する。本開示において、「ロボットが実行不可能な姿勢」とは、ロボットが取り得ない姿勢、またはロボットの動作に支障を来たす姿勢をいう。「ロボットが実行可能な姿勢」とは、ロボットが取ることができ、且つロボットの動作に支障を来たさない姿勢をいう。一例では、設定部102は、追加されたそれぞれの候補姿勢について、ロボット2がその候補姿勢を実行可能か否かを判定する。設定部102は、或る候補姿勢をロボット2が実行できないと判定した場合にはその候補姿勢を破棄し、その候補姿勢をロボット2が実行できると判定した場合にはその候補姿勢を残す。設定部102はその処理によって、ロボットが実行可能な候補姿勢を抽出する。プログラミング支援装置4は、破棄された候補姿勢について後続の処理を実行することなく、抽出された候補姿勢について該後続の処理を実行する。
【0032】
一例では、ロボット2が実行不可能な姿勢とは、ロボット2が取り得ない姿勢であり、ロボット2が実行可能な姿勢とは、ロボット2が取り得る姿勢である。一例では、設定部102はロボット2の構造、可動域などを示す所与の仕様データを参照して、追加されたそれぞれの候補姿勢においてロボット2がその姿勢を取ることができるか否かを判定する。本開示ではこの判定を「単一姿勢の判定」ともいう。
【0033】
あるいは、ロボット2が実行不可能な姿勢とは、ロボット2が他の物体に干渉する姿勢であり、ロボット2が実行可能な姿勢とは、その干渉が発生しない姿勢である。本開示において、干渉とは物体同士が接触または衝突することをいい、例えば、ロボット2が他の物体に接触または衝突することをいう。一例では、設定部102は追加されたそれぞれの候補姿勢においてロボット2が他の物体と干渉するか否かを判定する。設定部102は候補姿勢を取っているロボット2の物理的範囲と他の物体の物理的範囲とを比較して、その二つの物理的範囲が重なるか否かを判定する。この重なりが干渉を意味する。本開示ではこの判定を「干渉の判定」ともいう。
【0034】
あるいは、ロボット2が実行不可能な姿勢とは、ロボット2の前後の姿勢との連続性が無い姿勢であり、ロボット2が実行可能な姿勢とはその連続性が保たれる姿勢をいう。姿勢の連続性とは、ロボット2の姿勢が或る状態から次の状態へと遷移できることをいう。連続性が無い姿勢とは、前の姿勢および後の姿勢のうちの少なくとも一方との間で移り変わることができない姿勢である。すなわち、連続性が無い姿勢とは特異点である。一例では、設定部102はロボット2の所与の仕様データを参照して、追加されたそれぞれの候補姿勢において、該候補姿勢とその前後の姿勢とを含む一連の動作をロボット2が実行できるか否かを判定する。本開示ではこの判定を「連続性の判定」ともいう。
【0035】
設定部102は、単一姿勢の判定、干渉の判定、および連続性の判定から選択される任意の2以上の組合せを用いて候補姿勢を破棄または抽出してもよい。一例として、単一姿勢の判定、干渉の判定、および連続性の判定のすべてが用いられるとする。その場合、設定部102は、ロボット2が取ることができない姿勢と、ロボット2と他の物体との間で干渉が発生する姿勢と、前後の姿勢との連続性が無い姿勢とを破棄する。そして、設定部102は、ロボット2が取ることができ、干渉が発生せず、且つロボット2の前後の姿勢との連続性が保たれる候補姿勢を抽出する。
【0036】
ステップS15では、評価部103が個々のエアカット域について、抽出された候補姿勢に基づいて少なくとも一つの候補パスを自動的に生成し、それぞれの候補パスについてロボット2の動作時間を算出する。本開示において、エアカット域とはエアカットパスが設定される物理的範囲をいう。候補パスとは、エアカットパスの候補となるパスをいう。一例では、評価部103はロボット2と他の物体との干渉を回避するように個々の候補パスを生成する。例えば、評価部103は或る一つの候補パスを生成するために、先行するタスクにおける作業パスの終点と、後続のタスクにおける作業パスの始点との間で、ロボット2と他の物体との干渉を回避するための1以上の経由点を生成する。そして、評価部103はその1以上の経由点を順に通るように候補パスを生成する。評価部103は一つの候補パスを生成するために、経由点の設定と干渉の回避の確認とを含む一連の処理を繰り返し実行し得る。このような生成手法の詳細は、例えば特許第4103057号公報に記載されている。
【0037】
一例として、第1作業パスの終点と第2作業パスの始点の間のエアカット域における処理を説明する。第1作業パスの終点に対応する退避域おいてm個の候補退避姿勢が抽出され、第2作業パスの始点に対応するアプローチ域おいてn個の候補アプローチ姿勢が抽出されたとする。この場合、評価部103はm×n個の候補パスを自動的に生成してよい。評価部103はそれぞれの候補パスについてロボット2の動作時間を算出する。動作時間とはロボット2が所与の動作を行うのに要する時間をいう。候補パスについての動作時間とは、候補パスの始点から終点までのロボット2の所要時間である。評価部103は第1作業パスの終点から第2作業パスの始点までの最短距離、すなわち、当該2点を結ぶ直線でのロボット2の移動時間を最短時間として取得し、その最短時間からの増分を動作時間として算出してもよい。あるいは、評価部103は候補パスにおけるロボット2の所要時間そのものを動作時間として算出してもよい。評価部103はシミュレーションを実行することによって個々の候補パスの動作時間を推定してもよい。すなわち、評価部103は、接続域におけるロボット2の姿勢を複数通りの候補姿勢の中で変更しながら、仮想空間上で仮想的に動作プログラムを繰り返し実行して、該動作プログラムを評価してもよい。あるいは、評価部103はそれぞれの候補パスについて、該候補パスの長さとロボット2の動作速度とに基づく関数によって動作時間を算出してもよい。
【0038】
一例として、第1作業パスの終点に対応する退避域Zrにおいて候補退避姿勢Pr,Prが抽出され、第2作業パスの始点に対応するアプローチ域Zaにおいて候補アプローチ姿勢Pa、Paが抽出されたとする。この場合、評価部103は候補退避姿勢Prと候補アプローチ姿勢Paとを結ぶ候補パスRと、候補退避姿勢Prと候補アプローチ姿勢Paとを結ぶ候補パスRと、候補退避姿勢Prと候補アプローチ姿勢Paとを結ぶ候補パスRと、候補退避姿勢Prと候補アプローチ姿勢Paとを結ぶ候補パスRとを生成する。そして、評価部103は候補パスR,R,R,Rのそれぞれについてロボット2の動作時間を算出する。この処理は、退避域Zrにおけるロボット2の姿勢を2通りの候補姿勢の中で変更し、且つアプローチ域Zaにおけるロボット2の姿勢を2通りの候補姿勢の中で変更しながら、動作プログラムを評価する処理である。
【0039】
ステップS15で示すように、評価部103は動作プログラムの評価の一例として、ロボット2の動作時間を算出してもよい。ステップS14において抽出された候補姿勢とは、ロボット2が実行可能な候補姿勢である。したがって、ステップS15は、接続域におけるロボット2の姿勢を、ロボット2が実行可能な複数通りの候補姿勢の中で変更しながら、動作プログラムを評価する処理の一例である。評価部103は複数通りの候補アプローチ姿勢と複数通りの候補退避姿勢との複数の組合せについて動作プログラムを評価してよい。候補パスは候補アプローチ姿勢と候補退避姿勢との組合せの一例である。複数の候補パスのそれぞれについてロボット2の動作時間を算出する処理は、複数通りの候補アプローチ姿勢と複数通りの候補退避姿勢との複数の組合せについて動作プログラムを評価することの一例である。
【0040】
一例では、評価部103は候補アプローチ姿勢からタスクを開始するための姿勢に移る動作と、タスクを終了した姿勢から候補退避姿勢に移る動作とのそれぞれについて動作時間を算出してもよい。本開示では、候補アプローチ姿勢からタスクを開始するための姿勢に移る動作を「アプローチ動作」ともいう。また、タスクを終了した姿勢から候補退避姿勢に移る動作を「退避動作」ともいう。一例では、評価部103は、或る候補パスの始点に対応する退避動作の開始から、該候補パスの終点に対応するアプローチ動作の終了までの時間を、該候補パスにおけるロボット2の動作時間として算出してもよい。アプローチ動作および退避動作の少なくとも一方の時間が延びたとしても、候補パス全体としての動作時間が短くなれば、その候補パスに対応するアプローチ姿勢および退避姿勢は効率的な姿勢であるといえる。
【0041】
ステップS16では、生成部104が個々のエアカット域について、動作時間が最短である候補パスをエアカットパスとして選択し、該エアカットパスに対応する候補姿勢を選択する。評価部103はそれぞれのエアカット域について、動作時間が最短であるエアカットパスの始点に対応する一つの候補退避姿勢と、該エアカットパスの終点に対応する一つの候補アプローチ姿勢との組合せをロボット2の姿勢として選択する。この処理は、ロボット2の動作時間に基づいて、複数通りの候補姿勢のうちの一つを、接続域におけるロボット2の姿勢として決定することの一例である。
【0042】
ステップS17では、生成部104が選択された1以上の候補姿勢および選択された1以上のエアカットパスを示す動作プログラムを生成する。例えば、上記の候補パスR~Rのうちロボット2の動作時間が候補パスRにおいて最短であるとする。この場合、生成部104はその候補パスRをエアカットパスとして選択し、その候補パスRの始点および終点に相当する候補退避姿勢Prおよび候補アプローチ姿勢Paを選択する。そして、生成部104は候補退避姿勢Pr、候補アプローチ姿勢Pa、および候補パスRを示す動作プログラムを生成する。この動作プログラムが実行された場合には、ロボット2は退避域Zrにおいて姿勢Prを取り、続いてエアカットパスRを通り、続いてアプローチ域Zaにおいて姿勢Paを取る。
【0043】
ステップS18では、出力部105が生成された動作プログラムを出力する。例えば、出力部105は動作プログラムを、ストレージ163などの記録媒体に格納してもよいし、ロボットコントローラ3などの他のコンピュータに送信してもよい。あるいは、出力部105はテキスト、コンピュータグラフィック(CG)による動画または静止画などの形式で動作プログラムをモニタ20上に表示してもよい。プログラミング支援装置4は出力された動作プログラムに対して、さらなる干渉チェックなどの追加の処理を実行してもよい。
【0044】
一例では、出力部105は、干渉が発生しないことをシミュレーション上で確認できた動作プログラムをロボットコントローラ3に出力し、ロボットコントローラ3はその動作プログラムに基づいてロボット2を動作させる。動作プログラムに基づいて動作するロボット2が処理フローS1によって得られるので、処理フローS1は、本開示に係るプログラム生成方法の一例であるとともに、ロボットの製造方法の一例でもある。
【0045】
図7および図8はいずれも動作プログラムの生成の具体例を示す図である。この例では取得部101は、初期姿勢501を取っているロボット2に、タスク511,512,513をこの順で実行させてその後に終了姿勢502を取らせるための教示データを取得する。一例では、初期姿勢501、タスク511~513、および終了姿勢502は人手により定義される。タスク511~513のそれぞれは作業パスを含み得る。この例では、プログラミング支援装置4は初期姿勢501とタスク511との間のエアカット域521と、タスク511とタスク512との間のエアカット域522と、タスク512とタスク513との間のエアカット域523と、タスク513と終了姿勢502との間のエアカット域524とのそれぞれにエアカットパスを設定する。
【0046】
図7に示すように、設定部102はタスク511の始点に対応するアプローチ域530について5個の候補アプローチ姿勢531~535を設定し、タスク511の終点に対応する退避域540について5個の候補退避姿勢541~545を設定する。さらに、設定部102はタスク512の始点に対応するアプローチ域550について5個の候補アプローチ姿勢551~555を設定し、タスク512の終点に対応する退避域560について5個の候補退避姿勢561~565を設定する。さらに、設定部102はタスク513の始点に対応するアプローチ域570について5個の候補アプローチ姿勢571~575を設定し、タスク513の終点に対応する退避域580について5個の候補退避姿勢581~585を設定する。この例では候補姿勢の個数が個々の接続域において同じであるが、その個数は複数の接続域の少なくとも一部の間で異なってもよい。設定部102は個々の接続域について、ロボット2が実行不可能な候補姿勢を破棄し、ロボット2が実行可能な候補姿勢を抽出する。図7の例では、設定部102は、アプローチ域530での候補アプローチ姿勢535と、アプローチ域550での候補アプローチ姿勢551と、退避域560での候補退避姿勢565を破棄し、残りの候補姿勢を抽出する。
【0047】
図8に示すように、評価部103はエアカット域521~524のそれぞれについて、抽出された候補姿勢に基づいて少なくとも一つの候補パスを自動的に生成する。図8は、ジョブの方向に沿って隣り合う二つの選択可能な姿勢の組合せを破線矢印により表す。エアカット域での破線矢印は候補パス(すなわち、エアカットパスの選択肢)を模式的に示す。タスク内の破線矢印は選択可能なアプローチ姿勢と選択可能な退避姿勢との組合せを示す。この例では、作業パスは教示データにより既に定義されている。アプローチ域530では4個の候補アプローチ姿勢が抽出されたので、評価部103はエアカット域521において4個の候補パスを生成する。退避域540では5個の候補退避姿勢が抽出され、アプローチ域550では4個の候補アプローチ姿勢が抽出されたので、評価部103はエアカット域522において20個の候補パスを生成する。退避域560では4個の候補退避姿勢が抽出され、アプローチ域570では5個の候補アプローチ姿勢が抽出されたので、評価部103はエアカット域523において20個の候補パスを生成する。退避域580では5個の候補退避姿勢が抽出されたので、評価部103はエアカット域524において5個の候補パスを生成する。
【0048】
図8の例では、評価部103はエアカット域521において、初期姿勢501と候補アプローチ姿勢531とを結ぶ候補パス601をエアカットパスとして選択する。この選択に応答して、生成部104は候補アプローチ姿勢531をアプローチ域530でのロボット2の姿勢として決定する。エアカット域522については、評価部103は候補退避姿勢543と候補アプローチ姿勢553とを結ぶ候補パス602をエアカットパスとして選択する。したがって、生成部104は候補退避姿勢543を退避域540でのロボット2の姿勢として決定し、候補アプローチ姿勢553をアプローチ域550でのロボット2の姿勢として決定する。エアカット域523については、評価部103は候補退避姿勢561と候補アプローチ姿勢571とを結ぶ候補パス603をエアカットパスとして選択する。したがって、生成部104は候補退避姿勢561を退避域560でのロボット2の姿勢として決定し、候補アプローチ姿勢571をアプローチ域570でのロボット2の姿勢として決定する。エアカット域524については、評価部103は候補退避姿勢581と終了姿勢502とを結ぶ候補パス604をエアカットパスとして選択する。この選択に応答して、生成部104は候補退避姿勢581を退避域580でのロボット2の姿勢として決定する。
【0049】
図8の例では、生成部104はエアカットパス601、アプローチ域530での姿勢531、退避域540での姿勢543、エアカットパス602、アプローチ域550での姿勢553、退避域560での姿勢561、エアカットパス603、アプローチ域570での姿勢571、退避域580での姿勢541、およびエアカットパス604を示す動作プログラムを生成する。
【0050】
図7および図8に示すように、設定部102は複数のタスク511~513に対応する複数の接続域(アプローチ域530,550,570、および退避域540,560,580)のそれぞれについて、複数通りの候補姿勢を設定する。評価部103はその複数の接続域のそれぞれについて、ロボット2の姿勢を複数通りの候補姿勢の中で変更しながら、動作プログラムを評価する。例えばアプローチ域530では、評価部103はロボット2の姿勢を候補アプローチ姿勢531~534の中で変更しながら動作プログラムを評価する。生成部104はその複数の接続域のそれぞれについて、複数通りの候補姿勢のうちの一つをロボット2の姿勢として決定する。
【0051】
[プログラム]
プログラミング支援装置4の各機能モジュールは、プロセッサ161またはメモリ162の上に生成プログラムを読み込ませてプロセッサ161にそのプログラムを実行させることで実現される。生成プログラムは、プログラミング支援装置4の各機能モジュールを実現するためのコードを含む。プロセッサ161は生成プログラムに従って入出力ポート164を動作させ、メモリ162またはストレージ163におけるデータの読み出しおよび書き込みを実行する。このような処理によりプログラミング支援装置4の各機能モジュールが実現される。
【0052】
生成プログラムは、CD-ROMやDVD-ROM、半導体メモリなどの非一時的な記録媒体に固定的に記録された上で提供されてもよい。あるいは、生成プログラムは、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
【0053】
[効果]
以上説明したように、本開示の一側面に係るプログラム生成システムは、タスクにおけるロボットの軌道である作業パスと、タスク間をつなぐロボットの軌道であるエアカットパスとの間の接続域におけるロボットの複数通りの候補姿勢を設定する設定部と、接続域におけるロボットの姿勢を複数通りの候補姿勢の中で変更しながら、作業パスおよびエアカットパスを含む動作プログラムを評価する評価部と、評価部による評価結果に基づいて、複数通りの候補姿勢のうちの一つを接続域におけるロボットの姿勢として決定し、動作プログラムを生成する生成部とを備える。
【0054】
本開示の一側面に係るプログラム生成方法は、少なくとも一つのプロセッサを備えるプログラム生成システムにより実行されるプログラム生成方法であって、タスクにおけるロボットの軌道である作業パスと、タスク間をつなぐロボットの軌道であるエアカットパスとの間の接続域におけるロボットの複数通りの候補姿勢を設定する設定ステップと、接続域におけるロボットの姿勢を複数通りの候補姿勢の中で変更しながら、作業パスおよびエアカットパスを含む動作プログラムを評価する評価ステップと、評価ステップにおける評価結果に基づいて、複数通りの候補姿勢のうちの一つを接続域におけるロボットの姿勢として決定し、動作プログラムを生成する生成ステップとを含む。
【0055】
本開示の一側面に係る生成プログラムは、タスクにおけるロボットの軌道である作業パスと、タスク間をつなぐロボットの軌道であるエアカットパスとの間の接続域におけるロボットの複数通りの候補姿勢を設定する設定ステップと、接続域におけるロボットの姿勢を複数通りの候補姿勢の中で変更しながら、作業パスおよびエアカットパスを含む動作プログラムを評価する評価ステップと、評価ステップにおける評価結果に基づいて、複数通りの候補姿勢のうちの一つを接続域におけるロボットの姿勢として決定し、動作プログラムを生成する生成ステップとをコンピュータに実行させる。
【0056】
本開示の一側面に係るロボットシステムは、ロボットと、上記のプログラム生成システムと、生成された動作プログラムに基づいてロボットを動作させるロボットコントローラとを備える。
【0057】
作業パスとエアカットパスとを結ぶ接続域でのロボットの姿勢は該ロボットの動作の効率に影響する。上記の側面においては、その接続域について複数通りの候補姿勢が設定され、それぞれの候補姿勢に関して動作プログラムが評価され、その評価結果に基づいて一つの姿勢が決定される。接続域でのロボットの姿勢をこのような手法で自動的に決定することで、ロボット制御のプランニングを適切に実行できる。
【0058】
他の側面に係るプログラム生成システムでは、設定部は、追加されたそれぞれの候補姿勢においてロボットが実行可能か否かを判定して、ロボットが実行不可能な候補姿勢を破棄し、評価部は、接続域におけるロボットの姿勢を、ロボットが実行可能な複数通りの候補姿勢の中で変更しながら、動作プログラムを評価してもよい。ロボットが実行可能な姿勢に限って動作プログラムを評価することで、動作プログラムの評価に要する実行時間が短縮される。したがって、ロボットの姿勢をより短時間で決定できる。
【0059】
他の側面に係るプログラム生成システムでは、設定部は、複数のタスクに対応する複数の接続域のそれぞれについて、複数通りの候補姿勢を設定し、評価部は、複数の接続域のそれぞれについて、該接続域におけるロボットの姿勢を複数通りの候補姿勢の中で変更しながら、動作プログラムを評価し、生成部は、複数の接続域のそれぞれについて、複数通りの候補姿勢のうちの一つを該接続域におけるロボットの姿勢として決定してもよい。この場合には、複数の作業パスと複数のエアカットパスとを含むロボット制御のプランニングを適切に実行できる。一例では、教示姿勢以外の候補姿勢においてもパスの探索が実行されるため、最適な姿勢が発見される確率だけでなく、効率的なパスが発見される確率も高めることができる。例えば、教示姿勢に基づくだけでは最適なエアカットパスが見つかりづらい区間においても、複数の候補姿勢に基づくパス探索によって、該区間について効率的なエアカットパスを発見することが可能になる。
【0060】
他の側面に係るプログラム生成システムでは、設定部は、ロボットがタスクにアプローチする接続域であるアプローチ域におけるロボットの複数通りの候補アプローチ姿勢と、ロボットが該タスクから退避する接続域である退避域におけるロボットの複数通りの候補退避姿勢とを、複数通りの候補姿勢として設定し、生成部は、アプローチ姿勢および退避姿勢の組合せをロボットの姿勢として決定してもよい。この場合には、一つのタスクの開始および終了のそれぞれにおけるロボットの姿勢を適切に設定できる。
【0061】
他の側面に係るプログラム生成システムでは、評価部は、複数通りの候補アプローチ姿勢と複数通りの候補退避姿勢との複数の組合せについて動作プログラムを評価してもよい。アプローチ姿勢および退避姿勢の複数の組合せが評価された上で一つの組合せが決定されるので、ロボットの一連の動作を考慮してロボット制御のプランニングを適切に実行できる。
【0062】
他の側面に係るプログラム生成システムでは、生成部は、ロボットの動作時間に基づいて、複数通りの候補姿勢のうちの一つを、接続域におけるロボットの姿勢として決定してもよい。この処理により、ロボットの動作時間を考慮してロボット制御のプランニングを適切に実行できる。
【0063】
他の側面に係るプログラム生成システムでは、評価部は、接続域におけるロボットの姿勢を複数通りの候補姿勢の中で変更しながら、仮想空間上で仮想的に動作プログラムを繰り返し実行して、動作プログラムを評価してもよい。いわゆるシミュレーションに基づいて動作プログラムを評価することで、ロボットの実際の動作を想定しながらロボットの制御のプランニングを適切に実行できる。
【0064】
他の側面に係るプログラム生成システムは、接続域におけるロボットの教示姿勢を取得する取得部をさらに備えてもよい。設定部は、教示姿勢を基準とする物理的範囲内で複数通りの候補姿勢を設定してもよい。典型的にはユーザにより定義される教示姿勢を考慮して複数通りの候補姿勢が設定されるので、ユーザの意図に沿い且つロボットの動作の効率を上げると見込まれる候補姿勢を用意できる。
【0065】
他の側面に係るプログラム生成システムでは、設定部は、複数通りの候補姿勢の設定として、教示姿勢を基準として所与のステップ幅毎に候補姿勢を追加してもよい。複数通りの候補姿勢を離散的に追加することで、接続域におけるロボットの望ましい姿勢を効率良く探索できる。
【0066】
他の側面に係るプログラム生成システムでは、設定部は、複数通りの候補姿勢の設定として、教示姿勢を挟むように2以上の候補姿勢を追加してもよい。教示姿勢の両側に候補姿勢を追加することで、接続域におけるロボットの望ましい姿勢を効率良く探索できる。
【0067】
他の側面に係るプログラム生成システムでは、設定部は、ロボットによって処理されるワークの被処理面と交差する基準軸の周りの1自由度に沿って複数通りの候補姿勢を設定してもよい。この手法により、ワークの処理に影響を与えないように複数通りの候補姿勢を設定できる。
【0068】
[変形例]
以上、本開示の実施形態に基づいて詳細に説明した。しかし、本開示は上記実施形態に限定されるものではない。本開示は、その要旨を逸脱しない範囲で様々な変形が可能である。
【0069】
プログラム生成システムは、設定された候補姿勢をロボットが実行可能か否かを検査することなく、接続域におけるロボットの姿勢を複数通りの候補姿勢の中で変更しながら動作プログラムを評価してもよい。
【0070】
プログラム生成システムの機能構成は上記の例に限定されない。本開示に係るプログラム生成方法は、上記の例とは異なる機能構成を用いて実行されてもよい。
【0071】
プログラム生成システムのハードウェア構成は、プログラムの実行により各機能モジュールを実現する態様に限定されない。例えば、上述した機能モジュール群の少なくとも一部は、その機能に特化した論理回路により構成されていてもよいし、該論理回路を集積したASIC(ApplicationSpecific Integrated Circuit)により構成されてもよい。
【0072】
少なくとも一つのプロセッサにより実行される方法の処理手順は上記の例に限定されない。例えば、上述したステップ(処理)の一部が省略されてもよいし、別の順序で各ステップが実行されてもよい。また、上述したステップのうちの2以上のステップが組み合わされてもよいし、ステップの一部が修正または削除されてもよい。あるいは、上記の各ステップに加えて他のステップが実行されてもよい。
【0073】
コンピュータシステムまたはコンピュータ内で二つの数値の大小関係を比較する際には、「以上」および「よりも大きい」という二つの基準のどちらを用いてもよく、「以下」および「未満」という二つの基準のうちのどちらを用いてもよい。
【符号の説明】
【0074】
1…ロボットシステム、2…ロボット、3…ロボットコントローラ、4…プログラミング支援装置、5…先端部、10…本体、20…モニタ、30…入力デバイス、101…取得部、102…設定部、103…評価部、104…生成部、105…出力部、200…ワーク、301,302…作業パス、310~312…エアカットパス、321,323…アプローチ域、322,324…退避域、410…基準軸、401…教示姿勢、421~426…候補姿勢、501…初期姿勢、502…終了姿勢、511~513…タスク、521~524…エアカット域、530,550,570…アプローチ域、540,560,580…退避域、531~535…候補アプローチ姿勢、541…545…候補退避姿勢、551~555…候補アプローチ姿勢、561~565…候補退避姿勢、571~575…候補アプローチ姿勢、581~585…候補退避姿勢、601~604…エアカットパス。
図1
図2
図3
図4
図5
図6
図7
図8