JP2019177434A - 制御装置、ロボット、およびロボットシステム - Google Patents

制御装置、ロボット、およびロボットシステム Download PDF

Info

Publication number
JP2019177434A
JP2019177434A JP2018067115A JP2018067115A JP2019177434A JP 2019177434 A JP2019177434 A JP 2019177434A JP 2018067115 A JP2018067115 A JP 2018067115A JP 2018067115 A JP2018067115 A JP 2018067115A JP 2019177434 A JP2019177434 A JP 2019177434A
Authority
JP
Japan
Prior art keywords
display
robot
display portion
point
screen
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2018067115A
Other languages
English (en)
Inventor
佳紀 長島
Yoshinori Nagashima
佳紀 長島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2018067115A priority Critical patent/JP2019177434A/ja
Publication of JP2019177434A publication Critical patent/JP2019177434A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

【課題】ロボットの動作シーケンスの作成において、センシングによって決定される位置に移動する動作を含む動作シーケンスの作成を、容易に行うことが可能な制御装置を提供する。【解決手段】ロボットを制御する制御装置が提供される。この制御装置は、複数の動作を表す画像の中から1以上の動作を表す画像を選択し、画面上で配列することによりロボットの動作シーケンスを編集することができる編集画面であって、1個のセンサーによる情報取得の結果に基づいて行われる1以上の動作を含む動作群に対して、一つの動作に対応し前記センサーによる情報取得の結果に基づいて決定される位置を表す教示点を追加することができる編集画面を、表示部に表示することができる、表示制御部と、前記編集画面を介して編集された動作シーケンスに基づいて、ロボットを制御する動作制御部と、を備える。【選択図】図17

Description

