A.第1実施形態:
A1.ロボットシステムの構成:
図1は、本実施形態のロボットシステム1を模式的に示す説明図である。本実施形態のロボットシステム1は、ロボット100と、エンドエフェクター200と、カメラ700と、設定装置600と、を備える。
ロボット100は、ロボット制御装置300と、4個の関節J1~J4を備えたアーム110と、を有する4軸ロボットである。関節J1,J2,J4は、ねじり関節である。関節J3は、直動関節である。アーム110を構成する関節と関節の間の構成要素を、本明細書において「アーム要素」と呼ぶ。図1においては、アーム110に含まれる複数のアーム要素のうち、関節J1と関節J2の間のアーム要素110a、関節J2と関節J3の間のアーム要素110b、およびアーム110の先端を構成するアーム要素110dについて、符号を付して示す。
ロボット100は、4個の関節J1~J4をそれぞれサーボモーターで回転または直進させることにより、アーム110の先端部に取りつけられたエンドエフェクター200を、3次元空間中の指定された位置に指定された姿勢で配することができる。なお、3次元空間におけるエンドエフェクター200の位置を代表する地点を、「制御点」またはTCP(Tool Center Point)とも呼ぶ。
ロボット100は、各関節に、サーボモーター410と、減速機510と、モーター角度センサー420と、を備える。図1では、技術の理解を容易にするために、関節J1についてのみ、模式的にサーボモーター410と、減速機510と、モーター角度センサー420と、を示している。
サーボモーター410は、ロボット制御装置300から電流を供給されて駆動力を発生させる。より具体的には、サーボモーター410は、ロボット制御装置300から電流を供給されて、その出力軸410oを回転させる。
モーター角度センサー420は、サーボモーター410の出力軸410oの角度位置Pmを検出する。モーター角度センサー420は、ロータリエンコーダーである。モーター角度センサー420が検出した出力軸410oの角度位置Pmは、ロボット制御装置300に送信される。
減速機510は、入力軸510iと出力軸510oを備える。減速機510は、入力軸510iに対する回転入力を、回転入力より回転速度が低い回転出力に変換して、出力軸510oから出力する。減速機510は、具体的には、波動歯車減速機である。減速機510の入力軸510iは、サーボモーター410の出力軸410oに接続されている。入力軸510iの角度位置は、サーボモーター410の出力軸410oの角度位置Pmと等しい。
アーム要素110aは、関節J1の減速機510の出力軸510oに固定されている。その結果、アーム要素110aは、サーボモーター410の出力軸410oの回転によって、減速機510を介して、関節J1において回転される。
ロボット100は、アーム110の先端に力覚センサー190を備えている。エンドエフェクター200は、力覚センサー190を介して、ロボット100のアーム110に取りつけられている。力覚センサー190は、加えられた外力の大きさを検出することができる。より具体的には、力覚センサー190は、外部、すなわち、力覚センサー190以外の構成から加えられる、X軸、Y軸、Z軸の3軸方向の力と、X軸、Y軸、Z軸まわりのトルクを測定することができる。このため、力覚センサー190は、エンドエフェクター200に作用するX軸、Y軸、Z軸の3軸方向の力と、X軸、Y軸、Z軸まわりのトルクを測定することができる。力覚センサー190の出力は、ロボット制御装置300に送信され、ロボット100の制御に使用される。
ロボット制御装置300は、アーム110およびエンドエフェクター200を制御する制御装置である。ロボット制御装置300は、ロボット100の筐体内に収容されている。ロボット制御装置300は、プロセッサーであるCPU(Central Processing Unit)310と、RAM(Random Access Memory)330と、ROM(Read Only Memory)340と、を備えるコンピューターを含む。CPU310は、ROM340に記憶されたコンピュータープログラムをRAM330にロードして実行することによって、後述する様々な機能を実現する。ロボット100を制御するロボット制御装置300のCPU310の機能部を、「動作制御部319」として図1に示す。
エンドエフェクター200は、アーム110の先端に取りつけられている。エンドエフェクター200は、ロボット制御装置300に制御されて、ワークピースW01をつかむことができ、また、つかんでいるワークピースW01を離すことができる。その結果、たとえば、ロボット100のアーム110とエンドエフェクター200とは、ロボット制御装置300に制御されて、作業対象物であるワークピースW01をつかんで移動させることができる。なお、図1においては、技術の理解を容易にするため、エンドエフェクター200を単純な円柱で示している。
カメラ700は、ワークピースW01と、そのワークピースW01の周辺と、アーム110と、を含む写真画像を撮像することができる。カメラ700が生成した画像は、ロボット制御装置300に送信され、ロボット100の制御に使用される。
設定装置600は、ロボット100の動作を規定する動作シーケンスを生成する。設定装置600は、出力装置として機能するディスプレイ602と、入力装置として機能するキーボード604およびマウス605と、を備えたコンピューターである。設定装置600は、さらに、プロセッサーであるCPU610と、RAM630と、ROM640と、を備えている。CPU610は、ROM640に記憶されたコンピュータープログラムをRAM630にロードして実行することによって、後述する様々な機能を実現する。
設定装置600は、ロボット制御装置300に接続されている。設定装置600によって生成された動作シーケンスが、ロボット制御装置300に送信される。ロボット制御装置300は、設定装置600から受信した動作シーケンスにしたがってロボット100を動作させる。
なお、設定装置600は、ティーチングペンダントを介してロボット制御装置300に接続されていてもよい。ティーチングペンダントは、単独で、すなわち、設定装置600と協働することなく、ロボット100の動作を規定する動作シーケンスを生成することができる。
A2.ロボットシステムと周辺装置の関係:
図2は、ロボットシステム1と処理装置800と搬送装置750と警告灯900の関係を示す説明図である。ロボットシステム1と処理装置800と搬送装置750と警告灯900をまとめて「ワークステーションWS」とも呼ぶ。一つのワークステーションWSにおいて、一つの作業が行われる。なお、技術の理解を容易にするため、ロボットシステム1に含まれる設定装置600(図1参照)の図示を省略している。
処理装置800は、ワークピースW01に対して所定の処理を行う装置である。処理装置800は、ロボット100とともに動作する。より具体的には、処理装置800は、ロボット100からワークピースW01を供給されて、受け取ったワークピースW01に対して所定の処理を行う。そして、処理後のワークピースW01は、ロボット100によって、処理装置800から搬送装置750に運ばれる。
搬送装置750は、ローラーと、ベルトとを備えるベルトコンベアである。搬送装置750は、ローラーを駆動することにより、図1において矢印Atで示す方向に、ベルトを運動させる。搬送装置750は、ベルト上にワークピースW01を乗せて、矢印Atで示す方向に搬送する。
警告灯900は、ロボット100と処理装置800とから信号を受け取って、点灯する。処理装置800と警告灯900とは、ロボット100のロボット制御装置300(図1参照)に接続されており、ロボット制御装置300によって制御される。なお、本実施形態においては、搬送装置750は、ロボット制御装置300以外の制御装置に制御される。
A3.動作シーケンスの作成:
図3は、ワークステーションWSにおける処理のフローを示すフローチャートである。ロボットシステム1を含むワークステーションWSを動作させるにあたっては、まず、ステップS100において、ロボットシステム1を含むワークステーションWSを動作させるプログラムが作成される。ステップS100は、ステップS110~S130を含む。プログラムの作成は、設定装置600(図1参照)を介して、ユーザーによって行われる。
ステップS110においては、ロボット100と処理装置800と警告灯900の動作シーケンスが作成される。より具体的には、ユーザーは、設定装置600のディスプレイ602に表示される第1編集画面De1と第2編集画面De2の少なくとも一方を介して、画像や文字を編集して、各構成要素の動作シーケンスを作成する。第1編集画面De1と第2編集画面De2については、後に説明する。
なお、ステップS110の処理が最初に行われた段階では、シーケンスに含まれる各動作において制御点の位置を定量的に規定するパラメーターの値は、まだ決定されていない。位置を定量的に規定するパラメーター以外の動作のパラメーターは、ステップS110において規定されうる。位置のパラメーターに限らず、各動作を定量的に規定する具体的なパラメーターを、集合的に「プロパティー」とも呼ぶ。
ステップS120においては、ステップS110で作成された動作シーケンスの各動作のプロパティーのうち、制御点の位置を定量的に規定するパラメーター以外のパラメーターが、設定される。より具体的には、ユーザーは、設定装置600のディスプレイ602に表示されたユーザーインターフェイスに文字や数字を入力し、または、選択肢の中から一つを選択する等の処理を行って、プロパティーを作成する。なお、後述するように、ステップS110~S140の処理は繰り返し行われ得る。このため、ステップS110における動作シーケンスの作成が完了する前に、個別の動作について、ステップS120の処理は行われ得る。
ステップS130においては、ステップS110で作成された動作シーケンスの各動作のパラメーターのうち、ロボット100の制御点を定めるパラメーターの値が決定される。より具体的には、ロボット100のアーム110およびエンドエフェクター200が、設定装置600を介してユーザーに制御されて所望の位置に動かされ、その位置が教示点として記憶されることにより、ロボット100の制御点を定めるパラメーターの値が決定される。この処理を、「ジョグ&ティーチ」とも呼ぶ。
ステップS140においては、設定装置600のディスプレイ602に表示されるユーザーインターフェイスに含まれている所定のボタンが押されることにより、設定済みのパラメーターを含む動作シーケンスが、プログラムファイルに変換される。生成されたプログラムファイルは、設定装置600のRAM630に保存されるとともに、ロボット制御装置300に送信される。
ステップS150においては、ユーザーは、ステップS110~S130で作成した動作シーケンスを確定して良いか否かを判断する。作成した動作シーケンスを確定する場合には、処理はステップS200に進む。作成した動作シーケンスをさらに編集する場合には、処理はステップS110に戻る。
ステップS200においては、ステップS100で作成されたプログラムにしたがって、ロボットシステム1を含むワークステーションWS(図2参照)を、ロボット制御装置300が動作させる。すなわち、ステップS110において、後述する第1編集画面De1と第2編集画面De2の少なくとも一方を介して編集された動作シーケンスに基づいて、ロボット制御装置300が、ロボット100と処理装置800と警告灯900とを制御する。
図4は、図3のステップS100における設定装置600およびロボット制御装置300の処理を示すブロック図である。図4においては、設定装置600の例として、コンピューターとしての設定装置600を制御するOSが異なる3個の設定装置600が示される。すなわち、設定装置600の例として、Windows(登録商標)によって制御されるコンピューター600aと、Android(登録商標)によって制御されるコンピューター600bと、Linux(登録商標)によって制御されるコンピューター600cと、が示されている。各コンピューター600a~600cは、ティーチングペンダントを介してロボット制御装置300に接続されていてもよい。
ロボット制御装置300は、RAM330(図1参照)内にメソッド情報303を格納している。メソッド情報303は、動作シーケンスに含まれ得る各動作の情報である。たとえば、設定装置600は、メソッド情報303を参照して、動作に対応する画像を表示する。メソッド情報303は、OS(オペレーティングシステム)に依存しない形式のデータとして、ロボット制御装置300のRAM330内に格納されている。メソッド情報303が新たにRAM330内に格納されることにより、ワークステーションWSに実行させることができる動作が、追加される。
図3のステップS110~S130において、ワークステーションWSの各構成要素(具体的には、ロボット100と処理装置800と警告灯900)の動作シーケンスが編集されると、設定装置600は、ジョブ情報304を作成する。ジョブ情報304は、ワークステーションWSに含まれる一つの構成要素の動作シーケンスが規定された情報である。ジョブ情報304は、動作シーケンスを構成する動作およびそれら動作の並び順の情報と、各動作のプロパティー(パラメーター)の情報と、を含む。ジョブ情報304は、ワークステーションWSに含まれる制御対象である構成要素ごとに、作成される。
図5は、GUI情報303gとプログラム生成情報303pの機能を示す図である。メソッド情報303(図4参照)は、GUI情報303gと、プログラム生成情報303pと、を含む。
GUI情報303gは、動作と、設定装置600のディスプレイ602に表示される第1編集画面De1においてその動作に関して表示される画像と、を対応づけている情報である。第1編集画面De1において動作に関して表示される画像には、動作そのものを表す画像と、動作のプロパティーの設定のためのインターフェイスの画像と、が含まれる。なお、本明細書において「画像」には、文字や記号を表す表示が含まれる。
図3のステップS110,S120において、設定装置600は、GUI情報303gを参照して、動作に関する画像として、GUI情報303gがその動作と対応づけて格納している画像を、ディスプレイ602上の第1編集画面De1内に表示する。動作を表す画像を含む第1編集画面De1をディスプレイ602に表示することにより、ユーザーに、直感的に分かりやすい第1編集画面De1を提示することができる。
プログラム生成情報303pは、動作と、その動作を表すプログラミング言語による表現と、を対応づけている情報である。設定装置600は、図3のステップS140においてプログラム生成情報303pを参照して、第1編集画面De1を介して編集された動作シーケンスをプログラムファイル305に変換する(図4も参照)。そして、設定装置600は、ステップS140を経た後のステップS110,S120において(図3参照)、前記プログラミング言語による表現を含むプログラムファイル305を、ディスプレイ602上に表示される第2編集画面De2内に、表示する。その結果、ユーザーに、詳細な動作内容が分かる第2編集画面De2が提示される。
その後、図3のステップS140において、設定装置600は、ジョブ情報304と、メソッド情報303のプログラム生成情報303pと、を参照して、ワークステーションWSに含まれる制御対象であるすべての構成要素の動作シーケンスを、ロボット100に渡すプログラムファイル305に変換する(図4も参照)。その結果、プログラムファイル305は、ワークステーションWSに含まれる制御対象であるすべての構成要素の動作の順番と、動作シーケンスに含まれる動作のパラメーターと、各動作のパラメーターの設定値と、を含む。
A4.動作シーケンスを作成するための第1ユーザーインターフェイス:
本実施形態においては、設定装置600において、動作シーケンスを作成するためのユーザーインターフェイス(図3のS110参照)として、2種類のユーザーインターフェイスが用意される。第1ユーザーインターフェイスは、特別な技術を有さないユーザーのためのユーザーインターフェイスである。第2ユーザーインターフェイスは、高度なプログラミング技術を有するユーザーためのユーザーインターフェイスである。ここでは、第1ユーザーインターフェイスによる動作シーケンスの作成について説明する。
図6は、図3のステップS110において、動作シーケンスを構成する動作をユーザーが選択する前の状態の設定装置600のディスプレイ602の表示を示す図である。動作シーケンスの作成を作成する際には、図6の表示において、左上の「編集」タグが選択される。すると、ディスプレイ602には、第1編集画面De11が示される。第1編集画面De11は、第1表示部分Da11と、第2表示部分Da21と、第3表示部分Da31とを含む。第1表示部分Da11と、第2表示部分Da21と、第3表示部分Da31とは、設定装置600のディスプレイ602において、左から右にその順に並んで表示される。
第1表示部分Da11は、動作シーケンスの作成において選択可能な複数の動作を表す動作表示CMを含む。図6の例において動作を表す動作表示CMには、動作を表す画像として、「ハンド」M04、「動かす」M05、「信号出力」M06、「メッセージ」M07、「待機する」M08、「停止」M09の画像が含まれる。第1表示部分Da11には、他の表示も含まれる。なお、本実施形態においては、「基本設定」M01,「コメント」M02,「コンテナ」M03の画像も、広義の「動作表示」として、以降の説明を行う。
「基本設定」M01は、ロボット100、処理装置800などの一つの動作主体の基本的な設定を決める処理のための画像である。「コメント」M02は、後述する第2表示部分Da2において表示されるプログラミング言語で表現されたプログラムリスト中に埋め込まれるコメントのための画像である。コメントは、第2表示部分Da2において表示される動作シーケンスの内容を、ユーザーが理解しやすくするために、プログラムリスト中に埋め込まれる。
「コンテナ」M03は、複数の動作の集合のための画像である。「コンテナ」については、後に説明する。「ハンド」M04は、エンドエフェクター200としてのマニピュレーターを制御対象とする処理を表す画像である。「動かす」M05は、制御対象を動かす動作を表す画像である。「信号出力」M06は、動作主体としての制御対象が外部に信号を出力する動作を表す画像である。「メッセージ」M07は、動作主体としての制御対象が、ユーザーが認識可能なメッセージを外部に出力する動作を表す画像である。「待機する」M08は、あらかじめ定められた事象が生じるまで処理を停止する動作を表す。「停止」M09は、それまで行っていた動作を停止させる処理を表す画像である。
第1表示部分Da11は、さらに、動作シーケンスの作成において選択可能な複数のロジックを表す動作表示LGを含む。図6の例において動作を表す動作表示LGには、「If」L01、「繰り返し」L02の画像が含まれる。なお、本実施形態においては、「If」L01、「繰り返し」L02も、広義の「動作表示」として、以降の技術の説明を行う。
第1表示部分Da11は、さらに、動作シーケンスの作成において選択可能な動作を表す動作表示である「Vision」C01を含む。「Vision」C01は、カメラ700によって取得された画像中から検出された位置に基づいて決定される点に移動する動作の集合を表す画像である。「Vision」C01が表す処理は、「コンテナ」の1種である。「Vision」C01については、後に説明する。
第1表示部分Da11は、さらに、動作シーケンスの作成において画面を切り替えるために使用される「コマンド」ボタンC02を含む。「コマンド」C02が押されると、第2表示部分Da2の表示が、第2編集画面De2に切り替えられる。第2編集画面De2については、後に詳細に説明する。
第2表示部分Da21においては、第1表示部分Da11を介して選択された動作の配列の形式で、動作シーケンスが表示される。第2表示部分Da21において、その動作の配列が編集されることにより、動作シーケンスが編集されることができる。図6の状態においては、まだ、動作シーケンスを構成する動作をユーザーが選択していないため、第2表示部分Da21には、動作シーケンスを表す画像は表示されていない。第1表示部分Da11の動作表示CMの中から表示を選択して、第2表示部分Da21上にドラッグすることにより、ユーザーは、動作シーケンスを構成する動作を選択することができる。
第2表示部分Da21の下段には、編集ボタンBe1~Be7が含まれる。編集ボタンBe1~Be7の機能については、後に説明する。
第3表示部分Da31においては、第2表示部分Da21に表示された動作シーケンスに含まれる動作のプロパティーが表示され、プロパティーの値が設定される。図6の状態においては、まだ、動作シーケンスを構成する動作をユーザーが選択していないため、第3表示部分Da31には、動作のプロパティーに関する画像は表示されていない。
図7は、図3のステップS110において、動作シーケンスを構成する動作をユーザーが選択した後の状態の設定装置600のディスプレイ602(図1参照)の表示を示す図である。ディスプレイ602には、第1編集画面De12が示される。第1編集画面De12は、動作シーケンスを構成する動作をユーザーが選択したことによって、図6の第1編集画面De11の表示が改変された第1編集画面である。第1編集画面De12は、第1表示部分Da12と、第2表示部分Da22と、第3表示部分Da32とを含む。第1表示部分Da12と、第2表示部分Da22と、第3表示部分Da32とは、設定装置600のディスプレイ602において、左から右にその順に並んで表示される。第1表示部分Da12と、第2表示部分Da22と、第3表示部分Da32とは、それぞれ第1表示部分Da11と、第2表示部分Da21と、第3表示部分Da31に対応する。
第1表示部分Da12は、第1表示部分Da11と同一の表示である。
第2表示部分Da22には、第1表示部分Da11を介して選択された動作を表す表示の配列として、動作シーケンスが表示されている。より具体的には、動作を表す表示M011,M051,M052,M031,M021,M053,M041,M061,M081が、それぞれ1以上の行として、表形式で、上から下に向かって並んで配列される。このため、ユーザーは、各動作が上から下に向かって順に実行される処理として、動作シーケンスを直感的に把握することができる。
「基本設定」M011は、第1表示部分Da12の「基本設定」M01が第2表示部分Da22にドラッグされることにより、第2表示部分Da22において表示されている。「動かす」M051は、第1表示部分Da12の「動かす」M05が第2表示部分Da22にドラッグされることにより、第2表示部分Da22において表示されている。同様に、第2表示部分Da22内の表示のうち、表示に付された符号の上3桁が第1表示部分Da12内の表示に付された符号と一致するものは、対応する第1表示部分Da12内の表示がドラッグされることにより、第2表示部分Da22内に表示されている表示である。
第2表示部分Da22の下段には、編集ボタンBe1~Be7が表示されている。第2表示部分Da22の上段に表示されている動作は、編集ボタンBe1~Be7によって、編集されることができる。ユーザーが、第2表示部分Da22の上段に表示されている各動作に対応する表示をクリックして選択し、「上へ」ボタンBe1を押すと、クリックされた動作は、第2表示部分Da22の上段の表示において、一つ上の行に移動する。同様に、「下へ」ボタンBe2を押すと、クリックされた動作は、第2表示部分Da22の上段の表示において、一つ下の行に移動する。同様に、「コピー」ボタンBe3は、コピー機能を奏する。「カット」ボタンBe4は、カット機能を奏する。コピーまたはカットされた動作は、RAM630内に記憶され、「ペースト」ボタンBe5が押されることにより、第2表示部分Da22の上段の表示内に貼り付けられる。
「削除」ボタンBe7は、削除機能を奏する。ユーザーが、第2表示部分Da22の上段に表示されている各動作に対応する表示をクリックして選択し、「無効化」ボタンBe6を押すと、クリックされた動作は、第2表示部分Da22の上段において表示されたまま、図3のステップS120~S140,S200の処理に関しては、第2表示部分Da22の上段において表示されていない場合と同様に処理される。なお、図7においては、第2表示部分Da22の上段に表示されている各動作のうち、「基本設定」の表示M011がクリックされた状態を示している。「基本設定」の表示M011は、クリックされる前とは異なる色で表示されている。
なお、第2表示部分Da22の上段に表示されている動作は、マウス605によるドラッグ・アンド・ドロップや、キーボード604による操作(たとえば、ctrl+C,ctrl+Vなど)によっても、編集されることができる。
第3表示部分Da32には、第2表示部分Da22に表示された動作シーケンスに含まれる動作のうち、選択された動作のプロパティーが表示される。第3表示部分Da32を介して、選択された動作プロパティーの具体的な内容が設定される(図3のS120参照)。図7の状態においては、第2表示部分Da22において「基本設定」の表示M011が選択されているため、第3表示部分Da32には、基本設定のプロパティーを設定するための画面が表示されている。
第3表示部分Da32においては、基本設定のプロパティーとして、モーターのONまたはOFFを設定することができる。第3表示部分Da32においては、基本設定のプロパティーとして、モーターのパワーについて、低パワーまたは高パワーを設定することができる。第3表示部分Da32においては、基本設定のプロパティーとして、ロボット100の動作速度について、1から100のいずれかの値を設定することができる。第3表示部分Da32においては、基本設定のプロパティーとして、加速と減速の両方の加速度について、1から100のいずれかの値を設定することができる。ただし、図7においては、加速度のプロパティーの一部が、画面の表示範囲外にある。加速度の設定は、第3表示部分Da32の表示を上方にスライドさせることにより可能となる。
図8は、図7の第1編集画面De12において、「基本設定」の表示M011に代えて、「信号出力」の表示M061が選択された場合の第1編集画面De13を示す図である。第1編集画面De13に含まれる第1表示部分Da13と、第2表示部分Da23と、第3表示部分Da33とは、それぞれ図6の第1表示部分Da11と、第2表示部分Da21と、第3表示部分Da31に対応する。また、第1表示部分Da13と、第2表示部分Da23と、第3表示部分Da33とは、それぞれ図7の第1表示部分Da12と、第2表示部分Da22と、第3表示部分Da32に対応する。
図8の状態においては、「信号出力」の表示M061が選択されているため、第3表示部分Da33には、信号出力のプロパティーを設定するための画面が表示されている。第3表示部分Da33においては、信号出力のプロパティーとして、出力先のビット番号を1から15までの中から設定することができる。第3表示部分Da34においては、信号出力のプロパティーとして、指定したビットをオンにするかオフにするかを設定することができる。
図9は、図7の第1編集画面De12において、「基本設定」の表示M011に代えて、「待機する」の表示M081が選択された場合の第1編集画面De14を示す図である。第1編集画面De14に含まれる第1表示部分Da14と、第2表示部分Da24と、第3表示部分Da34とは、それぞれ図6の第1表示部分Da11と、第2表示部分Da21と、第3表示部分Da31に対応する。また、第1表示部分Da14と、第2表示部分Da24と、第3表示部分Da34とは、それぞれ図7の第1表示部分Da12と、第2表示部分Da22と、第3表示部分Da32に対応する。第1表示部分Da14と、第2表示部分Da24と、第3表示部分Da34とは、それぞれ図8の第1表示部分Da13と、第2表示部分Da23と、第3表示部分Da33に対応する。
図9の状態においては、「待機する」の表示M081が選択されているため、第3表示部分Da34には、「待機する」のプロパティーを設定するための画面が表示されている。第3表示部分Da34においては、「待機する」のプロパティーとしての待機の条件が、表示S342を介して、「時間(Time)」と「ビット状態」から選択されることができる。
第3表示部分Da34においては、入力窓S344を介して、待機の条件として「時間」が選択された場合の待機時間の長さが、設定される。スライダーS346を介して、待機の条件として「ビット状態」が選択された場合の対象ビットの番号が、設定される。表示S348を介して、待機の条件として「ビット状態」が選択された場合の対象ビットの状態として、オンまたはオフが設定されることができる。
なお、表示S342を介して選択される、待機の条件としての「時間(Time)」および「ビット状態」を、本明細書において「事象の種類」と呼ぶことがある。表示S344,S346,S348を介して設定される、待機の条件としての「待機時間の長さ」、「対象ビットの番号」、および「オン/オフ」を、本明細書において「事象の状態」と呼ぶことがある。
本実施形態においては、あらかじめ定められた事象が生じるまで処理を停止する待機動作について、プロパティーとして、(i)「事象の種類」としての時間とビット番号の選択と、(ii)「事象の状態」としての時間の長さまたはビットのON/OFFが含まれる。そして、第1編集画面De1の第3表示部分Da3において、「事象の種類」と、「事象の状態」とは、上から下に向かう順番で表示される。このため、ユーザーは、画面上の並び順にそって、順にプロパティーを設定することができる。よって、このため、ロボット100の動作シーケンスの作成を効率的に行うことができる。
なお、画面の遷移状態によらず、第1編集画面De11~De14を、まとめて「第1編集画面De1」と呼ぶ。後に示す図17~図19の表示部分De16~De18、ならびに図20、図21の表示部分De1A,De1Bについても、同様である。第1編集画面De1は、複数の動作を表す画像の中から1以上の動作を表す画像を選択し、画面上で配列することによりロボットの動作シーケンスを編集することができるユーザーインターフェイスである。なお、本明細書において、「編集」とは、すでにある動作シーケンスの一部または全部を改変することに限らず、動作シーケンスがまったく規定されていない状態から動作シーケンスを生成することを含む。
画面の遷移状態によらず、第1編集画面De1の第1表示部分Da11~Da14を、まとめて「第1表示部分Da1」と呼ぶ。後に示す図17~図19の表示部分Da16~Da18、ならびに図20、図21の表示部分Da1A,Da1Bについても、同様である。第1表示部分Da1は、選択可能な複数の動作を表すユーザーインターフェイスである。
画面の遷移状態によらず、第1編集画面De1の第2表示部分Da21~Da24を、まとめて「第2表示部分Da2」と呼ぶ。後に示す図17~図19の表示部分Da26~Da28、ならびに図20、図21の表示部分Da2A,Da2Bについても、同様である。第2表示部分Da2は、第1表示部分Da1を介して選択された動作の配列として動作シーケンスが表示され、動作の配列を編集することにより動作シーケンスを編集することができるユーザーインターフェイスである。
画面の遷移状態によらず、第1編集画面De1の第3表示部分Da31~Da34を、まとめて「第3表示部分Da3」と呼ぶ。後に示す図17~図19の表示部分Da36~Da38、ならびに図20の表示部分Da3Aについても、同様である。第3表示部分Da3は、第2表示部分Da2に表示された動作シーケンスに含まれる動作のプロパティーが表示され、プロパティーの値を設定されることができるユーザーインターフェイスである。
本実施形態においては、第1編集画面De1において、第1表示部分Da1、第2表示部分Da2、第3表示部分Da3が、その順に並んで表示されている。このため、ユーザーは、第1編集画面De1において、編集対象としての動作シーケンスを表示する第2表示部分Da2に対して、一方の側にある第1表示部分Da1において、動作を選択して編集対象としての動作シーケンスに動作を取り込むことができ、他方の側にある第3表示部分Da3において、各動作のプロパティーを設定することができる。このため、ロボットの動作シーケンスの作成を効率的に行うことができる。
より具体的には、第1編集画面De1において、第1から第3表示部分Da1~Da3は、左から右に向かう順に並べて表示される。このため、ユーザーは、編集画面において、編集対象としての動作シーケンスを表示する第2表示部分Da2に対して、左側にある第1表示部分Da1において、動作を選択して編集対象としての動作シーケンスに動作を取り込むことができる。また、第2表示部分Da2に対して右側にある第3表示部分Da3において、各動作のプロパティーを設定することができる。このため、ロボットの動作シーケンスの作成を効率的に行うことができる。
第1編集画面De1を介して編集された動作シーケンス、および第1編集画面De1を介して設定されたプロパティーの情報を含むプログラムファイルが、図3のステップS140において作成される。ステップS140においてプログラムファイルを作成する設定装置600のCPU610の機能部を、「ファイル作成部614」として図1に示す。
作成されるプログラムファイルが動作シーケンスの情報のみを含み、プロパティーの情報を含まない場合は、プログラムファイルを使用してロボットを動作させるためには(S200参照)、別途、プログラムファイルに対してプロパティーの情報を書き込む必要がある。しかし、本実施形態においては、動作シーケンスだけでなく、プロパティーの情報の情報も含めたプログラムファイルが作成されるため、作成されたプログラムファイルを使用してロボット100を動作させることができる。
図10は、「アプリケーション」と、「ジョブ」と、「メソッド」と、「プロパティー」と、「コンテナ」と、の関係を例示する説明図である。設定装置600におけるワークステーションWSの動作シーケンスの作成においては、「アプリケーション」、「ジョブ」、「メソッド」、「プロパティー」、および「コンテナ」という概念が使用される(図4の303,304参照)。
「アプリケーション」とは、ワークステーションWSに含まれる、制御対象である構成要素の動作シーケンス全体を表す概念である。「アプリケーション」は、たとえば、図1に示すワークステーションWSにおいて、処理装置800がワークピースW01に対する処理の完了の信号を出力し、その信号に応じて、ロボット100がワークピースW01を処理装置800から取りだして、搬送装置750のベルトコンベア上におく、という一連の作業である。「アプリケーション」が決まることにより、ワークステーションWSのロボットシステム1と処理装置800と搬送装置750と警告灯900が協調して動作する処理の内容が、決定される。
図3のステップS140においては、図7の第2表示部分Da22、図8の第2表示部分Da23、図9の第2表示部分Da24に示されるように、動作の表示の配列で特定されている「アプリケーション」が、変換されることにより、ワークステーションWS用のプログラムファイル305が作成される。
なお、図7の第2表示部分Da22、図8の第2表示部分Da23、図9の第2表示部分Da24においては、技術の理解を容易にするため、ワークステーションWSに含まれる構成要素のうちの一つの構成要素の動作シーケンスのみが示されている。しかし、第2表示部分Da2においては、ワークステーションWSに含まれるすべての構成要素の動作シーケンスが、それぞれ動作の配列として特定される。
「ジョブ」とは、(i)動作の主体、または(ii)動作の主体ごとにグループ分けされた動作の集合を意味する。「ジョブ」は、ワークステーションWSに含まれる、制御対象である構成要素(本実施形態において、ロボット100と処理装置800と警告灯900)に対応する概念である。図10に示すように、一つの「アプリケーション」に対して、1以上の「ジョブ」が従属する。「アプリケーション」に従属する「ジョブ」は、その「アプリケーション」が対応するワークステーションWSに含まれる構成要素に、対応する。「ジョブ」には、あらかじめ用意されており暫定的に内容が決定されている「プリセットジョブ」と、ユーザーが作成する「ユーザージョブ」の2種類のジョブが存在する(図10の左側参照)。
一方、概念上の分類としては、「ジョブ」は、他の構成要素に対する動きを伴う「モーションジョブ」と、他の構成要素に対する動きを伴わない「モニタリングジョブ」と、を含む。「モーションジョブ」は、たとえば、ロボット100、処理装置800、またはそれらの動作の集合である。「モニタリングジョブ」は、たとえば、警告灯900、または警告灯900の動作の集合である。
「メソッド」とは、制御対象である構成要素の動作である。図10に示すように、一つの「ジョブ」に対して、1以上の「メソッド」が従属する。「ジョブ」に従属する「メソッド」は、その「ジョブ」が対応する構成要素によって実行される動作に、対応する。「メソッド」には、「プリミティブメソッド」と「コンテナ」の2種類のメソッドが存在する。
「プリミティブメソッド」とは、最小単位の動作である。具体的には、「ハンド」、「動かす」、「信号出力」、「メッセージ」、「待機する」などの動作である(図7~図9のM051,M052,M053,M041,M061,M081参照)。本明細書においては、「動作」を「プリミティブメソッド」の意味で使用することがある。「プリミティブメソッド」は、あらかじめ定められている。新たな「プリミティブメソッド」を、ユーザーが作成することはできない。
「コンテナ」とは、1以上の「プリミティブメソッド」の集合である(図7~図9のM031,M053,M041参照)。「コンテナ」は、さらに、1以上の「コンテナ」を含むことができる。「コンテナ」には、あらかじめ用意されており内容が決定されている「プリセットコンテナ」と、ユーザーが作成する「ユーザーコンテナ」の2種類のコンテナが存在する。空のコンテナを「プリミティブコンテナ」と呼ぶ。ユーザーは、第1編集画面De1を介して、1以上のメソッドを含むコンテナを選択し、画面上で配列することにより、ロボット100の動作シーケンスを編集することができる。
このような態様とすることにより、ユーザーは、たとえば、設定装置600においてあらかじめ用意されているコンテナを選択し、画面上で配列することにより、ロボット100の動作シーケンスを編集することができる。また、少なくとも一部のメソッドがあらかじめ編集されたコンテナを選択し、画面上で配列することにより、ロボット100の動作シーケンスを編集することができる。よって、第1編集画面De1において、メソッドを一つずつ選択し配列する必要がある態様に比べて、ユーザーは、容易にロボット100の動作シーケンスを編集することができる。
「メソッド」は「プロパティー」を有している。「プリミティブメソッド」は、「プリミティブメソッド」の「プロパティー」を有している。「コンテナ」は、「コンテナ」の「プロパティー」を有している。コンテナのプロパティーは、そのコンテナに含まれるプリミティブメソッドのプロパティーを制約する。すなわち、コンテナのプロパティーの設定が具体的に決定されると、そのコンテナに含まれるプリミティブメソッドのプロパティーは、自動的に決定されるか、またはそのコンテナに含まれるプリミティブメソッドのプロパティーの設定範囲について設定され得ない部分が生じる。
ユーザーは、第1編集画面De1において、メソッドのプロパティーを設定することができ、かつ、コンテナのプロパティーを設定することができる。ただし、前述のように、コンテナに対して設定されたプロパティーに応じて、そのコンテナに含まれるメソッドのプロパティーは、自動的に設定される。このような態様とすることにより、第1編集画面De1において、一つずつのメソッドのプロパティーを設定する必要がある態様に比べて、ユーザーは、容易に、複数のメソッドのプロパティーを設定することができる。
図11は、プリミティブメソッドだけでジョブを構成した例である。図11の例においては、ジョブはロボット100のジョブである。図11に示すジョブに従った場合、ロボット100は、図11の上から下に向かって、メソッドで規定される動作を実行する。
ジョブに含まれるメソッドのうち「基本設定」のメソッドは、「モーターON、パワーHigh、速度50、加速度50,50というプロパティーを有する(図7のDa32参照)。なお、図11において、「加速度50,50」とは、加速設定値が50であり、減速設定値が50であることを示す。「待機する」のメソッドは、「ワーク排出待ち」のプロパティーを有する。より具体的には、ワークピースW01が処理装置800排出されたことを表すビットがONになるまで待つ、という動作が設定されている(図9のDa34参照)。一つ目「動かす」のメソッドは、「ワーク上空」のプロパティーを有する。より具体的には、ワークピースW01の上まで制御点(具体的にはTCP)を動かす、という動作が設定されている。なお、ワークピースW01の位置は、カメラ700(図1参照)が取得した画像に基づいて特定される。
図11の一つ目の「ハンド」のメソッドは、「開く」のプロパティーを有する。より具体的には、エンドエフェクター200としてのハンドを開くという動作が設定される。2個目の「動かす」のメソッドは、「把持位置」のプロパティーを有する。より具体的には、ワークピースW01を把持できる地点まで制御点を動かす、という動作が設定される。2個目の「ハンド」のメソッドは、「把持」のプロパティーを有する。より具体的には、ワークピースW01を把持できるようにエンドエフェクター200としてのハンドを閉じるという動作が設定される。ハンドを閉じる量は、力覚センサー190に基づいて決定される。3個目の「動かす」のメソッドは、「ワーク上空」のプロパティーを有する。より具体的には、把持したワークピースW01があった地点の上に制御点を動かす、という動作が設定される。
図12は、プリセットコンテナだけでジョブを構成した例である。図12の例においても、ジョブはロボット100のジョブである。図12に示すジョブに従った場合、ロボット100は、図12の上から下に向かって、コンテナで規定される動作を実行する。なお、コンテナは、そのコンテナが含む1以上のメソッドに対応する動作を規定する。
ジョブに含まれるコンテナのうち「初期設定」のコンテナは、プロパティーとして、「モーターON、パワーHigh」のプロパティーを有する。その結果、「初期設定」のコンテナに属する「基本設定」のメソッドは、自動的に「モーターON、パワーHigh」のプロパティーを有することとなる(図11参照)。
「ワーク排出待ち」のコンテナは、「ワーク排出待ち」のプロパティーを有する。より具体的には、ワークピースW01が処理装置800排出されたことを表すビットがONになるまで待つ、という動作が設定される。
「ワークを取りに行く」のコンテナは、「ワーク形状/検出パラメーター」のプロパティーを有する。より具体的には、カメラ700によって検出されたワークピースW01の地点まで制御点(具体的にはTCP)を動かす、という動作が設定される。
「ワークをつかむ」のコンテナは、「ワーク形状/把持」のプロパティーを有する。より具体的には、カメラ700によって検出されたワークピースW01を把持する、という動作が設定される。
以上のように、図3のステップ110における動作シーケンスの作成、およびステップS120のプロパティーの設定は、第1ユーザーインターフェイスとしての第1編集画面De1を介して、実行され得る。このような態様とすることにより、高度なプログラミング技術を有さないユーザーは、第1編集画面De1を使用して、複雑な編集作業を行うことなく、ロボット100の動作シーケンスを編集することができ、プロパティーを設定することができる。
A5.動作シーケンスを作成するための第2ユーザーインターフェイス:
以下では、高度なプログラミング技術を有するユーザーための第2ユーザーインターフェイスによる動作シーケンスの作成(図3のS110参照)について説明する。
図13は、第2編集画面De21を示す。図3のステップS140の処理が実行された後、さらに動作シーケンスを編集するために、図6~図9に示す第1編集画面De1において、左下の「コマンド」ボタンC02が押されると、ディスプレイ602の表示が切り替わる。より具体的には、第1編集画面De1の第2表示部分Da2に代わって、第2編集画面De21が、ディスプレイ602に表示される。
第2編集画面De21において表示されるのは、第1編集画面De1を介して編集された動作シーケンスを変換することにより得られる(図3のS140参照)、プログラミング言語で表現された動作シーケンスCLMである。動作シーケンスCLMは、第2編集画面De21において、各動作が1以上の行として上から下に並んで配されるリストとして表示される。
なお、ディスプレイ602の中央に、第1編集画面De1の第2表示部分Da2ではなく第2編集画面De2が表示されている状態において、第1表示部分Da1の「コマンド」ボタンC02(図6~図9参照)が押された場合には、再度、ディスプレイ602の表示が切り替わる。より具体的には、ディスプレイ602の中央には、第1編集画面De1の第2表示部分Da2が表示される。
図13に示す第2編集画面De21中、「’」に続いて記述されている文字列は、「コメント」である(図7~図9のM02,M021参照)。「コメント」は、プログラミング言語で表現された動作シーケンスCLMのユーザーによる理解を容易にするために記載されているものであり、制御対象の動作を規定するものではない。「アプリケーション」、「ジョブ」、「コンテナ」、および各動作の名称(たとえば、「基本設定」、「動かす」など)は、自動的に、コメントとして、プログラムリスト中に記載される。
プログラムリスト中のリスト部分CLM011において、「基本設定」を規定する関数Func_3による動作と、「モーターON、パワーHigh、速度50、加速度50,50」のプロパティーが規定されている(図7のDa32参照)。リスト部分CLM051において、「動かす」を規定する関数Func_4による動作と、「速度10,加速度10,10、制御点の目的地点(87.7443,432.535,426.704,174.255,0.167451,-177.68)」が規定されている。なお、本明細書においては、3次元空間内におけるエンドエフェクター200の制御点の目標到達地点と、その目標到達地点における目的とする姿勢と、を含めて、「制御点の目的地点」を記載する。
リスト部分CLM052において、「動かす」を規定する関数Func_5による動作と、「速度10,加速度10,10、制御点の目的地点(-387.67,210.945,426.704,-112.83,0.167492,-177.68)」が規定されている。リスト部分CLM031において、「コンテナ」に含まれる動作に対応する関数Func_6、Func_8、Func_9による動作が規定されている。
図14は、第2編集画面De22を示す。第2編集画面De22は、図13の第2編集画面De21を上方にスクロールさせた場合の第2編集画面である。図14の上段に表示されたリスト部分CLM031と、図13の下段に表示されたリスト部分CLM031とは、同一のリスト部分である。
リスト部分CLM053において、「動かす」を規定する関数Func_8による動作と、「速度10,加速度10,10、制御点の目的地点(-387.67,210.945,342.907,-112.83,0.167431,-177.68)」が規定されている。プログラムリスト中のリスト部分CLM041において、「ハンド」を規定する関数Func_9による動作と、ハンドを「閉じる」動作を規定するHand1_Closeの動作が規定されている。リスト部分CLM061において、「信号出力」を規定する関数Func_10による動作と、「アクションON、ビット番号13」のプロパティーが規定されている(図8のDa33参照)。リスト部分CLM081において、「待機する」を規定する関数Func_11による動作と、「待ち時間3秒」のプロパティーが規定されている(図9のDa34参照)。なお、「待ち対象ビット13、アクションON」を表すプロパティーは、「’」を付されてコメントにされている。
画面の遷移状態によらず、第2編集画面De21,De22を、まとめて「第2編集画面De2」と呼ぶ。第2編集画面De2は、第1編集画面De1を介して編集された動作シーケンスを変換して得られる、プログラミング言語で表現された動作シーケンスCLMが表示され、プログラミング言語で表現された動作シーケンスCLMを編集することができる編集画面である。ユーザーは、設定装置600の入力装置として機能するキーボード604およびマウス605を介して、第2編集画面De2に含まれる文字列を編集することができる。
第1編集画面De1を介して動作シーケンスが編集された際に、プロパティーが設定されなかった場合には(図7~図9のDa32~Da34参照)、第2編集画面De2においてプロパティーが記載されているべき箇所は、空欄である。ユーザーは、第2編集画面De2を介して、それらのプロパティーを書き込むことができる(図3のS120参照)。
第1編集画面De1の第3表示部分Da3は、設定装置600によって各プロパティーについて設定可能なすべての設定範囲のうち、限定された選択肢を、ユーザーに対して提供する。このため、特別な技術を有さないユーザーであっても、動作シーケンスのプロパティーを設定することができる。一方、第2編集画面De2においては、第1編集画面De1の第3表示部分Da3において設定されていた限定なしに、設定装置600によって各プロパティーについて設定可能なすべての設定範囲の中から、動作シーケンスのプロパティーを設定することができる。このため、第1編集画面De1を介して動作シーケンスが編集された際に、プロパティーが設定された場合であっても、ユーザーは、第1編集画面De1では選択できなかったプロパティーの詳細な設定値を、第2編集画面De2を介して、さらに設定することができる。
さらに、ユーザーは、その時点で第2編集画面De2に記述されていないメソッドを、キーボード604およびマウス605を介して、新たに第2編集画面De2に記述することができる。また、ユーザーは、第2編集画面De2においては、第1編集画面De1では記述できないメソッドを記述することができる。
このため、高度なプログラミング技術を有しているユーザーは、第2編集画面De2を使用して、詳細にロボットの処理内容を指定しつつ、ロボットの動作シーケンスを編集することができる。
第1編集画面De1および第2編集画面De2を、表示部としてのディスプレイ602に表示する設定装置600のCPU610の機能部を、「表示制御部612」として、図1に示す。
A6.動作の教示:
ロボット100の制御点を定めるパラメーターの値を決定する際には(図3のS130参照)、設定装置600のディスプレイ602の表示(図6~図9参照)において、左上の「ジョグ&ティーチ」のタグが選択される。
図15は、ロボット100の制御点を定めるパラメーターの値を決定する際のユーザーインターフェイス画面である。設定装置600のディスプレイ602の表示において「ジョグ&ティーチ」のタグが選択されると、ディスプレイ602(図1参照)には、位置設定画面Dtが示される。位置設定画面Dtは、ジョグボタンBp01~Bp06,Br02~Br06を含む。
ボタンBp01は、X軸の正方向に制御点を移動させるためのボタンである。ボタンBp02は、X軸の負方向に制御点を移動させるためのボタンである。ボタンBp03は、Y軸の正方向に制御点を移動させるためのボタンである。ボタンBp04は、Y軸の負方向に制御点を移動させるためのボタンである。ボタンBp05は、Z軸の正方向に制御点を移動させるためのボタンである。ボタンBp06は、Z軸の負方向に制御点を移動させるためのボタンである。
ボタンBr01は、U軸の正方向に制御点を回転させるためのボタンである。ボタンBr02は、U軸の負方向に制御点を回転させるためのボタンである。ボタンBr03は、V軸の正方向に制御点を回転させるためのボタンである。ボタンBr04は、V軸の負方向に制御点を回転させるためのボタンである。ボタンBr05は、W軸の正方向に制御点を回転させるためのボタンである。ボタンBr06は、W軸の負方向に制御点を回転させるためのボタンである。
ユーザーは、位置設定画面Dtにおいて、これらのボタンを操作して、エンドエフェクター200の制御点を目標地点に移動させ、エンドエフェクター200に目的とする姿勢をとらせる。そして、保存ボタンBsを押して、その地点および姿勢を、図3のステップS110で定めたシーケンス中の動作における制御点の教示点として記憶させる(図3のS130参照)。
ユーザーは、位置設定画面Dtに含まれる表示MSを介して、「Base」モード、「Joint」モード、「Tool」モード、「World」モードを選択することにより、教示するパラメーターの種類を、選択することができる。「Base」モードは、ロボット100が取りつけられている基台を原点とする座標系で、制御点の位置を指定する動作モードである。「Joint」モードは、各関節の角度(図1の510o参照)で、制御点の位置を指定する動作モードである。「Tool」モードは、ある時点の制御点の位置を原点とする座標系で、制御点の位置を指定する動作モードである。「World」モードは、あらかじめ定められた地点またはユーザーが定める地点を原点とする座標系で、制御点の位置を指定する動作モードである。
ユーザーは、位置設定画面Dtに含まれる表示SSを介して、教示のためにロボット100を動かす際の動作速度を、「低速」と「ふつう」と「高速」の中から、選択することができる。
A7.センサー出力に基づいて決定される中継点の設定:
(1)センサー出力に基づいて決定される中継点:
センサーで取得された情報に基づいて、制御点の教示点が決定される場合がある。たとえば、カメラ700(図1参照)によって取得された画像に基づいて、ワークピースW01の位置が認識されて、ワークピースW01の位置に対する相対位置として、制御点の目的地点が決定されることがある。同様に、カメラ700(図1参照)によって取得された画像に基づいて、搬送装置750の所定の部位の位置が認識されて、その位置に対する相対位置として、制御点の目的地点が決定されることがある。また、力覚センサー190(図1参照)の出力が所定の値の組み合わせになった位置に対する相対位置として、制御点の目的地点が決定されることがある。本実施形態においては、そのような目的地点は、以下のように設定されることができる。ここでは、カメラ700によって取得された画像に基づいて認識された位置に対する相対位置として、制御点の目的地点が決定される例について説明する。
図16は、カメラ700によって取得された画像に基づいて認識された位置P1から、同様に認識された位置P2に移動する際の、中継点P3~P5を示す説明図である。位置P1は、画像から認識されたワークピースW01の位置である。位置P2は、画像から認識された搬送装置750の所定の部位の位置である。制御点が位置P1にある状態から、制御点が位置P2にある状態に移行すべきであるが、位置P1と位置P2の間に障害物がある場合がある。そのような障害物を迂回するため、中継点P3~P5が設定される。
中継点P3は、動作の出発地点である位置P1に対する相対位置として決定される。中継点P4は、動作の目的地点である位置P2に対する相対位置として決定される。中継点P5も、動作の目的地点である位置P2に対する相対位置として決定される。以下で、P1、P3、P4、P5、P2の順にロボット100の制御点を移動させる動作の設定について、説明する。なお、位置P1,P2も、広義の「中継点」に含まれる。
(2)第1編集画面からの中継点の設定:
以下では、図3のステップS110において、第1編集画面De1を介して「Vision」コンテナに対して中継点を設定する例を説明する。
図17は、図6の第1編集画面De11において、コンテナの1種である「Vision」C01が選択された場合の設定装置600のディスプレイ602の表示を示す図である。ディスプレイ602には、第1編集画面De16が示されている。第1編集画面De16は、第1表示部分Da16と、第2表示部分Da26と、第3表示部分Da36とを含む。第1表示部分Da16と、第2表示部分Da26と、第3表示部分Da36とは、左から右にその順に並んで表示される。第1表示部分Da16と、第2表示部分Da26と、第3表示部分Da36とは、それぞれ第1表示部分Da16と、第2表示部分Da26と、第3表示部分Da36に対応する。
第1編集画面De16においては、「Vision」C01のほかに、「動かす」M05、「ハンド」M04が選択され、「Vision」C01とともに、第2表示部分Da26に表示されている(図17のC011,M054,M042参照)。
第1表示部分Da16において「Vision」C01が選択され、第2表示部分Da26に「Vision」C011が表示された直後の状態においては、第2表示部分Da26において、「中継点」RP01~RP04は表示されていない。第2表示部分Da26において、「Vision」C011が選択されると、第3表示部分Da36においては、中継点追加ボタンBrp2と、教示ボタンBtが表示される。
中継点追加ボタンBrp2は、教示点としての中継点を追加することができるユーザーインターフェイスである。中継点追加ボタンBrp2が押されると、そのときに選択されている「Vision」コンテナの下に、教示点としての中継点が追加される。すでに追加されている中継点が選択された状態で中継点追加ボタンBrp2が押されると、そのときに選択されている中継点の下に、中継点が追加される。追加された各中継点は、編集ボタンBe1,Be2により、「Vision」コンテナの下において、上下に移動されることができる。「中継点」RP01~RP04は、そのような処理を経て、第2表示部分Da26に表示されている。「中継点」RP01~RP04は、メソッドの1種であり、「その中継点まで移動する」という動作を表している。
図18は、図17の状態から、「中継点」RP05が追加された状態の設定装置600のディスプレイ602(図1参照)の表示を示す図である。ディスプレイ602には、第1編集画面De17が示される。第1編集画面De17は、第1表示部分Da17と、第2表示部分Da27と、第3表示部分Da37とを含む。図17の状態において、中継点追加ボタンBrp2が押されると、第2表示部分Da27において、「中継点」RP02の下にさらに「中継点」RP05が追加される。そして、「中継点」RP05が選択され、「上へ」ボタンBe1が押されると、「中継点」RP05が「中継点」RP02の上に移動して、図18の状態となる。
設定された「中継点」Rp01~RP05は、他の動作と同様に、編集ボタンBe1~Be7によって、編集することができる。
本実施形態においては、第1編集画面De1において、カメラ700による情報取得の結果に基づいて行われる1以上の動作を含む動作群に対して、一つの動作(本実施形態においては、ある位置への制御点の移動)に対応しカメラ700による情報取得の結果に基づいて決定される位置を表す教示点(中継点P5)を、追加することができる。その結果、カメラ700による情報取得の結果に基づいて行われる動作(ここでは、各中継点への移動)は、ロボット100の動作シーケンスの作成において、動作群としてまとめて取り扱われる。すなわち、カメラ700による情報取得の結果に基づいて行われる動作は、まとめてプロパティーを設定されることができる。また、カメラ700による情報取得の結果に基づいて行われる動作は、一括して、移動、削除などの編集を行うこともできる。このため、カメラ700による情報取得と、カメラ700による情報取得の結果に基づいて決定される位置への移動とが、独立に設定される制御装置に比べて、カメラ700のセンシングによって決定される位置に移動する動作を含む動作シーケンスの作成を、容易に行うことができる。
たとえば、カメラ700による情報取得と、カメラ700による情報取得の結果に基づいて決定される位置への移動とが、独立に設定される制御装置においては、カメラ700による情報取得を先に指定した上で、カメラ700による情報取得の結果に基づいて決定される位置への移動を指定する必要がある。そのような制御装置によるシーケンスの作成作業において、カメラ700による情報取得が指定されていない状態で、カメラ700による情報取得の結果に基づいて決定される位置への移動が指定され、ロボット100の動きが実際にテストされると、予測不能な位置にロボット100の制御点が移動することとなる。しかし、本実施形態においては、カメラ700による情報取得の結果に基づいて決定される位置への移動は、「Vision」C01に従属する形態で指定されるため、そのような事態が生じる可能性を低減できる。
図19は、図18の状態において、「中継点」RP04が選択された場合の設定装置600のディスプレイ602の表示を示す図である。ディスプレイ602には、第1編集画面De18が示される。第1編集画面De18は、第1表示部分Da18と、第2表示部分Da28と、第3表示部分Da38とを含む。「中継点」RP04が選択されると、第3表示部分Da38には、「中継点」RP04のプロパティー設定のための画面が表示される。「中継点」RP04は、「Vision」C011の下に設定されている中継点であるため、第3表示部分Da38において、「Vision」のチェックボックスにチェックが入っている。
第3表示部分Da38においては、入力窓S38において、カメラ700で認識された基準位置に対して、Z方向に10.8mmの位置が、「中継点」RP04のプロパティーとして指定されている。このような態様とすれば、動作群のプロパティーを設定できる第1編集画面De1を介して、教示点として通過すべき位置を、カメラ700によって取得された画像中から検出された位置に基づいて、具体的に設定することができる。
本実施形態においては、動作群「Vision」C011にプロパティーが設定されることができる第1編集画面De16,De17において、教示点をさらに追加することができる中継点追加ボタンBrp2が表示される(図17~図19参照)。このような態様とすれば、動作群のプロパティーを設定できる第1編集画面De1を介して、教示点として通過すべき位置を追加することができる。このため、センシングによって決定される位置に移動する動作を含む動作シーケンスの作成を、容易に行うことができる。
(3)教示画面からの中継点の設定:
以下では、位置設定画面Dtにおいて、あらかじめ位置を特定し、その後、位置設定画面Dtから「Vision」コンテナに対して中継点を設定する例を説明する。
図17の状態において、教示ボタンBtが押されると、ディスプレイ602の表示は、図15に示す位置設定画面Dtに切り替えられる。ユーザーは、位置設定画面Dtにおいて、ボタンBp01~Bp06,Br01~Br06を操作して、エンドエフェクター200の制御点を目標地点に移動させ、エンドエフェクター200に目的とする姿勢をとらせる。その後、ユーザーは、位置設定画面Dtにおいて、中継点追加ボタンBrp1を押す。
中継点追加ボタンBrp1は、教示点として通過すべき位置を追加することができるユーザーインターフェイスである。中継点追加ボタンBrp1が押されると、位置設定画面Dtで特定された地点および姿勢を有する「中継点」RP05が、教示点として追加され、画面は、図18の状態となる。この場合は、「中継点」RP05は、設定された時点で、プロパティー、すなわち地点および姿勢が、決定されている。
本実施形態においては、動作としての移動において通過すべき位置に対して具体的な位置を特定する位置設定画面Dtに、教示点として通過すべき位置をさらに追加できる中継点追加ボタンBrp1が含まれる。このような態様とすれば、第1編集画面De1からだけでなく、位置設定画面Dtからも、教示点として通過すべき位置を追加することができる。このため、位置設定画面Dtからはそのような設定ができない制御装置に比べて、センシングによって決定される位置に移動する動作を含む動作シーケンスの作成を、容易に行うことができる。
また、本実施形態においては、位置設定画面Dtにおいて、具体的に位置および姿勢のパラメーターを設定した後に、その位置および姿勢を通過すべき位置として追加することができる。このためユーザーは、通過すべき位置を決定して、直感的に、教示点として追加することができる。
たとえば、位置設定画面Dtに中継点追加ボタンBrp1を有さない態様においては、ユーザーが、位置設定画面Dtで中継点として具体的な位置を教示している際に(図3のS130参照)、中継点を追加する必要を感じた場合には、ユーザーは、以下の処理を行う必要がある。すなわち、ユーザーは、再度、第1編集画面De1(図17、図18参照)に戻って、具体的な位置が特定されていない中継点を追加し(図3のS110参照)、再度、位置設定画面Dtにおいて、追加した中継点について、具体的な位置を教示する必要がある(図3のS130参照)。しかし、本実施形態の様な態様とすれば、位置設定画面Dtにおいて、具体的にパラメーターを設定した後に、教示点として通過すべき位置を追加することができる。このため、位置設定画面Dtと第1編集画面De1との間の行き来の回数を低減して、効率的にロボット100の動作シーケンスを作成することができる。
本実施形態の設定装置600のディスプレイ602を、本明細書において「表示部」とも呼ぶ。ロボット制御装置300のRAM330を、本明細書において「第1記憶部」とも呼ぶ。ロボット制御装置300のRAM330を、本明細書において「第2記憶部」とも呼ぶ。GUI情報303gを、本明細書において「第1情報」とも呼ぶ。プログラム生成情報303pを、本明細書において「第2情報」とも呼ぶ。カメラ700を、本明細書において「撮像部」とも呼ぶ。力覚センサー190を、本明細書において「力検出部」とも呼ぶ。中継点追加ボタンBrp1を、本明細書において「第1操作部」とも呼ぶ。中継点追加ボタンBrp2を、本明細書において「第2操作部」とも呼ぶ。ロボット制御装置300と設定装置600とを、まとめて「制御装置」とも呼ぶ。ロボット100のうち、ロボット制御装置300によって制御されるロボット制御装置300以外の部分を、「ロボット」とも呼ぶ。
B.第2実施形態:
第2実施形態のロボットシステムにおいては、第1編集画面De1の第2表示部分Da2の表示の態様が第1実施形態とは異なる。また、第2実施形態のロボットシステムにおいては、第2表示部分Da2において指定された動作のフローチャートを、第3表示部分Da3に代えて表示することができる。第2実施形態のロボットシステムの他の点は、第1実施形態のロボットシステム1と同じである。
(1)動作アイコンとプロパティーアイコンの表示。
図20は、図3のステップS110において、動作シーケンスを構成する動作をユーザーが選択した後の状態の設定装置600のディスプレイ602(図1参照)の表示を示す図である。ディスプレイ602には、第1編集画面De1Aが示される。第1編集画面De1Aは、第1表示部分Da1Aと、第2表示部分Da2Aと、第3表示部分Da3Aとを含む。第1表示部分Da1Aと、第2表示部分Da2Aと、第3表示部分Da3Aとは、それぞれ第1編集画面De12の第1表示部分Da12と、第2表示部分Da22と、第3表示部分Da32に対応する(図7参照)。
第1表示部分Da1Aは、第1表示部分Da11と同一の表示である。
第2表示部分Da22には、第1表示部分Da1Aを介して選択された動作を表す表示M052,M031,M021,M053,M041の配列として、動作シーケンスが表示されている。「ハンド」M041に従属する動作として、さらに、L021~M056の動作が表示されている。
第2表示部分Da22において、各動作は、各動作を表すアイコンを含む表示で表されている。異なる動作については、形状と色の少なくとも一方が異なるアイコンが付されている。すなわち、「動かす」M052,M054,M055,M056の左側には、矢印の動作アイコンI052,I054,I055,I056が表示されている。「コンテナ」M031の左側には、フォルダーの形状の動作アイコンI031が表示されている。「ハンド」M041の左側には、手の形状の動作アイコンI041が表示されている。「停止」M091の左側には、正方形の動作アイコンI091が表示されている。
このような処理を行うことにより、ユーザーは、動作アイコンに基づいて、編集対象として選択すべき動作や動作を、直感的に把握することができる。
また、各動作の表示において、動作アイコンの右側には、プロパティーの設定状態を表すプロパティーアイコンが表示されている。図20においては、技術の理解を容易にするため、プロパティーアイコンIP052,IP053,IP055のみ符号を付す。
プロパティーアイコンは、円形の形状を有する。動作のプロパティーの設定が適切に完了していることを表すプロパティーアイコンは、青色で表示される(IP055参照)。動作のプロパティーの設定が完了していないことを表すプロパティーアイコンは、白色で表示される(IP052参照)。制約条件を満たさない値がプロパティーに設定されていることを表すプロパティーアイコンは、赤色で表示される(IP053参照)。
「制約条件を満たさない場合」とは、たとえば、ロボット100のアーム110が周辺の構造物と干渉するようなプロパティーの設定がされている場合である。また、いったんある動作のプロパティーが設定された後に、その動作が含まれるコンテナのプロパティーが設定され、その結果、コンテナのプロパティーの設定内容と、先に設定された動作のプロパティーの設定内容が整合しない場合も、制約条件を満たさない場合に含まれる。すなわち、制約条件は、あらかじめ定められているものであってもよいし、他の設定の結果として定められるものであってもよい。
このような処理を行うことにより、ユーザーは、アイコンの表示色に基づいて、各動作のプロパティーの設定が適切に完了しているか否かを直感的に把握することができる。また、ユーザーは、赤色のプロパティーアイコンが表示されている動作について、プロパティーの再設定を促されることができる。
さらに、第2表示部分Da22には、「繰り返し」L021に従属し、条件が満たされるまで繰り返される処理の左側には、繰り返しを表す矢印IRが表示される。このような表示を行うことにより、ユーザーは、どの処理が繰り返されるループ内に属しているのか、容易に理解することができる。
動作の種類ごとに異なる動作アイコンが表示される点と、プロパティーアイコンが表示される点、および処理のループが視覚的に表示される点以外については、第2実施形態の第2表示部分Da2は、第1実施形態の第2表示部分Da2と同じである。
第3表示部分Da3Aには、第2表示部分Da2Aに表示された動作シーケンスに含まれる動作のうち、選択された動作のプロパティーが表示される。第3表示部分Da3Aを介して、そのプロパティーの値が設定される(図3のS120参照)。図20の状態においては、「動かす」の表示M055が選択されているため、第3表示部分Da3Aには、「動かす」のプロパティーを設定するための画面が表示されている。
第3表示部分Da3Aにおいては、表示S31を介して、「動かす」のプロパティーとして、動きの指定のされ方について、「直線」、「リニア(PtoP)」、または「ジャンプ」を設定されることができる。「直線」が選択された場合には、制御点は、直線に沿って移動する。「リニア」が選択された場合には、制御点は、出発地点と目的地点のみを指定され、その間の移動経路は指定されない。「ジャンプ」が選択された場合には、制御点は、出発地点と目的地点の間にある領域を回避して、出発地点から目的地点に移動する。
また、第3表示部分Da3Aにおいては、表示S33を介して、「動かす」のプロパティーとして、動作の目的地点の設定方法について「ティーチ」または「Vision」が設定されることができる。表示S35を介して、「動かす」のプロパティーとして、動作速度について、「低速」、「ふつう」、または「高速」が設定されることができる。
第3表示部分Da3Aは、フローチャート表示ボタンBFを含む。第3表示部分Da3Aにおいてフローチャート表示ボタンBFが押された場合には、第3表示部分Da3Aに代えて、そのときに指定されている動作を含むフローチャートが表示される。第3表示部分Da3Aの他の点は、第1実施形態の第3表示部分Da3と同じである。
図21は、図20に示す第1編集画面De1Aにおいて、フローチャート表示ボタンBFが押された場合に示されるディスプレイ602の表示を示す図である。ディスプレイ602には、第1編集画面De1Bが示される。第1編集画面De1Bは、第1表示部分Da1Bと、第2表示部分Da2Bと、第4表示部分Da4とを含む。第1表示部分Da1Bは、第1表示部分Da1Aと同一の表示である。第2表示部分Da2Bは、第2表示部分Da2Aと同一の表示である。第4表示部分Da4は、第3表示部分Da3Aに代えて表示される。
第4表示部分Da4においては、フローチャート表示ボタンBFが押されたときに、第2表示部分Da2B(図20参照)において指定されていた「動かす」M055を含むシーケンスの一部のフローチャートが表示される。より具体的には、(i)「動かす」M055と、(ii)「動かす」M055に至る分岐の直前の処理と、(iii)「動かす」M055以降の処理が合流する点の後の最初の処理と、(iv)それらの間の動作と、を含むシーケンスの一部が、フローチャートとして表示される。
本実施形態においては、第2表示部分Da2に表示されている動作シーケンスの一部を表すフローチャートを含む第4表示部分Da4が、第3表示部分Da3Aに代えて、表示される。このような処理を行うことにより、ユーザーは、第4表示部分Da4のフローチャートを確認しつつ、第2表示部分Da2Bの動作シーケンスを編集することができる。
C.第3実施形態:
図22は、複数のプロセッサーによってロボットの制御装置が構成される一例を示す概念図である。この例では、ロボット100のロボット制御装置300が、ロボット100の外部に設けられている点が図1と異なる。また、この例では、ロボット100およびそのロボット制御装置300の他に、設定装置としてのパーソナルコンピューター600,600dと、LANなどのネットワーク環境を介して提供されるクラウドサービス1000とが描かれている。パーソナルコンピューター600,600dは、それぞれプロセッサーとメモリーとを含んでいる。また、クラウドサービス1000においてもプロセッサーとメモリーを利用可能である。プロセッサーは、コンピューター実行可能な命令を実行する。これらの複数のプロセッサーの一部または全部を利用して、ロボット100のロボット制御装置および設定装置を実現することが可能である。
D.他の形態:
D1.他の形態1:
(1)上記実施形態においては、第1編集画面De1(図6~図9参照)において、左下の「コマンド」ボタンC02が押された場合に、第1編集画面De1のうちの第2表示部分Da2に代わって、第2編集画面De2が表示される。しかし、第2編集画面De2は、第1編集画面De1全体に代えて表示されることもできる。そのような場合には、第2編集画面De2中に、第1編集画面De1に切り替えるためのボタンなどのユーザーインターフェイスを備えることが好ましい。
(2)上記実施形態においては、GUI情報303gとプログラム生成情報303p(図5参照)は、いずれもロボット制御装置300のRAM330(図1参照)内に格納されている。しかし、GUI情報303gとプログラム生成情報303pは、異なるハードウェアである別の記憶部にそれぞれ格納されていてもよい。
(3)上記実施形態においては、プログラムファイルの作成(図3のS140参照)は、シーケンスの作成(図3のS110参照)、プロパティーの設定(図3のS120参照)、およびジョグ&ティーチ(図3のS130参照)の後に行われる。しかし、プログラムファイルの作成は、たとえば、第1編集画面De1を介したシーケンスの作成(図3のS110参照)およびプロパティーの設定(図3のS120参照)の際に、行われる態様とすることもできる。そのような態様においては、たとえば、ユーザーが、第1編集画面De1内の所定のボタンを押すことにより、プログラムファイルの作成が行われてもよい。また、プログラムファイルの作成は、第1編集画面De1を介したシーケンスの作成(図3のS110参照)およびプロパティーの設定(図3のS120参照)において、内容が変更されるたびに自動的におこなわれる態様とすることもできる。
(4)設定装置600は、第1編集画面De1を介して設定された動作シーケンスが、プログラミング言語で表現された動作シーケンスCLMに変換される機能(図3のS140、ならびに図13および図14参照)に加えて、以下の機能を有していてもよい。すなわち、設定装置600は、第2編集画面De2を介してプログラミング言語で表現された動作シーケンスCLMを、第1編集画面De1に表示すべき動作シーケンスの画像に変換する機能を備えていてもよい。そのような態様においては、第1編集画面De1を介して設定され得ない設定内容については、第1編集画面De1を介して設定可能な設定内容に置き換えられる態様とすることができる。
(5)上記実施形態においては、ジョグ&ティーチによって、ロボット100の制御点を定めるパラメーターの値が決定される(図3のS130および図15参照)。しかし、ユーザーがロボット100のアーム110を直接動かして、ロボット100の制御点を定めるパラメーターの値を決定することもできる。また、機械学習とシミュレーションによって、ロボット100の制御点を定めるパラメーターの値を決定することもできる。
D2.他の形態2:
上記実施形態においては、第1表示部分Da1は「コンテナ」M03を含み、第2表示部分Da2においては、メソッド(動作)だけでなく、1以上の動作を含むコンテナも配列して編集することが可能である(図6~図9、ならびに図17~図21参照)。しかし、第1表示部分Da1が「コンテナ」M03を含まず、第2表示部分Da2において、コンテナも配列して編集することができない態様とすることもできる。
D3.他の形態3:
上記実施形態においては、第1編集画面De1の第3表示部分Da3を介して、動作のプロパティーが設定され得る(図7~図9、図19、ならびに図20)。しかし、第1編集画面De1においては、プロパティーは設定できず、第2編集画面De2を通じてプロパティーの設定がなされうる態様とすることもできる。
D4.他の形態4:
(1)上記実施形態においては、コンテナのプロパティーの設定が具体的に決定されると、そのコンテナに含まれるプリミティブメソッドのプロパティーは、自動的に決定されるか、またはそのコンテナに含まれるプリミティブメソッドのプロパティーについて設定され得ない設定範囲が生じる。しかし、コンテナのプロパティーの設定が具体的に決定された場合にも、そのコンテナに含まれるプリミティブメソッドのプロパティーが、自動的に決定されない態様とすることもできる。
そのような態様においては、コンテナのプロパティーの設定内容と、そのコンテナに属する動作のプロパティーの設定内容が整合しない場合には、その動作には、プロパティーが設定されていないことを表すプロパティーアイコン、およびプロパティーが適切に設定されていることを表すプロパティーアイコンとは異なるプロパティーアイコンが表示されることが好ましい(図20および図21のIP053参照)。
(2)上記実施形態においては、動作を表すアイコンとその動作のプロパティーの設定状態を表すプロパティーアイコンは、別個のアイコンである(図20のI052,IP052参照)。しかし、一つのアイコンが、ある動作を表すとともに、その動作のプロパティーの設定状態を表す態様とすることもできる。
D5.他の形態5:
(i)動作と、第1編集画面De1において動作を表す画像と、を対応づけている第1情報としてのGUI情報303gと、(ii)動作と、第2編集画面De2において動作を表すプログラミング言語による表現と、を対応づけている第2情報としてのプログラム生成情報303p(図5参照)とは、記憶部内において、同一のデータファイル内に格納されていてもよいし、別個のデータファイルとして格納されていてもよい。ただし、第1情報と第2情報が別個のファイルとして格納されている態様とすれば、必要に応じて、表示部の仕様ごとに、第1情報のデータファイルを用意することができる。そして、必要に応じて、制御対象の仕様ごとに、第2情報のデータファイルを用意することができる。よって、第1情報と第2情報が区別されずに同一のデータファイルに格納されている態様に比べて、情報の管理が容易である。
E.さらに他の形態:
適用例1:
ロボットを制御する制御装置が提供される。この制御装置は:複数の動作を表す画像の中から1以上の動作を表す画像を選択し、画面上で配列することによりロボットの動作シーケンスを編集することができる第1編集画面と、前記第1編集画面を介して編集された動作シーケンスを変換して得られる、プログラミング言語で表現された前記動作シーケンスが表示され、前記プログラミング言語で表現された前記動作シーケンスを編集することができる第2編集画面と、を表示部に表示することができる、表示制御部と;前記第1編集画面と前記第2編集画面の少なくとも一方を介して編集された動作シーケンスに基づいて、ロボットを制御する動作制御部と、を備える。
このような態様とすれば、高度なプログラミング技術を有さないユーザーは、第1編集画面を使用して、ロボットの動作シーケンスを編集することができる。一方、高度なプログラミング技術を有しているユーザーは、第2編集画面を使用して、詳細にロボットの処理内容を指定しつつ、ロボットの動作シーケンスを編集することができる。
適用例2:
適用例1記載の制御装置であって;前記表示制御部は、さらに、1以上の動作を含む動作群を選択し、画面上で配列することにより、ロボットの動作シーケンスを編集することができる、前記第1編集画面を前記表示部に表示することができる、態様とすることができる。
このような態様とすれば、ユーザーは、たとえば、制御装置においてあらかじめ用意されている動作群を選択し、画面上で配列することにより、ロボットの動作シーケンスを編集することができる。また、動作群に含まれる1以上の動作のうち少なくとも一部を自身または他のユーザーがあらかじめ編集した動作群を選択し、画面上で配列することにより、ロボットの動作シーケンスを編集することができる。よって、第1編集画面において、動作を一つずつ選択し配列する必要がある態様に比べて、ユーザーは、容易にロボットの動作シーケンスを編集することができる。
適用例3:
適用例2記載の制御装置であって;前記表示制御部は:前記第1編集画面として、前記動作のプロパティーを設定することができ、かつ、前記動作群のプロパティーを設定することができる、前記第1編集画面を、前記表示部に表示することができ;前記動作群に対して設定されたプロパティーに応じて、前記動作群に含まれる前記動作のプロパティーを、自動的に設定する、態様とすることができる。
このような態様とすれば、第1編集画面において、各動作のプロパティーを設定する必要がある態様に比べて、ユーザーは、容易に、動作群に含まれる1以上の動作のプロパティーを設定することができる。
適用例4:
適用例1または2記載の制御装置であって;前記表示制御部は、前記動作のプロパティーを設定することができる前記第1編集画面を、前記表示部に表示することができ;前記制御装置は、さらに、前記第1編集画面を介して編集された動作シーケンス、および前記第1編集画面を介して設定された前記プロパティーの情報を含むプログラムファイルを作成する、ファイル作成部を備える、態様とすることができる。
プログラムファイルが動作シーケンスの情報のみを含み、プロパティーの情報を含まない場合は、プログラムファイルを使用してロボットを動作させるためには、別途、プログラムファイルに対してプロパティーの情報を書き込む必要がある。しかし、上記態様によれば、動作シーケンスだけでなく、プロパティーの情報の情報も含めたプログラムファイルが作成されるため、作成されたプログラムファイルを使用してロボットを動作させることができる。
適用例5:
適用例4記載の制御装置であって;前記表示制御部は、第1記憶部に格納されており、前記動作と、前記第1編集画面において前記動作を表す画像と、を対応づけている第1情報を参照して、前記画像を含む前記第1編集画面を前記表示部に表示し;前記ファイル作成部は、第2記憶部に格納されており、前記動作と、前記第2編集画面において前記動作を表す前記プログラミング言語による表現と、を対応づけている第2情報を参照して、前記第1編集画面を介して編集された動作シーケンスを変換して、前記プログラムファイルを作成し;前記表示制御部は、前記プログラムファイルに基づいて、前記動作を表す前記プログラミング言語による表現を含む前記第2編集画面を、前記表示部に表示する、態様とすることができる。
このような態様とすれば、動作を表す画像を含む第1編集画面を表示部に表示することにより、ユーザーに、直感的に分かりやすい第1編集画面を提示することができる。また、動作を表す前記プログラミング言語による表現を含む第2編集画面を表示部に表示することにより、ユーザーに、詳細な動作内容が分かる第2編集画面を提示することができる。
適用例6:
本明細書に開示される技術は、適用例1から5のいずれか1項に記載の制御装置によって制御されるロボットの態様とすることができる。
適用例7:
本明細書に開示される技術は、適用例1から5のいずれか1項に記載の制御装置と;前記制御装置によって制御されるロボットと;を備えるロボットシステムの態様とすることができる。
上述した本発明の各形態の有する複数の構成要素はすべてが必須のものではなく、上述の課題の一部又は全部を解決するため、あるいは、本明細書に記載された効果の一部又は全部を達成するために、適宜、前記複数の構成要素の一部の構成要素について、その変更、削除、新たな他の構成要素との差し替え、限定内容の一部削除を行うことが可能である。また、上述の課題の一部又は全部を解決するため、あるいは、本明細書に記載された効果の一部又は全部を達成するために、上述した本発明の一形態に含まれる技術的特徴(technical features)の一部又は全部を上述した本発明の他の形態に含まれる技術的特徴の一部又は全部と組み合わせて、本発明の独立した一形態とすることも可能である。