(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024038978
(43)【公開日】2024-03-21
(54)【発明の名称】教示装置
(51)【国際特許分類】
B25J 9/22 20060101AFI20240313BHJP
B25J 9/10 20060101ALI20240313BHJP
G05B 19/42 20060101ALI20240313BHJP
【FI】
B25J9/22 A
B25J9/10 A
G05B19/42 J
【審査請求】有
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2023046385
(22)【出願日】2023-03-23
(62)【分割の表示】P 2022572384の分割
【原出願日】2022-08-24
(11)【特許番号】
(45)【特許公報発行日】2024-03-12
(71)【出願人】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【弁理士】
【氏名又は名称】廣瀬 繁樹
(74)【代理人】
【識別番号】100169856
【弁理士】
【氏名又は名称】尾山 栄啓
(72)【発明者】
【氏名】原田 邦彦
(72)【発明者】
【氏名】王 悦来
(72)【発明者】
【氏名】内藤 康広
【テーマコード(参考)】
3C269
3C707
【Fターム(参考)】
3C269AB33
3C269BB09
3C269QE18
3C269SA15
3C269SA17
3C707BS12
3C707HS27
3C707JU02
3C707KS16
3C707KS36
3C707KX19
3C707LS09
3C707LS14
3C707LS20
3C707LT17
3C707LV19
3C707LV20
3C707MT04
(57)【要約】
【課題】仮想ロボットを用いた教示の精度を向上させることのできる教示装置を提供する。
【解決手段】ロボットの教示を行うための教示装置(50)であって、ロボットの関節部における角度位置とロボットの先端位置との関係を求めるための機構データであって、実ロボットの機構誤差パラメータを含む機構データを記憶する記憶部(156)と、前記機構誤差パラメータにより前記実ロボットに発生する位置の誤差が仮想ロボットで発生するように前記機構データに基づき前記仮想ロボットの動作を制御する仮想ロボット制御部(153)と、を備える教示装置(50)が提供される。
【選択図】
図7
【特許請求の範囲】
【請求項1】
ロボットの教示を行うための教示装置であって、
ロボットの関節部における角度位置とロボットの先端位置との関係を求めるための機構データであって、実ロボットの機構誤差パラメータを含む機構データを記憶する記憶部と、
前記機構誤差パラメータにより前記実ロボットに発生する位置の誤差が仮想ロボットで発生するように前記機構データに基づき前記仮想ロボットの動作を制御する仮想ロボット制御部と、を備える教示装置。
【請求項2】
前記機構データは、ロボットのリンク長、組み付け誤差の少なくともいずれかの要素を含み、
前記教示装置は、前記機構データに含まれる前記ロボットのリンク長、組み付け誤差の少なくともいずれかに基づいて前記仮想ロボットの三次元モデルを修正するモデル修正部を更に備え、
前記仮想ロボット制御部は、前記モデル修正部により修正された前記三次元モデルを用いて前記仮想ロボットの制御を実行する、請求項1に記載の教示装置。
【請求項3】
前記仮想ロボットの三次元モデルと、前記記憶部に記憶された機構データを表す画像とを表示画面上に表示すると共に、当該機構データを表す画像を前記仮想ロボットの三次元モデルにドラッグアンドドロップする操作を受け付け、該操作に応じて前記機構データを読み込み前記記憶部に記憶する機構データ読み込み部を更に備える、請求項1に記載の教示装置。
【請求項4】
前記機構データ読み込み部は、一つのセルに配備される複数の仮想ロボットの三次元モデルを表示すると共に、前記機構データを表す画像を前記複数の仮想ロボットの三次元モデルの1以上にドラッグアンドドロップする操作を受け付け、該操作に応じて前記機構データを読み込んで前記1以上の仮想ロボットに用いる機構データとして前記記憶部に記憶する、請求項3に記載の教示装置。
【請求項5】
動作プログラム内の位置データに関し、実ロボットに前記機構データを適用しない場合に該実ロボットが前記機構データが適用された場合に到達する位置と同じ位置に到達するように前記位置データを変換する変換部を更に備える、請求項1に記載の教示装置。
【請求項6】
動作プログラム内の位置データに関し、実ロボットに前記機構データを適用した場合に、該実ロボットが前記機構データが適用されない場合に到達する位置と同じ位置に到達するように前記位置データを変換する変換部を更に備える、請求項1に記載の教示装置。
【請求項7】
前記動作プログラムに基づき、前記位置データの変換に必要なデータを推定し、前記変換のために前記位置データに紐づける紐づけ部を更に備える、請求項5又は6に記載の教示装置。
【請求項8】
前記位置データの変換に必要なデータの推定に用いる設定情報を設定するための紐づけ設定部を更に備える、請求項7に記載の教示装置。
【請求項9】
前記位置データの変換に必要なデータは負荷設定情報である、請求項7に記載の教示装置。
【請求項10】
前記動作プログラム内の前記位置データの各々について変換を行うか否かを選択するための変換選択部を更に備える、請求項5又は6に記載の教示装置。
【請求項11】
前記変換選択部が、前記位置データの各々について変換を行うか否かを決定するために用いる設定情報を設定するための変換選択設定部を更に備える、請求項10に記載の教示装置。
【請求項12】
前記変換部による変換前の前記位置データによるロボットの第1動作軌跡と、前記変換部による変換後の位置データによるロボットの第2動作軌跡とを比較する軌跡比較部と、
前記第1動作軌跡と前記第2動作軌跡との偏差が一定以上発生する場合に、当該偏差が小さくなるように前記第2動作軌跡を修正する修正部と、を備える請求項5又は6に記載の教示装置。
【請求項13】
教示した座標系、原点復帰位置の少なくともいずれかを含む、グローバルに適用される位置データに関し、実ロボットに前記機構データを適用した場合に、該実ロボットが前記機構データが適用されない場合に到達する位置と同じ位置に到達するように前記位置データを変換する変換部を備える、請求項1から4のいずれか一項に記載の教示装置。
【請求項14】
動的に変化する座標系の動きを設定するための動的座標系設定部を更に備え、
前記変換部は、前記位置データが、前記動的座標系設定部において設定された動的座標系に対する相対位置として設定されている場合に、前記相対位置を絶対位置に変換した上で前記位置データに対する変換を実行し、変換された絶対位置としての位置データを相対位置に戻す、請求項5又は6に記載の教示装置。
【請求項15】
前記記憶部は、教示位置情報及び教示順序情報を含む教示情報を記憶し、
動作プログラム内の位置データに関し、前記仮想ロボットが到達する教示位置及び教示順序が、前記教示情報に設定された教示位置情報及び教示順序情報と一致するように変換を行う位置変換部を更に備える、請求項1から4のいずれか一項に記載の教示装置。
【請求項16】
前記記憶部は、教示位置情報及び教示順序情報を含む教示情報を記憶し、
動作プログラム内の位置データに関し、前記仮想ロボットが到達する教示位置が、変換前に前記仮想ロボットが到達する位置を対称中心として前記教示情報に設定された教示位置に対して点対称の位置に来るように変換を行う位置変換部を更に備える、請求項1から4のいずれか一項に記載の教示装置。
【請求項17】
前記記憶部は、ワークモデル、及び当該ワークモデルに対する教示位置情報及び教示順序情報を含むワークモデル情報を記憶し、
前記教示装置は、動作プログラムにより前記仮想ロボットが到達する位置と、前記ワークモデルの教示位置との差が小さくなるように前記ワークモデルの位置姿勢を修正するレイアウト修正部を更に備える、請求項1から4のいずれか一項に記載の教示装置。
【請求項18】
前記記憶部は、教示位置情報及び教示順序情報を含む動作プログラムを記憶し、
前記教示装置は、前記動作プログラムに基づき前記仮想ロボットを動作させた場合に、前記仮想ロボットと周辺装置モデルとの干渉が検出されたときに前記仮想ロボットの表示状態を変化させる干渉検出部を更に備える、請求項1から4のいずれか一項に記載の教示装置。
【請求項19】
前記干渉検出部により干渉が検出された場合に、干渉が発生しないように前記動作プログラムによる動作軌跡を変更する干渉回避動作生成部を更に備える、請求項18に記載の教示装置。
【請求項20】
ロボットの教示を行うための教示装置であって、
ロボットの関節部における角度位置とロボットの先端位置との関係を求めるための機構データであって、実ロボットの機構誤差パラメータを含む機構データと動作プログラムを記憶する記憶部と、
前記動作プログラム内の位置データに関し、実ロボットに前記機構データを適用しない場合に該実ロボットが前記機構データが適用された場合に到達する位置と同じ位置に到達するように前記位置データを変換する、或いは実ロボットに前記機構データを適用した場合に、該実ロボットが前記機構データが適用されない場合に到達する位置と同じ位置に到達するように前記位置データを変換する変換部と、
前記位置データの変換に必要なデータを推定し、前記変換のために前記位置データに紐づける紐づけ部と、を備える教示装置。
【請求項21】
前記位置データの変換に必要なデータの推定に用いる設定情報を設定するための紐づけ設定部を更に備える、請求項20に記載の教示装置。
【請求項22】
前記位置データの変換に必要なデータは負荷設定情報である、請求項20に記載の教示装置。
【請求項23】
前記動作プログラム内の前記位置データの各々について変換を行うか否かを選択するための変換選択部を更に備える、請求項20に記載の教示装置。
【請求項24】
前記変換選択部が、前記位置データの各々について変換を行うか否かを決定するために用いる設定情報を設定するための変換選択設定部を更に備える、請求項23に記載の教示装置。
【請求項25】
前記変換部による変換前の前記位置データによるロボットの第1動作軌跡と、前記変換部による変換後の位置データによるロボットの第2動作軌跡とを比較する軌跡比較部と、
前記第1動作軌跡と前記第2動作軌跡との偏差が一定以上発生する場合に、当該偏差が小さくなるように前記第2動作軌跡を修正する修正部と、を備える請求項20から24のいずれか一項に記載の教示装置。
【請求項26】
教示した座標系、原点復帰位置の少なくともいずれかを含む、グローバルに適用される位置データに関し、実ロボットに前記機構データを適用した場合に、該実ロボットが前記機構データが適用されない場合に到達する位置と同じ位置に到達するように前記位置データを変換する位置データ変換部を更に備える、請求項20から24のいずれか一項に記載の教示装置。
【請求項27】
動的に変化する座標系の動きを設定するための動的座標系設定部を更に備え、
前記変換部は、前記位置データが、前記動的座標系設定部において設定された動的座標系に対する相対位置として設定されている場合に、前記相対位置を絶対位置に変換した上で前記位置データに対する変換を実行し、変換された絶対位置としての位置データを相対位置に戻す、請求項20から24のいずれか一項に記載の教示装置。
【請求項28】
前記記憶部は、教示位置情報及び教示順序情報を含む教示情報を記憶し、
前記教示装置は、
前記機構誤差パラメータにより前記実ロボットに発生する位置の誤差が仮想ロボットで発生するように前記機構データに基づき前記仮想ロボットの動作を制御する仮想ロボット制御部と、
動作プログラム内の位置データに関し、前記仮想ロボットが到達する教示位置及び教示順序が、前記教示情報に設定された教示位置情報及び教示順序情報と一致するように変換を行う位置変換部と、を更に備える、請求項20から24のいずれか一項に記載の教示装置。
【請求項29】
前記記憶部は、教示位置情報及び教示順序情報を含む教示情報を記憶し、
前記教示装置は、
前記機構誤差パラメータにより前記実ロボットに発生する位置の誤差が仮想ロボットで発生するように前記機構データに基づき前記仮想ロボットの動作を制御する仮想ロボット制御部と、
動作プログラム内の位置データに関し、前記仮想ロボットが到達する教示位置が、変換前に前記仮想ロボットが到達する位置を対称中心として前記教示情報に設定された教示位置に対して点対称の位置に来るように変換を行う位置変換部と、を更に備える、請求項20から24のいずれか一項に記載の教示装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットのオフライン教示を行う教示装置に関する。
【背景技術】
【0002】
ロボット、ワーク、周辺装置等の三次元モデルを仮想空間上に配置してロボット動作のオフライン教示を行う教示装置が広く用いられている。例えば、特許文献1は、「ワークの3次元モデルを寸法可変に作成する寸法可変3次元モデル作成部71、実際のワークの位置、姿勢、寸法を計測する計測部5、計測結果に基づき3次元モデルを修正する計測に基づく3次元モデル修正部72、修正された3次元モデルを基に、ロボット動作をオフラインで教示するオフライン教示部73を備えるシステム」を記載する(要約書)。
【0003】
実ロボットは、オフライン教示における仮想ロボットと異なり、製造誤差等により、指令位置と実際に到達する位置に誤差を生じる。そのため、実ロボットの実際に到達する位置が指令位置に可能な限り近くなるように、製造誤差等を含む機構データをキャリブレーションし、実ロボットの絶対位置精度を向上させることが行われる。これに関し、特許文献2は、「すなわち、従来、機構パラメータが更新されると、以降は更新された機構パラメータを用いて動作プログラムが実行されるので、更新前に教示された動作プログラムをそのまま実行したのでは、教示時のロボットの先端の位置および姿勢を実現できなかった。本態様によれば、更新前の機構パラメータと現在の機構パラメータとを用いて動作プログラムの位置データを補正することにより、現在の機構パラメータを用いて更新前に教示された動作プログラムを実行しても、教示時のロボットの先端の位置および姿勢を実現することができる。その結果、キャリブレーションの実行前に教示作業が行われた動作プログラムを、再教示作業を行うことなく再利用することができる。」と記載する(段落0009)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平11-296218号公報
【特許文献2】特許第6453918号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来、オフライン教示で用いられる仮想ロボットとしては、設計値通りの(すなわち、誤差を含まない)三次元モデルが用いられるのが一般的であった。誤差を含まない三次元モデルでは、実ロボットが到達する位置との間に誤差を生じる場合があった。ロボットの現実の寸法を計測により測定し、ロボットの三次元モデルを修正してオフライン教示を行うアプローチも考えられる。しかしながら、ロボットはリンク間等の接続部を有し、例えばリンク回転中心間の距離を計測により精確に測定することは難しい。
【0006】
本発明の目的は、このような仮想ロボットを用いた教示の精度を向上させることのできる教示装置を提供することである。
【課題を解決するための手段】
【0007】
本開示の一態様は、ロボットの教示を行うための教示装置であって、ロボットの関節部における角度位置とロボットの先端位置との関係を求めるための機構データであって、実ロボットの機構誤差パラメータを含む機構データを記憶する記憶部と、前記機構誤差パラメータにより前記実ロボットに発生する位置の誤差が仮想ロボットで発生するように前記機構データに基づき前記仮想ロボットの動作を制御する仮想ロボット制御部と、を備える教示装置である。本開示の別の態様は、ロボットの教示を行うための教示装置であって、ロボットの関節部における角度位置とロボットの先端位置との関係を求めるための機構データであって、実ロボットの機構誤差パラメータを含む機構データと動作プログラムを記憶する記憶部と、前記動作プログラム内の位置データに関し、実ロボットに前記機構データを適用しない場合に該実ロボットが前記機構データが適用された場合に到達する位置と同じ位置に到達するように前記位置データを変換する、或いは実ロボットに前記機構データを適用した場合に、該実ロボットが前記機構データが適用されない場合に到達する位置と同じ位置に到達するように前記位置データを変換する変換部と、前記位置データの変換に必要なデータを推定し、前記変換のために前記位置データに紐づける紐づけ部と、を備える教示装置である。
【発明の効果】
【0008】
上記構成によれば、仮想ロボットを用いた教示の精度を高めることが可能となる。
【0009】
添付図面に示される本発明の典型的な実施形態の詳細な説明から、本発明のこれらの目的、特徴および利点ならびに他の目的、特徴および利点がさらに明確になるであろう。
【図面の簡単な説明】
【0010】
【
図1】第1実施形態に係る実施形態に係るキャリブレーションシステムと、オフラインでの教示を行うオフライン教示装置とを示す図である。
【
図3】指令位置及び測定位置の収集処理を表すフローチャートである。
【
図4】ロボットのアームの重力の撓みによる誤差を説明するための図である。
【
図5】ロボットの軸間のねじれによる誤差を説明するための図である。
【
図7】第1実施形態に係るオフライン教示装置の機能ブロック図である。
【
図8】機構データ読み込み部によるUI画面の例を示す図である。
【
図9】第2実施形態に係るプログラム変換装置の機能ブロック図である。
【
図10】変換するプログラムを選択するためのUI画面の例を示す図である。
【
図11】変換の詳細設定に関するUI画面の例を示す図である。
【
図12】機構データに基づくロボットの位置の補正について説明するための図である。
【
図13】第3実施形態に係るプログラム変換装置の機能ブロック図である。
【
図14】第4実施形態に係るオフライン教示装置の機能ブロック図である。
【
図15】第5実施形態に係るプログラム変換装置の機能ブロック図である。
【
図16】第6実施形態に係るオフライン教示装置の機能ブロック図である。
【
図17A】第6実施形態に係るオフライン教示装置による位置データの変換の第1の機能について説明する図である。
【
図17B】第6実施形態に係るオフライン教示装置による位置データの変換の第2の機能について説明する図である。
【
図18】第7実施形態に係るオフライン教示装置の機能ブロック図である。
【
図19】第7実施形態に係るオフライン教示装置によるレイアウト修正機能について説明する図である。
【
図20】第8実施形態に係るオフラインのオフライン教示装置の機能ブロック図である。
【発明を実施するための形態】
【0011】
次に、本開示の実施形態について図面を参照して説明する。参照する図面において、同様の構成部分または機能部分には同様の参照符号が付けられている。理解を容易にするために、これらの図面は縮尺を適宜変更している。また、図面に示される形態は本発明を実施するための一つの例であり、本発明は図示された形態に限定されるものではない。
【0012】
第1実施形態
図1は、一実施形態に係るキャリブレーションシステム100と、オフラインでの教示を行うオフライン教示装置50とを示す図である。実ロボットは、加工誤差や組み付け誤差などにより、指令位置と実際に到達する位置との間に誤差を生じ得る。キャリブレーションシステム100は、このような加工誤差や組む付け誤差を含む機構データを計測し出力すること(すなわち、機構データをキャリブレーションすること)ができる。オフライン教示装置50は、キャリブレーションシステム100が出力する機構データ用いて仮想ロボットによるオフラインでの教示を行うための装置である。オフライン教示装置50は、キャリブレーションシステム100からキャリブレーションされた機構データを取得し、仮想ロボットに実ロボットに生じる誤差を反映した動作(シミュレーション)を行わせ、精確な教示を行うことを可能とする。
【0013】
図1に示すように、キャリブレーションシステム100は、ロボット1と、ロボット1のキャリブレーションを実行するキャリブレーション装置130と、対象の三次元位置計測を行うための三次元測定器20とを含む。本実施形態では、キャリブレーション装置130は、ロボット制御装置30内のプロセッサがソフトウェアを実行することで実現される機能として構成される場合の例を示す。三次元測定器20は、レーザトラッカ等の三次元位置測定器である。
【0014】
図1に示すように、ロボット制御装置30は、ロボット1を操作するための操作入力装置としての機能を有する教示操作盤40を備える。教示操作盤40は、表示部41と入力部42とを有する。入力部42は、キー入力装置或いはタッチパネル入力装置等である。タッチパネル入力装置の場合、表示部41と入力部42は一体的に構成される。表示部41は、例えばフラットパネルディスプレイを有する。ロボット制御装置30は、記憶部140(ROM、RAM、不揮発性メモリ或いはその他の記憶装置)を有する。記憶部140には、例えば、動作プログラム、機構データなど、キャリブレーション装置130が動作を行う上で必要な各種情報が記憶される。
【0015】
本実施形態では、キャリブレーション装置130はロボット制御装置30内に実現される機能であるものとするが、キャリブレーション装置130を、オフライン教示装置50内に実現する構成例もあり得る。
【0016】
ロボット1は、本実施形態では、6軸の垂直多関節ロボットであるとする。なお、ロボット1としてパラレルリンク型ロボット、双腕ロボット等、作業対象に応じて様々なタイプのロボットが用いられても良い。ロボット1は、手首部に取り付けられたエンドエフェクタとしての作業ツールによって所望の作業を実行することができる。作業ツールは、用途に応じて交換可能な外部装置であり、例えば、ハンド、溶接ガン、工具等である。
図1では、作業ツールとして溶接ガンが用いられている例を示す。
【0017】
図2に本実施形態のロボット1の構成例としての斜視図を示す。
図2に示すように、ロボット1は、ベース14と、旋回ベース13と、下部アーム12と、上部アーム11と、リスト15と、フランジ16とを備える。下部アーム12は、旋回ベース13に支持されている。旋回ベース13は、ベース14に支持されている。リスト15は、上部アーム11の端部に連結されている。リスト15は、溶接ガン5を固定するフランジ16を含む。上部アーム11及び下部アーム12等の構成部材は、関節部を介して連結されている。
【0018】
ロボット1は、旋回ベース13,上部アーム11、下部アーム12、リスト15、及びフランジ16毎に配置された駆動モータを含む。溶接ガン5は、溶接ガン5を駆動するツール駆動装置、可動電極を駆動するモータ等を含む。
【0019】
ロボット1のベース14には、ワールド座標系71の原点が設定されている。ワールド座標系71は、ロボット1の位置および姿勢が変化したときに不動であり、基準座標系とも称される。ロボット1には、作業ツールの任意の位置に設定された原点を有するツール座標系72が設定されている。ツール座標系72は、溶接ガン5と共に位置及び姿勢が変化する。本実施形態では、ツール座標系72の原点は、ツール先端点72a(固定電極の先端点)に設定されている。例示として、本実施形態では、ロボット1の位置は、ツール先端点の位置(ツール座標系72の原点の位置)に対応する。また、ロボット1の姿勢は、ワールド座標系71に対するツール座標系72の姿勢に対応する。
【0020】
図2には、それぞれの関節部における関節軸J1からJ6が示されている。それぞれの関節軸J1からJ6において、関節部の角度D1からD6が定められる。例えば、関節部の角度は、関節部における構成部材同士の角度に相当する。また、関節部の角度は、それぞれの関節部に対応して配置された駆動モータの回転位置に対応する。
【0021】
図1に示すように、キャリブレーション装置130は、指令生成部131と、指令位置取得部132と、測定位置取得部133と、機構データ校正部134と、機構データ出力部135と、機構データ修正部136とを含む。
【0022】
指令生成部131は、ロボット1を任意の位置に移動させる指令を生成する。ロボット制御装置30は、指令生成部131が生成する指令に従ってロボット1の各軸のモータのサーボ制御を実行するサーボ制御部(不図示)を備えている。
【0023】
指令位置取得部132は、指令生成部131が出力する現在の指令位置を取得し記憶する。現在の指令位置は、例えば記憶部140に記憶される。
【0024】
測定位置取得部133は、三次元測定器20に測定指令を与え、測定対象(例えば、ツール先端点72a)の三次元位置情報を取得し記憶する。測定された三次元位置情報は、例えば記憶部140に記憶される。
【0025】
図3にロボットの指令位置及び測定位置の収集処理の動作フローを示す。当該収集処理はキャリブレーション装置130(プロセッサ)による制御の下で実行される。指令生成部131は、任意の位置にロボット1を移動させる指令を生成しロボット1を動作させる(ステップS1)。次に、指令位置取得部132は、ロボット1に対する指令位置を記録する(ステップS2)。次に、測定位置取得部133は、三次元測定器20により測定したロボット1の位置(例えば、ツール先端点72aの位置)を記録する(ステップS3)。キャリブレーション装置130は、ステップS1からS3の処理を、指定回数に到達するまで実行する(ステップS4:NO)。なお、指定回数は、機構データの同定計算を行うのに十分なデータ(指令位置、測定位置)を得るための回数である。ステップS1からS3の処理が指定回数に到達すると本処理を終了する(ステップS4:YES)。これにより機構データの同定のために必要な指令位置と測定位置のセットが収集される。
【0026】
機構データ校正部134は、指令位置取得部132が保持する指令位置と、三次元測定器20により測定された測定位置との差に基づいて機構データを計算する。機構データには、ロボットの隣り合う関節軸間の相対関係を表すためのDHパラメータが含まれる。DHパラメータは、ロボットの各駆動軸の角度位置とロボットの先端位置との関係を定める関係式において用いられるDH法(Denavit Hartenberg)法におけるパラメータである。DH法では、それぞれの関節軸に座標系を設定し、互いに隣り合う関節軸の座標系同士の間の関係に基づいてロボットの位置および姿勢を表現する。DH法では、パラメータθ,d,a,α,βが使用される。各パラメータの意味を以下に示す。
θ:xi-1軸からxi軸までの回転角(zi-1軸まわり)
d:第i-1座標系原点から、zi-1軸とxi軸との交点までの距離(リンク長)
a:zi-1軸とxi軸との交点から、第i座標系原点までの距離(関節軸同士間の距離)
α:zi-1軸からzi軸までの回転角(xi軸まわり)
β:zi-1軸からzi軸までの回転角(yi軸まわり)
【0027】
機構データには、機構誤差パラメータが含まれる。機構誤差パラメータは、DHパラメータ(θ,d,a,α,β)の誤差、各駆動軸の三次元方向に発生するトルクに対するバネ定数(重力或いは外力によるアームの撓みを表す要素)、各軸のエンコーダ出力と回転量の関係をモデル化した角度伝達誤差など、ロボットの先端位置及び姿勢を変化させる要素を含んでいても良い。
【0028】
例えば、各軸のx,y,z軸まわりに生じるトルクに対する各軸の撓みを補正する場合、各軸に3つのばね定数を誤差パラメータとして持たせ、トルク×バネ定数を上記θ,α,βに補正量として加算しても良い。
【0029】
角度伝達誤差に関しては、エンコーダ出力(x)に対する回転量(y)の比(a)を誤差パラメータとして持つモデル(y=ax)、或いは、エンコーダ出力(x)と回転量(y)の関係を定式化したモデル(y=ax+b・cos(x))を用いて、上記θ,α,βに補正量として加算しても良い。
【0030】
また、機構データは、ワールド座標系の原点の位置の誤差、空間補正のための各軸座標値と直交座標値のテーブルを含んでいても良い。
【0031】
機構データは、ロボットにおいて互いに隣接する関節部同士の間の相対的な位置関係を示す行列または関係式を含んでも良い。この場合、機構データには、上記のDHパラメータによって定められた隣り合う関節部同士の位置関係を定めた同次変換行列T、この同次変換行列Tを展開した関係式が含まれ得る。
【0032】
図2を参照して、座標系75は、k番目の関節部における座標系を示す。座標系76は、k番目の関節部の隣の(k+1)番目の関節部における座標系を示す。k番目の座標系から(k+1)番目の座標系を算出するための同次変換行列T
k、およびフランジ座標系からツール座標系を算出するための同次変換行列T
UTとすると、1番目の座標系からツール先端点の位置P
Pを算出するための同次変換行列T
1Pは、次の式(1)で表すことができる。
【0033】
T1P=T1T2 ... TnTUT …(1)
【0034】
式(1)の同次変換行列を展開すると、1番目の座標系からツール先端点の位置PPを算出するための関係式を得ることができる。この同次変換行列または関係式は、設計値に対する誤差を含んでいても良い。例えば、機構データは、設計値のパラメータaiに対して誤差Δaiを含むパラメータ(ai+Δai)および設計値のパラメータαiに対して誤差Δαiを含むパラメータ(αi+Δαi)等によって定められる変換行列または関係式であっても良い。
【0035】
機構データ校正部134は、測定位置と指令位置との誤差が最小になるように、最小二乗法などの手法を用いて機構データを同定する。上述の誤差パラメータを要素とするベクトルをqとすると、ロボット先端部の三次元位置を示すベクトルpは、誤差モデルを考慮した関数fにより以下の様に表すことができる。
p=f(q)
【0036】
ロボット先端部の指定位置と測定位置のずれ量を表すベクトルΔpは、各誤差パラメータの微小変動の線形結合の和で以下の様に近似できる。なおJAはヤコビアンである。
Δp=(∂p/∂q)・Δq=JA・Δq
【0037】
三次元測定器は3次元位置の測定結果を得ることから、一つの姿勢計測から3つの方程式が成り立つ。これらのを複数の計測姿勢に拡張することで、これらの対応したずれ量を示すベクトルΔrとヤコビアンDが得られ、次のように表すことができる。
Δr=D・Δq
【0038】
Δrを最小とする繰り返し推定問題を解くことで誤差パラメータを同定するのが一般的である。
【0039】
以上のように、機構データ校正部134は、ロボットの位置の実際の誤差を反映するように機構データをキャリブレーションすることができる。
【0040】
機構データ出力部135は、キャリブレーションされた機構データを出力することができる。機構データ出力部135は、機構データをファイル形式で出力することができる。機構データの出力先は、外部デバイスでも良いし、キャリブレーション装置130内の記憶部140でも良い。機構データ出力部135から生成される機構データファイル90は、仮想ロボットに誤差を発生させる目的で使用する場合と、実ロボットでの誤差を補正する目的で使用される場合とで、別の形式にしてもよい。或いは、仮想ロボットに誤差を発生させる目的で使用する側の装置と、実ロボットでの誤差を補正する目的で使用する側の装置で共通に参照可能なデータ形式とし、実ロボット、仮想ロボットの読み込み側で内容、使用方法を判別するようにしても良い。
【0041】
機構データの機構誤差パラメータの一つの要素としてのアームの重力による撓みについて
図4を参照し説明する。
図4(及び
図5)では、説明を簡単にするため、ロボットをアーム61、62と、関節部63とを有する構成としている。アーム62が重力の影響により下方に撓むものとする。
図4に示すように、アーム62に重力による撓みが発生する場合、機構データ校正部134により上述のように算出される機構データはこの撓みの誤差を反映する。この機構データ(機構誤差パラメータ)を用いることで仮想ロボットのアーム62に実ロボットに生じる重力による撓みと同じ撓みを生じさせることができる(図中矢印A1)。他方、実ロボット用の機構データとしては、アームが撓んでも
図4に図示のロボットの位置姿勢に到達できるように、仮想ロボットに生じさせる誤差とは逆方向に補正が掛けられるようなデータとしても良い(図中矢印B1)。
【0042】
機構データの機構誤差パラメータの一つ要素としての軸間のねじれについて
図5を参照して説明する。
図5に示すように、アーム61に軸間のねじれによる誤差が生じているとする。この場合、機構データ校正部134により上述のように算出される機構データはこの軸間ねじれを反映する。この機構データ(機構誤差パラメータ)を用いることで仮想ロボットのアーム61に実ロボットに生じる軸間ねじれと同じ軸間ねじれ生じさせることができる(図中矢印A2)。他方、実ロボット用の機構データとしては、実ロボットでは、軸間ねじれが生じていても
図4に実線で図示の位置姿勢に到達できるように、仮想ロボットに生じさせる誤差とは逆方向に補正が掛けられるようなデータとしても良い(図中矢印B2)。
【0043】
機構データの機構誤差パラメータの一つとしての角度伝達誤差について
図6を参照して説明する。機構データ校正部134により上述のように算出される機構データは角度伝達誤差を反映する。機構データが表す角度伝達誤差が、
図6の実線のような特性であるとする。この場合、仮想ロボットに実ロボットで生じている角度伝達誤差を生じさせるため、仮想ロボットには、
図6の実線のような角度伝達誤差A3が付与される。他方、実ロボット用の機構データとしては、実線のような角度伝達誤差による位置の誤差が補正されるように、実線の角度伝達誤差とは逆特性となる破線の特性のような角度伝達誤差B3を付与するようにデータを生成しても良い。
【0044】
機構データ修正部136は、実ロボットの機構データの各要素について修正・或いは修正しないように設定する機能を提供する。各機構誤差パラメータについて適用する割合を指定して修正を行うようにしてもよい。
【0045】
なお、実ロボットに対して機構データの修正(キャリブレーション済み機構データの適用)を行わない場合、機構データを適用した仮想ロボットを用いて作成されたオフラインプログラムを用いるようにしても良い。実ロボットに対して機構データの修正(キャリブレーション済み機構データの適用)を行う場合、適用前に教示済みのプログラムやシステムに保存されている位置データを変換することで、適用前に教示した位置データを再度達成できるようにすることも可能である(後述の第2実施形態、第4実施形態等を参照)。
【0046】
上述のように機構データ校正部134により機構データを算出し、機構データ出力部135により機構データを出力できるようにすることで、オフライン教示装置50においてこれを用い、仮想ロボットに実ロボットの誤差を反映させることができるようになる。その結果、誤差を含んだ仮想ロボットを用いてプログラムの作成・変換を行うことが可能になる。
【0047】
さらに、機構データ修正部136を有することで、オフラインでのプログラムの作成・変換方法に応じて実ロボットに機構データを適用する割合を選択することができる。その結果、機構データ適用前に教示した位置データの数などを勘案し、実ロボットに機構データを適用する/しない或いは適用前に教示したデータの修正が不要な程度だけ適用するなど、キャリブレーションした機構データを最適な形態でロボットに適用することも可能になる。
【0048】
オフライン教示装置50は、キャリブレーション装置130により出力される機構データ(キャリブレーションされた機構データ)を用いることで、仮想ロボットを機構データを反映した適切な位置に到達させることができる。これにより、オフライン教示装置50は、正確な教示(オフラインプログラミング)を行うことを可能とする。
【0049】
特に、実施形態において、機構データ(機構誤差パラメータ)には、(a)ロボットのリンク長や組付け誤差など、計測によるデータ取得では精確にCADモデルには反映することができない要素や、(b)重力による撓みや角度伝達誤差など、CADモデルには反映できない要素を含み得る。したがって、オフライン教示装置50は、上記(a),(b)のような機構誤差パラメータを含む機構データを反映した精確な教示を行うことができる。
【0050】
図7に、オフライン教示装置50の機能ブロック図を示す。オフライン教示装置50は、プロセッサ150、メモリ(記憶部156)、表示部154、操作部155、更に入出力インタフェース(不図示)等、一般的なコンピュータとしての構成を有していても良い。
図7に示すように、オフライン教示装置50は、機構データ読み込み部151と、モデル修正部152と、仮想ロボット制御部153とを含む。なお、オフライン教示装置50は、ロボットの教示に係わるUI(ユーザインタフェース画面)を表示し、UI画面に対する操作を受け付けるための構成として表示部154及び操作部155を有している。操作部155は、キーボード、マウス、或いは、タッチパネルである。タッチパネルの場合、表示部154と操作部155は一体的に構成される。表示部154は、例えばフラットパネルディスプレイを有する。
【0051】
機構データ読み込み部151は、機構データファイル90を読み込み記憶する機能を提供する。例えば、機構データ読み込み部151は、
図8に示すようなUI画面を表示部154に表示して機構データを仮想ロボットに適用する操作(すなわち、機構データを読み込む操作)を受け付ける。
図8に示すUI画面は、仮想ロボットモデル1Mと、機構データファイル90を表す画像とを含んでいる。このUI画面を介して、ユーザが機構データファイル90を仮想ロボットモデル1Mにドラッグアンドドロップすることで、仮想ロボットモデル1Mに機構データファイル90中の機構データが適用される。機構データ読み込み部151は、読み込んだ機構データを、例えば記憶部156に記憶すると共に、機構データをモデル修正部152と仮想ロボット制御部153に送る。
【0052】
モデル修正部152は、機構データのうち、DHパラメータ等の情報から、仮想ロボットのCADモデルを修正する。DHパラメータを用いることで、モデル修正部152は、リンク長や組み付け誤差等を精確に仮想ロボットのCADモデルに反映することができる。
【0053】
モデル修正部152は、更に、ワークや周辺装置のCADモデルを修正する機能を備えていても良い。この場合、モデル修正部152は、寸法可変の変数で定義されたワークや周辺装置の三次元モデルを、三次元測定器20を用いて計測した寸法に基づき修正することができる。
【0054】
仮想ロボット制御部153は、機構データに基づいて、ロボットの位置を補正するための補正量を算出することができる。仮想ロボット制御部153は、仮想ロボットを制御する際に、算出された補正量とは逆方向に補正が加わるように動作指令を生成する。これにより、実ロボットで発生する誤差を仮想ロボットに反映するように仮想ロボットを動作させることができる。補正量の具体的な計算手法について以下に説明する。
【0055】
オフライン教示装置50は、以下の2つの機構データを保持しているものとする。
(D1)更新前の機構データ(キャリブレーションによる更新前の機構データ)
(D2)更新後の機構データ(キャリブレーションによる更新後の機構データ)
(手順K1)適用前の機構データ(D1)における動作指令における位置データを各軸位置(a)とする。各軸位置(a)を適用前の機構データ(D1)を用いて順変換(順運動学による変換)しロボット手先の直交位置pを得る。
(手順K2)続いて、直交位置pを適用後の機構データ(D2)を用いて逆変換(逆運動学による変換)し、各軸位置(b)を得る。
(手順K3)(b)-(a)が補正量を表す。
【0056】
実ロボットに「適用後の機構データ(D2)」を適用しない場合において、動作指令の位置データ(各軸位置(a))を「適用後の機構データ(D2)」が適用された位置データに変換するには、動作指令の位置データ(各軸位置(a))に補正量を加算する。
実ロボットに「適用後の機構データ(D2)」を適用する場合において、動作指令の位置データ(各軸位置(a))を、「適用後の機構データ(D2)」が適用されていない位置データに変換するには、動作指令の位置データ(各軸位置(a))から補正量を減算する。
なお、上述の手順による補正量の計算は、ロボットを入れ替える場合にも適用することができる。
【0057】
仮想ロボット制御部153は、上述のように求められる補正量とは逆方向の補正がかけられるように動作指令を生成し、現実のロボットで発生している誤差が仮想ロボットにも発生するように制御することができる。
【0058】
これにより、仮想ロボット制御部153は、例えばロボットの姿勢により変化する重力によるたわみや、角度伝達誤差を補正量の計算に加味し、仮想ロボットに導入することができる。これにより、干渉検出やプログラムの作成・変換の精度を、ロボットの姿勢によらず向上させることが可能となる。
【0059】
オフライン教示システムの一つのセルは、例えばロボットの数が30台を超えることがあり、1台ずつファイルを選択して仮想ロボットに機構データを適用する操作を行うには時間を要する場合がある。また、重力による撓みに関連する機構データは、同一のロモットモデルであれば使いまわすことが可能である。この点、上述したように、機構データ読み込み部は、ドラッグアンドドロップにより機構データをロボットモデルに適用できる構成を採用した。これにより、同一の機構データを複数の仮想ロボットに容易に適用可能となり、多数のロボットに機構データを適用する場合においても時間を短縮することが可能となる。
【0060】
第2実施形態
以下、第2実施形態に係るプログラム変換装置250について説明する。プログラム変換装置250は、更新された機構データを反映した適正な位置姿勢にロボットを到達させるように動作プログラムの位置データを変換する機能を提供する。他方、更新された機構データをロボットに適用すると、適用前に動作プログラム内に教示した位置データを使用できなくなる可能性がある。本実施形態のプログラム変換装置250は、更新された機構データがロボットに適用された場合において、適用しない場合と同じ位置に到達するようにする動作プログラムの位置データを変換する機能をも提供するように構成される。
【0061】
図9に示すように、本実施形態では、プログラム変換装置250は、オフライン教示装置50のプロセッサによる機能として実現されるものとする。なお、プログラム変換装置250をロボット制御装置30内のプロセッサにより実現される機能として構成する例も有り得る。
【0062】
図9にプログラム変換装置の機能ブロック図を示す。プログラム変換装置250は、プログラム抽出部251と、プログラム選択部252と、機構データ読み込み部253と、紐づけ画面制御部260とを含む。
【0063】
機構データ読み込み部253は、キャリブレーション装置130により出力される機構データファイル90(すなわち、実ロボットで校正された機構データ)を読み込んで記憶部254に記憶する。
【0064】
プログラム抽出部251は、プログラム一覧から、校正されたロボットの位置データを含むプログラムを抽出し表示画面に列挙する。プログラム選択部252は、ユーザ操作に基づき、列挙されたプログラムから、少なくとも一つのプログラムを選択する機能を提供する。プログラム選択部252を介したプログラムの選択に応じて、紐づけ画面制御部260が呼び出される。
【0065】
図9に示すように、紐づけ画面制御部260は。紐づけプログラム選択部261と、プログラム表示部262と、紐づけ部263と、紐づけ設定部264と、変換部265と、変換選択部266と、変換選択設定部267と、位置修正部268とを含む。
【0066】
紐づけプログラム選択部261は、選択されたプログラムを表示画面に列挙し、位置データの変換に必要なデータが不足しているプログラムを認識可能に表示する。例えば、紐づけプログラム選択部261は、位置データの変換に必要なデータが不足しているプログラムについて表示色を変えること等を行っても良い。
【0067】
プログラム表示部262は、紐づけプログラム選択部261で選択されたプログラムの内容に関する情報と、紐づけ部263及び紐づけ設定部264により提供される各種情報を表示する。
【0068】
紐づけ部263は、動作プログラムに基づき、位置データの変換に必要なデータを推定して表示し、表示結果をユーザが修正することができるようにする機能を提供する。紐づけ設定部264は、位置データに含まれる情報と、変換に必要な推定方法とを事前に設定する機能を提供する。
【0069】
変換選択部266は、位置データ毎に変換する/しないを設定する機能を提供する。変換選択設定部267は、直線、各軸、円弧などの動作形式や、位置データの位置形式(直交、各軸)に応じて変換する/しないを設定する機能を提供する。変換選択部266は、位置データ毎に変換する/しないを設定するためのユーザ入力を受け付けるように構成されていても良い。変換選択部266は、変換選択設定部267による設定に従って位置データ毎に変換する/しないを決定することができる。変換選択設定部267は、ユーザ入力によって設定情報を生成できるように構成されていても良い。
【0070】
変換部265は、更新された機構データに基づいて補正量を計算し、位置データに加算或いは減算する。すなわち、変換部265は、動作プログラム内の位置データを、
(F1)実ロボットに機構データを適用しない場合に、適用した場合と同じ位置となる位置データ、或いは、
(F2)実ロボットに機構データを適用した場合に、適用しない場合と同じ位置となる位置データ、に変換する機能を提供することができる。ここで、位置データを補正する量の割合を指定可能としても良い。変換部265は、位置データを変換できない場合に、ユーザに報知するようにしても良い。変換部265は、位置データが相対位置として設定されている場合には、絶対位置に戻してから変換を実行し、相対位置に戻すように動作しても良い。
【0071】
変換部265は、位置データに対して適用する補正量を以下の様に算出して位置データの変換を行う。
プログラム変換装置250は、以下の機構データを保持している。
(D1)更新前の機構データ(キャリブレーションによる更新前の機構データ)
(D2)更新後の機構データ(キャリブレーションによる更新後の機構データ)
プログラム変換装置250は、上述の第1実施形態で説明した(手順K1)から(手順K3)により補正量を計算する。
実ロボットに機構データ(D2)を適用しないで、機構データ(D2)が適用された位置データに変換するには、各軸位置(a)に補正量を加算すればよい。
実ロボットに機構データ(D2)を適用して、機構データ(D2)が適用されていない位置に変換するには、各軸位置(a)から上記補正量を減算する。
直交形式で教示されている場合は、機構データ(D1)で逆変換して各軸位置(a)を得る。
直交形式の場合は、補正量を加算・減算した各軸位置を、機構データ(D1)で順変換して直交位置を得る。
【0072】
上述のような補正量の適用は、ロボットを入れ替えて機構データを更新する場合にも対応することができる。
【0073】
変換部265による上述の変換機能を
図12の模式図で説明することができる。符号301がオフラインプログラミングで到達させたいロボットの位置姿勢であるとする(上述の各軸位置(a)に相当する)。実ロボットは、重力による撓み等の影響で、符号301で示す位置姿勢よりも下方に撓んだ位置姿勢をとる(符号303で指すロボットに付した矢印A4)。符号302に示すロボットの位置姿勢は、上述の変換処理で求められた補正量を符号301で示すロボットの位置姿勢(各軸位置(a))に加えることで得られたものである。補正後のロボットの位置データは、符号302で示すようなものとなるが、実ロボットでは重力による撓みの影響により、符号303で示すようにロボットは目標の位置(符号301で示すロボットの位置)に到達することとなる。
【0074】
位置修正部268は、上記変換により得られた位置を、オフライン教示装置50上で修正する機能を提供することができる。
【0075】
図10及び
図11を参照し、紐づけ画面制御部260の機能として提供されるUI(ユーザインタフェース)画面について説明する。
図10は、変換するプログラムを選択するためのUI画面の構成例を示す図である。
図10に示すUI画面280は、プログラム抽出部251及びプログラム選択部252による機能として提供される。UI画面280は、プログラム抽出部251により抽出されたプログラムの一覧を表示するプログラム一覧表示領域281を含む。ユーザは、プログラム一覧表示領域281から、変換の対象とするプログラムを選択することができる。ユーザは、例えばプログラム一覧表示領域281でプログラムを選択し、追加ボタン283を押下することで、当該選択したプログラムを、変換対象のプログラムの一覧を表示する変換対象プログラム一覧表示領域282に追加することができる。
【0076】
図11は、変換の詳細設定に関するUI画面290を示している。UI画面290は、UI画面280内の「推定値を確認」ボタン284を押下することに応じて起動されても良い。すなわち、UI画面290は、紐づけ部263が位置データの変換に必要なものとして推定したデータを確認する画面としての機能も有している。UI画面290は、紐づけ画面制御部260による機能として提供される。
【0077】
図11に示すように、UI画面290は、当該UI画面290での処理の対象となるプログラム(紐づけの対象とするプログラム)を選択するためのプログラム一覧表示領域291を含む。当該プログラム一覧表示領域291には、UI画面280において選択され変換対象プログラム一覧表示領域282に含まれているプログラムが表示される。
【0078】
UI画面290は、プログラム一覧表示領域291から選択したプログラムの内容を表示するプログラム表示領域292を含む。ここでは、プログラム一覧表示領域291から、プログラム‘ABC’が選択されているものとする。プログラム表示領域292には、プログラム‘ABC’の内容が表示されている。
【0079】
プログラム表示領域292には、プログラム‘ABC’の内容が各命令文ごとに示されている。
【0080】
プログラム表示領域292の右の列の欄293は、紐づけ部263による、変換に必要なデータの推定結果としての負荷設定情報を表示する欄である。欄293で提供される機能は、紐づけ部263の機能に相当する。本例では、負荷情報としての負荷設定番号が設定されている。
【0081】
紐づけ部263は、プログラムの内容に基づき、位置データに対応する負荷情報を推定することができる。例えば、プログラムに含まれる負荷設定命令(PAYLOAD)から位置データに適用される負荷情報(負荷設定番号)を推定することができる。この場合、負荷設定命令(PAYLOAD)の配置位置に基づき、位置データに適用される負荷設定を把握することができる。例えば、位置データを含む命令文より前にあり、当該命令文に最も近い位置にある負荷設定命令を当該位置データについての負荷設定情報として推定しても良い。
【0082】
ユーザは、紐づけ部263により推定され欄293に設定されている負荷情報を確認し、必要に応じ修正を行うことができる。
【0083】
このように紐づけ部263により負荷設定を推定するようにして、且つ、ユーザが修正できる構成とすることで、負荷設定に関するユーザの手間を省略することができる。また、位置データに対して複数の負荷設定が存在する状況(例えば、動作プログラム内において一つの位置レジスタに対して複数の負荷設定が含まれるような状況)においても位置データに対し適切に負荷情報を設定することができる。
【0084】
紐づけ部263は、紐づけ設定部264による設定情報にしたがって負荷設定を行うように構成されていても良い。例えば、紐づけ設定部264は、位置データに含まれるツール座標系番号と負荷設定番号との対応を表す情報を保有しておく。紐づけ部263は、この設定情報に従って、各位置データの負荷設定番号を推定して設定することができる。
【0085】
プログラム表示領域292の更に右側の欄294では、位置データを含む命令文毎に位置データを変換するか否かを指定することができる。欄294で提供される機能は、変換選択部266の機能に相当する。ここでは、プログラムに含まれる位置データ毎に変換を行うか否かを設定することができる。従って、ユーザは、位置データの性質に応じて変換を行うか否かを適宜決定することができる。例えば、ホーム位置など、ロボットを変換前の位置に戻したいような場合、ユーザは当該位置については変換を行わない設定をすることができる。
【0086】
変換選択部266は、変換選択設定部267の設定情報に従って変換を行うか否かの自動設定を行うように構成されていても良い。例えば、変換選択設定部267に、「ロボットの特定の動作形式や位置データに対して変換する/変換しない」を定義する設定情報をもたせる。これにより、ロボットの特定の動作形式や位置データに対して一括して変換の設定(変換を行う/変換を行わない)が可能になる。具体的には、各軸動作の場合には精度が要求されないため変換を行わない、といった動作を実現することができる。
【0087】
位置修正部268により、変換された位置を確認し、位置を設定し、プログラムの位置データに反映することができる。例えば、基準位置には各軸範囲が指定されていて、範囲外だとアラームが発生する場合に、アラームが発生しない位置に修正することができる。位置修正部268は、変換後の位置データを修正するためのUI画面を提供し、位置データを修正する操作を受け付けるように構成さえていても良い。
【0088】
第3実施形態
以下、第3実施形態に係るプログラム変換装置350について説明する。ロボットに機構データを適用した場合、ロボットの到達位置のみでなく軌跡も変化する。プログラム変換装置350は、第2実施形態に係る変換部265のように機構データに基づいて動作プログラム内の位置データを変換する機能を有すると共に、位置データを変換した結果として、プログラム変換の前後で軌跡に一定以上の偏差が生じた場合に当該偏差が小さくなるように位置データを修正する機能を提供する。
【0089】
本実施形態では、プログラム変換装置350は、オフライン教示装置50のプロセッサによる機能として実現されているものとする。なお、プログラム変換装置350をロボット制御装置30内のプロセッサにより実現される機能として構成する例も有り得る。
【0090】
図13に示すように、プログラム変換装置350は、プログラム選択部351と、軌跡記憶部352と、機構データ読み込み部353と、変換部354と、軌跡比較部355と、教示位置修正部356とを備える。
【0091】
プログラム選択部351は、変換の対象となるプログラムを選択する機能を提供する。
【0092】
機構データ読み込み部353は、キャリブレーション装置130により生成され出力される機構データファイル90を読み込み記憶部360に記憶する。
【0093】
変換部354は、プログラム選択部351を介して選択されたプログラムにおける位置データを、機構データに基づいて得られる補正値により修正することでプログラムの変換を行う機能を提供する。なお、変換部354は、第2実施形態における変換部265による変換機能と同じ変換機能を有するものとする。
【0094】
軌跡記憶部352は、
・プログラム選択部351によって選択された動作プログラムに基づくロボットの動作軌跡(すなわち、機構データによる機構誤差を適用する前の動作軌跡)(以下、動作軌跡T1と記す)と、
・変換後の動作プログラムに基づくロボットの動作軌跡(機構データによる機構誤差を適用した後の動作軌跡)(以下、動作軌跡T2と記す)と、を記憶する。
【0095】
軌跡比較部355は、変換の前後でのロボットの動作軌跡を比較し、偏差が一定以上発生しているか否かを判断する。具体的には、軌跡比較部355は、変換部354が上述の変換機能(F1)による変換を行う場合には、変換後の位置データによる動作軌跡と上記動作軌跡T1とを比較する。他方、軌跡比較部355は、変換部354が上述の変換機能(F2)による変換を行う場合には、変換後の位置データによる動作軌跡と上記動作軌跡T2とを比較する。変換の前後でロボットの動作軌跡に一定以上の偏差が生じている場合、教示位置修正部356は、変換後の動作プログラムにおける少なくとも一つの位置データを、偏差が小さくなるように修正する。
【0096】
実ロボットに機構データ(機構誤差)を適用した場合、位置データだけでなく、動作軌跡も変化する。すなわち、実ロボットに機構データを適用し、機構データ適用前の目標位置へ動作するようにプログラムを変換しても、動作軌跡が変化してしまう。それにより、変換前には生じなかった干渉(ロボットと周辺機器等との干渉)が生じる可能性が有る。この点、本実施形態によれば、変換の前後における軌跡変化を小さくすることができる。これにより、動作プログラムを軌跡の変化が少なくなるように運用することができる。
【0097】
なお、軌跡データを時系列データとしてみることで、ロボットの動作速度や動作時間に変化が生じないように軌跡を変更すること(位置データを修正すること)も可能である。本実施形態で記載した構成の機能は、第2実施形態で記載したプログラム変換装置250の機能として提供されても良い。
【0098】
第4実施形態
以下、第4実施形態に係る位置データ変換装置450について説明する。生産稼働中のロボットシステムに対して更新された機構データを適用する場合を考慮する。この場合、ロボットの動作プログラム内位置データのみでなく、事前に教示設定した座標系や原点復帰位置など、システム内で共有されるグローバルな位置データに関しても適切な変換を行うことが望まれる。第4実施形態に係る位置データ変換装置450は、オフライン教示装置50又は実ロボット(ロボット制御装置30)に教示設定されている位置データを取得し、機構データに基づいて位置データを変換し、オフライン教示装置50又は実ロボット(ロボット制御装置30)の位置データを変更する。
【0099】
本実施形態では、位置データ変換装置450は、オフライン教示装置50のプロセッサによる機能として実現されているものとする。
【0100】
図14は、第4実施形態に係るオフライン教示装置50の機能ブロック図である。オフライン教示装置50は、位置データ変換装置450を備える。オフライン教示装置50は、動作プログラム内に設定される位置データを位置データ保存部461内に保有している。また、ロボット制御装置30は、実ロボットに関し教示設定される位置データを位置データ保存部431内に保有している。オフライン教示装置50は、実ロボットに設定されている位置データをロボット制御装置30から取得し位置データ保存部461内に保存する。
【0101】
機構データ読み込み部455は、キャリブレーション装置130が出力する機構データファイル90を読み込み、記憶部460に記憶する。
【0102】
変換データ抽出部451は、変換可能な位置データを抽出し、変換データ選択部452に提供する。変換データ選択部452は、抽出された位置データを選択可能に表示する。変換データ選択部452、変換すべき位置データを選択するためのUI画面を表示し、ユーザ操作に基づき位置データを選択するように構成されていても良い。
【0103】
紐づけ部454,紐づけ設定部453は、それぞれ、第2実施形態における紐付け部263,紐づけ設定部264と同じ機能を有する。紐付け部454,紐づけ設定部453を備えることで、変換に必要なデータが位置データに含まれない場合の変換を効率的に行うことができる。
【0104】
変換部456は、選択された位置データに関し、実ロボットに前記機構データを適用した場合に、該実ロボットが前記機構データが適用されない場合に到達する位置と同じ位置に到達するように前記位置データを変換することができる。
【0105】
生産稼働中のロボットには、プログラム内の位置データのみでなく、事前に教示設定した座標系や原点復帰位置など、ロボットシステム全体で共有可能な位置データが存在する。本実施形態に係るオフライン教示システムを生産稼働中のロボットに適用し、生産稼働中の実ロボットに機構データを適用した場合に、システム全体の位置データを適用前の位置に変換できる。本実施形態で記載した構成(変換部456等)の機能は、第2実施形態で記載したプログラム変換装置250の機能として提供されても良い。
【0106】
第5実施形態
第5実施形態に係るプログラム変換装置550について説明する。コンベヤ等により移動するワークに追従するトラッキング動作では、ワークに張り付いて動く座標系に対する位置教示を行う。第5実施形態に係るプログラム変換装置550は、機構データに基づき、トラッキングに用いられる動的座標系の位置データを変換する機能を提供する。
【0107】
本実施形態では、プログラム変換装置550は、オフライン教示装置50のプロセッサによる機能として実現されているものとする。なお、プログラム変換装置550をロボット制御装置30内のプロセッサにより実現される機能として構成する例も有り得る。
【0108】
図15は、第5実施形態に係るプログラム変換装置550の機能ブロック図である。
図15に示すように、プログラム変換装置550は、プログラム選択部551と、機構データ読み込み部552と、変換部553と、動的座標系設定部554とを備える。
【0109】
プログラム選択部551は、変換の対象となるプログラムを選択する機能を提供する。
【0110】
機構データ読み込み部551は、キャリブレーション装置130により生成され出力される機構データを読み込み記憶部560に記憶する。
【0111】
動的座標系設定部554は、動的に動く座標系の動きを設定する機能を提供する。動的座標系設定部554は、例えば、ユーザ入力に基づき、動的座標系の動きを設定する。動的座標系設定部554は、動的座標系の動きに関する情報を外部装置(例えば、ロボット制御装置)から取得しても良い。
【0112】
変換部553は、プログラム選択部551を介して選択された動作プログラムにおける位置データを、機構データに基づいて得られる補正値により修正することでプログラムの変換を行う機能を提供する。なお、変換部553は、第2実施形態における変換部265と同じ変換機能を有する。変換部553は、選択された動作プログラム内の位置データが、動的座標系に対する相対位置データの場合に、相対位置を絶対位置に変換し、絶対位置に変換された位置データを第2実施形態の変換部265と同様に処理により機構データに基づいて変換し、再度相対位置に戻す処理を行う。
【0113】
トラッキング動作では、外部からの信号に応じて動的座標が出現し、コンベヤやポジショナの動きに追従して動的座標系が動くように動作する。動的座標系の動きは、動作プログラムに関する設定情報として、例えば、「A地点から開始してBmm/secの速度でコンベヤ上を動く」など、開始位置、方向、速度、形状等を指定した情報を確認することができる。これにより、位置データに関連付けられた動的座標系が既知となるため、上述したように相対位置を絶対位置に変換した上で補正量を加算した後に、相対位置に戻すことで、トラッキングのためのプログラムも変換可能となる。本実施形態で記載した構成の機能は、第2実施形態で記載したプログラム変換装置250の機能として提供されても良い。
【0114】
第6実施形態
以下、第6実施形態に係るオフライン教示装置50について説明する。第6実施形態に係るオフライン教示装置50は、
(1)ロボットが到達する位置及び順序が、ワークモデルに設定されている教示位置情報及び教示順序情報に一致するようにプログラム内の位置データを変換する機能と、
(2)プログラムの位置データを、機構データを適用する前にロボットが到達していた位置に変換する機能と、を提供する。
【0115】
図16に示すように、オフライン教示装置50は、機構データ読み込み部151と、モデル修正部152と、仮想ロボット制御部153と、位置変換部651と、を備える。なお、
図16には、オフライン教示装置50が有する構成要素である表示部154も図示している。本実施形態に係るオフライン教示装置50は、ワークモデル情報652を有する。ワークモデル情報652には、ワークモデル、教示位置情報、及び教示順序情報が含まれる。
【0116】
機構データ読み込み部151、モデル修正部152、及び仮想ロボット制御部153は、第1実施形態に関し上述した機能を有する。すなわち、仮想ロボット制御部153は、モデル修正部152により修正されたCADモデル及び機構データに基づいて、位置データを修正するための補正値を求める機能を提供する。
【0117】
表示部154には、ロボットモデル、ワークモデル、その他の各種モデルの教示中の動作(シミュレーション動作)を表す画像が表示される。
【0118】
図17Aは、上記機能(1)(ロボットが到達する位置及び順序が、ワークモデルに設定されている教示位置情報及び教示順序情報に一致するようにプログラム内の位置データを変換する機能)を説明する図である。
図17AにはワークモデルWM含まれる教示位置情報及び教示順序情報の例が示されている。
図17Aに示すように、ワークモデルWMに4つの教示位置P[1],P[2],P[3],P[4]が規定されている。これらの教示位置は、P[1],P[2],P[3],P[4]の順序であることを表している。
【0119】
図17Aには、仮想ロボットに機構データを適用した後の、教示位置P[1]からP[4]に対応する仮想ロボットの到達位置M(1)からM(4)も示している。機構データを適用した結果として、仮想ロボットの到達位置M(1)からM(4)は、ワークモデルが指定する教示位置P[1]からP[4]と一致しない状態となっている。位置変換部651は、仮想ロボットが到達する教示順序と位置(M(1)からM(4))が、ワークモデルに含まれている教示順序と位置(P[1]からP[4])と一致するように、動作プログラム内の位置データを変換する。
【0120】
図17Bは、上記機能(2)(プログラムの位置データを、機構データを適用する前にロボットが到達していた位置に変換する機能)を説明する図である。
図17Aと同様に、ワークモデルWMに設定されている教示順序と位置はP[1]からP[4]であり、機構データ適用後の仮想ロボットの到達位置は、M(1)からM(4)である。位置変換部651は、仮想ロボットの到達する教示順序と位置が、仮想ロボットの到達位置M(1)からM(4)を対称中心としてワークモデルの教示位置と点対象の位置K(1)からK(4)となるように、動作プログラムの位置データを変換する。
【0121】
実ロボットに機構データを適用せず、上記機能(1)によりオフラインでプログラムの位置データを変更すると、実ロボットがワークモデルに合った理想的な位置(P[1]からP[4])に到達するプログラムを構築できる。
【0122】
他方、実機ロボットに機構データを適用し、更に、上記機能(2)によりオフラインでプログラムの位置データを変換すると、ロボットに機構データを適用する前にロボットが到達していた位置(M(1)からM(4))にロボットが到達する動作プログラムを構築することができる。
【0123】
なお、以上では、ワークモデルに指定された教示順序、位置(教示情報)に応じて動作プログラムの位置データを変換する構成例について説明したが、ワークモデルに代えて、教示位置と順序の情報(教示情報)を含むプログラムに関して、上述の手法を適用して、位置データの変換を行っても良い。本実施形態による位置変換部651の機能は、第2実施形態で記載したプログラム変換装置250の機能として提供されても良い。
【0124】
第7実施形態
以下、第7実施形態に係るオフライン教示装置50について説明する。第7実施形態に係るオフライン教示装置50は、仮想ロボットが到達する位置とワークモデルに指定されている教示位置との差が小さくなるようにワークモデルを修正する機能を提供する。
【0125】
図18に示すように、オフライン教示装置50は、機構データ読み込み部151と、モデル修正部152と、仮想ロボット制御部153と、表示部154と、レイアウト修正部751、ワークモデル情報752とを備える。
【0126】
機構データ読み込み部151、モデル修正部152、及び仮想ロボット制御部153は、第1実施形態に関し上述した機能を有する。ワークモデル情報752には、ワークモデル、教示位置情報、及び教示順序情報が含まれる。
【0127】
表示部154には、ロボットモデル、ワークモデル、その他の各種モデルの教示中の動作(シミュレーション動作)を表す画像が表示される。
【0128】
レイアウト修正部751は、仮想ロボットが到達する位置とワークモデルに指定されている教示位置との差が小さくなるようにワークモデルの位置姿勢を修正する。
【0129】
図19は、本実施形態に係るオフライン教示装置50の動作例を説明する図である。ワークモデルWMには、教示位置及び順序P[1]からP[4]が含まれている。仮想ロボットに機構データを適用することで仮想ロボットが到達する位置をM(1)からM(4)とする。レイアウト修正部752は、仮想ロボットが到達する位置M(1)からM(4)と、ワークモデルWMに含まれる教示位置P[1]からP[4]との差が小さくなるように、ワークモデルWM位置、姿勢を修正する。
図19には、レイアウト修正部752によりワークモデルWMの位置が修正され、修正後のワークモデル(符号WM2で示す)が仮想ロボットの到達位置M(1)からM(4)と概ね一致する状態となった状況が示されている。
【0130】
本実施形態によれば、現物(ワーク等)に合わせて教示された動作プログラムを用いて、ワーク等の位置・姿勢を修正することができるようになる。ワークのずれ量をモニタしたり、ワークの位置は固定されているとして、ロボットのズレ(経年劣化ぐあい)をモニタすることもできる。
【0131】
第8実施形態
以下、第8実施形態に係るオフラインのオフライン教示装置50について説明する。オフライン教示装置50は、機構データを適用した後の仮想ロボットと周辺装置等との干渉が発生した場合に、仮想ロボットの位置を変化させて干渉を防ぐ機能を提供する。
【0132】
図20に示すように、オフライン教示装置50は、機構データ読み込み部151と、モデル修正部152と、仮想ロボット制御部153と、表示部154と、干渉検出部851と、干渉回避動作生成部852と、ワークモデル情報853と備える。機構データ読み込み部151、モデル修正部152、及び仮想ロボット制御部153は、第1実施形態に関し上述した機能を有する。ワークモデル情報853には、ワークモデル、教示位置情報、及び教示順序情報が含まれる。
【0133】
干渉検出部851は、機構データを適用後の仮想ロボットが、周辺装置等と干渉していないかを検出する。
【0134】
干渉回避動作生成部852は、動作プログラム或いはワークモデル情報853に含まれる教示位置情報と教示順序とを基に、動作プログラムに基づいて仮想ロボットモデルを動作させた場合に干渉検出部851による干渉が検出されないように、動作プログラムに基づく軌跡を生成する。
【0135】
本実施形態によれば、実ロボットの誤差を含む仮想ロボットを用いるので高精度な干渉検出が可能になる。特に、ロボットが動作中に姿勢変化する際の誤差も仮想ロボットに反映でき、より高精度に干渉の検出が可能である。
【0136】
本開示について詳述したが、本開示は上述した個々の実施形態に限定されるものではない。これらの実施形態は、本開示の要旨を逸脱しない範囲で、または、特許請求の範囲に記載された内容とその均等物から導き出される本開示の趣旨を逸脱しない範囲で、種々の追加、置き換え、変更、部分的削除等が可能である。また、これらの実施形態は、組み合わせて実施することもできる。例えば、上述した実施形態において、各動作の順序や各処理の順序は、一例として示したものであり、これらに限定されるものではない。また、上述した実施形態の説明に数値又は数式が用いられている場合も同様である。
【0137】
上述の第2実施形態、第3実施形態、及び第5実施形態として記載したプログラム変換装置、及び、第4実施形態として記載した位置データ変換装置の各々の機能は、第1実施形態において記載したオフライン教示装置50の機能に追加する形で、或いは、仮想ロボット制御部153内の機能として実装されても良い。
【0138】
上述した実施形態において各種手順(指令位置及び測定位置の収集処理など)を実行するプログラムは、コンピュータに読み取り可能な各種記録媒体(例えば、ROM、EEPROM、フラッシュメモリ等の半導体メモリ、磁気記録媒体、CD-ROM、DVD-ROM等の光ディスク)に記録することができる。
【符号の説明】
【0139】
1 ロボット
20 三次元測定器
30 ロボット制御装置
40 教示操作盤
41 表示部
42 入力部
50 オフライン教示装置
90 機構データファイル
100 キャリブレーションシステム
130 キャリブレーション装置
131 指令生成部
132 指令位置取得部
133 測定位置取得部
134 機構データ校正部
135 機構データ出力部
136 機構データ修正部
140 記憶部
150 プロセッサ
151 機構データ読み込み部
152 モデル修正部
153 仮想ロボット制御部
154 表示部
155 操作部
156 記憶部
250 プログラム変換装置
251 プログラム抽出部
252 プログラム選択部
253 機構データ読み込み部
254 記憶部
260 紐づけ画面制御部
261 紐づけプログラム選択部
262 プログラム表示部
263 紐づけ部
264 紐づけ設定部
265 変換部
266 変換選択部
267 変換選択設定部
268 位置修正部
350 プログラム変換装置
351 プログラム選択部
352 軌跡記憶部
353 機構データ読み込み部
354 変換部
355 軌跡比較部
356 教示位置修正部
360 記憶部
450 位置変換装置
451 変換データ抽出部
452 変換データ選択部
453 紐づけ設定部
454 紐付け部
455 機構データ読み込み部
456 変換部
460 記憶部
550 プログラム変換装置
551 プログラム選択部
552 機構データ読み込み部
553 変換部
554 動的座標系設定部
560 記憶部
651 位置変換部
652 ワークモデル情報
660 記憶部
751 レイアウト修正部
752 ワークモデル情報
760 記憶部
851 干渉検出部
852 干渉回避動作生成部
853 ワークモデル情報
860 記憶部
【手続補正書】
【提出日】2023-04-24
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0007
【補正方法】変更
【補正の内容】
【0007】
本開示の一態様は、ロボットの機構誤差パラメータを含む第1機構データと動作プログラムを記憶可能な1又は複数のメモリと、1又は複数のプロセッサと、を備え、前記1又は複数のプロセッサは、前記第1機構データに基づいて前記動作プログラムの位置データを処理するためのデータを抽出し、前記データと前記位置データを紐づける、教示装置である。
【手続補正2】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ロボットの機構誤差パラメータを含む第1機構データと動作プログラムを記憶可能な1又は複数のメモリと、
1又は複数のプロセッサと、を備え、
前記1又は複数のプロセッサは、
前記第1機構データに基づいて前記動作プログラムの位置データを処理するためのデータを抽出し、
前記データと前記位置データを紐づける、
教示装置。
【請求項2】
前記1又は複数のプロセッサは、プログラム一覧を表示させると共に、該プログラム一覧から前記動作プログラムを選択する操作を受け付ける、請求項1に記載の教示装置。
【請求項3】
前記1又は複数のプロセッサは、前記動作プログラムにおける前記位置データを含む命令文と、前記データとを紐づけて表示させる、請求項1に記載の教示装置。
【請求項4】
前記データは、負荷設定に関する情報である、請求項3に記載の教示装置。
【請求項5】
前記1又は複数のプロセッサは、前記動作プログラムに含まれる負荷設定命令に基づき前記負荷設定に関する情報を推定する、請求項4に記載の教示装置。
【請求項6】
前記1又は複数のプロセッサは、前記データを修正する操作を受け付ける、請求項3に記載の教示装置。
【請求項7】
前記1又は複数のプロセッサは、予め設定された第1設定情報に含まれる推定方法に従って、前記データを抽出する、請求項1に記載の教示装置。
【請求項8】
前記1又は複数のメモリは、前記第1機構データとは異なる第2機構データを記憶し、
前記1又は複数のプロセッサは、
前記データに基づいて、前記第2機構データが適用されたロボット対して前記第1機構データが適用された場合に到達する位置と同じ位置に到達するように前記位置データを変換する、請求項1に記載の教示装置。
【請求項9】
前記1又は複数のメモリは、前記第1機構データとは異なる第2機構データを記憶し、
前記1又は複数のプロセッサは、前記データに基づいて、前記第1機構データが適用されたロボットに対して前記第2機構データが適用された場合に到達する位置と同じ位置に到達するように前記位置データを変換する、請求項1に記載の教示装置。
【請求項10】
前記1又は複数のプロセッサは、前記動作プログラムにおける前記位置データを含む命令文毎に、前記位置データの変換を行うか否かを指定する操作を受け付ける、請求項8または9に記載の教示装置。
【請求項11】
前記1又は複数のプロセッサは、予め設定された第2設定情報に従って、前記動作プログラムにおける前記位置データを含む命令文毎に、前記位置データの変換を行うか否かを設定する、請求項8または9に記載の教示装置。
【請求項12】
前記第2設定情報は、ロボットの特定の動作形式又は特定の位置データについて変換を行うこと又は行わないことを定義する情報を含む、請求項11に記載の教示装置。
【請求項13】
前記1又は複数のメモリは、仮想ロボットを記憶し、
前記1又は複数のプロセッサは、前記第1機構データに基づいて前記仮想ロボットを制御する、請求項1に記載の教示装置。
【請求項14】
前記ロボットは、前記1又は複数のメモリに記憶された仮想ロボットを含む、請求項1から9のいずれか一項に記載の教示装置。