本発明は、ロボットのプログラミングを行うための技術に関するものである。
従来、ロボットのプログラミングを行うためのユーザーインターフェイスが存在する。たとえば、特許文献1においては、移動元教示位置と移動先教示位置との間にて新たに教示位置を追加するに際し、センシングによって移動元教示位置を補正した補正移動元教示位置と、センシングによって移動先教示位置を補正した補正移動先教示位置とを結ぶ軌跡上を移動している溶接ロボットを停止させ、教示位置を追加すべき位置に停止位置から溶接ロボットを誘導して停止させ、移動元教示位置と移動先教示位置とを結ぶ軌跡上へ停止位置を正射影した正射影位置に、誘導した溶接ロボット誘導量を加算して得た位置を、新たな教示位置とする。
特開平2004−17082号公報
しかし、上記の従来技術においては、ロボットの動作シーケンスの作成において、センシングによって決定される位置に移動する動作を含む動作シーケンスの作成を、容易に行うことについては、考慮されていない。
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
ロボットを制御する制御装置が提供される。この制御装置は:複数の動作を表す画像の中から1以上の動作を表す画像を選択し、画面上で配列することによりロボットの動作シーケンスを編集することができる編集画面であって、1個のセンサーによる情報取得の結果に基づいて行われる1以上の動作を含む動作群に対して、一つの動作に対応し前記センサーによる情報取得の結果に基づいて決定される位置を表す教示点を追加することができる編集画面を、表示部に表示することができる、表示制御部と;前記編集画面を介して編集された動作シーケンスに基づいて、ロボットを制御する動作制御部と、を備える。
本実施形態のロボットシステム1を模式的に示す説明図である。 ロボットシステム1と処理装置800と搬送装置750と警告灯900の関係を示す説明図である。 ワークステーションWSにおける処理のフローを示すフローチャートである。 図3のステップS100における設定装置600およびロボット制御装置300の処理を示すブロック図である。 GUI情報303gとプログラム生成情報303pの機能を示す図である。 図3のステップS110において、動作シーケンスを構成する動作をユーザーが選択する前の状態の設定装置600のディスプレイ602の表示を示す図である。 図3のステップS110において、動作シーケンスを構成する動作をユーザーが選択した後の状態の設定装置600のディスプレイ602の表示を示す図である。 図7の第1編集画面De12において、「基本設定」の表示M011に代えて、信号出力」の表示M061が選択された場合の第1編集画面De13を示す図である。 図7の第1編集画面De12において、「基本設定」の表示M011に代えて、「待機する」の表示M081が選択された場合の第1編集画面De14を示す図である。 「アプリケーション」と、「ジョブ」と、「メソッド」と、「プロパティー」と、「コンテナ」と、の関係を例示する説明図である。 プリミティブメソッドだけでジョブを構成した例である。 プリセットコンテナだけでジョブを構成した例である。 第2編集画面De21を示す。 第2編集画面De22を示す。 ロボット100の制御点を定めるパラメーターの値を決定する際のユーザーインターフェイス画面である。 カメラ700によって取得された画像に基づいて認識された位置P1から、同様に認識された位置P2に移動する際の、中継点P3〜P5を示す説明図である。 図6の第1編集画面De11において、コンテナの1種である「Vision」C01が選択された場合の設定装置600のディスプレイ602の表示を示す図である。 図17の状態から、「中継点」RP05が追加された状態の設定装置600のディスプレイ602の表示を示す図である。 図18の状態において、「中継点」RP04が選択された場合の設定装置600のディスプレイ602の表示を示す図である。 図3のステップS110において、動作シーケンスを構成する動作をユーザーが選択した後の状態の設定装置600のディスプレイ602の表示を示す図である。 図20に示す第1編集画面De1Aにおいて、フローチャート表示ボタンBFが押された場合に示されるディスプレイ602の表示を示す図である。 複数のプロセッサーによってロボットの制御装置が構成される一例を示す概念図である。
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の制御点を定めるパラメーターの値を決定することもできる。
(6)上記実施形態においては、「Vision」C01は、1個のセンサーとしてのカメラ700によって取得された画像中から検出された位置に基づいて決定される点(P1〜P5)に移動する動作の集合である。画像中から検出された位置に基づいて決定される点は、画像中から検出された位置そのものであってもよいし(図16のP1およびP2参照)、画像中から検出された位置とは異なる位置であってもよい(図16のP3〜P5参照)。すなわち、センサーによる情報取得の結果に基づいて決定される位置は、センサーによる情報取得の結果そのものとしての位置であってもよいし、センサーによる情報取得の結果に基づいて定められる、センサーによる情報取得の結果ではない位置であってもよい。
(7)1個のセンサーによる情報取得の結果に基づいて行われる1以上の動作を含む動作群は、1個のセンサーによる情報取得によって得られる1個の結果に基づいて行われる1以上の動作を含む動作群であることが好ましい。1個のセンサーによる情報取得によって得られる1個の結果は、たとえば、力検出部によって得られたある瞬間の力の状態や、撮像部によって得られたある瞬間の外部の画像とすることができる。また、1個のセンサーによる情報取得によって得られる1個の結果は、たとえば、撮像部としてのデジタルビデオカメラによって記録された動画に基づいて定められる、静止している対象物の位置とすることができる。なお、1個の結果は、静止している複数の対象物の位置を含むことができ、静止している一つの対象物の複数の位置を含むことができる。
(8)上記実施形態においては、位置設定画面Dtを介して、ジョグ&ティーチで定めた位置を、教示点として追加することができる(図15のBrp1参照)。しかし、ユーザーがロボット100のアーム110を直接動かして、ロボット100の制御点を定める態様においては、ハードウェアスイッチを介して、教示点を追加する態様とすることもできる。そのような態様においては、ロボット100のアーム110の先端部分に、アーム110を直接動かすための持ち手(グリップ)を設け、その持ち手に教示点を追加するためのボタンを設けることが好ましい。
D2.他の形態2:
外部の画像を取得することができる撮像部としてのカメラ700は、たとえば、静止画を撮影得きるデジタルスチルカメラとすることができ、動画を撮影することができるデジタルビデオカメラとすることもできる。
D3.他の形態3:
(1)上記実施形態においては、教示点としての中継点P1〜P5は、撮像部としてのカメラ700によって取得された画像中から検出された位置に基づいて決定される点である。しかし、センサーによる情報取得の結果に基づいて決定される位置は、他の方法で決定される位置とすることもできる。
たとえば、教示点としての中継点P1〜P5は、力検出部としての力覚センサー190によって検出された力の状態(すなわち、力の向きと力の大きさの組み合わせ)が目標状態に達したときのロボット100の制御点に基づいて決定される点とすることもできる。たとえば、力覚センサー190によって検出された力の状態が目標状態に達したときのロボット100の制御点よりも、ある方向にある距離だけずれた位置を、教示点としての中継点とすることができる。また、力覚センサー190によって検出された力の状態が目標状態に達したときのロボット100の制御点よりも、ある方向にある力の大きさだけ検出される力の状態が異なる位置を、教示点としての中継点とすることができる。そのような教示点で指定される動作群を、上述の「Vision」C01と同様に(図17〜図19参照)、「Force」に従属する動作群として、設定可能な態様とすることができる。
このような態様においては、1個の力覚センサー190によって検出された力の状態に基づいて行われる動作は、ロボット100の動作シーケンスの作成において、上述の「Vision」C01と同様に(図17〜図19参照)、動作群としてまとめて取り扱われる。このため、力覚センサー190による力の検出と、力覚センサー190によって検出された力に基づいて決定される位置への移動とが、独立に設定される制御装置に比べて、力の検出値によって決定される位置に移動する動作を含む動作シーケンスの作成を、容易に行うことができる。
(2)さらに、「Vision」C01と同様に、「動かす」M05(図17〜図19参照)に従属する教示点としての中継点を、追加できる態様とすることもできる。そのような態様においては、「動かす」による移動において通過すべき中継点として、撮像部や力検出などのセンサーの出力によって定められる位置を、設定し、追加することができる。また、「動かす」動作によって移動した先の地点を基準として、その地点からの変位量を規定することにより、さらに、次の移動の位置を定めることができる。
D4.他の形態4:
上記実施形態においては、位置設定画面Dtを介して、ジョグ&ティーチで定めた位置を、教示点として追加することができる(図15のBrp1参照)。しかし、位置設定画面Dtからは、教示点を追加することができず、第1編集画面De1から、または第1編集画面De1と第2編集画面De2とから、教示点を追加できる態様とすることもできる。
D5.他の形態5:
上記実施形態においては、第1編集画面De1を介して、教示点を追加することができる(図17および図18のBrp2参照)。しかし、第1編集画面De1においては、教示点を追加できず、第2編集画面De2において、教示点を追加できる態様とすることもできる。そのような態様においては、第2編集画面De2内に、教示点としての中継点を追加することができるユーザーインターフェイスを設けることが好ましい。一方、第2編集画面De2が表示されている状態においては、教示点を追加できず、第1編集画面De1(言い替えれば、第1編集画面De1の第2表示部分Da2)が表示されている状態において、教示点を追加できる態様とすることもできる。
D6.他の形態6:
上記実施形態においては、カメラ700で認識された基準位置に対して、方向と距離とが指定されて、中継点としての教示点が指定される(図19のS38参照)。中継点として、たとえば、基準位置に対して、X,Y,Zの3軸のいずれか一つと、その方向に沿った距離と、を指定されることができる。この態様においては、移動方向と、移動距離が指定される。
一方、中継点として、たとえば、基準位置に対して、X,Y,Zの3軸と、それぞれの方向に沿った距離と、U,V,Wの3軸と、それぞれの回転方向に沿った角度と、が指定される態様とすることもできる。この態様においては、目標地点と、目標地点におけるエンドエフェクターの向きとが指定される。
E.さらに他の形態:
適用例1:
ロボットを制御する制御装置が提供される。この制御装置は:複数の動作を表す画像の中から1以上の動作を表す画像を選択し、画面上で配列することによりロボットの動作シーケンスを編集することができる編集画面であって、1個のセンサーによる情報取得の結果に基づいて行われる1以上の動作を含む動作群に対して、一つの動作に対応し前記センサーによる情報取得の結果に基づいて決定される位置を表す教示点を追加することができる編集画面を、表示部に表示することができる、表示制御部と;前記編集画面を介して編集された動作シーケンスに基づいて、ロボットを制御する動作制御部と、を備える。
このような態様においては、ロボットの動作シーケンスの作成において、1個のセンサーによる情報取得の結果に基づいて行われる1以上の動作を含む動作群に対して、そのセンサーによる情報取得の結果に基づいて決定される位置を表す教示点を、追加することができる。その結果、1個のセンサーによる情報取得の結果に基づいて行われる動作は、ロボットの動作シーケンスの作成において、動作群としてまとめて取り扱われる。このため、センサーによる情報取得と、センサーによる情報取得の結果に基づいて決定される位置への移動とが、独立に設定される制御装置に比べて、センシングによって決定される位置に移動する動作を含む動作シーケンスの作成を、容易に行うことができる。
適用例2:
適用例1記載の制御装置であって;前記センサーは、外部の画像を取得することができる撮像部であり;前記教示点は、前記撮像部によって取得された画像中から検出された位置に基づいて決定される点である、態様とすることもできる。
このような態様とすれば、1個の撮像部によって取得された画像に基づいて行われる動作は、ロボットの動作シーケンスの作成において、動作群としてまとめて取り扱われる。このため、撮像部による画像の取得と、撮像部による画像に基づいて決定される位置への移動とが、独立に設定される制御装置に比べて、画像によって決定される位置に移動する動作を含む動作シーケンスの作成を、容易に行うことができる。
適用例3:
適用例1記載の制御装置であって;前記センサーは、加えられた外力の大きさを検出することができる力検出部であり;前記教示点は、前記力検出部によって検出された力の大きさが目標値に達したときの前記ロボットの制御点に基づいて決定される点である、態様とすることもできる。
このような態様とすれば、1個の力検出部によって検出された力の大きさに基づいて行われる動作は、ロボットの動作シーケンスの作成において、動作群としてまとめて取り扱われる。このため、力検出部による力の検出と、力検出部によって検出された力に基づいて決定される位置への移動とが、独立に設定される制御装置に比べて、力の検出値によって決定される位置に移動する動作を含む動作シーケンスの作成を、容易に行うことができる。
適用例4:
適用例1から3のいずれか1項に記載の制御装置であって;前記表示制御部は、前記動作としての移動において通過すべき位置に対して具体的な位置を特定する設定値を設定できる位置設定画面であって、前記教示点として通過すべき位置をさらに追加することができる第1操作部を含む位置設定画面を、前記表示部に表示することができる、態様とすることもできる。
このような態様とすれば、編集画面からだけでなく、位置設定画面からも、教示点として通過すべき位置を追加することができる。このため、位置設定画面からはそのような設定ができない制御装置に比べて、センシングによって決定される位置に移動する動作を含む動作シーケンスの作成を、容易に行うことができる。
適用例5:
適用例1から4のいずれか1項に記載の制御装置であって;前記表示制御部は、前記編集画面として:前記動作群が、プロパティーを設定されることができ;前記教示点をさらに追加することができる第2操作部を含む前記編集画面を、前記表示部に表示することができる、態様とすることもできる。
このような態様とすれば、動作群のプロパティーを設定できる編集画面を介して、教示点として通過すべき位置を追加することができる。このため、センシングによって決定される位置に移動する動作を含む動作シーケンスの作成を、容易に行うことができる。
適用例6:
適用例2に直接または間接に従属する適用例5記載の制御装置であって;前記動作群のプロパティーは、前記撮像部によって取得された画像中から検出された位置からの距離を含む、態様とすることもできる。
このような態様とすれば、動作群のプロパティーを設定できる編集画面を介して、教示点として通過すべき位置を、撮像部によって取得された画像中から検出された位置に基づいて、具体的に設定することができる。このため、センシングによって決定される位置に移動する動作を含む動作シーケンスの作成を、容易に行うことができる。
適用例7:
本明細書に開示される技術は、適用例1から6のいずれか1項に記載の制御装置によって制御されるロボットの態様とすることができる。
適用例8:
本明細書に開示される技術は、適用例1から6のいずれか1項に記載の制御装置と;前記制御装置によって制御されるロボットと;を備えるロボットシステムの態様とすることができる。
上述した本発明の各形態の有する複数の構成要素はすべてが必須のものではなく、上述の課題の一部又は全部を解決するため、あるいは、本明細書に記載された効果の一部又は全部を達成するために、適宜、前記複数の構成要素の一部の構成要素について、その変更、削除、新たな他の構成要素との差し替え、限定内容の一部削除を行うことが可能である。また、上述の課題の一部又は全部を解決するため、あるいは、本明細書に記載された効果の一部又は全部を達成するために、上述した本発明の一形態に含まれる技術的特徴(technical features)の一部又は全部を上述した本発明の他の形態に含まれる技術的特徴の一部又は全部と組み合わせて、本発明の独立した一形態とすることも可能である。
1…ロボットシステム、100…ロボット、110…アーム、110a,110b,110d…アーム要素、190…力覚センサー、200…エンドエフェクター、300…ロボット制御装置、303…メソッド情報、303g…GUI情報、303p…プログラム生成情報、304…ジョブ情報、305…プログラムファイル、310…CPU、319…動作制御部、330…RAM、340…ROM、410…サーボモーター、410o…出力軸、420…モーター角度センサー、510…減速機、510i…入力軸、510o…出力軸、600,600a,600b,600c,600d…設定装置(コンピューター)、602…ディスプレイ、604…キーボード、605…マウス、610…CPU、612…表示制御部、614…ファイル作成部、630…RAM、640…ROM、700…カメラ、750…搬送装置、800…処理装置、900…警告灯、1000…クラウド、At…搬送方向を示す矢印、BF…フローチャート表示ボタン、Be1〜Be7…編集ボタン、Bp01〜Bp06,Br01〜Br06…ジョグボタン、Brp1,Brp2…中継点追加ボタン、Bs…保存ボタン、Bt…教示ボタン、C01…Vision表示、C011…Visionコンテナの動作表示、C02…コマンドボタン、CLM…プログラムリスト、CLM011,CLM031,CLM041,CLM051,CLM052,CLM053,CLM061,CLM081…リスト部分、CM…動作表示、Da11〜Da14,Da16〜Da18,Da1A,Da1B…第1表示部分、Da21〜Da24,Da26〜Da28,Da2A,Da2B…第2表示部分、Da31〜Da34,Da36〜Da38,Da3A…第3表示部分、Da4…第4表示部分、De11〜De14,De16〜De18,De1A,De1B…第1編集画面、De21,De22…第2編集画面、Dt…位置設定画面、I021,I031,I041,I052,I053,I054,I055,I091,I056…動作アイコン、IP052,IP053,IP055…プロパティーアイコン、IR…繰り返しを表す矢印、J1〜J4…関節、L01,L02…ロジックを表す動作表示、L011…「If」の動作表示、L021…「繰り返し」の動作表示、LG…ロジックを表す動作表示、M01〜M09…動作表示、M011…「基本設定」の動作表示、M021…「コメント」の表示、M031…「コンテナ」の動作表示、M041…「ハンド」の動作表示、M051,M052,M053,M054,M055,M056…「動かす」の動作表示、M055…「ハンド」の動作表示、M061…「信号出力」の動作表示、M081…「待機する」の動作表示、M091…「停止」の動作表示、MS…モードを選択するための表示、P1〜P5…中継点、RP01〜RP05…中継点の表示、S342…待機する対象を選択するための表示、S344…待機する時間を指定するための入力窓、S346…待ち対象ビットを指定するためのスライダー、S348…待機する対象の状態を指定するための表示、S3A1…動かし方を設定するための表示、S3A3…行き先を設定するための表示、S3A5…速度を設定するための表示、S38…基準点からの距離を設定するための表示、SS…速度を選択するための表示、W01…ワークピース、WS…ワークステーション

