IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ファナック株式会社の特許一覧

<>
  • 特許-プログラミング装置 図1
  • 特許-プログラミング装置 図2
  • 特許-プログラミング装置 図3
  • 特許-プログラミング装置 図4
  • 特許-プログラミング装置 図5
  • 特許-プログラミング装置 図6
  • 特許-プログラミング装置 図7
  • 特許-プログラミング装置 図8
  • 特許-プログラミング装置 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-09
(45)【発行日】2024-09-18
(54)【発明の名称】プログラミング装置
(51)【国際特許分類】
   B25J 9/22 20060101AFI20240910BHJP
   G05B 19/42 20060101ALI20240910BHJP
【FI】
B25J9/22 A
G05B19/42 J
【請求項の数】 8
(21)【出願番号】P 2022528851
(86)(22)【出願日】2021-06-01
(86)【国際出願番号】 JP2021020897
(87)【国際公開番号】W WO2021246416
(87)【国際公開日】2021-12-09
【審査請求日】2023-01-19
(31)【優先権主張番号】P 2020098761
(32)【優先日】2020-06-05
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【弁理士】
【氏名又は名称】廣瀬 繁樹
(74)【代理人】
【識別番号】100169856
【弁理士】
【氏名又は名称】尾山 栄啓
(72)【発明者】
【氏名】小倉 翔太郎
(72)【発明者】
【氏名】並木 勇太
(72)【発明者】
【氏名】高橋 広光
【審査官】岩▲崎▼ 優
(56)【参考文献】
【文献】特許第6498366(JP,B1)
【文献】特開2020-009204(JP,A)
【文献】特開平10-315172(JP,A)
【文献】特開平08-249026(JP,A)
【文献】特開2020-075354(JP,A)
【文献】特表2006-510496(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
G05B 19/18-19/416
G05B 19/42-19/46
(57)【特許請求の範囲】
【請求項1】
産業機械のプログラミングを行うためのプログラミング装置であって、
前記産業機械の制御装置に接続された撮像装置に関する情報を取得し、取得した前記情報に基づいて、撮像装置で取得する画像を用いる命令を表すアイコン又は命令文であって、撮像装置の選択を含む設定が可能なアイコン又は命令文を撮像装置が選択済みの形式で生成する命令生成部と、
生成された前記アイコン又は前記命令文を表示画面上に表示する命令表示部と、
を備えるプログラミング装置。
【請求項2】
前記命令生成部は、前記プログラミング装置の起動時、前記撮像装置の前記制御装置への接続時およびプログラム作成画面が開かれた時を含む所定の起動タイミングのいずれかあるいは複数のタイミングにおいて、前記プログラミング装置に接続された前記制御装置から前記撮像装置に関する情報を取得する、請求項1に記載のプログラミング装置。
【請求項3】
前記命令生成部は、前記プログラミング装置の入力装置を介してプログラム作成画面を起動するための所定の操作がなされたことに応じて、前記プログラミング装置に接続された前記制御装置から前記撮像装置に関する情報を取得する、請求項1に記載のプログラミング装置。
【請求項4】
前記撮像装置に関する情報は、前記撮像装置の種類、設置場所または接続されたポートの情報のいずれかまたは複数に関する情報を含む、請求項1から3のいずれか一項に記載のプログラミング装置。
【請求項5】
前記撮像装置に関する情報は、前記制御装置に接続された複数の前記撮像装置に関するものであり、
前記命令生成部は、複数の前記撮像装置の各々で取得する画像を用いる命令を表す前記アイコン又は前記命令文を、複数の前記撮像装置の各々を識別可能な表現形式で生成する、請求項4に記載のプログラミング装置。
【請求項6】
前記撮像装置に関する情報は、複数の前記撮像装置の各々の種類に関する情報を含み、
前記命令生成部は、複数の前記撮像装置の各々で取得する画像を用いる命令を表す前記アイコン又は前記命令文を、複数の前記撮像装置の各々の種類を識別可能な表現形式で生成する、請求項5に記載のプログラミング装置。
【請求項7】
産業機械のプログラミングを行うためのプログラミング装置であって、
前記産業機械の制御装置に接続された撮像装置に関する情報を取得し、取得した前記情報に基づいて、前記撮像装置で取得する画像を用いる命令を表すアイコン又は命令文を生成する命令生成部と、
生成された前記アイコン又は前記命令文を表示画面上に表示する命令表示部と、
を備え、
前記撮像装置に関する情報は、前記撮像装置の種類、設置場所または接続されたポートの情報のいずれかまたは複数に関する情報を含み、
前記撮像装置に関する情報は、前記制御装置に接続された複数の前記撮像装置に関するものであり、
前記命令生成部は、複数の前記撮像装置の各々で取得する画像を用いる命令を表す前記アイコン又は前記命令文を、複数の前記撮像装置の各々を識別可能な表現形式で生成し、
前記撮像装置に関する情報は、複数の前記撮像装置の各々の設置場所に関する情報を含み、
前記命令生成部は、複数の前記撮像装置の各々で取得する画像を用いる命令を表す前記アイコン又は前記命令文を、複数の前記撮像装置の各々の設置場所を識別可能な表現形式で生成する、プログラミング装置。
【請求項8】
前記プログラミングを行うためのプログラム作成画面を表示し、該プログラム作成画面に対する編集操作を受け付けるプログラム編集部を更に備え、
前記命令生成部は、前記撮像装置で取得する画像を用いる命令を表す前記アイコンを生成し、
前記命令表示部は、生成された前記アイコンを前記プログラム作成画面内の所定の表示領域に表示し、
前記プログラム作成画面は、前記所定の表示領域から選択したアイコンを配置することでプログラムを作成するためのプログラム作成領域を含み、
前記プログラム編集部は、前記プログラム作成領域に配置された前記アイコンに対する選択操作に応じて、該選択されたアイコンに対応する撮像装置のライブ画像を表示する、請求項1から7のいずれか一項に記載のプログラミング装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、産業機械のプログラミング装置に関する。
【背景技術】
【0002】
一般にロボットのプログラミングはテキストベースの命令文を用いて行われるため、教示者はロボットのプログラミング言語の知識が必要となる。他方、ロボットの制御プログラムの教示者による直感的な入力を支援するために、ロボット制御の各命令を表すアイコンを用いたプログラミングを可能とするプログラム作成装置が提案されている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【文献】特許第6498366号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
撮像装置を備えるロボットシステムにおけるプログラミングのための命令群には、撮像装置を用いて対象物を撮像し撮像された画像を画像処理して対象物を検出する機能に対応する命令が含まれる。一般には、このような撮像装置を用いた機能に対応する命令文をロボットの制御プログラム中に含める場合、撮像装置を用いた機能に対応する命令文をロボットの制御プログラム中に挿入する操作を行った後、その命令文で作動させる撮像装置の選択や設定を別途行う必要がある。ロボットシステムに配置される撮像装置は1台である場合以外に複数台である場合もある。この場合、オペレータは、撮像装置の機能に対応する命令文をプログラム中に複数挿入した後、挿入した各命令文で作動させる撮像装置の選択を繰り返す必要があり、オペレータの負担は更に増す。産業機械の制御プログラムのプログラミングにおいて、撮像装置の機能に対応する命令を含む制御プログラムの作成を行うオペレータの負担を軽減することのできるプログラミング装置が望まれている。
【課題を解決するための手段】
【0005】
本開示の一態様は、産業機械のプログラミングを行うためのプログラミング装置であって、前記産業機械の制御装置に接続された撮像装置に関する情報を取得し、取得した前記情報に基づいて、撮像装置で取得する画像を用いる命令を表すアイコン又は命令文であって、撮像装置の選択を含む設定が可能なアイコン又は命令文を撮像装置が選択済みの形式で生成する命令生成部と、生成された前記アイコン又は前記命令文を表示画面上に表示する命令表示部と、を備えるプログラミング装置である。
【発明の効果】
【0006】
上記構成によれば、産業機械の制御プログラムのプログラミングにおいて、撮像装置の機能に対応する命令を含む制御プログラムの作成を行うオペレータの負担を軽減することができる。
【0007】
添付図面に示される本発明の典型的な実施形態の詳細な説明から、本発明のこれらの目的、特徴および利点ならびに他の目的、特徴および利点がさらに明確になるであろう。
【図面の簡単な説明】
【0008】
図1】一実施形態に係る教示装置(プログラミング装置)を含むロボットシステムの構成を表す図である。
図2】教示装置の機能ブロック図である。
図3】命令生成及び表示処理を表すフローチャートである。
図4】命令生成及び表示処理による撮像装置のアイコンの作成及び表示の第1の例である。
図5】命令生成及び表示処理による撮像装置のアイコンの作成及び表示の第2の例である。
図6】プログラム作成画面において詳細タブを押下した場合に表示される画面の例である。
図7】撮像装置の機能に関する詳細なプログラミングのためのプログラム作成画面の例である。
図8】比較例として、一般的な教示装置におけるテキストベースでのプログラム作成画面の例を示す図である。
図9】本実施形態におけるテキストベースでのプログラム作成画面の例を示す図である。
【発明を実施するための形態】
【0009】
次に、本開示の実施形態について図面を参照して説明する。参照する図面において、同様の構成部分または機能部分には同様の参照符号が付けられている。理解を容易にするために、これらの図面は縮尺を適宜変更している。また、図面に示される形態は本発明を実施するための一つの例であり、本発明は図示された形態に限定されるものではない。
【0010】
図1は一実施形態に係る教示装置(プログラミング装置)10を含むロボットシステム100の構成を表す図である。図1に示すように、ロボットシステム100は、アーム先端部にハンド31を搭載したロボット30と、視覚センサ41、42と、ロボット30を制御するロボット制御装置20と、ロボット制御装置20に接続された教示装置10とを含む。ロボット30は、ここでは垂直多関節ロボットであるが、他のタイプのロボットが用いられても良い。ロボット制御装置20は、制御プログラムに従って、或いは、教示装置10からの指令により、ロボット30の動作を制御する。なお、ロボット制御装置20は、CPU、ROM、RAM、記憶装置、操作部、表示部、入出力インタフェース、ネットワークインタフェース等を有する一般的なコンピュータとしての構成を有していても良い。
【0011】
視覚センサ41は、ロボット30のアーム先端部に取り付けられている。視覚センサ42は、ロボット30が設置された作業空間において対象物1を撮影可能な位置に固定されている。ロボットシステム100では、視覚センサ41、42で対象物1の位置を検出し、ロボット30のハンド31で作業台2上の対象物1をハンドリングする。
【0012】
視覚センサ41、42は、ロボット制御装置20に接続されており、ロボット制御装置20による制御の下で動作する。ロボット制御装置20は、視覚センサ(41、42)により撮像された画像を取得し、撮像された画像に対して対象物検出等の画像処理を行う画像処理装置としての機能も備えている。ロボット制御装置20は、対象物のモデルパターンを保持し、撮像された画像中の対象物とモデルパターンとのパターマッチングにより対象物を検出する。ロボット制御装置20は、検出された対象物1の位置により教示位置を補正して対象物1の取り出し等を実行することができる。
【0013】
視覚センサ41、42は、濃淡画像やカラー画像を撮像するカメラ(2Dカメラ)でも、距離画像や3次元点群を取得できるステレオカメラや3次元センサ(3Dカメラ)でもよい。例示として、本実施形態では、視覚センサ41は2Dカメラであり、視覚センサ42は3Dカメラであるものとする。なお、図1では、ロボットシステム100に1台の2Dカメラと1台の3Dカメラの合計2台の撮像装置が配置されている例を示しているが、ロボットシステム100が具備する撮像装置の台数は1台でも良く、又は3台以上の複数の台数であっても良い。また、ロボットシステム100内に複数の同一種類の撮像装置(例えば、複数の2Dカメラ、又は、複数の3Dカメラ)が配置されていても良い。
【0014】
教示装置10は、ロボット30に対象物1のハンドリングを実行させるための制御プログラムを作成するために用いられる。教示装置10は、例えば、ロボット制御装置20に接続された教示操作盤、タブレット端末等である。或いは、教示装置10は、オフラインでプログラミングを行うためのプログラミング装置(PC等)であっても良い。教示装置10は、CPU、ROM、RAM、記憶装置、入出力インタフェース、ネットワークインタフェース等を有する一般的なコンピュータとしてのハードウェア構成を有していても良い。
【0015】
図2は、教示装置10の機能ブロック図である。なお、図2では、教示装置10と他の装置との接続関係も表している。図2の示すように、教示装置10は、命令生成部11と、命令表示部12と、プログラム編集部13と、プログラム生成部14とを有する。
【0016】
命令生成部11は、ロボット制御装置20に接続されている1以上の撮像装置に関する情報をロボット制御装置20から取得し、当該情報に基づいて1以上の撮像装置の各々で取得する画像を用いる命令を表すアイコン又は命令文を、1以上の撮像装置の各々を識別可能な表現形式で作成する。ここで、「撮像装置に関する情報」は、ロボット制御装置20に接続されている各撮像装置の種類を特定することができる情報(例えば、製品型式)である。これにより、命令生成部11は、ロボットシステム100に具備された撮像装置の種類として、例えば、2Dカメラ(モノクロ)、2Dカメラ(カラー)、3Dカメラのいずれかであることを特定することができる。
【0017】
「撮像装置に関する情報」は、更に、撮像装置の設置場所を特定可能な情報を含んでいても良い。設置場所を特定可能な情報は、例えば、撮像装置が、ロボットに搭載されているカメラ(ハンドカメラ)であるか、作業空間に固定された固定カメラであるかを表す情報である。一般にロボットに搭載するカメラの接続ケーブルは、ロボットの内部を通して配線されロボット制御装置の特定の入出力インタフェースに接続されるため、ロボット制御装置は、撮像装置がどの入出力インタフェースに接続されたものであるか(例えば、撮像装置がどのポートに接続されているかを表す情報)により、撮像装置の設置場所(ハンドカメラであるか固定カメラであるか)を特定することが可能である。なお、撮像装置の設置場所を表す情報としてさらに詳細な位置情報(例えば固定カメラの場合に作業空間内での座標情報)が提供されても良い。
【0018】
或いは、ロボットの出荷時に撮像装置をロボットに取り付けて出荷するように場合には、カメラ側に当該カメラが例えばハンドカメラであることを示す情報を製品情報の一部として保有させても良い。図1の構成のロボットシステム100の場合、命令生成部11は、視覚センサ41、42に関する情報として、例えば下記のような情報をロボット制御装置20から取得する。

視覚センサ41に関する情報:2Dカメラ(カラー)、ハンドカメラ
視覚センサ42に関する情報:3Dカメラ、固定カメラ
【0019】
上述のような「撮像装置に関する情報」を取得することで、命令生成部11は、ロボット制御装置20に接続された撮像装置の、種類、数、及び設置場所を識別可能な表現形式で各撮像装置のアイコン又は命令文を生成することができる。命令表示部12は、命令生成部11によって作成された上記アイコン又は命令文を表示装置18の所定の表示領域に表示する。
【0020】
プログラム編集部13は、ロボット30の制御プログラムを作成するための編集画面(プログラム作成画面)を表示装置18に表示させ、制御プログラムの編集操作を受け付ける。ここで、制御プログラムには、ロボット30の制御のための命令と、視覚センサによる撮像及び撮像した画像の処理に関する命令とを含む。プログラム生成部14は、編集画面中のプログラム作成領域に配置されたアイコン、又は、編集画面中のプログラム作成領域に記述された命令文から制御プログラムを生成する。
【0021】
以下に、教示装置10によるアイコン又は命令文の生成及び表示に関する実施例を2例説明する。第1の実施例は、教示装置10が撮像装置で取得する画像を用いる命令を表すアイコンを生成して表示する場合の動作例であり、第2の実施例は、教示装置10が撮像装置で取得する画像を用いる命令を表す命令文(テキスト)を生成して表示する場合の動作例である。図3は、撮像装置で取得する画像を用いる命令を表すアイコン又は命令文を生成して表示するための処理(以下、命令生成及び表示処理とも記載する)を表すフローチャートである。図3のフローチャートは、第1の実施例及び第2の実施例に共通であるため、以下では、図3のフローチャートを適宜参照して2つの実施例を説明する。図3の処理は、教示装置10のCPUによる制御の下で実行される。
【0022】
(第1の実施例)
第1の実施例では、教示装置10は撮像装置で取得する画像を用いる命令を表すアイコンを生成して表示する。この場合、命令生成部11はアイコン生成部として機能し、命令表示部12はアイコン表示部として機能する。教示装置10の起動により、又は、教示装置10に対してプログラム作成画面を開くための所定の操作がなされることにより、図3の命令生成及び表示処理が起動される。はじめに、教示装置10(プログラム編集部13)は、プログラム作成画面(編集画面)400を表示装置18に表示する(ステップS1)。図4及び図5は、ここで作成されるプログラム作成画面400の2つの例を示している。図4及び図5に示すように、プログラム作成画面400は、プログラム作成領域300と、アイコン表示領域200とを含む。
【0023】
次に教示装置10(命令生成部11)は、ロボット制御装置20に接続された撮像装置に関する情報をロボット制御装置20から取得する(ステップS2)。次に、教示装置10(命令生成部11)は、撮像装置に関する情報に基づいて撮像装置のアイコンを作成する(ステップS3)。
【0024】
次に、教示装置10(命令生成部11)は、撮像装置に関する情報に基づいて、ロボット制御装置20に接続された全ての撮像装置についてアイコンが作成されたか否かを確認する(ステップS4)。教示装置10(命令生成部11)は、ロボット制御装置20に接続された全ての撮像装置についてアイコンが生成されるまで、アイコンを作成するステップS3を繰り返す(S4:NO)。ロボット制御装置20に接続された撮像装置の全てについてアイコンが作成されると(S4:YES)、処理はステップS5に進む。
【0025】
ステップS5では、教示装置10(命令表示部12)は、以上の処理により作成されたアイコンを、所定の表示領域(アイコン表示領域200)に表示させる(ステップS5)。なお、本明細書においてアイコンとは、各種装置に対する命令を、図形、絵柄、記号等によりグラフィカルに表現したあらゆるものを含み得る。したがって、アイコンには、本実施形態で例示するものの他、例えば、ビジュアルなプログラミングツールで使用されるようなグラフィックなオブジェクト(例えば、パズル形式のグラフィックプログラミングで用いられるブロック)も含まれる。
【0026】
図4及び図5を参照して図3の命令生成及び表示処理による撮像装置のアイコンの作成及び表示例を2例説明する。
【0027】
図4は、命令生成及び表示処理による撮像装置のアイコンの作成及び表示の第1の例を示す。図4に示すように、プログラム作成画面400は、プログラミングに用いることのできるアイコンのリストを表示するアイコン表示領域200と、アイコンを動作順に配置することで制御プログラムを作成するためのプログラム作成領域300とを含む。ここでは、視覚センサ41が2Dカメラであり、視覚センサ42が3Dカメラである場合を想定する。ステップS3において、教示装置10(命令生成部11)は、視覚センサ41(2Dカメラ)のアイコンとして、2Dカメラの外観を模した図形のアイコン201を生成する。図4に示すように、アイコン201には、当該アイコンの機能を表す言葉として“2DカメラAで見て取る”との文字が付加されていても良い。また、教示装置10(命令生成部11)は、視覚センサ42(3Dカメラ)のアイコンとして、3Dカメラの外観を模した図形のアイコン202を生成する。図4に示すように、アイコン202には、当該アイコンの機能を表す言葉として“3DカメラAで見て取る”との文字が付加されていても良い。
【0028】
教示装置10(命令表示部12)は、アイコン201及び202を、ロボット30の制御(制御プログラム)のためのアイコン101-104と共に、アイコン表示領域200に表示する。アイコン201及びアイコン202は、視覚センサ41(2Dカメラ)と視覚センサ42(3Dカメラ)とを識別可能に構成されているため、オペレータはアイコン表示領域200に表示されているアイコン201及び202を見ることで、使用可能な(すなわち、ロボット制御装置20に接続されている)撮像装置の種類及び数を瞬時に把握することができる。なお、プログラム作成画面400には、各アイコン101-104、201-202に付加された文字情報(“つかむ”、“はなす”等)の表示/非表示を切り替える操作を行うためのボタンが設けられていても良い。
【0029】
アイコン表示領域200に表示されたアイコン101-104、201-202は、以下のような動作命令を表している。
アイコン101:ハンドを閉じて対象物をつかむ命令
アイコン102:ハンドを開く命令
アイコン103:ロボットのアーム先端部を直線の軌跡で移動させる命令
アイコン104:ロボットのアーム先端部を円弧状の軌跡で移動させる命令
アイコン201:2Dカメラで対象物の位置を検出する
アイコン202:3Dカメラで対象物の位置を検出する
【0030】
プログラム編集部13は、オペレータによる、アイコン表示領域200に表示されたアイコンをドラッグアンドドロップによりプログラム作成領域300に配置する操作を受け付ける。プログラム生成部14は、プログラム作成領域300に配置されているアイコンに従って制御プログラムを生成する。図4のプログラム作成領域300には、動作順にアイコン103、アイコン201、アイコン101、アイコン103、アイコン104が配置されている。この制御プログラムでは、ロボット30のアーム先端を目的位置に直線移動させ、2Dカメラにより対象物の位置を検出し、当該検出した位置により教示位置を補正してハンド31により対象物を把持して移動させる動作を実行する。
【0031】
図5は、命令生成及び表示処理による撮像装置のアイコンの作成及び表示の第2の例を示す。ここでは、視覚センサ41と視覚センサ42のいずれも2Dカメラである場合を想定する。この場合、教示装置10(命令生成部11)がロボット制御装置20から取得する撮像装置に関する情報は、撮像装置の種類に加え、撮像装置の設置場所に関する情報を含む。教示装置10(命令生成部11)は、ロボット制御装置20から取得した撮像装置に関する情報に基づいて、視覚センサ41がロボット30のアーム先端部に配置されたハンドカメラであること、及び、視覚センサ42が作業空間に固定された固定カメラであることを把握する。
【0032】
これにより、教示装置10(命令生成部11)は、視覚センサ41のアイコンとして、視覚センサ41がロボットのアーム先端部に取り付けられたカメラであることを連想させるような図形を含むアイコン212を作成する。図5に示すように、アイコン212には、アイコン212の機能及び設置場所の理解を助けるような言葉(ここでは、“2Dハンドカメラで見て取る”)が付加されていても良い。また、教示装置10(命令生成部11)は、視覚センサ42による機能のアイコンとして、視覚センサ42が固定カメラであることを連想させるような図形のアイコン211を生成する。図5に示すように、アイコン211には、アイコン211の機能及び設置場所の理解を助けるような言葉(ここでは、“2D固定カメラで見て取る”)が付加されていても良い。
【0033】
教示装置10(命令表示部12)は、アイコン211及び212を、ロボット30の制御のためのアイコン101-104と共に、アイコン表示領域200に表示する。アイコン211及びアイコン212は、視覚センサ41(ハンドカメラ)と視覚センサ42(固定カメラ)とを識別可能に構成されているため、オペレータはアイコン表示領域200に表示されているアイコン211及び212を見ることで使用可能な(すなわち、ロボット制御装置20に接続されている)撮像装置の種類、数、及び設置場所を瞬時に把握することができる。
【0034】
プログラム編集部13は、オペレータによる、アイコン表示領域200に表示されたアイコンをドラッグアンドドロップによりプログラム作成領域300に配置する操作を受け付ける。プログラム生成部14は、プログラム作成領域300に配置されているアイコンに従って制御プログラムを生成する。図5のプログラム作成領域300には、動作順にアイコン103、アイコン211、アイコン101、アイコン103、アイコン104が配置されている。この制御プログラムでは、ロボット30のアーム先端を目的位置に直線移動させ、2D固定カメラにより対象物の位置を検出し、当該検出した位置により教示位置を補正してハンド31により対象物を把持して移動させる動作を実行する。
【0035】
次に、命令生成部11により生成された撮像装置の機能(撮像装置で取得する画像を用いる命令)に関するアイコン(アイコン201-202、211-212)に対して詳細なプログラミングを行う場合の操作について説明する。図6は、図4図5に例示したようなプログラム作成画面400において、オペレータがプログラム作成領域300に配置されている撮像装置の機能に関するアイコン(例えばアイコン201)を選択してプログラム作成画面400内にある詳細タブ262を押下した場合のプログラム作成画面400の例を示す。この場合、図6に示すように、プログラム作成画面400の下側の領域に、新規作成ボタン501と、ドロップダウンメニュー502が現れる。オペレータは、撮像装置の機能に関する詳細なプログラムを新規に作成する場合には、新規作成ボタン501を押下する。他方、ドロップダウンメニュー502には、教示装置10に登録されている撮像装置の機能に関するプログラムが表示される。オペレータは、このドロップダウンメニュー502から所望のプログラムを選択して開くボタン503を押下することで、選択したプログラムを開くことができる。
【0036】
また、図6のプログラム作成画面400の下側の領域には、プログラム作成領域300内で選択されたアイコン(例えばアイコン201)に対応する撮像装置のライブ画像550が表示されても良い。このような構成によれば、オペレータは、プログラム作成領域300上で選択したアイコンに対応する撮像装置がどれであるかを、ライブ画像550を見ることでより確実に認識することができる。このようなライブ画像550の表示機能は、例えば、プログラム編集部13が、プログラム作成領域300内で選択されたアイコンに対する撮像装置のライブ画像の送信を、ロボット制御装置20に対して要求することで実現されても良い。
【0037】
なお、図6に示したプログラム作成画面400においてプログラミングタブ261を選択すると、プログラム作成画面400の下側の領域はアイコンの一覧を表示するアイコン表示領域200に戻り、オペレータがロボットのプロググラミングを行うことができる状態に戻る。
【0038】
図7は、図6の画面において新規作成ボタン501或いは開くボタン503を押下することにより表示される、撮像装置の機能に関する詳細なプログラミングのためのプログラム作成画面400Aを表す。図7に示すように、撮像装置の機能に関するプログラム作成画面400Aも、ロボットの制御プログラムを作成する場合のプログラム作成画面400と同じ画面構成となっている。プログラム作成画面400Aは、撮像装置の制御に関するアイコンを表示するアイコン表示領域200Aと、撮像装置に関する機能の詳細なプログラムを作成するためのプログラム作成領域300Aとを含む。ロボットの制御プログラムを編集する場合と同様に、オペレータは、アイコン表示領域200Aからアイコンを選択してドラッグアンドドロップ操作でプログラム作成領域300Aに並べることで、撮像装置の機能に関する詳細なプログラムを作成することができる。
【0039】
図7の例では、アイコン表示領域200Aに表示されるアイコンは、撮像に関する機能を表す撮像アイコン252と、対象物の検出機能を表す検出アイコン253と、補正量の計算を表す補正計算アイコン254とを含む。オペレータは、プログラム作成領域300Aに配置した各アイコンを選択して所定の操作を行い、プログラム作成画面400Aの下部にパラメータ設定画面を表示させて詳細なパラメータの設定を行うことができる。撮像アイコン252のパラメータ設定では以下のような設定項目について設定を行う。

・露光時間
・LED照明の点灯の有無
・画像縮小率
【0040】
検出アイコン253のパラメータ設定では以下のような設定項目の設定を行う。なお、下記設定項目において「一致度の閾値」、「コントラストの閾値」は、対象物の検出の画像処理における閾値に関するパラメータである。

・使用する画像
・見つける形状
・一致度の閾値
・コントラストの閾値
【0041】
補正計算アイコン254では、例えば検出アイコン253の検出結果に基づき対象物の画像上での位置を求め、当該画像上の位置をロボット座標系の3次元座標に変換することで、ロボットの教示位置を補正するための補正量を得る。
【0042】
図7のプログラム作成領域300Aのプログラム(以下、ビジョンプログラム604と記す)では、初めに撮像アイコン252が配置され、次に検出動作に相当する補助アイコン257が配置され、その補助アイコン257の枠内に2つの検出アイコン253が配置されている。このビジョンプログラム604では、次のような動作を実現する。初めに撮像アイコン252により対象物を撮像する。次に、検出の補助アイコン257では対象物の全体の形状を検出し、補助アイコン257内の2つの検出アイコン253により対象物上の特徴(例えば穴)の検出を行う。これにより、穴を2つ有する対象物を検出することができる。次に補正計算アイコン254で対象物のロボット座標系における座標を求め位置補正用のデータとする。
【0043】
(第2の実施例)
次に、教示装置10によるアイコン又は命令文の生成及び表示に関する第2の実施例を説明する。第2の実施例は、教示装置10が撮像装置で取得する画像を用いる命令を表す命令文(テキスト)を生成して表示する。図9に本実施形態による教示装置10により生成されるテキストベースでのプログラム作成画面400Bの例を示し、比較例として、図8に一般的な教示装置におけるテキストベースでのプログラム作成画面140の例を示す。図8及び図9のいずれも、図1のような2つの撮像装置を備えるロボットシステムにおいて同一の動作を実行するためのプログラム作成画面を示している。
【0044】
図9は、本実施形態に係る教示装置10のプログラム編集部13によって表示されるプログラム作成画面400Bを示す。プログラム作成画面400Bは、テキストベースでのプログラミングを行うためのプログラム作成領域300Bを含む。プログラム作成画面400Bが表示された状態で教示装置10の入力装置19を介して所定の操作(例えば、プログラム作成画面400Bに表示された命令リストボタン(不図示)を押下する操作)を行うことで、命令文の一覧を表示するポップアップメニュー200Bを表示させることができる。オペレータは、プログラム作成領域300B上の所望の行番号の位置にカーソルを移動させてポップアップメニュー200Bから所望の命令文を選択することで、カーソルの位置に命令文を挿入することができる。
【0045】
図3のフローチャートに沿って、教示装置10による命令文の作成及び表示処理を説明する。はじめに、教示装置10の起動により、或いは、教示装置10においてプログラム作成画面を開くための所定の操作が行われることにより、図3の処理が起動される。はじめに、教示装置10(プログラム編集部13)は、プログラム作成画面400Bを開く(ステップS1)。次に、命令生成部11は、ロボット制御装置20に接続された撮像装置に関する情報をロボット制御装置20から取得する(ステップS2)。ここでは、2台の視覚センサの情報が得られる。2台のカメラを便宜上、カメラA、カメラBとする。命令生成部11は、2台のカメラA、カメラBの各々について命令文を作成する。命令生成部11は、例えば、撮像装置による撮像を指示する命令である命令文“ビジョンケンシュツ”に関して、カメラA,カメラB各々に対して指令するための命令文“カメラAビジョンケンシュツ”、“カメラBビジョンケンシュツ”を生成する(ステップS3)。また、命令生成部11は、撮像された画像から対象物の位置を検出するための命令である命令文“ビジョンホセイデータシュトク”に関して、カメラA、カメラB各々に対して指令するための命令文“カメラAビジョンホセイデータシュトク”、“カメラBビジョンホセイデータシュトク”を生成する(ステップS3、S4)。
【0046】
次に、命令表示部12は、例えば命令リストボタン(不図示)に対する選択操作に応じてロボットの制御に関する命令文と共に、命令生成部11により生成された撮像装置の機能に関する命令文である“カメラAビジョンケンシュツ”、“カメラBビジョンケンシュツ”、“カメラAビジョンホセイデータシュトク”、“カメラBビジョンホセイデータシュトク”をポップアップメニュー200Bに含めて表示する(ステップS5)。オペレータは、このようなポップアップメニュー200B(命令文の一覧)を見ることで、ロボットシステムに接続されている撮像装置の種類、数を瞬時に把握することができる。なお、図9では2台のカメラを“カメラA”、“カメラB”と表記する場合を示しているが、例えば、“カメラA”の部分を“2Dハンドカメラ”と表記し、“カメラB”の部分を“3Dコテイカメラ”と表記することで、命令文として“2Dハンドカメラビジョンケンシュツ”、“3Dコテイカメラビジョンケンシュツ”、“2Dハンドカメラビジョンホセイデータシュトク”、“3Dコテイカメラビジョンホセイデータシュトク”をポップアップメニュー200Bに含めるようにしても良い。この場合、オペレータは、ロボットシステム100に取り付けられた撮像装置の種類、数、及び設置場所を把握することができる。
【0047】
ポップアップメニュー200Bに表示された命令文のリストから所望の命令文を選択してカーソルのある行に挿入する編集操作を繰り返すことで、オペレータは、プログラム作成領域300Bに記述されているような制御プログラムを作成する。ここでは、カメラAを直接指定する形での命令文(3-4行目)により、カメラAによる対象物の位置検出がなされ、検出された位置に基づきロボットの位置補正を行いながら対象物を把持する動作が実現される(6-10行)。また、カメラBを直接指定する形での命令文(13-14行目)により、カメラBによる対象物の位置検出がなされ、検出された位置に基づきロボットの位置補正を行いながら対象物を把持する動作が実現される(16-20行)。
【0048】
他方、一般的な教示装置では、撮像装置毎に命令文を作成する処理はなされない。そのため、図8に示すように、一般的な教示装置によるプログラム作成画面140においては、命令文の一覧を表示するポップアップメニュー120には、撮像装置に関する命令文として、撮像装置を特定しない形式での命令文“ビジョンケンシュツ”、“ビジョンホセイデータシュトク”が表示されるに留まる。この場合、オペレータは、例えば、命令文“ビジョンケンシュツ”をポップアップメニュー120から選択してプログラム作成領域130に挿入した後に、この命令文“ビジョンケンシュツ”で用いるカメラをパラメータとして選択する必要がある。このようなポップアップメニュー120では、オペレータは、ロボットシステムに取り付けられている撮像装置の種類、数、設置場所を把握することはできない。
【0049】
上述の実施形態では、複数の撮像装置がロボットシステムに配置されている場合について説明したが、ロボットシステムに配置される撮像装置が1台の場合であっても、第1実施例(図4図5)の場合にはアイコン表示領域200に撮像装置が選択された状態のアイコンが表示され、第2の実施例(図9)の場合にはポップアップメニュー200Bには撮像装置が選択された状態の命令文が表示される。例えば、第1の実施例の場合、ロボットシステムに配置される撮像装置が1台(視覚センサ41)であれば、アイコン表示領域200にはアイコン201が表示される。また、第2の実施例の場合、ロボットシステムに配置される撮像装置が1台(カメラA)であれば、ポップアップメニュー200Bには“カメラAビジョンケンシュツ”、“カメラAビジョンホセイデータシュトク”が表示されることになる。したがって、ロボットシステムに配置される撮像装置が1台の場合であっても、オペレータは、アイコン又は命令文に対する詳細な設定としてカメラを選択する操作を行う必要はない。
【0050】
したがって、本実施形態によれば、産業機械の制御プログラムのプログラミングにおいて、撮像装置の機能に対応する命令を含む制御プログラムの作成を行うオペレータの負担を軽減することができる。
【0051】
以上、典型的な実施形態を用いて本発明を説明したが、当業者であれば、本発明の範囲から逸脱することなしに、上述の各実施形態に変更及び種々の他の変更、省略、追加を行うことができるのを理解できるであろう。
【0052】
上述の実施形態はロボットシステムにおける制御プログラムの作成に関するものであったが、上述の実施形態は、工作機械その他の各種産業機械の制御装置に1台以上の撮像装置が接続されたシステムにおける、制御プログラムのプログラミング装置に適用することができる。
【0053】
図2に示した教示装置10の機能ブロックは、教示装置10のCPUが、記憶装置に格納された各種ソフトウェアを実行することで実現されても良く、或いは、ASIC(Application Specific Integrated Circuit)等のハードウェアを主体とした構成により実現されても良い。
【0054】
図2に示した機能ブロック図の機能配置は例示であり、教示装置10に配置されている機能の一部がロボット制御装置20側に配置されても良い。
【0055】
教示装置10(命令生成部11)がロボット制御装置20から撮像装置に関する情報を取得してアイコン又は命令文の生成を行うタイミングは、上述した実施形態に記載の例以外にも、撮像装置がロボット制御装置20に接続されたタイミングなど様々な例が有り得る。教示装置10(命令生成部11)がロボット制御装置20から撮像装置に関する情報を取得してアイコン又は命令文の生成を行うタイミングは、教示装置10の起動時、撮像装置のロボット制御装置20への接続時、プログラム作成画面400が開かれた時等の所定の起動タイミングのいずれかとしても良く、或いは、これら起動タイミングの複数のタイミングとしても良い。
【0056】
上述した実施形態における図3の命令生成及び表示処理を実行するプログラムは、コンピュータに読み取り可能な各種記録媒体(例えば、ROM、EEPROM、フラッシュメモリ等の半導体メモリ、磁気記録媒体、CD-ROM、DVD-ROM等の光ディスク)に記録することができる。
【符号の説明】
【0057】
1 対象物
2 作業台
10 教示装置
11 命令生成部
12 命令表示部
13 プログラム編集部
14 プログラム生成部
18 表示装置
19 入力装置
20 ロボット制御装置
30 ロボット
41、42 視覚センサ
31 ハンド
200 アイコン表示領域
200B ポップアップメニュー
300、300B プログラム作成領域
400、400B プログラム作成画面
図1
図2
図3
図4
図5
図6
図7
図8
図9