(57)【要約】【課題】教示者が簡単に制御プログラムの作成を行える技術を提供する。【解決手段】ロボット制御装置の表示制御部は、入力画面として、（ａ）作業を選択するための複数の選択肢を表示する画面と、（ｂ）複数の選択肢から選択された作業に関する作業パラメーターを設定するための画面と、（ｃ）選択された作業の動作フローを編集可能に表示する画面と、を表示する。表示制御部は、選択された作業について設定された作業パラメーターから、力制御動作の動作パラメーターの一部を自動的に設定する。【選択図】図６Ｃ
2019126894.tif 000002
【特許請求の範囲】
【請求項１】
力検出器を備えるロボットの作業の制御プログラムを作成するロボット制御装置であって、
１つ以上の力制御動作を含む作業の動作フローを作成するための入力画面を表示装置に表示させる表示制御部と、
作成された動作フローを制御プログラムに変換する変換部と、
前記制御プログラムを実行して前記ロボットを制御する制御実行部と、
を備え、
前記表示制御部は、前記入力画面として、
（ａ）作業を選択するための複数の選択肢を表示する画面と、
（ｂ）前記複数の選択肢から選択された選択作業に関する作業パラメーターを設定するための画面と、
（ｃ）前記選択作業の動作フローを表示し、前記動作フローを編集する画面と、
を表示させ、
前記表示制御部は、前記選択作業について設定された前記作業パラメーターに基づいて、前記力制御動作の動作パラメーターを設定する、ロボット制御装置。
【請求項２】
請求項１に記載のロボット制御装置であって、
前記動作フローを編集する画面は、動作を示す１つ以上の動作オブジェクトと、条件分岐を示す１つ以上の条件分岐オブジェクトと、がグラフィカルに配置される動作フロー作成領域を含む、ロボット制御装置。
【請求項３】
請求項２に記載のロボット制御装置であって、
前記表示制御部は、前記入力画面として、更に、前記動作フローに含まれる各動作オブジェクトについて、当該動作オブジェクトで示される動作を定義するパラメーターと、前記動作を終了させるための終了条件を定義するパラメーターと、前記動作が成功したか否かを判定するための成否判定条件を定義するパラメーターと、を設定するパラメーター設定領域を表示させる、ロボット制御装置。
【請求項４】
請求項３に記載のロボット制御装置であって、
前記終了条件または前記成否判定条件は、前記力検出器で測定される力の周波数に基づいて判定を実行する条件を含む、ロボット制御装置。
【請求項５】
請求項３又は４に記載のロボット制御装置であって、
前記表示制御部は、前記パラメーター設定領域に設定されたパラメーターの中に許容されないパラメーター値が含まれるときに、前記動作フロー作成領域において、前記許容されないパラメーター値が設定された動作を示す動作オブジェクトにアラームを表示させる、ロボット制御装置。
【請求項６】
請求項３〜５のいずれか一項に記載のロボット制御装置であって、
前記表示制御部は、前記動作フローに含まれる各動作オブジェクトについて前記パラメーター設定領域内に複数のパラメーターを表示し、当該動作オブジェクトに対して１つ以上のパラメーターが設定されると、設定されたパラメーターに応じて不要となった他のパラメーターを設定不可状態に変更する、ロボット制御装置。
【請求項７】
請求項６に記載のロボット制御装置であって、
前記表示制御部は、前記ロボット制御装置に接続されたロボットの種類を識別し、識別されたロボットの種類に応じて不要となったパラメーターを設定不可状態とする、ロボット制御装置。
【請求項８】
請求項６または７に記載のロボット制御装置であって、
前記表示制御部は、前記ロボットに備えられているセンサーの種類を識別し、識別されたセンサーの種類に応じて不要となったパラメーターを設定不可状態とする、ロボット制御装置。
【請求項９】
請求項１〜８のいずれか一項に記載のロボット制御装置であって、
前記表示制御部は、前記力制御動作について、前記ロボット制御装置が外部から一時停止信号を受けたときに前記作業の中断を許可するタイミングである中断許可タイミングを設定するための画面を表示する、ロボット制御装置。
【請求項１０】
力検出器を備えるロボットの作業の制御プログラムを作成するロボット制御装置であって、
プロセッサーを備え、
前記プロセッサーは、
（ａ）１つ以上の力制御動作を含む作業を選択するための複数の選択肢を表示する画面を表示し、
（ｂ）前記複数の選択肢から選択された選択作業に関する作業パラメーターを設定するための画面を表示し、
（ｃ）前記選択作業の動作フローを表示し、前記動作フローを編集する画面を表示し、
（ｄ）前記選択作業について設定された前記作業パラメーターに基づいて、前記力制御動作の動作パラメーターを設定し、
（ｅ）前記動作フローに従い、前記作業パラメーター及び前記動作パラメーターに基づいて前記ロボットに前記選択作業を実行させる、
ロボット制御装置。
【請求項１１】
ロボットシステムであって、
力検出器を備えたロボットと、
前記ロボットの作業の制御プログラムを作成するロボット制御装置と、を備え、
前記ロボット制御装置は、プロセッサーを有し、
前記プロセッサーは、
（ａ）１つ以上の力制御動作を含む作業を選択するための複数の選択肢を表示する画面を表示し、
（ｂ）前記複数の選択肢から選択された選択作業に関する作業パラメーターを設定するための画面を表示し、
（ｃ）前記選択作業の動作フローを表示し、前記動作フローを編集する画面を表示し、
（ｄ）前記選択作業について設定された前記作業パラメーターに基づいて、前記力制御動作の動作パラメーターを設定し、
（ｅ）前記動作フローに従い、前記作業パラメーター及び前記動作パラメーターに基づいて前記ロボットに前記選択作業を実行させる、
ロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御装置及びロボットシステムに関する。
【背景技術】
【０００２】
ティーチングプレイバック方式のロボットでは、教示された結果に基づきロボットの作業を表す制御プログラム（ジョブ）が作成される。ティーチングプレイバック方式とは、教示によって作成された制御プログラムを実行することによって、ロボットを動作させる方式を意味する。制御プログラムを作成する手順は、「ティーチング（教示）」と呼ばれており、従来から様々なティーチング方法が工夫されている。特許文献１では、力検出器を利用した力制御を実行するロボットの制御プログラムを作成するために、ロボットの動作のパラメーターを設定するためのガイダンス情報を教示装置の画面に表示する技術が開示されている。教示者（作業者）は、このガイダンス情報に従ってパラメーターを設定することによりティーチングを行うことが可能である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−２３３８１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、従来技術のようなガイダンス情報を表示した場合にもロボットの制御プログラムを作成する作業にはかなりの熟練を要するので、教示者がより簡単に制御プログラムの作成を行える技術が望まれていた。
【課題を解決するための手段】
【０００５】
本発明は、上述の課題を解決するためになされたものであり、以下の形態（aspect）として実現することが可能である。
【０００６】
（１）本発明の第１の形態によれば、力検出器を備えるロボットの作業の制御プログラムを作成するロボット制御装置が提供される。このロボット制御装置は、１つ以上の力制御動作を含む作業の動作フローを作成するための入力画面を表示装置に表示させる表示制御部と、作成された動作フローを制御プログラムに変換する変換部と、前記制御プログラムを実行して前記ロボットを制御する制御実行部と、を備える。前記表示制御部は、前記入力画面として、（ａ）作業を選択するための複数の選択肢を表示する画面と、（ｂ）前記複数の選択肢から選択された選択作業に関する作業パラメーターを設定するための画面と、（ｃ）前記選択作業の動作フローを表示し、前記動作フローを編集する画面と、を表示させ、前記表示制御部は、前記選択作業について設定された前記作業パラメーターに基づいて、前記力制御動作の動作パラメーターを設定する。
【０００７】
（２）上記ロボット制御装置において、前記動作フローを編集する画面は、動作を示す１つ以上の動作オブジェクトと、条件分岐を示す１つ以上の条件分岐オブジェクトと、がグラフィカルに配置される動作フロー作成領域を含むものとしてもよい。
【０００８】
（３）上記ロボット制御装置において、前記表示制御部は、前記入力画面として、更に、前記動作フローに含まれる各動作オブジェクトについて、当該動作オブジェクトで示される動作を定義するパラメーターと、前記動作を終了させるための終了条件を定義するパラメーターと、前記動作が成功したか否かを判定するための成否判定条件を定義するパラメーターと、を設定するパラメーター設定領域を表示させるものとしてもよい。
【０００９】
（４）上記ロボット制御装置において、前記終了条件または前記成否判定条件は、前記力検出器で測定される力の周波数に基づいて判定を実行する条件を含むものとしてもよい。
【００１０】
（５）上記ロボット制御装置において、前記表示制御部は、前記パラメーター設定領域に設定されたパラメーターの中に許容されないパラメーター値が含まれるときに、前記動作フロー作成領域において、前記許容されないパラメーター値が設定された動作を示す動作オブジェクトにアラームを表示させるものとしてもよい。
【００１１】
（６）上記ロボット制御装置において、前記表示制御部は、前記動作フローに含まれる各動作オブジェクトについて前記パラメーター設定領域内に複数のパラメーターを表示し、当該動作オブジェクトに対して１つ以上のパラメーターが設定されると、設定されたパラメーターに応じて不要となった他のパラメーターを設定不可状態に変更するものとしてもよい。
【００１２】
（７）上記ロボット制御装置において、前記表示制御部は、前記ロボット制御装置に接続されたロボットの種類を識別し、識別されたロボットの種類に応じて不要となったパラメーターを設定不可状態としてもよい。
【００１３】
（８）上記ロボット制御装置において、前記表示制御部は、前記ロボットに備えられているセンサーの種類を識別し、識別されたセンサーの種類に応じて不要となったパラメーターを設定不可状態としてもよい。
【００１４】
（９）上記ロボット制御装置において、前記表示制御部は、前記力制御動作について、前記ロボット制御装置が外部から一時停止信号を受けたときに前記作業の中断を許可するタイミングである中断許可タイミングを設定するための画面を表示するものとしてもよい。
【００１５】
本発明は、上記以外の種々の形態で実現することも可能である。例えば、ロボットとロボット制御装置とを備えたロボットシステム、ロボット制御装置の機能を実現するためのコンピュータープログラム、そのコンピュータープログラムを記録した一時的でない記録媒体（non-transitory storage medium）等の形態で実現することができる。
【図面の簡単な説明】
【００１６】
【図１】ロボットシステムの斜視図。
【図２】複数のプロセッサーを有する制御装置の一例を示す概念図。
【図３】複数のプロセッサーを有する制御装置の他の例を示す概念図。
【図４】制御装置の機能ブロック図。
【図５】ロボット制御プログラムの作成手順のフローチャート。
【図６Ａ】力検出器を用いる作業の制御プログラムの作成手順を示す説明図。
【図６Ｂ】力検出器を用いる作業の制御プログラムの作成手順を示す説明図。
【図６Ｃ】力検出器を用いる作業の制御プログラムの作成手順を示す説明図。
【図６Ｄ】力検出器を用いる作業の制御プログラムの作成手順を示す説明図。
【図６Ｅ】力検出器を用いる作業の制御プログラムの作成手順を示す説明図。
【図６Ｆ】力検出器を用いる作業の制御プログラムの作成手順を示す説明図。
【図７】動作フローを構成する動作の分類と動作オブジェクトの例を示す説明図。
【図８Ａ】接触オブジェクトの動作の概要を示す説明図。
【図８Ｂ】脱力オブジェクトの動作の概要を示す説明図。
【図８Ｃ】押付け探りオブジェクトの動作の概要を示す説明図。
【図８Ｄ】押付け移動オブジェクトの動作の概要を示す説明図。
【図９】力検出器で測定される力の変化の一例を示すグラフ。
【図１０】作業パラメーターと動作パラメーターとの関係の一例を示す説明図。
【図１１Ａ】動作フローに従って作業を実行した結果を示す画面の一例を示す説明図。
【図１１Ｂ】パラメーター調整後の再実行結果を示す画面の一例を示す説明図。
【図１２】動作フローを制御プログラムに変換する際の入力画面の一例を示す説明図。
【図１３Ａ】６軸力センサーに適した動作パラメーターの表示例の説明図。
【図１３Ｂ】３軸力センサーに適した動作パラメーターの表示例の説明図。
【図１４Ａ】６軸力センサーに適した動作パラメーターの入力例の説明図。
【図１４Ｂ】３軸力センサーに適した動作パラメーターの入力例の説明図。
【図１５Ａ】６軸ロボットに適した動作パラメーターの表示例の説明図。
【図１５Ｂ】ＳＣＡＲＡロボットに適した動作パラメーターの表示例の説明図。
【図１６Ａ】６軸ロボットに適した動作パラメーターの表示例の説明図。
【図１６Ｂ】ＳＣＡＲＡロボットに適した動作パラメーターの表示例の説明図。
【図１７Ａ】動作パラメーターの入力禁止例の説明図。
【図１７Ｂ】動作パラメーターの入力禁止例の説明図。
【図１８】作業の中断許可タイミングの設定例を示す説明図。
【図１９Ａ】作業の中断許可タイミングの設定に応じた動作の説明図。
【図１９Ｂ】作業の中断許可タイミングの設定に応じた動作の説明図。
【図１９Ｃ】作業の中断許可タイミングの設定に応じた動作の説明図。
【発明を実施するための形態】
【００１７】
A. 第１実施形態：
図１は、第１実施形態におけるロボットシステムを示す斜視図である。このロボットシステムは、カメラ３０と、搬送装置５０と、ロボット１００と、ロボット制御装置２００と、を備えている。ロボット１００とロボット制御装置２００は、ケーブル又は無線を介して通信可能に接続される。
【００１８】
このロボット１００は、アーム１１０の先端にあるアームフランジ１２０に各種のエンドエフェクターを装着して使用される単腕ロボットである。アーム１１０は６つの関節Ｊ１〜Ｊ６を備える。関節Ｊ２、Ｊ３、Ｊ５は曲げ関節であり、関節Ｊ１、Ｊ４、Ｊ６はねじり関節である。関節Ｊ６の先端にあるアームフランジ１２０には、対象物（ワーク）に対して把持や加工等の作業を行うための各種のエンドエフェクターが装着される。アーム１１０の先端近傍の位置を、ツールセンターポイント（ＴＣＰ）として設定可能である。ＴＣＰは、エンドエフェクターの位置の基準として使用される位置であり、任意の位置に設定可能である。例えば、関節Ｊ６の回転軸上の所定位置をＴＣＰとして設定することができる。なお、本実施形態では６軸ロボットを用いているが、他の関節機構を有するロボットを使用してもよい。
【００１９】
ロボット１００は、アーム１１０の可動範囲内においてエンドエフェクターを任意の位置で任意の姿勢とすることができる。アームフランジ１２０には、力検出器１３０と、エンドエフェクター１４０とが設置されている。本実施形態ではエンドエフェクター１４０はグリッパーであるが、他の任意の種類のエンドエフェクターを使用可能である。力検出器１３０は、エンドエフェクター１４０に作用する３軸の力と、当該３軸まわりに作用するトルクとを計測する６軸センサーである。力検出器１３０は、固有の座標系であるセンサー座標系において互いに直交する３個の検出軸と平行な力の大きさと、当該３個の検出軸まわりのトルクの大きさとを検出する。なお、関節Ｊ６以外の関節Ｊ１〜Ｊ５のいずれか１つ以上に力検出器としての力センサーを備えても良い。なお、力検出器は、制御する方向の力やトルクを検出できればよく、力検出器１３０のように直接的に力やトルクを検出する手段や、ロボットの関節のトルクを検出して間接的に力やトルクを求める手段などを用いてもよい。また、力を制御する方向のみの力やトルクを検出してもよい。
【００２０】
ロボット１００が設置された空間を規定する座標系をロボット座標系と呼ぶ。ロボット座標系は、水平面上において互いに直交するｘ軸とｙ軸と、鉛直上向きを正方向とするｚ軸とによって規定される３次元の直交座標系である。また、ｘ軸周りの回転角をＲｘで表し、ｙ軸周りの回転角をＲｙで表し、ｚ軸周りの回転角をＲｚで表す。ｘ，ｙ，ｚ方向の位置により３次元空間における任意の位置を表現でき、Ｒｘ，Ｒｙ，Ｒｚ方向の回転角により３次元空間における任意の姿勢を表現できる。以下、「位置」と表記した場合、位置と姿勢（position and orientation）も意味し得ることとする。また、「力」と表記した場合、力とトルクも意味し得ることとする。
【００２１】
本実施形態において、搬送装置５０によってワークＷＫ２が搬送される。搬送装置５０は、搬送ローラー５０ａ，５０ｂを備えており、これらの搬送ローラー５０ａ，５０ｂを回転させることによって搬送面を移動させ、搬送面上に載置されたワークＷＫ２を搬送することができる。搬送装置５０の上方には、カメラ３０が設置されている。このカメラ３０は、搬送面上のワークＷＫ２が視野に含まれるように設置されている。ワークＷＫ２の上面には、嵌合孔Ｈ２が形成されている。エンドエフェクター１４０は、ワークＷＫ２の嵌合孔Ｈ２に、エンドエフェクター１４０で把持したワークＷＫ１を嵌合させる作業を行うことができる。なお、この嵌合作業は、搬送面を停止させた状態で行っても良く、或いは、搬送面を移動させつつ実行しても良い。但し、搬送装置５０やカメラ３０は省略可能である。
【００２２】
ロボット制御装置２００は、アーム１１０と、エンドエフェクター１４０と、搬送装置５０と、カメラ３０とを制御する。ロボット制御装置２００の機能は、例えば、プロセッサーとメモリーを備えるコンピューターがコンピュータープログラムを実行することによって実現される。
【００２３】
図２は、複数のプロセッサーによってロボットの制御装置が構成される一例を示す概念図である。この例では、ロボット１００及びその制御装置２００の他に、パーソナルコンピューター４００，４１０と、ＬＡＮなどのネットワーク環境を介して提供されるクラウドサービス５００とが描かれている。パーソナルコンピューター４００，４１０は、それぞれプロセッサーとメモリーとを含んでいる。また、クラウドサービス５００においてもプロセッサーとメモリーを利用可能である。これらの複数のプロセッサーの一部又は全部を利用して、ロボット１００の制御装置を実現することが可能である。
【００２４】
図３は、複数のプロセッサーによってロボットの制御装置が構成される他の例を示す概念図である。この例では、ロボット１００の制御装置２００が、ロボット１００の中に格納されている点が図２と異なる。この例においても、複数のプロセッサーの一部又は全部を利用して、ロボット１００の制御装置を実現することが可能である。
【００２５】
図４は、制御装置２００の機能を示すブロック図である。制御装置２００は、プロセッサー２１０とメモリー２２０と表示装置２６０と入力装置２７０とを備えている。メモリー２２０は、メインメモリーと不揮発性メモリーとを含む。プロセッサー２１０は、メモリー２２０に予め格納されたプログラム命令２２２を実行することにより、ロボット制御プログラム作成部２４０と制御実行部２５０の機能を実現する。ロボット制御プログラム作成部２４０は、表示制御部２４２と変換部２４４を含んでいる。表示制御部２４２は、ロボット１００の作業の動作フローを作成するための入力画面（後述）を表示装置２６０に表示させる。変換部２４４は、入力画面で作成された動作フローを制御プログラム２２４に変換する。変換された制御プログラム２２４は、メモリー２２０に格納される。制御プログラム２２４は、機械語などの低級言語で記述されていてもよく、或いは、ロボット言語などの高級言語で記述されていてもよい。制御実行部２５０は、こうして作成された制御プログラム２２４を実行することによって、作業の動作をロボット１００に実行させる。入力装置２７０は、キーボードやマウスなどの入力デバイスであり、教示者による入力や設定が入力装置２７０を用いて行われる。なお、ロボット制御プログラム作成部２４０と制御実行部２５０の機能の一部又は全部をハ―ドウェア回路で実現しても良い。ロボット制御プログラム作成部２４０の機能については更に後述する。
【００２６】
図５は、ロボット制御プログラムの作成手順を示すフローチャートであり、図６Ａ〜図６Ｆは、その手順の説明図である。図５の処理は、教示者がロボット制御プログラム作成部２４０を実現するアプリケーションプログラムを起動することによって開始される。
【００２７】
図６Ａは、ロボット制御プログラム作成部２４０が起動すると表示制御部２４２が表示装置２６０に表示するウィンドウＷ１の一例を示している。このウィンドウＷ１は、１つ以上の力制御動作を含む作業の動作フローを作成するための入力画面に相当する。ウィンドウＷ１は、以下の領域を含んでいる。
（１）メインビュー領域ＭＶ：後述する動作オブジェクト及び条件分岐オフジェクトの選択肢や、制御プログラムの実行結果などを表示する領域である。
（２）動作フロー作成領域ＦＬ：複数のオブジェクトがグラフィカルに配置された動作フローを編集可能に表示する領域である。なお、動作フローで表される作業を「シーケンス」とも呼ぶ。
（３）シーケンス表示領域ＳＱ：シーケンスのツリー構造を表示する領域である。
（４）パラメーター設定領域ＰＲ：作業全体に関する作業パラメーターや、個々の動作に関する動作パラメーターの設定を行うための領域である。
（５）結果領域ＲＳ：制御プログラムの実行結果を表示する領域である。
（６）実行指示領域ＲＮ：制御プログラムの実行を指示するための領域である。
【００２８】
図６Ａの例では、ウィンドウＷ１内の複数の領域は、異なるフレームとして分割されているが、フレームに分割されていなくても良い。ウィンドウＷ１の左上には、作業の制御プログラムの作成手順の開始を指示するためのボタンＢＴ１が設けられている。教示者がボタンＢＴ１を押すと、図５のステップＳ１１０を開始するための入力画面が表示制御部２４２によって表示装置２６０に表示される。なお、本明細書では、教示者が、作業パラメーターを入力画面のボックスに入力することを「入力する」と言い、教示者によって入力されたパラメーターを受け付けて内部の値を変更することを「設定する」と言う。
【００２９】
図６Ｂは、ステップＳ１１０を開始するための入力画面としてのウィンドウＷ２の一例を示している。このウィンドウＷ２は、複数の選択肢の中から作業を選択するための画面に相当する。ウィンドウＷ２のタイトルは、「新規フォースシーケンス」となっている。「シーケンス」は、動作フローで表される作業を意味し、「フォースシーケンス」は、力制御を利用した動作（「力制御動作」と呼ぶ）を含む作業を意味する。このウィンドウＷ２は、以下の領域を含んでいる。
（１）シーケンス名設定領域Ｆ２１：新たなシーケンスの名称を設定するための領域である。図６Ｂの例では、シーケンス名が「Ｓｅｑ１」と入力されている。
（２）シーケンス説明領域Ｆ２２：新たなシーケンスの概要の説明を入力するための領域である。図６Ｂの例では、「円柱嵌合用のシーケンス」という説明が入力されている。
（３）シーケンスコピー指示領域Ｆ２３：既に作成済みのシーケンスをコピーすることを指定するための領域である。この領域には、例えば、予めメモリー２２０内に登録されている複数のシーケンスのシーケンス名がプルダウンメニューとして表示される。シーケンスコピーを使用する場合には、図６Ｃ〜図６Ｅで説明する設定は不要となり、後述する図６Ｆの画面に移行する。
【００３０】
本実施形態では、シーケンスコピーを使用せずに図６Ｃの手順（Step 2）に進む。すなわち、図６Ｂにおいて、教示者がフィールドＦ２３の入力を行うこと無く「Ｎｅｘｔ」ボタンを押すと、ウィンドウＷ２の表示内容が図６Ｃに変更される。
【００３１】
図６Ｃでは、以下のような複数種類のシーケンスの選択肢が表示されている。
（１）カスタムシーケンスＳｑ１：動作フローが設定されていないシーケンスであり、任意のオブジェクトを組み合わせることによって動作フローが作成されるシーケンスである。
（２）円柱嵌合シーケンスＳｑ２：円柱の第１ワークを、穴を有する第２ワークに嵌合させるシーケンスである。
（３）ネジ締めシーケンスＳｑ３：雄ネジを雌ネジに挿入してネジ締めを行うシーケンスである。
（４）コネクター挿入シーケンスＳｑ４：嵌合する２つのコネクターの一方を他方に挿入するシーケンスである。
【００３２】
図６Ｃに示したシーケンスの複数の選択肢は一例であり、他の任意の種類の選択肢を入力画面に表示してもよい。図６Ｃにおいて、教示者が円柱嵌合シーケンスＳｑ２を選択して「Ｎｅｘｔ」ボタンを押すと、図５のステップＳ１１０からステップＳ１２０に進み、その作業の作業パラメーターを設定するための入力画面が表示される。
【００３３】
図６Ｄは、ステップＳ１２０において作業パラメーターの設定を行う際のウィンドウＷ２の表示内容の一例を示している。このウィンドウＷ２は、円柱嵌合の作業パラメーターとして、作業の開始予定位置と作業の方向を設定するための入力画面として構成されており、以下の領域を含んでいる。
（１）ロボット画像表示領域ＩＭ１：ロボットの画像を表示し、また、作業の開始位置や作業の方向を示すマークを表示する領域である。
（２）開始予定位置設定領域Ｐ１：作業の開始時のＴＣＰの予定位置を設定するための領域である。ここでは、複数の開始予定位置をそれぞれ「ポイント」として登録することが可能であり、また、開始予定位置の許容される位置バラツキを設定可能である。
（３）パラメーター設定領域Ｐ２：作業パラメーターを設定するための領域である。図６Ｄの例では、作業パラメーターとして、座標系としてロボット座標系を使用すること、及び、嵌合方向が−Ｚ方向（鉛直下向き方向）であることが設定されている。なお、作業の方向を指定する座標系としては、ロボット座標系と、ＴＣＴを基準とするＴＣＰ座標系と、ワークを基準とするワーク座標系と、を含む複数の座標系の中の一つを選択可能である。従って、その作業に適した方向を指定することができる。
【００３４】
図６Ｄでの設定の終了後に教示者が「Ｎｅｘｔ」ボタンを押すと、ウィンドウＷ２の表示内容が図６Ｅに変更されて、作業パラメーターの設定が更に行われる。このときのウィンドウＷ２は、円柱嵌合の作業パラメーターとしてのワーク情報を設定するための入力画面として構成されており、以下の領域を含んでいる。
（１）画像表示領域ＩＭ２：ワークの形状や、その寸法の変数を表示する領域である。
（２）ワークパラメーター設定領域Ｆ２４：画像表示領域ＩＭ２に表示された変数の数値を設定するための領域である。
【００３５】
なお、図６Ｄ及び図６Ｅで設定される作業に関する作業パラメーターは、作業に含まれる個々の動作のパラメーターとは異なり、作業全体に関連するパラメーターである。一方、作業に含まれる個々の動作における動作パラメーター（後述）は、個々の動作を個別に規定するパラメーターである。選択した作業について作業パラメーターが設定されると、その作業パラメーターから力制御動作の動作パラメーターの一部が自動的に設定される。この点については後述する。
【００３６】
こうして作業パラメーターの設定が終了し、教示者が図６Ｅの「Ｎｅｘｔ」ボタンを押すと、表示制御部２４２が図５のステップＳ１３０を実行し、作業の動作フローが自動的に作成されて表示装置２６０に表示される。
【００３７】
図６Ｆは、設定された作業の動作フローが第１のウィンドウＷ１に表示された様子を示している。ウィンドウＷ１の各領域には以下のような内容が表示される。
（１）メインビュー領域ＭＶ：
動作フローを構成する動作や条件分岐の分類を示す複数のカテゴリーと、各カテゴリーに属するオブジェクトの名称及びアイコンと、オブジェクトの内容の説明と、オブジェクトの概要を示す図とが表示される。メインビュー領域ＭＶに表示されたオブジェクトは、ドラッグアンドドロップ等の操作によって動作フロー作成領域ＦＬ内の動作フローに任意に追加可能である。
（２）動作フロー作成領域ＦＬ：
複数のオブジェクトＯＢ１〜ＯＢ４がグラフィカルに配置された動作フローが編集可能に表示される。図６Ｆの例では、シーケンスのラベルを示すシーケンスブロックＳＢ１の後に、接触オブジェクトＯＢ１と、条件分岐オブジェクトＯＢ２と、押付け探りオブジェクトＯＢ３と、押付け移動オブジェクトＯＢ４のブロックがこの順に配置されている。各オブジェクトのブロックの中には、そのオブジェクトの名称とアイコンとが表示される。４つのオブジェクトＯＢ１〜ＯＢ４のうち、条件分岐オブジェクトＯＢ２以外の３つのオブジェクトＯＢ１，ＯＢ３，ＯＢ４は、動作オブジェクトである。動作のカテゴリーと動作オブジェクトについては更に後述する。動作フローには、メインビュー領域ＭＶに表示されたオブジェクトを任意に追加可能であり、また、動作フロー中の任意のオブジェクトを削除することも可能である。
（３）シーケンス表示領域ＳＱ：
動作フロー作成領域ＦＬに表示されたシーケンスのツリー構造が表示される。
（４）パラメーター設定領域ＰＲ：
動作フロー作成領域ＦＬに配置されたブロックＳＢ１，ＯＢ１〜ＯＢ４のいずれかが選択されると、選択されたブロックに対するパラメーターが表示される。すなわち、シーケンスブロックＳＢ１が選択されると、シーケンス全体に関する作業パラメーターが表示される。また、オブジェクトのブロックＯＢ１〜ＯＢ４のいずれかが選択されると、そのオブジェクトに関するパラメーターが表示される。図６Ｆの例では、条件分岐ブロックＯＢ２に関するパラメーターが表示されている。これらのパラメーターは、必要に応じて変更される。
【００３８】
図７は、動作フローを構成する際に利用可能な複数の動作オブジェクトの例を示しており、図８Ａ〜図８Ｄは幾つかの動作オブジェクトの動作の概要を示している。複数の動作オブジェクトは、例えば以下の４つに分類可能である。これらは、いずれも力制御を伴う動作である。
【００３９】
＜分類１：接触＞指定方向に移動して、反力を受けたら停止する動作である。
接触動作の分類は、接触オブジェクトを含む。図８Ａに示すように、接触オブジェクトでは、エンドエフェクター１４０で保持したワークＷＫａを指定方向ＤＤに移動させ、力検出器１３０で反力を検出した時にエンドエフェクター１４０を停止させる。なお、図８Ａに示したワークＷＫａ，ＷＫｂは、図１に示したワークＷＫ１，ＷＫ２とは無関係であり、動作の概要を説明するための仮想的なワークである。この点は、後述する図８Ｂ〜図８Ｄも同様である。
【００４０】
＜分類２：倣い＞指定軸の力が０になる状態を維持する動作である。
倣い動作の分類は、以下の３種類の動作オブジェクトを含む。
（ａ）脱力オブジェクト：指定軸の力が０になるように倣う動作である。
図８Ｂに示すように、脱力オブジェクトでは、指定軸の力が０になるように倣う動作が実行される。図８Ｂの例では、ワークＷＫａ，ＷＫｂ間のｚ軸方向の力が０でないときに−ｚ方向にエンドエフェクター１４０を戻すことにより、力検出器１３０で検出されるｚ軸方向の力を０にしている。
（ｂ）倣い移動オブジェクト：指定軸の力を０にするように倣いながら指定軌道を動く動作である。
（ｃ）面合わせオブジェクト：指定方向に角度を倣いながら押し付けて、面と面とを合わせる動作である。
【００４１】
＜分類３：探り＞指定方向の力が０となる位置を探る動作である。
探り動作の分類は、以下の２種類の動作オブジェクトを含む。
（ａ）押付け探りオブジェクト：押付ながら指定された軌跡で探って穴を見つける動作である。
図８Ｃに示すように、押付け探りオブジェクトでは、エンドエフェクター１４０で保持したワークＷＫａを指定方向に押付けながら、指定方向の力がゼロとなる位置を探り、穴Ｈｂの位置で停止させる。探りの軌跡としては、直線軌跡や螺旋軌跡などの複数の候補の中から１つの軌跡を選択することが可能である。
（ｂ）接触探りオブジェクト：接触動作を繰り返して穴を見つける動作である。
【００４２】
＜分類４：押付け＞指定方向に指定の力で押し付ける動作である。
押付け動作の分類は、以下の２種類の動作オブジェクトを含む。
（ａ）押付け（単純押付け）オブジェクト：指定方向に指定の力で押し付ける動作である。この動作では、他の指定軸については「倣う」動作を実行させることも可能である。
（ｂ）押付け移動オブジェクト：指定方向に指定の力で押し付けながら移動する動作である。この動作では、他の指定軸については「倣う」動作を実行させることも可能である。図８Ｄに示すように、押付け移動オブジェクトでは、指定方向ＤＤにエンドエフェクター１４０を移動させて指定の力で押付け、その後、指定の力での押付けを維持しながら（すなわち、倣いながら）指定方向と異なる方向に移動する。図８Ｄの例では、エンドエフェクター１４０で保持したワークＷＫａをワークＷＫｂの穴Ｈｂに挿入する動作が、押付け移動によって実行されている。
【００４３】
図６Ｆに示した４つのオブジェクトＯＢ１〜ＯＢ４のパラメーターとしては、例えば以下のパラメーターを設定できる。特に、動作オブジェクトＯＢ１，ＯＢ３，ＯＢ４に関しては、動作の終了条件を定義するパラメーターと、動作の成否判定条件を定義するパラメーターとを設定可能である。
【００４４】
＜接触オブジェクトＯＢ１のパラメーター＞
（１）動作を定義する動作パラメーターの例
・接触方向：−Ｚ方向（接触方向は、作業パラメーターとして設定された嵌合方向（図６Ｄ）から自動的に設定される。）
・接触予定距離：１０ｍｍ
・動作速度：５ｍｍ／ｓ
・接触時の力制御ゲイン：１．０
（２）終了条件の例
力の閾値：５Ｎ（５Ｎを超えると動作を停止する）
（３）成否判定条件の例
・成否判定条件：タイムアウト時間＝３秒（タイムアウト時間までに終了条件を満たした場合には動作が成功したものと判定し、終了条件を満たさなかった場合には動作が失敗したものと判定する。）
・失敗時動作：シーケンスを継続（動作が失敗したと判定された場合にどのように進めるかを指定する。シーケンスの継続又はシーケンスの終了を指定可能である。）
【００４５】
＜条件分岐オブジェクトＯＢ２のパラメーター＞
（１）条件分岐の判定条件の例
・判定対象オブジェクト：Contact01（判定対象オブジェクトの結果に応じて、条件分岐が実行される。）
・条件分岐の判定が真になる条件：動作の成功（判定対象オフジェクトの動作が成功した場合と、判定対象オフジェクトの動作が失敗した場合のいずれかを指定可能である。）
（２）条件分岐の移行先の例
・判定が真のときの移行先：PressProbe01（動作フロー中の任意の位置を指定可能である。）
・判定が偽のときの移行先：PressMove01（動作フロー中の任意の位置を指定可能である。）
【００４６】
＜押付け探りオブジェクトＯＢ３のパラメーター＞
（１）動作を定義する動作パラメーターの例
・経路：螺旋（探る経路として、螺旋又は直線を指定可能である）
・経路形状：
・・螺旋の直径：５ｍｍ
・・螺旋のピッチ：１ｍｍ
・動作速度：５ｍｍ／ｓ
・押付け方向：−Ｚ方向（押付け方向は、作業パラメーターとして設定された嵌合方向（図６Ｄ）から自動的に設定される。）
・押付力：３Ｎ
・押付け中の力制御ゲイン：２．０
（２）終了条件の例
下記条件Ｃ１とＣ２のアンド条件とする：
・条件Ｃ１：力の閾値（力の閾値を下回ったこと）
・条件Ｃ２：位置移動量の閾値（オブジェクト開始位置から閾値を超えた範囲に移動したこと）
（３）成否判定条件の例
・成否判定条件：経路終了までに終了条件を満たした場合には動作が成功したものと判定し、終了条件を満たさなかった場合には失敗したものと判定する。
・失敗時動作：シーケンスを終了
【００４７】
＜押付け移動オブジェクトＯＢ４のパラメーター＞
（１）動作を定義する動作パラメーターの例
・経路：直線
・移動方向：−Ｚ方向（移動方向は、作業パラメーターとして設定された嵌合方向（図６Ｄ）から自動的に設定される。）
・移動距離：３０ｍｍ
・移動速度：１０ｍｍ／ｓ
・Ｆｘ，Ｆｙ，Ｆｚ方向の力制御：倣い
・Ｆｚ方向の力制御：３Ｎ押付け
・Ｔｘ，Ｔｙ方向の力制御：倣い
・Ｔｚ方向の力制御：オフ
・力制御ゲイン：Ｆｘのゲインは１，Ｆｙのゲインは１，Ｆｚのゲインは２，Ｔｘのゲインは３００，Ｔｙのゲインは３００
（２）終了条件の例
下記条件Ｃ１，Ｃ２のアンド条件とする：
・条件Ｃ１：力の許容値（押付け方向の力の範囲が目標力±許容値の範囲内であること）
・条件Ｃ２：位置移動量の閾値（オブジェクト開始位置から閾値を超えた範囲に移動したこと）
（３）成否判定条件の例
・成否判定条件：経路終了までに終了条件を満たした場合には動作が成功したものと判定し、終了条件を満たさなかった場合には失敗したものと判定する。
・失敗時動作：シーケンスを終了
【００４８】
これらの例から理解できるように、本実施形態では、動作を定義するパラメーターと、動作の終了条件を定義するパラメーターと、動作の成否判定条件を定義するパラメーターとを設定可能なパラメーター設定領域ＰＲを表示可能なので、動作の終了や成功／失敗の判定を含む制御プログラムを容易に作成することが可能である。なお、動作の終了条件を定義するパラメーターと、動作の成否判定条件を定義するパラメーターとのうちの一方又は両方の設定が行えない形態としてもよい。
【００４９】
図６Ｆの例において、４番目の動作オブジェクトＯＢ４に対しては、アラームマークＡＬが表示されている。このアラームマークＡＬは、その動作オブジェクトＯＢ４に関してパラメーター設定領域ＰＲで設定されたパラメーターの中に、許容されないパラメーター値が含まれるときに表示されるマークである。このアラームマークＡＬにマウスポインターを合わせると、不備のあるパラメーターの項目や値が表示されるようにしてもよい。教示者は、このアラームマークＡＬを見た場合には、その動作オブジェクトＯＢ４のパラメーターに不備があることが解るので、パラメーターの不備を修正することが可能である。なお、動作オブジェクトＯＢの中にアラームマークＡＬを表示する代わりに、画面内の他の位置にアラームやエラーを表示してもよい。例えば、シーケンス表示領域ＳＱのツリーにアラームやエラーを表示してもよく、また、同一の動作オブジェクトＯＢに関するアラームやエラーを複数箇所に表示してもよい。また、作業パラメーターに不備がある場合にも、アラームやエラーを表示するようにしてもよい。このような作業パラメーターのアラームやエラーの表示は、例えば、シーケンス表示領域ＳＱのツリーに表示してもよい。
【００５０】
なお、動作パラメーターの終了条件又は成否判定条件は、力検出器１３０で測定される力の周波数に基づいて判定を実行する条件を含むように設定することも可能である。
【００５１】
図９は、力検出器１３０で測定される力Ｆの変化の一例を示している。この例では、動作開始から０．５秒後以降の期間ＰＰにおいて、力Ｆが振動している。このような振動は、周辺装置（例えばコンベアが動作していること）の影響である可能性がある。従って、ロボット１００の動作が周辺装置の影響を受けることを回避するために、制御装置２００が力Ｆの時間変化の周波数分析を実行して、予め指定した周波数のパワースペクトルが閾値以下又は閾値以上になることを検知したことを終了条件又は成否判定条件の一部として使用してもよい。図９の例では、期間ＰＰが経過した後、すなわち、予め指定した周波数のパワースペクトルが閾値以下になった後に、動作が終了する旨の判定、又は動作の成功又は失敗の判定を行うことができる。こうすれば、力検出器１３０で測定される力の周波数に基づいて判定する条件を使用するので、図９のように動作によって振動が発生する場合にも、動作の終了の有無の判定や、動作の成否の判定をより正しく行うことが可能である。
【００５２】
ところで、前述したように、図６Ｃで選択した作業について図６Ｄ，図６Ｅで作業パラメーターが設定されると、その作業パラメーターから力制御動作の動作パラメーターの一部が自動的に設定される。
【００５３】
図１０は、図６Ｄ及び図６Ｅで設定された作業パラメーターと、動作パラメーターとの関係の一例を示す説明図である。ここではウィンドウＷ１（図６Ｆ）のパラメーター設定領域ＰＲに表示される作業パラメーターの一例が示されている。これらの作業パラメーターは、例えば、動作フロー作成領域ＦＬ内のシーケンスブロックＳＢ１を選択することによって、パラメーター設定領域ＰＲに表示される。これらの作業パラメーターは、図６Ｄ及び図６Ｅの入力画面で設定された作業パラメーターである。図１０において、パラメーター設定領域ＰＲ内の特定のパラメーターの関連表示ボタンＢＴをクリックすると、その作業パラメーターによって影響される動作パラメーターを示すダイアログＤＬ１が表示される。この例では、嵌合方向の関連表示ボタンＢＴをクリックすると、その嵌合方向が、接触動作の接触方向と、押付け探り動作の押付け方向と、押付け移動動作の移動方向と、６軸方向の力制御と、に影響することがダイアログＤＬ１内に表示される。教示者は、このようなダイアログＤＬ１から、作業パラメーターと、各動作の動作パラメーターとの関係を確認することが可能である。
【００５４】
作業パラメーターから自動的に設定される力制御動作の動作パラメーターは、力制御の方向に限らず、他の動作パラメーターも作業パラメーターに応じて自動的に設定されるようにしてもよい。例えば、押付け移動動作の押付ながらの移動量（図８Ｄの右端の−Ｚ方向の移動量）は、作業パラメーターのワーク情報（例えば嵌合深さ）から自動的に設定されるようにしてもよい。また、パラメーターの自動設定モードとしては、作業パラメーターのみが変更できる第１モードと、動作パラメーターのみが変更できる第２モードと、作業パラメーターと動作パラメーターび両方が変更できる第３モードと、のいずれか１つのモードを選択できるようにしてもよい。こうすれば、初心者は作業パラメーターのみを使って作業シーケンスを作成でき、一方、熟練者は動作パラメーターを使ってさらに細かい修正を行うことが可能である。作業パラメーターと動作パラメーターに整合性が無い場合、例えば、図１０の例で嵌合方向が−Ｚ方向であるのに接触方向が−Ｘ方向に設定されている場合には、作業パラメーターが正しいものとして動作パラメーターが修正されることが好ましい。
【００５５】
図６Ｆに示したように作業の動作フローが作成されると、この動作フローに従ってロボット１００に作業を実行させることが可能である。例えば、図６Ｆの実行指示領域ＲＮ内にある「実行」ボタンを教示者が押すと、変換部２４４（図４）が動作フローを制御プログラムに変換し、制御実行部２５０がその制御プログラムを実行することによってロボット１００に作業を実行させる。これは、制御プログラムの試行に相当する。
【００５６】
図１１Ａは、動作フローに従って作業を実行した結果を示す画面の一例を示している。この例では、動作フロー作成領域ＦＬの３番目の動作オブジェクトＯＢ３に実行停止マークＳＭが設定されている。この実行停止マークＳＭは、その動作オブジェクトＯＢ３で実行を一時停止することを意味している。実行停止マークＳＭは、例えば、各動作オブジェクトのコンテキストメニューを使用して設定できる。コンテキストメニューは、マウスの右クリックで表示されるメニューである。
【００５７】
メインビュー領域ＭＶ内には、動作フローの実行時に力検出器１３０で検出された複数の力のうちから、Ｘ軸方向の力ＦｘとＸ軸回りのトルクＴｘの時間変化が表示されている。なお、メインビュー領域ＭＶには、力検出器１３０で検出された複数の力の中の任意の１つ以上の力の時間変化を選択して表示することが可能である。また、ＴＣＰの実測位置の時間変化や、ＴＣＰの目標位置と実測位置の偏差の時間変化をメインビュー領域ＭＶに表示することも可能である。メインビュー領域ＭＶ内の結果表示の期間は、動作フロー中の任意の１つの動作オブジェクトの動作期間とすることも可能であり、また、実行開始から停止までの全期間とすることも可能である。例えば、動作フロー作成領域ＦＬ内で任意の動作オブジェクトを選択すると、その動作オブジェクトの動作期間の実行結果が表示される。また、シーケンスブロックＳＢ１を選択すると、実行開始から停止までの全期間の結果が表示される。なお、メインビュー領域ＭＶ内の結果表示の期間は、複数の連続する動作オブジェクトに亘る動作期間としてもよい。結果領域ＲＳにも、制御プログラムの実行結果の一部の情報が表示される。例えば、任意の動作オブジェクトについて、動作の終了状態（成功又は失敗）や、動作に要した時間、動作終了時の力、及び、動作終了時の位置などを結果領域ＲＳ内に表示可能である。なお、メインビュー領域ＭＶには、図１１Ａに示したもの以外の種々の結果を表示できるようにしてもよい。例えば、ロボットの速度や各関節の角度などのロボットに関わる情報を表示してもよい。
【００５８】
ウィンドウＷ１は、更に、実行した結果のデータを所望の場所に保存するためのフィールドやボタンを有するように構成されていることが好ましい。実行結果のデータを保存できるようにすれば、後述する調整において、過去のデータと見比べることが可能となる。なお、データの保存先は、ロボット制御装置２００内でもよく、ロボット制御装置２００に接続されたコンピューターやクラウドでもよい。また、データ形式は、データベースでもよく、ファイル形式でもよい。
【００５９】
教示者は、制御プログラムの実行結果を観察し、必要に応じて個々のオブジェクトのパラメーターを調整することが可能である。この調整は、動作フロー作成領域ＦＬ内のオブジェクトＯＢ１〜ＯＢ４の任意の１つを選択した状態において、パラメーター設定領域ＰＲに表示されるオブジェクトのパラメーターを変更することによって行うことができる。具体例として、例えば接触動作において接触したときの力が過度に大きな場合には、接触動作における速度を低下させるように接触オブジェクトのパラメーターが調整される。
【００６０】
図１１Ｂは、パラメーターの調整後に制御プログラムを再度実行した結果の例を示している。この例では、調整後の力Ｆnew，Ｔnewのピークが、調整前の力Ｆold，Ｔoldのピークに比べて小さくなっている。このように、このウィンドウＷ１では、動作フロー作成領域ＦＬ内で生成された動作フローのオブジェクトのパラメーターの調整と、その動作フロ―に従った作業の試行とを行うことができるので、適切に動作する動作フローを容易に作成できる。但し、このような調整と試行の工程は省略してもよい。なお、図１１Ａで説明したように、過去の実行結果のデータを保存しておいた場合には、過去のデータを表示することも可能となる。
【００６１】
こうして動作フローが完成すると、図５のステップＳ１４０において、教示者の指示に応じて変換部２４４が動作フローを制御プログラムに変換する。この指示は、例えば、動作フロー作成領域ＦＬのコンテキストメニューから「制御プログラムの作成」を選択することによって行うことができる。なお、動作フローから制御プログラムへの変換と実行には、以下の３種類の方法いずれかを選択的に行えることが好ましい。
（１）動作フローを低級言語の制御プログラムに変換する。教示者は、変換された低級言語の制御プログラムを、自分で別個に記述した高級言語の制御プログラムから呼び出して実行する。この場合には、教示者が作業シーケンスを作成した後に、教示者が別個に記述する高級言語の制御プログラムの中で、例えば"FGRun シーケンス名"と記述することによって、そのシーケンスの制御プログラムが呼び出されて実行される。これは、最も基本的な実行方法である。
（２）動作フローを高級言語の制御プログラムに変換して、それを実行する。
（３）動作フローを低級言語の制御プログラムに変換して、それを直接実行する。
以下の説明では、主として上記（２）の方法で実行する場合を説明する。
【００６２】
図１２は、教示者の指示に応じて動作フローを制御プログラムに変換する際に表示される入力画面としてのウィンドウＷ３の一例を示している。このウィンドウＷ３は、制御プログラムに変換するシーケンス（すなわち動作フロー）を選択するシーケンス選択領域Ｆ３１と、制御プログラムのファイル名を設定するプログラムファイル名設定領域Ｆ３２とを含んでいる。なお、シーケンス選択領域Ｆ３１は省略してもよい。なお、ウィンドウＷ３は、パラメーターの保存先などの情報を指定する領域を有するように構成されていてもよい。ウィンドウＷ３において「実行」ボタンを押すと、変換部２４４によって動作フローが制御プログラムに変換され、その制御プログラムがメモリー２２０内に格納される。
【００６３】
図５のステップＳ１５０では、ステップＳ１４０で作成された制御プログラムに従って、ロボット制御装置２００がロボットを制御し、ロボットに作業を実行させる。この作業は、製造ラインでロボット１００の動作を確認する確認作業や、或いは、製造ラインで製品を製造するための本作業として実行可能である。
【００６４】
以上のように、第１実施形態では、力制御動作を含む作業を複数の選択肢（図６Ｃ）の中から選択すると、選択された作業の作業パラメーターを設定するための画面（図６Ｄ，図６Ｅ）や、作業の動作フローを編集可能に表示する画面（図６Ｆ）が表示されるので、作業の動作フローを容易に生成することができる。また、選択した作業について設定された作業パラメーターから力制御動作の動作パラメーターの一部が自動的に設定されるので、教示者が簡単に制御プログラムの作成を行うことが可能である。
【００６５】
B. 他の実施形態：
他の実施形態として、以下の形態を順次説明する。
（１）動作パラメーターの表示及び入力に関する制限
（２）作業の中断許可タイミングの設定
これらの形態は、上述した第１実施形態に任意に適用可能である。
【００６６】
図１３Ａは、力検出器１３０として６軸力センサーを使用する場合における動作パラメーターの表示例を示している。ここでは、押付け動作に対して、パラメーター設定領域ＰＲ（図６Ｆ）の一部に力制御の方向とその設定値が表示される例が示されている。６軸力センサーを使用する場合には、６軸の力（３軸の力Ｆｘ，Ｆｙ，Ｆｚと３軸回りのトルクＴｘ，Ｔｙ，Ｔｚ）のすべてについて、どのような力制御を実行するかを指定することが可能である。
【００６７】
図１３Ｂは、力検出器１３０として３軸力センサーを使用する場合における動作パラメーターの表示例を示している。３軸力センサーを使用する場合には、３軸センサーで検出できる力Ｆｘ，Ｆｙ，Ｆｚについて、どのような力制御を実行するかを指定することが可能である。一方、３軸センサーで検出できない力（３軸回りのトルクＴｘ，Ｔｙ，Ｔｚ）については、それらのパラメーターを設定できない設定不可状態とすることが好ましい。パラメーターを設定不可状態とする方法の一つは、図１３Ｂに示すように、そのパラメーターを入力画面に表示しない方法である。他の方法としては、パラメーター設定領域ＰＲ内において、パラメーターをグレーアウト状態として、その設定値を変更できないようにする方法も採用可能である。
【００６８】
図１４Ａは、力検出器１３０として６軸力センサーを使用する場合における動作パラメーターの他の表示例を示している。ここでは、接触動作に対して、パラメーター設定領域ＰＲの一部に接触方向（力制御の方向）とその設定値が表示される例が示されている。６軸力センサーを使用する場合には、６軸の力の方向Ｘ，Ｙ，Ｚ，Ｕ，Ｖ，Ｗのうちの任意の１つの方向を選択することができ、また、各方向についてプラス方向とマイナス方向のいずれかを選択することができる。なお、方向Ｕ，Ｖ，Ｗは、トルクＴｘ，Ｔｙ，Ｔｚの方向を意味している。
【００６９】
図１４Ｂは、力検出器１３０として３軸力センサーを使用する場合における動作パラメーターの他の表示例を示している。３軸力センサーを使用する場合には、３軸センサーで検出できる力の方向Ｘ，Ｙ，Ｚのうちの任意の１つの方向を選択することができ、また、各方向についてプラス方向とマイナス方向のいずれかを選択することができる。一方、３軸センサーで検出できない力（３軸回りのトルクＴｘ，Ｔｙ，Ｔｚ）については、それらのパラメーターを設定できない設定不可状態とすることが好ましい。
【００７０】
図１５Ａは、６軸ロボットに適した動作パラメーターの表示例の説明図である。ここでは、押付け動作に対して、パラメーター設定領域ＰＲ（図６Ｆ）の一部に力制御の方向とその設定値が表示される例が示されている。６軸ロボットを使用する場合には、６軸の力のすべてについて、どのような力制御を実行するかを指定することが可能である。
【００７１】
図１５Ｂは、４軸ロボットであるＳＣＡＲＡロボットに適した動作パラメーターの表示例を示している。ＳＣＡＲＡロボットを使用する場合には、ＳＣＡＲＡロボットで制御できる４軸の方向について、どのような力制御を実行するかを指定することが可能である。一方、ＳＣＡＲＡロボットで制御できない方向については、それらのパラメーターを設定できない設定不可状態とすることが好ましい。
【００７２】
図１６Ａは、６軸ロボットに適した動作パラメーターの他の表示例を示している。ここでは、接触動作に対して、パラメーター設定領域ＰＲの一部に接触方向（力制御の方向）とその設定値が表示される例が示されている。６軸ロボットを使用する場合には、６軸の力の方向Ｘ，Ｙ，Ｚ，Ｕ，Ｖ，Ｗのうちの任意の１つの方向を選択することができ、また、各方向についてプラス方向とマイナス方向のいずれかを選択することができる。
【００７３】
図１６Ｂは、４軸のＳＣＡＲＡロボットに適した動作パラメーターの他の表示例を示している。ＳＣＡＲＡロボットを使用する場合には、ＳＣＡＲＡロボットで制御できる４軸の力の方向Ｘ，Ｙ，Ｚ．Ｕのうちの任意の１つの方向を選択することができ、また、各方向についてプラス方向とマイナス方向のいずれかを選択することができる。一方、ＳＣＡＲＡロボットで制御できない方向については、それらのパラメーターを設定できない設定不可状態とすることが好ましい。
【００７４】
以上の図１３Ａ〜図１６Ｂで説明したように、ロボット制御装置２００に接続されたロボットの種類とセンサー（力検出器）の種類とに応じて不要となったパラメーターを設定不可状態とするようにすれば、教示者が必要なパラメーターのみを容易に設定することが可能である。ロボットの種類に応じたパラメーターの表示及び入力に関する制限と、力検出器の種類に応じたパラメーターの表示及び入力に関する制限が異なる場合には、より厳しい方の制限が適用される。例えば、６軸ロボットに３軸の力検出器が設けられている場合には、３軸の力検出器による制限の方が厳しいので、その制限が適用される。なお、センサーの種類としては、力検出器１３０に限らず、カメラ３０の種類（例えば単眼カメラとステレオカメラのいずれか）などの他のセンサーの種類を使用してもよい。
【００７５】
図１７Ａは、動作パラメーターの入力禁止の一例を示す説明図である。この例では、押付け探り動作（図７参照）のパラメーターとして、パラメーター設定領域ＰＲ内に、「探る経路」の形状と、その寸法とが表示されている。「探る経路」の形状は螺旋である旨が設定され、その寸法として螺旋の直径とピッチの値が設定されている。また、パラメーター設定領域ＰＲ内に存在するパラメーターのうちで、「探る経路」が螺旋でない場合のパラメーター（Ｘ，Ｙ，Ｚ方向の移動距離）については、設定不可状態（ここではグレーアウト状態）となっている。
【００７６】
図１７Ｂは、動作パラメーターの入力禁止の他の例を示す説明図である。この例では、「探る経路」の形状が直線である旨が設定され、その寸法としてＸ，Ｙ，Ｚ方向の移動距離の値が設定されている。また、「探る経路」が直線でない場合のパラメーター（螺旋の直径とピッチ）については、設定不可状態（グレーアウト状態）となっている。
【００７７】
これらの図１７Ａ及び図１７Ｂに示すように、或る動作オブジェクトに対して設定されたパラメーターに応じて不要となったパラメーターが存在するときに、そのパラメーターを設定不可状態に変更するようにすれば、教示者が必要なパラメーターのみを容易に設定することが可能である。なお、或る動作パラメーターに応じて他の動作パラメーターを設定不可状態とする他に、或る作業パラメーターに応じて他の作業パラメーターを設定不可状態してもよく、あるいは、或る作業パラメーターに応じて特定の動作パラメーターを設定不可状態としてもよい。
【００７８】
図１８は、更に他の実施形態における作業の中断許可タイミングの設定例を示す説明図である。図１８の左上のパラメーター設定領域ＰＲには、作業パラメーターとして、「動作中の中断」と「動作後の中断」という２つの中断許可タイミングが表示されている。例えば、これらの２つの中断許可タイミングのいずれかの関連表示ボタンＢＴをクリックすると、中断許可タイミング設定ダイアログＤＬ３が開き、作業中の各動作に関する中断許可タイミングの設定値が表示される。各動作に関する中断許可タイミングは、このダイアログＤＬ３で設定しても良く、或いは、動作フロー作成領域ＦＬ（図６Ｆ）において１つの動作オブジェクトを選択し、パラメーター設定領域ＰＲ内でその動作の動作パラメーターとして設定してもよい。
【００７９】
「動作中の中断」の許可及び不許可、及び、「動作後の中断」の許可及び不許可は、以下の設定Ｓ１ｅ，Ｓ１ｎ，Ｓ２ｅ，Ｓ２ｎをそれぞれ意味する。
・設定Ｓ１ｅ：「動作中の中断」の許可
その動作の実行中にロボット制御装置２００が一時停止信号を受けた時に、直ちに作業を中断することを意味する。一時停止信号は、ロボット１００の作業の一時停止を要求する信号であり、例えば、安全扉が開いたことを検知するセンサーからの信号や、人の接近を検知したことを検知するセンサーからの信号などである。
・設定Ｓ１ｎ：「動作中の中断」の不許可
その動作の実行中にロボット制御装置２００が一時停止信号を受けても直ちに作業を中断せず、その後に「動作中の中断」又は「動作後の中断」が許可と設定されているタイミングまで作業を継続することを意味する。
・設定Ｓ２ｅ：「動作後の中断」の許可
その動作の実行中にロボット制御装置２００が一時停止信号を受けた時に、その動作の終了時に作業を中断することを意味する。
・設定Ｓ２ｎ：「動作後の中断」の不許可
その動作の実行中にロボット制御装置２００が一時停止信号を受けてもその動作の終了時に作業を中断せず、その後に「動作中の中断」又は「動作後の中断」が許可と設定されているタイミングまで作業を継続することを意味する。
【００８０】
なお、或る動作（「特定動作」と呼ぶ）において「動作中の中断」が許可に設定されており、その特定動作の前の動作（「先行動作」と呼ぶ）において「動作中の中断」と「動作後の中断」が不許可に設定されている場合には、先行動作の実行中に一時停止信号が発生すると、特定動作の開始時に作業が中断される。
【００８１】
図１８の例では、４つのオブジェクトＯＢ１〜ＯＢ４について、それぞれ中断許可タイミングが許可又は不許可に設定されている。このような中断許可タイミングは、作業中に一時停止信号が発生したときに、作業中の動作の内容に適した適切なタイミングで作業を中断させるために設定される。例えば、研磨動作を行っている途中で一時停止信号を受けたときに、研磨動作の途中で作業を中断してしまうと、研磨のムラが発生してしまうという不具合がある。そこで、例えば研磨を実行する動作（押付け移動動作）に関しては「動作中の中断」を不許可に設定し、「動作後の中断」を許可に設定すれば、研磨動作の終了時まで作業が中断しないので、研磨のムラなどの不良が発生してしまうことを防止できる。研磨動作のように、力制御を利用した動作に関しては、その動作の途中で作業を中断すると不具合が発生する可能性がある場合があるので、中断許可タイミングを適切に設定できることが好ましい。このような中断許可タイミングの設定は、ロボットの制御プログラムを直接入力する場合に設定することは難しいのに対して、１つ以上の動作オブジェクトを含む動作フロー（シーケンス）を用いて作業の内容を設定する場合には比較的容易に行うことができるという利点がある。
【００８２】
作業によっては、複数の動作を実行している期間は作業を中断したくない場合もあり得る。例えば、研磨を複数の動作に分けて実行するように、研磨用の動作オブジェクト（例えば押付け移動オブジェクト）を動作フローに複数個配置する場合が考えられる。それらの複数の動作オブジェクトの動作が全て終了するまで作業を中断したく無い場合には、研磨用の複数の動作オブジェクトのうち、最後の動作オブジェクトを除く他の動作オブジェクトに関しては「動作中の中断」と「動作後の中断」をいずれも不許可と設定し、最後の動作オブジェクトに関しては「動作中の中断」を不許可、「動作後の中断」を許可と設定する。こうすれば、研磨の途中で作業を中断することによって、製品不良が発生してしまう可能性を低減できる。
【００８３】
なお、中断許可タイミングとしては、「動作中の中断」と「動作後の中断」の両方を設定できるものとしてもよく、或いは、これらの一方のみを設定できるものとしてもよい。
【００８４】
図１９Ａは、「動作中の中断」と「動作後の中断」の両方を設定できる形態における設定例を示している。この形態における作業の中断の判断は、上述した設定Ｓ１ｅ，Ｓ１ｎ，Ｓ２ｅ，Ｓ２ｎの内容と同じである。なお、動作フロー中の最後の動作Ｄに関する中断許可タイミングの設定がいずれも不許可である場合に、その動作Ｄ中に一時停止信号を受信したときには、最後の動作Ｄの終了時にロボット１００の動作を停止することが好ましい。
【００８５】
図１９Ｂは、「動作中の中断」のみを設定できる形態における設定例を示している。この形態における作業の中断の判断は、上述した設定Ｓ１ｅ，Ｓ１ｎの内容と同じである。
【００８６】
図１９Ｃは、「動作後の中断」のみを設定できる形態における設定例を示している。この形態における作業の中断の判断は、上述した設定Ｓ２ｅ，Ｓ２ｎの内容と同じである。
【００８７】
以上のように、作業中の力制御動作について中断許可タイミングを設定できるようにすれば、ロボット制御装置２００が外部から一時停止信号を受けたときに、作業の中断を好ましいタイミングで実行することができる。この結果、製品不良などの不具合が発生する可能性を低減することが可能な制御プログラムを容易に作成できる。
【００８８】
なお、作業に関してタイムアウトを設定できるように画面が構成されていてもよい。例えば、作業を継続する場合にも、予め指定されたタイムアウト時間以上に亘って作業が継続した場合には、その時点で作業を中断するようにしてもよい。
【００８９】
本発明は、上述の実施形態や実施例、変形例に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態、実施例、変形例中の技術的特徴は、上述の課題の一部又は全部を解決するために、あるいは、上述の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
【符号の説明】
【００９０】
３０…カメラ、５０…搬送装置、５０ａ，５０ｂ…搬送ローラー、１００…ロボット、１１０…アーム、１２０…アームフランジ、１３０…力検出器、１４０…エンドエフェクター、２００…ロボット制御装置、２１０…プロセッサー、２２０…メモリー、２２２…プログラム命令、２２４…制御プログラム、２４０…ロボット制御プログラム作成部、２４２…表示制御部、２４４…変換部、２５０…制御実行部、２６０…表示装置、２７０…入力装置、４００…パーソナルコンピューター、５００…クラウドサービス
【図１】
2019126894.tif 000003
【図２】
2019126894.tif 000004
【図３】
2019126894.tif 000005
【図４】
2019126894.tif 000006
【図５】
2019126894.tif 000007
【図６Ａ】
2019126894.tif 000008
【図６Ｂ】
2019126894.tif 000009
【図６Ｃ】
2019126894.tif 000010
【図６Ｄ】
2019126894.tif 000011
【図６Ｅ】
2019126894.tif 000012
【図６Ｆ】
2019126894.tif 000013
【図７】
2019126894.tif 000014
【図８Ａ】
2019126894.tif 000015
【図８Ｂ】
2019126894.tif 000016
【図８Ｃ】
2019126894.tif 000017
【図８Ｄ】
2019126894.tif 000018
【図９】
2019126894.tif 000019
【図１０】
2019126894.tif 000020
【図１１Ａ】
2019126894.tif 000021
【図１１Ｂ】
2019126894.tif 000022
【図１２】
2019126894.tif 000023
【図１３Ａ】
2019126894.tif 000024
【図１３Ｂ】
2019126894.tif 000025
【図１４Ａ】
2019126894.tif 000026
【図１４Ｂ】
2019126894.tif 000027
【図１５Ａ】
2019126894.tif 000028
【図１５Ｂ】
2019126894.tif 000029
【図１６Ａ】
2019126894.tif 000030
【図１６Ｂ】
2019126894.tif 000031
【図１７Ａ】
2019126894.tif 000032
【図１７Ｂ】
2019126894.tif 000033
【図１８】
2019126894.tif 000034
【図１９Ａ】
2019126894.tif 000035
【図１９Ｂ】
2019126894.tif 000036
【図１９Ｃ】
2019126894.tif 000037