Claims (8)

  1. ロボットを制御する制御装置であって、
    複数の動作を表す画像の中から1以上の動作を表す画像を選択し、画面上で配列することによりロボットの動作シーケンスを編集することができる編集画面であって、1個のセンサーによる情報取得の結果に基づいて行われる1以上の動作を含む動作群に対して、一つの動作に対応し前記センサーによる情報取得の結果に基づいて決定される位置を表す教示点を、追加することができる編集画面を、表示部に表示することができる、表示制御部と、
    前記編集画面を介して編集された動作シーケンスに基づいて、ロボットを制御する動作制御部と、を備える、制御装置。
  2. 請求項1記載の制御装置であって、
    前記センサーは、外部の画像を取得することができる撮像部であり、
    前記教示点は、前記撮像部によって取得された画像中から検出された位置に基づいて決定される点である、制御装置。
  3. 請求項1記載の制御装置であって、
    前記センサーは、加えられた外力の大きさを検出することができる力検出部であり、
    前記教示点は、前記力検出部によって検出された力の大きさが目標値に達したときの前記ロボットの制御点に基づいて決定される点である、制御装置。
  4. 請求項1から3のいずれか1項に記載の制御装置であって、
    前記表示制御部は、前記動作としての移動において通過すべき位置に対して具体的な位置を特定する設定値を設定できる位置設定画面であって、前記教示点として通過すべき位置をさらに追加することができる第1操作部を含む位置設定画面を、前記表示部に表示することができる、制御装置。
  5. 請求項1から4のいずれか1項に記載の制御装置であって、
    前記表示制御部は、前記編集画面として、
    前記動作群が、プロパティーを設定されることができ、
    前記教示点をさらに追加することができる第2操作部を含む前記編集画面を、前記表示部に表示することができる、制御装置。
  6. 請求項2に直接または間接に従属する請求項5記載の制御装置であって、
    前記動作群のプロパティーは、前記撮像部によって取得された画像中から検出された位置からの距離を含む、制御装置。
  7. 請求項1から6のいずれか1項に記載の制御装置によって制御されるロボット。
  8. 請求項1から6のいずれか1項に記載の制御装置と、
    前記制御装置によって制御されるロボットと、
    を備えるロボットシステム。
