(57)【要約】【課題】  通信に障害が生じた可動部がある場合にも、ロボットを自動で退避位置へ移動させること。【解決手段】  ロボット制御システムは、複数の可動部を含むロボットと、通信を介してその複数の可動部を制御して、ロボットの所定の部位を移動させる制御手段とを備えるロボット制御システムであって、制御手段は、通信に障害がない場合に複数の可動部が移動すべき位置を示す目標位置と、通信に障害が発生した場合に複数の可動部が移動すべき位置を示す予備目標位置とを含む情報を、複数の可動部のそれぞれに送信し、複数の可動部のそれぞれは、情報を受信し、制御手段との間の通信に障害が発生したかの判定を行い、通信に障害があるかの判定結果に基づいて、目標位置と予備目標位置とから、可動部が移動すべき位置を選択して設定する。【選択図】  図１
2013121644.tif 000002
【特許請求の範囲】
【請求項１】
複数の可動部を含むロボットと、通信を介して当該複数の可動部を制御して、前記ロボットの所定の部位を移動させる制御手段とを備えるロボット制御システムであって、
前記制御手段は、
前記通信に障害がない場合に前記複数の可動部が移動すべき位置を示す目標位置と、前記通信に障害が発生した場合に前記複数の可動部が移動すべき位置を示す予備目標位置とを含む情報を、前記複数の可動部のそれぞれに送信する送信手段、
を備え、
前記複数の可動部のそれぞれは、
前記情報を受信する受信手段と、
前記制御手段との間の通信に障害が発生したかの判定を行う判定手段と、
前記通信に障害があるかの判定結果に基づいて、前記目標位置と前記予備目標位置とから、可動部が移動すべき位置を選択して設定する設定手段と、
を備えることを特徴とするロボット制御システム。
【請求項２】
前記予備目標位置は、前記複数の可動部のうち１つがその予備目標位置へ移動した後、当該１つの可動部を移動させずに他の可動部を移動させることにより前記ロボットの前記所定の部位を指定の位置に移動させることが可能となる位置である、
ことを特徴とする請求項１に記載のロボット制御システム。
【請求項３】
前記制御手段は、
前記複数の可動部ごとに前記指定の位置と前記予備目標位置とを決定する決定手段をさらに備えることを特徴とする請求項２に記載のロボット制御システム。
【請求項４】
前記制御手段は、
前記複数の可動部のそれぞれとの間の通信を監視する監視手段と、
前記複数の可動部のうち１つとの間の通信に障害が発生した場合、当該１つの可動部に対して決定された前記指定の位置および前記予備目標位置と、他の可動部の現在位置とに基づいて、当該他の可動部が移動すべき位置を前記目標位置として生成する生成手段と、
をさらに備えることを特徴とする請求項３に記載のロボット制御システム。
【請求項５】
前記送信手段は、前記障害が発生してから指定の時間だけ経過後に、前記生成手段で生成した前記目標位置を前記他の可動部へ送信することを特徴とする請求項４に記載のロボット制御システム。
【請求項６】
前記指定の時間は、前記制御手段との間の通信に障害が発生した可動部が、前記予備目標位置へ移動するのに要する時間か、それより長い時間として指定されることを特徴とする請求項５に記載のロボット制御システム。
【請求項７】
前記送信手段は、所定の周期で前記情報を送信し、
前記判定手段は、当該所定の周期で当該情報を受信しなかった場合、通信に障害が発生したと判定する、
ことを特徴とする請求項１から６のいずれか１項に記載のロボット制御システム。
【請求項８】
通信を介してロボットの複数の可動部を制御して、当該ロボットの所定の部位を移動させるロボット制御システムにおける制御装置であって、
前記通信に障害がない場合に前記複数の可動部が移動すべき位置を示す目標位置と、前記通信に障害が発生した場合に前記複数の可動部が移動すべき位置を示す予備目標位置とを含む情報を、前記複数の可動部のそれぞれに送信する送信手段、
を備えることを特徴とする制御装置。
【請求項９】
通信を介した制御により複数の可動部を含むロボットの所定の部位を移動させるロボット制御システムにおける前記可動部の制御装置であって、
前記通信に障害がない場合に前記可動部が移動すべき位置を示す目標位置と、前記通信に障害が発生した場合に前記可動部が移動すべき位置を示す予備目標位置とを含む情報を取得する取得手段と、
前記通信に障害が発生したかの判定を行う判定手段と、
前記通信に障害があるかの判定結果に基づいて、前記目標位置と前記予備目標位置とから、前記可動部が移動すべき位置を選択して設定する設定手段と、
を備えることを特徴とする制御装置。
【請求項１０】
複数の可動部を含むロボットと、通信を介して当該複数の可動部を制御して、前記ロボットの所定の部位を移動させる制御手段とを備えるロボット制御システムにおける制御方法であって、
前記制御手段において、
送信手段が、前記通信に障害がない場合に前記複数の可動部が移動すべき位置を示す目標位置と、前記通信に障害が発生した場合に前記複数の可動部が移動すべき位置を示す予備目標位置とを含む情報を、前記複数の可動部のそれぞれに送信する送信工程と、
前記複数の可動部のそれぞれにおいて、
受信手段が、前記情報を受信する受信工程と、
判定手段が、前記制御手段との間の通信に障害が発生したかの判定を行う判定工程と、
設定手段が、前記通信に障害があるかの判定結果に基づいて、前記目標位置と前記予備目標位置とから、可動部が移動すべき位置を選択して設定する設定工程と、
を有することを特徴とする制御方法。
【請求項１１】
通信を介して複数の可動部を制御して、ロボットの所定の部位を移動させるロボット制御システムの制御装置における制御方法であって、
送信手段が、前記通信に障害がない場合に前記複数の可動部が移動すべき位置を示す目標位置と、前記通信に障害が発生した場合に前記複数の可動部が移動すべき位置を示す予備目標位置とを含む情報を、前記複数の可動部のそれぞれに送信する送信工程、
を有することを特徴とする制御方法。
【請求項１２】
通信を介した制御により複数の可動部を含むロボットの所定の部位を移動させるロボット制御システムにおける前記可動部の制御方法であって、
取得手段が、前記通信に障害がない場合に前記可動部が移動すべき位置を示す目標位置と、前記通信に障害が発生した場合に前記可動部が移動すべき位置を示す予備目標位置とを含む情報を取得する取得工程と、
判定手段が、前記通信に障害が発生したかの判定を行う判定工程と、
設定手段が、前記通信に障害があるかの判定結果に基づいて、前記目標位置と前記予備目標位置とから、前記可動部が移動すべき位置を選択して設定する設定工程と、
を有することを特徴とする制御方法。
【請求項１３】
コンピュータを請求項８又は９に記載の制御装置が備える各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の可動部を備えるロボットの動作制御に関する。
【背景技術】
【０００２】
複数の可動部を持つロボットは様々な姿勢を取ることが可能であり、このことから、産業用に広く用いられている。また、従来の産業用ロボットは固定的なプログラムに基づいて一種類の動作を繰り返すものが主流であったが、近年、センサやプロセッサの能力の向上により、周辺の状況に応じて柔軟に動作を変化させるロボットが利用されている。このようなロボットの例としては、乱雑に積まれた部品から一つを掴んで所定の位置に取り付ける、といった作業を行うロボットが挙げられる。部品の積まれ方は毎回異なる為、このロボットにおいても、掴むための動作が毎回異なる。このように動作が毎回異なると、ロボットが通過する軌道も毎回異なることになる。このため、特許文献１では、周辺の状況を監視して、他のロボットや物体に衝突しないようにロボットの軌道を制御する技術が提案されている。
【０００３】
また、ロボットに異常が生じた場合は、作業を緊急停止した後に周辺の物体から離れた場所に退避させる必要がある。これは、緊急停止の後に作業エリア内に留まり続けると周辺のロボットの動作の障害となるばかりでなく、作業エリア内では周辺のロボットが動作していてメンテナンスを行うことができないためである。また、多くのロボットはメンテナンス後の再起動を行う際に、退避位置を原点として起動する前提で設計されている。そこで、特許文献２では、ロボットに異常が生じたら退避位置まで自動的に移動させるための技術が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０８−０３６４１０号公報
【特許文献２】特開２００６−０１２０７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一般に、ロボットは、ロボット全体の動作を制御する全体制御部と、ロボットの各可動部に配置され、全体制御部からの指示に基づいて各可動部のアクチュエータを制御する複数の制御部とから構成される。全体制御部と各可動部の制御部の間を結ぶ通信線は、可動部が動く度に力が加わって変形するため、例えば電話線のように固定的に敷設される通常の通信線と比較すると劣化が速く断線しやすいという特徴がある。
【０００６】
ここで、特許文献２に記載の技術では、ロボットに異常が生じた場合に、ロボットを退避位置に戻すための指示を全体制御部からの通信によって出していた。このため、ロボットに生じた異常が通信に関するものであった場合、通信による指示が届かないため、ロボットを退避位置に自動的に移動させることができないという問題があった。このような場合には、作業員がロボットを動かして退避位置に戻すこととなり、この結果、作業員を待機させておく必要があるという問題に加え、作業にかかる時間が自動の場合よりも増大し、メンテナンスに必要なコストが増大するという問題が生じていた。さらに、自動的に退避位置に移動することができないと、退避位置に戻す操作が可能な作業員が到着するまでの期間はその場で停止することになる。周辺で他のロボットや人が作業をしている場合、故障を起こしたロボットが作業エリア内に留まることにより、作業の障害となったり衝突してしまう場合がある、という問題があった。
【０００７】
本発明は上記課題に鑑みなされたものであり、通信に障害が生じた場合でもロボットを退避位置へ移動させることを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明によるロボット制御システムは、  複数の可動部を含むロボットと、通信を介して当該複数の可動部を制御して、前記ロボットの所定の部位を移動させる制御手段とを備えるロボット制御システムであって、前記制御手段は、前記通信に障害がない場合に前記複数の可動部が移動すべき位置を示す目標位置と、前記通信に障害が発生した場合に前記複数の可動部が移動すべき位置を示す予備目標位置とを含む情報を、前記複数の可動部のそれぞれに送信する送信手段、を備え、前記複数の可動部のそれぞれは、前記情報を受信する受信手段と、前記制御手段との間の通信に障害が発生したかの判定を行う判定手段と、前記通信に障害があるかの判定結果に基づいて、前記目標位置と前記予備目標位置とから、可動部が移動すべき位置を選択して設定する設定手段と、を備える。
【発明の効果】
【０００９】
本発明によれば、通信に障害が生じて移動すべき位置を受信することができない可動部がある場合にも、ロボットを自動で退避位置へ移動させることができる。
【図面の簡単な説明】
【００１０】
【図１】ロボット制御システムの全体構成例を示す図。
【図２】ロボット制御部とロボットの内部構成を示す図。
【図３】目標位置生成部の動作フローを示す図。
【図４】目標位置生成部が生成する目標位置を説明する図。
【図５】予備目標位置生成部の動作フローを表す図。
【図６】予備目標位置生成部が生成する予備目標位置を説明する図。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本発明の実施の形態を詳細に説明する。
【００１２】
＜＜実施形態１＞＞
（ロボット制御システム）
図１は、ロボット制御システムの全体構成の例を示す図である。ロボット制御部１００は、ロボット１１０を制御して加工対象物１２０に対して所定の加工を行う制御装置である。ここで、加工対象物１２０はロボット１１０の近くに乱雑に置かれ、その位置は毎回異なる。そこでロボット制御部１００は、カメラ１０１によって加工対象物１２０の位置を検出する。
【００１３】
ロボット１１０は、例えば、複数の可動部１１１〜１１３とエンドエフェクタ１１４で構成されるアーム状のロボットであり、アームの途中に可動部１１１〜１１３が設置され、アームの先端にエンドエフェクタ１１４が設置される。複数の可動部１１１〜１１３は、例えば、それぞれ直交するＸ軸、Ｙ軸、Ｚ軸方向にエンドエフェクタ１１４を移動させることを可能し、これらを組み合わせることにより、３次元の所定の位置にエンドエフェクタ１１４を移動させることができる。ここで、ロボット制御部１００は、Ｘ軸、Ｙ軸、Ｚ軸の各座標値を可動部１１１〜１１３に所定の周期で送信し、エンドエフェクタ１１４を目標の位置に移動させる。本実施形態の説明においては、この所定の周期を１ミリ秒とするが、周期は１ミリ秒以外の値でもよく、また固定周期でなくてもよい。
【００１４】
エンドエフェクタ１１４は、ロボット１１０の末端に取り付けられ、加工対象物１２０に直接接触し、所定の加工を行うロボットの部位である。エンドエフェクタ１１４は、例えば、溶接ガンやピンセットハンドである。エンドエフェクタ１１４は、加工対象物１２０に接触すると自律的に所定の加工を行う。
【００１５】
ロボット制御部１００およびロボット１１０の周辺には、複数の周辺装置１３０が存在する。周辺装置１３０は、ロボット１１０が加工中の加工対象物１２０に別の加工を施したり、加工対象物１２０の向きを変えるといった処理を行う。周辺装置１３０は、例えば、加工が済んだ加工対象物１２０を次の工程に運ぶベルトコンベアや、加工対象物１２０の向きを変える回転台、加工対象物１２０の所定位置にシールを貼るロボットである。
【００１６】
ロボット１１０と周辺装置１３０は同じ加工対象物１２０に対して作用するため、互いに近接しており、動作を行う領域が重複する。また、加工対象物１２０の位置は毎回異なるため、ロボット１１０の動作と周辺装置１３０の動作は毎回異なる。このように、動作のパターンが無数にあるため、周辺装置１３０に衝突しないような固定的な動作軌道をロボット１１０に予め記憶させておくことは出来ない。そこでロボット制御部１００は、カメラ１０１によって周辺装置１３０の位置を常時検出し、周辺装置１３０と衝突しないようにロボット１１０を制御することとなる。なお、ここでは１つのカメラ１０１が加工対象物１２０の位置検出と周辺装置１３０の位置検出を行うこととしたが、複数のカメラ１０１を用意し、それぞれの位置検出に独立した別々のカメラを用いてもよい。
【００１７】
ロボット制御部１００は、ロボット１１０に異常が生じてメンテナンスが必要となった場合には、ロボット１１０を速やかに退避位置１４０に移動させる。退避位置１４０は、周辺装置１３０の動作領域から十分に離れ、ロボット１１０がこの位置にあるときには周辺装置１３０と衝突することはない位置である。
【００１８】
（ロボット制御部及びロボットの構成）
続いて、ロボット制御部１００とロボット１１０の内部構成について、図２の例を用いて説明する。ここで、図２は、ロボット制御部１００とロボット１１０の内部構成の例を表す図である。
【００１９】
図２において、ロボット制御部１００は、目標位置生成部２０１、予備目標位置生成部２０２、動作モード切替部２０３、及び通信部２０４を備える。目標位置生成部２０１は、１ミリ秒毎に、エンドエフェクタ１１４の先端が１ミリ秒後に到達すべき第１の位置である目標位置の情報を生成する。目標位置の情報は、例えば、所定の位置を原点とする三次元の直交座標で表され、Ｘ軸成分、Ｙ軸成分、Ｚ軸成分の３個の値を含む。目標位置生成部２０１は、可動部１１１〜１１３から取得する現在位置情報と、カメラ１０１から取得する映像情報と、内部で保持するロボット１１０の外形情報及び可動部１１１〜１１３の駆動能力情報とに基づいて、次の目標位置を決定する。なお、目標位置生成部２０１は、加工対象物１２０を加工するための目標位置を決定する「加工モード」と、退避位置１４０へ移動するための目標位置を決定する「退避モード」の二つの動作モードで動作する。なお、通常の動作モードが加工モードであり、通信に障害が生じた場合などに実行される動作モードが退避モードである。目標位置生成部２０１の動作の詳細については後述する。
【００２０】
予備目標位置生成部２０２は、１ミリ秒毎に第２の位置である予備目標位置の情報を生成する。予備目標位置は、目標位置と同様に、例えば、所定の位置を原点とする三次元の直交座標で表され、Ｘ軸成分、Ｙ軸成分、Ｚ軸成分の３個の値を含む。ここで、予備目標位置は、障害の発生などによりロボット制御部１００と可動部１１１〜１１３との間の通信が不能となった場合に、可動部１１１〜１１３を移動すべき位置である。予備目標位置生成部２０２は、可動部１１１〜１１３から取得する現在位置情報と、カメラ１０１から取得する映像情報と、内部で保持するロボット１１０の外形情報及び可動部１１１〜１１３の駆動能力情報とに基づいて、予備目標位置を決定する。なお、予備目標位置生成部２０２も、通常時の動作モードである「加工モード」と、異常時の動作モードである「退避モード」の二つの動作モードで動作する。予備目標位置生成部２０２の動作の詳細については後述する。
【００２１】
動作モード切替部２０３は、ロボット制御部１００と可動部１１１〜１１３との間の通信に障害が発生していないかを監視して判定する。例えば、動作モード切替部２０３は、通信部２０４を介して可動部１１１〜１１３から最後にデータを受信してから経過した時間を監視する。そして、動作モード切替部２０３は、ある可動部から所定の期間内に一度もデータを受信しなかった場合、その可動部との通信に障害が発生したと判断する。このとき動作モード切替部２０３は、目標位置生成部２０１と予備目標位置生成部２０２に対して、どの可動部との通信が途絶えたかを示す情報を出力するとともに、目標位置生成部２０１に動作モードを退避動作モードに切り替える指示を出す。なお、上記所定の期間は、通常時にデータを受信する周期である１ミリ秒に対して十分に長い期間とする。
【００２２】
通信部２０４は、目標位置生成部２０１および予備目標位置生成部２０２から出力される情報を、伝送路２２０を通して可動部１１１〜１１３に送信する。また、通信部２０４は、可動部１１１〜１１３から受信した現在位置情報を、目標位置生成部２０１と予備目標位置生成部２０２に出力する。ここで、可動部１１１〜１１３には、それぞれの可動部１１１〜１１３を識別する識別情報を、通信用に事前に割り当てておくものとする。通信部２０４は、送信するデータにこの識別情報を付加することで宛先を区別して送信する。  なお、伝送路２２０は、ロボット制御部１００と可動部１１１〜１１３およびエンドエフェクタ１１４の間で通信を行うための伝送路である。図２においては伝送路２２０はバス型であるが、他のトポロジでもよい。
【００２３】
一方、図２において、可動部１１１は、通信部２１１、目標位置保持部２１２、予備目標位置保持部２１３、目標位置切替部２１４、スイッチ２１５、アクチュエータ制御部２１６、アクチュエータ２１７、及び現在位置検出部２１８を備える。なお、可動部１１２、１１３も同様である。
【００２４】
通信部２１１は、ロボット制御部１００から可動部１１１の識別情報が付加された目標位置と予備目標位置とを、それぞれ目標位置保持部２１２と予備目標位置保持部２１３とへ出力する。また通信部２１１は、アクチュエータ制御部２１６から入力される現在位置情報に可動部１１１の識別情報を付加したデータを、ロボット制御部１００へ送信する。
【００２５】
目標位置保持部２１２は、ロボット制御部１００から最後に受信した目標位置を保持する。また、予備目標位置保持部２１３は、ロボット制御部１００から最後に受信した予備目標位置を保持する。目標位置保持部２１２と予備目標位置保持部２１３に保持されている目標位置と予備目標位置は、スイッチ２１５により選択的にアクチュエータ制御部２１６へ入力され、これにより、可動部１１１の移動すべき位置が設定される。
【００２６】
具体的には、目標位置切替部２１４は、通信部２１１を介してロボット制御部１００から最後にデータを受信してから経過した時間を監視し、通信に障害が発生したかを判定する。そして、判定結果に基づいて、スイッチ２１５を切り替え、目標位置と予備目標位置とから、アクチュエータ制御部２１６へ入力する情報を選択する。例えば、通信に障害がなく、ロボット制御部１００からの目標位置及び予備目標位置の情報を取得できている場合は、目標位置切替部２１４は、目標位置保持部２１２からの目標位置がアクチュエータ制御部２１６に入力されるようにスイッチ２１５を制御する。一方、所定の期間内に一度もデータを受信しなかった場合などは、目標位置切替部２１４は、ロボット制御部１００との通信に障害が発生したと判定する。このとき目標位置切替部２１４は、予備目標位置保持部２１３の出力がアクチュエータ制御部２１６に入力されるようにスイッチ２１５を切り替える。これにより、目標位置切替部２１４は、スイッチ２１５を制御することにより、エンドエフェクタ１１４を移動させるべき位置を選択して設定する。なお、通信状態を監視するための所定の期間は、通常時にデータを受信する周期である１ミリ秒に対して十分に長い期間とする。
【００２７】
アクチュエータ制御部２１６は、目標位置のＸ軸成分または予備目標位置のＸ軸成分に基づいて、エンドエフェクタ１１４が指示された位置に移動するようにアクチュエータ２１７を駆動する。またアクチュエータ制御部２１６は、１ミリ秒毎に、現在位置検出部２１８で検出するエンドエフェクタ１１４のＸ軸方向の現在位置を通信部２１１を通してロボット制御部１００に送信する。アクチュエータ２１７は、エンドエフェクタ１１４をＸ軸方向に動かす為のアクチュエータである。現在位置検出部２１８は、１ミリ秒毎にエンドエフェクタ１１４のＸ軸方向の現在位置を検出し、アクチュエータ制御部２１６に出力する。
【００２８】
可動部１１２および可動部１１３の内部構成は可動部１１１とほぼ同一であるが、以下の点で異なる。まず、可動部１１２および可動部１１３の通信部２１１は、それぞれ識別子「１１２」および「１１３」が付加された情報を受信し、送信データにはそれぞれ識別子「１１２」および「１１３」を付加する。また、可動部１１２および可動部１１３のアクチュエータ制御部２１６とアクチュエータ２１７、現在位置検出部２１８は、それぞれＹ軸成分およびＺ軸成分の移動と検出を行う。
【００２９】
（目標位置生成部の動作）
続いて、図３および図４を用いて目標位置生成部２０１の動作を詳細に説明する。図３は、目標位置生成部２０１の動作フローを表す図である。図４は、目標位置生成部２０１が生成する目標位置を説明する図である。
【００３０】
ロボット制御システム起動時や障害の修復が終了すると、目標位置生成部２０１は、まず、動作モードを加工モードに設定する（Ｓ３０１）。そして、現在の動作モードが加工モードであるか退避モードであるかの判定を行う（Ｓ３０２）。動作モードが加工モードである場合（Ｓ３０２でＹＥＳ）、Ｓ３０３〜Ｓ３１１の動作を実行する。一方、動作モードが退避モードである場合（Ｓ３０２でＮＯ）、Ｓ３２１〜Ｓ３２５の動作を行う。以下では、まず、加工モードであった場合（Ｓ３０２でＹＥＳ）について、説明を行う。
【００３１】
加工モードでは、目標位置生成部２０１は、通信部２０４を介して、可動部１１１〜１１３からエンドエフェクタ１１４の現在位置を取得する（Ｓ３０３）。また、目標位置生成部２０１は、カメラ１０１から入力される映像情報を解析し、加工対象物１２０と周辺装置１３０の位置を検出する（Ｓ３０４）。そして、目標位置生成部２０１は、周辺装置１３０に接触することなくエンドエフェクタ１１４の先端を現在位置である点４００から加工対象物１２０の表面の加工すべき点に到達するような軌道を生成する（Ｓ３０５）。
【００３２】
ここで、生成される軌道は、周辺装置１３０に接触しないようにするために、Ｓ３０４で検出した周辺装置１３０の位置情報と、内部に持つロボット１１０の外形情報とに基づいて、周辺装置１３０から所定の距離だけ離れた起動となるようにする。例えば、表面に加工すべき点４０１を有する加工対象物１２０と周辺装置１３０の位置とが図４のような関係になっているものとする。なお、加工すべき点４０１とは、例えば、エンドエフェクタ１１４がネジを締めるドライバーである場合、加工対象物１２０上の締めるべきネジの位置である。そして、現在位置が点４００である場合、生成される軌道は４１１のようになる。ここで、軌道４１１は、エンドエフェクタ１１４の先端が描く軌道であり、ロボット１１０は有限の大きさがあるため、軌道４１１は周辺装置１３０から少なくとも距離４３０だけ離れるようにする。距離４３０は、例えば、目標位置生成部２０１が内部に保持するロボット１１０の外形情報に基づいて算出される。
【００３３】
Ｓ３０５で軌道が生成されると、目標位置生成部２０１は、その軌道上に存在し、現在位置の近くにある一点を目標位置として決定し、通信部２０４を通して、可動部１１１〜１１３へその目標位置を送信する（Ｓ３０６）。ここで、現在位置からどのくらい離れた点を目標位置とするかは、内部に持つ可動部１１１〜１１３の駆動能力情報から、現在位置から１ミリ秒以内に到達可能な位置を選んで決定する。例えば、図４の点４０２が現在位置である点４００から１ミリ秒以内に到達可能な点であるとすると、点４０２のような点を目標位置として決定する。
【００３４】
その後、目標位置生成部２０１は、動作モード切替部２０３から動作モードの変更指示があったか否かを判定する（Ｓ３０７）。そして、変更指示がない場合（Ｓ３０７でＮＯ）は、Ｓ３０２に戻り、加工モードを継続する。このように、動作モード切替部２０３から動作モードの変更指示がない限り、目標位置生成部２０１は、Ｓ３０２〜Ｓ３０７を1ミリ秒の周期で繰り返す。
【００３５】
一方、Ｓ３０７において、動作モード切替部２０３から動作モードの変更指示があった場合（Ｓ３０７でＹＥＳ）、目標位置生成部２０１は、動作モードを退避モードに変更する（Ｓ３０８）。これより以後の処理では加工対象物１２０へ向かう軌道では動作しないため、見かけ上、ロボット１１０に異常が生じたため加工作業を緊急停止したことになる。
【００３６】
目標位置生成部２０１は、動作モードが退避モードに変更されると、動作モード切替部２０３から通信に障害が生じた可動部の識別情報を取得し（Ｓ３０９）、予備目標位置生成部２０２から退避位置を取得する（Ｓ３１０）。そして、予備目標位置生成部２０２から待ち時間を取得し、その時間だけ待つ（Ｓ３１１）。なお、待ち時間の間、可動部１１１〜１１３のうち通信可能な可動部に対しては、目標位置として、現在位置が繰り返し送信される。これは、まだ通信可能な可動部において、ロボット制御部１００との通信に障害が生じたと誤判定されてしまうことを防止するためである。待ち時間の経過後、処理はＳ３０２へ進む。そして、この場合、動作モードは退避モードであるため（Ｓ３０２でＮＯ）、処理はＳ３２１へ進む。
【００３７】
退避モードでは、可動部１１１〜１１３のうち、通信可能な可動部から現在位置の情報を取得する（Ｓ３２１）。なお、この場合、一部の可動部１１１〜１１３としか通信できない状態であるため、一部の軸成分についての現在位置の情報が欠落する。そして、目標位置生成部２０１は、その欠落した軸成分については、代わりに予備目標位置生成部２０２から情報を取得する（Ｓ３２１）。
【００３８】
続いて、目標位置生成部２０１は、カメラ１０１から入力される映像情報から、周辺装置１３０の位置を検出し（Ｓ３２２）、現在位置から退避位置までの軌道を生成する（Ｓ３２３）。例えば図４において、この時点での現在位置が点４０３、予備目標位置生成部２０２から取得した退避位置が点４０４であった場合、生成する軌道は４１２のようになる。
【００３９】
そして、目標位置生成部２０１は、Ｓ３２３で決定した軌道上に存在し、現在位置の近くにある一点を目標位置として、通信部２０４を通して通信可能な可動部に送信する（Ｓ３２４）。ここで、現在位置からどのくらい離れた点を目標位置とするかは、Ｓ３０６での処理と同様に、内部に保持する可動部１１１〜１１３の駆動能力情報から、現在位置から１ミリ秒以内に到達可能な位置を目標位置とする。そして、現在位置と退避位置を比較して退避位置に到達したか否かのチェックを行う（Ｓ３２５）。退避位置に到達していれば終了し、そうでなければＳ３０２に戻る。
【００４０】
（予備目標位置生成部の動作）
続いて、図５および図６を用いて予備目標位置生成部２０２の動作を詳細に説明する。図５は、予備目標位置生成部２０２の動作フローを表す図である。図６は、予備目標位置生成部２０２が生成する予備目標位置を説明する図である。
【００４１】
ロボット制御システム起動時や障害の修復が終了すると、予備目標位置生成部２０２は、まず、動作モードを加工モードに設定する（Ｓ５０１）。そして、現在の動作モードが加工モードであるか退避モードであるかの判定を行う（Ｓ５０２）。動作モードが加工モードである場合（Ｓ５０２でＹＥＳ）、Ｓ５０３〜Ｓ５１１の動作を実行する。一方、動作モードが退避モードである場合（Ｓ５０２でＮＯ）、Ｓ５２１の動作を実行する。以下では、まず、加工モードであった場合（Ｓ５０２でＹＥＳ）について説明する。
【００４２】
加工モードでは、予備目標位置生成部２０２は、通信部２０４を介して、可動部１１１〜１１３からエンドエフェクタ１１４の現在位置を取得する（Ｓ５０３）。また、予備目標位置生成部２０２は、カメラ１０１から入力される映像情報を解析し、周辺装置１３０の位置を検出する（Ｓ５０４）。続いて、予備目標位置生成部２０２は、可動部１１１〜１１３ごとに、通信に障害が生じた場合の退避位置と予備目標位置とを決定する（Ｓ５０５）。
【００４３】
具体的には、例えば、まずＸ軸方向の移動を行う可動部１１１との通信に障害が生じた場合について、退避位置と予備目標位置とが指定される。ここで、退避位置は、例えば、周辺装置１３０から十分に離れた領域内に存在し、かつ現在位置からＸ軸方向の移動の後に、その他の軸、すなわちＹ軸とＺ軸方向の移動を行って到達可能な点として指定される。例えば、図６において、点４００が現在位置、領域６２０が周辺装置１３０から十分に離れた領域であるとする。このとき、エンドエフェクタ１１４を、現在位置である点４００からＸ軸方向に点４０３まで移動させれば、その後Ｙ軸方向に移動させることで領域６２０内の点４０４に到達可能である。したがって、このような点４０４及び点４０３を、可動部１１１用の退避位置及び予備目標位置とする。可動部１１１〜１１３がそれぞれ予備目標位置を保持することにより、可動部１１１〜１１３は、ロボット制御部１００との間の通信が途絶した場合でも、エンドエフェクタ１１４をその予備目標位置へ移動させることができるようになる。
【００４４】
なお、点４０４と点４０３は、この二点を結ぶ軌道４１２と周辺装置１３０とが、少なくとも距離６３０だけ離れるように選択される。距離６３０は、ロボット１１０が有限の大きさを持つことと軌道４１２上を移動中の周辺装置１３０の位置の変化とを考慮して、例えば、予備目標位置生成部２０２が内部に持つロボット１１０の外形情報と周辺装置１３０のＸ軸方向の移動速度とから算出される。周辺装置１３０のＸ軸方向の移動速度は、１ミリ秒毎に行う解析の過去の結果を保持しておくことで求めることができる。
【００４５】
Ｘ軸方向の移動を行う可動部１１１について退避位置と予備目標位置を指定すると、続いて、Ｙ軸方向の移動を行う可動部１１２との間の通信に障害が発生した場合の退避位置と予備目標位置を同様の考え方で指定する。例えば、図６において、現在位置である点４００から、エンドエフェクタ１１４をＹ軸方向に点６０３まで移動させ、その後Ｘ軸方向に移動させることで領域６２０内の点６０４に到達させることができる。したがって可動部１１２用の退避位置は点６０４、予備目標位置は点６０３とする。Ｚ軸方向の移動を行う可動部１１３についても、同様に退避位置と予備目標位置とを指定する。このように、退避位置と予備目標位置とは、可動部ごとに異なる位置であってもよい。
【００４６】
図５に戻り、予備目標位置生成部２０２は、通信部２０４を介して、Ｓ５０５で決定した予備目標位置を可動部１１１〜１１３へ送信する（Ｓ５０６）。図６の例では、Ｘ軸方向の移動を行う可動部１１１には点４０３を、Ｙ軸方向の移動を行う可動部１１２には点６０３を予備目標位置として送信する。
【００４７】
続いて、予備目標位置生成部２０２は、動作モード切替部２０３から動作モードの変更指示があったか否かを判断する（Ｓ５０７）。そして、変更指示がない場合（Ｓ５０７でＮＯ）、Ｓ５０２に戻り加工モードを継続する。動作モード切替部２０３から動作モードの変更指示がない限り、Ｓ５０２〜Ｓ５０７を１ミリ秒の周期で繰り返す。一方、動作モード切替部２０３から動作モードの変更指示があった場合（Ｓ５０７でＹＥＳ）、予備目標位置生成部２０２は、動作モードを退避モードに変更する（Ｓ５０８）。
【００４８】
予備目標位置生成部２０２は退避モードでの動作を開始すると、動作モード切替部２０３から通信に障害が発生した可動部の識別情報を取得する（Ｓ５０９）。そして、通信に障害が発生した可動部について、Ｓ５０５で決定した退避位置を目標位置生成部２０１に出力する（Ｓ５１０）。例えば可動部１１１との間の通信に障害が発生した場合は点４０４を、可動部１１２との間の通信に障害が発生した場合は点６０４を目標位置生成部２０１に出力する。そして、通信に障害が発生した可動部が予備目標位置に到達するまでに要する所要時間を、目標位置生成部２０１に待ち時間として指示する（Ｓ５１１）。例えば、可動部１１１との間の通信に障害が発生した場合は、図６の現在位置である点４００と予備目標位置である点４０３の間の距離６１０を可動部１１１が移動するのに必要な時間か、それより長い時間が待ち時間として指定される。この所要時間は、内部に持つ可動部１１１〜１１３の駆動能力の情報と、現在位置から予備目標位置までの距離から算出することができる。
【００４９】
その後、処理はＳ５０２へ戻る。そして、動作モードが退避モードであるため（Ｓ５０２でＮＯ）、予備目標位置生成部２０２は、目標位置生成部２０１に対して、通信に障害が発生した可動部についての予備目標位置を出力する（Ｓ５２１）。例えば、可動部１１１との間の通信に障害が発生した場合は点４０３を出力する。すなわち、所要時間が経過後に可動部１１１が移動したであろう位置を現在位置として、目標位置生成部２０１へ通知する。
【００５０】
（ロボット制御部及びロボットの動作）
ここで、ロボット１１０が加工モードで動作中に図４の現在位置である点４００において、図２の伝送路２２０上の点２２１で断線した場合の、ロボット制御部１００とロボット１１０の動作について説明する。
【００５１】
まず、断線する直前の周期の動作を説明する。ロボット制御部１００の目標位置生成部２０１は、まだ断線を検出していないため加工モードで動作中である。Ｓ３０２〜Ｓ３０６を実行して、可動部１１１〜１１３に対して図４の点４０２を目標位置として送信する。また、予備目標位置生成部２０２も加工モードで動作中のため、Ｓ５０２〜Ｓ５０６を実行する。この結果、可動部１１１に対しては点４０３が、可動部１１２に対しては点６０３が予備目標位置として送信される。この時点で、可動部１１１と可動部１１２の目標位置保持部２１２には点４０２が、可動部１１１の予備目標位置保持部２１３には点４０３が、可動部１１２の予備目標位置保持部２１３には点６０３が、それぞれ格納される。  ここで伝送路２２０上の点２２１で断線が発生したとする。このとき、可動部１１１と１１２は、それぞれが現在位置検出部２１８で取得した現在位置のＸ軸成分とＹ軸成分を送信する。しかし、点２２１で伝送路２２０が断線しているため、可動部１１２から送信されたＹ軸成分はロボット制御部１００に届くが、可動部１１１から送信されたＸ軸成分は届かない。したがって、動作モード切替部２０３において、可動部１１１の識別子が付加されたデータ、すなわち可動部１１１からのデータが受信できないことが検出される。そこで動作モード切替部２０３は、目標位置生成部２０１と予備目標位置生成部２０２に動作モード変更指示を出力する。
【００５２】
一方、可動部１１１の目標位置切替部２１４においても、ロボット制御部１００からデータが届かないことが検出される。これにより可動部１１１では、スイッチ２１５が予備目標位置保持部２１３側に設定され、アクチュエータ制御部２１６には、目標位置として点４０３が設定される。これにより可動部１１１によるエンドエフェクタ１１４の点４０３への移動が開始される。
【００５３】
ロボット制御部１００においては、予備目標位置生成部２０２は、Ｓ５０７で動作モード変更指示を検出し、Ｓ５０８で動作モードを退避モードとする。さらにＳ５０９で通信に障害が生じた相手は可動部１１１であることを示す情報を取得し、Ｓ５１０で目標位置生成部２０１に退避位置である点４０４を出力する。Ｓ５１１では可動部１１１が現在位置である点４００から予備目標位置である点４０３に移動するまでの待ち時間を目標位置生成部２０１に出力する。
【００５４】
目標位置生成部２０１は、Ｓ３０７で動作モード変更指示を検出し、Ｓ３０８で動作モードを退避モードとする。さらにＳ３０９でで通信に障害が発生した相手が可動部１１１であることを示す情報を取得し、Ｓ３１０では予備目標位置生成部２０２から退避位置である点４０４を取得する。Ｓ３１０では、予備目標位置生成部２０２に指示された時間だけ待機し、可動部１１１によりエンドエフェクタ１１４が予備目標位置である点４０３へ移動完了するまで待つ。
【００５５】
予備目標位置生成部２０２により指定された時間が経過すると、エンドエフェクタ１１４は点４０３に到達することとなる。すると、目標位置生成部２０１は、Ｓ３２１において、通信可能な可動部１１２と可動部１１３から現在位置、すなわち点４０３のＹ軸成分とＺ軸成分とを取得する。また、Ｘ軸成分については、予備目標位置生成部２０２から点４０３のＸ軸成分を取得する。したがって、可動部１１１との通信に障害が発生しているものの、目標位置生成部２０１は、点４０３のＸ軸、Ｙ軸、Ｚ軸全ての成分を得て、現在位置は点４０３であることを認識することが出来る。
【００５６】
現在位置である点４０３から退避位置である点４０４までは、Ｘ軸方向の移動を行わずに到達可能である。したがって、可動部１１１との通信に障害が発生しても、目標位置生成部２０１は、Ｓ３２２〜Ｓ３２５を実行することにより、エンドエフェクタ１１４を退避位置である点４０４に退避させることができる。このように、ロボット１１０とロボット制御部１００とを結ぶ伝送路２２０上の点２２１で、加工モードで動作中に断線が発生した場合にも、エンドエフェクタ１１４を、図４の現在位置である点４００から退避位置である点４０４へ移動させることができる。
【００５７】
これにより、内部で断線が生じたロボット１１０について、メンテナンス可能な状態を素早く作り出すことができる。そして、このため、メンテナンスに必要なコストを低減することができる。また、内部で断線が生じたロボット１１０を作業エリア内から自動的に速やかに退避させることができるので、同じ作業エリア内で動作する周辺装置１３０の動作の障害となったり衝突したりする可能性を低減することができる。
【００５８】
さらに、本実施形態における周辺装置１３０に代わって、ロボット１１０と同じ作業エリアで作業を行う作業員が存在する場合にも、本実施形態と同様の構成を適用することができる。この場合、ロボット制御部１００とロボット１１０の一部の可動部との間で通信ができなくなったとしても、作業員に接触することなくロボット１１０を退避位置に移動させることができる。
【００５９】
本実施形態では、可動部１１１〜１１３は、エンドエフェクタ１１４の先端をそれぞれＸ軸、Ｙ軸、Ｚ軸方向に水平移動させるものだったが、簡単な演算により、関節を曲げる動作を行うような可動部で構成されるロボットにも適用可能である。すなわち、直交座標系以外の座標系に基づいて動作する可動部を有するロボットにも同様の技術を適用することが可能である。例えば、３つの可動部を含むロボットにおいて、１つの可動部との間の通信が不能となった場合に、残りの２つの可動部のみを動作させることにより退避位置へ移動させることができる位置を、当該１つの可動部の予備目標位置とすることができる。
【００６０】
また本実施形態では、ロボット制御部１００は周辺装置１３０の位置を映像情報に基づいて取得していたが、ロボット制御部１００と周辺装置１３０をネットワークで接続して、通信によって取得してもよい。この構成によれば、ロボット制御部１００は、容易かつ正確に周辺装置１３０の位置を把握することが可能となる。
【００６１】
＜＜その他の実施形態＞＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2013121644.tif 000003
【図２】
2013121644.tif 000004
【図３】
2013121644.tif 000005
【図４】
2013121644.tif 000006
【図５】
2013121644.tif 000007
【図６】
2013121644.tif 000008