(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024027266
(43)【公開日】2024-03-01
(54)【発明の名称】制御方法およびロボットシステム
(51)【国際特許分類】
B25J 9/10 20060101AFI20240222BHJP
【FI】
B25J9/10 A
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022129927
(22)【出願日】2022-08-17
(71)【出願人】
【識別番号】000002369
【氏名又は名称】セイコーエプソン株式会社
(74)【代理人】
【識別番号】100179475
【弁理士】
【氏名又は名称】仲井 智至
(74)【代理人】
【識別番号】100216253
【弁理士】
【氏名又は名称】松岡 宏紀
(74)【代理人】
【識別番号】100225901
【弁理士】
【氏名又は名称】今村 真之
(72)【発明者】
【氏名】石塚 諒
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS14
3C707BS12
3C707DS01
3C707KS05
3C707KS17
3C707KS20
3C707LT12
3C707LT17
3C707LT18
3C707LV19
3C707MT04
(57)【要約】
【課題】高い位置精度を有する制御方法およびロボットシステムを提供する。
【解決手段】制御方法は、3点以上の実空間での実基準位置を取得する実基準位置取得ステップと、ロボットを第1姿勢とし、制御点が各実基準位置に位置しているときのロボット制御座標系での制御点の位置である第1制御基準位置を取得する第1制御基準位置取得ステップと、ロボットを第2姿勢とし、制御点が各実基準位置に位置しているときのロボット制御座標系での制御点の位置である第2制御基準位置を取得する第2制御基準位置取得ステップと、実空間における制御点の目標位置を取得する目標位置取得ステップと、実基準位置、第1制御基準位置および第2制御基準位置に基づいて制御位置を決定する制御位置決定ステップと、を含む。
【選択図】
図7
【特許請求の範囲】
【請求項1】
ロボットの目標位置に対する制御位置を決定する制御方法であって、
3点以上の実空間での実基準位置を取得する実基準位置取得ステップと、
前記ロボットを第1姿勢とし、前記ロボットの制御点が各前記実基準位置に位置しているときのロボット制御座標系での前記制御点の位置である第1制御基準位置を取得する第1制御基準位置取得ステップと、
前記ロボットを前記第1姿勢に対して所定の軸まわりに回転させた第2姿勢とし、前記制御点が各前記実基準位置に位置しているときのロボット制御座標系での前記制御点の位置である第2制御基準位置を取得する第2制御基準位置取得ステップと、
前記実基準位置、前記第1制御基準位置および前記第2制御基準位置に基づいて前記制御位置を決定する制御位置決定ステップと、を含むことを特徴とする制御方法。
【請求項2】
前記第2姿勢は、前記第1姿勢を前記軸まわりに180°回転させた姿勢である請求項1に記載の制御方法。
【請求項3】
前記目標位置での姿勢は、前記第1姿勢と前記第2姿勢との間に位置する請求項1に記載の制御方法。
【請求項4】
前記ロボットを前記第1姿勢から前記軸まわりに回転させた第3姿勢とし、前記制御点が各前記実基準位置に位置しているときのロボット制御座標系での前記制御点の位置である第3制御基準位置を取得する第3制御基準位置取得ステップをさらに含む請求項1に記載の制御方法。
【請求項5】
前記第1制御基準位置取得ステップ後に行われ、3つ以上の前記実基準位置を頂点とする少なくとも1つの図形を前記実空間内に設定するとともに、前記第1姿勢での各前記図形内における実位置と制御位置との対応関係を表す第1変換関数を求める第1変換関数取得ステップと、
前記第2制御基準位置取得ステップ後に行われ、3つ以上の前記実基準位置を頂点とする少なくとも1つの図形を前記実空間内に設定するとともに、前記第2姿勢での各前記図形内における実位置と制御位置との対応関係を表す第2変換関数を求める第2変換関数取得ステップと、をさらに含み、
前記制御位置決定ステップは、前記図形の中から前記制御位置を算出するための対象図形を選択し、前記対象図形に対応する前記第1変換関数および前記第2変換関数に基づいて前記制御位置を決定する請求項1に記載の制御方法。
【請求項6】
前記第1姿勢での前記制御位置をpa、前記軸まわりの回転量をθaとし、
前記第2姿勢での前記制御位置をpb、前記軸まわりの回転量をθbとし、
前記目標位置の姿勢での前記軸まわりの回転量をθとしたとき、
前記目標位置に対応する前記制御位置pは、以下の式(1)から決定される請求項1に記載の制御方法。
【請求項7】
ロボットと、前記ロボットの駆動を制御する制御装置と、を有し、前記制御装置が前記ロボットの目標位置に対する制御位置を決定するロボットシステムであって、
前記制御装置は、
3点以上の実空間での実基準位置を取得し、
前記ロボットを第1姿勢とし、前記ロボットの制御点が各前記実基準位置に位置しているときのロボット制御座標系での前記制御点の位置である第1制御基準位置を取得し、
前記ロボットを前記第1姿勢に対して所定の軸まわりに回転させた第2姿勢とし、前記制御点が各前記実基準位置に位置しているときのロボット制御座標系での前記制御点の位置である第2制御基準位置を取得し、
前記実基準位置、前記第1制御基準位置および前記第2制御基準位置に基づいて前記制御位置を決定することを特徴とするロボットシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御方法およびロボットシステムに関する。
【背景技術】
【0002】
例えば、特許文献1に記載されているロボットシステムは、ロボット作業環境内に複数の作業原点を設定し、カメラの撮像画像に基づいて複数の作業原点のそれぞれについて計測位置を取得し、計測位置に基づいて各作業原点の位置情報を補正することによりロボットの動作精度を向上させる構成となっている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1のロボットシステムでは、ロボット作業中におけるロボットの姿勢の変化が考慮されていない。したがって、ロボット作業中にロボットの姿勢が変化する場合に、ロボットの動作精度の向上の効果が低減するおそれがある。
【課題を解決するための手段】
【0005】
本発明の制御方法は、ロボットの目標位置に対する制御位置を決定する制御方法であって、
3点以上の実空間での実基準位置を取得する実基準位置取得ステップと、
前記ロボットを第1姿勢とし、前記ロボットの制御点が各前記実基準位置に位置しているときのロボット制御座標系での前記制御点の位置である第1制御基準位置を取得する第1制御基準位置取得ステップと、
前記ロボットを前記第1姿勢に対して所定の軸まわりに回転させた第2姿勢とし、前記制御点が各前記実基準位置に位置しているときのロボット制御座標系での前記制御点の位置である第2制御基準位置を取得する第2制御基準位置取得ステップと、
前記実基準位置、前記第1制御基準位置および前記第2制御基準位置に基づいて前記制御位置を決定する制御位置決定ステップと、を含む。
【0006】
本発明のロボットシステムは、ロボットと、前記ロボットの駆動を制御する制御装置と、を有し、前記制御装置が前記ロボットの目標位置に対する制御位置を決定するロボットシステムであって、
前記制御装置は、
3点以上の実空間での実基準位置を取得し、
前記ロボットを第1姿勢とし、前記ロボットの制御点が各前記実基準位置に位置しているときのロボット制御座標系での前記制御点の位置である第1制御基準位置を取得し、
前記ロボットを前記第1姿勢に対して所定の軸まわりに回転させた第2姿勢とし、前記制御点が各前記実基準位置に位置しているときのロボット制御座標系での前記制御点の位置である第2制御基準位置を取得し、
前記実基準位置、前記第1制御基準位置および前記第2制御基準位置に基づいて前記制御位置を決定する。
【図面の簡単な説明】
【0007】
【
図1】好適な実施形態に係るロボットシステムの構成図である。
【発明を実施するための形態】
【0008】
以下、本発明の制御方法およびロボットシステムを添付図面に示す実施形態に基づいて詳細に説明する。
【0009】
図1は、好適な実施形態に係るロボットシステムの構成図である。
図2は、架台の使用方法を示す図である。
図3は、架台の変形例を示す図である。
図4は、制御装置のブロック図である。
図5および
図6は、それぞれ、ロボットの位置制御の誤差を示す図である。
図7は、制御方法を示すフローチャートである。
図8は、ロボット動作の一例を示す図である。
図9ないし
図11は、それぞれ、制御位置決定用の図形を示す図である。
【0010】
図1に示すロボットシステム1は、ロボット2と、ロボット2の駆動を制御する制御装置3と、架台5と、を有している。なお、
図1には、3次元空間の直交座標系を規定する3つの軸であるX軸、Y軸、Z軸を図示している。X軸およびY軸は、水平方向の軸であり、Z軸は、鉛直方向の軸である。以下では、この3次元空間を「実空間」とも言う。
【0011】
図1に示すように、ロボット2は、駆動軸を6つ有する6軸垂直多関節ロボットである。ロボット2は、基台21と、基台21に回動自在に連結されているロボットアーム22と、ロボットアーム22の先端に装着されているエンドエフェクター23と、を有している。また、ロボットアーム22は、複数のアーム221、222、223、224、225、226が回動自在に連結されてなるロボティックアームであり、6つの関節J1、J2、J3、J4、J5、J6を備えている。また、これら6つの関節J1~J6のうち、関節J2、J3、J5は、それぞれ、曲げ関節であり、関節J1、J4、J6は、それぞれ、ねじり関節である。
【0012】
関節J1、J2、J3、J4、J5、J6には、それぞれ、モーターとエンコーダーとが設置されている。制御装置3は、ロボットシステム1の運転中、各関節J1~J6について、エンコーダーの出力が示す関節の回転角度を制御位置に一致させるサーボ制御(フィードバック制御)を実行する。これにより、ロボット2を所望の姿勢とすることができる。
【0013】
エンドエフェクター23は、ロボット2に行わせる作業に合わせて適宜選択することができる。また、エンドエフェクター23の先端部には、ロボット2の制御点TCPが設定されている。制御点TCPの位置は、任意に設定することができるが、後述する位置決め治具51を用いて制御点TCPの位置を決定するためには、本実施形態のように制御点TCPをエンドエフェクター23の先端部に設定することが好ましい。
【0014】
以上、ロボット2について説明したが、ロボット2の構成は、特に限定されない。例えば、スカラロボット(水平多関節ロボット)、上述のロボットアーム22を2本備えた双腕ロボット等であってもよい。また、基台21が固定されていない自走式のロボットであってもよい。
【0015】
架台5は、ロボット2の位置ずれを低減するための第1変換関数および第2変換関数を取得する際に用いられるものであり、ロボット作業中は、使用しない。
【0016】
ロボット2の位置ずれについて簡単に説明すると、ロボットシステム1では、制御装置3が図示しないホストコンピューター等から受け付けた目標位置に基づいてロボット2の駆動を制御する。具体的には、制御装置3は、各アーム221~226の長さ、各関節J1~J6の回転軸原点、各関節J1~J6の平行度および直交度等の設計上の機構パラメーターに基づいて制御点TCPの位置を算出し、制御点TCPが目標位置に一致するようにロボット2の駆動を制御する。
【0017】
しかしながら、部品ばらつき、組立ばらつき等により実際の機構パラメーターが設計上の機構パラメーターに対してずれる場合がある。このように、実際の機構パラメーターにずれが生じると、計算上の制御点TCPの位置が実際の制御点TCPの位置からずれるため、制御上では制御点TCPを目標位置に一致させても、実際には制御点TCPが目標位置からずれてしまう。なお、以下では、このずれを「位置制御の誤差」とも言う。
【0018】
そこで、ロボットシステム1では、上述したように、位置制御の誤差を低減するための第1変換関数および第2変換関数を取得するよう構成されており、架台5は、第1変換関数および第2変換関数の取得に利用される道具である。
図1に示すように、架台5は、4つの位置決め治具51を有している。各位置決め治具51は、制御点TCPの位置決めを行う際に使用される治具である。なお、位置決め治具51の数は、3つ以上であれば、特に限定されない。
【0019】
また、位置決め治具51の先端には実基準位置RPが設定されている。なお、実空間における実基準位置RPの3次元的な位置は、予め測定されている。そして、
図2に示すように、ロボット2の制御点TCPを実基準位置RPに接触させることで、そのときのロボット制御座標系における制御位置を実基準位置RPに対応する制御基準位置として取得することができる。
【0020】
なお、位置決め治具としては、特に限定されず、例えば、
図3に示すような位置決め治具53を用いてもよい。位置決め治具53は、平板状の基板531と、基板531の上に設置されているL字状の壁部532と、を有している。壁部532は、直角に屈曲しており、壁部532の屈曲部と基板531の表面とが接する点に実基準位置RPが設定されている。一方、ロボットアーム22の先端には、位置決め補助具54が接続されている。この位置決め補助具54は、直方体状の形状を有し、その底面の頂点に制御点TCPが設定されている。
【0021】
制御点TCPを位置決め治具53の実基準位置RPに接触させることで、そのときのロボット制御座標系の制御位置を実基準位置RPに対応する制御基準位置として取得することができる。また、位置決め治具53と位置決め補助具54が3つの面で互いに接した状態ではロボット2の制御点TCPの姿勢も一意に決まるので、そのときのロボット制御座標系の制御姿勢を、実基準位置RPでの実姿勢に対応する制御基準姿勢として取得することが可能である。
【0022】
なお、上述したような位置決め治具51、53を使用することなく、3次元測定器を用いてロボット制御座標系の実基準位置と制御基準位置とを取得してもよい。この場合には、まず、ロボット制御座標系の制御基準位置を用いてロボット2の制御点TCPを位置決めし、その状態において、制御点TCPの実空間における3次元位置を3次元位置測定器で測定して実基準位置RPとする。
【0023】
制御装置3は、ロボット2の駆動を制御する。
図4に示すように、制御装置3は、例えば、コンピューターから構成され、プロセッサー31と、メモリー32と、インターフェイス回路33と、インターフェイス回路33に接続されている入力デバイス34および表示部35と、を有している。
【0024】
プロセッサー31は、ロボット2の制御位置を決定する制御位置決定部310として機能する。制御位置決定部310の機能は、プロセッサー31がメモリー32に格納されたコンピュータープログラムを実行することによって実現される。ただし、制御位置決定部310の機能の一部または全部をハードウェア回路で実現してもよい。
【0025】
メモリー32には、制御位置補正データCDと、動作プログラムMPが格納されている。また、制御位置補正データCDは、後述する図形Gや第1、第2変換関数を含んでいる。また、動作プログラムMPは、ロボット2を動作させる複数の動作命令で構成されている。
【0026】
次に、
図5および
図6に基づいて、ロボット2の位置制御の誤差について説明する。
図5の左側は、ロボット制御座標系における制御位置を示し、右側は、実空間における位置制御の誤差を示している。「ロボット制御座標系」とは、ロボット2を制御するための動作命令で使用されるロボット2の位置や姿勢を表現する座標系である。
【0027】
図5の例では、ロボット制御座標系においてX方向およびY方向に30mm間隔で制御位置が設定されている状態を想定しており、実空間に描かれた矢印は、位置制御の誤差を示している。すなわち、矢印の起点が目標位置であり、矢印の先側が誤差を含む制御点TCPである。ただし、図示の便宜上、誤差量を200倍にして矢印の長さを描いている。
【0028】
また、
図6の左側は、制御点TCPの姿勢(X軸まわりの回転角[°],Y軸まわりの回転角[°],Z軸まわりの回転角[°])が(0,0,0)のときの実空間における位置制御の誤差を示し、右側は、制御点TCPの姿勢が(0,0,180)のときの実空間における位置制御の誤差を示している。このように、制御点TCPの姿勢によっても、誤差の様子が異なることが分かる。なお、
図6の例では、ロボット制御座標系においてX方向およびY方向に50mm間隔で制御位置が設定されている状態を想定しており、実空間に描かれた矢印は、位置制御の誤差を示している。すなわち、矢印の起点が目標位置であり、矢印の先側が誤差を含む制御点TCPである。ただし、図示の便宜上、誤差量を50倍にして矢印の長さを描いている。
【0029】
このような位置制御の誤差を低減するために、制御装置3は、次のようにしてロボット2の駆動を制御する。
【0030】
図7に示すように、ロボット2の制御方法は、実基準位置取得ステップS1と、第1制御基準位置取得ステップS2と、第1変換関数取得ステップS3と、第2制御基準位置取得ステップS4と、第2変換関数取得ステップS5と、第3制御基準位置取得ステップS6と、第3変換関数取得ステップS7と、目標位置取得ステップS8と、制御位置決定ステップS9と、ロボット制御ステップS10と、を含んでいる。以下、これら各ステップについて順に説明する。
【0031】
なお、以下では、説明の便宜上、ロボット2に行わせるロボット動作として、
図8に示すように、制御点TCPを目標位置Q1、Q2、Q3を一周する動作を一例に挙げて説明する。目標位置Q1、Q2、Q3では、それぞれ、制御点TCPが鉛直方向下側を向いている。また、制御点TCPの姿勢は、目標位置Q1では(0,0,45)であり、目標位置Q2では(0,0,135)であり、目標位置Q3では(0,0,90)である。つまり、このロボット作業では、関節J6を回動させることにより制御点TCPをZ軸まわりに回転させながら、目標位置Q1、Q2、Q3を一周する。ただし、ロボット動作としては、特に限定されない。
【0032】
[実基準位置取得ステップS1]
実基準位置取得ステップS1では、制御位置決定部310は、3点以上の実空間での実基準位置RPを取得する。前述したように、本実施形態では、架台5が4つの位置決め治具51を有しており、その先端に実基準位置RPが設定されている。そのため、本実施形態では、
図9に示すように、制御位置決定部310は、4つの実基準位置RP1、RP2、RP3、RP4を取得する。
【0033】
[第1制御基準位置取得ステップS2]
第1制御基準位置取得ステップS2では、制御位置決定部310は、まず、制御点TCPを第1姿勢(0,0,n1)とする。Z軸まわりの回転角n1は、任意に設定することができるが、本実施形態ではn1=0となっている。そのため、第1姿勢の制御点TCPをZ軸まわりに回転させると、目標位置Q1、Q2、Q3での制御点TCPの姿勢と一致する。
【0034】
次に、制御位置決定部310は、制御点TCPが実基準位置RPに位置しているときの制御点TCPのロボット制御座標系での位置である第1制御基準位置CP1を取得する。具体的には、まず、制御位置決定部310は、制御点TCPを第1姿勢としたまま実基準位置RP1に位置させる。次に、制御位置決定部310は、制御点TCPが実基準位置RP1に位置しているときの制御点TCPのロボット制御座標系での位置である第1制御基準位置CP11を取得する。制御位置決定部310は、他の実基準位置RP2、RP3、RP4についても同様の作業を行い、第1制御基準位置CP12、CP13、CP14を取得する。以上により、制御位置決定部310は、4つの第1制御基準位置CP11、CP12、CP13、CP14を取得する。
【0035】
[第1変換関数取得ステップS3]
第1変換関数取得ステップS3では、制御位置決定部310は、まず、
図9に示すように、3つの実基準位置RPを頂点とする三角形の図形Gを実空間内に設定する。なお、前述したように、実基準位置取得ステップS1において4つの実基準位置RP1~RP4を取得しているため、本実施形態では、4個の実基準位置RP1~RP4で囲まれた領域が2つの三角形の図形G1、G2に分割されている。分割方法としては、例えば、ドロネー三角形分割等の任意の分割方法を用いることが可能である。
【0036】
次に、制御位置決定部310は、
図10に示すように、各図形G1、G2内における実位置と制御位置との対応関係を表す第1変換関数A1を求める。図形G1における第1変換関数A1は、図形G1の頂点である実基準位置RP1、RP2、RP3と、これらに対応する第1制御基準位置CP11、CP12、CP13と、の差に基づいて求める。また、図形G2における第1変換関数A1は、図形G2の頂点である実基準位置RP2、RP3、RP4と、これらに対応する第1制御基準位置CP12、CP13、CP14と、の差に基づいて求める。第1変換関数A1は、例えば、以下の式で表すことができる。
【0037】
【0038】
なお、式(1)中のPctrlは、ロボット制御座標系における第1姿勢での制御位置、Prealは、実空間における実位置である。また、Xctrlは、ロボット制御座標系における第1姿勢での制御位置のX座標であり、Yctrlは、ロボット制御座標系における第1姿勢での制御位置のY座標である。また、Xrealは、実空間における実位置のX座標であり、Yrealは、実空間における実位置のY座標である。また、A1は、第1変換関数であり、アフィン変換を表す変換式である。また、a11、a12、a21、a22、b1、b2は、それぞれ、係数であり、図形G1、G2毎に異なる。このような第1変換関数A1を用いることにより、容易に、実位置Prealを第1姿勢における制御位置Pctrlに変換することができる。
【0039】
なお、図形Gの形状は、三角形でなくてもよく、第1変換関数は、アフィン変換でなくてもよい。例えば、図形Gを四角形とし、第1変換関数を射影変換としてもよい。また、複数種類の多角形を混在させた状態に分割し、それぞれの図形G毎に第1変換関数を変えてもよい。また、図形Gを立体図形としてもよい。第1変換関数は、変換式として構成してもよく、ルックアップテーブルのような他の形式で構成してもよい。
【0040】
[第2制御基準位置取得ステップS4]
第2制御基準位置取得ステップS4では、制御位置決定部310は、まず、制御点TCPを第2姿勢(0,0,n2)とする。Z軸まわりの回転角n2は、n2≠n1であり、任意に設定することができるが、本実施形態ではn2=180となっている。そのため、第2姿勢の制御点TCPをZ軸まわりに回転させると、目標位置Q1、Q2、Q3での制御点TCPの姿勢と一致する。つまり、目標位置Q1、Q2、Q3での制御点TCPの姿勢は、第1姿勢と第2姿勢との間に位置する。
【0041】
次に、制御位置決定部310は、制御点TCPが実基準位置RPに位置しているときの制御点TCPのロボット制御座標系での位置である第2制御基準位置CP2を取得する。具体的には、まず、制御位置決定部310は、制御点TCPを第2姿勢としたまま実基準位置RP1に位置させる。次に、制御位置決定部310は、制御点TCPが実基準位置RP1に位置しているときの制御点TCPのロボット制御座標系での位置である第2制御基準位置CP21を取得する。制御位置決定部310は、他の実基準位置RP2、RP3、RP4についても同様の作業を行い、第2制御基準位置CP22、CP23、CP24を取得する。以上により、制御位置決定部310は、4つの第2制御基準位置CP21、CP22、CP23、CP24を取得する。
【0042】
なお、第2制御基準位置CP21、CP22、CP23、CP24は、第1制御基準位置CP11、CP12、CP13、CP14と同じであるかもしれないし、制御点TCPの姿勢の違いに起因して異なっているかもしれない。
【0043】
[第2変換関数取得ステップS5]
第2変換関数取得ステップS5では、制御位置決定部310は、まず、
図9に示すように、3つの実基準位置RPを頂点とする三角形の図形Gを実空間内に設定する。なお、前述したように、実基準位置取得ステップS1において4つの実基準位置RP1~RP4を取得しているため、本実施形態では、4個の実基準位置RP1~RP4で囲まれた領域が2つの三角形の図形G1、G2に分割されている。分割方法としては、例えば、ドロネー三角形分割等の任意の分割方法を用いることが可能である。
【0044】
次に、制御位置決定部310は、
図11に示すように、各図形G1、G2内における実位置と制御位置との対応関係を表す第2変換関数A2を求める。図形G1における第2変換関数A2は、図形G1の頂点である実基準位置RP1、RP2、RP3と、これらに対応する第2制御基準位置CP21、CP22、CP23と、の差に基づいて求める。また、図形G2における第2変換関数A2は、図形G2の頂点である実基準位置RP2、RP3、RP4と、これらに対応する第2制御基準位置CP22、CP23、CP24と、の差に基づいて求める。第2変換関数A2は、例えば、以下の式で表すことができる。
【0045】
【0046】
なお、式(5)中のPctrlは、ロボット制御座標系における第2姿勢での制御位置、Prealは、実空間における実位置である。また、Xctrlは、ロボット制御座標系における第2姿勢での制御位置のX座標であり、Yctrlは、ロボット制御座標系における第2姿勢での制御位置のY座標である。また、Xrealは、実空間における実位置のX座標であり、Yrealは、実空間における実位置のY座標である。また、A2は、第2変換関数であり、アフィン変換を表す変換式である。また、a11、a12、a21、a22、b1、b2は、それぞれ、係数であり、図形G1、G2毎に異なる。このような第2変換関数A2を用いることにより、容易に、実位置Prealを第2姿勢での制御位置Pctrlに変換することができる。
【0047】
なお、図形Gの形状は、三角形でなくてもよく、第2変換関数は、アフィン変換でなくてもよい。例えば、図形Gを四角形とし、第2変換関数を射影変換としてもよい。また、複数種類の多角形を混在させた状態に分割し、それぞれの図形G毎に第2変換関数を変えてもよい。また、図形Gを立体図形としてもよい。第2変換関数は、変換式として構成してもよく、ルックアップテーブルのような他の形式で構成してもよい。
【0048】
[第3制御基準位置取得ステップS6]
第3制御基準位置取得ステップS6では、制御位置決定部310は、まず、制御点TCPを第3姿勢(0,0,n3)とする。Z軸まわりの回転角n3は、n3≠n1、n3≠n2であり、任意に設定することができるが、本実施形態ではn3=90となっている。
【0049】
次に、制御位置決定部310は、制御点TCPが実基準位置RPに位置しているときの制御点TCPのロボット制御座標系での位置である第3制御基準位置CP3を取得する。第3制御基準位置CP3の取得方法は、前述した第1、第2制御基準位置CP1、CP2と同様である。そのため、説明を省略する。
【0050】
[第3変換関数取得ステップS7]
第3変換関数取得ステップS7では、制御位置決定部310は、図形G内における実位置と制御位置との対応関係を表す第3変換関数A3を求める。第3変換関数A3の求め方は、前述した第1、第2変換関数A1、A2と同様である。そのため、説明を省略する。
【0051】
以上の実基準位置取得ステップS1から第3変換関数取得ステップS7までが、ロボット作業中の位置制御の誤差を低減するための準備工程となる。当該準備工程で得られた第1変換関数A1、第2変換関数A2および第3変換関数A3は、それぞれ、制御位置補正データCDに格納される。また、当該準備工程で得られた第1姿勢、第2姿勢および第3姿勢は、それぞれ、計測姿勢として制御位置補正データCDに格納される。なお、実際には、第1姿勢、第2姿勢および第3姿勢の3つだけではなく、互いに姿勢が異なる多数の姿勢が計測姿勢として制御位置補正データCDに格納される。これにより、計測姿勢の選択肢が増え、目標位置に対する制御位置をより確実にかつ精度よく決定することができる。
【0052】
なお、第1、第2、第3変換関数A1、A2、A3を取得することができれば、実基準位置取得ステップS1から第3変換関数取得ステップS7までの順序は、特に限定されない。例えば、実基準位置取得ステップS1、第1制御基準位置取得ステップS2、第2制御基準位置取得ステップS4、第3制御基準位置取得ステップS6、第1変換関数取得ステップS3、第2変換関数取得ステップS5、第3変換関数取得ステップS7の順で行ってもよい。
【0053】
[目標位置取得ステップS8]
目標位置取得ステップS8では、制御位置決定部310は、制御点TCPの目標位置の入力を受け付ける。制御点TCPの目標位置は、制御点TCPを移動させたい実空間内の点の3次元位置である。制御点TCPの目標位置は、例えば、作業者が入力デバイス34を用いて入力することができる。なお、作業者が動作プログラムMPを作成し、その中の動作指令に制御点TCPの目標位置が記述されている場合には、制御位置決定部310が動作プログラムMPの動作指令に含まれている目標位置を取得することで本ステップを実行してもよい。以下では、目標位置として目標位置Q1、Q2、Q3を受けた場合について説明する。
【0054】
[制御位置決定ステップS9]
制御位置決定ステップS9では、制御位置決定部310は、実基準位置RP、第1制御基準位置CP1および第2制御基準位置CP2に基づいて、目標位置Q1、Q2、Q3に対する制御位置を決定する。具体的には、制御位置決定部310は、第1変換関数取得ステップS3において実基準位置RPと第1制御基準位置CP1とに基づいて取得した第1変換関数A1と、第2変換関数取得ステップS5において実基準位置RPと第2制御基準位置CP2とに基づいて取得した第2変換関数A2と、を用いて目標位置Q1、Q2、Q3に対する制御位置を決定する。
【0055】
以下、目標位置Q1に対する制御位置を決定する工程について代表して説明する。まず、制御位置決定部310は、目標位置Q1における制御点TCPの姿勢を取得する。前述したように、目標位置Q1における制御点TCPの姿勢は、(0,0,45)である。次に、制御位置決定部310は、計測姿勢の中から、所定の軸まわりに回転させると目標位置Q1での制御点TCPの姿勢と一致するものを任意で2つ選択する。本実施形態では、計測姿勢にZ軸まわりに回転させると目標位置Q1での制御点TCPと一致する第1姿勢、第2姿勢および第3姿勢が含まれるため、これらの中から任意の2つを選択する。以下では、第1姿勢および第2姿勢を選択した場合について説明する。
【0056】
次に、制御位置決定部310は、
図8に示す図形Gから、目標位置Q1を含む対象図形を選択する。本実施形態では、図形G1内に目標位置Q1が位置するため、対象図形として図形G1を選択する。
【0057】
次に、制御位置決定部310は、図形G1に対応する第1変換関数A1を用いて、第1姿勢での目標位置Q1に対する制御位置(以下、第1制御位置と言う。)を算出する。例えば、上述した式(1)において、Prealに目標位置Q1の座標値を入力することにより、Pctrlを第1制御位置として算出することができる。次に、制御位置決定部310は、対象図形である図形G1に対応する第2変換関数A2を用いて、第2姿勢での目標位置Q1に対する制御位置(以下、第2制御位置と言う。)を算出する。例えば、上述した式(5)において、Prealに目標位置Q1の座標値を入力することにより、Pctrlを第2制御位置として算出することができる。
【0058】
次に、制御位置決定部310は、第1制御位置および第2制御位置に基づいて目標位置Q1に対する制御位置pを決定する。具体的には、第1制御位置をpa、第1姿勢での制御点TCPのZ軸まわりの回転量をθaとし、第2制御位置をpb、第2姿勢での制御点TCPのZ軸まわりの回転量をθbとし、目標位置Q1の姿勢での制御点TCPのZ軸まわりの回転量をθとしたとき、目標位置Q1に対応する制御位置pは、以下の式(9)から決定することができる。これにより、容易かつ精度よく制御位置pを決定することができる。
【0059】
【0060】
以上により、目標位置Q1に対する制御位置pが決定する。制御位置決定部310は、同様の手順により、目標位置Q2、Q3に対する制御位置pを決定する。
【0061】
なお、本実施形態では、目標位置Q1、Q2、Q3での制御点TCPの姿勢が第1姿勢と第2姿勢との間に位置するため、第1姿勢と第2姿勢とから目標位置Q1での位置制御の誤差を効果的に低減することができる。さらに、本実施形態ではZ軸まわりに180°姿勢が異なる第1姿勢と第2姿勢とに基づいて制御位置pを決定している。このように角度差が大きい2つの計測姿勢を選択することにより、より広い範囲の姿勢に対応することができる。
【0062】
次に、制御位置決定部310は、各目標位置Q1、Q2、Q3に対する制御位置pを用いて動作指令を作成する。なお、動作指令を含む動作プログラムMPが予め作成されている場合には、動作指令に含まれている目標位置Q1、Q2、Q3を制御位置pに置き換えることよって当該処理を実行することができる。
【0063】
[ロボット制御ステップS10]
ロボット制御ステップS10では、制御位置決定部310は、作成した動作指令を含む動作プログラムMPを用いてロボット2の駆動を制御する。これにより、ロボット2の位置制御の精度を高めることができる。以上のような制御方法によれば、同じ軸まわりの第1姿勢と第2姿勢に基づいて目標位置Q1、Q2、Q3における制御位置pを決定するため、制御位置pに姿勢毎の誤差の異なりが反映される。したがって、位置制御の誤差を低減することができ、優れた位置精度を有するロボットシステム1となる。また、2つの計測姿勢から目標位置に対応する制御位置を求めるため、目標位置が予め分かっていなくても、その目標位置に対する制御位置pを決定することができる。
【0064】
以上、ロボットシステム1について説明した。このようなロボットシステム1に適用されている制御方法は、前述したように、ロボット2の目標位置に対する制御位置pを決定する制御方法であって、3点以上の実空間での実基準位置RPを取得する実基準位置取得ステップS1と、ロボット2の制御点TCPを第1姿勢とし、ロボット2の制御点TCPが各実基準位置RPに位置しているときのロボット制御座標系での制御点TCPの位置である第1制御基準位置CP1を取得する第1制御基準位置取得ステップS2と、ロボット2の制御点TCPを第1姿勢に対して所定の軸であるZ軸まわりに回転させた第2姿勢とし、制御点TCPが各実基準位置RPに位置しているときのロボット制御座標系での制御点TCPの位置である第2制御基準位置CP2を取得する第2制御基準位置取得ステップS4と、実基準位置RP、第1制御基準位置CP1および第2制御基準位置CP2に基づいて制御位置pを決定する制御位置決定ステップS9と、を含む。
【0065】
このような制御方法によれば、所定の軸まわりの第1姿勢と第2姿勢に基づいて目標位置における制御位置pを決定するため、制御位置pに姿勢毎の誤差の異なりが反映される。したがって、位置制御の誤差を低減することができ、優れた位置精度を有するロボットシステム1となる。また、2つの計測姿勢から目標位置に対応する制御位置を求めるため、目標位置が予め分かっていなくても、その目標位置に対する制御位置pを決定することができる。
【0066】
また、前述したように、第2姿勢は、第1姿勢をZ軸まわりに180°回転させた姿勢である。これにより、より広い範囲の姿勢に対応した補正を行うことができる。
【0067】
また、前述したように、目標位置での姿勢は、第1姿勢と第2姿勢との間に位置する。これにより、目標位置での位置制御の誤差を効果的に低減することができる。そのため、制御位置pをより精度よく算出することができる。
【0068】
また、前述したように、制御方法は、ロボット2を第1姿勢からZ軸まわりに回転させた第3姿勢とし、制御点TCPが各実基準位置RPに位置しているときのロボット制御座標系での制御点TCPの位置である第3制御基準位置CP3を取得する第3制御基準位置取得ステップS6をさらに含む。これにより、選択肢が増え、容易かつ精度よく制御位置pを決定することができる。
【0069】
また、前述したように、制御方法は、第1制御基準位置取得ステップS2後に行われ、3つ以上の実基準位置RPを頂点とする少なくとも1つの図形Gを実空間内に設定するとともに、第1姿勢での各図形G内における実位置と制御位置との対応関係を表す第1変換関数A1を求める第1変換関数取得ステップS3と、第2制御基準位置取得ステップS4後に行われ、3つ以上の実基準位置RPを頂点とする少なくとも1つの図形Gを実空間内に設定するとともに、第2姿勢での各図形G内における実位置と制御位置との対応関係を表す第2変換関数A2を求める第2変換関数取得ステップS5と、をさらに含む。また、制御位置決定ステップS9は、図形Gの中から制御位置pを算出するための対象図形を選択し、対象図形に対応する第1変換関数A1および第2変換関数A2に基づいて制御位置pを決定する。これにより、容易かつ精度よく制御位置pを決定することができる。
【0070】
また、前述したように、制御位置pは、上記の式(9)から決定される。これにより、容易かつ精度よく制御位置pを決定することができる。
【0071】
また、前述したように、ロボットシステム1は、ロボット2と、ロボット2の駆動を制御する制御装置3と、を有し、制御装置3がロボット2の目標位置に対する制御位置pを決定するロボットシステムであって、制御装置3は、3点以上の実空間での実基準位置RPを取得し、ロボット2の制御点TCPを第1姿勢とし、ロボット2の制御点TCPが各実基準位置RPに位置しているときのロボット制御座標系での制御点TCPの位置である第1制御基準位置CP1を取得し、ロボット2の制御点TCPを第1姿勢に対して所定の軸であるZ軸まわりに回転させた第2姿勢とし、制御点TCPが各実基準位置RPに位置しているときのロボット制御座標系での制御点TCPの位置である第2制御基準位置CP2を取得し、実基準位置RP、第1制御基準位置CP1および第2制御基準位置CP2に基づいて制御位置pを決定する。
【0072】
このような構成によれば、所定の軸まわりの第1姿勢と第2姿勢に基づいて目標位置における制御位置pを決定するため、制御位置pに姿勢毎の誤差の異なりが反映される。したがって、位置制御の誤差を低減することができ、優れた位置精度を有するロボットシステム1となる。また、2つの計測姿勢から目標位置に対応する制御位置を求めるため、目標位置が予め分かっていなくても、その目標位置に対する制御位置pを決定することができる。
【0073】
以上、本発明の制御方法およびロボットシステムを図示の実施形態に基づいて説明したが本発明はこれに限定されるものではない。各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物が付加されていてもよい。
【符号の説明】
【0074】
1…ロボットシステム、2…ロボット、21…基台、22…ロボットアーム、221…アーム、222…アーム、223…アーム、224…アーム、225…アーム、226…アーム、23…エンドエフェクター、3…制御装置、31…プロセッサー、310…制御位置決定部、32…メモリー、33…インターフェイス回路、34…入力デバイス、35…表示部、5…架台、51…位置決め治具、53…位置決め治具、531…基板、532…壁部、54…位置決め補助具、CD…制御位置補正データ、CP1…第1制御基準位置、CP11…第1制御基準位置、CP12…第1制御基準位置、CP13…第1制御基準位置、CP14…第1制御基準位置、CP2…第2制御基準位置、CP21…第2制御基準位置、CP22…第2制御基準位置、CP23…第2制御基準位置、CP24…第2制御基準位置、CP3…第3制御基準位置、G…図形、G1…図形、G2…図形、J1…関節、J2…関節、J3…関節、J4…関節、J5…関節、J6…関節、MP…動作プログラム、Q1…目標位置、Q2…目標位置、Q3…目標位置、RP…実基準位置、RP1…実基準位置、RP2…実基準位置、RP3…実基準位置、RP4…実基準位置、S1…実基準位置取得ステップ、S2…第1制御基準位置取得ステップ、S3…第1変換関数取得ステップ、S4…第2制御基準位置取得ステップ、S5…第2変換関数取得ステップ、S6…第3制御基準位置取得ステップ、S7…第3変換関数取得ステップ、S8…目標位置取得ステップ、S9…制御位置決定ステップ、S10…ロボット制御ステップ、TCP…制御点