(57)【要約】【課題】少ないカメラ台数であっても、複数の関節について個別の関節の原点ずれの有無を精度高く判断できるロボットシステムの制御方法を提供する。【解決手段】制御部０８は、ロボット０１とカメラ０４を制御して、回動関節０２１、０３１、０５１について撮影工程をそれぞれ実行して撮影データを取得した後に演算制御を実行する。撮影工程では、ロボット０１を所定姿勢から複数の関節のうちの１つの関節で回転動作させる過程でマーク０３をカメラ０４により撮影する。演算制御では、軌跡取得制御で取得した撮影データに基づいて、ロボット０１の複数の関節のうちで回転位置ずれ、回転軸ずれが発生している関節を特定する。【選択図】図１
2015199192.tif 000002
【特許請求の範囲】
【請求項１】
複数の関節を有し、エンドエフェクタ又は先端側リンク部にマークを設けた多関節ロボットと、前記マークを撮影可能なカメラと、を制御部により制御するロボットシステムの制御方法であって、
前記制御部が、前記多関節ロボットを所定姿勢から前記複数の関節のうちの１つの関節で回転動作させる過程で前記マークを前記カメラにより撮影する撮影工程を、少なくとも２つの関節について実行して撮影データを取得する撮影データ取得工程と、
前記制御部が、前記撮影データ取得工程で取得した撮影データに基づいて、前記多関節ロボットの複数の関節のうちで位置ずれが発生している関節を特定する関節特定工程と、を有することを特徴とするロボットシステムの制御方法。
【請求項２】
前記多関節ロボットは、隣接するリンク部をリンク回転させる複数の回動関節と、１つのリンク部の一方の回動関節側と他方の回動関節側とをねじり回転させる複数のねじり関節と、を有し、
前記撮影データ取得工程では、前記多関節ロボットに前記所定姿勢を取らせる際に、前記制御部が前記複数のねじり関節のねじり角度を調整して前記複数の回動関節の回転軸線を並列に位置決めることを特徴とする請求項１に記載のロボットシステムの制御方法。
【請求項３】
前記撮影データ取得工程では、前記複数の回動関節の回転軸線に並列な方向から前記カメラにより前記マークを撮影することを特徴とする請求項２に記載のロボットシステムの制御方法。
【請求項４】
前記関節特定工程では、前記撮影データ取得工程で取得した前記マークの撮影データから前記マークの移動軌跡を取得することを特徴とする請求項１乃至３のいずれか１項に記載のロボットシステムの制御方法。
【請求項５】
前記関節特定工程では、前記複数の回動関節に位置ずれが無い状態で前記撮影データ取得工程を実行して事前に取得した前記マークの移動軌跡と、位置ずれの有無を判定するタイミングで前記撮影データ取得工程を実行して取得した前記マークの移動軌跡と、を比較することを特徴とする請求項４に記載のロボットシステムの制御方法。
【請求項６】
前記関節特定工程では、前記撮影データ取得工程において取得した前記マークの撮影データから前記マークの移動軌跡の始点座標、終点座標、回転中心座標、回転半径を取得することを特徴とする請求項１乃至３のいずれか１項に記載のロボットシステムの制御方法。
【請求項７】
前記関節特定工程では、前記複数の回動関節に位置ずれが無い状態で前記撮影データ取得工程を実行して取得した前記マークの移動軌跡の始点座標、終点座標、回転中心座標、回転半径と、当該関節特定工程の直前に前記撮影データ取得工程を実行して取得した前記マークの移動軌跡の始点座標、終点座標、回転中心座標、回転半径と、を比較することを特徴とする請求項６に記載のロボットシステムの制御方法。
【請求項８】
前記多関節ロボットは、基礎部と、前記基礎部に第一関節で連結された第一リンク部と、前記第一リンク部に第二関節で連結された第二リンク部と、前記第二リンク部に第三関節で連結された第三リンク部と、を有し、
前記マークは、前記第三リンク部と一体に移動可能であることを特徴とする請求項１乃至７のいずれか１項に記載のロボットシステムの制御方法。
【請求項９】
請求項１に記載のロボットシステムの制御方法において、
前記位置ずれは、前記制御部が前記関節に設定する座標角度と前記撮影データに基づく前記関節の角度との差分として定義される回転位置ずれであることを特徴とする請求項１乃至８のいずれか１項に記載のロボットシステムの制御方法。
【請求項１０】
前記制御部は、前記関節特定工程で特定された前記位置ずれが発生している関節を表示する表示工程を有することを特徴とする請求項１乃至９のいずれか１項に記載のロボットシステムの制御方法。
【請求項１１】
請求項１乃至１０のいずれか１項に記載のロボットシステムの制御方法をコンピュータに実行させるためのプログラム。
【請求項１２】
請求項１乃至１０のいずれか１項に記載のロボットシステムの制御方法をコンピュータに実行させるためのプログラムを記録した記録媒体。
【請求項１３】
エンドエフェクタ又はリンク部にマークを設けた多関節ロボットと、前記マークを撮影可能なカメラと、前記多関節ロボット及び前記カメラを制御する制御部と、を備えたロボットシステムであって、
前記制御部は、前記多関節ロボットを所定姿勢から複数の関節のうちの１つの関節で回転動作させる過程で前記マークを前記カメラにより撮影する撮影工程を、少なくとも２つの関節について実行して撮影データを取得し、当該取得した撮影データに基づいて、前記多関節ロボットの複数の関節のうちで位置ずれが発生している関節を特定することを特徴とするロボットシステム。
【請求項１４】
前記多関節ロボットは、関節ごとに分解してリンク部ごとに交換可能に構成され、
先端側のリンク部ほど強度の余裕率が小さく設定されていることを特徴とする請求項１３に記載のロボットシステム。
【請求項１５】
前記位置ずれが発生している関節を表示する表示部を有することを特徴とする請求項１３又は１４に記載のロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多関節ロボットとカメラとを備えたロボットシステム、詳しくは、多関節ロボットの複数の関節における回転位置ずれの判定方法に関する。
【背景技術】
【０００２】
複数のリンク部の両端を回動関節で連結してリンク部の折れ曲がり動作を可能にした多関節ロボットが広く用いられている。多関節ロボットでは、通常、複数のリンク部のいくつかがリンク部の長手方向に垂直な断面内でねじる方向に回転するねじり関節を備えているので、多関節ロボットは、６軸運動、７軸運動といった人間の腕に近い複雑な動作が可能である。
【０００３】
多関節ロボットは、設置時、ティーチング時、実動作時等に他の物体に干渉して、特定の関節に過負荷を生じて関節が原点ずれ（回転位置ずれ、回転軸ずれ）を発生することがある。特定の関節に原点ずれが発生した状態で実動作を実行させると、動作精度が低下したり、治具やワークを落下させたり、他の物体に干渉して過負荷を生じたりする可能性がある。
【０００４】
特許文献１には、基礎部と二本のリンクとを二個の関節で連結した多関節ロボットとカメラとを備えたロボットシステムが記載されている。ここでは、多関節ロボットのエンドエフェクタにマークを設け、実動作時のマークをテレビカメラで撮影してマークの移動軌跡を取得している。そして、移動軌跡にずれが発生するとロボットシステムの動作を停止させている。
【０００５】
特許文献２には、基礎部と三本のリンクとを三個の関節で連結した多関節ロボットとカメラとを備えたロボットシステムが記載されている。ここでは、多関節ロボットのそれぞれの関節の隣接位置に特殊な形状のマークを設け、カメラで撮影したマークの画像解析によりそれぞれのリンク部の回動位置を測定している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開昭６３−２８８６９９号公報
【特許文献２】特開２０１１−１２５９７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来の多関節ロボットでは、関節を挟む２つのリンク部の重なり部分に原点ずれが無い場合にピンが貫通するようなピン孔を形成していた。そして、それぞれの関節を原点に戻してピン孔にピンを挿入する手作業により、原点ずれが発生しているか否かを関節ごとに個別に判定していた。このため、多関節ロボットの多数の関節について原点ずれを評価しようとすると、熟練技術者が長い時間を費やしていた。
【０００８】
特許文献１のロボットシステムでは、撮影画像におけるマークの移動軌跡のずれによって関節の原点ずれの発生を直ちに検知できるものの、どの関節で原点ずれが発生しているかは、やはり別途の手作業によって判定する必要がある。
【０００９】
特許文献２のロボットシステムでは、関節ごとの原点ずれの有無を撮影画像からある程度は判断することが可能である。しかし、複数の関節の原点ずれを１台のカメラで測定していると、関節ごとの原点ずれ検知を精度高く行うことができない。マークごとにカメラを配置すれば、関節ごとの原点ずれの検出精度を高めることができるが、動作の自由度が高い多関節ロボットの周囲に多数のカメラを設置することは経済的とは言えず、カメラの設置場所の確保も困難である。
【００１０】
本発明は、少ないカメラ台数であっても、複数の関節について個別の関節の原点ずれの有無を精度高く判断できるロボットシステムの制御方法を提供することを目的としている。
【課題を解決するための手段】
【００１１】
本発明のロボットシステムの制御方法は、複数の関節を有し、エンドエフェクタ又は先端側リンク部にマークを設けた多関節ロボットと、前記マークを撮影可能なカメラと、を制御部により制御するロボットシステムの制御方法であって、前記制御部が、前記多関節ロボットを所定姿勢から前記複数の関節のうちの１つの関節で回転動作させる過程で前記マークを前記カメラにより撮影する撮影工程を、少なくとも２つの関節について実行して撮影データを取得する撮影データ取得工程と、前記制御部が、前記撮影データ取得工程で取得した撮影データに基づいて、前記多関節ロボットの複数の関節のうちで位置ずれが発生している関節を特定する関節特定工程と、を有する。
【発明の効果】
【００１２】
本発明のロボットシステムの制御方法では、少なくとも２つの関節について実行される撮影工程におけるマークの移動範囲を１台のカメラの画角範囲に収めることが可能である。このため、当該カメラだけでも、複数の関節について個別の関節の原点ずれに関する解像度の高い情報を取得できる。したがって、少ないカメラ台数であっても、複数の関節について個別の関節の原点ずれの有無を精度高く判断できる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１のロボット検査システムの全体構成の説明図である。
【図２】軌跡取得制御のフローチャートである。
【図３】演算制御のフローチャートである。
【図４】回転関節に回転位置ずれが発生した場合の軌跡の変化の説明図である。
【図５】ロボットの一部分の交換の説明図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態について図を参照して説明する。
【００１５】
＜実施の形態１＞
（多関節ロボット）
図１は実施の形態１のロボット検査システムの全体構成の説明図である。図１に示すように、ロボットシステムは、多関節ロボットの一例であるロボット０１とカメラの一例であるカメラ０４を有し、制御部の一例である制御部０８のコンピュータにプログラムを実行させて制御される。当該プログラムは光ディスク等の記録媒体に記録して提供される。
【００１６】
ロボット０１は、先端のリンク０６０にエンドエフェクタ０７０を設けた６軸多関節ロボットである。ロボット０１のベース１００とリンク０１０とは、Ｚ軸方向の回転軸の周りで回転するねじり関節０１１で接続されている。ねじり関節０１１は初期姿勢から±１８０度の可動範囲を有する。
【００１７】
ロボット０１のリンク０１０とリンク０２０とは、Ｙ軸方向の回転軸の周りで回転する回動関節０２１で接続されている。回動関節０２１は初期姿勢から±８０度の可動範囲を有する。ロボット０１のリンク０２０とリンク０３０とは、Ｙ軸方向の回転軸の周りで回転する回動関節０３１で接続されている。回動関節０３１は初期姿勢から±７０度の可動範囲を有する。
【００１８】
ロボット０１のリンク０３０とリンク０４０とは、Ｘ軸方向の回転軸の周りで回転するねじり関節０４１で接続されている。ねじり関節０４１は初期姿勢から±１８０度の可動範囲を有する。ロボット０１のリンク０４０とリンク０５０とは、Ｙ軸方向の回転軸の周りで回転する回動関節０５１で接続されている。回動関節０５１は初期姿勢から±１２０度の可動範囲を有する。
【００１９】
ロボット０１のリンク０５０とリンク０６０とは、Ｘ軸方向の回転軸の周りで回転するねじり関節０６１で接続されている。ねじり関節０６１は初期姿勢から±２４０度の可動範囲を有する。ロボット０１のリンク０６０の先には、生産ラインにおいて組み立て作業や移動作業を行うための電動ハンドやエアハンドなどのエンドエフェクタ０７０が接続されている。
【００２０】
ロボット０１は、制御コントローラ０２によって制御されて所定の動作を行う。
【００２１】
以上説明したように、回動関節０２１、０３１、０５１は、隣接するリンク部をリンク回転させる。複数のねじり関節０１１、０４１、０６１は、１つのリンク部の一方の回動関節側と他方の回動関節側とをねじり回転させる。基礎部（１００、０１０）と第一リンク部（０２０）とは、第一関節（０２１）で連結される。第一リンク部（０２０）と第二リンク部（０３０、０４０）とは、第二関節（０３１）で連結される。第二リンク部（０３０、０４０）と第三リンク部（０５０、０６０）とは第三関節（０５１）で連結される。
【００２２】
（多関節ロボットの原点ずれ）
原点ズレとしては、回転位置ずれと回転軸ずれがある。回転位置ずれとは、共通の回転軸を有する二つのリンクにおいて、その回転方向の位相にずれが生じる事である。また、回転軸ずれとは、二つのリンクの回転軸の角度にずれが生じる事である。
【００２３】
一般的に、多関節ロボットは、生産ラインにおいて製品の組み立て作業や搬送作業を行うために使用される。生産ラインで使用される多関節ロボットに精度低下が生じる場合として、以下の場面が想定できる。
（１）生産ラインの立ち上げにおいて多関節ロボットに作業を教える教示作業（ティーチング）を行う時、作業員がコントローラを使って多関節ロボットを動作させる。このとき、人為的ミスによって、多関節ロボットが周辺の装置と接触する。
（２）多関節ロボットに動作を教える教示作業が完了した後、多関節ロボット以外の周辺の装置と連動して動作をさせる時、多関節ロボットが周辺の装置と接触する。
（３）多関節ロボットの動作・静止に伴う瞬間的な衝撃荷重や、連続運転で生じる定常的な負荷が原因で、連続的な多関節ロボットの動作による耐久上の問題として精度低下が生じる。
【００２４】
図１に示すロボット０１では、上記の精度低下（１）、（２）、（３）が発生すると、回動関節である回動関節０２１、回動関節０３１、回動関節０５１において大きなモーメントが発生して回転位置ずれが発生し易い。ロボット０１では、上記の精度低下（１）、（２）、（３）に伴って、回動関節０２１、０３１、０５１に設置されている減速機や、モータの回転を伝達するベルト・プーリ駆動系において歯飛びが発生することがある。回動関節０２１、０３１、０５１のボルトで締結された構造部材の締結面にずれが発生することもある。
【００２５】
このような歯飛びや締結面のずれは、ロボット０１の回動関節０２１、０３１、０５１を挟んで配置された２つのリンク部の位置関係を当初の位置関係から変化させて、回動関節０２１、０３１、０５１の原点ずれを引き起こす。少なくとも１つの回動関節０２１、０３１、０５１に原点ずれが発生すると、ロボット０１の先端に取り付けられたエンドエフェクタ０７０の動作位置が当初の状態から移動して、ロボット０１が行っていた組み立て動作や搬送作業を精度高く再現できなくなる。
【００２６】
このため、ロボット０１を含むロボットシステムにおいては、複数の回動関節０２１、０３１、０５１において原点位置の変化を定期的に評価する必要がある。評価に基づいて個別の回動関節０２１、０３１、０５１における回転位置ずれの異常を検知することが求められている。
【００２７】
そこで、ロボット０１を含むロボットシステムにおいては、エンドエフェクタ又は先端側リンク部の一例であるエンドエフェクタ０７０にマーク０３を設けている。カメラ０４は、マーク０３の移動軌跡を撮影可能である。制御部０８は、移動可能なマーク０３をカメラ０４で自動的に撮影して、撮影データに基づいて回動関節０２１、０３１、０５１のそれぞれにおける原点ずれの有無を自動的に判断する。
【００２８】
（マーク）
図１に示すように、マーク０３は、カメラ０４が、ロボット０１が動作した時のエンドエフェクタ０７０の移動軌跡の認識を容易にするためのものである。マーク０３の形状、精度は、カメラ０４に求められる認識精度に合わせて適宜選択する必要がある。
【００２９】
ここでは、マーク０３は、０．３ｍｍ幅で長さ２０ｍｍの溝を中央で直角に交差させたマークを設けた。周囲を黒色に塗装する一方で溝に白色を塗装して撮像コントラストを確保した。
【００３０】
なお、マークは、解像度を確保するために、小さくて背景とのコントラストが高いものが望ましい。ＬＥＤやレーザーダイオードの輝点を用いてもよい。カメラ０４の画角内に複数のマークを配置して複数のマークの平均値としてマーク全体の位置を特定可能なものでもよい。
【００３１】
（カメラ）
図１に示すように、カメラ０４は、ロボット０１に付設され、通常の組み立て作業時には、エンドエフェクタ０７０で掴んだ部品の姿勢や状態を撮影している。カメラ０４は、マーク０３を撮影可能である。
【００３２】
カメラ０４は、ロボット０１の構成から想定される関節の精度低下が検知できる位置に配置されている。カメラ０４は、ロボット０１に対してＹ軸方向からロボット０１を認識して、ＸＺ平面を動くマーク０３の軌跡を撮影可能である。
【００３３】
現在、一般的に産業用で使用されているロボットの位置決め再現性は約５０μｍ程度であることから、カメラ０４には５０μｍ以下の認識精度が求められる。
【００３４】
回動関節の軸から１００ｍｍの位置で５０μｍの回動距離は、リンクを駆動するモータに付設した入力エンコーダの出力パルスにして５２１パルスに相当していた。したがって、カメラ０４に５０μｍの解像度があれば、入力エンコーダの出力パルスにして５２１パルス分の位置ずれを検出可能である。後述するピンを用いた従来の位置合わせ精度は入力エンコーダの出力パルスにして１０００パルスを超えていたため、カメラ０４だけで、ピンを用いた位置合わせの２倍の精度を実現できる。なお、モータとリンクの回動の減速比は５０、リンク長さ１００ｍｍにおける５０μの回動角度は０．５ｍｒａｄとして計算している。
（０．５［ｍｒａｄ］／１０００）×５０倍／２π［ｒａｄ］×２１７［ｐｕｌｓｅ］
＝５２１［ｐｕｌｓｅ］
【００３５】
（位置ずれ検知制御）
オペレーターは、任意のタイミング、例えば日常点検やトラブル発生時に、操作パネルＳＰを操作して位置ずれ検知モードを実行して、ロボット０１の初期の基準値と現在の状態とを比較してロボット０１の精度低下の有無を把握する。ここで、初期の基準値として、ロボットを出荷する際の出荷検査のデータ、ロボットを生産装置に組み込んだ時の立上時のデータ、定期点検のデータなどを用いる。
【００３６】
制御部０８は、ロボット０１とカメラ０４を制御する。制御部０８は、ロボット０１の関節ごとに設けられたモータを、それぞれのモータに付設されたロータリエンコーダの出力に基づいてフィードフォワード制御する。
【００３７】
制御部０８は、位置ずれ検知制御が指令されると、最初に、軌跡取得制御を実行して軌跡取得部０５がマーク０３の動く軌跡を取得する。軌跡取得制御では、ロボット０１に初期姿勢を取らせた後に、回動関節０２１、０３１、０５１を中心にしてリンク０６０を回動させて、カメラ０４によりマーク０３を撮影する。撮影後、カメラ０４の撮影データを処理して、マーク０３の動く軌跡を取得する。
【００３８】
制御部０８は、次に、演算制御を実行して演算部０６で精度低下が生じている関節を特定する。演算制御では、軌跡取得制御で取得したマーク０３の動く軌跡を処理して、軌跡の回転半径・回転中心位置を算出し、原点ずれの無い以前の軌跡の回転半径・回転中心位置と比較する。
【００３９】
制御部０８は、次に、表示制御を実行して表示部０７で精度低下の場所と内容と必要な処置をモニタ画面０９に表示する。
【００４０】
（軌跡取得制御）
図２は軌跡取得制御のフローチャートである。
【００４１】
図２に示すように、軌跡取得制御が指令されると、制御部０８は、ロボット０１に初期姿勢を取らせる（Ｓ２０１）。初期姿勢では、ロボット０１の回動関節０２１、０３１、０５１をカメラ０４の撮影方向と平行に位置決め、回動関節０２１、０３１、０５１に内蔵されたエンコーダの出力がそれぞれの所定座標角度になるまで各モータを作動させる。
【００４２】
制御部０８は、初期姿勢から回動関節０２１を中心にしてリンク０２０〜リンク０６０を一体に回動させて、カメラ０４によりマーク０３を撮影する（Ｓ２０２）。回動関節０３１、０５１を初期姿勢の状態に保ったまま回動関節０２１で回転動作させる。
【００４３】
制御部０８は、軸の変更が必要であるので（Ｓ２０３のＹｅｓ）、回動関節０３１に対象を変更して（Ｓ２０４）、初期姿勢に戻す（Ｓ２０１）。初期姿勢から回動関節０３１を中心にしてリンク０３０〜リンク０６０を一体に回動させて、カメラ０４によりマーク０３を撮影する（Ｓ２０２）。回動関節０２１、０５１を初期姿勢の状態に保ったまま回動関節０３１で回転動作させる。
【００４４】
制御部０８は、軸の変更が必要であるので（Ｓ２０３のＹｅｓ）、回動関節０５１に対象を変更して（Ｓ２０４）、初期姿勢に戻す（Ｓ２０１）。初期姿勢から回動関節０５１を中心にしてリンク０６０を回動させて、カメラ０４によりマーク０３を撮影する（Ｓ２０２）。回動関節０２１、０３１を初期姿勢の状態に保ったまま回動関節０５１で回転動作させる。
【００４５】
このような撮影工程を、各軸動作と呼ぶ。各軸動作は、精度低下が生じている回動関節を特定するために必要な動作である。各軸動作では、カメラ０４によってマーク０３の現在の軌跡が撮影され、ロボット０１の回動関節０２１、０３１、０５１に回転位置ずれが発生している可能性のある状態でのマーク０３の現在軌道が取得される。現在軌道は、精度低下が生じている回動関節を特定するために必要な基準値であって、回動関節０２１、０３１、０５１ごとに求められる。
【００４６】
制御部０８は、取得した撮影データに基づいて現在軌道を取得し、現在軌道に基づいて三次元空間上でのマーク０３の現在の軌跡、回転中心位置、回転半径を演算して記憶し、ロボット０１の現在状態のデータとして利用する（Ｓ２０５）。具体的には、取得したマーク０３の軌跡上の３点から幾何的に回転中心位置と回転半径を算出している。
【００４７】
なお、ロボット０１のセットアップ時及びその後の部品交換後には、同様に軌跡取得制御が実行されて、ロボット０１の回動関節０２１、０３１、０５１に回転位置ずれが発生していない初期状態のマーク０３の基準軌道が取得されている。基準軌道は、精度低下が生じている回動関節を特定するために必要な基準値であって、回動関節０２１、０３１、０５１ごとに求められている。制御部０８は、初期状態の基準軌道に基づいてマーク０３の初期状態の軌跡、回転中心位置、回転半径を演算して記憶し、ロボット０１の初期状態のデータとして利用する。
【００４８】
（演算制御）
図３は演算制御のフローチャートである。
【００４９】
図１を参照して図３に示すように、制御部０８は、上述した各軸動作に続いて軌道比較を行う（Ｓ２１１）。
【００５０】
制御部０８は、初期の基準値と新たに取得した現在の軌跡、回転中心、回転半径がいずれも一致している場合（Ｓ２１２のＮｏ）、故障している回動関節は無いと判定して、故障判定のフローを終了して、ロボット０１の使用を許可する（Ｓ２１７）。
【００５１】
制御部０８は、初期の基準値と新たに取得した現在の軌跡、回転中心、回転半径のいずれかが一致していない場合（Ｓ２１２のＹｅｓ）、精度低下軸判定を行う（Ｓ２１３）。精度低下軸判定では、事前に準備された故障個所判定のための後述するテーブル（表１）を用いて回転位置ずれが発生した回動関節を特定する。
【００５２】
制御部０８は、回転位置ずれが発生した回動関節を特定できなかった場合（Ｓ２１４のＮｏ）、ロボット全部を交換するロボット交換をモニタ画面０９に表示する（Ｓ２２０）。制御部０８は、ロボット交換がされると、ロボット０１の使用を許可する（Ｓ２１７）。
【００５３】
制御部０８は、回転位置ずれが発生した回動関節を特定できた場合（Ｓ２１４のＹｅｓ）、回転位置ずれが発生した回動関節を含むリンク部を交換するか否かを判断する（Ｓ２１５）。
【００５４】
制御部０８は、リンク部の交換が必要と判断すると（Ｓ２１５のＹｅｓ）、リンク部のユニット交換をモニタ画面０９に表示する（Ｓ２１６）。制御部０８は、ユニット交換がされると、ロボット０１の使用を許可する（Ｓ２１７）。
【００５５】
制御部０８は、リンク部の交換が不必要と判断すると（Ｓ２１５のＮｏ）、ロボット０１の先端位置の位置補正をモニタ画面０９に表示する（Ｓ２１９）。制御部０８は、位置補正がされると、ロボット０１の使用を許可する（Ｓ２１７）。
【００５６】
以上説明したように、制御部０８は、ロボット０１とカメラ０４を制御して、撮影データ取得工程の一例である軌跡取得制御を実行し、続いて関節特定工程の一例である演算制御を実行する。軌跡取得制御では、撮影工程を、少なくとも２つの関節の一例である回動関節０２１、０３１、０５１についてそれぞれ実行して撮影データを取得する。撮影工程では、ロボット０１の複数の関節にそれぞれ所定座標角度を設定して所定姿勢を取らせた後に、ロボット０１を所定姿勢から複数の関節のうちの１つの関節で回転動作させる過程でマーク０３をカメラ０４により撮影する。演算制御では、軌跡取得制御で取得した撮影データに基づいて、ロボット０１の複数の関節のうちで回転位置ずれが発生している関節を特定する。
【００５７】
（回動関節の特定）
図４は回転関節に回転位置ずれが発生した場合の軌跡の変化の説明図である。
【００５８】
図１に示すように、ロボット０１は、初期姿勢からリンク０２０、リンク０３０、リンク０４０、リンク０５０がＺＸ平面上でＹ軸回転を行う。このため、図４では、ロボット０１は、回動関節０２１の周りで回動するリンク０２０、回動関節０３１の周りで回動するリンク０３０（リンク０４０）、回動関節０５１の周りで回動するリンク０５０（リンク０６０、エンドエフェクタ０７０）に単純化して図示した。
【００５９】
図４の（ａ）に示すように、初期状態ではどの回動関節にも角度ずれの精度低下が生じていない。図中、点線は、回動関節０２１の周りで回転させた時のマーク０３の描く軌跡を示す。一点鎖線は、回動関節０３１の周りで回転させた時のマーク０３の描く軌跡を示す。
【００６０】
図４の（ｂ）〜（ｈ）に示すように、ロボット０１の回動関節０２１、０３１、０５１のいずれかが故障すると、関節軸の前後のリンクの位置関係がずれて、マーク０３が故障した関節軸ごとに異なる精度低下のパターンで軌跡を描く。
【００６１】
図４の（ｂ）に示すように、回動関節０２１に回転ずれが生じると、現在の軌跡が初期状態の軌跡からずれてくる。この時、回動関節０２１を回転させた時にマーク０３が通過する軌跡の半径と回転中心位置は初期状態に対して（半径、一致）（回転中心位置、一致）である。また、回動関節０３１を回転させた時にマーク０３が通過する軌跡の半径と回転中心位置は初期状態に対して（半径、一致）（回転中心位置、不一致）である。
【００６２】
図４の（ｃ）に示すように、回動関節０３１に回転ずれが生じると、現在の軌跡が初期状態の軌跡からずれてくる。この時、回動関節０２１を回転させた時にマーク０３が通過する軌跡の半径と回転中心位置は初期状態に対して（半径、不一致）（回転中心位置、一致）である。また、回動関節０３１を回転させた時にマーク０３が通過する軌跡の半径と回転中心位置は初期状態に対して（半径、一致）（回転中心位置、一致）である。
【００６３】
図４の（ｄ）に示すように、回動関節０５１に回転ずれが生じると、現在の軌跡が初期状態の軌跡からずれてくる。この時、回動関節０２１を回転させた時にマーク０３が通過する軌跡の半径と回転中心位置は初期状態に対して（半径、不一致）（回転中心位置、一致）である。また、回動関節０３１を回転させた時にマーク０３が通過する軌跡の半径と回転中心位置は初期状態に対して（半径、不一致）（回転中心位置、一致）である。
【００６４】
図４の（ｅ）に示すように、回動関節０２１と回動関節０３１とに回転ずれが生じると、現在の軌跡が初期状態の軌跡からずれてくる。この時、回動関節０２１を回転させた時にマーク０３が通過する軌跡の半径と回転中心位置は初期状態に対して（半径、不一致）（回転中心位置、一致）である。また、回動関節０３１を回転させた時にマーク０３が通過する軌跡の半径と回転中心位置は初期状態に対して（半径、一致）（回転中心位置、不一致）である。
【００６５】
図４の（ｆ）に示すように、回動関節０２１と回動関節０５１とに回転ずれが生じると、現在の軌跡が初期状態の軌跡からずれてくる。この時、回動関節０２１を回転させた時にマーク０３が通過する軌跡の半径と回転中心位置は初期状態に対して（半径、不一致）（回転中心位置、一致）である。また、回動関節０３１を回転させた時にマーク０３が通過する軌跡の半径と回転中心位置は初期状態に対して（半径、不一致）（回転中心位置、不一致）である。
【００６６】
図４の（ｇ）に示すように、回動関節０３１と回動関節０５１とに回転ずれが生じると、現在の軌跡が初期状態の軌跡からずれてくる。この時、回動関節０２１を回転させた時にマーク０３が通過する軌跡の半径と回転中心位置は初期状態に対して（半径、不一致）（回転中心位置、一致）である。また、回動関節０３１を回転させた時にマーク０３が通過する軌跡の半径と回転中心位置は初期状態に対して（半径、不一致）（回転中心位置、一致）である。
【００６７】
図４の（ｈ）に示すように、回動関節０２１と回動関節０３１と回動関節０５１とに回転ずれが生じると、現在の軌跡が初期状態の軌跡からずれてくる。この時、回動関節０２１を回転させた時にマーク０３が通過する軌跡の半径と回転中心位置は初期状態に対して（半径、不一致）（回転中心位置、一致）である。また、回動関節０３１を回転させた時にマーク０３が通過する軌跡の半径と回転中心位置は初期状態に対して（半径、不一致）（回転中心位置、不一致）である。
【００６８】
したがって、制御部０８は、回動関節０２１、０３１、０５１のそれぞれを中心とする回転の軌跡を初期状態の軌跡と比較した結果に基づいて、表１のように精度低下が生じた回動関節を特定することができる。
【００６９】
【表１】
2015199192.tif 000003
【００７０】
表１は、図４の（ｂ）〜（ｈ）で説明した軌跡を取得してからどの軸に精度低下が生じているかを判定するためのテーブルである。表１中、回動関節０２１をＪ１軸と呼びリンク０２０をリンクＪ１と呼ぶ。回動関節０３１をＪ２軸と呼び、リンク０３０（及びリンク０４０）をリンクＪ２と呼ぶ。回動関節０５１をＪ３軸と呼び、リンク０６０（及びエンドエフェクタ０７０）をリンクＪ３と呼ぶ。表１中、初期状態（ａ）と一致している場合を「○」と表記し、不一致の場合を「×」と表記している。
【００７１】
例えば、図４の（ｄ）と図４の（ｇ）とは、回動関節０２１を回転させた時に（半径、不一致）（回転中心位置、一致）、回動関節０３１を回転させた時に（半径、不一致）（回転中心位置、一致）で同じであり、区別をつける事ができない。しかし、表１に示すように、Ｊ３軸を回転させると（ｄ）の場合（半径、一致）（回転中心位置、一致）となり、（ｇ）の場合（半径、一致）（回転中心位置、不一致）となるため、区別を付けることができる。
【００７２】
例えば、図４の（ｆ）と図４の（ｈ）とは、回動関節０２１を回転させた時、あるいは回動関節０３１を回転させた時には軌跡が一致して、区別を付けることができないことがある。つまり、回動関節０２１と回動関節０５１とに精度低下が生じている場合と、全軸に精度低下が生じて場合とを区別できないことがある。しかし、表１に示すように、回動関節０５１の回転における軌跡の違いで両者に区別を付けることができる。
【００７３】
以上説明したように、演算制御では、軌跡取得制御において取得したマーク０３の撮影データからマーク０３の移動軌跡を取得する。詳しく言えば、演算制御では、軌跡取得制御において取得したマーク０３の撮影データからマーク０３の移動軌跡の始点座標、終点座標、回転中心座標、回転半径を取得する。
【００７４】
演算制御では、複数の回動関節に位置ずれが無い状態で軌跡取得制御を実行して事前に取得したマーク０３の移動軌跡と、位置ずれの有無を判定するタイミングで軌跡取得制御を実行して取得したマーク０３の移動軌跡と、を比較する。詳しく言えば、演算制御では、複数の回動関節に位置ずれが無い状態で軌跡取得制御を実行して取得したマーク０３の移動軌跡の始点座標、終点座標、回転中心座標、回転半径と、当該演算制御の直前に軌跡取得制御を実行して取得したマーク０３の移動軌跡の始点座標、終点座標、回転中心座標、回転半径と、を比較する。
【００７５】
（修理について）
図５はロボットの一部分の交換の説明図である。
【００７６】
図３に示すように、実施の形態１では、精度低下軸を判定（Ｓ２１４）した後の復帰処理を、ロボット交換（Ｓ２２０）、補正（Ｓ２１９）、ユニット交換（Ｓ２１６）の３つに振り分けている。
【００７７】
ロボット交換（Ｓ２２０）の場合、生産ラインからロボット０１を取り外し、予め用意していた予備のロボット０１を取り付ける。一般的に、ロボット０１には部品の形状ばらつき、製造精度のばらつきによって生じる機差があるため、ロボット０１を取り付けた時のエンドエフェクタ０７０の先端位置にはばらつきが生じる。
【００７８】
よって、ロボット０１を交換した場合、生産ラインで作業を始める前に、再度、ロボット０１に動作ポイントを教える教示作業を行い、所定の作業ができることを確認して生産を再開する。また、上述したように、ロボット０１の回動関節０２１、０３１、０５１に回転位置ずれが発生していない初期状態のマーク０３の基準軌道が取得される。基準軌道は、精度低下が生じている回動関節を特定するために必要な基準値であって、上述したように、ロボット０１の初期状態のデータとして利用される。
【００７９】
補正（Ｓ２１９）の場合、ロボット０１のエンドエフェクタ０７０の先端位置に生じたずれを補正して、所定の作業ができるようにするための教示作業を再度行って生産を再開する。
【００８０】
ユニット交換（Ｓ２１６）の場合、図５の（ｂ）に示すように、ロボット０１の一部分だけを交換する。実施の形態１では、ロボット０１が設計の段階で関節軸毎に分解、組み立てが容易にできるように設計されているので、ロボット０１を生産ラインに乗せている状態でロボット０１の一部分だけを容易に交換可能である。ロボット０１の一部分だけを交換して、すみやかに生産を再開させることができる。
【００８１】
多関節ロボットの関節軸の設計において分解修理の行いやすさが考慮されていないと、上記のように精度低下が生じている関節軸を特定してから、多関節ロボットの修理完了までに非常に時間がかかると言う問題がある。このため、図５の（ａ）に示すように、ロボット０１は、関節軸で分解、組み立てが容易にできるように設計されている。
【００８２】
図５の（ａ）に示すように、ロボット０１は、先端部５０１の強度の余裕率が根元部５０２に比べて小さく設計されているので、ロボット０１の先端部５０１が周囲の装置に衝突をして精度低下が生じた時には、余裕率の小さい先端部５０１が率先して壊れる。このため、先端部５０１の修理が容易にできるような構造にすることで、ロボット０１に精度低下が生じた時の修理、復旧までの時間を短縮することができる。さらに、あらかじめ、先端部予備５０３を準備しておくことで、先端部５０１と交換をして、速やかにロボットの修理を完了させることができる。
【００８３】
（比較例１）
比較例１では、回動関節及びねじり関節の各軸の前後のリンクに形成された穴にピンを手動で指し、ピンの刺さり具合で前後のリンク間の回転方向のずれを把握して精度低下箇所を特定する。この作業は、熟練作業者が手作業で行うことになるので、６軸多関節ロボットにおいて６軸分のずれの有無を確認する為に、数十分から数時間の時間が必要になるという問題がある。
【００８４】
これに対して、実施の形態１では、上述したように、簡単に短時間で多関節ロボットの精度低下箇所を特定することができる。
【００８５】
（比較例２）
比較例２では、特許文献１に示されるように、多関節ロボットにカメラ認識用のマークを付設し、外部のカメラから見たマークの見え方から多関節ロボットの現在の姿勢を認識している。そして、外部のカメラから見たマークの見え方と、多関節ロボットへの指令値から予測されるマークの見え方とを比較することで多関節ロボットの精度低下を検知する。しかし、多関節ロボットの根元の位置で異常が発生すると、その影響は、先端の軸にも表れるので、全体として異常が発生したことは認識できるが、どの部分に異常が生じているのかわからない。この場合、精度低下が発生した箇所を修理するには、ほかの方法で精度低下箇所を特定する必要がある。精度低下箇所を特定するために比較例１の作業を行うと、そこから数十分から数時間の時間が必要になるという問題がある。
【００８６】
これに対して、実施の形態１では、上述したように、多関節ロボットの全体的な異常を検知するだけでなく、どの部分に異常が生じたかを多関節ロボットを生産ラインから取り出すことなく自動で素早く検知することができる。
【００８７】
（比較例３）
比較例３では、特許文献２に示されるように、任意の指令値を与えた時に多関節ロボットに付設しているマークを外部のカメラで認識し、指令値から想定されるマークの見え方と実際のマークの見え方とを比較することで、異常の有無を検知する。
【００８８】
比較例３では、多数のマークの重心位置や見え方によって多関節ロボットの姿勢を判別するので、多関節ロボットが汚れてしまうと、カメラから見たマークの見え方が変わってしまい、多関節ロボットの姿勢の判別に不都合が生じる。
【００８９】
これに対して、実施の形態１では、多関節ロボットが汚れていても、エンドエフェクタ７０のマーク０３さえクリアであれば、高精度に異常を検知することができる。
【００９０】
（比較例４）
多関節ロボットにおいて部分的に精度低下が発生した場合の対応としては次のようなことが考えられる。
【００９１】
一つ目は、多関節ロボットを生産ラインから取り外し、予備として保有していた新しい多関節ロボットを生産ラインに取り付けて、生産工程を再開することである。しかし、予備の多関節ロボットを準備するためには余分なコストが発生するので好ましくない。また、生産システムから多関節ロボットの全体を取り出して新規に予備の多関節ロボットを取り付けることは、時間的にロスが大きい。
【００９２】
二つ目は、故障個所を特定して修理を行うことである。しかし、従来の故障個所の特定方法は、人が手で関節部を動かして回転の違和感を検査したり、関節の回転ずれを確認するために原点ピンをさして原点位置のずれの有無を確認したりするという方法で熟練者によっても非常に時間がかかるという問題があった。さらに、多関節ロボットの関節部の構成は複雑であるため、故障個所を特定した後の修理作業にも膨大な時間が必要となるという問題もある。
【００９３】
これに対して実施の形態１のロボット０１は、多関節ロボットが部分的に交換修理できる設計になっているので、リンク単位で簡単に分解、組み立てが可能である。このため、多関節ロボットを生産システムから取り出すことなく、その部分だけを修理することが可能になり、生産システムの再開までの時間的ロスが少ない。
【００９４】
さらに、実施の形態１のロボット０１は、関節軸ごとに簡単に分解、組み立てが可能な構造であるため、関節軸ごとに分解、組み立てて素早く修理作業を行って、速やかに生産ラインを再開させることが可能である。
【００９５】
（実施の形態１の効果）
実施の形態１では、多関節ロボットの任意の１軸を動作させた時に、多関節ロボットに付設されたマーカーが描く軌跡の半径と回転中心位置を以前の状態と比較して「一致」「不一致」の判定を行う。そして、その判定結果と事前に用意していた精度低下軸の判定テーブル（表１）により、どの軸に精度低下が発生しているかを判定する。このため、多関節ロボットにおいて精度低下が生じている関節軸を特定する作業を、多関節ロボットを生産ラインに乗せたまま自動で行うことができる。そして、少ないカメラ台数であっても、複数の移動軌跡を取得して、複数の関節について個別の関節の原点ずれの有無を精度高く判断できる。
【００９６】
実施の形態１では、生産ラインで通常多関節ロボットが行う動作の中で異常の有無を診断できるので、生産ラインを止めることなく診断ができる。よって、多関節ロボットの精度低下診断の時間が削減され生産ラインの効率が向上するという効果がある。
【００９７】
実施の形態１では、ロボット０１に所定姿勢を取らせる際に、制御部０８がねじり関節０１１、０４１、０６１のねじり角度を調整して回動関節０２１、０３１、０５１の回転軸線を並列の一例である平行に位置決める。このため、カメラ０４において回動関節０２１、０３１、０５１ごとに類似した複数の移動軌跡を撮影して、移動軌跡の比較を容易に実行できる。
【００９８】
実施の形態１では、回動関節０２１、０３１、０５１の回転軸線に並列な方向の一例である平行な方向からカメラ０４によりマーク０３を撮影する。このため、移動軌跡を円弧に近似して移動軌跡の比較を容易に実行できる。
【００９９】
実施の形態１では、軌跡取得制御で取得したマーク０３の撮影データからマーク０３の移動軌跡を取得する。そして、回動関節０２１、０３１、０５１に回転位置ずれが無い状態で軌跡取得制御を実行して取得したマーク０３の初期状態の移動軌跡と、直前に軌跡取得制御を実行して取得したマーク０３の移動軌跡と、を比較する。このため、初期状態の移動軌跡と現在の移動軌跡の差分として、回動関節０２１、０３１、０５１ごとの回転位置ずれを容易に演算できる。
【０１００】
（変形例）
なお、実施の形態１では、説明を簡略にするため、図１におけるＺＸ平面からみたＹ軸回転を行う回動関節０２１、回動関節０３１、回動関節０５１について、精度低下の生じている軸を判定する方法を示した。
【０１０１】
しかし、図１においてＺ軸回転を行うねじり関節０１１、Ｘ軸回転を行うねじり関節０４１、ねじり関節０６１についても同様の方法で精度低下が生じている軸を判定することができる。すなわち、回動関節０２１、回動関節０３１、回動関節０５１、ねじり関節０１１、ねじり関節０４１、ねじり関節０６１について、それぞれ動作させた時のマーク０３の軌跡の異常の組み合わせから、精度低下の生じている軸を特定することができる。
【０１０２】
また、実施の形態１では、６軸多関節ロボットにおけるＹ軸回転する３つの関節軸について、精度低下が生じた関節軸を特定する方法を述べた。しかし、本発明は、この構成のロボットに限定するものではなく、他の構成のロボットにおいても同様の方法をとることで精度低下が生じた関節軸を特定することが可能である。
【０１０３】
また、実施の形態１では、マーク０３の動く軌跡を取得してから、精度低下が生じている軸の特定を行い、あらかじめ用意しておいたテーブルを用いて精度低下軸判定を行った。しかし、各軸を動かしたときのマーク０３の軌跡からロボットのリンクパラメータ（リンク長、軸間距離、リンク間角度）を算出し、初期状態のリンクパラメータと比較することで、精度低下が生じている軸を特定することも可能である。
【０１０４】
実施の形態１では、位置ずれは、関節に設定する座標角度と撮影データに基づく関節の実際の角度との差分として定義される回転位置ずれであった。初期状態の移動軌跡と現在の移動軌跡の差分として回動関節０２１、０３１、０５１ごとの回転位置ずれを求めていた。しかし、求める位置ずれは、回転位置ずれには限らない。上記リンクパラメータ（リンク長、軸間距離、リンク間角度）のずれでもよい。例えば、上記リンクパラメータを取得すると、リンク間角度がわかるので、回転位置ずれ以外の方向のずれも把握することができる。
【０１０５】
また、図４の（ｆ）と図４の（ｈ）とを区別する方法としては、マーク０３をリンク０５０やリンク０３０に追加してカメラ０４により撮影して軌跡を取得することで、両者を区別することも可能である。
【０１０６】
また、図１に示すように、演算制御では、軌跡取得制御で取得したマーク０３の撮影データからマーク０３の移動軌跡の始点座標及び終点座標を取得してもよい。そして、回動関節０２１、０３１、０５１に回転位置ずれが無い状態で取得したマーク０３の移動軌跡の始点座標及び終点座標と、当該関節特定工程の直前に取得したマーク０３の移動軌跡の始点座標及び終点座標と、を比較してもよい。
【０１０７】
（その他の実施の形態）
実施の形態１は、本発明の例示的な実施形態であるから、本発明は、開示された実施の形態１の具体的な内容には限定されない。本発明は、少なくとも実施の形態１において適用可能なすべての修正および同等の構造及び機能を包含する。
【符号の説明】
【０１０８】
０１  ロボット、０２  コントローラ、０３  マーク、０４  カメラ
０５  軌跡取得制御、０６  演算制御、０７  表示制御
０８  制御部、０９  モニタ画面
０１０、０２０、０３０、０４０、０５０、０６０  リンク
０１１、０４１、０６１  ねじり関節、０２１、０３１、０５１  回動関節
【図１】
2015199192.tif 000004
【図２】
2015199192.tif 000005
【図３】
2015199192.tif 000006
【図４】
2015199192.tif 000007
【図５】
2015199192.tif 000008