(57)【要約】【課題】ロボットが異常停止した後に復旧制御を行ったときの復旧成功率を向上するとともに復旧動作の効率化を実現する。【解決手段】ロボット復旧支援装置６０は、エンドエフェクタ１２を装着可能な多関節アーム１１を有するロボット１０を制御データに基づいて制御するロボットコントローラ２０と通信可能である。このロボット復旧支援装置６０は、復旧制御部５０と、エンドエフェクタ干渉判定部６３と、を備える。復旧制御部５０は、ロボット１０が異常停止した場合に、当該ロボット１０を作業再開可能な状態に復旧する制御を行う。エンドエフェクタ干渉判定部６３は、エンドエフェクタ１２がロボット１０の周辺構造物に対して干渉しているエンドエフェクタ干渉状態と、干渉していないエンドエフェクタ非干渉状態と、を判定する。復旧制御部５０は、エンドエフェクタ干渉状態と、エンドエフェクタ非干渉状態とで、異なる復旧制御を行う。【選択図】図１
2018051686.tif 000002
【特許請求の範囲】
【請求項１】
エンドエフェクタを装着可能な多関節アームを有するロボットを制御データに基づいて制御するロボットコントローラと通信可能なロボット復旧支援装置であって、
前記ロボットが異常停止した場合に、当該ロボットを作業再開可能な状態に復旧する制御を行う復旧制御部と、
前記エンドエフェクタが前記ロボットの周辺構造物に対して干渉しているエンドエフェクタ干渉状態と、干渉していないエンドエフェクタ非干渉状態と、を判定するエンドエフェクタ干渉判定部と、
を備え、
前記復旧制御部は、前記エンドエフェクタ干渉状態と、前記エンドエフェクタ非干渉状態とで、異なる復旧制御を行うことを特徴とするロボット復旧支援装置。
【請求項２】
請求項１に記載のロボット復旧支援装置であって、
前記ロボットの動作を生成する動作生成部と、
前記動作生成部が生成した動作が記述された制御データを前記ロボットコントローラへ送信する制御データ送信部と、
を備え、
前記エンドエフェクタ干渉状態では、前記復旧制御部は、
予め定められた複数の単位動作から選択された１つの単位動作を用いることにより、又は選択された複数の単位動作を組み合わせることにより、前記エンドエフェクタの位置及び姿勢のうち少なくとも一方を変化させるように前記ロボットを動作させる試行動作の前記動作生成部による生成と、
生成された前記試行動作が記述された制御データの前記ロボットコントローラへの前記制御データ送信部による送信と、
を前記エンドエフェクタ非干渉状態となるまで反復して行うことを特徴とするロボット復旧支援装置。
【請求項３】
請求項２に記載のロボット復旧支援装置であって、
前記エンドエフェクタ非干渉状態では、前記復旧制御部は、
前記エンドエフェクタの位置及び姿勢並びに前記多関節アームの位置及び姿勢を作業再開可能な状態とするために前記ロボットを動作させる復帰動作の前記動作生成部による生成と、
生成された前記復帰動作が記述された制御データの前記ロボットコントローラへの前記制御データ送信部による送信と、
を行うことを特徴とするロボット復旧支援装置。
【請求項４】
請求項１から３までの何れか一項に記載のロボット復旧支援装置であって、
前記復旧制御部は、前記ロボットを作業再開可能な状態に復旧するための当該ロボットの動作を検証して適用の可否を判定する動作検証部を備え、
前記復旧制御部は、前記動作検証部により適用可と判定された動作のみを前記ロボットに行わせるように構成され、
前記動作検証部は、前記ロボット及び当該ロボットの周辺構造物の３次元形状を示す３次元モデルデータを用いたシミュレーションの結果に基づいて、動作時に前記多関節アームが前記周辺構造物と干渉するか否かを少なくとも検証することを特徴とするロボット復旧支援装置。
【請求項５】
請求項４に記載のロボット復旧支援装置であって、
少なくとも前記エンドエフェクタ干渉状態において、前記動作検証部は、動作時に前記エンドエフェクタが前記周辺構造物と干渉するか否かの検証を行わないことを特徴とするロボット復旧支援装置。
【請求項６】
請求項１から５までの何れか一項に記載のロボット復旧支援装置であって、
前記復旧制御部は動作選択部を備え、
前記動作選択部は、復旧のために行わせることが可能な前記ロボットの動作が複数ある場合に、復旧のために必要な時間及び動作余裕度のうち少なくとも何れかに基づいて、前記ロボットに行わせる動作を選択することを特徴とするロボット復旧支援装置。
【請求項７】
請求項１から６までの何れか一項に記載のロボット復旧支援装置であって、
前記復旧制御部は、前記ロボットを実際に作業再開可能な状態に復帰できた場合に、当該ロボットに行わせた動作を記憶する成功動作記憶部を備え、
前記復旧制御部は、前記成功動作記憶部の記憶内容に基づいて前記ロボットの動作を生成することを特徴とするロボット復旧支援装置。
【請求項８】
請求項１から７までの何れか一項に記載のロボット復旧支援装置と、
前記ロボットと、
前記ロボットコントローラと、
を備えることを特徴とするロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットが異常停止した後に当該ロボットを作業再開可能な状態に復旧するのを支援するロボット復旧支援装置及びそれを備えるロボットシステムに関する。
【背景技術】
【０００２】
従来から、産業用ロボット等のロボットの動作をロボットコントローラにより制御して、ロボットに搬送、組立、塗装、溶接作業等の作業を行わせるための様々な動作を行わせる構成が広く知られている。特許文献１は、この種のロボットシステムを開示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平７−１３４６０５号公報
【特許文献２】特開２０１５−２４４７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このようなロボットシステムにおいて、ロボットコントローラでロボットの動作を制御している途中で、ロボットが周辺構造物（例えば、他のロボット）に干渉したり、ロボットのエンドエフェクタがワークや組付部品に対して異常な状態で接触し引っ掛かりや拗れの発生により接触状態を解除できなくなったりして異常停止した場合には、早期にロボットを作業再開可能な状態に復旧することが望ましい。
【０００５】
しかし、特に複雑化している近年のロボットシステムにおいては、ロボットが異常停止する可能性のある位置やそのときのロボットの状態・姿勢に関しては、様々なパターンが考えられる。そのため、想定される全ての異常停止のパターンのそれぞれに対応付けて、その位置・姿勢からロボットを作業再開可能な状態に復旧するための復旧制御プログラムを事前に生成し、これらをロボットコントローラに記憶しておくのは現実的ではなかった。
【０００６】
そこで、ロボットが異常停止したときの位置・姿勢に応じて、その場で演算を行うことにより復旧制御プログラムを生成することが考えられる。上記の特許文献２は、この種のロボットシステムを開示する。
【０００７】
特許文献２の構成では、ロボットがどのような状況で異常停止した場合においても、ロボットの姿勢を「所期の待機姿勢」に変化させるための復旧プログラムを演算により生成し、これに従ってロボットに復帰動作をさせていた。しかしながら、ロボットが異常停止したときの状況は様々であり、必ずしも全ての場合に共通の「所期の待機姿勢」に変化させることで復旧に成功する訳ではなく、また、十分に効率的に復旧できるとも限らず、改善の余地があった。
【０００８】
本発明は以上の事情に鑑みてされたものであり、ロボットが異常停止した後に復旧制御を行ったときの復旧成功率を向上するとともに復旧動作の効率化を実現することにある。
【課題を解決するための手段】
【０００９】
本発明の解決しようとする課題は以上の如くであり、次にこの課題を解決するための手段とその効果を説明する。
【００１０】
本発明の観点によれば、以下の構成のロボット復旧支援装置が提供される。即ち、このロボット復旧支援装置は、エンドエフェクタを装着可能な多関節アームを有するロボットを制御データに基づいて制御するロボットコントローラと通信可能である。このロボット復旧支援装置は、復旧制御部と、エンドエフェクタ干渉判定部と、を備える。前記復旧制御部は、前記ロボットが異常停止した場合に、当該ロボットを作業再開可能な状態に復旧する制御を行う。前記エンドエフェクタ干渉判定部は、前記エンドエフェクタが前記ロボットの周辺構造物に対して干渉しているエンドエフェクタ干渉状態と、干渉していないエンドエフェクタ非干渉状態と、を判定する。前記復旧制御部は、前記エンドエフェクタ干渉状態と、前記エンドエフェクタ非干渉状態とで、異なる復旧制御を行う。
【００１１】
これにより、エンドエフェクタが周辺構造物に対して干渉しているか否かに応じて別々の復旧制御が行われるので、復旧制御の使い分けにより、復旧成功率の向上及び効率化を実現することができる。
【発明の効果】
【００１２】
本発明によれば、ロボットが異常停止した後に復旧制御を行ったときの復旧成功率を向上するとともに復旧動作の効率化を実現することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態に係るロボット復旧支援装置を備えるロボットシステムの全体的な構成を示す図。
【図２】ロボット復旧支援装置で行われる復旧制御の処理の流れを示すフローチャート。
【発明を実施するための形態】
【００１４】
次に、図面を参照して本発明の実施の形態を説明する。図１は、本発明の一実施形態に係るロボット復旧支援装置６０を備えるロボットシステム１の全体的な構成を示す図である。
【００１５】
図１に示すロボットシステム１は、例えば輸送機械や電気機器等の工業製品を製造する工場に設置される。工場に設けられた製造ラインには、ベルトコンベヤやローラコンベア等の搬送装置が設置されており、当該搬送装置により、未完成のワークが支持台等に載置された状態で上流側から下流側に向かって流れてくる。この搬送装置の側には、複数のロボット１０が上流側から下流側に向かって並んで配置されている。それぞれのロボット１０は、部品の取付けや溶接や塗装等の予め定められた作業をワークに対して施す。即ち、複数のロボット１０は、製造ラインにおいてワークに対して施される作業を分担して行う。
【００１６】
ロボット１０は、公知の産業用多関節ロボットであり、複数の関節（本実施形態では、６つ）の関節を有する多関節アーム１１と、当該多関節アーム１１の先端に装着されるエンドエフェクタ１２と、を有する。エンドエフェクタ１２は、ワークに直接働きかけする機能を有する部分であり、例えばグリッパや多指ハンド等により構成される。
【００１７】
ロボット１０には、当該ロボット１０の動作を制御するコンピュータであるロボットコントローラ２０が接続されている。ロボットコントローラ２０は、ロボットシステム１の各構成同士を通信可能とするネットワークに接続されている。ロボットコントローラ２０は、前記ネットワークを介して、ロボット復旧支援装置６０に接続されている。ロボット復旧支援装置６０は、ロボット１０が異常停止した場合に当該ロボット１０を作業再開可能な状態に復旧するのを支援する機能を有する装置である。
【００１８】
ロボット１０が異常停止する場合としては、例えば、ロボット１０が周辺構造物（例えば、ワークや、当該ワークに組み付ける物品や、当該ワークを載置する作業台や、他のロボット１０）に干渉したり、ロボット１０のエンドエフェクタ１２がワーク又はワークに組み付ける部品（ネジ等）に対して異常な状態で接触（作用）し引っ掛かりや拗れの発生により接触状態を解除できなくなったりする場合等が考えられる。以下では、エンドエフェクタ１２がロボット１０の周辺構造物（典型的には、ワーク又はワークに組み付ける部品）に対して異常な状態で干渉している状態を「エンドエフェクタ干渉状態」と称し、それ以外の状態、即ち、エンドエフェクタ１２が上記ロボット１０の周辺構造物に干渉せずに、エンドエフェクタ１２以外の部分で干渉している状態を「エンドエフェクタ非干渉状態」と称する場合がある。
【００１９】
本実施形態のロボットシステム１では、ロボット１０に異常が発生した場合に、ロボットコントローラ２０からロボット１０に動作の停止を指示する制御信号を送ることにより当該ロボット１０を直ちに停止（異常停止）させることとしている。そしてその場合、ロボット復旧支援装置６０において、ロボット１０を作業再開可能な状態に自動で復旧するための動作が記述された制御データ（ＮＣデータ）を演算により自動生成する。ここで、「ロボット１０を作業再開可能な状態に復旧する」とは、ロボット１０を、異常停止したときの位置・姿勢から変化させて、通常の制御データ（通常のロボット作業を行わせるための動作が記述されたＮＣデータ）に従って作業再開させることができるような位置・姿勢にすることを指す。
【００２０】
本実施形態のロボットコントローラ２０は上述したようにコンピュータとして構成されており、ＣＰＵ、ＲＯＭ、ＲＡＭ等を備える。また、前記ＲＯＭには、ロボット１０を制御データ（ＮＣデータ）に基づいて動作させるための適宜のプログラム等が記憶されている。このソフトウェアとハードウェアの協働により、ロボットコントローラ２０を、作業用制御データ記憶部２１、異常検出部２２、及び状態出力部２３等として機能させることが可能となっている。
【００２１】
以下では、ロボットコントローラ２０の各構成について詳細に説明する。
【００２２】
作業用制御データ記憶部２１は、ロボット１０に行わせる動作が記述された制御データ（ＮＣデータ）を記憶するものである。ロボット１０をマニュアル操作で動作させる場合には、オペレータがティーチングペンダント（操作手段）４０を用いて入力した動作を記述した制御データが作業用制御データ記憶部２１に記憶される。
【００２３】
異常検出部２２は、ロボット１０が異常停止した場合に、そのときの多関節アーム１１の位置及び姿勢並びにエンドエフェクタ１２の位置及び姿勢に関する情報を取得する。異常検出部２２は、例えば、ロボット１０の各関節の回転角度を各関節に装着されているセンサの検出値により取得し、それらから多関節アーム１１の位置及び姿勢並びにエンドエフェクタ１２の位置及び姿勢を算出して取得する。また、本実施形態の異常検出部２２は、エンドエフェクタ１２に作用する力の変化量、並びにエンドエフェクタ１２及び当該エンドエフェクタ１２に直接的に接触するワーク（又はワークに組み付けられるネジ等の部品）の相対位置の変位量を取得する。具体的には、エンドエフェクタ１２には、カメラや接触センサ、或いはタイマ等が装着されており、それらの検出結果により、エンドエフェクタ１２に作用する力の変化量、並びに、エンドエフェクタ１２及び当該エンドエフェクタ１２に直接的に接触するワーク（又は組付部品）の相対位置の変位量を取得できる。
【００２４】
状態出力部２３は、異常検出部２２で取得したロボット１０の異常停止時の状態を表す検出結果を、ロボット復旧支援装置６０に対して出力することができる。
【００２５】
以下では、ティーチングペンダント４０の構成について簡単に説明する。ティーチングペンダント４０は、ロボット１０をマニュアル操作で動作させる場合に、オペレータが操作するものである。オペレータは、ティーチングペンダント４０に備えられているキー等を操作することにより、ロボット１０に行わせる動作を記述した制御データを作成して出力し、ロボットコントローラ２０に入力（送信）することができる。これにより、ロボット１０をオペレータが意図したとおりに動作させることができる。ロボットコントローラ２０は、ティーチングペンダント４０を用いて作成した動作を作業用制御データ記憶部２１に記録して、ロボット１０が当該動作を反復して行うように制御することが可能となっている。
【００２６】
次に、本実施形態のロボット復旧支援装置６０について、図１を参照して詳細に説明する。
【００２７】
ロボット復旧支援装置６０は、コンピュータとして構成されており、ＣＰＵ、ＲＯＭ、ＲＡＭ等を備える。また、前記ＲＯＭには、ロボット１０に行わせる動作（試行動作又は復帰動作）が記述された制御データを自動生成し、選択し、ロボットコントローラ２０に転送するための適宜のプログラム等が記憶されている。このソフトウェアとハードウェアの協働により、ロボット復旧支援装置６０を、復旧制御部５０、成功動作記憶部６１、３次元シミュレータ６２、及びエンドエフェクタ干渉判定部６３等として機能させることが可能となっている。
【００２８】
以下では、ロボット復旧支援装置６０の各構成について詳細に説明する。
【００２９】
復旧制御部５０は、ロボット１０が異常停止した場合に、当該ロボット１０を作業再開可能な状態に復旧する制御を行うものである。この復旧制御部５０は、動作生成部５１、動作検証部５２、動作選択部５３、及び制御データ送信部５４等を備える。
【００３０】
動作生成部５１は、ロボット１０が異常停止した場合に、当該ロボット１０を作業再開可能な状態に復旧（以下、単に「復旧」と称する場合がある。）させるためにロボット１０に行わせる動作の候補を生成するものである。生成される動作の候補は複数であることが好ましいが、状況によっては候補が１つの場合も考えられる。動作生成部５１は、状態出力部２３から入力された情報に基づいて、ロボット１０を作業再開可能な位置・姿勢に変化させるための動作を動的に生成する。
【００３１】
動作検証部５２は、動作生成部５１で生成した動作の候補のそれぞれについて、ロボットコントローラ２０により実際に実行しても問題がないか否かを、干渉の有無等の観点により検証し、適用の可否を判定するものである。より具体的には、本実施形態の動作検証部５２は、３次元シミュレータ６２で行われるシミュレーションの結果に基づいて、動作時に多関節アーム１１が周辺構造物に干渉するか否かと、多関節アーム１１の動きが急峻になり過ぎないか否かと、について検証する。動作時に多関節アーム１１が周辺構造物と干渉するおそれがある場合、ロボット１０等が損傷を受ける可能性があるため適用不可と判定する。また、多関節アーム１１の動作に急峻過ぎる動きが含まれる場合、復旧のための動作として好ましくないため適用不可と判定する。動作検証部５２で適用可と判定された動作のみが、選択肢となる動作として動作選択部５３に入力される。その結果、動作検証部５２で適用可と判定された動作のみをロボット１０で行わせることができる。
【００３２】
動作選択部５３は、動作検証部５２で適用可と判定された動作が複数ある場合に、それらの中から、ロボット１０に行わせる動作を選択する。具体的には、本実施形態の動作検証部５２では、３次元シミュレータ６２で行われるシミュレーションの結果から、復旧までに掛かる時間（復旧のために必要な時間）、及び、動作余裕度（周辺構造物とロボット１０との間隔に十分な隙間があるか否か）を考慮して、適切な動作を選択する。好ましくは、復旧までに掛かる時間が比較的短く、かつ、動作余裕度が十分にある動作が優先的に選択される。
【００３３】
制御データ送信部５４は、動作生成部５１が生成した動作（動作選択部５３で選択された動作）が記述された制御データをロボットコントローラ２０へ送信する。ロボットコントローラ２０は、受信した制御データに基づいてロボット１０を動作させる。
【００３４】
成功動作記憶部６１は、ロボット１０を復旧のための前記制御データに基づいて動作させた結果、実際に復旧に成功したときに、その旨をロボットシステム１のネットワークを通じて受信し、そのときに用いられていた制御データを記憶するものである。言い換えれば、成功動作記憶部６１は、復旧に成功した成功動作の記録を蓄積するものである。なお、ロボット１０が実際に復旧に成功したか否かは、例えば、ロボット１０に装着されている各種センサやカメラ等の検出結果から把握することができる。
【００３５】
３次元シミュレータ６２は、ロボット１０及び当該ロボット１０の周辺構造物（例えば、他のロボット１０、支持台、ワーク、及びワークに組み付けられる部品等）の３次元形状を示す３次元モデルデータを用いて、動作のシミュレーションを行うことができる。３次元シミュレータ６２でシミュレーションを行うことにより、例えば、ワークが搬送方向に流れてきてロボット１０，１０，・・・がそれぞれ動いたときの干渉の発生の有無や、急峻な動き（無理な動き）の有無等をチェックすることができる。
【００３６】
エンドエフェクタ干渉判定部６３は、エンドエフェクタ１２に作用する力の変化量、並びにエンドエフェクタ１２及び当該エンドエフェクタ１２に直接的に接触するワーク（又はワークに組み付けられるネジ等の部品）の相対位置の変位量を状態出力部２３から取得して、異常停止時において上述のエンドエフェクタ干渉状態になっているか否かを判定する。本実施形態の復旧制御部５０は、エンドエフェクタ干渉判定部６３での判定の結果、エンドエフェクタ干渉状態であるか、エンドエフェクタ非干渉状態であるかによって、異なる復旧制御を行うように構成されている。
【００３７】
以下では、復旧制御部５０により行われる復旧制御について、図２を参照して詳細に説明する。図２は、ロボット復旧支援装置６０で行われる復旧制御の処理の流れを示すフローチャートである。
【００３８】
ロボット１０が異常停止すると図２の処理が自動的に開始され、初めに、復旧制御部５０のエンドエフェクタ干渉判定部６３は、現在、上述のエンドエフェクタ干渉状態になっているか否かを判断する（ステップＳ１０１）。言い換えれば、エンドエフェクタ１２が、当該エンドエフェクタ１２が直接的に作用する対象物（典型的には、ワーク又はワークに組み付けられる部品）に対して異常な状態で接触しているか否か、より具体的には対象物との間で噛み込みや拗れや引っ掛かり等が発生しているか否かを判断する。
【００３９】
ステップＳ１０１での判断の結果、エンドエフェクタ干渉状態となっている場合（ステップＳ１０１、Ｙｅｓ）、復旧制御部５０は、干渉状態からの脱出を手探り的に試みるために、ステップＳ１０２からステップＳ１０５までの処理を必要に応じて繰り返して行う。
【００４０】
ステップＳ１０２において、復旧制御部５０の動作生成部５１は、エンドエフェクタ１２を試行錯誤的に動かすための動作を生成する。具体的には、動作生成部５１は、予め定められた複数の単位動作（例えば、Ｘ軸方向、Ｙ軸方向、又はＺ軸方向に所定量だけ移動する動作）からランダムに選択された１つの単位動作を用いることにより、又は、選択された複数の単位動作を組み合わせることにより、エンドエフェクタ１２の位置及び姿勢を変化させるようにロボット１０を少量だけ動作させる試行動作（以下、単に「試行動作」と称する場合がある。）を生成する。
【００４１】
この際、動作生成部５１は、状態出力部２３から送られてきた現在のエンドエフェクタ１２の位置及び姿勢が、過去の成功動作の開始位置のそれと類似しているか否かを、成功動作記憶部６１のデータと比較することにより調べ、似ているものがあった場合、その成功動作（の記憶内容）に基づいて試行動作を生成することとしてもよい。これにより、過去に成功した復旧動作を参考にして試行動作を生成することができるので、適した試行動作を効率的に短時間で生成することができる。
【００４２】
続いてステップＳ１０３において、復旧制御部５０の動作検証部５２は、３次元シミュレータ６２を用いてシミュレーションを行って、試行動作を実行したときに多関節アーム１１（言い換えれば、エンドエフェクタ１２以外の部分）が周辺構造物に干渉しないか、及び、多関節アーム１１が急峻に動き過ぎないかについて検証する。検証の結果、多関節アーム１１が周辺構造物に干渉するおそれがなく、かつ、多関節アーム１１が無理な動きをしないことを確認できた試行動作だけが、次のステップＳ１０４において試行動作の選択肢として採用される。
【００４３】
続いて、ステップＳ１０４において、復旧制御部５０の動作選択部５３は、ステップＳ１０３の干渉チェック及び急峻度チェックの結果、問題がないと判断された試行動作の中から、実際にロボット１０に行わせる試行動作を選択する。
【００４４】
続いて、ステップＳ１０５において、復旧制御部５０の制御データ送信部５４は、ステップＳ１０４で選択された試行動作が記述された制御データをロボットコントローラ２０に送信（転送）する。ロボットコントローラ２０は、受信した制御データに基づいてロボット１０を動作させる。
【００４５】
ロボット１０に実際に試行動作を行わせた後も、依然としてエンドエフェクタ干渉状態が続いている場合（ステップＳ１０１、Ｙｅｓ）、復旧制御部５０は、ステップＳ１０２からステップＳ１０５までの処理を反復し、干渉状態からの脱出を、小刻みの動きを繰り返すことにより手探り的に試みる。これにより、ロボット１０の状態を、エンドエフェクタ非干渉状態にすることができる。
【００４６】
一方、ステップＳ１０１での判断の結果、エンドエフェクタ非干渉状態である場合（ステップＳ１０１、Ｎｏ）、復旧制御部５０は、早期にエンドエフェクタ１２の位置・姿勢、及び多関節アーム１１の位置・姿勢を作業再開可能な状態とするために、ステップＳ１０６からステップＳ１０９までの処理を一通り行う。
【００４７】
ステップＳ１０６において、復旧制御部５０の動作生成部５１は、エンドエフェクタ１２の位置及び姿勢並びに多関節アーム１１の位置及び姿勢を作業再開可能な状態に変化させるための動作を生成する。具体的には、動作生成部５１は、予め定められた複数の単位動作（例えば、Ｘ軸方向、Ｙ軸方向、又はＺ軸方向に所定量だけ移動する動作）からランダムに選択された１つの単位動作を用いることにより、又は、選択された複数の単位動作を組み合わせることにより、エンドエフェクタ１２の位置及び姿勢並びに多関節アーム１１の位置及び姿勢を変化させるようにロボット１０を一連の動きで動作させる復帰動作（以下、単に「復帰動作」と称する場合がある。）を生成する。
【００４８】
この際、動作生成部５１は、状態出力部２３から送られてきた異常停止時のエンドエフェクタ１２の位置及び姿勢並びに多関節アーム１１の位置及び姿勢が、過去の成功動作の開始位置のそれと類似しているか否かを、成功動作記憶部６１のデータと比較することにより調べ、似ているものがあった場合、その成功動作（の記憶内容）に基づいて復帰動作を生成することとしてもよい。これにより、過去に成功した復旧動作を参考にして復帰動作を生成することができるので、適した復帰動作を効率的に短時間で生成することができる。
【００４９】
続いて、ステップＳ１０７において、復旧制御部５０の動作検証部５２は、３次元シミュレータ６２を用いてシミュレーションを行って、復帰動作を実行したときに多関節アーム１１及びエンドエフェクタ１２が周辺構造物に干渉しないか、及び、多関節アーム１１及びエンドエフェクタ１２が急峻に動き過ぎないかについて検証する。検証の結果、多関節アーム１１及びエンドエフェクタ１２が周辺構造物に干渉するおそれがなく、かつ、多関節アーム１１及びエンドエフェクタ１２が無理な動きをしないことを確認できた復帰動作だけが、次のステップＳ１０８における復帰動作の選択肢として採用される。
【００５０】
続いて、ステップＳ１０８において、復旧制御部５０の動作選択部５３は、ステップＳ１０７の干渉チェック及び急峻度チェックの結果、問題がないと判断された復帰動作の中から、実際にロボット１０に行わせる復帰動作を選択する。このとき、上述したように、復旧に要する時間、及び動作余裕度等が総合的に考慮される。
【００５１】
続いて、ステップＳ１０９において、復旧制御部５０の制御データ送信部５４は、ステップＳ１０８で選択された復帰動作が記述された制御データをロボットコントローラ２０に送信（転送）する。ロボットコントローラ２０は、受信した制御データに基づいてロボット１０を動作させる。これにより、ロボット１０に復帰動作を実際に行わせることができる。
【００５２】
上記のように、本実施形態では、エンドエフェクタ１２が直接的に作用する対象物に対して異常な状態で接触していない状況（噛み込み、拗れ、引っ掛かり等が発生していない状況）では、ロボット１０の実際の動作を伴う試行錯誤的な反復は行われないので、復旧を早期に効率的に行うことができる。
【００５３】
以上に説明したように、本実施形態のロボット復旧支援装置６０は、エンドエフェクタ１２を装着可能な多関節アーム１１を有するロボット１０を制御データに基づいて制御するロボットコントローラ２０と通信可能である。このロボット復旧支援装置６０は、復旧制御部５０と、エンドエフェクタ干渉判定部６３と、を備える。復旧制御部５０は、ロボット１０が異常停止した場合に、当該ロボット１０を作業再開可能な状態に復旧する制御を行う。エンドエフェクタ干渉判定部６３は、エンドエフェクタ１２がロボット１０の周辺構造物に対して干渉しているエンドエフェクタ干渉状態と、干渉していないエンドエフェクタ非干渉状態と、を判定する。復旧制御部５０は、エンドエフェクタ干渉状態と、エンドエフェクタ非干渉状態とで、異なる復旧制御を行う。
【００５４】
これにより、エンドエフェクタ１２が周辺構造物に対して干渉しているか否かに応じて別々の復旧制御が行われるので、復旧制御の使い分けにより、復旧成功率の向上及び効率化を実現することができる。
【００５５】
また、本実施形態のロボット復旧支援装置６０は、動作生成部５１と、制御データ送信部５４と、を備える。動作生成部５１は、ロボット１０の動作を生成する。制御データ送信部５４は、動作生成部５１が生成した動作が記述された制御データをロボットコントローラ２０へ送信する。エンドエフェクタ干渉状態では、復旧制御部５０は、ロボット１０の状態がエンドエフェクタ非干渉状態となるまで、データ生成処理と、制御データ送信処理と、を反復して行う。前記データ生成処理では、動作生成部５１が、予め定められた複数の単位動作から選択された１つの単位動作を用いることにより、又は選択された複数の単位動作を組み合わせることにより、エンドエフェクタ１２の位置及び姿勢を変化させるようにロボット１０を動作させる試行動作を生成する。前記制御データ送信処理では、制御データ送信部５４が、生成された試行動作が記述された制御データのロボットコントローラ２０へ送信する。
【００５６】
これにより、エンドエフェクタ１２が他（典型的には、ワークや、ワークに組み付けられるネジ等の部品）と干渉している状況では、エンドエフェクタ１２を実際に試行錯誤的に動かすことを反復することで、復旧の成功率を高めることができる。また、干渉状態からの脱出を手探り的に試みる手法を用いているので、様々な作業を行うロボット１０に対して幅広く適用することができる。
【００５７】
また、本実施形態のロボット復旧支援装置６０においては、エンドエフェクタ非干渉状態では、復旧制御部５０は、エンドエフェクタ１２の位置及び姿勢並びに多関節アーム１１の位置及び姿勢を作業再開可能な状態とするためにロボット１０を動作させる復帰動作の動作生成部５１による生成を行う。また、復旧制御部５０は、生成された復帰動作が記述された制御データのロボットコントローラ２０への制御データ送信部５４による送信を行う。
【００５８】
これにより、エンドエフェクタ１２が他の干渉しない状況では、ロボット１０の実際の動作を伴う試行錯誤的な反復を行わないので、復旧を効率的に行うことができる。
【００５９】
また、本実施形態のロボット復旧支援装置６０においては、復旧制御部５０は、ロボット１０を作業再開可能な状態に復旧するためのロボット１０の動作を検証して適用の可否を判定する動作検証部５２を備える。復旧制御部５０は、動作検証部５２により適用可と判定された動作のみをロボット１０に行わせるように構成される。動作検証部５２は、ロボット１０及び当該ロボット１０の周辺構造物の３次元形状を示す３次元モデルデータを用いたシミュレーションの結果（３次元シミュレータ６２で得られた結果）に基づいて、動作時に多関節アーム１１が周辺構造物と干渉するか否かを少なくとも検証する。
【００６０】
このように、３次元シミュレータ６２を用いて３次元シミュレーションによる検証を行うことにより、復旧動作時において、多関節アーム１１の周辺構造物への接触を確実に防止することができる。
【００６１】
また、本実施形態のロボット復旧支援装置６０においては、少なくともエンドエフェクタ干渉状態において、動作検証部５２は、動作時にエンドエフェクタ１２が周辺構造物と干渉するか否かの検証を行わない。
【００６２】
これにより、エンドエフェクタ１２が他（ワーク、組付部品等）と干渉する場合であっても、干渉を脱するために、エンドエフェクタ１２を試行錯誤的に動かすことができる。
【００６３】
また、本実施形態のロボット復旧支援装置６０においては、復旧制御部５０は動作選択部５３を備える。動作選択部５３は、復旧のために行わせることが可能なロボット１０の動作が複数ある場合に、復旧のために必要な時間及び動作余裕度に基づいて、ロボット１０に行わせる動作を選択する。
【００６４】
これにより、復旧のための適切な動作を選択してロボット１０に行わせることができる。
【００６５】
また、本実施形態のロボット復旧支援装置６０においては、復旧制御部５０は、ロボット１０を実際に作業再開可能な状態に復帰できた場合に、当該ロボット１０に行わせた動作を記憶する成功動作記憶部６１を備える。復旧制御部５０は、成功動作記憶部６１の記憶内容に基づいてロボット１０の動作を生成する。
【００６６】
これにより、過去に成功した復旧動作を参考にして動作を生成することができるので、より効率的に復旧動作を行うことが可能になる。
【００６７】
また、本実施形態のロボットシステム１は、前記のロボット復旧支援装置６０と、ロボット１０と、ロボットコントローラ２０と、を備える。
【００６８】
これにより、ロボット１０が異常停止した後に復旧制御を行ったときの復旧成功率を向上するとともに復旧動作の効率化を実現することができる。
【００６９】
以上に本発明の好適な実施の形態を説明したが、上記の構成は例えば以下のように変更することができる。
【００７０】
上記の実施形態では、ロボット復旧支援装置６０は、ロボットコントローラ２０とは別に備えられるものとしたが、ロボット復旧支援装置６０がロボットコントローラ２０の中に組み込まれているものとしてもよい。
【００７１】
上記の実施形態では、動作選択部５３は、復旧のために行わせることが可能なロボット１０の復帰動作が複数ある場合に、復旧のために必要な時間と動作余裕度の双方に基づいて、ロボット１０に実際に行わせる復帰動作を選択するものとした。しかしながら、これに限るものではなく、復旧のために必要な時間及び動作余裕度のうちの何れかに基づいて復帰動作を選択するものとしてもよい。
【００７２】
上記の実施形態では、動作検証部５２は、干渉チェック及び急峻度チェックの両方を行うものとしたが、必ずしもこれに限るものではなく、急峻度チェックは省略することとしてもよい。
【００７３】
上記の実施形態では、エンドエフェクタ非干渉状態となるまで試行動作を反復して行うものとしたが、これに限るものではない。例えばこれに代えて、試行動作を反復する回数を有限（例えば、５回）とし、最大限の回数にわたって試行動作を反復してもエンドエフェクタ１２がワークやワークに組み付けられる部品に異常な状態で接触している状況（噛み込み、拗れ、引っ掛かり等が発生している状況）が解消されない場合には、それ以上の試行動作は行わずに、オペレータにティーチングペンダント４０による動作を促すこととしてもよい。
【００７４】
図１には、１本の多関節アーム１１を有するロボット１０を例示したが、本発明が適用されるロボットは、多関節アームを１本のみ有するロボットに限るものではなく、例えば２本の多関節アームを対で有するロボットであってもよい。また、図１に例示したロボット１０では、エンドエフェクタ１２に、複数の関節を有するアーム（多関節アーム１１）が接続されるものとしたが、これに限るものではなく、関節の数は単数であってもよい。例えば、アームが水平方向にしか回動しないロボットであっても本発明を適用することができる。
【符号の説明】
【００７５】
１０  ロボット
１１  多関節アーム
１２  エンドエフェクタ
２０  ロボットコントローラ
５０  復旧制御部
６０  ロボット復旧支援装置
６３  エンドエフェクタ干渉判定部
【図１】
2018051686.tif 000003
【図２】
2018051686.tif 000004