A.第1実施形態:
A1.ロボットシステムの構成:
図1は、本実施形態のロボットシステム1を模式的に示す説明図である。本実施形態のロボットシステム1は、ロボット100と、エンドエフェクター200と、ロボット制御装置300と、カメラ700と、を備える。
図1において、技術の理解を容易にするために、ロボット座標系RCを示す。ロボット座標系RCは、水平面上において互いに直交するX軸とY軸と、鉛直上向きを正方向とするZ軸とによって規定される3次元の直交座標系である。なお、図1は、技術の理解を容易にするための説明図であり、各構成の形状や寸法を正確に反映するものではない。
ロボット100は、4個の関節J1~J4を備えたアーム110を有する4軸ロボットである。関節J1,J2,J4は、回転されるねじり関節である。関節J3は、直進される直動関節である。アーム110を構成する関節と関節の間の構成要素を、本明細書において「アーム要素」と呼ぶ。図1においては、アーム110に含まれる複数のアーム要素のうち、関節J1と関節J2の間のアーム要素110a、関節J2と関節J3の間のアーム要素110b、およびアーム110の先端を構成するアーム要素110dについて、符号を付して示す。各アーム要素を区別せずに示す場合には、アーム要素110xと表記する。
ロボット100は、4個の関節J1~J4をそれぞれサーボモーターで回転または直進させることにより、アーム110の先端部に取りつけられたエンドエフェクター200を、3次元空間中の指定された位置に指定された姿勢で配することができる。なお、3次元空間におけるエンドエフェクター200の位置を代表する地点を、制御点またはTCP(Tool Center Point)とも呼ぶ。
ロボット100は、各関節に、サーボモーター410と、減速機510と、モーター角度センサー420と、出力側センサー520と、を備える。図1では、技術の理解を容易にするために、関節J1についてのみ、模式的にサーボモーター410と、減速機510と、モーター角度センサー420と、出力側センサー520と、を示している。
サーボモーター410は、アーム110を駆動する。より具体的には、サーボモーター410は、ロボット制御装置300から電流を供給されて駆動力を発生させ、その出力軸410oを回転させる。
モーター角度センサー420は、サーボモーター410の出力軸410oの動作位置APmを検出する。モーター角度センサー420は、ロータリエンコーダーである。モーター角度センサー420が検出した出力軸410oの動作位置APmは、ロボット制御装置300に送信される。後述するように、モーター角度センサー420は、減速機510の入力側の動作位置を検出している。
減速機510は、サーボモーター410からの出力をアーム110に伝達する。減速機510は、入力軸510iと出力軸510oを備える。減速機510は、入力軸510iに対する回転入力を、回転入力より回転速度が低い回転出力に変換して、出力軸510oから出力する。減速機510は、具体的には、波動歯車減速機である。
減速機510の入力軸510iは、サーボモーター410の出力軸410oに接続されている。入力軸510iの動作位置は、サーボモーター410の出力軸410oの動作位置APmと等しい。このため、サーボモーター410の出力軸410oの動作位置APmを検出することができるモーター角度センサー420は、減速機510の入力軸510iの動作位置を検出していることとなる。
サーボモーター410の出力軸410oからの継続的な一定の入力に対して、減速機510は、周期的な伝達誤差を発生させる。すなわち、サーボモーター410の出力軸410oからの継続的な一定速度の回転入力に対して、減速機510の出力軸510oの回転速度および動作位置は、周期的なずれを含む。
たとえば、アーム要素110aは、関節J1の減速機510の出力軸510oに固定されている。その結果、アーム要素110aは、サーボモーター410の出力軸410oの回転によって、減速機510を介して、関節J1において回転される。
出力側センサー520は、アーム要素110a内に配されている。出力側センサー520は、減速機510の出力軸510oの動作位置APaを検出する。すなわち、モーター角度センサー420が、減速機510の入力側の動作位置APmを検出しているのに対して、出力側センサー520は、減速機510の出力側の動作位置APaを検出している。出力側センサー520は、ロータリエンコーダー、慣性センサー、および加速度センサーのうちのいずれかである。出力側センサー520が検出した出力軸510oの動作位置APaは、ロボット制御装置300に送信される。モーター角度センサー420と出力側センサー520とをまとめて「角度センサー」とも呼ぶ(図2の右部参照)。
出力側センサー520として慣性センサーを用いる場合、慣性センサーは、アーム要素110aまたはアーム要素110bに取り付けられることができる。そのような態様においては、減速機510を介してサーボモーター410によりアーム110を動かすことで、減速機510の伝達誤差を補正するための周期的なずれの振幅、位相を検出し、減速機510の出力側の動作位置APaを検出することができる。慣性センサーをアーム要素110bに取り付ける場合は、アーム要素110bの駆動を停止させた状態で、アーム要素110aを駆動させることによって、減速機510の出力側の動作位置APaを検出することができる。なお、出力側センサー520は、ロボット100に取り外し可能に取り付けられていてもよい。
なお、本明細書においては、駆動力を伝達する伝達部としての減速機510において、入力される駆動力を受ける部材である入力軸510iの動作位置を、「入力側の動作位置」とも記載する。駆動力を伝達する伝達部において、出力される駆動力を他の構成に伝達する部材である出力軸510oの動作位置を、「出力側の動作位置」とも記載する。
ロボット制御装置300は、ロボット100の動作を制御する制御装置である。ロボット制御装置300は、ロボット100に接続されている。ロボット制御装置300は、プロセッサーであるCPU(Central Processing Unit)310、RAM(Random Access Memory)320、ROM(Read-Only Memory)330を備える。ロボット制御装置300には、ロボット100を制御するための制御プログラムがインストールされている。ロボット制御装置300においては、ハードウェア資源としてのCPU310、RAM320、ROM330と、制御プログラムとが協働する。具体的には、CPU310が、ROM330に記憶されたコンピュータープログラムをRAM320にロードして実行することによって、誤差演算部312、基準位置設定部314、駆動制御部316、受付部318などの後述する様々な機能を実現する。
ロボット制御装置300は、さらに、入力部340と、出力部350を備える。出力部350は、具体的には、液晶ディスプレイである。出力部350は、CPU310に制御されて、CPU310によって処理された様々な情報をユーザーに対して出力する。入力部340は、出力部350としての液晶ディスプレイ上に設けられたタッチパネルである。入力部340は、ユーザーに操作されて、様々な情報をユーザーから受け取る。
エンドエフェクター200は、アーム110の先端に取りつけられている。エンドエフェクター200は、ロボット制御装置300に制御されて、ワークピースW01をつかむことができ、また、つかんでいるワークピースW01を離すことができる。その結果、たとえば、ロボット100とエンドエフェクター200とは、ロボット制御装置300に制御されて、作業対象物であるワークピースW01をつかんで移動させることができる。なお、図1においては、技術の理解を容易にするため、エンドエフェクター200を単純な円柱で示している。
カメラ700は、ワークピースW01と、そのワークピースW01の周辺と、アーム110と、を含む写真画像を撮像することができる。カメラ700が生成した画像は、ロボット制御装置300に送信され、ロボット100の制御に使用される。カメラ700は、支柱F700に支持されている。
図2は、ロボット制御装置300のCPU310が実現する機能部382~388と、ロボット100が備えるサーボモーター410およびモーター角度センサー420、減速機510、ならびに出力側センサー520と、の関係を示すブロック図である。ロボット制御装置300のCPU310が実現する機能部である駆動制御部316(図1の下段右部参照)は、さらに下位の機能部として、制御信号生成部382と、補正部384と、位置制御部386と、速度制御部388と、を備える。
制御信号生成部382は、アーム要素110xが位置すべき目標位置を表す位置制御信号PC01を生成し、出力する。補正部384は、目標位置に応じて設定される補正量に基づいて、位置制御信号PC01を補正して、位置制御信号PC02を生成する。補正量については、後に説明する。
位置制御部386は、位置制御信号PC02に基づいて、ロボット100のサーボモーター410の速度制御信号を生成し、出力する。
速度制御部388は、速度制御信号に基づいて、トルク制御信号を生成し、出力する。その後、トルク制御信号に基づいて、サーボモーター410に供給する電流量が決定され、決定された電流量の電流がサーボモーター410に供給される。
サーボモーター410の出力軸410oの回転は、減速機510の入力軸510iに伝えられる。サーボモーター410の出力軸410oの回転は、減速機510において減速され、減速機510の出力軸510oの回転として出力される。
ロボット制御装置300のCPU310の機能部である補正部384によって、位置制御信号PC01が補正されることにより(図2の左部参照)、減速機510の出力軸510oの動作位置の目標位置に対する定常偏差、および周期的なずれが減少される。
補正部384における補正において使用される位置制御信号PC01の補正量は、目標位置に応じて、あらかじめ設定されている。目標位置に応じた補正量は、サーボモーター410のハードウェア構成および減速機510のハードウェア構成に応じて、設定されている。その結果、サーボモーター410のハードウェア構成および減速機510のハードウェア構成に起因して生じる減速機510の出力軸510oの動作位置の定常偏差、および周期的なずれが、補正によって減少される。
サーボモーター410および減速機510が交換された場合には、補正量は再設定される。以下では、サーボモーター410および減速機510が交換された場合に補正量を設定する処理を、参考例と対比しつつ、説明する。なお、以下の処理は、サーボモーター410または減速機510の一方のみが交換された場合にも実行される。
A2.補正量の設定:
(1)参考例における補正量の設定:
図3は、参考例における補正量の設定処理およびロボットの制御方法を示すフローチャートである。図3の一部の工程は、ロボット制御装置300のCPU310によって自動的に実行される。図3の他の一部の工程においては、ロボット制御装置300のCPU310によって、出力部350を介して、ユーザーに対して指示が促され、ユーザーによる指示に従って、CPU310が処理を実行する。図3に示すステップS100~S700の処理は、各関節J1~J4において実行される。
ステップS100において、ロボット100が動作可能な状態において、アーム要素110xの基準位置RPが設定される。基準位置RPは、たとえば、ロボット100に実行させる動作においてもっとも位置の正確さが要求される姿勢におけるアーム要素110xの動作位置とすることができる。また、基準位置RPは、所定程度以上の精度であらかじめその位置、すなわち3次元空間内の座標が分かっている動作位置とすることもできる。ユーザーは、ロボット制御装置300のCPU310によって、出力部350を介して処理を促されて、ロボット制御装置300とともにステップS100の処理を行う。
具体的には、ユーザーは、入力部340を介して、基準位置RPの座標を入力する。制御点の座標には、位置の情報と姿勢の情報が含まれる。ロボット制御装置300のCPU310は、入力部340を介して、基準位置RPとしての動作位置の指定をユーザーから受け付ける。このような機能を奏するCPU310の機能部を、受付部318として図1に示す。ロボット制御装置300のCPU310は、指定された位置を、ロボット100のアーム要素110xの基準位置RPに設定する。このような機能を奏するCPU310の機能部を、基準位置設定部314として図1に示す。
このような構成とすることにより、ユーザーは、基準位置を1箇所に限定されることがなく、ロボット100に実行させる作業に応じて、適切な基準位置RPを設定することができる。このため、ロボット100に正確に作業を行わせることができる。
ステップS100においては、アーム要素110xの目標位置APcが基準位置RPであるときの動作位置のずれが0となるように、目標位置APcが0であるときのサーボモーター410の出力軸410oの動作位置の補正量APm01が決定される。
図5は、ステップS100の処理後の状態における、アーム要素110xの目標位置APcと、サーボモーター410の出力軸410oの動作位置APmの関係を示すグラフである。サーボモーター410の出力軸410oの動作位置APmは、モーター角度センサー420によって得られる(図1および図2参照)。
図5において、破線で表される直線状のグラフGm1Lは、減速機510に起因する周期的なずれを打ち消す補正がされていない位置制御信号によって実現される出力軸410oの動作位置を表す。アーム要素110xの目標位置APcが0であるときの出力軸410oの動作位置は、0からApm01だけずらされている(図5の下段左部参照)。アーム要素110xの目標位置APcが0である状態、すなわち、アーム要素110xを駆動させる関節の原点において行われた較正によって、あらかじめアーム要素110xの目標位置APcが0であるときの補正量Apm01が、設定されている。実線で表される波状のグラフGm1Wについては、後に説明する。
図6は、ステップS100の処理後の状態における、アーム要素110xの目標位置APcと、減速機510の出力軸510oの動作位置APaの関係を示すグラフである。減速機510の出力軸510oの動作位置APaは、出力側センサー520によって得られる(図1および図2参照)。減速機510の出力軸510oの動作位置APaは、言い替えれば、アーム要素110xの動作位置である。以下では、アーム要素110xの動作位置も、「動作位置APa」と表記する。
図5の直線状のグラフGm1Lが表す動作位置にしたがって、アーム要素110xの目標位置APcに応じてサーボモーター410の出力軸410oが動作されると、減速機510に起因する周期的なずれのために、アーム要素110xの動作位置APaは、図6において、破線で表される波状のグラフGa1Wとなる。すなわち、アーム要素110xの目標位置APcに対して、アーム要素110xの動作位置APaは、線形とならず、波状に変動する。
このため、サーボモーター410の出力軸410oの動作位置APmを指定する位置制御信号は、あらかじめ、グラフGa1Wの位相と逆の位相で、グラフGa1Wの振幅に相当する量だけ、補正される(図2の384参照)。そのように補正された位置制御信号によるサーボモーター410の出力軸410oの動作位置APmが、図5において実線で表される波状のグラフGm1Wである。
図5の波状のグラフGm1Wが表す動作位置にしたがって、アーム要素110xの目標位置APcに応じてサーボモーター410の出力軸410oが動作されると、アーム要素110xの動作位置APaは、図6において、実線で表される直線状のグラフGa1Lとなる。すなわち、アーム要素110xの目標位置APcに対して、アーム要素110xの動作位置APaは、線形となる。
これらのアーム要素110xの動作位置の原点について行われる較正(図5のAPm01参照)、および減速機510に起因する周期的なずれを打ち消す補正(図5のGm1W参照)は、図3の処理に先立って、ロボット100に作業を行わせるために、あらかじめ設定されている。サーボモーター410および減速機510が交換される前の状態において、ロボット100の各関節は、それぞれ上記の補正量で補正された位置制御信号によって制御される(図2の384参照)。
図3のステップS100においては、アーム要素110xの目標位置APcの基準位置RPが決定され、目標位置APcの基準位置RP、およびそのときのアーム要素110xの動作位置AParp01(図6の下段左部参照)のうち少なくとも一方の情報が、RAM320に記憶される。サーボモーター410および減速機510が交換される前の状態において、上記補正量が理想的に設定されていれば、アーム要素110xの動作位置AParp01は、アーム要素110xの基準位置RPと一致する。
図3のステップS200において、サーボモーター410または減速機510が交換される(図1の中央部参照)。ユーザーは、ロボット制御装置300のCPU310によって、出力部350を介して、ステップS200の処理の実行を促されて、サーボモーター410または減速機510の交換を行う。
ステップS300において、モーター角度センサー420および出力側センサー520のうち、ステップS200で交換されたものが初期化される。この処理は、ステップS200の処理の完了をユーザーから入力されたロボット制御装置300のCPU310によって、実行される。
ステップS400において、それまでに設定されていた位置制御信号の目標位置に応じた補正量(図5参照)が初期化される。すなわち、位置制御信号の補正量は、目標位置によらず0に設定される。この処理は、ロボット制御装置300のCPU310によって、自動的に実行される。
すなわち、サーボモーター410が別のサーボモーター410に交換された場合、または、減速機510が別の減速機510に交換された場合には(図3のS200参照)、サーボモーター410または減速機510の交換の前に設定されていた補正量が初期化される(図3のS400参照)。このステップS400の処理を行うCPU310の機能部を、初期化部313として図1に示す。
このような構成とすることにより、サーボモーター410が別のサーボモーター410に交換された場合、または、減速機510が別の減速機510に交換された場合に、交換の前に設定されていた補正量を使用して位置制御信号が補正されることによって、位置制御信号が補正されない場合に比べて、さらにアーム要素110xの位置のずれが大きくなる事態を、防止することができる。
図3のステップS450において、アーム要素110xを回転させる駆動の原点において、較正が行われる。より具体的には、出力側センサー520(図1の中央部参照)が0°を示すときの減速機510の出力軸510oの動作位置が0°に設定され、アームを0°の姿勢に動作させ、そのときのサーボモーター410の出力軸410oの動作位置が0°に設定される。ステップS450の処理により、ステップS500以下の処理においてアーム要素110xが動かされた際に、不測の動作位置にアーム要素110xが移動する事態を防止することができる。ユーザーは、ロボット制御装置300のCPU310によって、出力部350を介して、実行を促されて、ロボット制御装置300とともにステップS450の処理を行う。
ステップS500において、さらに較正を行い、基準位置RPにおけるアーム要素110xの動作位置APaのずれが0となるように、サーボモーター410の出力軸410oの動作位置の補正量APm01が決定される。具体的には、ロボット使用者は、アーム要素110xの動作位置がステップS100でRAM320に記憶された基準位置RPとなるように、ロボットを基準位置RPへ動作させる。そして、そのときのモーターの動作位置から、目標位置APcが0であるときのサーボモーター410の出力軸410oの動作位置の補正量APm02が、決定される。
図7は、ステップS500の処理後の状態における、アーム要素110xの目標位置APcと、サーボモーター410の出力軸410oの動作位置APmの関係を示すグラフである。図3のステップS500において、アーム要素110xの目標位置APcが基準位置RPである状態について行われた較正によって、アーム要素110xの目標位置APcが0であるときの補正量Apm02が、設定される(図7の下段左部参照)。
その結果、位置制御信号によって実現されるサーボモーター410の出力軸410oの動作位置は、実線で表される直線状のグラフGm2Lとなる。なお、この状態においては、出力軸410oの動作位置は、減速機510に起因する周期的なずれを打ち消すように、補正されていない。
図8は、ステップS500の処理後の状態における、アーム要素110xの目標位置APcと、アーム要素110xの動作位置APaの関係を示すグラフである。図7の直線状のグラフGm2Lが表す動作位置にしたがって、目標位置APcに応じてサーボモーター410の出力軸410oが動作されると、減速機510に起因する周期的なずれのために、アーム要素110xの動作位置APaは、図8において、実線で表される波状のグラフGa2Wとなる。すなわち、アーム要素110xの目標位置APcに対して、アーム要素110xの動作位置APaは、波状に変動する。しかし、図3のステップS500において行われた較正により、アーム要素110xの目標位置APcが基準位置RPであるときのアーム要素110xの動作位置APaは、サーボモーター410および減速機510が交換される前と同様、AParp01となる。
なお、図8においては、減速機510に起因する周期的なずれが存在しない場合のアーム要素110xの動作位置APaを、破線のグラフGa2Lで示す。減速機510に起因する周期的なずれによって、基準位置RPにおけるアーム要素110xの動作位置APaは、ΔAParpだけプラス側にずれている。
図9は、図3のステップS500において、補正量APm02の設定が手動で行われる場合に、関節J1~J4について補正量APm02が設定される際のユーザーインターフェイスを示す図である。図9の表示は、出力部350としての液晶ディスプレイ(図1参照)に表示される。図9の例においては、図3のステップS500において、現在の位置が基準位置RPであるとして補正量APm02を再設定する旨のコマンド「calib」が入力部340を介して入力される。もしくは、関節J1~J4について、それぞれ-13683,-11656,11642,-1415の補正量APm02(図7の下段左部参照)を直接、設定するコマンド「hofs」を用いて、補正量APm02が設定される。なお、補正量APm02の設定は、ロボット制御装置300のCPU310によって、自動的に実行されることもできる。
図3のステップS500において、その後、目標位置APcが0であるときのサーボモーター410の出力軸410oの動作位置が補正量APm02となるように、位置制御信号が補正され(図2の384参照)、その位置制御信号によってアーム要素110xが駆動される。この処理は、ロボット制御装置300のCPU310によって、自動的に実行される。
ステップS600において、アーム要素110xの目標位置APcに応じた伝達誤差が演算される。具体的には、出力側センサー520の出力に基づいて、アーム要素110xの目標位置APcに応じた周期的なずれの振幅、位相が演算される。この処理は、ロボット制御装置300のCPU310によって、自動的に実行される。ステップS600の処理を行うCPU310の機能部を、誤差演算部312として図1に示す。
ステップS700において、ステップS600で得られたアーム要素110xの目標位置APcに応じた減速機510の伝達誤差に基づいて、その伝達誤差を打ち消すように位置制御信号が補正され、その位置制御信号によってアーム要素110xが駆動される。
ステップS700においては、減速機510に起因する周期的なずれを打ち消すための、目標位置APcに応じた補正量が決定される。具体的には、補正量の振幅、位相が演算される。その後ステップS500と同様の処理が行われ、サーボモーター410の出力軸410oの動作位置の補正量APm03が決定される。それらの補正量の情報は、RAM320に記憶される。ステップS700の処理は、ロボット制御装置300のCPU310によって、実行される。
図10は、ステップS700において、ロボット制御装置300に設定されるパラメーターを示すユーザーインターフェイスを示す図である。図10の表示は、出力部350としての液晶ディスプレイ(図1参照)に表示される。図10の例においては、関節J1について、振幅が200pulseで、位相が278°、基準角度が35°の補正が、位置制御信号に対してなされるように、設定が行われている。なお、「基準角度」は、基準位置RPの角度である。「位相」は、減速機510の入力軸510iの動作位置、すなわち、サーボモーター410の出力軸410oの動作位置APmについて、定められる。
図11は、ステップS700において周期的なずれが補正された後の状態における、アーム要素110xの目標位置APcと、サーボモーター410の出力軸410oの動作位置APmの関係を示すグラフである。破線で表される直線状のグラフGm2Lは、減速機510に起因する周期的なずれを打ち消す補正がされていない位置制御信号によって実現される出力軸410oの動作位置を表す(図7のGm2L参照)。実線で表される波状のグラフGm2Wは、減速機510に起因する周期的なずれを打ち消す補正がなされた位置制御信号によって実現される出力軸410oの動作位置を表す。周期的なずれの補正によって、基準位置RPにおけるサーボモーター410の出力軸410oの動作位置APmは、マイナス方向にずらされている。
図12は、ステップS700において周期的なずれが補正された後の状態における、アーム要素110xの目標位置APcと、アーム要素110xの動作位置APaの関係を示すグラフである。図11の波状のグラフGm2Wが表す動作位置にしたがって、目標位置APcに応じてサーボモーター410の出力軸410oが動作されると、アーム要素110xの動作位置APaは、図12において、実線で表される直線状のグラフGa2Lとなる。
グラフGa2Lにおいては、周期的なずれを打ち消す補正により、アーム要素110xの目標位置APcが基準位置RPであるときのアーム要素110xの動作位置APaは、動作位置AParp01よりもΔAParpだけ0に近い動作位置AParp02になっている(図12の下段左部および図8の下段左部参照)。すなわち、グラフGa2Lにおいては、アーム要素110xの目標位置APcが基準位置RPのとき、アーム要素110xの動作位置APaは、サーボモーター410および減速機510が交換される前に設定された動作位置AParp01とはならない。また、グラフGa2Lにおいては、アーム要素110xの目標位置APcが0のとき、アーム要素110xの動作位置APaは0とはならない(図12の下段左部参照)。
図3のステップS700において、基準位置RPにおけるアーム要素110xの動作位置APaのずれが0となるように、サーボモーター410の出力軸410oの動作位置の補正量APm03が決定される。具体的には、基準位置RPにおけるアーム要素110xの動作位置がステップS100でRAM320に記憶された基準位置としての動作位置AParp01となるように、目標位置APcが0であるときのサーボモーター410の出力軸410oの動作位置の補正量APm03が決定される。補正量APm03の情報は、RAM320に記憶される。
図13は、ステップS700の処理後の状態における、アーム要素110xの目標位置APcと、サーボモーター410の出力軸410oの動作位置APmの関係を示すグラフである。破線で表される波状のグラフGm2Wは、基準位置RPにおけるアーム要素110xの動作位置APaのずれを打ち消す補正がされていない位置制御信号によって実現される出力軸410oの動作位置を表す(図11のGm2W参照)。実線で表される波状のグラフGm3Wは、基準位置RPにおけるアーム要素110xの動作位置APaのずれが0となるように補正された位置制御信号によって実現される出力軸410oの動作位置を表す(図12のAParp01,AParp02参照)。基準位置RPにおける動作位置APaのずれの補正によって、基準位置RPにおけるサーボモーター410の出力軸410oの動作位置APmは、プラス方向にずらされている。
なお、図13において、太い破線で表される直線状のグラフGm3Lは、実線で表される波状のグラフGm3Wを元に、減速機510に起因する周期的なずれを打ち消す補正がされていないと仮定した場合の位置制御信号によって実現される出力軸410oの動作位置を表す。
図14は、ステップS700の処理後の状態における、アーム要素110xの目標位置APcと、アーム要素110xの動作位置APaの関係を示すグラフである。図13の実線で表される波状のグラフGm3Wが表す動作位置にしたがって、目標位置APcに応じてサーボモーター410の出力軸410oが動作されると、アーム要素110xの動作位置APaは、図14において、実線で表される直線状のグラフGa3Lとなる。
グラフGa3Lにおいては、アーム要素110xの目標位置APcが基準位置RPであるときのアーム要素110xの動作位置APaは、動作位置AParp01になっている(図14の下段左部、および図6の下段左部参照)。また、グラフGa3Lにおいては、アーム要素110xの目標位置APcが0のとき、アーム要素110xの動作位置APaは0である(図14の下段左部参照)。
なお、図14において、太い破線で表される波状のグラフGm3Wは、出力軸410oの動作が図13のGm3Lにしたがう場合のアーム要素110xの動作位置APaを表す。
以上で説明したステップS100~S700の処理は、各関節J1~J4について実行される(図1参照)。その結果、サーボモーター410および減速機510が交換された後においても、サーボモーター410および減速機510が交換される前と同様に、アーム要素110xの目標位置APcが基準位置RPであるときのアーム要素110xの動作位置APaは、動作位置AParp01となり、かつ、アーム要素110xの目標位置APcに応じた動作位置APaは、周期的なずれを含まないこととなる。
図3のステップS800において、ステップS700までの処理で設定されRAM320に格納されている目標位置に応じた補正量の情報にしたがって、位置制御信号PC01が補正され、アーム要素110xが駆動される(図2の384参照)。RAM320に格納されている目標位置に応じた補正量の情報は、この参考例において、補正量の振幅、位相および基準角度、ならびに目標位置APcが0であるときのサーボモーター410の出力軸410oの動作位置の補正量APm03である。補正量に基づいて補正された位置制御信号PC02を使用して、サーボモーター410を制御するロボット制御装置300のCPU310の機能部は、駆動制御部316である(図2の左部参照)。
以上で説明した参考例においては、ステップS500とステップS700において、合計2回、基準位置における較正が行われる(図3参照)。
(2)第1実施形態における補正量の設定:
図4は、第1実施形態における補正量の設定処理およびロボットの制御方法を示すフローチャートである。図4の処理は、図3のステップS500,S600,S700に代えて、ステップS620を含む。図4の処理の他の点は、図3の処理と同じである。
ステップS600は、ステップS622,S624,S626を含む。ステップS600の処理は、ロボット制御装置300のCPU310によって、自動的に実行される。
ステップS622において、アーム要素110xの目標位置APcに応じた誤差が演算される。ステップS622における処理は、図3のステップS600における処理と同じである(図8および図10参照)。
図4のステップS624において、基準位置RPにおけるサーボモーター410の出力軸410oの動作位置、および基準位置RPにおける動作位置のずれに基づいて、目標位置APcに応じたアーム要素110xの動作位置APaの補正量が演算される。
具体的には、まず、ステップS622で得られた目標位置APcに応じた、アーム要素110xの動作位置APaのずれの振幅、位相、および基準角度に基づいて、目標位置APcに応じたアーム要素110xの動作位置APaのずれの振動の中点のずれ量が決定される。「目標位置APcに応じたアーム要素110xの動作位置APaのずれの振動の中点」の位置は、ステップS622で得られた振幅、位相、および基準角度で表される目標位置APcに応じたずれを元に、振幅を0に置き換えることによって得られる。そして、目標位置APcに応じたアーム要素110xの動作位置APaのずれの振動の中点のずれ量を解消するための、目標位置APcが0であるときの出力軸410oの動作位置APmの補正量APm12が演算される。
図15は、ステップS620の処理後の状態における、アーム要素110xの目標位置APcと、サーボモーター410の出力軸410oの動作位置APmの関係を示すグラフである。細い破線で表される直線状のグラフGm3Lは、目標位置APcに応じた、ずれの振動の中点の本来の位置からのずれ量を打ち消す補正が行われている位置制御信号によって実現される出力軸410oの動作位置を表す(図13のGm2L参照)。なお、グラフGm3Lにおいては、周期的なずれを打ち消す補正が行われていない。
図16は、図4のステップS620の処理後の状態における、アーム要素110xの目標位置APcと、アーム要素110xの動作位置APaの関係を示すグラフである。図15の直線状のグラフGm3Lが表す動作位置にしたがって、目標位置APcに応じてサーボモーター410の出力軸410oが動作されると仮定すると、減速機510に起因する周期的なずれのために、アーム要素110xの動作位置APaは、図16において、実線で表される波状のグラフGa3Wとなる。
なお、図15の直線状のグラフGm3Lが表す動作位置にしたがって、目標位置APcに応じてサーボモーター410の出力軸410oが動作され、かつ、減速機510に起因する周期的なずれが存在しないと仮定した場合の、アーム要素110xの動作位置APaを、図16において、細い破線の直線状のグラフGa3Lで示す。グラフGa3Wにおいて、基準位置RPにおけるアーム要素110xの動作位置APaは、ずれの振動の中点からプラス側にΔAParpだけずれている。
図3のステップS624においては、ステップS622で得られた目標位置APcに応じた、アーム要素110xの動作位置APaのずれの振幅、位相、および基準角度に基づいて、基準位置RPにおける、ずれの振動の中点からのアーム要素110xの動作位置APaのずれ量ΔAParpが計算される(図16の下段左部参照)。そして、アーム要素110xの動作位置APaのずれ量ΔAParpに相当する補正量ΔAPmrpが計算される(図15の下段左部参照)。
図16のグラフGa3Wにおいて、基準位置RPにおけるアーム要素110xの動作位置APaは、ずれの振動の中点からプラス側にΔAParpだけずれている。このため、減速機510に起因する周期的なずれを打ち消す補正を行うと、基準位置RPにおけるアーム要素110xの動作位置APaは、マイナス側に移動することになる。そのような移動を生じさせず、基準位置RPにおけるアーム要素110xの動作位置APaを動作位置AParp01に保つためには、さらに、サーボモーター410の出力軸410oの動作位置APmをプラス側に補正する必要がある。そのような補正を行うための補正量がΔAPmrpである(図15の下段左部参照)。
すなわち、(APm12+ΔAPmrp)が、アーム要素110xの目標位置APcが0のとき、目標位置に応じたアーム要素110xの動作位置APaのずれの中点が補正されるべきずれ量である(図15の下段左部参照)。
図4のステップS624において、アーム要素110xの目標位置APcが0のときのサーボモーター410の出力軸410oの動作位置の補正量(APm12+ΔAPmrp)が決定される。
また、図4のステップS624においては、ステップS622で得られた振幅、位相、および基準角度に基づいて、減速機510に起因する周期的なずれを打ち消すための、補正量の振幅、位相および基準角度が演算される。
すなわち、ステップS624においては、駆動制御部316がサーボモーター410を制御するための位置制御信号の補正量であって、位置制御信号の補正によって基準位置RPにおけるアーム要素110xの動作位置が変わらない補正量が、演算される(図16の下段左部、および図15の下段左部参照)。その補正量は、減速機510のアーム要素110xの目標位置APcに応じた周期的な伝達誤差、および基準位置RPにおける伝達誤差(図4のS622参照)に基づいて演算される。このステップS624の処理を行うCPU310の機能部は、誤差演算部312である(図1参照)。
ステップS626において、ステップS626で演算された補正量の情報が、RAM320に記憶される。より具体的には、周期的なずれを打ち消すための補正量の振幅、位相、基準角度、ならびにアーム要素110xの目標位置APcが0のときのサーボモーター410の出力軸410oの動作位置APmの補正量APm12および補正量ΔAPmrpが、RAM320に記憶される。なお、ステップS626における補正量の情報の格納は、参考例におけるS600の処理の場合と同様、自動で行われることもでき、手動で行われることもできる(図9参照)。
以上で説明したステップS620の処理は、ロボット制御装置300のCPU310によって、自動的に実行される。
このような処理を行うことにより、減速機510に起因する動作位置の誤差を抑制することによって、アーム要素110xの動作位置について定常偏差が生じる事態を防止することができる。
第1実施形態におけるアーム110の一部であるアーム要素110xを、広義の「アーム」とも呼ぶ。サーボモーター410を、「駆動部」とも呼ぶ。減速機510を、「伝達部」とも呼ぶ。モーター角度センサー420を、「入力位置検出部」とも呼ぶ。サーボモーター410の出力軸410oの動作位置APmを、「伝達部の入力側の動作位置」とも呼ぶ。出力側センサー520を、「出力位置検出部」とも呼ぶ。減速機510の出力軸510oの動作位置APaおよびアーム要素110xの動作位置APaを、「伝達部の出力側の動作位置」とも呼ぶ。伝達部の動作位置に応じた伝達誤差を、「第1の伝達誤差」とも呼ぶ。基準位置における伝達誤差を、「第2の伝達誤差」とも呼ぶ。アーム要素110xの目標位置APcを、「伝達部の動作位置」とも呼ぶ。誤差演算部312を、「演算部」とも呼ぶ。RAM320を、「記憶部」とも呼ぶ。位置制御信号PC01を、「操作量」とも呼ぶ。減速機510の出力軸510oの動作位置APaおよびアーム要素110xの動作位置APaを、「アームの位置」とも呼ぶ。
A3.第1実施形態の変形例:
(1)第1実施形態の変形例1:
第1実施形態の変形例1においては、図3のステップS626が、さらに、追加の処理を含む。第1実施形態の変形例1の他の点は、第1実施形態と同じである。
図17は、第1実施形態の変形例1における補正量の設定処理の一部を示すフローチャートである。図17の処理は、図4のステップS622の後、かつ、ステップS626の前に実行される。図17の処理は、ロボット制御装置300のCPU310によって実行される。図17の処理を行うCPU310の機能部は、誤差演算部312である(図1参照)。
ステップS632において、ステップS622で得られた周期的な伝達誤差の最大値が閾値Thaより大きいか否かが判定される。周期的な伝達誤差の最大値が閾値Thaより大きい場合は、処理は、ステップS634に進む。周期的な伝達誤差の最大値が閾値Tha以下である場合は、処理は、ステップS624に進む。
ステップS634において、周期的な第1の伝達誤差と基準位置における伝達誤差に基づいて演算される補正量を、RAM320に格納することを、出力部350に表示させる。より具体的には、出力部350としての液晶ディスプレイ(図1参照)に、補正値の設定処理を進めるか否かの確認を促すメッセージが、伝達誤差の最大値とともに表示される。
ステップS636において、補正値の設定処理を進める旨の指示が、入力部340を介してあった場合には、処理は、ステップS624に進む。補正値の設定処理を進めない旨の指示が、入力部340を介してあった場合、またはあらかじめ定められた期間、ロボット制御装置300に入力がなかった場合は、処理は終了する。
図17の処理によれば、減速機510の伝達誤差の最大値が、あらかじめ定められた閾値Thaを超えている場合は、基準位置RPにおける伝達誤差に基づいて演算された補正量をRAM320に格納することの確認が、出力部350を介してユーザーに促される。このため、モーター角度センサー420および出力側センサー520に異常があった場合に、異常な測定結果に基づいて補正量が決定され、サーボモーター410が制御される事態を防止することができる。
(2)第1実施形態の変形例2:
第1実施形態においては、基準位置RPの設定において、ユーザーが、入力部340を介して、基準位置RPの座標を入力する(図4のS100参照)。しかし、基準位置RPの設定は、アーム要素110xの動作位置を表す情報を取得することができるセンサーからの信号に基づいて、自動的に行われてもよい。たとえば、アーム要素110xの動作位置を表す情報を取得することができるセンサーとして、カメラ700を利用することができる(図1参照)。
ロボット制御装置300のCPU310の機能部としての基準位置設定部314は、カメラ700から得られる画像データから、アーム要素110xの動作位置を表す情報を取得して、その情報に基づいて、アーム要素110xの動作位置が基準位置とすべき位置にあることを確認して、基準位置の情報をRAM320に格納することもできる。
このような態様とすれば、駆動制御部316がサーボモーター410を制御するための位置制御信号PC01の補正量を設定する際(図2参照)の、ユーザーの負荷を、軽減することができる。
第1実施形態のカメラ700を、「センサー」とも呼ぶ。
B.第2実施形態:
第1実施形態においては、補正量の演算が行われた後の補正量の設定は、手動で行われることもできる(図4のS626、図3のS600、および図9参照)。第2実施形態においては、補正量の設定は、さらに、過去に演算され保存されていた補正量を、RAM320から読み出して、行うこともできる。また、図4のステップS400が実行されるタイミングが、第1実施形態とは異なる。第2実施形態の他の点は、第1実施形態と同じである。
図18は、保存されていた補正量をRAM320から読み出して、今後使用される補正量として設定する際のユーザーインターフェイスUI20を示す図である。図18の表示は、出力部350としての液晶ディスプレイ(図1参照)に表示される。ユーザーは、入力部340を介して、ボタンB24を押すことにより、保存されていた補正量をRAM320から読み出すことができる。RAM320から読み出された各関節J1~J4の補正量の情報は、表T22の各欄に表示される。ユーザーは、入力部340を介して、ボタンB26を押すことにより、読み出した補正量を、今後使用される補正量として設定することができる。具体的には、読み出した補正量が、RAM320に保存される。
第2実施形態においては、ボタンB24が押されて、保存されていた補正量がRAM320から読み出された際に、新たな補正量の保存に先立って、それまでに設定されていた位置制御信号の目標位置に応じた補正量が初期化される。初期化の処理内容は、図3および図4のS400と同じである。すなわち、第2実施形態においては、第1実施形態における図4のS400の処理は、図4のステップS626において実行される。
このような構成としても、以前に設定されていた不適切な補正量を使用して位置制御信号が補正されることによって、アーム要素110xの位置のずれが大きくなる事態を、防止することができる。
C.第3実施形態:
第1実施形態においては、基準位置の設定において、ユーザーは、入力部340を介して、基準位置RPの座標を入力する(図4のS100参照)。しかし、第3実施形態においては、基準位置の設定において、ユーザーインターフェイスが表示され、ユーザーが実際にアーム110の制御点を所望の地点に動かすことにより、基準位置の設定が行われる。第3実施形態の他の点は、第1実施形態と同じである。
図19は、基準位置の設定において出力部350としての液晶ディスプレイ(図1参照)に表示されるユーザーインターフェイスUI30を示す図である。ユーザーインターフェイスUI30を示されたユーザーは、入力部340を介して、ボタンB38を押して、図示しない入力機器を介してアーム110の制御点を所望の地点に動かす。その後、ユーザーは、ボタンB36を押して、基準位置の設定を確定させる。基準位置の情報は、RAM320に格納される。
このような態様とすれば、基準位置の設定をより容易に行うことができる。
D.第4実施形態:
(1)図20は、複数のプロセッサーによってロボットの制御装置が構成される一例を示す概念図である。この例では、ロボット100およびそのロボット制御装置300の他に、パーソナルコンピューター400,400bと、LANなどのネットワーク環境を介して提供されるクラウドサービス500とが描かれている。パーソナルコンピューター400,400bは、それぞれプロセッサーとメモリーとを含んでいる。また、クラウドサービス500においてもプロセッサーとメモリーを利用可能である。プロセッサーは、コンピューター実行可能な命令を実行する。これらの複数のプロセッサーの一部または全部を利用して、ロボット制御装置300を実現することが可能である。また、各種の情報を記憶する記憶部も、これらの複数のメモリーの一部または全部を利用して、実現することが可能である。
(2)図21は、複数のプロセッサーによってロボットの制御装置が構成される他の例を示す概念図である。この例では、ロボット100のロボット制御装置300が、ロボット100の中に格納されている点が図20と異なる。この例においても、複数のプロセッサーの一部または全部を利用して、ロボット制御装置300を実現することが可能である。また、各種の情報を記憶する記憶部も、複数のメモリーの一部または全部を利用して、実現することが可能である。
E.他の実施形態:
E1.他の形態1:
(1)上記実施形態の説明においては、フィードバック制御については、説明を省略している(図2参照)。しかし、モーター角度センサー420や出力側センサー520の出力に基づいて、位置と速度の少なくとも一方のフィードバック制御が行われることができる。
(2)上記実施形態においては、基準位置は、手動でパラメーターを入力されることにより、またはセンサーの出力に基づいて自動で、行われる(図9および図1の700参照)。しかし、基準位置は、治具を利用して、エンドエフェクター200や、アーム110の先端を治具、またはあらかじめ位置が特定されている構造に押し当てることにより、指定することもできる。
(3)上記実施形態においては、補正される操作量は、サーボモーター410の出力軸410oの動作位置APmであり、より具体的には、位置制御信号PC01である(図2の左部参照)。しかし、補正される操作量は、速度を表す速度制御信号であってもよく、加速度を表す加速度制御信号であってもよい(図2の386,388参照)。また、角度センサー420の出力する角度であってもよい。
(4)上記実施形態においては、伝達部としての減速機510の動作位置を表すパラメーターとして、アーム要素110xの目標位置APcを利用している。しかし、減速機510の動作位置を表すパラメーターとしては、たとえば、入力軸510iの動作位置を使用することもできる。
(5)上記実施形態においては、ステップS626において、周期的なずれを打ち消すための補正量の振幅、位相、基準角度、ならびにアーム要素110xの目標位置APcが0のときのサーボモーター410の出力軸410oの動作位置APmの補正量APm12および補正量ΔAPmrpが、RAM320に記憶される。しかし、補正量は、アーム要素110xの目標位置APcに応じた値を格納しているテーブルなど、他の形態で記憶されることもできる。
(6)上記実施形態においては、スカラロボット100を例に、本開示の技術を説明した。しかし、本開示の技術は、スカラロボット以外に、垂直多関節ロボットや直交ロボット、パラレルリンクロボットなど、他の形態のロボットに適用することもできる。
E2.他の形態2:
基準位置の指定をユーザーから受け付ける(図4のS100参照)。しかし、基準位置の指定は、第1実施形態の変形例で説明したように、ユーザーから指示を受けることなく、自動的に設定されてもよい。そのような態様においては、ロボット制御装置300のCPU310の機能部としての受付部318を備えない態様とすることができる。
E3.他の形態3:
(1)上記実施形態においては、図4のステップS400において、それまでに設定されていた位置制御信号の目標位置に応じた補正量(図5参照)が、目標位置によらず0に設定される。しかし、補正量の初期化は、補正量を0に設定することに限られず、0以外のデフォルトの値に設定されることにより、実現されてもよい。
(2)上記実施形態においては、図4のステップS400において、それまでに設定されていた位置制御信号の目標位置に応じた補正量(図5参照)の初期化が、自動的に行われる。しかし、補正量の初期化は、自動的には行われず、ユーザーの指示を受けることにより行われてもよい。また、補正量の初期化が行われない態様とすることもできる。そのような態様においては、較正の際に、ユーザーによって補正量が上書きされる。
E4.他の形態4:
上記実施形態の変形例においては、カメラ700の出力を利用して、基準位置RPの設定が行われる(図1参照)。しかし、基準位置RPの設定を自動的に行う際には、カメラ以外に、赤外線センサーや超音波センサーなど、アームの位置を表す情報を取得することができる他のセンサーを利用することもできる。
E5.他の形態5:
上記実施形態の変形例においては、伝達誤差の最大値が閾値Thaより大きい場合は、出力部350としての液晶ディスプレイに、伝達誤差の最大値とともに、補正値の設定処理を進めるか否かの確認を促すメッセージを表示される(図17のS634参照)。しかし、伝達部の動作位置に応じた伝達誤差に基づいて演算される補正量を記憶部に格納することの確認が表示されることなく、補正量を記憶部に格納する態様とすることもできる(図4のS620参照)。
F.さらに他の形態:
本開示は、上述した実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の形態で実現することができる。例えば、本開示は、以下の形態によっても実現可能である。以下に記載した各形態中の技術的特徴に対応する上記実施形態中の技術的特徴は、本開示の課題の一部又は全部を解決するために、あるいは、本開示の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
(1)本開示の一形態によれば、アームと、前記アームを駆動する駆動部と、前記駆動部からの出力を前記アームに駆動力として伝達する伝達部と、前記伝達部の前記駆動部からの出力が入力される入力側の動作位置を検出する入力位置検出部と、前記伝達部の前記アームに前記駆動力を伝達する出力側の動作位置を検出する出力位置検出部と、を有するロボットを制御する制御装置が提供される。この制御装置は、前記アームの基準位置を設定する基準位置設定部と、前記入力位置検出部からの出力と、前記出力位置検出部からの出力と、に基づいて、前記伝達部の動作位置に応じた前記伝達部の第1の伝達誤差と、前記基準位置における前記伝達部の第2の伝達誤差と、を演算し、前記第1の伝達誤差と前記第2の伝達誤差に基づいて、補正量を演算する演算部と、前記補正量に基づいて補正された操作量に基づいて、前記駆動部を制御する駆動制御部と、を備える。
このような態様とすれば、減速機に起因する動作位置の誤差を抑制することによって、アームの位置について定常偏差が生じる事態を防止することができる。
(2)上記形態の制御装置において、前記基準位置の指定をユーザーから受け付ける受付部を備える、態様とすることもできる。
このような態様とすれば、ユーザーは、ロボットに実行させる作業に応じて、適切な基準位置を設定することができる。このため、ロボットに正確に作業を行わせることができる。
(3)上記形態の制御装置において、前記ロボットにおいて、前記駆動部が別の駆動部に交換された場合、または、前記伝達部が別の伝達部に交換された場合に、前記駆動部または前記伝達部の交換の前に設定されていた前記補正量を初期化する初期化部を備える、態様とすることもできる。
このような態様とすれば、駆動部が別の駆動部に交換された場合、または、伝達部が別の伝達部に交換された場合に、交換の前に設定されていた補正量を使用して操作量が補正されることによって、操作量が補正されない場合に比べて、さらにアームの位置の誤差が大きくなる事態を、防止することができる。
(4)上記形態の制御装置において、前記基準位置設定部は、前記アームの位置を表す情報を取得するセンサーからの信号に基づいて、前記基準位置を設定する、態様とすることもできる。
このような態様とすれば、駆動制御部が駆動部を制御するための操作量の補正量を設定する際のユーザーの負荷を軽減することができる。
(5)上記形態の制御装置において、情報を記憶する記憶部と、ユーザーに対する出力を行う出力部と、を備え、前記演算部は、演算した前記補正量を前記記憶部に格納し、前記駆動制御部は、前記記憶部に格納された前記補正量に基づいて前記操作量を補正し、前記演算部は、前記伝達部の前記第1の伝達誤差の最大値が、あらかじめ定められた閾値を超えている場合は、前記第1の伝達誤差と前記第2の伝達誤差に基づいて演算される補正量を、前記記憶部に格納することを、出力部に表示させる、態様とすることもできる。
このような態様とすれば、入力位置検出部および出力位置検出部に異常があった場合に、
異常な測定結果に基づいて補正量が決定され、駆動部が制御される事態を防止することができる。
(6)本開示の他の形態によれば、アームと、前記アームを駆動する駆動部と、前記駆動部からの出力を前記アームに駆動力として伝達する伝達部と、前記伝達部の前記駆動部からの出力が入力される入力側の動作位置を検出する入力位置検出部と、前記伝達部の前記アームに前記駆動力を伝達する出力側の動作位置を検出する出力位置検出部と、を有するロボットを制御する制御方法が提供される。この制御方法は、前記アームの基準位置を設定する工程と、前記入力位置検出部からの出力と、前記出力位置検出部からの出力と、に基づいて、前記伝達部の動作位置に応じた前記伝達部の第1の伝達誤差と、前記基準位置における前記伝達部の第2の伝達誤差と、を演算する工程と、前記第1の伝達誤差、および前記第2の伝達誤差に基づいて、補正量を演算する工程と、前記補正量に基づいて補正された操作量に基づいて、前記駆動部を制御する工程と、を含む。
このような態様とすれば、減速機に起因する動作位置の誤差を抑制することによって、アームの位置について定常偏差が生じる事態を防止することができる。
(7)上記形態の制御方法において、前記基準位置の指定をユーザーから受け付ける工程を備える、態様とすることもできる。
このような態様とすれば、ユーザーは、ロボットに実行させる作業に応じて、適切な基準位置を設定することができる。このため、ロボットに正確に作業を行わせることができる。
(8)上記形態の制御方法において、前記ロボットにおいて、前記駆動部が別の駆動部に交換された場合、または、前記伝達部が別の伝達部に交換された場合に、前記駆動部または前記伝達部の交換の前に設定されていた前記補正量を初期化する工程を備える、態様とすることもできる。
このような態様とすれば、駆動部が別の駆動部に交換された場合、または、伝達部が別の伝達部に交換された場合に、交換の前に設定されていた補正量を使用して操作量が補正されることによって、操作量が補正されない場合に比べて、さらにアームの位置の誤差が大きくなる事態を、防止することができる。
(9)上記形態の制御方法において、前記基準位置を設定する工程は、前記アームの位置を表す情報を取得するセンサーからの信号に基づいて、前記基準位置を設定する工程を含む、態様とすることもできる。
このような態様とすれば、駆動制御部が駆動部を制御するための操作量の補正量を設定する際のユーザーの負荷を軽減することができる。
(10)上記形態の制御方法において、前記伝達部の前記第1の伝達誤差の最大値が、あらかじめ定められた閾値を超えている場合は、前記第1の伝達誤差と前記第2の伝達誤差に基づいて演算される補正量を記憶部に格納することを、出力部に表示させる工程と、ユーザーが前記格納することを確認する操作を受け付けた場合に、演算した前記補正量を記憶部に格納する工程と、を含み、前記駆動部を制御する工程は、前記記憶部に格納された前記補正量に基づいて前記操作量を補正する工程を含む、態様とすることもできる。
このような態様とすれば、入力位置検出部および出力位置検出部に異常があった場合に、
異常な測定結果に基づいて補正量が決定され、駆動部が制御される事態を防止することができる。
(11)本開示の他の形態によれば、上記形態の制御装置と、前記制御装置に制御される前記ロボットと、を備える、ロボットシステムが提供される。
本開示は、制御装置、制御方法およびロボットシステム以外の種々の形態で実現することも可能である。例えば、ロボット、ロボットアーム、ロボットの設定方法、ロボットアームの制御方法やの制御方法、その制御方法を実現するコンピュータープログラム、そのコンピュータープログラムを記録した一時的でない記録媒体等の形態で実現することができる。
上述した本開示の各形態の有する複数の構成要素はすべてが必須のものではなく、上述の課題の一部又は全部を解決するため、あるいは、本明細書に記載された効果の一部又は全部を達成するために、適宜、前記複数の構成要素の一部の構成要素について、その変更、削除、新たな他の構成要素との差し替え、限定内容の一部削除を行うことが可能である。また、上述の課題の一部又は全部を解決するため、あるいは、本明細書に記載された効果の一部又は全部を達成するために、上述した本開示の一形態に含まれる技術的特徴の一部又は全部を上述した本開示の他の形態に含まれる技術的特徴の一部又は全部と組み合わせて、本開示の独立した一形態とすることも可能である。