(57)【要約】      （修正有）【課題】高度なプログラミング技術を有さないユーザーでも容易にプログラミング可能な制御装置を提供する。【解決手段】この制御装置は、複数の動作を表す画像の中から１以上の動作を表す画像を選択し、画面上で配列することによりロボットの動作シーケンスを編集することができる第１編集画面と、前記第１編集画面を介して編集された動作シーケンスを変換して得られる、プログラミング言語で表現された前記動作シーケンスが表示され、前記プログラミング言語で表現された前記動作シーケンスを編集することができる第２編集画面と、を表示部に表示することができる、表示制御部と、前記第１編集画面と前記第２編集画面の少なくとも一方を介して編集された動作シーケンスに基づいて、ロボットを制御する動作制御部と、を備える。【選択図】図７
2019177422.tif 000002
【特許請求の範囲】
【請求項１】
ロボットを制御する制御装置であって、
複数の動作を表す画像の中から１以上の動作を表す画像を選択し、画面上で配列することによりロボットの動作シーケンスを編集することができる第１編集画面と、前記第１編集画面を介して編集された動作シーケンスを変換して得られる、プログラミング言語で表現された前記動作シーケンスが表示され、前記プログラミング言語で表現された前記動作シーケンスを編集することができる第２編集画面と、を表示部に表示することができる、表示制御部と、
前記第１編集画面と前記第２編集画面の少なくとも一方を介して編集された動作シーケンスに基づいて、ロボットを制御する動作制御部と、を備える、制御装置。
【請求項２】
請求項１記載の制御装置であって、
前記表示制御部は、さらに、１以上の動作を含む動作群を選択し、画面上で配列することにより、ロボットの動作シーケンスを編集することができる、前記第１編集画面を前記表示部に表示することができる、制御装置。
【請求項３】
請求項２記載の制御装置であって、
前記表示制御部は、
前記第１編集画面として、前記動作のプロパティーを設定することができ、かつ、前記動作群のプロパティーを設定することができる、前記第１編集画面を、前記表示部に表示することができ、
前記動作群に対して設定されたプロパティーに応じて、前記動作群に含まれる前記動作のプロパティーを、自動的に設定する、制御装置。
【請求項４】
請求項１または２記載の制御装置であって、
前記表示制御部は、前記動作のプロパティーを設定することができる前記第１編集画面を、前記表示部に表示することができ、
前記制御装置は、さらに、前記第１編集画面を介して編集された動作シーケンス、および前記第１編集画面を介して設定された前記プロパティーの情報を含むプログラムファイルを作成する、ファイル作成部を備える、制御装置。
【請求項５】
請求項４記載の制御装置であって、
前記表示制御部は、第１記憶部に格納されており、前記動作と、前記第１編集画面において前記動作を表す画像と、を対応づけている第１情報を参照して、前記画像を含む前記第１編集画面を前記表示部に表示し、
前記ファイル作成部は、第２記憶部に格納されており、前記動作と、前記第２編集画面において前記動作を表す前記プログラミング言語による表現と、を対応づけている第２情報を参照して、前記第１編集画面を介して編集された動作シーケンスを変換して、前記プログラムファイルを作成し、
前記表示制御部は、前記プログラムファイルに基づいて、前記動作を表す前記プログラミング言語による表現を含む前記第２編集画面を、前記表示部に表示する、制御装置。
【請求項６】
請求項１から５のいずれか１項に記載の制御装置によって制御されるロボット。
【請求項７】
請求項１から５のいずれか１項に記載の制御装置と、
前記制御装置によって制御されるロボットと、
を備えるロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットのプログラミングを行うための技術に関するものである。
【背景技術】
【０００２】
従来、ロボットのプログラミングを行うためのユーザーインターフェイスが存在する。たとえば、特許文献１においては、特別な技術を有さないユーザーによってもプログラミングが可能なユーザーインターフェイスが提供されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許公開ＵＳ２０１３／０２５５４２６Ａ１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１においては、高度なプログラミング技術を有するユーザーであっても、高度なプログラミング技術を有さないユーザーと同様のユーザーインターフェイスでプログラミングを行わなければならない。このため、高度なプログラミング技術を有するユーザーであっても、詳細に、ロボットの処理内容を指定して、プログラミングを行うことが困難だった。
【課題を解決するための手段】
【０００５】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【０００６】
ロボットを制御する制御装置が提供される。この制御装置は：複数の動作を表す画像の中から１以上の動作を表す画像を選択し、画面上で配列することによりロボットの動作シーケンスを編集することができる第１編集画面と、前記第１編集画面を介して編集された動作シーケンスを変換して得られる、プログラミング言語で表現された前記動作シーケンスが表示され、前記プログラミング言語で表現された前記動作シーケンスを編集することができる第２編集画面と、を表示部に表示することができる、表示制御部と；前記第１編集画面と前記第２編集画面の少なくとも一方を介して編集された動作シーケンスに基づいて、ロボットを制御する動作制御部と、を備える。
【図面の簡単な説明】
【０００７】
【図１】本実施形態のロボットシステム１を模式的に示す説明図である。
【図２】ロボットシステム１と処理装置８００と搬送装置７５０と警告灯９００の関係を示す説明図である。
【図３】ワークステーションＷＳにおける処理のフローを示すフローチャートである。
【図４】図３のステップＳ１００における設定装置６００およびロボット制御装置３００の処理を示すブロック図である。
【図５】ＧＵＩ情報３０３ｇとプログラム生成情報３０３ｐの機能を示す図である。
【図６】図３のステップＳ１１０において、動作シーケンスを構成する動作をユーザーが選択する前の状態の設定装置６００のディスプレイ６０２の表示を示す図である。
【図７】図３のステップＳ１１０において、動作シーケンスを構成する動作をユーザーが選択した後の状態の設定装置６００のディスプレイ６０２の表示を示す図である。
【図８】図７の第１編集画面Ｄｅ１２において、「基本設定」の表示Ｍ０１１に代えて、信号出力」の表示Ｍ０６１が選択された場合の第１編集画面Ｄｅ１３を示す図である。
【図９】図７の第１編集画面Ｄｅ１２において、「基本設定」の表示Ｍ０１１に代えて、「待機する」の表示Ｍ０８１が選択された場合の第１編集画面Ｄｅ１４を示す図である。
【図１０】「アプリケーション」と、「ジョブ」と、「メソッド」と、「プロパティー」と、「コンテナ」と、の関係を例示する説明図である。
【図１１】プリミティブメソッドだけでジョブを構成した例である。
【図１２】プリセットコンテナだけでジョブを構成した例である。
【図１３】第２編集画面Ｄｅ２１を示す。
【図１４】第２編集画面Ｄｅ２２を示す。
【図１５】ロボット１００の制御点を定めるパラメーターの値を決定する際のユーザーインターフェイス画面である。
【図１６】カメラ７００によって取得された画像に基づいて認識された位置Ｐ１から、同様に認識された位置Ｐ２に移動する際の、中継点Ｐ３〜Ｐ５を示す説明図である。
【図１７】図６の第１編集画面Ｄｅ１１において、コンテナの１種である「Ｖｉｓｉｏｎ」Ｃ０１が選択された場合の設定装置６００のディスプレイ６０２の表示を示す図である。
【図１８】図１７の状態から、「中継点」ＲＰ０５が追加された状態の設定装置６００のディスプレイ６０２の表示を示す図である。
【図１９】図１８の状態において、「中継点」ＲＰ０４が選択された場合の設定装置６００のディスプレイ６０２の表示を示す図である。
【図２０】図３のステップＳ１１０において、動作シーケンスを構成する動作をユーザーが選択した後の状態の設定装置６００のディスプレイ６０２の表示を示す図である。
【図２１】図２０に示す第１編集画面Ｄｅ１Ａにおいて、フローチャート表示ボタンＢＦが押された場合に示されるディスプレイ６０２の表示を示す図である。
【図２２】複数のプロセッサーによってロボットの制御装置が構成される一例を示す概念図である。
【発明を実施するための形態】
【０００８】
Ａ．第１実施形態：
Ａ１．ロボットシステムの構成：
図１は、本実施形態のロボットシステム１を模式的に示す説明図である。本実施形態のロボットシステム１は、ロボット１００と、エンドエフェクター２００と、カメラ７００と、設定装置６００と、を備える。
【０００９】
ロボット１００は、ロボット制御装置３００と、４個の関節Ｊ１〜Ｊ４を備えたアーム１１０と、を有する４軸ロボットである。関節Ｊ１，Ｊ２，Ｊ４は、ねじり関節である。関節Ｊ３は、直動関節である。アーム１１０を構成する関節と関節の間の構成要素を、本明細書において「アーム要素」と呼ぶ。図１においては、アーム１１０に含まれる複数のアーム要素のうち、関節Ｊ１と関節Ｊ２の間のアーム要素１１０ａ、関節Ｊ２と関節Ｊ３の間のアーム要素１１０ｂ、およびアーム１１０の先端を構成するアーム要素１１０ｄについて、符号を付して示す。
【００１０】
ロボット１００は、４個の関節Ｊ１〜Ｊ４をそれぞれサーボモーターで回転または直進させることにより、アーム１１０の先端部に取りつけられたエンドエフェクター２００を、３次元空間中の指定された位置に指定された姿勢で配することができる。なお、３次元空間におけるエンドエフェクター２００の位置を代表する地点を、「制御点」またはＴＣＰ（Tool Center Point）とも呼ぶ。
【００１１】
ロボット１００は、各関節に、サーボモーター４１０と、減速機５１０と、モーター角度センサー４２０と、を備える。図１では、技術の理解を容易にするために、関節Ｊ１についてのみ、模式的にサーボモーター４１０と、減速機５１０と、モーター角度センサー４２０と、を示している。
【００１２】
サーボモーター４１０は、ロボット制御装置３００から電流を供給されて駆動力を発生させる。より具体的には、サーボモーター４１０は、ロボット制御装置３００から電流を供給されて、その出力軸４１０ｏを回転させる。
【００１３】
モーター角度センサー４２０は、サーボモーター４１０の出力軸４１０ｏの角度位置Ｐｍを検出する。モーター角度センサー４２０は、ロータリエンコーダーである。モーター角度センサー４２０が検出した出力軸４１０ｏの角度位置Ｐｍは、ロボット制御装置３００に送信される。
【００１４】
減速機５１０は、入力軸５１０ｉと出力軸５１０ｏを備える。減速機５１０は、入力軸５１０ｉに対する回転入力を、回転入力より回転速度が低い回転出力に変換して、出力軸５１０ｏから出力する。減速機５１０は、具体的には、波動歯車減速機である。減速機５１０の入力軸５１０ｉは、サーボモーター４１０の出力軸４１０ｏに接続されている。入力軸５１０ｉの角度位置は、サーボモーター４１０の出力軸４１０ｏの角度位置Ｐｍと等しい。
【００１５】
アーム要素１１０ａは、関節Ｊ１の減速機５１０の出力軸５１０ｏに固定されている。その結果、アーム要素１１０ａは、サーボモーター４１０の出力軸４１０ｏの回転によって、減速機５１０を介して、関節Ｊ１において回転される。
【００１６】
ロボット１００は、アーム１１０の先端に力覚センサー１９０を備えている。エンドエフェクター２００は、力覚センサー１９０を介して、ロボット１００のアーム１１０に取りつけられている。力覚センサー１９０は、加えられた外力の大きさを検出することができる。より具体的には、力覚センサー１９０は、外部、すなわち、力覚センサー１９０以外の構成から加えられる、Ｘ軸、Ｙ軸、Ｚ軸の３軸方向の力と、Ｘ軸、Ｙ軸、Ｚ軸まわりのトルクを測定することができる。このため、力覚センサー１９０は、エンドエフェクター２００に作用するＸ軸、Ｙ軸、Ｚ軸の３軸方向の力と、Ｘ軸、Ｙ軸、Ｚ軸まわりのトルクを測定することができる。力覚センサー１９０の出力は、ロボット制御装置３００に送信され、ロボット１００の制御に使用される。
【００１７】
ロボット制御装置３００は、アーム１１０およびエンドエフェクター２００を制御する制御装置である。ロボット制御装置３００は、ロボット１００の筐体内に収容されている。ロボット制御装置３００は、プロセッサーであるＣＰＵ（Central Processing Unit）３１０と、ＲＡＭ（Random Access Memory）３３０と、ＲＯＭ（Read Only Memory）３４０と、を備えるコンピューターを含む。ＣＰＵ３１０は、ＲＯＭ３４０に記憶されたコンピュータープログラムをＲＡＭ３３０にロードして実行することによって、後述する様々な機能を実現する。ロボット１００を制御するロボット制御装置３００のＣＰＵ３１０の機能部を、「動作制御部３１９」として図１に示す。
【００１８】
エンドエフェクター２００は、アーム１１０の先端に取りつけられている。エンドエフェクター２００は、ロボット制御装置３００に制御されて、ワークピースＷ０１をつかむことができ、また、つかんでいるワークピースＷ０１を離すことができる。その結果、たとえば、ロボット１００のアーム１１０とエンドエフェクター２００とは、ロボット制御装置３００に制御されて、作業対象物であるワークピースＷ０１をつかんで移動させることができる。なお、図１においては、技術の理解を容易にするため、エンドエフェクター２００を単純な円柱で示している。
【００１９】
カメラ７００は、ワークピースＷ０１と、そのワークピースＷ０１の周辺と、アーム１１０と、を含む写真画像を撮像することができる。カメラ７００が生成した画像は、ロボット制御装置３００に送信され、ロボット１００の制御に使用される。
【００２０】
設定装置６００は、ロボット１００の動作を規定する動作シーケンスを生成する。設定装置６００は、出力装置として機能するディスプレイ６０２と、入力装置として機能するキーボード６０４およびマウス６０５と、を備えたコンピューターである。設定装置６００は、さらに、プロセッサーであるＣＰＵ６１０と、ＲＡＭ６３０と、ＲＯＭ６４０と、を備えている。ＣＰＵ６１０は、ＲＯＭ６４０に記憶されたコンピュータープログラムをＲＡＭ６３０にロードして実行することによって、後述する様々な機能を実現する。
【００２１】
設定装置６００は、ロボット制御装置３００に接続されている。設定装置６００によって生成された動作シーケンスが、ロボット制御装置３００に送信される。ロボット制御装置３００は、設定装置６００から受信した動作シーケンスにしたがってロボット１００を動作させる。
【００２２】
なお、設定装置６００は、ティーチングペンダントを介してロボット制御装置３００に接続されていてもよい。ティーチングペンダントは、単独で、すなわち、設定装置６００と協働することなく、ロボット１００の動作を規定する動作シーケンスを生成することができる。
【００２３】
Ａ２．ロボットシステムと周辺装置の関係：
図２は、ロボットシステム１と処理装置８００と搬送装置７５０と警告灯９００の関係を示す説明図である。ロボットシステム１と処理装置８００と搬送装置７５０と警告灯９００をまとめて「ワークステーションＷＳ」とも呼ぶ。一つのワークステーションＷＳにおいて、一つの作業が行われる。なお、技術の理解を容易にするため、ロボットシステム１に含まれる設定装置６００（図１参照）の図示を省略している。
【００２４】
処理装置８００は、ワークピースＷ０１に対して所定の処理を行う装置である。処理装置８００は、ロボット１００とともに動作する。より具体的には、処理装置８００は、ロボット１００からワークピースＷ０１を供給されて、受け取ったワークピースＷ０１に対して所定の処理を行う。そして、処理後のワークピースＷ０１は、ロボット１００によって、処理装置８００から搬送装置７５０に運ばれる。
【００２５】
搬送装置７５０は、ローラーと、ベルトとを備えるベルトコンベアである。搬送装置７５０は、ローラーを駆動することにより、図１において矢印Ａｔで示す方向に、ベルトを運動させる。搬送装置７５０は、ベルト上にワークピースＷ０１を乗せて、矢印Ａｔで示す方向に搬送する。
【００２６】
警告灯９００は、ロボット１００と処理装置８００とから信号を受け取って、点灯する。処理装置８００と警告灯９００とは、ロボット１００のロボット制御装置３００（図１参照）に接続されており、ロボット制御装置３００によって制御される。なお、本実施形態においては、搬送装置７５０は、ロボット制御装置３００以外の制御装置に制御される。
【００２７】
Ａ３．動作シーケンスの作成：
図３は、ワークステーションＷＳにおける処理のフローを示すフローチャートである。ロボットシステム１を含むワークステーションＷＳを動作させるにあたっては、まず、ステップＳ１００において、ロボットシステム１を含むワークステーションＷＳを動作させるプログラムが作成される。ステップＳ１００は、ステップＳ１１０〜Ｓ１３０を含む。プログラムの作成は、設定装置６００（図１参照）を介して、ユーザーによって行われる。
【００２８】
ステップＳ１１０においては、ロボット１００と処理装置８００と警告灯９００の動作シーケンスが作成される。より具体的には、ユーザーは、設定装置６００のディスプレイ６０２に表示される第１編集画面Ｄｅ１と第２編集画面Ｄｅ２の少なくとも一方を介して、画像や文字を編集して、各構成要素の動作シーケンスを作成する。第１編集画面Ｄｅ１と第２編集画面Ｄｅ２については、後に説明する。
【００２９】
なお、ステップＳ１１０の処理が最初に行われた段階では、シーケンスに含まれる各動作において制御点の位置を定量的に規定するパラメーターの値は、まだ決定されていない。位置を定量的に規定するパラメーター以外の動作のパラメーターは、ステップＳ１１０において規定されうる。位置のパラメーターに限らず、各動作を定量的に規定する具体的なパラメーターを、集合的に「プロパティー」とも呼ぶ。
【００３０】
ステップＳ１２０においては、ステップＳ１１０で作成された動作シーケンスの各動作のプロパティーのうち、制御点の位置を定量的に規定するパラメーター以外のパラメーターが、設定される。より具体的には、ユーザーは、設定装置６００のディスプレイ６０２に表示されたユーザーインターフェイスに文字や数字を入力し、または、選択肢の中から一つを選択する等の処理を行って、プロパティーを作成する。なお、後述するように、ステップＳ１１０〜Ｓ１４０の処理は繰り返し行われ得る。このため、ステップＳ１１０における動作シーケンスの作成が完了する前に、個別の動作について、ステップＳ１２０の処理は行われ得る。
【００３１】
ステップＳ１３０においては、ステップＳ１１０で作成された動作シーケンスの各動作のパラメーターのうち、ロボット１００の制御点を定めるパラメーターの値が決定される。より具体的には、ロボット１００のアーム１１０およびエンドエフェクター２００が、設定装置６００を介してユーザーに制御されて所望の位置に動かされ、その位置が教示点として記憶されることにより、ロボット１００の制御点を定めるパラメーターの値が決定される。この処理を、「ジョグ＆ティーチ」とも呼ぶ。
【００３２】
ステップＳ１４０においては、設定装置６００のディスプレイ６０２に表示されるユーザーインターフェイスに含まれている所定のボタンが押されることにより、設定済みのパラメーターを含む動作シーケンスが、プログラムファイルに変換される。生成されたプログラムファイルは、設定装置６００のＲＡＭ６３０に保存されるとともに、ロボット制御装置３００に送信される。
【００３３】
ステップＳ１５０においては、ユーザーは、ステップＳ１１０〜Ｓ１３０で作成した動作シーケンスを確定して良いか否かを判断する。作成した動作シーケンスを確定する場合には、処理はステップＳ２００に進む。作成した動作シーケンスをさらに編集する場合には、処理はステップＳ１１０に戻る。
【００３４】
ステップＳ２００においては、ステップＳ１００で作成されたプログラムにしたがって、ロボットシステム１を含むワークステーションＷＳ（図２参照）を、ロボット制御装置３００が動作させる。すなわち、ステップＳ１１０において、後述する第１編集画面Ｄｅ１と第２編集画面Ｄｅ２の少なくとも一方を介して編集された動作シーケンスに基づいて、ロボット制御装置３００が、ロボット１００と処理装置８００と警告灯９００とを制御する。
【００３５】
図４は、図３のステップＳ１００における設定装置６００およびロボット制御装置３００の処理を示すブロック図である。図４においては、設定装置６００の例として、コンピューターとしての設定装置６００を制御するＯＳが異なる３個の設定装置６００が示される。すなわち、設定装置６００の例として、Ｗｉｎｄｏｗｓ（登録商標）によって制御されるコンピューター６００ａと、Ａｎｄｒｏｉｄ（登録商標）によって制御されるコンピューター６００ｂと、Ｌｉｎｕｘ（登録商標）によって制御されるコンピューター６００ｃと、が示されている。各コンピューター６００ａ〜６００ｃは、ティーチングペンダントを介してロボット制御装置３００に接続されていてもよい。
【００３６】
ロボット制御装置３００は、ＲＡＭ３３０（図１参照）内にメソッド情報３０３を格納している。メソッド情報３０３は、動作シーケンスに含まれ得る各動作の情報である。たとえば、設定装置６００は、メソッド情報３０３を参照して、動作に対応する画像を表示する。メソッド情報３０３は、ＯＳ（オペレーティングシステム）に依存しない形式のデータとして、ロボット制御装置３００のＲＡＭ３３０内に格納されている。メソッド情報３０３が新たにＲＡＭ３３０内に格納されることにより、ワークステーションＷＳに実行させることができる動作が、追加される。
【００３７】
図３のステップＳ１１０〜Ｓ１３０において、ワークステーションＷＳの各構成要素（具体的には、ロボット１００と処理装置８００と警告灯９００）の動作シーケンスが編集されると、設定装置６００は、ジョブ情報３０４を作成する。ジョブ情報３０４は、ワークステーションＷＳに含まれる一つの構成要素の動作シーケンスが規定された情報である。ジョブ情報３０４は、動作シーケンスを構成する動作およびそれら動作の並び順の情報と、各動作のプロパティー（パラメーター）の情報と、を含む。ジョブ情報３０４は、ワークステーションＷＳに含まれる制御対象である構成要素ごとに、作成される。
【００３８】
図５は、ＧＵＩ情報３０３ｇとプログラム生成情報３０３ｐの機能を示す図である。メソッド情報３０３（図４参照）は、ＧＵＩ情報３０３ｇと、プログラム生成情報３０３ｐと、を含む。
【００３９】
ＧＵＩ情報３０３ｇは、動作と、設定装置６００のディスプレイ６０２に表示される第１編集画面Ｄｅ１においてその動作に関して表示される画像と、を対応づけている情報である。第１編集画面Ｄｅ１において動作に関して表示される画像には、動作そのものを表す画像と、動作のプロパティーの設定のためのインターフェイスの画像と、が含まれる。なお、本明細書において「画像」には、文字や記号を表す表示が含まれる。
【００４０】
図３のステップＳ１１０，Ｓ１２０において、設定装置６００は、ＧＵＩ情報３０３ｇを参照して、動作に関する画像として、ＧＵＩ情報３０３ｇがその動作と対応づけて格納している画像を、ディスプレイ６０２上の第１編集画面Ｄｅ１内に表示する。動作を表す画像を含む第１編集画面Ｄｅ１をディスプレイ６０２に表示することにより、ユーザーに、直感的に分かりやすい第１編集画面Ｄｅ１を提示することができる。
【００４１】
プログラム生成情報３０３ｐは、動作と、その動作を表すプログラミング言語による表現と、を対応づけている情報である。設定装置６００は、図３のステップＳ１４０においてプログラム生成情報３０３ｐを参照して、第１編集画面Ｄｅ１を介して編集された動作シーケンスをプログラムファイル３０５に変換する（図４も参照）。そして、設定装置６００は、ステップＳ１４０を経た後のステップＳ１１０，Ｓ１２０において（図３参照）、前記プログラミング言語による表現を含むプログラムファイル３０５を、ディスプレイ６０２上に表示される第２編集画面Ｄｅ２内に、表示する。その結果、ユーザーに、詳細な動作内容が分かる第２編集画面Ｄｅ２が提示される。
【００４２】
その後、図３のステップＳ１４０において、設定装置６００は、ジョブ情報３０４と、メソッド情報３０３のプログラム生成情報３０３ｐと、を参照して、ワークステーションＷＳに含まれる制御対象であるすべての構成要素の動作シーケンスを、ロボット１００に渡すプログラムファイル３０５に変換する（図４も参照）。その結果、プログラムファイル３０５は、ワークステーションＷＳに含まれる制御対象であるすべての構成要素の動作の順番と、動作シーケンスに含まれる動作のパラメーターと、各動作のパラメーターの設定値と、を含む。
【００４３】
Ａ４．動作シーケンスを作成するための第１ユーザーインターフェイス：
本実施形態においては、設定装置６００において、動作シーケンスを作成するためのユーザーインターフェイス（図３のＳ１１０参照）として、２種類のユーザーインターフェイスが用意される。第１ユーザーインターフェイスは、特別な技術を有さないユーザーのためのユーザーインターフェイスである。第２ユーザーインターフェイスは、高度なプログラミング技術を有するユーザーためのユーザーインターフェイスである。ここでは、第１ユーザーインターフェイスによる動作シーケンスの作成について説明する。
【００４４】
図６は、図３のステップＳ１１０において、動作シーケンスを構成する動作をユーザーが選択する前の状態の設定装置６００のディスプレイ６０２の表示を示す図である。動作シーケンスの作成を作成する際には、図６の表示において、左上の「編集」タグが選択される。すると、ディスプレイ６０２には、第１編集画面Ｄｅ１１が示される。第１編集画面Ｄｅ１１は、第１表示部分Ｄａ１１と、第２表示部分Ｄａ２１と、第３表示部分Ｄａ３１とを含む。第１表示部分Ｄａ１１と、第２表示部分Ｄａ２１と、第３表示部分Ｄａ３１とは、設定装置６００のディスプレイ６０２において、左から右にその順に並んで表示される。
【００４５】
第１表示部分Ｄａ１１は、動作シーケンスの作成において選択可能な複数の動作を表す動作表示ＣＭを含む。図６の例において動作を表す動作表示ＣＭには、動作を表す画像として、「ハンド」Ｍ０４、「動かす」Ｍ０５、「信号出力」Ｍ０６、「メッセージ」Ｍ０７、「待機する」Ｍ０８、「停止」Ｍ０９の画像が含まれる。第１表示部分Ｄａ１１には、他の表示も含まれる。なお、本実施形態においては、「基本設定」Ｍ０１，「コメント」Ｍ０２，「コンテナ」Ｍ０３の画像も、広義の「動作表示」として、以降の説明を行う。
【００４６】
「基本設定」Ｍ０１は、ロボット１００、処理装置８００などの一つの動作主体の基本的な設定を決める処理のための画像である。「コメント」Ｍ０２は、後述する第２表示部分Ｄａ２において表示されるプログラミング言語で表現されたプログラムリスト中に埋め込まれるコメントのための画像である。コメントは、第２表示部分Ｄａ２において表示される動作シーケンスの内容を、ユーザーが理解しやすくするために、プログラムリスト中に埋め込まれる。
【００４７】
「コンテナ」Ｍ０３は、複数の動作の集合のための画像である。「コンテナ」については、後に説明する。「ハンド」Ｍ０４は、エンドエフェクター２００としてのマニピュレーターを制御対象とする処理を表す画像である。「動かす」Ｍ０５は、制御対象を動かす動作を表す画像である。「信号出力」Ｍ０６は、動作主体としての制御対象が外部に信号を出力する動作を表す画像である。「メッセージ」Ｍ０７は、動作主体としての制御対象が、ユーザーが認識可能なメッセージを外部に出力する動作を表す画像である。「待機する」Ｍ０８は、あらかじめ定められた事象が生じるまで処理を停止する動作を表す。「停止」Ｍ０９は、それまで行っていた動作を停止させる処理を表す画像である。
【００４８】
第１表示部分Ｄａ１１は、さらに、動作シーケンスの作成において選択可能な複数のロジックを表す動作表示ＬＧを含む。図６の例において動作を表す動作表示ＬＧには、「Ｉｆ」Ｌ０１、「繰り返し」Ｌ０２の画像が含まれる。なお、本実施形態においては、「Ｉｆ」Ｌ０１、「繰り返し」Ｌ０２も、広義の「動作表示」として、以降の技術の説明を行う。
【００４９】
第１表示部分Ｄａ１１は、さらに、動作シーケンスの作成において選択可能な動作を表す動作表示である「Ｖｉｓｉｏｎ」Ｃ０１を含む。「Ｖｉｓｉｏｎ」Ｃ０１は、カメラ７００によって取得された画像中から検出された位置に基づいて決定される点に移動する動作の集合を表す画像である。「Ｖｉｓｉｏｎ」Ｃ０１が表す処理は、「コンテナ」の１種である。「Ｖｉｓｉｏｎ」Ｃ０１については、後に説明する。
【００５０】
第１表示部分Ｄａ１１は、さらに、動作シーケンスの作成において画面を切り替えるために使用される「コマンド」ボタンＣ０２を含む。「コマンド」Ｃ０２が押されると、第２表示部分Ｄａ２の表示が、第２編集画面Ｄｅ２に切り替えられる。第２編集画面Ｄｅ２については、後に詳細に説明する。
【００５１】
第２表示部分Ｄａ２１においては、第１表示部分Ｄａ１１を介して選択された動作の配列の形式で、動作シーケンスが表示される。第２表示部分Ｄａ２１において、その動作の配列が編集されることにより、動作シーケンスが編集されることができる。図６の状態においては、まだ、動作シーケンスを構成する動作をユーザーが選択していないため、第２表示部分Ｄａ２１には、動作シーケンスを表す画像は表示されていない。第１表示部分Ｄａ１１の動作表示ＣＭの中から表示を選択して、第２表示部分Ｄａ２１上にドラッグすることにより、ユーザーは、動作シーケンスを構成する動作を選択することができる。
【００５２】
第２表示部分Ｄａ２１の下段には、編集ボタンＢｅ１〜Ｂｅ７が含まれる。編集ボタンＢｅ１〜Ｂｅ７の機能については、後に説明する。
【００５３】
第３表示部分Ｄａ３１においては、第２表示部分Ｄａ２１に表示された動作シーケンスに含まれる動作のプロパティーが表示され、プロパティーの値が設定される。図６の状態においては、まだ、動作シーケンスを構成する動作をユーザーが選択していないため、第３表示部分Ｄａ３１には、動作のプロパティーに関する画像は表示されていない。
【００５４】
図７は、図３のステップＳ１１０において、動作シーケンスを構成する動作をユーザーが選択した後の状態の設定装置６００のディスプレイ６０２（図１参照）の表示を示す図である。ディスプレイ６０２には、第１編集画面Ｄｅ１２が示される。第１編集画面Ｄｅ１２は、動作シーケンスを構成する動作をユーザーが選択したことによって、図６の第１編集画面Ｄｅ１１の表示が改変された第１編集画面である。第１編集画面Ｄｅ１２は、第１表示部分Ｄａ１２と、第２表示部分Ｄａ２２と、第３表示部分Ｄａ３２とを含む。第１表示部分Ｄａ１２と、第２表示部分Ｄａ２２と、第３表示部分Ｄａ３２とは、設定装置６００のディスプレイ６０２において、左から右にその順に並んで表示される。第１表示部分Ｄａ１２と、第２表示部分Ｄａ２２と、第３表示部分Ｄａ３２とは、それぞれ第１表示部分Ｄａ１１と、第２表示部分Ｄａ２１と、第３表示部分Ｄａ３１に対応する。
【００５５】
第１表示部分Ｄａ１２は、第１表示部分Ｄａ１１と同一の表示である。
【００５６】
第２表示部分Ｄａ２２には、第１表示部分Ｄａ１１を介して選択された動作を表す表示の配列として、動作シーケンスが表示されている。より具体的には、動作を表す表示Ｍ０１１，Ｍ０５１，Ｍ０５２，Ｍ０３１，Ｍ０２１，Ｍ０５３，Ｍ０４１，Ｍ０６１，Ｍ０８１が、それぞれ１以上の行として、表形式で、上から下に向かって並んで配列される。このため、ユーザーは、各動作が上から下に向かって順に実行される処理として、動作シーケンスを直感的に把握することができる。
【００５７】
「基本設定」Ｍ０１１は、第１表示部分Ｄａ１２の「基本設定」Ｍ０１が第２表示部分Ｄａ２２にドラッグされることにより、第２表示部分Ｄａ２２において表示されている。「動かす」Ｍ０５１は、第１表示部分Ｄａ１２の「動かす」Ｍ０５が第２表示部分Ｄａ２２にドラッグされることにより、第２表示部分Ｄａ２２において表示されている。同様に、第２表示部分Ｄａ２２内の表示のうち、表示に付された符号の上３桁が第１表示部分Ｄａ１２内の表示に付された符号と一致するものは、対応する第１表示部分Ｄａ１２内の表示がドラッグされることにより、第２表示部分Ｄａ２２内に表示されている表示である。
【００５８】
第２表示部分Ｄａ２２の下段には、編集ボタンＢｅ１〜Ｂｅ７が表示されている。第２表示部分Ｄａ２２の上段に表示されている動作は、編集ボタンＢｅ１〜Ｂｅ７によって、編集されることができる。ユーザーが、第２表示部分Ｄａ２２の上段に表示されている各動作に対応する表示をクリックして選択し、「上へ」ボタンＢｅ１を押すと、クリックされた動作は、第２表示部分Ｄａ２２の上段の表示において、一つ上の行に移動する。同様に、「下へ」ボタンＢｅ２を押すと、クリックされた動作は、第２表示部分Ｄａ２２の上段の表示において、一つ下の行に移動する。同様に、「コピー」ボタンＢｅ３は、コピー機能を奏する。「カット」ボタンＢｅ４は、カット機能を奏する。コピーまたはカットされた動作は、ＲＡＭ６３０内に記憶され、「ペースト」ボタンＢｅ５が押されることにより、第２表示部分Ｄａ２２の上段の表示内に貼り付けられる。
【００５９】
「削除」ボタンＢｅ７は、削除機能を奏する。ユーザーが、第２表示部分Ｄａ２２の上段に表示されている各動作に対応する表示をクリックして選択し、「無効化」ボタンＢｅ６を押すと、クリックされた動作は、第２表示部分Ｄａ２２の上段において表示されたまま、図３のステップＳ１２０〜Ｓ１４０，Ｓ２００の処理に関しては、第２表示部分Ｄａ２２の上段において表示されていない場合と同様に処理される。なお、図７においては、第２表示部分Ｄａ２２の上段に表示されている各動作のうち、「基本設定」の表示Ｍ０１１がクリックされた状態を示している。「基本設定」の表示Ｍ０１１は、クリックされる前とは異なる色で表示されている。
【００６０】
なお、第２表示部分Ｄａ２２の上段に表示されている動作は、マウス６０５によるドラッグ・アンド・ドロップや、キーボード６０４による操作（たとえば、ｃｔｒｌ＋Ｃ，ｃｔｒｌ＋Ｖなど）によっても、編集されることができる。
【００６１】
第３表示部分Ｄａ３２には、第２表示部分Ｄａ２２に表示された動作シーケンスに含まれる動作のうち、選択された動作のプロパティーが表示される。第３表示部分Ｄａ３２を介して、選択された動作プロパティーの具体的な内容が設定される（図３のＳ１２０参照）。図７の状態においては、第２表示部分Ｄａ２２において「基本設定」の表示Ｍ０１１が選択されているため、第３表示部分Ｄａ３２には、基本設定のプロパティーを設定するための画面が表示されている。
【００６２】
第３表示部分Ｄａ３２においては、基本設定のプロパティーとして、モーターのＯＮまたはＯＦＦを設定することができる。第３表示部分Ｄａ３２においては、基本設定のプロパティーとして、モーターのパワーについて、低パワーまたは高パワーを設定することができる。第３表示部分Ｄａ３２においては、基本設定のプロパティーとして、ロボット１００の動作速度について、１から１００のいずれかの値を設定することができる。第３表示部分Ｄａ３２においては、基本設定のプロパティーとして、加速と減速の両方の加速度について、１から１００のいずれかの値を設定することができる。ただし、図７においては、加速度のプロパティーの一部が、画面の表示範囲外にある。加速度の設定は、第３表示部分Ｄａ３２の表示を上方にスライドさせることにより可能となる。
【００６３】
図８は、図７の第１編集画面Ｄｅ１２において、「基本設定」の表示Ｍ０１１に代えて、「信号出力」の表示Ｍ０６１が選択された場合の第１編集画面Ｄｅ１３を示す図である。第１編集画面Ｄｅ１３に含まれる第１表示部分Ｄａ１３と、第２表示部分Ｄａ２３と、第３表示部分Ｄａ３３とは、それぞれ図６の第１表示部分Ｄａ１１と、第２表示部分Ｄａ２１と、第３表示部分Ｄａ３１に対応する。また、第１表示部分Ｄａ１３と、第２表示部分Ｄａ２３と、第３表示部分Ｄａ３３とは、それぞれ図７の第１表示部分Ｄａ１２と、第２表示部分Ｄａ２２と、第３表示部分Ｄａ３２に対応する。
【００６４】
図８の状態においては、「信号出力」の表示Ｍ０６１が選択されているため、第３表示部分Ｄａ３３には、信号出力のプロパティーを設定するための画面が表示されている。第３表示部分Ｄａ３３においては、信号出力のプロパティーとして、出力先のビット番号を１から１５までの中から設定することができる。第３表示部分Ｄａ３４においては、信号出力のプロパティーとして、指定したビットをオンにするかオフにするかを設定することができる。
【００６５】
図９は、図７の第１編集画面Ｄｅ１２において、「基本設定」の表示Ｍ０１１に代えて、「待機する」の表示Ｍ０８１が選択された場合の第１編集画面Ｄｅ１４を示す図である。第１編集画面Ｄｅ１４に含まれる第１表示部分Ｄａ１４と、第２表示部分Ｄａ２４と、第３表示部分Ｄａ３４とは、それぞれ図６の第１表示部分Ｄａ１１と、第２表示部分Ｄａ２１と、第３表示部分Ｄａ３１に対応する。また、第１表示部分Ｄａ１４と、第２表示部分Ｄａ２４と、第３表示部分Ｄａ３４とは、それぞれ図７の第１表示部分Ｄａ１２と、第２表示部分Ｄａ２２と、第３表示部分Ｄａ３２に対応する。第１表示部分Ｄａ１４と、第２表示部分Ｄａ２４と、第３表示部分Ｄａ３４とは、それぞれ図８の第１表示部分Ｄａ１３と、第２表示部分Ｄａ２３と、第３表示部分Ｄａ３３に対応する。
【００６６】
図９の状態においては、「待機する」の表示Ｍ０８１が選択されているため、第３表示部分Ｄａ３４には、「待機する」のプロパティーを設定するための画面が表示されている。第３表示部分Ｄａ３４においては、「待機する」のプロパティーとしての待機の条件が、表示Ｓ３４２を介して、「時間（Ｔｉｍｅ）」と「ビット状態」から選択されることができる。
【００６７】
第３表示部分Ｄａ３４においては、入力窓Ｓ３４４を介して、待機の条件として「時間」が選択された場合の待機時間の長さが、設定される。スライダーＳ３４６を介して、待機の条件として「ビット状態」が選択された場合の対象ビットの番号が、設定される。表示Ｓ３４８を介して、待機の条件として「ビット状態」が選択された場合の対象ビットの状態として、オンまたはオフが設定されることができる。
【００６８】
なお、表示Ｓ３４２を介して選択される、待機の条件としての「時間（Ｔｉｍｅ）」および「ビット状態」を、本明細書において「事象の種類」と呼ぶことがある。表示Ｓ３４４，Ｓ３４６，Ｓ３４８を介して設定される、待機の条件としての「待機時間の長さ」、「対象ビットの番号」、および「オン／オフ」を、本明細書において「事象の状態」と呼ぶことがある。
【００６９】
本実施形態においては、あらかじめ定められた事象が生じるまで処理を停止する待機動作について、プロパティーとして、（ｉ）「事象の種類」としての時間とビット番号の選択と、（ｉｉ）「事象の状態」としての時間の長さまたはビットのＯＮ／ＯＦＦが含まれる。そして、第１編集画面Ｄｅ１の第３表示部分Ｄａ３において、「事象の種類」と、「事象の状態」とは、上から下に向かう順番で表示される。このため、ユーザーは、画面上の並び順にそって、順にプロパティーを設定することができる。よって、このため、ロボット１００の動作シーケンスの作成を効率的に行うことができる。
【００７０】
なお、画面の遷移状態によらず、第１編集画面Ｄｅ１１〜Ｄｅ１４を、まとめて「第１編集画面Ｄｅ１」と呼ぶ。後に示す図１７〜図１９の表示部分Ｄｅ１６〜Ｄｅ１８、ならびに図２０、図２１の表示部分Ｄｅ１Ａ，Ｄｅ１Ｂについても、同様である。第１編集画面Ｄｅ１は、複数の動作を表す画像の中から１以上の動作を表す画像を選択し、画面上で配列することによりロボットの動作シーケンスを編集することができるユーザーインターフェイスである。なお、本明細書において、「編集」とは、すでにある動作シーケンスの一部または全部を改変することに限らず、動作シーケンスがまったく規定されていない状態から動作シーケンスを生成することを含む。
【００７１】
画面の遷移状態によらず、第１編集画面Ｄｅ１の第１表示部分Ｄａ１１〜Ｄａ１４を、まとめて「第１表示部分Ｄａ１」と呼ぶ。後に示す図１７〜図１９の表示部分Ｄａ１６〜Ｄａ１８、ならびに図２０、図２１の表示部分Ｄａ１Ａ，Ｄａ１Ｂについても、同様である。第１表示部分Ｄａ１は、選択可能な複数の動作を表すユーザーインターフェイスである。
【００７２】
画面の遷移状態によらず、第１編集画面Ｄｅ１の第２表示部分Ｄａ２１〜Ｄａ２４を、まとめて「第２表示部分Ｄａ２」と呼ぶ。後に示す図１７〜図１９の表示部分Ｄａ２６〜Ｄａ２８、ならびに図２０、図２１の表示部分Ｄａ２Ａ，Ｄａ２Ｂについても、同様である。第２表示部分Ｄａ２は、第１表示部分Ｄａ１を介して選択された動作の配列として動作シーケンスが表示され、動作の配列を編集することにより動作シーケンスを編集することができるユーザーインターフェイスである。
【００７３】
画面の遷移状態によらず、第１編集画面Ｄｅ１の第３表示部分Ｄａ３１〜Ｄａ３４を、まとめて「第３表示部分Ｄａ３」と呼ぶ。後に示す図１７〜図１９の表示部分Ｄａ３６〜Ｄａ３８、ならびに図２０の表示部分Ｄａ３Ａについても、同様である。第３表示部分Ｄａ３は、第２表示部分Ｄａ２に表示された動作シーケンスに含まれる動作のプロパティーが表示され、プロパティーの値を設定されることができるユーザーインターフェイスである。
【００７４】
本実施形態においては、第１編集画面Ｄｅ１において、第１表示部分Ｄａ１、第２表示部分Ｄａ２、第３表示部分Ｄａ３が、その順に並んで表示されている。このため、ユーザーは、第１編集画面Ｄｅ１において、編集対象としての動作シーケンスを表示する第２表示部分Ｄａ２に対して、一方の側にある第１表示部分Ｄａ１において、動作を選択して編集対象としての動作シーケンスに動作を取り込むことができ、他方の側にある第３表示部分Ｄａ３において、各動作のプロパティーを設定することができる。このため、ロボットの動作シーケンスの作成を効率的に行うことができる。
【００７５】
より具体的には、第１編集画面Ｄｅ１において、第１から第３表示部分Ｄａ１〜Ｄａ３は、左から右に向かう順に並べて表示される。このため、ユーザーは、編集画面において、編集対象としての動作シーケンスを表示する第２表示部分Ｄａ２に対して、左側にある第１表示部分Ｄａ１において、動作を選択して編集対象としての動作シーケンスに動作を取り込むことができる。また、第２表示部分Ｄａ２に対して右側にある第３表示部分Ｄａ３において、各動作のプロパティーを設定することができる。このため、ロボットの動作シーケンスの作成を効率的に行うことができる。
【００７６】
第１編集画面Ｄｅ１を介して編集された動作シーケンス、および第１編集画面Ｄｅ１を介して設定されたプロパティーの情報を含むプログラムファイルが、図３のステップＳ１４０において作成される。ステップＳ１４０においてプログラムファイルを作成する設定装置６００のＣＰＵ６１０の機能部を、「ファイル作成部６１４」として図１に示す。
【００７７】
作成されるプログラムファイルが動作シーケンスの情報のみを含み、プロパティーの情報を含まない場合は、プログラムファイルを使用してロボットを動作させるためには（Ｓ２００参照）、別途、プログラムファイルに対してプロパティーの情報を書き込む必要がある。しかし、本実施形態においては、動作シーケンスだけでなく、プロパティーの情報の情報も含めたプログラムファイルが作成されるため、作成されたプログラムファイルを使用してロボット１００を動作させることができる。
【００７８】
図１０は、「アプリケーション」と、「ジョブ」と、「メソッド」と、「プロパティー」と、「コンテナ」と、の関係を例示する説明図である。設定装置６００におけるワークステーションＷＳの動作シーケンスの作成においては、「アプリケーション」、「ジョブ」、「メソッド」、「プロパティー」、および「コンテナ」という概念が使用される（図４の３０３，３０４参照）。
【００７９】
「アプリケーション」とは、ワークステーションＷＳに含まれる、制御対象である構成要素の動作シーケンス全体を表す概念である。「アプリケーション」は、たとえば、図１に示すワークステーションＷＳにおいて、処理装置８００がワークピースＷ０１に対する処理の完了の信号を出力し、その信号に応じて、ロボット１００がワークピースＷ０１を処理装置８００から取りだして、搬送装置７５０のベルトコンベア上におく、という一連の作業である。「アプリケーション」が決まることにより、ワークステーションＷＳのロボットシステム１と処理装置８００と搬送装置７５０と警告灯９００が協調して動作する処理の内容が、決定される。
【００８０】
図３のステップＳ１４０においては、図７の第２表示部分Ｄａ２２、図８の第２表示部分Ｄａ２３、図９の第２表示部分Ｄａ２４に示されるように、動作の表示の配列で特定されている「アプリケーション」が、変換されることにより、ワークステーションＷＳ用のプログラムファイル３０５が作成される。
【００８１】
なお、図７の第２表示部分Ｄａ２２、図８の第２表示部分Ｄａ２３、図９の第２表示部分Ｄａ２４においては、技術の理解を容易にするため、ワークステーションＷＳに含まれる構成要素のうちの一つの構成要素の動作シーケンスのみが示されている。しかし、第２表示部分Ｄａ２においては、ワークステーションＷＳに含まれるすべての構成要素の動作シーケンスが、それぞれ動作の配列として特定される。
【００８２】
「ジョブ」とは、（ｉ）動作の主体、または（ｉｉ）動作の主体ごとにグループ分けされた動作の集合を意味する。「ジョブ」は、ワークステーションＷＳに含まれる、制御対象である構成要素（本実施形態において、ロボット１００と処理装置８００と警告灯９００）に対応する概念である。図１０に示すように、一つの「アプリケーション」に対して、１以上の「ジョブ」が従属する。「アプリケーション」に従属する「ジョブ」は、その「アプリケーション」が対応するワークステーションＷＳに含まれる構成要素に、対応する。「ジョブ」には、あらかじめ用意されており暫定的に内容が決定されている「プリセットジョブ」と、ユーザーが作成する「ユーザージョブ」の２種類のジョブが存在する（図１０の左側参照）。
【００８３】
一方、概念上の分類としては、「ジョブ」は、他の構成要素に対する動きを伴う「モーションジョブ」と、他の構成要素に対する動きを伴わない「モニタリングジョブ」と、を含む。「モーションジョブ」は、たとえば、ロボット１００、処理装置８００、またはそれらの動作の集合である。「モニタリングジョブ」は、たとえば、警告灯９００、または警告灯９００の動作の集合である。
【００８４】
「メソッド」とは、制御対象である構成要素の動作である。図１０に示すように、一つの「ジョブ」に対して、１以上の「メソッド」が従属する。「ジョブ」に従属する「メソッド」は、その「ジョブ」が対応する構成要素によって実行される動作に、対応する。「メソッド」には、「プリミティブメソッド」と「コンテナ」の２種類のメソッドが存在する。
【００８５】
「プリミティブメソッド」とは、最小単位の動作である。具体的には、「ハンド」、「動かす」、「信号出力」、「メッセージ」、「待機する」などの動作である（図７〜図９のＭ０５１，Ｍ０５２，Ｍ０５３，Ｍ０４１，Ｍ０６１，Ｍ０８１参照）。本明細書においては、「動作」を「プリミティブメソッド」の意味で使用することがある。「プリミティブメソッド」は、あらかじめ定められている。新たな「プリミティブメソッド」を、ユーザーが作成することはできない。
【００８６】
「コンテナ」とは、１以上の「プリミティブメソッド」の集合である（図７〜図９のＭ０３１，Ｍ０５３，Ｍ０４１参照）。「コンテナ」は、さらに、１以上の「コンテナ」を含むことができる。「コンテナ」には、あらかじめ用意されており内容が決定されている「プリセットコンテナ」と、ユーザーが作成する「ユーザーコンテナ」の２種類のコンテナが存在する。空のコンテナを「プリミティブコンテナ」と呼ぶ。ユーザーは、第１編集画面Ｄｅ１を介して、１以上のメソッドを含むコンテナを選択し、画面上で配列することにより、ロボット１００の動作シーケンスを編集することができる。
【００８７】
このような態様とすることにより、ユーザーは、たとえば、設定装置６００においてあらかじめ用意されているコンテナを選択し、画面上で配列することにより、ロボット１００の動作シーケンスを編集することができる。また、少なくとも一部のメソッドがあらかじめ編集されたコンテナを選択し、画面上で配列することにより、ロボット１００の動作シーケンスを編集することができる。よって、第１編集画面Ｄｅ１において、メソッドを一つずつ選択し配列する必要がある態様に比べて、ユーザーは、容易にロボット１００の動作シーケンスを編集することができる。
【００８８】
「メソッド」は「プロパティー」を有している。「プリミティブメソッド」は、「プリミティブメソッド」の「プロパティー」を有している。「コンテナ」は、「コンテナ」の「プロパティー」を有している。コンテナのプロパティーは、そのコンテナに含まれるプリミティブメソッドのプロパティーを制約する。すなわち、コンテナのプロパティーの設定が具体的に決定されると、そのコンテナに含まれるプリミティブメソッドのプロパティーは、自動的に決定されるか、またはそのコンテナに含まれるプリミティブメソッドのプロパティーの設定範囲について設定され得ない部分が生じる。
【００８９】
ユーザーは、第１編集画面Ｄｅ１において、メソッドのプロパティーを設定することができ、かつ、コンテナのプロパティーを設定することができる。ただし、前述のように、コンテナに対して設定されたプロパティーに応じて、そのコンテナに含まれるメソッドのプロパティーは、自動的に設定される。このような態様とすることにより、第１編集画面Ｄｅ１において、一つずつのメソッドのプロパティーを設定する必要がある態様に比べて、ユーザーは、容易に、複数のメソッドのプロパティーを設定することができる。
【００９０】
図１１は、プリミティブメソッドだけでジョブを構成した例である。図１１の例においては、ジョブはロボット１００のジョブである。図１１に示すジョブに従った場合、ロボット１００は、図１１の上から下に向かって、メソッドで規定される動作を実行する。
【００９１】
ジョブに含まれるメソッドのうち「基本設定」のメソッドは、「モーターＯＮ、パワーＨｉｇｈ、速度５０、加速度５０，５０というプロパティーを有する（図７のＤａ３２参照）。なお、図１１において、「加速度５０，５０」とは、加速設定値が５０であり、減速設定値が５０であることを示す。「待機する」のメソッドは、「ワーク排出待ち」のプロパティーを有する。より具体的には、ワークピースＷ０１が処理装置８００排出されたことを表すビットがＯＮになるまで待つ、という動作が設定されている（図９のＤａ３４参照）。一つ目「動かす」のメソッドは、「ワーク上空」のプロパティーを有する。より具体的には、ワークピースＷ０１の上まで制御点（具体的にはＴＣＰ）を動かす、という動作が設定されている。なお、ワークピースＷ０１の位置は、カメラ７００（図１参照）が取得した画像に基づいて特定される。
【００９２】
図１１の一つ目の「ハンド」のメソッドは、「開く」のプロパティーを有する。より具体的には、エンドエフェクター２００としてのハンドを開くという動作が設定される。２個目の「動かす」のメソッドは、「把持位置」のプロパティーを有する。より具体的には、ワークピースＷ０１を把持できる地点まで制御点を動かす、という動作が設定される。２個目の「ハンド」のメソッドは、「把持」のプロパティーを有する。より具体的には、ワークピースＷ０１を把持できるようにエンドエフェクター２００としてのハンドを閉じるという動作が設定される。ハンドを閉じる量は、力覚センサー１９０に基づいて決定される。３個目の「動かす」のメソッドは、「ワーク上空」のプロパティーを有する。より具体的には、把持したワークピースＷ０１があった地点の上に制御点を動かす、という動作が設定される。
【００９３】
図１２は、プリセットコンテナだけでジョブを構成した例である。図１２の例においても、ジョブはロボット１００のジョブである。図１２に示すジョブに従った場合、ロボット１００は、図１２の上から下に向かって、コンテナで規定される動作を実行する。なお、コンテナは、そのコンテナが含む１以上のメソッドに対応する動作を規定する。
【００９４】
ジョブに含まれるコンテナのうち「初期設定」のコンテナは、プロパティーとして、「モーターＯＮ、パワーＨｉｇｈ」のプロパティーを有する。その結果、「初期設定」のコンテナに属する「基本設定」のメソッドは、自動的に「モーターＯＮ、パワーＨｉｇｈ」のプロパティーを有することとなる（図１１参照）。
【００９５】
「ワーク排出待ち」のコンテナは、「ワーク排出待ち」のプロパティーを有する。より具体的には、ワークピースＷ０１が処理装置８００排出されたことを表すビットがＯＮになるまで待つ、という動作が設定される。
【００９６】
「ワークを取りに行く」のコンテナは、「ワーク形状／検出パラメーター」のプロパティーを有する。より具体的には、カメラ７００によって検出されたワークピースＷ０１の地点まで制御点（具体的にはＴＣＰ）を動かす、という動作が設定される。
【００９７】
「ワークをつかむ」のコンテナは、「ワーク形状／把持」のプロパティーを有する。より具体的には、カメラ７００によって検出されたワークピースＷ０１を把持する、という動作が設定される。
【００９８】
以上のように、図３のステップ１１０における動作シーケンスの作成、およびステップＳ１２０のプロパティーの設定は、第１ユーザーインターフェイスとしての第１編集画面Ｄｅ１を介して、実行され得る。このような態様とすることにより、高度なプログラミング技術を有さないユーザーは、第１編集画面Ｄｅ１を使用して、複雑な編集作業を行うことなく、ロボット１００の動作シーケンスを編集することができ、プロパティーを設定することができる。
【００９９】
Ａ５．動作シーケンスを作成するための第２ユーザーインターフェイス：
以下では、高度なプログラミング技術を有するユーザーための第２ユーザーインターフェイスによる動作シーケンスの作成（図３のＳ１１０参照）について説明する。
【０１００】
図１３は、第２編集画面Ｄｅ２１を示す。図３のステップＳ１４０の処理が実行された後、さらに動作シーケンスを編集するために、図６〜図９に示す第１編集画面Ｄｅ１において、左下の「コマンド」ボタンＣ０２が押されると、ディスプレイ６０２の表示が切り替わる。より具体的には、第１編集画面Ｄｅ１の第２表示部分Ｄａ２に代わって、第２編集画面Ｄｅ２１が、ディスプレイ６０２に表示される。
【０１０１】
第２編集画面Ｄｅ２１において表示されるのは、第１編集画面Ｄｅ１を介して編集された動作シーケンスを変換することにより得られる（図３のＳ１４０参照）、プログラミング言語で表現された動作シーケンスＣＬＭである。動作シーケンスＣＬＭは、第２編集画面Ｄｅ２１において、各動作が１以上の行として上から下に並んで配されるリストとして表示される。
【０１０２】
なお、ディスプレイ６０２の中央に、第１編集画面Ｄｅ１の第２表示部分Ｄａ２ではなく第２編集画面Ｄｅ２が表示されている状態において、第１表示部分Ｄａ１の「コマンド」ボタンＣ０２（図６〜図９参照）が押された場合には、再度、ディスプレイ６０２の表示が切り替わる。より具体的には、ディスプレイ６０２の中央には、第１編集画面Ｄｅ１の第２表示部分Ｄａ２が表示される。
【０１０３】
図１３に示す第２編集画面Ｄｅ２１中、「’」に続いて記述されている文字列は、「コメント」である（図７〜図９のＭ０２，Ｍ０２１参照）。「コメント」は、プログラミング言語で表現された動作シーケンスＣＬＭのユーザーによる理解を容易にするために記載されているものであり、制御対象の動作を規定するものではない。「アプリケーション」、「ジョブ」、「コンテナ」、および各動作の名称（たとえば、「基本設定」、「動かす」など）は、自動的に、コメントとして、プログラムリスト中に記載される。
【０１０４】
プログラムリスト中のリスト部分ＣＬＭ０１１において、「基本設定」を規定する関数Func_3による動作と、「モーターＯＮ、パワーＨｉｇｈ、速度５０、加速度５０，５０」のプロパティーが規定されている（図７のＤａ３２参照）。リスト部分ＣＬＭ０５１において、「動かす」を規定する関数Func_4による動作と、「速度１０，加速度１０，１０、制御点の目的地点（８７．７４４３，４３２．５３５，４２６．７０４，１７４．２５５，０．１６７４５１，−１７７．６８）」が規定されている。なお、本明細書においては、３次元空間内におけるエンドエフェクター２００の制御点の目標到達地点と、その目標到達地点における目的とする姿勢と、を含めて、「制御点の目的地点」を記載する。
【０１０５】
リスト部分ＣＬＭ０５２において、「動かす」を規定する関数Func_5による動作と、「速度１０，加速度１０，１０、制御点の目的地点（−３８７．６７，２１０．９４５，４２６．７０４，−１１２．８３，０．１６７４９２，−１７７．６８）」が規定されている。リスト部分ＣＬＭ０３１において、「コンテナ」に含まれる動作に対応する関数Func_6、Func_8、Func_9による動作が規定されている。
【０１０６】
図１４は、第２編集画面Ｄｅ２２を示す。第２編集画面Ｄｅ２２は、図１３の第２編集画面Ｄｅ２１を上方にスクロールさせた場合の第２編集画面である。図１４の上段に表示されたリスト部分ＣＬＭ０３１と、図１３の下段に表示されたリスト部分ＣＬＭ０３１とは、同一のリスト部分である。
【０１０７】
リスト部分ＣＬＭ０５３において、「動かす」を規定する関数Func_8による動作と、「速度１０，加速度１０，１０、制御点の目的地点（−３８７．６７，２１０．９４５，３４２．９０７，−１１２．８３，０．１６７４３１，−１７７．６８）」が規定されている。プログラムリスト中のリスト部分ＣＬＭ０４１において、「ハンド」を規定する関数Func_9による動作と、ハンドを「閉じる」動作を規定するHand1_Closeの動作が規定されている。リスト部分ＣＬＭ０６１において、「信号出力」を規定する関数Func_10による動作と、「アクションＯＮ、ビット番号１３」のプロパティーが規定されている（図８のＤａ３３参照）。リスト部分ＣＬＭ０８１において、「待機する」を規定する関数Func_11による動作と、「待ち時間３秒」のプロパティーが規定されている（図９のＤａ３４参照）。なお、「待ち対象ビット１３、アクションＯＮ」を表すプロパティーは、「’」を付されてコメントにされている。
【０１０８】
画面の遷移状態によらず、第２編集画面Ｄｅ２１，Ｄｅ２２を、まとめて「第２編集画面Ｄｅ２」と呼ぶ。第２編集画面Ｄｅ２は、第１編集画面Ｄｅ１を介して編集された動作シーケンスを変換して得られる、プログラミング言語で表現された動作シーケンスＣＬＭが表示され、プログラミング言語で表現された動作シーケンスＣＬＭを編集することができる編集画面である。ユーザーは、設定装置６００の入力装置として機能するキーボード６０４およびマウス６０５を介して、第２編集画面Ｄｅ２に含まれる文字列を編集することができる。
【０１０９】
第１編集画面Ｄｅ１を介して動作シーケンスが編集された際に、プロパティーが設定されなかった場合には（図７〜図９のＤａ３２〜Ｄａ３４参照）、第２編集画面Ｄｅ２においてプロパティーが記載されているべき箇所は、空欄である。ユーザーは、第２編集画面Ｄｅ２を介して、それらのプロパティーを書き込むことができる（図３のＳ１２０参照）。
【０１１０】
第１編集画面Ｄｅ１の第３表示部分Ｄａ３は、設定装置６００によって各プロパティーについて設定可能なすべての設定範囲のうち、限定された選択肢を、ユーザーに対して提供する。このため、特別な技術を有さないユーザーであっても、動作シーケンスのプロパティーを設定することができる。一方、第２編集画面Ｄｅ２においては、第１編集画面Ｄｅ１の第３表示部分Ｄａ３において設定されていた限定なしに、設定装置６００によって各プロパティーについて設定可能なすべての設定範囲の中から、動作シーケンスのプロパティーを設定することができる。このため、第１編集画面Ｄｅ１を介して動作シーケンスが編集された際に、プロパティーが設定された場合であっても、ユーザーは、第１編集画面Ｄｅ１では選択できなかったプロパティーの詳細な設定値を、第２編集画面Ｄｅ２を介して、さらに設定することができる。
【０１１１】
さらに、ユーザーは、その時点で第２編集画面Ｄｅ２に記述されていないメソッドを、キーボード６０４およびマウス６０５を介して、新たに第２編集画面Ｄｅ２に記述することができる。また、ユーザーは、第２編集画面Ｄｅ２においては、第１編集画面Ｄｅ１では記述できないメソッドを記述することができる。
【０１１２】
このため、高度なプログラミング技術を有しているユーザーは、第２編集画面Ｄｅ２を使用して、詳細にロボットの処理内容を指定しつつ、ロボットの動作シーケンスを編集することができる。
【０１１３】
第１編集画面Ｄｅ１および第２編集画面Ｄｅ２を、表示部としてのディスプレイ６０２に表示する設定装置６００のＣＰＵ６１０の機能部を、「表示制御部６１２」として、図１に示す。
【０１１４】
Ａ６．動作の教示：
ロボット１００の制御点を定めるパラメーターの値を決定する際には（図３のＳ１３０参照）、設定装置６００のディスプレイ６０２の表示（図６〜図９参照）において、左上の「ジョグ＆ティーチ」のタグが選択される。
【０１１５】
図１５は、ロボット１００の制御点を定めるパラメーターの値を決定する際のユーザーインターフェイス画面である。設定装置６００のディスプレイ６０２の表示において「ジョグ＆ティーチ」のタグが選択されると、ディスプレイ６０２（図１参照）には、位置設定画面Ｄｔが示される。位置設定画面Ｄｔは、ジョグボタンＢｐ０１〜Ｂｐ０６，Ｂｒ０２〜Ｂｒ０６を含む。
【０１１６】
ボタンＢｐ０１は、Ｘ軸の正方向に制御点を移動させるためのボタンである。ボタンＢｐ０２は、Ｘ軸の負方向に制御点を移動させるためのボタンである。ボタンＢｐ０３は、Ｙ軸の正方向に制御点を移動させるためのボタンである。ボタンＢｐ０４は、Ｙ軸の負方向に制御点を移動させるためのボタンである。ボタンＢｐ０５は、Ｚ軸の正方向に制御点を移動させるためのボタンである。ボタンＢｐ０６は、Ｚ軸の負方向に制御点を移動させるためのボタンである。
【０１１７】
ボタンＢｒ０１は、Ｕ軸の正方向に制御点を回転させるためのボタンである。ボタンＢｒ０２は、Ｕ軸の負方向に制御点を回転させるためのボタンである。ボタンＢｒ０３は、Ｖ軸の正方向に制御点を回転させるためのボタンである。ボタンＢｒ０４は、Ｖ軸の負方向に制御点を回転させるためのボタンである。ボタンＢｒ０５は、Ｗ軸の正方向に制御点を回転させるためのボタンである。ボタンＢｒ０６は、Ｗ軸の負方向に制御点を回転させるためのボタンである。
【０１１８】
ユーザーは、位置設定画面Ｄｔにおいて、これらのボタンを操作して、エンドエフェクター２００の制御点を目標地点に移動させ、エンドエフェクター２００に目的とする姿勢をとらせる。そして、保存ボタンＢｓを押して、その地点および姿勢を、図３のステップＳ１１０で定めたシーケンス中の動作における制御点の教示点として記憶させる（図３のＳ１３０参照）。
【０１１９】
ユーザーは、位置設定画面Ｄｔに含まれる表示ＭＳを介して、「Ｂａｓｅ」モード、「Ｊｏｉｎｔ」モード、「Ｔｏｏｌ」モード、「Ｗｏｒｌｄ」モードを選択することにより、教示するパラメーターの種類を、選択することができる。「Ｂａｓｅ」モードは、ロボット１００が取りつけられている基台を原点とする座標系で、制御点の位置を指定する動作モードである。「Ｊｏｉｎｔ」モードは、各関節の角度（図１の５１０ｏ参照）で、制御点の位置を指定する動作モードである。「Ｔｏｏｌ」モードは、ある時点の制御点の位置を原点とする座標系で、制御点の位置を指定する動作モードである。「Ｗｏｒｌｄ」モードは、あらかじめ定められた地点またはユーザーが定める地点を原点とする座標系で、制御点の位置を指定する動作モードである。
【０１２０】
ユーザーは、位置設定画面Ｄｔに含まれる表示ＳＳを介して、教示のためにロボット１００を動かす際の動作速度を、「低速」と「ふつう」と「高速」の中から、選択することができる。
【０１２１】
Ａ７．センサー出力に基づいて決定される中継点の設定：
（１）センサー出力に基づいて決定される中継点：
センサーで取得された情報に基づいて、制御点の教示点が決定される場合がある。たとえば、カメラ７００（図１参照）によって取得された画像に基づいて、ワークピースＷ０１の位置が認識されて、ワークピースＷ０１の位置に対する相対位置として、制御点の目的地点が決定されることがある。同様に、カメラ７００（図１参照）によって取得された画像に基づいて、搬送装置７５０の所定の部位の位置が認識されて、その位置に対する相対位置として、制御点の目的地点が決定されることがある。また、力覚センサー１９０（図１参照）の出力が所定の値の組み合わせになった位置に対する相対位置として、制御点の目的地点が決定されることがある。本実施形態においては、そのような目的地点は、以下のように設定されることができる。ここでは、カメラ７００によって取得された画像に基づいて認識された位置に対する相対位置として、制御点の目的地点が決定される例について説明する。
【０１２２】
図１６は、カメラ７００によって取得された画像に基づいて認識された位置Ｐ１から、同様に認識された位置Ｐ２に移動する際の、中継点Ｐ３〜Ｐ５を示す説明図である。位置Ｐ１は、画像から認識されたワークピースＷ０１の位置である。位置Ｐ２は、画像から認識された搬送装置７５０の所定の部位の位置である。制御点が位置Ｐ１にある状態から、制御点が位置Ｐ２にある状態に移行すべきであるが、位置Ｐ１と位置Ｐ２の間に障害物がある場合がある。そのような障害物を迂回するため、中継点Ｐ３〜Ｐ５が設定される。
【０１２３】
中継点Ｐ３は、動作の出発地点である位置Ｐ１に対する相対位置として決定される。中継点Ｐ４は、動作の目的地点である位置Ｐ２に対する相対位置として決定される。中継点Ｐ５も、動作の目的地点である位置Ｐ２に対する相対位置として決定される。以下で、Ｐ１、Ｐ３、Ｐ４、Ｐ５、Ｐ２の順にロボット１００の制御点を移動させる動作の設定について、説明する。なお、位置Ｐ１，Ｐ２も、広義の「中継点」に含まれる。
【０１２４】
（２）第１編集画面からの中継点の設定：
以下では、図３のステップＳ１１０において、第１編集画面Ｄｅ１を介して「Ｖｉｓｉｏｎ」コンテナに対して中継点を設定する例を説明する。
【０１２５】
図１７は、図６の第１編集画面Ｄｅ１１において、コンテナの１種である「Ｖｉｓｉｏｎ」Ｃ０１が選択された場合の設定装置６００のディスプレイ６０２の表示を示す図である。ディスプレイ６０２には、第１編集画面Ｄｅ１６が示されている。第１編集画面Ｄｅ１６は、第１表示部分Ｄａ１６と、第２表示部分Ｄａ２６と、第３表示部分Ｄａ３６とを含む。第１表示部分Ｄａ１６と、第２表示部分Ｄａ２６と、第３表示部分Ｄａ３６とは、左から右にその順に並んで表示される。第１表示部分Ｄａ１６と、第２表示部分Ｄａ２６と、第３表示部分Ｄａ３６とは、それぞれ第１表示部分Ｄａ１６と、第２表示部分Ｄａ２６と、第３表示部分Ｄａ３６に対応する。
【０１２６】
第１編集画面Ｄｅ１６においては、「Ｖｉｓｉｏｎ」Ｃ０１のほかに、「動かす」Ｍ０５、「ハンド」Ｍ０４が選択され、「Ｖｉｓｉｏｎ」Ｃ０１とともに、第２表示部分Ｄａ２６に表示されている（図１７のＣ０１１，Ｍ０５４，Ｍ０４２参照）。
【０１２７】
第１表示部分Ｄａ１６において「Ｖｉｓｉｏｎ」Ｃ０１が選択され、第２表示部分Ｄａ２６に「Ｖｉｓｉｏｎ」Ｃ０１１が表示された直後の状態においては、第２表示部分Ｄａ２６において、「中継点」ＲＰ０１〜ＲＰ０４は表示されていない。第２表示部分Ｄａ２６において、「Ｖｉｓｉｏｎ」Ｃ０１１が選択されると、第３表示部分Ｄａ３６においては、中継点追加ボタンＢｒｐ２と、教示ボタンＢｔが表示される。
【０１２８】
中継点追加ボタンＢｒｐ２は、教示点としての中継点を追加することができるユーザーインターフェイスである。中継点追加ボタンＢｒｐ２が押されると、そのときに選択されている「Ｖｉｓｉｏｎ」コンテナの下に、教示点としての中継点が追加される。すでに追加されている中継点が選択された状態で中継点追加ボタンＢｒｐ２が押されると、そのときに選択されている中継点の下に、中継点が追加される。追加された各中継点は、編集ボタンＢｅ１，Ｂｅ２により、「Ｖｉｓｉｏｎ」コンテナの下において、上下に移動されることができる。「中継点」ＲＰ０１〜ＲＰ０４は、そのような処理を経て、第２表示部分Ｄａ２６に表示されている。「中継点」ＲＰ０１〜ＲＰ０４は、メソッドの１種であり、「その中継点まで移動する」という動作を表している。
【０１２９】
図１８は、図１７の状態から、「中継点」ＲＰ０５が追加された状態の設定装置６００のディスプレイ６０２（図１参照）の表示を示す図である。ディスプレイ６０２には、第１編集画面Ｄｅ１７が示される。第１編集画面Ｄｅ１７は、第１表示部分Ｄａ１７と、第２表示部分Ｄａ２７と、第３表示部分Ｄａ３７とを含む。図１７の状態において、中継点追加ボタンＢｒｐ２が押されると、第２表示部分Ｄａ２７において、「中継点」ＲＰ０２の下にさらに「中継点」ＲＰ０５が追加される。そして、「中継点」ＲＰ０５が選択され、「上へ」ボタンＢｅ１が押されると、「中継点」ＲＰ０５が「中継点」ＲＰ０２の上に移動して、図１８の状態となる。
【０１３０】
設定された「中継点」Ｒｐ０１〜ＲＰ０５は、他の動作と同様に、編集ボタンＢｅ１〜Ｂｅ７によって、編集することができる。
【０１３１】
本実施形態においては、第１編集画面Ｄｅ１において、カメラ７００による情報取得の結果に基づいて行われる１以上の動作を含む動作群に対して、一つの動作（本実施形態においては、ある位置への制御点の移動）に対応しカメラ７００による情報取得の結果に基づいて決定される位置を表す教示点（中継点Ｐ５）を、追加することができる。その結果、カメラ７００による情報取得の結果に基づいて行われる動作（ここでは、各中継点への移動）は、ロボット１００の動作シーケンスの作成において、動作群としてまとめて取り扱われる。すなわち、カメラ７００による情報取得の結果に基づいて行われる動作は、まとめてプロパティーを設定されることができる。また、カメラ７００による情報取得の結果に基づいて行われる動作は、一括して、移動、削除などの編集を行うこともできる。このため、カメラ７００による情報取得と、カメラ７００による情報取得の結果に基づいて決定される位置への移動とが、独立に設定される制御装置に比べて、カメラ７００のセンシングによって決定される位置に移動する動作を含む動作シーケンスの作成を、容易に行うことができる。
【０１３２】
たとえば、カメラ７００による情報取得と、カメラ７００による情報取得の結果に基づいて決定される位置への移動とが、独立に設定される制御装置においては、カメラ７００による情報取得を先に指定した上で、カメラ７００による情報取得の結果に基づいて決定される位置への移動を指定する必要がある。そのような制御装置によるシーケンスの作成作業において、カメラ７００による情報取得が指定されていない状態で、カメラ７００による情報取得の結果に基づいて決定される位置への移動が指定され、ロボット１００の動きが実際にテストされると、予測不能な位置にロボット１００の制御点が移動することとなる。しかし、本実施形態においては、カメラ７００による情報取得の結果に基づいて決定される位置への移動は、「Ｖｉｓｉｏｎ」Ｃ０１に従属する形態で指定されるため、そのような事態が生じる可能性を低減できる。
【０１３３】
図１９は、図１８の状態において、「中継点」ＲＰ０４が選択された場合の設定装置６００のディスプレイ６０２の表示を示す図である。ディスプレイ６０２には、第１編集画面Ｄｅ１８が示される。第１編集画面Ｄｅ１８は、第１表示部分Ｄａ１８と、第２表示部分Ｄａ２８と、第３表示部分Ｄａ３８とを含む。「中継点」ＲＰ０４が選択されると、第３表示部分Ｄａ３８には、「中継点」ＲＰ０４のプロパティー設定のための画面が表示される。「中継点」ＲＰ０４は、「Ｖｉｓｉｏｎ」Ｃ０１１の下に設定されている中継点であるため、第３表示部分Ｄａ３８において、「Ｖｉｓｉｏｎ」のチェックボックスにチェックが入っている。
【０１３４】
第３表示部分Ｄａ３８においては、入力窓Ｓ３８において、カメラ７００で認識された基準位置に対して、Ｚ方向に１０．８ｍｍの位置が、「中継点」ＲＰ０４のプロパティーとして指定されている。このような態様とすれば、動作群のプロパティーを設定できる第１編集画面Ｄｅ１を介して、教示点として通過すべき位置を、カメラ７００によって取得された画像中から検出された位置に基づいて、具体的に設定することができる。
【０１３５】
本実施形態においては、動作群「Ｖｉｓｉｏｎ」Ｃ０１１にプロパティーが設定されることができる第１編集画面Ｄｅ１６，Ｄｅ１７において、教示点をさらに追加することができる中継点追加ボタンＢｒｐ２が表示される（図１７〜図１９参照）。このような態様とすれば、動作群のプロパティーを設定できる第１編集画面Ｄｅ１を介して、教示点として通過すべき位置を追加することができる。このため、センシングによって決定される位置に移動する動作を含む動作シーケンスの作成を、容易に行うことができる。
【０１３６】
（３）教示画面からの中継点の設定：
以下では、位置設定画面Ｄｔにおいて、あらかじめ位置を特定し、その後、位置設定画面Ｄｔから「Ｖｉｓｉｏｎ」コンテナに対して中継点を設定する例を説明する。
【０１３７】
図１７の状態において、教示ボタンＢｔが押されると、ディスプレイ６０２の表示は、図１５に示す位置設定画面Ｄｔに切り替えられる。ユーザーは、位置設定画面Ｄｔにおいて、ボタンＢｐ０１〜Ｂｐ０６，Ｂｒ０１〜Ｂｒ０６を操作して、エンドエフェクター２００の制御点を目標地点に移動させ、エンドエフェクター２００に目的とする姿勢をとらせる。その後、ユーザーは、位置設定画面Ｄｔにおいて、中継点追加ボタンＢｒｐ１を押す。
【０１３８】
中継点追加ボタンＢｒｐ１は、教示点として通過すべき位置を追加することができるユーザーインターフェイスである。中継点追加ボタンＢｒｐ１が押されると、位置設定画面Ｄｔで特定された地点および姿勢を有する「中継点」ＲＰ０５が、教示点として追加され、画面は、図１８の状態となる。この場合は、「中継点」ＲＰ０５は、設定された時点で、プロパティー、すなわち地点および姿勢が、決定されている。
【０１３９】
本実施形態においては、動作としての移動において通過すべき位置に対して具体的な位置を特定する位置設定画面Ｄｔに、教示点として通過すべき位置をさらに追加できる中継点追加ボタンＢｒｐ１が含まれる。このような態様とすれば、第１編集画面Ｄｅ１からだけでなく、位置設定画面Ｄｔからも、教示点として通過すべき位置を追加することができる。このため、位置設定画面Ｄｔからはそのような設定ができない制御装置に比べて、センシングによって決定される位置に移動する動作を含む動作シーケンスの作成を、容易に行うことができる。
【０１４０】
また、本実施形態においては、位置設定画面Ｄｔにおいて、具体的に位置および姿勢のパラメーターを設定した後に、その位置および姿勢を通過すべき位置として追加することができる。このためユーザーは、通過すべき位置を決定して、直感的に、教示点として追加することができる。
【０１４１】
たとえば、位置設定画面Ｄｔに中継点追加ボタンＢｒｐ１を有さない態様においては、ユーザーが、位置設定画面Ｄｔで中継点として具体的な位置を教示している際に（図３のＳ１３０参照）、中継点を追加する必要を感じた場合には、ユーザーは、以下の処理を行う必要がある。すなわち、ユーザーは、再度、第１編集画面Ｄｅ１（図１７、図１８参照）に戻って、具体的な位置が特定されていない中継点を追加し（図３のＳ１１０参照）、再度、位置設定画面Ｄｔにおいて、追加した中継点について、具体的な位置を教示する必要がある（図３のＳ１３０参照）。しかし、本実施形態の様な態様とすれば、位置設定画面Ｄｔにおいて、具体的にパラメーターを設定した後に、教示点として通過すべき位置を追加することができる。このため、位置設定画面Ｄｔと第１編集画面Ｄｅ１との間の行き来の回数を低減して、効率的にロボット１００の動作シーケンスを作成することができる。
【０１４２】
本実施形態の設定装置６００のディスプレイ６０２を、本明細書において「表示部」とも呼ぶ。ロボット制御装置３００のＲＡＭ３３０を、本明細書において「第１記憶部」とも呼ぶ。ロボット制御装置３００のＲＡＭ３３０を、本明細書において「第２記憶部」とも呼ぶ。ＧＵＩ情報３０３ｇを、本明細書において「第１情報」とも呼ぶ。プログラム生成情報３０３ｐを、本明細書において「第２情報」とも呼ぶ。カメラ７００を、本明細書において「撮像部」とも呼ぶ。力覚センサー１９０を、本明細書において「力検出部」とも呼ぶ。中継点追加ボタンＢｒｐ１を、本明細書において「第１操作部」とも呼ぶ。中継点追加ボタンＢｒｐ２を、本明細書において「第２操作部」とも呼ぶ。ロボット制御装置３００と設定装置６００とを、まとめて「制御装置」とも呼ぶ。ロボット１００のうち、ロボット制御装置３００によって制御されるロボット制御装置３００以外の部分を、「ロボット」とも呼ぶ。
【０１４３】
Ｂ．第２実施形態：
第２実施形態のロボットシステムにおいては、第１編集画面Ｄｅ１の第２表示部分Ｄａ２の表示の態様が第１実施形態とは異なる。また、第２実施形態のロボットシステムにおいては、第２表示部分Ｄａ２において指定された動作のフローチャートを、第３表示部分Ｄａ３に代えて表示することができる。第２実施形態のロボットシステムの他の点は、第１実施形態のロボットシステム１と同じである。
【０１４４】
（１）動作アイコンとプロパティーアイコンの表示。
図２０は、図３のステップＳ１１０において、動作シーケンスを構成する動作をユーザーが選択した後の状態の設定装置６００のディスプレイ６０２（図１参照）の表示を示す図である。ディスプレイ６０２には、第１編集画面Ｄｅ１Ａが示される。第１編集画面Ｄｅ１Ａは、第１表示部分Ｄａ１Ａと、第２表示部分Ｄａ２Ａと、第３表示部分Ｄａ３Ａとを含む。第１表示部分Ｄａ１Ａと、第２表示部分Ｄａ２Ａと、第３表示部分Ｄａ３Ａとは、それぞれ第１編集画面Ｄｅ１２の第１表示部分Ｄａ１２と、第２表示部分Ｄａ２２と、第３表示部分Ｄａ３２に対応する（図７参照）。
【０１４５】
第１表示部分Ｄａ１Ａは、第１表示部分Ｄａ１１と同一の表示である。
【０１４６】
第２表示部分Ｄａ２２には、第１表示部分Ｄａ１Ａを介して選択された動作を表す表示Ｍ０５２，Ｍ０３１，Ｍ０２１，Ｍ０５３，Ｍ０４１の配列として、動作シーケンスが表示されている。「ハンド」Ｍ０４１に従属する動作として、さらに、Ｌ０２１〜Ｍ０５６の動作が表示されている。
【０１４７】
第２表示部分Ｄａ２２において、各動作は、各動作を表すアイコンを含む表示で表されている。異なる動作については、形状と色の少なくとも一方が異なるアイコンが付されている。すなわち、「動かす」Ｍ０５２，Ｍ０５４，Ｍ０５５，Ｍ０５６の左側には、矢印の動作アイコンＩ０５２，Ｉ０５４，Ｉ０５５，Ｉ０５６が表示されている。「コンテナ」Ｍ０３１の左側には、フォルダーの形状の動作アイコンＩ０３１が表示されている。「ハンド」Ｍ０４１の左側には、手の形状の動作アイコンＩ０４１が表示されている。「停止」Ｍ０９１の左側には、正方形の動作アイコンＩ０９１が表示されている。
【０１４８】
このような処理を行うことにより、ユーザーは、動作アイコンに基づいて、編集対象として選択すべき動作や動作を、直感的に把握することができる。
【０１４９】
また、各動作の表示において、動作アイコンの右側には、プロパティーの設定状態を表すプロパティーアイコンが表示されている。図２０においては、技術の理解を容易にするため、プロパティーアイコンＩＰ０５２，ＩＰ０５３，ＩＰ０５５のみ符号を付す。
【０１５０】
プロパティーアイコンは、円形の形状を有する。動作のプロパティーの設定が適切に完了していることを表すプロパティーアイコンは、青色で表示される（ＩＰ０５５参照）。動作のプロパティーの設定が完了していないことを表すプロパティーアイコンは、白色で表示される（ＩＰ０５２参照）。制約条件を満たさない値がプロパティーに設定されていることを表すプロパティーアイコンは、赤色で表示される（ＩＰ０５３参照）。
【０１５１】
「制約条件を満たさない場合」とは、たとえば、ロボット１００のアーム１１０が周辺の構造物と干渉するようなプロパティーの設定がされている場合である。また、いったんある動作のプロパティーが設定された後に、その動作が含まれるコンテナのプロパティーが設定され、その結果、コンテナのプロパティーの設定内容と、先に設定された動作のプロパティーの設定内容が整合しない場合も、制約条件を満たさない場合に含まれる。すなわち、制約条件は、あらかじめ定められているものであってもよいし、他の設定の結果として定められるものであってもよい。
【０１５２】
このような処理を行うことにより、ユーザーは、アイコンの表示色に基づいて、各動作のプロパティーの設定が適切に完了しているか否かを直感的に把握することができる。また、ユーザーは、赤色のプロパティーアイコンが表示されている動作について、プロパティーの再設定を促されることができる。
【０１５３】
さらに、第２表示部分Ｄａ２２には、「繰り返し」Ｌ０２１に従属し、条件が満たされるまで繰り返される処理の左側には、繰り返しを表す矢印ＩＲが表示される。このような表示を行うことにより、ユーザーは、どの処理が繰り返されるループ内に属しているのか、容易に理解することができる。
【０１５４】
動作の種類ごとに異なる動作アイコンが表示される点と、プロパティーアイコンが表示される点、および処理のループが視覚的に表示される点以外については、第２実施形態の第２表示部分Ｄａ２は、第１実施形態の第２表示部分Ｄａ２と同じである。
【０１５５】
第３表示部分Ｄａ３Ａには、第２表示部分Ｄａ２Ａに表示された動作シーケンスに含まれる動作のうち、選択された動作のプロパティーが表示される。第３表示部分Ｄａ３Ａを介して、そのプロパティーの値が設定される（図３のＳ１２０参照）。図２０の状態においては、「動かす」の表示Ｍ０５５が選択されているため、第３表示部分Ｄａ３Ａには、「動かす」のプロパティーを設定するための画面が表示されている。
【０１５６】
第３表示部分Ｄａ３Ａにおいては、表示Ｓ３１を介して、「動かす」のプロパティーとして、動きの指定のされ方について、「直線」、「リニア（ＰｔｏＰ）」、または「ジャンプ」を設定されることができる。「直線」が選択された場合には、制御点は、直線に沿って移動する。「リニア」が選択された場合には、制御点は、出発地点と目的地点のみを指定され、その間の移動経路は指定されない。「ジャンプ」が選択された場合には、制御点は、出発地点と目的地点の間にある領域を回避して、出発地点から目的地点に移動する。
【０１５７】
また、第３表示部分Ｄａ３Ａにおいては、表示Ｓ３３を介して、「動かす」のプロパティーとして、動作の目的地点の設定方法について「ティーチ」または「Ｖｉｓｉｏｎ」が設定されることができる。表示Ｓ３５を介して、「動かす」のプロパティーとして、動作速度について、「低速」、「ふつう」、または「高速」が設定されることができる。
【０１５８】
第３表示部分Ｄａ３Ａは、フローチャート表示ボタンＢＦを含む。第３表示部分Ｄａ３Ａにおいてフローチャート表示ボタンＢＦが押された場合には、第３表示部分Ｄａ３Ａに代えて、そのときに指定されている動作を含むフローチャートが表示される。第３表示部分Ｄａ３Ａの他の点は、第１実施形態の第３表示部分Ｄａ３と同じである。
【０１５９】
図２１は、図２０に示す第１編集画面Ｄｅ１Ａにおいて、フローチャート表示ボタンＢＦが押された場合に示されるディスプレイ６０２の表示を示す図である。ディスプレイ６０２には、第１編集画面Ｄｅ１Ｂが示される。第１編集画面Ｄｅ１Ｂは、第１表示部分Ｄａ１Ｂと、第２表示部分Ｄａ２Ｂと、第４表示部分Ｄａ４とを含む。第１表示部分Ｄａ１Ｂは、第１表示部分Ｄａ１Ａと同一の表示である。第２表示部分Ｄａ２Ｂは、第２表示部分Ｄａ２Ａと同一の表示である。第４表示部分Ｄａ４は、第３表示部分Ｄａ３Ａに代えて表示される。
【０１６０】
第４表示部分Ｄａ４においては、フローチャート表示ボタンＢＦが押されたときに、第２表示部分Ｄａ２Ｂ（図２０参照）において指定されていた「動かす」Ｍ０５５を含むシーケンスの一部のフローチャートが表示される。より具体的には、（ｉ）「動かす」Ｍ０５５と、（ｉｉ）「動かす」Ｍ０５５に至る分岐の直前の処理と、（ｉｉｉ）「動かす」Ｍ０５５以降の処理が合流する点の後の最初の処理と、（ｉｖ）それらの間の動作と、を含むシーケンスの一部が、フローチャートとして表示される。
【０１６１】
本実施形態においては、第２表示部分Ｄａ２に表示されている動作シーケンスの一部を表すフローチャートを含む第４表示部分Ｄａ４が、第３表示部分Ｄａ３Ａに代えて、表示される。このような処理を行うことにより、ユーザーは、第４表示部分Ｄａ４のフローチャートを確認しつつ、第２表示部分Ｄａ２Ｂの動作シーケンスを編集することができる。
【０１６２】
Ｃ．第３実施形態：
図２２は、複数のプロセッサーによってロボットの制御装置が構成される一例を示す概念図である。この例では、ロボット１００のロボット制御装置３００が、ロボット１００の外部に設けられている点が図１と異なる。また、この例では、ロボット１００およびそのロボット制御装置３００の他に、設定装置としてのパーソナルコンピューター６００，６００ｄと、ＬＡＮなどのネットワーク環境を介して提供されるクラウドサービス１０００とが描かれている。パーソナルコンピューター６００，６００ｄは、それぞれプロセッサーとメモリーとを含んでいる。また、クラウドサービス１０００においてもプロセッサーとメモリーを利用可能である。プロセッサーは、コンピューター実行可能な命令を実行する。これらの複数のプロセッサーの一部または全部を利用して、ロボット１００のロボット制御装置および設定装置を実現することが可能である。
【０１６３】
Ｄ．他の形態：
Ｄ１．他の形態１：
（１）上記実施形態においては、第１編集画面Ｄｅ１（図６〜図９参照）において、左下の「コマンド」ボタンＣ０２が押された場合に、第１編集画面Ｄｅ１のうちの第２表示部分Ｄａ２に代わって、第２編集画面Ｄｅ２が表示される。しかし、第２編集画面Ｄｅ２は、第１編集画面Ｄｅ１全体に代えて表示されることもできる。そのような場合には、第２編集画面Ｄｅ２中に、第１編集画面Ｄｅ１に切り替えるためのボタンなどのユーザーインターフェイスを備えることが好ましい。
【０１６４】
（２）上記実施形態においては、ＧＵＩ情報３０３ｇとプログラム生成情報３０３ｐ（図５参照）は、いずれもロボット制御装置３００のＲＡＭ３３０（図１参照）内に格納されている。しかし、ＧＵＩ情報３０３ｇとプログラム生成情報３０３ｐは、異なるハードウェアである別の記憶部にそれぞれ格納されていてもよい。
【０１６５】
（３）上記実施形態においては、プログラムファイルの作成（図３のＳ１４０参照）は、シーケンスの作成（図３のＳ１１０参照）、プロパティーの設定（図３のＳ１２０参照）、およびジョグ＆ティーチ（図３のＳ１３０参照）の後に行われる。しかし、プログラムファイルの作成は、たとえば、第１編集画面Ｄｅ１を介したシーケンスの作成（図３のＳ１１０参照）およびプロパティーの設定（図３のＳ１２０参照）の際に、行われる態様とすることもできる。そのような態様においては、たとえば、ユーザーが、第１編集画面Ｄｅ１内の所定のボタンを押すことにより、プログラムファイルの作成が行われてもよい。また、プログラムファイルの作成は、第１編集画面Ｄｅ１を介したシーケンスの作成（図３のＳ１１０参照）およびプロパティーの設定（図３のＳ１２０参照）において、内容が変更されるたびに自動的におこなわれる態様とすることもできる。
【０１６６】
（４）設定装置６００は、第１編集画面Ｄｅ１を介して設定された動作シーケンスが、プログラミング言語で表現された動作シーケンスＣＬＭに変換される機能（図３のＳ１４０、ならびに図１３および図１４参照）に加えて、以下の機能を有していてもよい。すなわち、設定装置６００は、第２編集画面Ｄｅ２を介してプログラミング言語で表現された動作シーケンスＣＬＭを、第１編集画面Ｄｅ１に表示すべき動作シーケンスの画像に変換する機能を備えていてもよい。そのような態様においては、第１編集画面Ｄｅ１を介して設定され得ない設定内容については、第１編集画面Ｄｅ１を介して設定可能な設定内容に置き換えられる態様とすることができる。
【０１６７】
（５）上記実施形態においては、ジョグ＆ティーチによって、ロボット１００の制御点を定めるパラメーターの値が決定される（図３のＳ１３０および図１５参照）。しかし、ユーザーがロボット１００のアーム１１０を直接動かして、ロボット１００の制御点を定めるパラメーターの値を決定することもできる。また、機械学習とシミュレーションによって、ロボット１００の制御点を定めるパラメーターの値を決定することもできる。
【０１６８】
Ｄ２．他の形態２：
上記実施形態においては、第１表示部分Ｄａ１は「コンテナ」Ｍ０３を含み、第２表示部分Ｄａ２においては、メソッド（動作）だけでなく、１以上の動作を含むコンテナも配列して編集することが可能である（図６〜図９、ならびに図１７〜図２１参照）。しかし、第１表示部分Ｄａ１が「コンテナ」Ｍ０３を含まず、第２表示部分Ｄａ２において、コンテナも配列して編集することができない態様とすることもできる。
【０１６９】
Ｄ３．他の形態３：
上記実施形態においては、第１編集画面Ｄｅ１の第３表示部分Ｄａ３を介して、動作のプロパティーが設定され得る（図７〜図９、図１９、ならびに図２０）。しかし、第１編集画面Ｄｅ１においては、プロパティーは設定できず、第２編集画面Ｄｅ２を通じてプロパティーの設定がなされうる態様とすることもできる。
【０１７０】
Ｄ４．他の形態４：
（１）上記実施形態においては、コンテナのプロパティーの設定が具体的に決定されると、そのコンテナに含まれるプリミティブメソッドのプロパティーは、自動的に決定されるか、またはそのコンテナに含まれるプリミティブメソッドのプロパティーについて設定され得ない設定範囲が生じる。しかし、コンテナのプロパティーの設定が具体的に決定された場合にも、そのコンテナに含まれるプリミティブメソッドのプロパティーが、自動的に決定されない態様とすることもできる。
【０１７１】
そのような態様においては、コンテナのプロパティーの設定内容と、そのコンテナに属する動作のプロパティーの設定内容が整合しない場合には、その動作には、プロパティーが設定されていないことを表すプロパティーアイコン、およびプロパティーが適切に設定されていることを表すプロパティーアイコンとは異なるプロパティーアイコンが表示されることが好ましい（図２０および図２１のＩＰ０５３参照）。
【０１７２】
（２）上記実施形態においては、動作を表すアイコンとその動作のプロパティーの設定状態を表すプロパティーアイコンは、別個のアイコンである（図２０のＩ０５２，ＩＰ０５２参照）。しかし、一つのアイコンが、ある動作を表すとともに、その動作のプロパティーの設定状態を表す態様とすることもできる。
【０１７３】
Ｄ５．他の形態５：
（ｉ）動作と、第１編集画面Ｄｅ１において動作を表す画像と、を対応づけている第１情報としてのＧＵＩ情報３０３ｇと、（ｉｉ）動作と、第２編集画面Ｄｅ２において動作を表すプログラミング言語による表現と、を対応づけている第２情報としてのプログラム生成情報３０３ｐ（図５参照）とは、記憶部内において、同一のデータファイル内に格納されていてもよいし、別個のデータファイルとして格納されていてもよい。ただし、第１情報と第２情報が別個のファイルとして格納されている態様とすれば、必要に応じて、表示部の仕様ごとに、第１情報のデータファイルを用意することができる。そして、必要に応じて、制御対象の仕様ごとに、第２情報のデータファイルを用意することができる。よって、第１情報と第２情報が区別されずに同一のデータファイルに格納されている態様に比べて、情報の管理が容易である。
【０１７４】
Ｅ．さらに他の形態：
適用例１：
ロボットを制御する制御装置が提供される。この制御装置は：複数の動作を表す画像の中から１以上の動作を表す画像を選択し、画面上で配列することによりロボットの動作シーケンスを編集することができる第１編集画面と、前記第１編集画面を介して編集された動作シーケンスを変換して得られる、プログラミング言語で表現された前記動作シーケンスが表示され、前記プログラミング言語で表現された前記動作シーケンスを編集することができる第２編集画面と、を表示部に表示することができる、表示制御部と；前記第１編集画面と前記第２編集画面の少なくとも一方を介して編集された動作シーケンスに基づいて、ロボットを制御する動作制御部と、を備える。
このような態様とすれば、高度なプログラミング技術を有さないユーザーは、第１編集画面を使用して、ロボットの動作シーケンスを編集することができる。一方、高度なプログラミング技術を有しているユーザーは、第２編集画面を使用して、詳細にロボットの処理内容を指定しつつ、ロボットの動作シーケンスを編集することができる。
【０１７５】
適用例２：
適用例１記載の制御装置であって；前記表示制御部は、さらに、１以上の動作を含む動作群を選択し、画面上で配列することにより、ロボットの動作シーケンスを編集することができる、前記第１編集画面を前記表示部に表示することができる、態様とすることができる。
このような態様とすれば、ユーザーは、たとえば、制御装置においてあらかじめ用意されている動作群を選択し、画面上で配列することにより、ロボットの動作シーケンスを編集することができる。また、動作群に含まれる１以上の動作のうち少なくとも一部を自身または他のユーザーがあらかじめ編集した動作群を選択し、画面上で配列することにより、ロボットの動作シーケンスを編集することができる。よって、第１編集画面において、動作を一つずつ選択し配列する必要がある態様に比べて、ユーザーは、容易にロボットの動作シーケンスを編集することができる。
【０１７６】
適用例３：
適用例２記載の制御装置であって；前記表示制御部は：前記第１編集画面として、前記動作のプロパティーを設定することができ、かつ、前記動作群のプロパティーを設定することができる、前記第１編集画面を、前記表示部に表示することができ；前記動作群に対して設定されたプロパティーに応じて、前記動作群に含まれる前記動作のプロパティーを、自動的に設定する、態様とすることができる。
このような態様とすれば、第１編集画面において、各動作のプロパティーを設定する必要がある態様に比べて、ユーザーは、容易に、動作群に含まれる１以上の動作のプロパティーを設定することができる。
【０１７７】
適用例４：
適用例１または２記載の制御装置であって；前記表示制御部は、前記動作のプロパティーを設定することができる前記第１編集画面を、前記表示部に表示することができ；前記制御装置は、さらに、前記第１編集画面を介して編集された動作シーケンス、および前記第１編集画面を介して設定された前記プロパティーの情報を含むプログラムファイルを作成する、ファイル作成部を備える、態様とすることができる。
プログラムファイルが動作シーケンスの情報のみを含み、プロパティーの情報を含まない場合は、プログラムファイルを使用してロボットを動作させるためには、別途、プログラムファイルに対してプロパティーの情報を書き込む必要がある。しかし、上記態様によれば、動作シーケンスだけでなく、プロパティーの情報の情報も含めたプログラムファイルが作成されるため、作成されたプログラムファイルを使用してロボットを動作させることができる。
【０１７８】
適用例５：
適用例４記載の制御装置であって；前記表示制御部は、第１記憶部に格納されており、前記動作と、前記第１編集画面において前記動作を表す画像と、を対応づけている第１情報を参照して、前記画像を含む前記第１編集画面を前記表示部に表示し；前記ファイル作成部は、第２記憶部に格納されており、前記動作と、前記第２編集画面において前記動作を表す前記プログラミング言語による表現と、を対応づけている第２情報を参照して、前記第１編集画面を介して編集された動作シーケンスを変換して、前記プログラムファイルを作成し；前記表示制御部は、前記プログラムファイルに基づいて、前記動作を表す前記プログラミング言語による表現を含む前記第２編集画面を、前記表示部に表示する、態様とすることができる。
このような態様とすれば、動作を表す画像を含む第１編集画面を表示部に表示することにより、ユーザーに、直感的に分かりやすい第１編集画面を提示することができる。また、動作を表す前記プログラミング言語による表現を含む第２編集画面を表示部に表示することにより、ユーザーに、詳細な動作内容が分かる第２編集画面を提示することができる。
【０１７９】
適用例６：
本明細書に開示される技術は、適用例１から５のいずれか１項に記載の制御装置によって制御されるロボットの態様とすることができる。
【０１８０】
適用例７：
本明細書に開示される技術は、適用例１から５のいずれか１項に記載の制御装置と；前記制御装置によって制御されるロボットと；を備えるロボットシステムの態様とすることができる。
【０１８１】
上述した本発明の各形態の有する複数の構成要素はすべてが必須のものではなく、上述の課題の一部又は全部を解決するため、あるいは、本明細書に記載された効果の一部又は全部を達成するために、適宜、前記複数の構成要素の一部の構成要素について、その変更、削除、新たな他の構成要素との差し替え、限定内容の一部削除を行うことが可能である。また、上述の課題の一部又は全部を解決するため、あるいは、本明細書に記載された効果の一部又は全部を達成するために、上述した本発明の一形態に含まれる技術的特徴（technical features）の一部又は全部を上述した本発明の他の形態に含まれる技術的特徴の一部又は全部と組み合わせて、本発明の独立した一形態とすることも可能である。
【符号の説明】
【０１８２】
１…ロボットシステム、１００…ロボット、１１０…アーム、１１０ａ，１１０ｂ，１１０ｄ…アーム要素、１９０…力覚センサー、２００…エンドエフェクター、３００…ロボット制御装置、３０３…メソッド情報、３０３ｇ…ＧＵＩ情報、３０３ｐ…プログラム生成情報、３０４…ジョブ情報、３０５…プログラムファイル、３１０…ＣＰＵ、３１９…動作制御部、３３０…ＲＡＭ、３４０…ＲＯＭ、４１０…サーボモーター、４１０ｏ…出力軸、４２０…モーター角度センサー、５１０…減速機、５１０ｉ…入力軸、５１０ｏ…出力軸、６００，６００ａ，６００ｂ，６００ｃ，６００ｄ…設定装置（コンピューター）、６０２…ディスプレイ、６０４…キーボード、６０５…マウス、６１０…ＣＰＵ、６１２…表示制御部、６１４…ファイル作成部、６３０…ＲＡＭ、６４０…ＲＯＭ、７００…カメラ、７５０…搬送装置、８００…処理装置、９００…警告灯、１０００…クラウド、Ａｔ…搬送方向を示す矢印、ＢＦ…フローチャート表示ボタン、Ｂｅ１〜Ｂｅ７…編集ボタン、Ｂｐ０１〜Ｂｐ０６，Ｂｒ０１〜Ｂｒ０６…ジョグボタン、Ｂｒｐ１，Ｂｒｐ２…中継点追加ボタン、Ｂｓ…保存ボタン、Ｂｔ…教示ボタン、Ｃ０１…Ｖｉｓｉｏｎ表示、Ｃ０１１…Ｖｉｓｉｏｎコンテナの動作表示、Ｃ０２…コマンドボタン、ＣＬＭ…プログラムリスト、ＣＬＭ０１１，ＣＬＭ０３１，ＣＬＭ０４１，ＣＬＭ０５１，ＣＬＭ０５２，ＣＬＭ０５３，ＣＬＭ０６１，ＣＬＭ０８１…リスト部分、ＣＭ…動作表示、Ｄａ１１〜Ｄａ１４，Ｄａ１６〜Ｄａ１８，Ｄａ１Ａ，Ｄａ１Ｂ…第１表示部分、Ｄａ２１〜Ｄａ２４，Ｄａ２６〜Ｄａ２８，Ｄａ２Ａ，Ｄａ２Ｂ…第２表示部分、Ｄａ３１〜Ｄａ３４，Ｄａ３６〜Ｄａ３８，Ｄａ３Ａ…第３表示部分、Ｄａ４…第４表示部分、Ｄｅ１１〜Ｄｅ１４，Ｄｅ１６〜Ｄｅ１８，Ｄｅ１Ａ，Ｄｅ１Ｂ…第１編集画面、Ｄｅ２１，Ｄｅ２２…第２編集画面、Ｄｔ…位置設定画面、Ｉ０２１，Ｉ０３１，Ｉ０４１，Ｉ０５２，Ｉ０５３，Ｉ０５４，Ｉ０５５，Ｉ０９１，Ｉ０５６…動作アイコン、ＩＰ０５２，ＩＰ０５３，ＩＰ０５５…プロパティーアイコン、ＩＲ…繰り返しを表す矢印、Ｊ１〜Ｊ４…関節、Ｌ０１，Ｌ０２…ロジックを表す動作表示、Ｌ０１１…「Ｉｆ」の動作表示、Ｌ０２１…「繰り返し」の動作表示、ＬＧ…ロジックを表す動作表示、Ｍ０１〜Ｍ０９…動作表示、Ｍ０１１…「基本設定」の動作表示、Ｍ０２１…「コメント」の表示、Ｍ０３１…「コンテナ」の動作表示、Ｍ０４１…「ハンド」の動作表示、Ｍ０５１，Ｍ０５２，Ｍ０５３，Ｍ０５４，Ｍ０５５，Ｍ０５６…「動かす」の動作表示、Ｍ０５５…「ハンド」の動作表示、Ｍ０６１…「信号出力」の動作表示、Ｍ０８１…「待機する」の動作表示、Ｍ０９１…「停止」の動作表示、ＭＳ…モードを選択するための表示、Ｐ１〜Ｐ５…中継点、ＲＰ０１〜ＲＰ０５…中継点の表示、Ｓ３４２…待機する対象を選択するための表示、Ｓ３４４…待機する時間を指定するための入力窓、Ｓ３４６…待ち対象ビットを指定するためのスライダー、Ｓ３４８…待機する対象の状態を指定するための表示、Ｓ３Ａ１…動かし方を設定するための表示、Ｓ３Ａ３…行き先を設定するための表示、Ｓ３Ａ５…速度を設定するための表示、Ｓ３８…基準点からの距離を設定するための表示、ＳＳ…速度を選択するための表示、Ｗ０１…ワークピース、ＷＳ…ワークステーション
【図１】
2019177422.tif 000003
【図２】
2019177422.tif 000004
【図３】
2019177422.tif 000005
【図４】
2019177422.tif 000006
【図５】
2019177422.tif 000007
【図６】
2019177422.tif 000008
【図７】
2019177422.tif 000009
【図８】
2019177422.tif 000010
【図９】
2019177422.tif 000011
【図１０】
2019177422.tif 000012
【図１１】
2019177422.tif 000013
【図１２】
2019177422.tif 000014
【図１３】
2019177422.tif 000015
【図１４】
2019177422.tif 000016
【図１５】
2019177422.tif 000017
【図１６】
2019177422.tif 000018
【図１７】
2019177422.tif 000019
【図１８】
2019177422.tif 000020
【図１９】
2019177422.tif 000021
【図２０】
2019177422.tif 000022
【図２１】
2019177422.tif 000023
【図２２】
2019177422.tif 000024