JP2018067115A 2018-03-30 2018-03-30 制御装置、ロボット、およびロボットシステム Pending JP2019177434A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018067115A JP2019177434A (ja) 2018-03-30 2018-03-30 制御装置、ロボット、およびロボットシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018067115A JP2019177434A (ja) 2018-03-30 2018-03-30 制御装置、ロボット、およびロボットシステム

Publications (1)

Publication Number Publication Date
JP2019177434A true JP2019177434A (ja) 2019-10-17

Family

ID=68277116

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018067115A Pending JP2019177434A (ja) 2018-03-30 2018-03-30 制御装置、ロボット、およびロボットシステム

Country Status (1)

Country Link
JP (1) JP2019177434A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111745642A (zh) * 2020-05-25 2020-10-09 北京无线电测量研究所 一种机器人示教系统及方法
JPWO2021171350A1 (ja) * 2020-02-25 2021-09-02

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2021171350A1 (ja) * 2020-02-25 2021-09-02
WO2021171350A1 (ja) * 2020-02-25 2021-09-02 日本電気株式会社 制御装置、制御方法及び記録媒体
JP7323045B2 (ja) 2020-02-25 2023-08-08 日本電気株式会社 制御装置、制御方法及びプログラム
CN111745642A (zh) * 2020-05-25 2020-10-09 北京无线电测量研究所 一种机器人示教系统及方法

