(57)【要約】【課題】簡単な画面操作で典型的な配置パターンのロボットプログラムを即時に生成する。【解決手段】ロボットプログラム生成装置１０は、ロボットシステムの典型的な配置パターンを選択する手段と、選択した配置パターンに配置する配置要素を夫々選択する手段と、静止状態の配置要素が互いに干渉しないレイアウトを自動生成する手段と、選択した配置パターンに応じた作業内容、及び、自動生成したレイアウトに従ってロボットプログラムを自動生成する手段と、自動生成したロボットプログラムを仮想環境上で実行し、動作状態のロボットの干渉の有無、及び、ワークに対するロボットの到達可否に基づいて自動生成したレイアウトにおける配置要素の設置位置を自動修正する手段と、自動修正した設置位置に基づいてロボットプログラムを補正する手段と、を備える。【選択図】図３
2020006472.tif 000002
【特許請求の範囲】
【請求項１】
ロボット及び周辺装置を少なくとも含むロボットシステムのためのロボットプログラム生成装置であって、
前記ロボットシステムの典型的な配置パターンを選択する手段と、
選択した前記配置パターンに配置する配置要素を夫々選択する手段と、
静止状態の前記配置要素が互いに干渉しないレイアウトを自動生成する手段と、
選択した前記配置パターンに応じた作業内容、及び、自動生成した前記レイアウトに従って、ロボットプログラムを自動生成する手段と、
自動生成した前記ロボットプログラムを仮想環境上で実行し、動作状態の前記ロボットの干渉の有無、及び、ワークに対する前記ロボットの到達可否に基づいて、自動生成した前記レイアウトにおける前記配置要素の設置位置を自動修正する手段と、
自動修正した前記設置位置に基づいて前記ロボットプログラムを補正する手段と、
を備えることを特徴とするロボットプログラム生成装置。
【請求項２】
ワーク取出し位置で、予め設定したツール中心点を通る軸線回りに前記ロボットのフェースプレートを仮想空間上で移動し、動作状態の前記ロボットが前記配置要素と干渉せず、且つ、前記フェースプレートの中心位置と前記ロボットの固定ベースに設定した原点との間の距離が最短になる、前記ワークに対する前記フェースプレートの位置をワーク取出し姿勢として決定する手段と、
ワーク払出し位置で、前記軸線回りに前記フェースプレートを仮想空間上で移動し、動作状態の前記ロボットが前記配置要素と干渉せず、且つ、前記フェースプレートの中心位置と前記ロボットの固定ベースに設定した原点との間の距離が最短になる、前記ワークに対する前記フェースプレートの位置をワーク払出し姿勢として決定する手段と、
をさらに備える、請求項１に記載のロボットプログラム生成装置。
【請求項３】
前記ワーク取出し姿勢を決定する手段は、
前記ワーク払出し姿勢が予め決められている場合に、
前記ワーク取出し位置で、前記軸線回りに前記フェースプレートを仮想空間上で移動し、動作状態の前記ロボットが前記配置要素と干渉せず、且つ、前記フェースプレートの中心位置と前記ロボットの固定ベースに設定した原点との間の距離が最短になる、前記ワークに対する前記フェースプレートの位置を前記ワーク取出し姿勢として設定する手段と、
設定した前記ワーク取出し姿勢のまま、前記ロボットを前記ワーク払出し位置へ仮想空間上で移動し、動作状態の前記ロボットと前記配置要素との間の干渉の有無、及び、予め決められた前記ワーク払出し姿勢に対する前記ワーク取出し姿勢の適合性を判定する手段と、
前記ロボットが前記配置要素に干渉するか、又は、設定した前記ワーク取出し姿勢が予め決められた前記ワーク払出し姿勢に適合しない場合に、前記ワーク取出し位置で前記ワーク取出し姿勢を再設定する処理を繰返すことにより、前記ワーク取出し姿勢を決定する手段と、
を有する、請求項２に記載のロボットプログラム生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットプログラム生成装置に関し、特にロボット及び周辺装置を少なくとも含むロボットシステムのためのロボットプログラム生成装置に関する。
【背景技術】
【０００２】
オフラインプログラミングに必要なロボットシステムのレイアウト作成、プログラム作成、及びシミュレーションを行うためには多くのプログラミングに関する知識、シミュレーション装置の知識、ロボットの知識が必要である。従って、最終的なシミュレーションを行うためには多大な時間を要していた。シミュレーション工数を削減するため、種々の技術が開示されている。
【０００３】
特許文献１には、ロボット教示プログラム編集装置が開示されている。プログラム編集装置では、ロボット、ワーク、周辺装置等を仮配置したワークセルの雛形と、ロボット作業指示の雛形と、配置物体に関連するロボット動作指令とが予め定義される。ロボット作業指示の雛形の文型に即して作業指示を音声入力すると、配置物体に関連するロボット動作指令が表示されると共に、画面上にロボット動作が表示される。
【０００４】
特許文献２には、ロボットプログラミング装置が開示されている。ロボットプログラミング装置では、新規ワークに対する形状特徴の合致度が最も高いハンドの三次元形状データが記憶されており、新規ワークに対するロボットの最適な搬送作業プログラムを少ない工数で容易に且つ確実に作成できる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１４８７８９号公報
【特許文献２】特開２００８−０１５６８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ワークセルに配置する配置要素の種類及びレイアウトは、ロボットシステムを導入するユーザの要望、環境等に応じて変わる。また、レイアウトは、静止状態における配置要素の干渉、動作状態におけるロボットと他の配置要素との間の干渉を回避するように作成しなければならない。即ち、レイアウトは、配置要素の設置位置及び大きさ、配置パターンに応じたロボットの作業内容及び動作範囲、ワークに対するロボットの位置及び姿勢等、種々の影響を受ける。このようにレイアウト及びロボットプログラムは相互に影響を与えるため、シミュレーション工数が掛かる原因となっていた。
【０００７】
そこで、簡単な画面操作で典型的な配置パターンのロボットプログラムを即時に生成する技術が望まれている。
【課題を解決するための手段】
【０００８】
本開示の一態様は、ロボット及び周辺装置を少なくとも含むロボットシステムのためのロボットプログラム生成装置であって、ロボットシステムの典型的な配置パターンを選択する手段と、選択した配置パターンに配置する配置要素を夫々選択する手段と、静止状態の配置要素が互いに干渉しないレイアウトを自動生成する手段と、選択した配置パターンに応じた作業内容、及び、自動生成したレイアウトに従って、ロボットプログラムを自動生成する手段と、自動生成したロボットプログラムを仮想環境上で実行し、動作状態のロボットの干渉の有無、及び、ワークに対するロボットの到達可否に基づいて、レイアウトにおける配置要素の設置位置を自動修正する手段と、自動修正した設置位置に基づいてロボットプログラムを補正する手段と、を備える、ロボットプログラム生成装置を提供する。
【発明の効果】
【０００９】
本開示の一態様によれば、レイアウトの作成工数及びロボットプログラムの作成工数が削減されると共に、ロボットシステムの仕様検討が容易になる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態におけるロボットプログラム生成装置のブロック図である。
【図２Ａ】一実施形態における配置パターンを選択する選択画面である。
【図２Ｂ】一実施形態における周辺装置を選択する選択画面である。
【図２Ｃ】一実施形態におけるロボットを選択する選択画面である。
【図２Ｄ】一実施形態におけるハンドを選択する選択画面である。
【図２Ｅ】一実施形態におけるワークを選択する選択画面である。
【図３】一実施形態におけるロボットプログラム生成ソフトウェアのフローチャートである。
【図４】一実施形態における自動生成したレイアウトを表示する表示画面である。
【図５Ａ】一実施形態におけるワーク取出し姿勢及びワーク払出し姿勢の決定手順を示す説明図である。
【図５Ｂ】一実施形態におけるワーク取出し姿勢及びワーク払出し姿勢の決定手順を示す説明図である。
【図６】一実施形態におけるワーク取出し姿勢及びワーク払出し姿勢の決定手順を示すフローチャートである。
【図７】他の実施形態におけるワーク取出し姿勢及びワーク払出し姿勢の決定手順を示す説明図である。
【図８】他の実施形態におけるワーク取出し姿勢及びワーク払出し姿勢の決定手順を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本開示の実施形態を詳細に説明する。各図面において、同一又は類似の要素には同一又は類似の符号が付与されている。また、以下に記載する実施形態は、特許請求の範囲に記載される発明の技術的範囲及び用語の意義を限定するものではない。
【００１２】
図１は、本実施形態におけるロボットプログラム生成装置１０のブロック図である。ロボットプログラム生成装置１０は、ＣＰＵ１１、ＲＡＭ１２、ＲＯＭ１３、不揮発性メモリ１４、表示部１５、入力部１６、及び通信制御部１７を少なくとも備える公知のコンピュータで構成される。ＲＯＭ１３は、ロボットプログラム生成ソフトウェア２０を予め記憶している。ロボットプログラム生成ソフトウェア２０は、ロボット、周辺装置、ハンド、ワーク、テーブル等を含むロボットシステムのためのロボットプログラムを生成するソフトウェアであり、簡単なウィザード操作で典型的な配置パターンのロボットプログラムを即時に生成する。ＣＰＵ１１は、ロボットプログラム生成ソフトウェア２０をＲＯＭ１３からＲＡＭ１２に読出して実行し、出力データを液晶ディスプレイ装置等の表示部１５に表示する指令を行い、入力データをタッチパネル装置等の入力部１６から入力する指令を行うと共に、生成したロボットプログラム等を通信制御部１７からロボット制御装置（図示せず）へ送信する指令を行う。
【００１３】
不揮発性メモリ１４は、複数種類の配置パターンデータ２１、複数種類の周辺装置データ２２、複数種類のロボットデータ２３、複数種類のハンドデータ２４、複数種類のワークデータ２５、複数種類の作業内容データ２６等を予め記憶している。配置パターンデータ２１は典型的な配置パターンに配置される種々の配置要素（ロボット、周辺装置、テーブル、ワーク等）の設置位置データを含む。設置位置は、配置要素の設置面の中心位置として定義される。周辺装置データ２２は種々の工作機械の三次元形状データ（例えば射出成型機、放電加工機、レーザ加工機等の形状データ）を含む。ロボットデータ２３は種々の産業用ロボットの三次元形状データを含み、ハンドデータ２４は種々のハンドの三次元形状データ（例えば吸着ハンド、電動ハンド等の形状データ）を含む。ワークデータ２５は種々のワークの三次元形状データ（例えば立方体、円柱、球体等）を含む。作業内容データ２６は配置パターンに応じて予め定義された種々の作業フローと、作業フローに対応する種々のロボット動作指令と、を含む。作業フローとしては、例えばロボットＡがドアオープン信号に応じて周辺装置Ｂのワーク取出し位置からテーブルＣのワーク払出し位置へワークＤを移動する、等を挙げることができる。
【００１４】
図２Ａ−図２Ｅは、ロボットプログラム生成ソフトウェアのウィザード画面を示している。図２Ａは、ロボットシステムの配置パターンを選択する選択画面３０を示しており、配置パターンの選択画面３０には、典型的な配置パターンを描写した複数の選択ボタン４０が表示される。図２Ｂは、選択した配置パターンに配置する周辺装置の選択画面３１を示しており、周辺装置の選択画面３１には、複数種類の周辺装置を描写した複数の選択ボタン４１と、周辺装置のドア位置を選択する選択ボタン４２と、が表示される。図２Ｃは、選択した配置パターンに配置するロボットの選択画面３２を示しており、ロボットの選択画面３２には、複数種類のロボットを描写した複数の選択ボタン４３が表示される。図２Ｄは、選択した配置パターンに配置するハンドの選択画面３３を示しており、ハンドの選択画面３３には、複数種類のハンドを描写した複数の選択ボタン４４が表示される。図２Ｅは、選択した配置パターンに配置するワークの選択画面３４を示しており、ワークの選択画面３４には、複数種類のワークを描写した複数の選択ボタン４５が表示される。ワークの選択ボタン４５は、ワークのＣＡＤデータを選択する選択ボタンと、典型的なワーク形状を選択する選択ボタンと、を有している。他の実施形態では、ワークを配置するテーブルを選択する選択画面を有していてもよい。
【００１５】
図３は、ロボットプログラム生成ソフトウェアのフローチャートである。ロボットプログラム生成ソフトウェアは、下記のステップを実行することにより、ロボットシステムのレイアウト及びロボットプログラムを自動生成する。
（ステップＳ１０）典型的な複数種類の配置パターンの中からロボットシステムの配置パターンを選択する（図２Ａを参照。）。
（ステップＳ１１）複数種類の周辺装置、複数種類のロボット、複数種類のハンド、及び複数種類のワークの中から、選択した配置パターンに配置する配置要素を選択する（図２Ｂ−図２Ｅを参照。）。
（ステップＳ１２）選択した配置要素を仮想空間上に配置する。
（ステップＳ１３）静止状態で配置要素の干渉が有るかを判定する。干渉判定には、公知の種々の手法を利用できる。
（ステップＳ１４）静止状態の配置要素の干渉が有る場合には（ステップＳ１３のＹＥＳ）、自動生成したレイアウトにおける配置要素の設置位置を自動修正する。ここでは、干渉している配置要素（ロボット、周辺装置、ワーク、テーブル等）の何れかの設置位置を干渉しない位置に移動する。
（ステップＳ１５）静止状態で配置要素の干渉が無い場合には（ステップＳ１３のＮＯ）、選択した配置パターンに依存する作業内容、及び、自動生成したレイアウトに従ってロボットプログラムを自動生成する。ここでは、例えばロボットＡがドアオープン信号に応じてテーブルＣのワーク取出し位置から周辺装置Ｂのワーク払出し位置へワークＤを移動するロボットプログラムが生成される。
【００１６】
（ステップＳ１６）自動生成したロボットプログラムを仮想空間上で実行する。
（ステップＳ１７）動作状態のロボットと他の配置要素との間の干渉が有るか、又は、ロボットがワークに到達しないかを判定する。動作状態のロボットが他の配置要素と干渉せず、且つ、ロボットがワークに到達する場合には（ステップＳ１７のＮＯ）、レイアウト及びロボットプログラムの自動生成が終了する。
（ステップＳ１８）動作状態のロボットが他の配置要素と干渉するか、又は、ロボットがワークに到達しない場合には（ステップＳ１７のＹＥＳ）、自動生成したレイアウトにおける配置要素の設置位置を自動修正する。次いで、ステップＳ１５に戻り、自動修正した設置位置に基づいてロボットプログラムを補正（再生成）する。
【００１７】
図４は、自動生成したレイアウト５０を表示する表示画面である。レイアウト５０は、周辺装置５１、ロボット５２、ハンド５３、ワーク５４、及びテーブル５５の設置位置データを含んでいる。レイアウト５０の表示画面により、ユーザの要望、環境等に応じてロボットシステムの仕様検討を容易に行うことができる。また、簡単なウィザード操作で典型的なレイアウトのロボットプログラムが即時に生成されるため、レイアウトの作成工数、ロボットプログラムの作成工数が削減される。
【００１８】
図５Ａ−図５Ｂは、ワーク取出し姿勢及びワーク払出し姿勢の決定手順を示す説明図である。ワーク取出し姿勢及びワーク払出し姿勢に自由度がある場合には、図５Ａに示すように予め設定したツール中心点（ＴＣＰ）を通る軸線Ｚ回りにフェースプレート５６を移動し（例えば回転し）、図５Ｂに示すようにフェースプレート５６の中心位置とロボット５２の固定ベース５７に設定した原点Ｏ（図４参照。）との間の距離が最短になる、ワーク５４に対するフェースプレート５６の位置をワーク取出し姿勢又はワーク払出し姿勢として決定する。
【００１９】
図６は、図５で概説したワーク取出し姿勢及びワーク払出し姿勢を決定するフローチャートである。ロボットプログラム生成ソフトウェアは、下記のステップを実行することにより、ワーク取出し姿勢及びワーク払出し姿勢を決定する。
（ステップＳ２０）ロボット５２をワーク取出し位置へ移動する。
（ステップＳ２１）予め設定したＴＣＰを通る軸線Ｚ回りにロボット５２のフェースプレート５６を移動し、動作状態のロボット５２が他の配置要素と干渉せず、且つ、フェースプレート５６の中心位置とロボット５２の固定ベース５７に設定した原点Ｏ（図４参照。）との間の距離が最短になる、ワーク５４に対するフェースプレート５６の位置をワーク取出し姿勢として決定する。
（ステップＳ２２）ロボット５２をワーク払出し位置へ移動する。
（ステップＳ２３）予め設定したＴＣＰを通る軸線Ｚ回りにロボット５２のフェースプレート５６を移動し、動作状態のロボット５２が他の配置要素と干渉せず、且つ、フェースプレート５６の中心位置とロボット５２の固定ベース５７に設定した原点Ｏとの間の距離が最短になる、ワーク５４に対するフェースプレート５６の位置をワーク払出し姿勢として決定する。
【００２０】
フェースプレート５６の中心位置とロボット５２の固定ベース５７に設定した原点Ｏとの間の距離が最短になる姿勢をワーク取出し姿勢及びワーク払出し姿勢として決定することにより、ロボットの不自然な姿勢を回避し、サイクルタイムを最適化すると共に、干渉状態を考慮してロボットプログラムを生成できる。
【００２１】
図７は、他の実施形態におけるワーク取出し姿勢及びワーク払出し姿勢の決定手順を示す説明図である。ワーク払出し姿勢が予め決められている場合には、ワークの取出し位置６０で、予め設定したＴＣＰを通る軸線Ｚ回りにフェースプレート５６を仮想空間上で移動し、フェースプレート５６の中心位置とロボット５２の固定ベース５７に設定した原点Ｏとの間の距離が１番目に近い、ワーク５４に対するフェースプレート５６の位置をワーク取出し姿勢として設定し、設定したワーク取出し姿勢のままロボット５２をワーク払出し位置６１へ仮想空間上で移動する。設定したワーク取出し姿勢が予め決められたワーク払出し姿勢に適合しない場合には、フェースプレート５６の中心位置とロボット５２の固定ベース５７に設定した原点Ｏとの間の距離が２番目に近い、ワーク５４に対するフェースプレート５６の位置をワーク取出し姿勢として再設定し、同様の処理を繰返していく。
【００２２】
図８は、図７で概説したワーク取出し姿勢及びワーク払出し姿勢を決定するフローチャートである。ロボットプログラム生成ソフトウェアは、下記のステップを実行することにより、ワークの取出し姿勢及びワークの払出し姿勢を決定する。
（ステップＳ３０）ｉ（整数を入力する変数）に１を代入する。
（ステップＳ３１）ロボット５２をワーク取出し位置６０へ仮想空間上で移動する。
（ステップＳ３２）予め設定したＴＣＰを通る軸線回りにロボット５２のフェースプレート５６を移動し、動作状態のロボット５２が他の配置要素と干渉せず、且つ、フェースプレート５６の中心位置とロボット５２の固定ベース５７に設定した原点Ｏとの間の距離がｉ番目に近くなる、ワーク５４に対するフェースプレート５６の位置をワーク取出し姿勢として設定する。
（ステップＳ３３）設定したワーク取出し姿勢のままロボット５２をワーク払出し位置６１へ仮想空間上で移動する。
（ステップＳ３４）ｉに１を加算する。
【００２３】
（ステップＳ３５）動作状態のロボット５２と他の配置要素との間の干渉が有るか、又は、ワーク取出し姿勢が予め決められたワーク払出し姿勢に適合しないかを判定する。適合判定には、許容範囲を予め定義してもよい。ロボットが他の配置要素に干渉するか、又は、ワーク取出し姿勢が予め決められたワーク払出し姿勢に適合しない場合には（ステップＳ３５のＹＥＳ）、ステップＳ３１に戻り、ワーク取出し位置６０でワーク取出し姿勢を再設定し、同様の処理（ステップＳ３１−ステップＳ３５）を繰返していく。
（ステップＳ３６）ロボットが他の配置要素に干渉せず、且つ、ワーク取出し姿勢が予め決められたワーク払出し姿勢に適合した場合には（ステップＳ３５のＹＥＳ）、設定したワーク取出し姿勢をワーク取出し姿勢として決定する。
【００２４】
設定したワーク取出し姿勢が予め決められたワーク払出し姿勢に適合するか判定することにより、ワーク払出し姿勢が予め決められている場合でも、干渉の無い適度な姿勢でワークを取出すことができる。
【００２５】
前述したフローチャートを実行するソフトウェアは、コンピュータ読取り可能な非一時的記録媒体、例えばＣＤ−ＲＯＭ等に記録して提供してもよい。
【００２６】
本明細書において種々の実施形態について説明したが、本発明は、前述の実施形態に限定されるものではなく、以下の特許請求の範囲に記載された範囲内において種々の変更を行えることを認識されたい。
【符号の説明】
【００２７】
１０    ロボットプログラム生成装置
１１    ＣＰＵ
１２    ＲＡＭ
１３    ＲＯＭ
１４    不揮発性メモリ
１５    表示部
１６    入力部
１７    通信制御部
２０    ロボットプログラム生成ソフトウェア
２１    配置パターンデータ
２２    周辺装置データ
２３    ロボットデータ
２４    ハンドデータ
２５    ワークデータ
２６    作業内容データ
３０    配置パターンの選択画面
３１    周辺装置の選択画面
３２    ロボットの選択画面
３３    ハンドの選択画面
３４    ワークの選択画面
５０    レイアウト
５１    周辺装置
５２    ロボット
５３    ハンド
５４    ワーク
５５    テーブル
５６    フェースプレート
５７    固定ベース
６０    ワーク取出し位置
６１    ワーク払出し位置
【図１】
2020006472.tif 000003
【図２Ａ】
2020006472.tif 000004
【図２Ｂ】
2020006472.tif 000005
【図２Ｃ】
2020006472.tif 000006
【図２Ｄ】
2020006472.tif 000007
【図２Ｅ】
2020006472.tif 000008
【図３】
2020006472.tif 000009
【図４】
2020006472.tif 000010
【図５Ａ】
2020006472.tif 000011
【図５Ｂ】
2020006472.tif 000012
【図６】
2020006472.tif 000013
【図７】
2020006472.tif 000014
【図８】
2020006472.tif 000015