Similar Documents

Publication Publication Date Title
CN110315533B (zh) 控制装置、机器人以及机器人系统
JP6931457B2 (ja) モーション生成方法、モーション生成装置、システム及びコンピュータプログラム
JP6343353B2 (ja) ロボットの動作プログラム生成方法及びロボットの動作プログラム生成装置
Mateo et al. Hammer: An Android based application for end-user industrial robot programming
JP5729404B2 (ja) ティーチングシステムおよびティーチング方法
US20130116828A1 (en) Robot teach device with 3-d display
US11534910B2 (en) Control device for displaying a relationship between robot output and device input
JP6469162B2 (ja) ロボットのオフライン教示装置
JP2019177434A (ja) 制御装置、ロボット、およびロボットシステム
Wang et al. Augmented reality enabled human–robot collaboration
JP2019188545A (ja) ロボット制御装置
JP2019177435A (ja) 制御装置、ロボット、およびロボットシステム
US20220395985A1 (en) Information processing apparatus, information processing method, display apparatus, display method, robot system, article production method, program, and storage medium
JP7440620B2 (ja) プログラム編集装置
Beeson et al. Cartesian motion planning & task programming with CRAFTSMAN
Thoo et al. Online and offline robot programming via augmented reality workspaces
CN116802020A (zh) 用于监督式自主抓取的用户界面
WO2017032407A1 (en) An industrial robot system and a method for programming an industrial robot
Matour et al. Intuitive Robot Path Planning through Augmented Reality
Sun et al. Direct virtual-hand interface in robot assembly programming
JP7469457B2 (ja) ロボットプログラミング装置及びロボットプログラミング方法
WO2024028977A1 (ja) 教示装置
WO2023112342A1 (ja) 教示装置、制御装置、及び機械システム
US20240058963A1 (en) Multi-mode robot programming
WO2022222061A1 (zh) 一种机器人示教系统及方法、机器人控制系统及方法

Legal Events

Date Code Title Description
RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20180910

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20181121

RD07 Notification of extinguishment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7427

Effective date: 20200810