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

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

▶ 日本電産株式会社の特許一覧

<>
  • 特許-ロボット教示装置 図1
  • 特許-ロボット教示装置 図2
  • 特許-ロボット教示装置 図3
  • 特許-ロボット教示装置 図4
  • 特許-ロボット教示装置 図5
  • 特許-ロボット教示装置 図6
  • 特許-ロボット教示装置 図7
  • 特許-ロボット教示装置 図8
  • 特許-ロボット教示装置 図9
  • 特許-ロボット教示装置 図10
  • 特許-ロボット教示装置 図11
  • 特許-ロボット教示装置 図12
  • 特許-ロボット教示装置 図13
  • 特許-ロボット教示装置 図14
  • 特許-ロボット教示装置 図15
  • 特許-ロボット教示装置 図16
  • 特許-ロボット教示装置 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-31
(45)【発行日】2022-11-09
(54)【発明の名称】ロボット教示装置
(51)【国際特許分類】
   B25J 9/22 20060101AFI20221101BHJP
   G05B 19/42 20060101ALI20221101BHJP
【FI】
B25J9/22 A
G05B19/42 J
【請求項の数】 13
(21)【出願番号】P 2019544367
(86)(22)【出願日】2018-08-02
(86)【国際出願番号】 JP2018028990
(87)【国際公開番号】W WO2019064915
(87)【国際公開日】2019-04-04
【審査請求日】2020-12-22
(31)【優先権主張番号】P 2017184640
(32)【優先日】2017-09-26
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000232302
【氏名又は名称】日本電産株式会社
(72)【発明者】
【氏名】吉田 昌弘
(72)【発明者】
【氏名】ドアン ナット タン
(72)【発明者】
【氏名】小菅 昌克
(72)【発明者】
【氏名】常田 晴弘
【審査官】國武 史帆
(56)【参考文献】
【文献】国際公開第2016/103307(WO,A1)
【文献】特開2016-209969(JP,A)
【文献】特開2014-117781(JP,A)
【文献】特開2011-123667(JP,A)
【文献】特開平09-212219(JP,A)
【文献】国際公開第97/011416(WO,A1)
【文献】特開2010-089218(JP,A)
【文献】欧州特許出願公開第01842631(EP,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
G05B 19/42
(57)【特許請求の範囲】
【請求項1】
オペレータの操作入力に基づいて、対象物に対するロボットの作業要素に関する情報であるタスクを作成するタスク作成部と、
前記タスク作成部によって作成されたタスクを記憶する第1記憶部と、
前記第1記憶部を参照して、複数のタスクの一覧であるタスクリストを表示装置に表示する表示制御部と、
を備え、
前記表示制御部は、前記ロボットの構成要素と、前記対象物の構成要素とが階層的に記述された階層型データを前記表示装置に表示し、
前記タスク作成部は、前記階層型データの前記ロボットの構成要素および前記対象物の構成要素を指定するオペレータの操作入力に基づいて、前記タスクを作成し、
オペレータの操作入力に基づいて、CAD用ウィンドウで選択した前記ロボット又は前記対象物を前記階層型データに登録し、
前記階層型データにおいて、オペレータの操作入力に基づいて、いずれか1つのロボットの構成要素、および少なくとも1つの対象物が選択された場合に、仮想空間において、選択されたロボットの構成要素が選択された対象物に到達可能かを判定する判定部と、
をさらに備え、
前記判定部によって到達可能と判定されたとき、到達可能と判定された対象部に対する前記選択されたロボットの構成要素の到達の余裕度を特定し、
前記選択された対象物に対して、特定された余裕度を表示するロボット教示装置。
【請求項2】
前記タスク作成部によって作成されたタスクに基づいて、当該タスクに対応する作業要素を前記ロボットに実行させるためのプログラムを作成するプログラム作成部、をさらに備えた、
請求項1に記載されたロボット教示装置
【請求項3】
前記表示装置に表示された前記タスクリストに対するオペレータの操作入力に基づいて、前記タスクリストのうちいずれかのタスクを削除し、前記第1記憶部に記憶されているタスクを前記タスクリストに追加し、又は、前記タスクリストのうちいずれかのタスクの内容を変更するタスク更新部、をさらに備えた、
請求項1から2のいずれか1項に記載されたロボット教示装置。
【請求項4】
前記表示装置に表示される前記タスクリストに含まれるタスクの順序は、前記複数のタスクの実行順序を規定しており、
前記ロボット教示装置は、
前記表示装置に表示された前記タスクリストに対するオペレータの操作入力に基づいて、前記タスクリストに含まれるタスクの順序を入れ替えるタスク入替部、をさらに備えた、
請求項1から3のいずれか1項に記載されたロボット教示装置。
【請求項5】
前記タスク作成部は、前記作業要素の目標点、当該目標点に到達する前の通過点である第1点、および、前記目標点に到達した後の通過点である第2点のうち、少なくともいずれかの点に関する情報を前記タスクに設定する、
請求項1に記載されたロボット教示装置。
【請求項6】
前記タスク作成部により前記タスクに設定された前記第1点および前記第2点のうち少なくともいずれかの点に関する情報を、オペレータの操作入力に基づいて、削除し、変更し、又は、追加する設定更新部、をさらに備えた、
請求項5に記載されたロボット教示装置。
【請求項7】
前記表示装置に表示された前記階層型データから2以上の対象物を指定するオペレータの操作入力に基づいて、前記2以上の対象物をグループ化するグルーピング部、をさらに備え、
前記タスク作成部は、グループ化された前記2以上の対象物のうちいずれかの対象物に対して設定された前記第1点および前記第2点のうち少なくともいずれかの点に関する情報を、前記2以上の対象物の他の対象物に対しても設定する、
請求項5に記載されたロボット教示装置。
【請求項8】
前記表示制御部は、前記ロボットの構成要素を階層的に表示するための第1領域と、前記対象物の構成要素を階層的に表示するための第2領域とに分けて、前記階層型データを前記表示装置に表示する、
請求項1に記載されたロボット教示装置。
【請求項9】
前記表示装置に表示された前記タスクリストのうち少なくとも1つのタスクを選択するオペレータの操作入力に基づいて、選択された前記少なくとも1つのタスクに基づいて前記プログラム作成部により作成されたプログラムを含むロボットプログラムを実行するプログラム実行部、をさらに備えた、
請求項2に記載されたロボット教示装置。
【請求項10】
前記表示制御部は、前記タスクリストのうち前記プログラム実行部による実行結果がエラーを示したタスクであるエラータスクと、前記タスクリストのうち前記エラータスク以外のタスクとを異なる表示態様で表示する、
請求項9に記載されたロボット教示装置。
【請求項11】
仮想空間における前記ロボットの3次元モデルの情報を記憶する第2記憶部と、
前記プログラム実行部による実行結果に基づいて、時間の経過に応じた前記ロボットの状態を示す情報である状態情報を演算する状態情報算出部と、
前記状態情報算出部によって得られた状態情報に基づいて、前記3次元モデルを仮想空間内で動作させて前記表示装置に表示するシミュレーション部と、
をさらに備えた、
請求項9又は10に記載されたロボット教示装置。
【請求項12】
仮想空間における前記対象物の3次元モデルの情報を記憶する第3記憶部と、
前記ロボットの前記対象物に対する作業の基準となる基準点を、前記対象物に関連付ける基準点設定部と、をさらに備え、
前記基準点設定部は、前記階層型データ上に表示された対象物の3次元モデルの仮想空間内の位置に基づき、前記基準点を算出する、
請求項1から1のいずれか1項に記載されたロボット教示装置。
【請求項13】
オペレータの操作入力に基づき、前記タスクに設定された前記目標点、前記第1点および前記第2点の少なくともいずれかの点において前記ロボットの動作を待機させる待機時間のタイムアウト値を設定するインターロック設定部、をさらに備えた、
請求項5又は6に記載されたロボット教示装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット教示装置に関する。
【背景技術】
【0002】
ロボットを工場のライン等で動作させるためには、利用者は、ロボットに対して動作を教示(ティーチング)する必要がある。このティーチングには、ロボットの動作させるときの目標となる3次元座標における点の情報(以下、「教示点」という。)を含むプログラムを作成することが含まれる。例えば特許文献1には、ロボットの教示目標点の移動軌跡を表示させるようにしたロボットシステムが記載されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特許第5375436号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、教示対象となるロボットが行う一連の作業に複数の作業要素が含まれている場合に、複数の作業要素を分かり易く管理することが望まれる。特に、ロボットが行う一連の作業に含まれる作業要素の数が増えれば増えるほど、一連の作業を管理することが困難となる。
【0005】
そこで、本発明は、ロボットのティーチングを行うときに、ロボットが行う一連の作業を分かり易く管理できるようにすることを目的とする。
【課題を解決するための手段】
【0006】
本願の例示的な第1発明は、オペレータの操作入力に基づいて、対象物に対するロボットの作業要素に関する情報であるタスクを作成するタスク作成部と、前記タスク作成部によって作成されたタスクを記憶する第1記憶部と、前記第1記憶部を参照して、複数のタスクの一覧であるタスクリストを表示装置に表示する表示制御部と、を備えた、ロボット教示装置である。
【発明の効果】
【0007】
本発明によれば、ロボットのティーチングを行うときに、ロボットが行う一連の作業を分かり易く管理することができる。
【図面の簡単な説明】
【0008】
図1図1は、実施形態のロボット教示装置の全体構成について示す図である。
図2図2は、実施形態のロボット教示装置に含まれる各装置のハードウェア構成を示す図である。
図3図3は、実施形態の一例に係る3次元CAD用ウィンドウを示す図である。
図4図4は、実施形態の一例に係る教示用ウィンドウを示す図である。
図5図5は、タスクを概念的に説明するための図である。
図6図6は、実施形態の一例に係る教示用ウィンドウの遷移を示す図である。
図7図7は、対象物のTCPの設定例を示す図である。
図8図8は、仮想空間におけるロボットのハンドの動作例を示す図である。
図9図9は、オペレータがTCPを設定する方法を説明する図である。
図10図10は、タスクリストの一例を示す図である。
図11図11は、図10のタスクリストにおいてエラータスクの表示例を示す図である。
図12図12は、実施形態の一例に係る教示用ウィンドウの遷移を示す図である。
図13図13は、実施形態において階層型リストの表示例を示す図である。
図14図14は、実施形態に係るロボット教示装置の機能ブロック図である。
図15図15は、実施形態に係るロボット教示装置の処理を示すシーケンスチャートの例である。
図16図16は、実施形態に係るロボット教示装置の処理を示すシーケンスチャートの例である。
図17図17は、実施形態において階層型リストの別の表示例を示す図である。
【発明を実施するための形態】
【0009】
以下、本発明のロボット教示装置の一実施形態について説明する。
本実施形態のロボット教示装置1は、ロボットを実際に動作させることなく、オペレータが当該ロボットの動作を教示するための教示データを作成するオフラインティーチングを提供する。
以下の説明において、「作業要素」とは、物体を「取る」や「置く」等、一連の作業の中でロボットが行う最小単位の作業を意味する。
「対象物」とは、ロボットの作業の対象となる物体を意味し、ロボットが把持する物体(例えば、加工対象物であるワーク)に限らず、ロボットの作業に関連する物体(例えば、ロボットが把持する物体を置く棚)をも含む。
【0010】
(1)本実施形態に係るロボット教示装置の構成
以下、本実施形態のロボット教示装置1の構成について、図1および図2を参照して説明する。図1は、本実施形態のロボット教示装置1の全体構成について示す図である。図2は、本実施形態のロボット教示装置1に含まれる各装置のハードウェア構成を示す図である。
【0011】
図1に示すように、ロボット教示装置1は、情報処理装置2およびロボット制御装置3を備える。情報処理装置2とロボット制御装置3とは、例えば通信ネットワークケーブルECにより通信可能に接続される。
情報処理装置2は、工場のラインに設置されたロボットに対して動作を教示するための装置である。情報処理装置2は、オペレータによるオフラインティーチングを行うために設けられており、例えばロボットが設置される工場から離れた位置(例えば、オペレータの作業場所)に配置される。
【0012】
ロボット制御装置3は、情報処理装置2から送信されるロボットプログラムを実行する。本実施形態ではロボット制御装置3はロボットと接続されないが、ロボットと接続された場合には、ロボットプログラムの実行結果に応じた制御信号をロボットに送り、ロボットを動作させることが可能である。そのため、好ましくは、ロボット制御装置3は、ロボットの実機の近傍に配置される。
【0013】
図2に示すように、情報処理装置2は、制御部21と、ストレージ22と、入力装置23と、表示装置24と、通信インタフェース部25とを備える。
制御部21は、CPU(Central Processing Unit)、ROM(Read Only Memory)、および、RAM(Random Access Memory)を含む。ROMには、3次元CADアプリケーションプログラムと教示ソフトウェアが記憶されている。CPUは、ROM上の3次元CADアプリケーションソフトウェア(以下、適宜「CADソフトウェア」という。)と教示ソフトウェアをRAMに展開して実行する。教示ソフトウェアとCADソフトウェアは、API(Application Program Interface)を介して協調して処理を実行する。
制御部21は、CADソフトウェアによる動画再生を行うために、フレーム単位で画像を連続的に表示する。
【0014】
ストレージ22は、HDD(Hard Disk Drive)あるいはSSD(Solid State Drive)等の大容量記憶装置であり、制御部21のCPUにより逐次アクセス可能に構成されている。
ストレージ22には、CADソフトウェアを実行するときに参照される3次元モデルのデータが格納される。本実施形態の例では、ストレージ22には、ロボットおよび対象物(例えば、後述するペン、キャップ、製品、ペントレイ、キャップトレイ、製品トレイ)の3次元モデルのデータが格納される。
ストレージ22には、ロボット制御装置3から取得した実行ログデータが格納される。実行ログデータには、ロボットプログラムの実行結果と、後述するロボット状態データとが含まれる。ロボット状態データは、3次元CADによってロボットの動作を仮想空間内で動画(アニメーション)により再現するために使用される。
【0015】
入力装置23は、オペレータによる操作入力を受け付けるためのデバイスであり、ポインティングデバイスを含む。
表示装置24は、教示ソフトウェアおよびCADソフトウェアの実行結果を表示するためのデバイスであり、表示駆動回路および表示パネルを含む。
通信インタフェース部25は、ロボット制御装置3との間でネットワーク通信を行うための通信回路を含む。
【0016】
ロボット制御装置3は、制御部31と、ストレージ32と、通信インタフェース部33とを備える。
制御部31は、CPU、ROM、RAM、および、制御回路を含む。制御部31は、情報処理装置2から受信するロボットプログラムを実行し、実行ログデータを出力する。実行ログデータには、ロボットプログラムの実行結果と、ロボットプログラムに記述された作業を実行するロボットのロボット状態データとを含む。
ロボット状態データは、時間の経過に応じたロボットの状態を示す物理量のデータである。ロボットの状態を示す物理量としては、ロボットのアームの関節角、アームの速度や加速度が挙げられる。
【0017】
ストレージ32は、HDDあるいはSSD等の大容量記憶装置であり、制御部31のCPUにより逐次アクセス可能に構成されている。ストレージ32には、ロボットプログラムおよび実行ログデータが格納される。
通信インタフェース部33は、情報処理装置2との間でネットワーク通信を行うための通信回路を含む。
【0018】
(2)オフラインティーチングにおけるユーザインタフェース
本実施形態のロボット教示装置1において、情報処理装置2は、ロボットに対するオフラインティーチングを提供する。このオフラインティーチングでは、教示ソフトウェアおよびCADソフトウェアが協働して実行され、以下で説明する有用なユーザインタフェースが提供される。
本実施形態においてオペレータがオフラインティーチングを行うときには、CADソフトウェアと教示ソフトウェアを情報処理装置2に実行させる。
CADソフトウェアの実行結果はCAD用ウィンドウに表示され、教示ソフトウェアの実行結果は教示用ウィンドウに表示される。オペレータは、CAD用ウィンドウと教示用ウィンドウの両方を情報処理装置2に表示させ、あるいはCAD用ウィンドウと教示用ウィンドウを切り替えながら情報処理装置2に表示させ、ティーチングに関連する操作を行う。
【0019】
図3に、本実施形態の一例に係るCAD用ウィンドウW1を示す。図3には、テーブルTの上に、ロボットRと、ペントレイ11と、キャップトレイ12と、治具13と、製品トレイ14とが、仮想空間に配置された状態の画像(以下、適宜「CAD画像」という。)が表示されている。
図3に示す例では、ロボットRがペンにキャップを嵌めて製品(ペンにキャップが嵌められた状態の完成品)を組み立てる一連の作業を行うことが想定されている。ペントレイ11には複数のペンからなるペン群Pが配置され、キャップトレイ12には複数のキャップからなるキャップ群Cが配置されている。治具13は、ロボットRがペンを一時的に配置してキャップを嵌める作業を行うための部材である。製品トレイ14は、製品を置くための部材である。
【0020】
図3に示す例では、ペン群Pに含まれる各ペン、キャップ群Cに含まれる各キャップ、ペントレイ11、キャップトレイ12、治具13、製品トレイ14の各々は、ロボットRの作業対象である対象物の例である。また、ペンにキャップが嵌められた製品も対象物の例である。
【0021】
(2-1)階層型リスト
図4に、本実施形態の一例に係る教示用ウィンドウW2を示す。教示用ウィンドウW2に表示されているのは、図3のCAD画像に含まれているロボットR、および、対象物の階層関係を示す階層型リスト(階層型データの一例)である。
【0022】
教示ソフトウェアは、CADソフトウェアと連携して階層型リストを作成することができる。階層型リストとして木構造のデータフォーマットが教示ソフトウェアによって用意される。オペレータは、CAD用ウィンドウと教示用ウィンドウを表示させた状態で、CAD画像内のロボットRおよび対象物をポインティングデバイスで選択した状態で上記木構造のデータフォーマットの所望のノードまでドラッグする操作を行う。この操作を、ロボットRの教示を行うのに必要となるすべての対象物に対して順に行うことで、階層型リストを完成させることができる。階層型リストに表示される各ノードの名称は、元となる3次元モデルの名称がそのまま適用されてもよいが、後で名称を変更できるようにしてもよい。
【0023】
以下の説明では、CAD画像内のロボットR、対象物を階層型リストのいずれかのノードに含めるようにすることを、ロボットR又は対象物を「階層型リストに登録する」という。図3では、ロボットが1体である場合のCAD画像を例示しているが、ロボットが2体以上存在する場合には、当該2体以上のロボットを階層型リストに登録することができる。
【0024】
図4に示す階層型リストにおいて、ロボットR(Robot_R)のノードの下層には、ハンドに関連する3個のノードが設けられている。ハンドに対して複数のノードを設けているのは、ハンドに想定される作業状態を考慮するためである。すなわち、ノード61~63は、以下の内容を意味し、それぞれ後述するTCP(Tool Center Point)が設定されている。
【0025】
・ノード61(Pen)…ペンを把持する作業に対応したハンド
・ノード62(Cap)…キャップを把持する作業に対応したハンド
・ノード63(Pen_with_Cap)…キャップが嵌められたペンを把持する作業に対応したハンド
【0026】
ノード61~63のいずれかを対象として右クリック操作を行い、「ハンドシーケンス操作」を選択すると、アクチュエーション方式(シングルソレノイド、又はダブルソレノイド等)、センサ種類などのハンドシーケンスに関連する設定を行うことができる。
ハンドシーケンスは、ロボットRのハンド52が把持する対象物に依存するため、ハンド52が把持する対象物ごとに設定される。ハンドシーケンスが設定されていない場合に後述するタスクを作成した場合には、タスクに基づくプログラムを実行できないため、表示装置24に警告表示を出力してもよい。
【0027】
図4に示すように、好ましくは、ロボットRの構成要素(図4のRobot_R, Hand)を階層的に表示するためのロボット領域RA(第1領域の例)と、対象物の構成要素を階層的に表示するための対象物領域PA(第2領域の例)とに分けて、階層型データが表示される。
対象物の構成要素には、治具(JIG)、ペントレイ(PenTray)、キャップトレイ(CapTray)、製品トレイ(ProductTray)、ペン(Pen1, Pen2,…,Pen12)、キャップ(Cap1, Cap2,…,Cap12)、および、製品(PenProduct1, PenProduct2,…,PenProduct12)が含まれる。
治具(JIG)のノードの下位には、治具を対象とした作業に対応して、例えば、以下のノードが設けられる。
【0028】
・ノード64(PenProduct)…製品(PenProduct)を保持した状態の治具
・ノード65(PenJ)…ペン(Pen)を保持した状態の治具
・ノード66(CapJ)…キャップ(Cap)を保持した状態の治具
【0029】
ペントレイ(PenTray)のノードの下位には、ペンPen1, Pen2,…,Pen12に対応する各ノードが設けられる。キャップトレイ(CapTray)のノードの下位には、キャップCap1, Cap2,…,Cap12に対応する各ノードが設けられる。製品トレイ(ProductTray)のノードの下位には、製品PenProduct1, PenProduct2,…,PenProduct12に対応する各ノードが設けられる。
【0030】
階層型リストの中のロボットR(図4のRobot_R)、および対象物(治具(JIG)、ペントレイ(PenTray)、キャップトレイ(CapTray)、製品トレイ(ProductTray)、ペンPen1, Pen2,…,Pen12、キャップCap1, Cap2,…,Cap12、および、製品PenProduct1, PenProduct2,…,PenProduct12)の各ノードは、各々に対応する3次元モデルのデータと関連付けられた状態となっている。そのため、階層型リストを作成後に階層型リスト内のロボットRおよび対象物の3次元モデルに変更があった場合であっても、階層型リストに再度登録する必要はない。
【0031】
図4の階層型リストにおいて、CAD用ウィンドウにおいて、選択したロボットR、対象物、部品又はTCP等を、ロボット領域RA内の任意のノードの位置に右クリックする操作を行い、「部品の追加」を選択することで、階層型リストに、CAD用ウィンドウで選択したロボットR又は対象物を階層型リストに登録する。
図4の階層型リストにおいて、任意の位置を右クリックする操作を行い、「一括更新」を選択することで、CADソフトウェア上で対象物の位置関係を変更した場合に、変更後の位置関係についての情報が階層型リストに反映される。
【0032】
(2-2)グルーピング
階層型リストに登録された2以上の対象物はグループ化することができる。
グループ化するときの手順は、以下のとおりである。例えば、図4において、ペントレイ(PenTray)に含まれるペンPen1, Pen2をグループ化する場合、ポインティングデバイスで階層型リストの中のペンPen1, Pen2に対応するノードを指定して右クリック操作を行い、次いで「グループ作成」を選択する操作を行う。この操作を行うことで、ペンPen1, Pen2がグループ化される。階層型リストにおいてグループ化された2以上の対象物は、当該2以上の対象物がグループ化されていることがオペレータに認識可能となるように、例えば図4に示すように矩形の枠で囲う、共通の字体とする、あるいは同一の色を付す等の表示処理を行うことが好ましい。
【0033】
なお、図4に示す例は、連続する2つのノードに対応する対象物をグループ化する場合であるが、連続していない2つのノードに対応する対象物をグループ化する場合には、グループ化した2つのノードが連続するように階層型リストを更新するようにしてもよい。例えば、ペンPen1とペンPen3をグループ化する場合には、ペントレイ(PenTray)のノードの下位ノードの順序を、ペンPen1, Pen3, Pen2…に更新する、といった具合である。
【0034】
(2-3)タスクについて
次に、タスクについて、図5を参照して説明する。図5は、タスクを概念的に説明するための図である。
タスクとは、一連の作業の中でロボットが行う最小単位の作業である作業要素に関する情報である。ロボットRが行う一連の作業(以下、「ジョブ」という。)は、複数の作業要素と、作業要素間の移動とにより構成される。従って、本実施形態では、ロボットRが行うジョブに対して複数のタスクが定義される。
【0035】
図5において、矢印付きの線は、ロボットRのハンド52の軌跡を概念的に示している。当該軌跡は、作業要素の目標点TPに到達する前の通過点であるアプローチ点AP1,AP2(それぞれ第1点の例)と、目標点TPと、目標点TPに到達した後の通過点であるデパーチャ点DP1,DP2(それぞれ第2点の例)とを含む。目標点TPは、作業要素の対象である対象物の位置を示しており、後述する対象物のTCPとしてもよい。
【0036】
図5に示す例では、アプローチ点AP1に到達する前のロボットRの動作が、作業要素間の移動(つまり、前の作業要素と図5に示す作業要素との間の移動)に相当する。アプローチ点AP1からデパーチャ点DP2までのロボットRの動作が1つの作業要素および1つのタスクに対応する。デパーチャ点DP2から後のロボットRの動作が、作業要素間の移動(つまり、図5に示す作業要素と次の作業要素との間の移動)に相当する。
すなわち、タスクは、作業要素に関する情報のほか、目標点TP、アプローチ点AP、およびデパーチャ点DPのうち少なくともいずれかの点に関する情報を含んでもよい。
【0037】
図5では、アプローチ点AP1,AP2においてインターロックが設定されている場合が例示されている。インターロックは、他のロボット等との干渉を回避するために、入力信号に基づいて、目標点TP、アプローチ点AP、およびデパーチャ点DPの少なくともいずれかの点においてロボットRの動作を待機させる処理である。
タスクには、インターロックを設定する点と、インターロックによる待機時間のタイムアウト値とを含むインターロック設定に関する情報を含んでもよい。
【0038】
(2-4)タスクの作成
次に、階層型リストを用いたタスクの作成方法について、図4および図6を参照して説明する。図6は、本実施形態の一例に係る教示用ウィンドウの遷移を示す図である。
図4に示す階層型リストにおいてタスクを作成するには、先ず、ロボット領域RAに含まれるロボットR(Robot_R)のハンド(Hand)のノード61~63のうちいずれかのノードを、オペレータがポインティングデバイスで選択して右クリック操作を行い、「タスク作成」を選択する。すなわち、ノードの選択は、オペレータの操作入力に基づいて、タスクに対応する作業要素におけるロボットRのハンドの把持対象から選択される。
【0039】
「タスク作成」が選択されると、図6のタスク作成のための教示用ウィンドウW3が表示される。教示用ウィンドウW3はタスクの詳細設定を行うための画面であり、タスク名称(Name)と、作業要素の種別(Function)、作業要素の目標物(Target)の各項目が表示される。ここで、階層型リストの対象物領域PAの中からいずれかの対象物に対応するノードをポインティングデバイスで左クリックすることで、教示用ウィンドウW3の目標物(Target)の項目に、左クリックにより選択された対象物が入力される。作業要素の種別(Function)の欄には、予め設定された複数の種類の作業要素(例えば、取る(Pick up)、置く(Place)等)の候補からなるプルダウンメニューの中からいずれかの作業要素を選択できるように構成されている。
【0040】
次いで、階層型リストの対象物領域PAの中から作業対象となる対象物をポインティングデバイスで選択して左クリック操作を行うことにより、教示用ウィンドウW3の目標物(Target)の項目に、選択された対象物が入力される。
作業要素の種別(Function)と目標物(Target)の各項目についてデータが入力されると、当該データに基づいて、タスクの名称(Name)が自動的に決定されて表示される。
【0041】
例えば、ロボットRのハンドが何も把持していない状態において、「ペントレイからペンPen1を取る」という作業要素に対応するタスクを作成するには、ロボット領域RA内のノード61を、オペレータはポインティングデバイスで右クリックしてから「タスク作成」を選択する。次いで、階層型リストの対象物領域PAの中からペントレイ(PenTray)に対応するノード67を対象としてポインティングデバイスで左クリック操作を行うことで教示用ウィンドウW3の目標物(Target)の項目に、ペントレイ(PenTray)が入力される。作業要素の種別(Function)の欄では、複数の種類の作業要素の候補の中から「取る(Pick up)」を選択する。そして、階層型リストの対象物領域PAの中から作業対象となるペンPen1に対応するノード68を対象としてポインティングデバイスで左クリック操作を行うことで、図6に示す教示用ウィンドウW3が表示される。
【0042】
以上の操作の結果、「ペントレイからペンPen1を取る」という作業要素に関する情報として、“Pickup_Pen1_From_PenTray”という名称のタスクが作成される。
本実施形態では、作業要素の対象物(ここでは「ペンPen1」)と、作業要素の始点(例えば「ペントレイ」)若しくは終点とを階層型リスト上で指定することで、オペレータは直感的にタスクを作成することができる。また、タスクの名称は、作業要素の作業内容(例えば「Pickup」)と、作業対象(例えば「ペンPen1」)と、作業要素の始点となる対象物(例えば「ペントレイ」)、又は終点となる対象物とを含むように自動的に作成されるため、タスクの名称からタスクの内容が直ちに分かるようになっている。
なお、階層型リストにおいてグループ化された2以上の対象物を対象として、まとめてタスクを作成してもよい。
【0043】
タスクを作成した場合、タスクに含まれるアプローチ点AP、目標点TP、および、デパーチャ点DPについての情報が自動的に作成される。すなわち、タスクは、当該タスクに関連する対象物の仮想空間上の3次元モデルのデータと関連付けられているため、3次元モデルのデータに基づいて、所定の基準によりアプローチ点AP、目標点TP、および、デパーチャ点DPの各点を算出する。算出方法の一例では、対象物の目標点TPとしてTCP(Tool Center Point;基準点の一例)を算出し、TCPを基準として、アプローチ点APおよびデパーチャ点DPを算出する。
【0044】
TCPは、ロボットRの対象物に対する作業の基準となる、仮想空間内の当該対象物の基準点(あるいは、作業点)を意味し、ロボットRのハンド52および各対象物に対して設定される。TCPを設定するときには、TCPを原点としたローカル座標系についても設定される。対象物のローカル座標系を設定することで、対象物のオイラー角を回転させるときにはTCPを中心に回転させればよいこと、および、後述するようにアプローチ点APおよびデパーチャ点DPを自動的に設定できること等の利点がある。
【0045】
図7に一例として、キャップCap1のTCPの設定例を示す。
本実施形態の例では、TCPは、対象物の重心位置に自動的に設定される。対象物には3次元モデルのデータが関連付けられているため、当該3次元モデルのデータから重心位置を比較的容易に得ることができる。
アプローチ点APおよびデパーチャ点DPは、それぞれ、対象物に設定されたローカル座標系のZ軸において、対象物(図7の例では、キャップCap1)の全長の1.5倍の位置に、タスク作成時に自動的に設定される。全長の1.5倍の位置は一例に過ぎず、例えば全長の1~2倍の間の任意の値に適宜設定されてもよい。なお、図7では、+Z軸側での作業(ハンド52によりキャップを取る、置く等の作業)が想定されており、ハンド52による作業が+Z方向となるようにローカル座標系を定義しておくことで、アプローチ点APおよびデパーチャ点DPを自動的に決定できる。
【0046】
2以上の対象物がグループ化されている場合には、当該2以上の対象物のいずれかに設定されているアプローチ点APおよびデパーチャ点DPを基に、当該2以上の対象物のうち他の対象物のアプローチ点APおよびデパーチャ点DPについて自動的に設定されてもよい。
例えば、ペンPen1, Pen2がグループ化されている場合を想定する。ペンPen1に対する作業の基準となるTCPの座標がワールド座標系において(100, 100, 0)に設定され、ペンPen1のアプローチ点APおよびデパーチャ点DPの座標がワールド座標系において(100, 100, 20)に設定されている場合を想定する。このとき、ペンPen2のTCPがワールド座標系において(120, 100, 0)である場合には、ペンPen2のアプローチ点APおよびデパーチャ点DPの座標がワールド座標系において(120, 100, 20)に自動的に設定される。すなわち、ペンPen1とペンPen2のTCPオフセット量(X座標で+20)が反映されるようにして、ペンPen2のアプローチ点APおよびデパーチャ点DPが設定される。換言すると、ペンPen1とペンPen2のそれぞれTCPを基準としたローカル座標系においてペンPen1とペンPen2のアプローチ点APおよびデパーチャ点DPが同一の座標となるように、ペンPen2のアプローチ点APおよびデパーチャ点DPが設定される。
【0047】
図8は、キャップトレイ12からキャップCap1を取るときの仮想空間上のハンド52の動作の一例を示す図である。
図8において、ハンド52は先ず、軌道TR1に沿って、ハンド52に設定されたTCP1(すなわち、図4のノード62に設定されたハンドのTCP)がアプローチ点APに一致するようにして移動する。次に、ハンド52は、軌道TR2に沿って、ハンド52に設定されたTCP1がキャップトレイ12のキャップCap1に設定されたTCP2に一致するようにして移動する。キャップCap1を把持した後、ハンド52は、軌道TR3に沿って、ハンド52に設定されたTCP1がデパーチャ点DPに一致するようにして移動する。
軌道TR2,TR3は、キャップトレイ12のキャップCap1に設定されたローカル座標系のZ軸に沿った軌道である。そのため、ハンド52がキャップCap1を取る際に、キャップトレイ12内のキャップCap1に隣接するキャップに干渉することはない。また、ハンド52の軌道は、ハンド52に設定されたTCP1と、キャップトレイ12内のキャップCap1のTCP2およびそのローカル座標系とに基づいて決定される。そのため、ハンド52は、キャップCap1を精度良く把持することができる。
【0048】
TCPを対象物の重心以外に設定する場合には、オペレータの操作入力に基づいて対象物の所望の位置にTCPを設定することもできる。
図9に、オペレータの操作入力に基づいてTCPを設定する方法を示す。
図9に示すように、CADソフトウェアでは、TCPを設定するためにローカル座標系LAを備えたTCPモデルTCP_mが設けられている。オペレータが当該TCPモデルを対象物(図9では、キャップCap1)の所望の位置に移動させてTCPモデルTCP_mの位置をセットした後に、階層型リスト内の対応するノード(例えば、図4のCap1のノード)までTCPモデルTCP_mをドラッグする操作を行う。それによって、CADソフトウェア上でセットした座標に対象物(例えば、キャップCap1)のTCPを設定することができる。
【0049】
再度図6を参照すると、教示用ウィンドウW3には、ボタンb1(「詳細設定」)が設けられている。オペレータは、ボタンb1(「詳細設定」)を操作することで、「アプローチ点、デパーチャ点設定」、「モーションパラメータ設定」、および「インターロック設定」のいずれかを選択することができる。
「アプローチ点、デパーチャ点設定」を選択することで、オペレータは、自動作成されたアプローチ点及び/又はデパーチャ点の変更、削除、および、新しいアプローチ点及び/又はデパーチャ点の追加を行うことができる。
モーションパラメータとは、タスクに含まれる隣接するアプローチ点AP間、アプローチ点APから目標点TPまでの間、および、目標点TPからデパーチャ点DPまでの間のロボットRのハンド52等の動きに関するパラメータである。例えば、かかるパラメータとして、移動速度、加速度、加速時間、減速時間、ロボットRの姿勢等が挙げられる。「モーションパラメータ設定」を選択することで、上記モーションパラメータをデフォルト値から変更することができる。
「インターロック設定」を選択することで、インターロックの待機時間のタイムアウト値と、待機時間がタイムアウト値を超えてエラーと判断したときの動作の設定とを、デフォルト値から変更することができる。
【0050】
図6の教示用ウィンドウW3には、ボタンb3(「チェック」)が設けられている。タスクを作成するときにボタンb3(「チェック」)を操作することは必須ではないが、ボタンb3(「チェック」)を操作することで、オペレータは事前に、タスクに含まれるアプローチ点APからデパーチャ点DPまでのロボットRの動作をCAD用ウィンドウで確認することができる。
ボタンb3(「チェック」)の操作は、タスクの名称(Name)が表示されている場合(つまり、作業要素の種別(Function)と目標物(Target)の各項目についてデータが入力済みの場合)に有効である。
【0051】
ボタンb3(「チェック」)の操作による動作確認結果は、タスクに基づいて作成されたプログラムを、ロボット制御装置3へ送信することにより行われる。ロボット制御装置3は、受信したプログラムを実行し、実行結果として、時間の経過に応じたロボットRの状態を示す情報であるロボット状態データを算出する。ロボット状態データは、例えば、時間の経過に応じたアーム51の関節角の変化や、時間の経過に応じたハンド52の軌跡等の情報である。このロボット状態データは、ロボット制御装置3から情報処理装置2へ返される。CADソフトウェアは、ロボット状態データに基づいて、ロボットRおよび対象物の3次元モデルを仮想空間内で動作させ、タスクに対応するロボットRの動きの動画表示を行う。
【0052】
ロボットRのロボット状態データを算出するときにエラーが発生した場合には、図6の教示用ウィンドウW3のステータス(Status)の欄に、エラー原因を表示してもよい。エラー原因としては、例えば、速度超過、目標点不到達、特異点到達等が挙げられる。
ロボットRの動作が正常に行われた場合には、ステータス(Status)の欄に、モーションパラメータで設定されている移動速度に対する余裕度、目標点に対する余裕度、あるいは、特異点までの余裕度等、オペレータにとって有益となる情報を表示してもよい。
【0053】
図6の教示用ウィンドウW3には、ボタンb2(「作成」)が設けられている。
ボタンb2(「作成」)が操作されることで、教示用ウィンドウW3によって設定されたタスクが後述するタスクリストに登録される。
なお、ボタンb2(「作成」)が操作される前に、ボタンb3(「チェック」)の操作による動作確認が行われていない場合には、ボタンb3(「チェック」)の操作が行われなくても自動的に動作確認を実行し、エラーの有無を報知するようにしてもよい。
【0054】
(2-5)タスクに基づくプログラムの作成
上述したように、タスクごとの動作確認を行う場合には、タスクに基づいてプログラムが作成される。タスクに基づくプログラムは、当該タスクに対応する作業要素をロボットRに実行させるためのロボットプログラムの例である。
例えば、図5に示すタスクに対応する作業要素を実行するためのプログラムは、以下の複数の関数からなり、各関数は、ロボットRのモーション(「ロボットRの動き」を意味する。)を実行させるためのプログラムによって記述されている。
なお、以下のmove(AP1)は、作業要素間の移動として別に定義されてもよい。
【0055】
・move(AP1) …アプローチ点AP1までの移動
・interlock(IL1)…アプローチ点AP1でインターロック(IL1)による待機
・move(AP2)…アプローチ点AP2までの移動
・interlock(IL2)…アプローチ点AP2でインターロック(IL2)による待機
・move(TP)…目標点TPまでの移動
・handSequence()…ハンドシーケンス処理
・move(DP1)…デパーチャ点DP1までの移動
・move(DP2)…デパーチャ点DP2までの移動
なお、interlock(IL1)およびinterlock(IL2)の関数において、タスクごとの動作確認を行う場合、プログラムは作成されるが、インターロックによる待機時間のタイムアウト値が無効となっている。
【0056】
(2-6)タスクリスト
タスクリストとは、ロボットRが行うジョブに含まれる複数の作業要素の各々に対応する複数のタスクの一覧の情報である。特定のジョブを対象として教示用ウィンドウW3によって作成されたタスクは、順次、当該ジョブに対応するタスクリストに登録されていく。タスクリストに含まれる複数のタスクの順序は、当該複数のタスクにそれぞれ対応する複数の作業要素の実行順序を示していることが、ジョブを管理する上で好ましい。
【0057】
図10の教示用ウィンドウW4は、「ペンにキャップを嵌めて製品を組み立てる」という一連の作業であるジョブ(「Pen Assembly」)に対応するタスクリストの一例を表示する。このタスクリストの一例は、以下の(i)~(vi)の6個の作業要素に対応するタスクを含む。この場合、タスク作成のための教示用ウィンドウW3によって、括弧内に表された名称のタスクが作成された場合を示している。
(i) ペントレイからペンを取る (Pickup_Pen1_From_PenTray)
(ii) 取ったペンを治具にセットする (Place_to_PenJ_in_PenProduct)
(iii) キャップトレイからキャップを取る (Pickup_Cap1_From_CapTray)
(iv) 治具上のペンにキャップを嵌める (Place_to_CapJ_in_PenJ)
(v) キャップが嵌められたペンを取る (Pickup_PenProduct_From_JIG)
(vi) キャップが嵌められたペンを製品トレイに置く (Place_to_PenProduct1_in_ProductTray)
【0058】
図10に示すタスクリストのうち、教示用ウィンドウW3における動作確認の結果がエラーを示したタスク(「エラータスク」という。)と、タスクリストのうちエラータスク以外のタスクとを、異なる表示態様(例えば、異なる文字色、異なる背景色とする表示態様)で表示してもよい。「エラータスク以外のタスク」とは、動作確認の結果、エラーを示さなかったタスクと、動作確認を行っていないタスクとを含む。エラータスクと、OKタスク(つまり、動作確認の結果、エラーを示さなかったタスク)と、動作確認が未実施のタスクとを、それぞれ異なる表示態様にしてもよい。
【0059】
グループ化された2以上の対象物を対象としてまとめてタスクを作成した場合には、タスクリスト中、グループにまとめたタスク表示を行ってもよい。
【0060】
オペレータは、タスクリストにおいて、いずれかのタスクをポインティングデバイスで選択した状態でドラッグ操作を行うことで、選択されたタスクをタスクリスト中の任意の順序に設定することができる。
【0061】
図10に示すように、オペレータがタスクリストのいずれかのタスクをポインティングデバイスで選択した状態で右クリックを行うと、「タスク編集」、「タスク追加」、「タスク削除」のいずれかの処理を選択できる。ここで、「タスク編集」が選択された場合には、選択されているタスクの教示用ウィンドウW3に戻って、当該タスクについての情報を変更することができる。「タスク追加」が選択された場合には、選択されているタスクのすぐ後の順序に、作成済みのタスクを読み込んで挿入するか、あるいは、教示用ウィンドウW3に戻ってタスクを作成して挿入することができる。「タスク削除」が選択された場合には、選択されているタスクをタスクリストから削除することができる。
【0062】
図10において、オペレータが教示用ウィンドウW4内の任意の位置を対象として右クリック操作を行うと、「教示点リスト出力」、「IOマップ出力」、および「プログラム出力」の中からいずれかを選択できる。
「教示点リスト出力」が選択された場合、各対象物に設定されたTCPの座標の一覧が出力される。
「IOマップ出力」が選択された場合、ロボットRに対する入出力(I/O)のポートの一覧を出力する。
「プログラム出力」が選択された場合、ジョブに対応して、シミュレーション用プログラムと実機用プログラムの2種類のロボットプログラムを出力する。実機用プログラムはインターロックによる待機時間のタイムアウト値が有効となっているが、シミュレーション用プログラムはインターロックによる待機時間が無効化されている点で、両者は異なる。
【0063】
(2-7)ジョブのシミュレーション
図10の教示用ウィンドウW4においてボタンb4が操作された場合、タスクリストに対応するロボットRのジョブのシミュレーションが実行される。
ジョブのシミュレーションを実行するに当たっては、先ず、当該ジョブに対応するロボットプログラムが作成される。すなわち、タスクリストに含まれる各タスクに基づくプログラムは、前述したように、ロボットRに対応する複数のモーションを実行させるためのプログラムが記述された関数の集合体として表される。なお、連続するタスクに対応する作業要素の間のロボットRの移動についてのモーションパラメータ(移動速度、加速度、加速時間、減速時間等)は、デフォルト値として予め定められていてもよいし、オペレータが設定できるようにしてもよい。
各タスクに基づくプログラムを順に組み合わせることで、ジョブに対応するロボットプログラムが作成される。各タスクに基づくプログラムを組み合わせるに当たっては、入力信号あるいは条件によって実行するプログラムを切り替えるような分岐処理や、特定のプログラムを繰り返す処理等が組み込まれてもよい。
【0064】
本実施形態では、情報処理装置2においてロボットプログラムが作成され、ロボット制御装置3において当該ロボットプログラムが実行される。
ロボット制御装置3は、ロボットプログラムの実行結果として、時間の経過に応じたロボットRの状態を示す情報であるロボット状態データを算出する。ロボット状態データは、例えば、時間の経過に応じたアーム51の関節角の変化や、時間の経過に応じたハンド52の軌跡等の情報である。このロボット状態データは、ロボット制御装置3から情報処理装置2へ返される。CADソフトウェアは、ロボット状態データに基づいて、ロボットRおよび対象物の3次元モデルを仮想空間内で動作させ、シミュレーション出力として
タスクに対応するロボットRの動きの動画(アニメーション)の表示を行う。
【0065】
ロボットRのロボット状態データを算出するときにエラーが発生した場合には、図10の教示用ウィンドウW4のステータス(Status)の欄に、エラー原因を表示してもよい。エラー原因としては、例えば、速度超過、目標点不到達、特異点到達等が挙げられる。
図10に示すタスクリストのうち、シミュレーションの結果がエラーを示したエラータスクと、タスクリストのうちエラータスク以外のタスクとを、異なる表示態様(例えば、異なる文字色、異なる背景色とする表示態様)で表示してもよい。
図11の教示用ウィンドウW5に、図10のタスクリストにおいてエラータスクの表示例を示す。この表示例では、タスクリストの中の最後の“Place_to_PenProduct1_in_ProductTray”というタスクがエラータスクである場合を示しており、当該エラータスクにマークM1(タスクを囲む枠線)を付加することで、エラータスク以外のタスクと異なる表示態様としている。
【0066】
なお、タスクリストのうちオペレータによって選択された一部のタスクに対応する作業要素についてのシミュレーションを実行できるようにしてもよい。
【0067】
(2-8)エリアチェック
次に、エリアチェックについて、図12および図13を参照して説明する。図12は、本実施形態の一例に係る教示用ウィンドウの遷移を示す図である。図13は、本実施形態において階層型リストの表示例を示す図である。
【0068】
エリアチェックとは、ロボットRのハンド52(ロボットの構成要素の例)が、オペレータによって選択された少なくとも1つの対象物(図4に示す例では、ペンPen1, Pen2,…,Pen12、キャップCap1, Cap2,…,Cap12、および、製品PenProduct1, PenProduct2,…,PenProduct12の少なくともいずれか)に到達可能であるか否かを判定することである。ロボットが複数設けられる場合には、複数のロボットのうちエリアチェックの対象とするロボットをオペレータが選択できるようにしてもよい。ロボットは複数の姿勢をとりうるため、当該複数の姿勢のうちオペレータによって選択されたいずれかの姿勢において、ロボットのエリアチェックを行うようにしてもよい。
【0069】
図4に示した階層型リストにおいて、対象物の一部又は全部を選択した状態にして、ロボット領域RA内のノード61~63のいずれかをポインティングデバイスで右クリックしてから「エリアチェック」を選択すると、図12の教示用ウィンドウW6が表示される。教示用ウィンドウW6では、エリアチェックのための姿勢(posture)を選択できる。教示用ウィンドウW6において、少なくとも1つの姿勢を選択し、ボタンb5(「OK」)を選択することで、エリアチェックが実行される。
【0070】
エリアチェックの実行には逆運動学の計算が必要であり、この計算は、ロボット制御装置3において行われる。すなわち、情報処理装置2は、ロボットRおよび各対象物の3次元モデルに基づく座標データ、各対象物のTCPの座標データの情報をロボット制御装置3に渡す。ロボット制御装置3は、当該情報を基に、特定の対象物に対して逆運動学によりロボットRのアーム51の関節角を求めることができれば、当該対象物に到達可能であると判断できる。
エリアチェックの結果は、図13に例示するように、ペンを対象とするエリアチェックの場合、ペントレイ11に含まれるペンごとに、到達不可能であるペン(到達不可対象物の例)に対してマークM2(「NG」)を表示することによって行われる。他の表示例として、到達不可対象物を到達可能対象物と異なる色で表示することなどが挙げられる。
【0071】
(3)ロボット教示装置1の機能
次に、本実施形態のロボット教示装置1の機能について、図14を参照して説明する。図14は、実施形態に係るロボット教示装置1の機能ブロック図である。
図14に示すように、ロボット教示装置1は、表示制御部101、タスク作成部102、タスク更新部103、タスク入替部104、設定更新部105、グルーピング部106、プログラム作成部107、プログラム実行部108、状態情報算出部109、シミュレーション部110、判定部111、姿勢選択部112、基準点設定部113、モデル配置部114、および、インターロック設定部115を備える。
ロボット教示装置1はさらに、タスクデータベース221、階層型リストデータベース222、3次元モデルデータベース223、および、実行ログデータベース224を備える。
【0072】
以下の説明において、情報処理装置2の制御部21の処理について言及するときには、制御部21に含まれるCPUが教示ソフトウェア及び/又はCADソフトウェアを実行することにより処理が行われる。
【0073】
表示制御部101は、教示ソフトウェアおよびCADソフトウェアの実行結果を表示装置24に表示させる制御を行う。表示制御部101の機能を実現するために、情報処理装置2の制御部21は、教示ソフトウェアおよびCADソフトウェアの出力を含む画像データを生成し、バッファリングし、表示装置24へ送信する。表示装置24は、表示駆動回路を駆動して画像を表示パネルに表示する。
【0074】
タスク作成部102は、オペレータの操作入力に基づいて、対象物に対するロボットの作業要素に関する情報であるタスクを作成する機能を備える。
タスク作成部102の機能を実現するために、情報処理装置2の制御部21は、入力装置23からオペレータの操作入力を受け付けると、当該操作入力に基づき、図6の作業要素の種別(Function)および作業要素の目標物(Target)の情報を含むファイルとしてタスクを作成し、ストレージ22に記録する。制御部21は、作業要素の種別(Function)および作業要素の目標物(Target)に基づいて、所定の規則に従ってタスク名称を決定する。ストレージ22(第1記憶部の例)は、タスク作成部102によって作成されたタスクを含むタスクデータベース221を記憶する。
情報処理装置2の制御部21は、ロボットが行うジョブに含まれる複数の作業要素に対応するタスクを順に作成し、それによって、当該ジョブに関連付けられた複数のタスクがタスクリストとして作成される。タスクデータベース221では、各タスクが特定のジョブに関連付けられた状態で記録されている。
表示制御部101は、ストレージ22のタスクデータベース221を参照して、複数のタスクの一覧であるタスクリストを表示装置24に表示する。タスクリストが表示されることで、ロボットのティーチングを行うときに、ロボットが行うジョブを分かり易く管理することができる。本実施形態では、表示されるタスクリストの各タスクの名称が、ロボットの作業要素の作業内容が認識できるように構成されているため、一連の作業内容がオペレータに直感的に理解しやすいものとなっている。
【0075】
タスク作成部102は、作業要素の目標点、目標点に到達する前の通過点であるアプローチ点(第1点の例)、および、目標点に到達した後の通過点であるデパーチャ点(第2点の例)のうち、少なくともいずれかの点に関する情報をタスクに設定する機能を備えてもよい。当該機能を実現するために、情報処理装置2の制御部21は、作業要素の目標物(Target)となる対象物のTCPとローカル座標系に基づいて、アプローチ点およびデパーチャ点を決定する。例えば、対象物のローカル座標系のZ軸において、対象物の全長の所定倍率の位置をアプローチ点およびデパーチャ点とする。制御部21は、決定したアプローチ点およびデパーチャ点の情報がタスクに含まれるように、タスクデータベース221を更新する。
アプローチ点およびデパーチャ点が自動的に設定されることで、オペレータのティーチング作業が効率化される。
【0076】
表示制御部101は、ロボットの構成要素と、対象物の構成要素とが階層的に記述された階層型データを表示装置24に表示する。
情報処理装置2の制御部21は、教示ソフトウェアとCADソフトウェアの連携により階層型リストを作成する。すなわち、制御部21は、CAD画像内のロボットおよび対象物を入力装置23のポインティングデバイスで選択した状態で木構造のデータフォーマットの所望のノードまでドラッグする操作入力を受け付けて、木構造の階層型リストを作成する。制御部21は、作成した階層型リストをストレージ22の階層型リストデータベース222に記録する。階層型リストでは、木構造のデータにおけるロボットの構成要素および対象物の構成要素に対応する各ノードと、3次元モデルデータベース223に記録される3次元モデルの対応するデータと、が関連付けられた状態となっている。
【0077】
好ましくは、タスク作成部102は、階層型データのロボットの構成要素および対象物の構成要素を指定するオペレータの操作入力に基づいて、タスクを作成する機能を備える。当該機能を実現するために、情報処理装置2の制御部21は、特定の対象物を把持する作業に対応したロボットのハンドを示すノードと、当該対象物に対応するノードとを階層型リストから選択するオペレータの操作入力に基づいて、タスクを作成する。階層型リストを使用することで、オペレータが作業要素の内容に応じて直感的にタスクを作成することができる。
【0078】
好ましくは、図4に示したように、表示制御部101は、ロボットの構成要素を階層的に表示するためのロボット領域RA(第1領域)と、対象物の構成要素を階層的に表示するための対象物領域PA(第2領域)とに分けて、階層型リストを表示装置24に表示する。
ロボット領域と対象物領域とを分けて表示することで、タスクの作成に当たって、特定の対象物を把持する作業に対応したロボットのハンドを示すノードと、当該対象物に対応するノードとを選択するときに、目的とするノードを見つけやすくなる。
【0079】
タスク更新部103は、表示装置24に表示されたタスクリストに対するオペレータの操作入力に基づいて、タスクリストのうちいずれかのタスクを削除し、ストレージ22(第1記憶部の例)に記憶されているタスクデータベース221に含まれるタスクをタスクリストに追加し、又は、タスクリストのうちいずれかのタスクの内容を変更する機能を備える。
タスク更新部103の機能を実現するために、情報処理装置2の制御部21は、入力装置23が受け付けたオペレータの操作入力に基づいてストレージ22にアクセスし、タスクデータベース221に含まれるタスクリストを書き換える。オペレータはタスク単位でジョブの内容を編集することができるため、ティーチング作業が効率化される。
【0080】
表示装置24に表示されるタスクリストに含まれるタスクの順序は、複数のタスクの実行順序を規定していてもよい。その場合、タスク入替部104は、表示装置24に表示されたタスクリストに対するオペレータの操作入力に基づいて、タスクリストに含まれるタスクの順序を入れ替える。
タスク入替部104の機能を実現するために、情報処理装置2の制御部21は、入力装置23が受け付けたオペレータの操作入力に基づいてストレージ22にアクセスし、タスクデータベース221に含まれるタスクリストの順序を更新する。オペレータはタスク単位で実行順序を変更することができるため、ロボットによるジョブの最適化を図ることができるとともに、ティーチング作業が効率化される。
【0081】
設定更新部105は、タスク作成部102によりタスクに設定されたアプローチ点およびデパーチャ点のうち少なくともいずれかの点に関する情報を、オペレータの操作入力に基づいて、削除し、変更し、又は、追加する機能を備える。
設定更新部105の機能を実現するために、情報処理装置2の制御部21は、タスク作成用のウィンドウ(図6参照)において入力装置23が受け付けたオペレータの操作入力に基づいてストレージ22にアクセスし、タスクデータベース221に含まれるタスクのアプローチ点およびデパーチャ点の情報を更新する。
設定更新部105によりオペレータが所望の位置に作業要素のアプローチ点およびデパーチャ点を削除し、変更し、又は、追加することができるため、ロボットをオペレータの所望の動作に教示することができる。特に、本実施形態では、タスクの実行結果をCADソフトウェアにより動画再生することができるため、動画再生結果を見た後にオペレータがアプローチ点及び/又はデパーチャ点を削除し、変更し、又は、追加することで、ロボットの動作を最適化するように教示することができる。
【0082】
グルーピング部106は、表示装置24に表示された階層型リストから2以上の対象物を指定するオペレータの操作入力に基づいて、当該2以上の対象物をグループ化する機能を備える。その場合、タスク作成部102は、グループ化された2以上の対象物のうちいずれかの対象物に対して設定されたアプローチ点およびデパーチャ点のうち少なくともいずれかの点に関する情報を、上記2以上の対象物の他の対象物に対しても設定する。
【0083】
グルーピング部106の機能を実現するために、情報処理装置2に制御部21は、入力装置23からのオペレータの操作入力を受け入れると、当該操作入力によって指定される2以上の対象物が同じグループとして関連付けられるようにタスクデータベース221を更新する。そして、制御部21は、グループ化された2以上の対象物のうちいずれかの対象物に対して、例えばアプローチ点が設定された場合、グループ化された他の対象物のアプローチ点が設定されるように、タスクデータベース221を更新する。グループ化された他の対象物のアプローチ点およびデパーチャ点の設定は、前述したように、グループ化された2以上の対象物のTCPオフセット量が反映されるようにして行われる。
2以上の対象物をグループ化することで、複数の対象物に対するアプローチ点及び/又はデパーチャ点の設定作業が容易となる。
【0084】
プログラム作成部107は、タスク作成部102によって作成されたタスクに基づいて、当該タスクに対応する作業要素をロボット5に実行させるためのプログラムを作成する機能を備える。
プログラム作成部107の機能を実現するために、情報処理装置2の制御部21は、タスクに含まれる作業要素の種別、作業要素の目標物、アプローチ点、デパーチャ点、モーションパラメータ、およびインターロックの設定を基に、タスクに対応する作業要素をロボットに実行させるためのプログラムが記述された関数を作成する。例えば、プログラム作成部107は、タスクに含まれる情報を参照し、ストレージ22(第1記憶部の例)に保存された作業要素の種別に応じた所定のプログラムのフォーマットにおける座標位置等を書き換えることで、自動的にプログラムを作成する。
【0085】
プログラム実行部108は、表示装置24に表示されたタスクリストのうち少なくとも1つのタスクを選択するオペレータの操作入力に基づいて、選択された少なくとも1つのタスクに基づいてプログラム作成部107により作成されたプログラムを含むロボットプログラムを実行する機能を備える。
プログラム実行部108の機能を実現するために、情報処理装置2の制御部21は、通信インタフェース部25を介して少なくとも1つのタスクに基づいて作成したロボットプログラムを、ロボット制御装置3へ送信する。ロボット制御装置3では、通信インタフェース部33によりロボットプログラムを受信すると、制御部31が当該ロボットプログラムを実行する。各タスクに基づいて作成されたプログラムは、関数の集合体で構成されている。制御部31はタスクリストに含まれる各タスクに基づいて作成されたプログラムを順に実行する。
【0086】
表示制御部101は、タスクリストのうちプログラム実行部108による実行結果がエラーを示したタスクであるエラータスクと、タスクリストのうちエラータスク以外のタスクとを異なる表示態様で表示する。
上述したように、ロボット制御装置3の制御部31は、タスクリストに含まれる各タスクに基づいて作成されたプログラムを順に実行するようにしてロボットプログラムを実行する。そして、制御部31は、タスクごとの実行結果(成功又はエラーの結果、および、エラーの場合のエラー原因)を含む実行ログデータを実行ログデータベース224に記録する。エラー原因は、例えば、速度超過、目標点不到達、特異点到達等である。次いで制御部31は、通信インタフェース部33を介して情報処理装置2へ実行ログデータを送信する。情報処理装置2の制御部21は、ロボット制御装置3から実行ログデータを取得すると、実行ログデータに含まれる実行結果が反映されるようにして、タスクリストを表示装置24に表示する。具体的には、タスクリストの表示を、実行結果がエラーを示したエラータスクと、エラータスク以外のタスクとが異なる表示態様となるようにして行う(例えば、図11参照)。そのため、オペレータは、ジョブの中でエラーが発生した作業要素を直ちに認識でき、タスクのアプローチ点、デパーチャ点、あるいはモーションパラメータの設定値の修正等に対処することができる。
【0087】
ストレージ22(第2記憶部および第3記憶部の例)は、仮想空間におけるロボットRの3次元モデルと、対象物の3次元モデルの情報と、を含む3次元モデルデータベース223を記憶する。
状態情報算出部109は、プログラム実行部108による実行結果に基づいて、時間の経過に応じたロボットの状態を示す情報であるロボット状態データ(状態情報の例)を演算する機能を備える。
シミュレーション部110は、状態情報算出部109によって得られたロボット状態データに基づいて、3次元モデルを仮想空間内で動作させて表示装置24に表示する機能を備える。
【0088】
状態情報算出部109およびシミュレーション部110の機能を実現するために、ロボット制御装置3の制御部31は、上述したように、各タスクに基づいて作成されたプログラムを順に実行するようにして、情報処理装置2から受信したロボットプログラムを実行する。そして、制御部31は、ロボットプログラムの実行結果として、ジョブ全体におけるロボット状態データを取得する。ロボット状態データは、時間の経過に応じたロボットの状態を示す物理量(例えば、アームの関節角、アームの速度や加速度、各部の軌跡)のデータである。情報処理装置2の制御部21はロボット制御装置3から、ロボット状態データを含む実行ログデータを取得し、実行ログデータベース224に記録する。さらに制御部21は、実行ログデータを基に仮想空間上でロボットおよび対象物の3次元モデルを動作させて表示装置24に表示する。
したがって、オペレータは、各タスクのロボットの動作を視覚的に確認することができるため、各タスクの設定値(例えば、アプローチ点、デパーチャ点、モーションパラメータ等)や対象物の配置(例えば、図3のキャップトレイ12の配置等)を再検討することが容易となる。
【0089】
判定部111は、階層型リストにおいて、オペレータの操作入力に基づいて、いずれか1つのロボットの構成要素、および、少なくとも1つの対象物が選択された場合に、当該少なくとも1つの対象物が仮想空間においてロボットRのハンド52(ロボットの構成要素の例)により到達可能であるか否かを判定する機能を備える。当該機能は、前述したエリアチェックに相当する。
判定部111の機能を実現するために、情報処理装置2の制御部21は、通信インタフェース部25を介して、ロボットおよび対象物の3次元モデルに基づく座標データ、対象物のTCPの座標のデータをロボット制御装置3へ送信する。ロボット制御装置3の制御部31は、受信したデータを基に、特定の対象物に対して逆運動学によりロボットのアームの関節角を求めることができるか否かを判定する。関節角を求めることができればロボットのハンドが対象物に到達可能であることを意味し、関節角を求めることができなければロボットのハンドが対象物に到達不可能であることを意味する。
判定部111によりロボットプログラムを作成する前に特定の対象物に対するロボットのハンドの到達可否がわかるため、対象物の配置の最適化等の検討を前もって行うことができ、ティーチング作業の効率化が図れる。
【0090】
表示制御部101は、複数の対象物のうち判定部111により到達可能でないと判定された対象物である到達不可対象物が、当該到達不可対象物以外の対象物と識別可能となるように、階層型データを表示してもよい。
エリアチェックでは、図13に示したように、好ましくは、複数の対象物のうち到達可能でないと判定された対象物(到達不可対象物)が、到達不可対象物以外の対象物と識別可能となるように、階層型リストを表示する。図13では、マークM2の有無によって到達不可対象物を識別可能に表示しているが、識別方法は様々な方法を採りうる。例えば、図13の例に代えて、到達不可のペン(Pen)を赤色にするか、あるいは輝度を低下させる等の表示処理を施してもよい。
【0091】
姿勢選択部112は、オペレータの操作入力に基づいて、ロボットに対して予め定められた複数の姿勢の中からいずれかの姿勢を選択する機能を備える。
その場合、判定部111は、ロボットが姿勢選択部112によって選択された姿勢をとることを条件として、少なくとも1つの対象物がロボットの構成要素により到達可能であるか否かを判定する。姿勢選択が行われた場合には、ロボット制御装置3の制御部31は、ロボットを選択された姿勢に固定した状態で、特定の対象物に対して逆運動学によりロボットのアームの関節角を求めることができるか否かを判定する。
姿勢選択部112を設けることで、オペレータは、ロボットの様々な姿勢を考慮しながら、対象物の配置等の検討を前もって行うことができる。
【0092】
基準点設定部113は、対象物の3次元モデルの仮想空間内の位置に基づいて、ロボットの対象物に対する作業の基準となる、仮想空間内のTCP(基準点の例)を算出し、TCPを対象物に関連付ける機能を備える。
基準点設定部113の機能を実現するために、情報処理装置2の制御部21は、処理対象となる対象物の3次元モデルのデータに基づき、当該対象物のTCPを設定するとともに、TCPを基準とした当該対象物のローカル座標系を設定する。本実施形態では、教示ソフトウェアとCADソフトウェアが連携しているため、対象物のTCPを自動的、かつ正確に算出することができる。基準点設定部113は、TCPとして対象物の重心位置を算出することが好ましい。
本実施形態では、ロボットのハンドの軌道は、対象物を把持する作業に対応したハンドに設定されたTCPと、目標物である当該対象物のTCPおよびそのローカル座標系とに基づいて決定されるため、ハンドによる作業を精度良くティーチングすることができる。また、TCPとして対象物の重心位置を算出することで、対象物以外の物体(他の対象物や設備等)との干渉を回避しやすい位置をTCPとして特定することができる。
【0093】
モデル配置部114は、対象物の3次元モデルと、TCPと、TCPを原点とした3次元モデルのローカル座標系と、を仮想空間に配置して表示する機能を備える。モデル配置部114の機能を実現するために、情報処理装置2の制御部21は、TCPと、TCPを原点とした3次元モデルのローカル座標系のデータとを、各対象物に関連付けるようにしてストレージ22の3次元モデルデータベース223に記録する。制御部21は、3次元モデルデータベース223を参照して、対象物の3次元モデルと当該対象物のTCPおよびローカル座標系とを表示装置24に表示する。
対象物の3次元モデルと当該対象物のTCPおよびローカル座標系とが表示されることで、オペレータは、アプローチ点APおよびデパーチャ点DPの位置についてCAD用ウィンドウ上で検討しやすくなる。
【0094】
図9に関連付けて説明したように、TCPの対象物への関連付けは、自動的ではなく、オペレータの操作入力に基づいて行われてもよい。
すなわち、表示制御部101は、3次元モデルを仮想空間内に表示し、基準点設定部113は、仮想空間内の所定点と、階層型データの対象物とを関連付けるオペレータの操作入力に基づいて、上記所定点をTCPとして対象物に関連付けてもよい。このとき、基準点設定部113は、対象物にTCPが関連付けられていない場合には、対象物にTCPが関連付けられていないことを報知してもよい。
この基準点設定部113の機能を実現するために、情報処理装置2の入力装置23が、TCPモデル(図9参照)を所定点にセットし、かつ階層型リストの特定の対象物に対応するノードまでドラッグする操作入力を受け付ける。制御部21は、当該所定点を対象物のTCPとして対象物に関連付けるように、ストレージ22の3次元モデルデータベース223を更新する。
制御部21は、対象物にTCPが関連付けられていない場合に、例えば表示装置24に警告表示を出力することで、当該対象物にTCPを関連付けることをオペレータに促すことができる。
【0095】
表示制御部101は、対象物に関連付けられたTCPを、階層型データ上の対象物の下層に階層的に表示してもよい。この場合、情報処理装置2の制御部21は、階層型リストを表示するときに、階層型リストデータベース222において各対象物と関連付けられたTCPを読み出して、階層型リストに各対象物の下層にTCPの座標を表示する。それにより、オペレータが、各対象物のTCPの座標を人目で認識できるようになる。
【0096】
インターロック設定部115は、オペレータの操作入力に基づき、タスクに設定された目標点、アプローチ点およびデパーチャ点の少なくともいずれかの点においてロボットの動作を待機させる待機時間のタイムアウト値を設定する機能を備える。
インターロック設定部115の機能を実現するために、情報処理装置2の制御部21は、入力装置23が受け付けたオペレータの操作入力(例えば、図6の教示用ウィンドウW3における操作入力)に基づいてストレージ22にアクセスし、タスクデータベース221に含まれるタスクに含まれる特定のアプローチ点又はデパーチャ点に設定されたインターロックの待機時間のタイムアウト値を書き換える。
インターロック設定部115により、ロボットのオフラインティーチングを行うときに、インターロックによる待機時間のタイムアウト値を作業要素ごとにオペレータが容易に設定することができる。
【0097】
なお、シミュレーション部110は、インターロックによる待機時間を無効化して、3次元モデルを仮想空間内で動作させてもよい。つまり、シミュレーション用プログラムを実行するときには、インターロックによる待機を行わずに3次元モデルを動作させる。それによって、オペレータは、仮想空間上でロボットを停止させずに、ロボットの動きに着目してプログラムの実行結果を確認することができる。
【0098】
(4)ロボット教示装置1の主要な処理
次に、図15および図16を参照して、ロボット教示装置1の主要な処理についてシーケンスチャートを参照して説明する。
図15は、本実施形態に係るロボット教示装置のエリアチェックの処理を示すシーケンスチャートの例である。図16は、本実施形態に係るロボット教示装置のジョブの実行処理を示すシーケンスチャートの例である。
【0099】
(4-1)エリアチェック(図15
先ず、図15のシーケンスチャートを参照してエリアチェックの処理について説明する。
図4に示した階層型リストのロボット領域RA内のいずれかの対象物に対応するノードをポインティングデバイスで右クリックしてから「エリアチェック」が選択されることで(ステップS10:YES)、エリアチェックの実行が開始される。
先ず、姿勢選択部112は、オペレータのロボットRの姿勢を選択する操作入力があった場合(ステップS12:YES)、当該操作入力に基づいて、ロボットRに対して予め定められた複数の姿勢の中からいずれかの姿勢を選択する。
【0100】
次いで、判定部111は、「エリアチェック」の選択時に指定した対象物が仮想空間においてロボットRのハンド52により到達可能であるか否かを判定し、到達可否結果を表示装置24に表示する。なお、2以上の対象物を指定してエリアチェックを行うことも可能である。判定部111の処理は、具体的には、以下のようにして行われる。
情報処理装置2は、通信インタフェース部25を介して、ロボットRおよび各対象物の3次元モデルに基づく座標データ、各対象物のTCPの座標データをロボット制御装置3へ送信する(ステップS14)。ロボット制御装置3は、受信したデータを基に、指定された各対象物に対して逆運動学によりロボットRのアーム51の関節角を計算する(ステップS16)。ロボット制御装置3は、ステップS16によりアーム51の関節角が求められるか否かに基づいて、アーム51の対象物に対する到達可否を決定する(ステップS18)。ステップS16,S18の処理は、姿勢選択部112により選択されたすべてのロボットRの姿勢について1つずつ行われる。ロボット制御装置3は、すべての姿勢についての処理を終了した場合には(ステップS20:YES)、ロボットRの姿勢ごとのエリアチェック結果(到達可否の結果)を情報処理装置2へ返す(ステップS22)。情報処理装置2は、受信したエリアチェック結果を、例えば図13に示したように、表示装置24に表示する(ステップS24)。
【0101】
(4-2)ジョブのシミュレーションの実行(図16
次に、図16のシーケンスチャートを参照してジョブのシミュレーションの実行の処理について説明する。
図10の教示用ウィンドウW4においてオペレータによるボタンb4に対する操作入力(シミュレーションの実行指示)を受け付けると(ステップS30:YES)、プログラム作成部107は、ジョブをロボットRに実行するためのロボットプログラムを作成する(ステップS32)。このロボットプログラムには、ジョブに対応するタスクリストの各タスクに対応する作業要素をロボットRに実行させるためのプログラムが記述された複数の関数が含まれる。
【0102】
作成されたロボットプログラムは、情報処理装置2からロボット制御装置3へ送信されて(ステップS34)、ロボット制御装置3において実行される。すなわち、プログラム実行部108は、タスク単位でロボットプログラムを実行する(ステップS36)。状態情報算出部109は、プログラム実行部108による実行結果に基づいて、時間の経過に応じたロボットRの状態を示す情報であるロボット状態データを演算し、ロボット状態データを含む実行ログデータをストレージ32に記録する(ステップS38)。ステップS36,S38の処理は、タスクリストに含まれるすべてのタスクが終了するまで行われる。
すべてのタスクについての処理が終了すると(ステップS40:YES)、ロボット制御装置3は、ストレージ32に記録した実行ログデータを情報処理装置2に送信する(ステップS42)。情報処理装置2は、受信した実行ログデータを実行ログデータベース224に記録する。
次いで、シミュレーション部110は、ステップS42で受信した実行ログデータに含まれるロボット状態データ(つまり、状態情報算出部109によって得られたロボット状態データ)に基づいて、3次元モデルを仮想空間内で動作させて表示装置24に表示する(ステップS44)。
【0103】
(5)変形例
次に、上述した実施形態の変形例について説明する。
(5-1)変形例1
上述した実施形態で説明したエリアチェックでは、ロボットRのハンド52による対象物への到達可否のみを表示する例(図13参照)を挙げたが、より詳細な情報を提供することで、オペレータによるオフラインティーチングを支援することができる。例えば、ロボットRのハンド52により到達可能でないと判定された対象物が、ハンド52にどの程度近接しているかについての情報を提供するようにしてもよい。それによって、例えば対象物の再配置についての有用な情報が得られる。
本変形例では、判定部111は、ロボットRのハンド52(ロボットの構成要素の例)により到達可能でないと判定した対象物である到達不可対象物に対するロボットRのハンド52の近接の程度を特定し、表示制御部101は、到達不可対象物に対するロボットRのハンド52の近接の程度が認識可能となるように表示する。
ハンド52の近接の程度を示す指標の表示例を図17に示す。図17に示すように、到達不可対象物に対してマークM3を表示する。マークM3は、「NG(*)(*:1~5)」という表示形式となっており、括弧内の数字によって近接の程度(例えば、数字が小さいほど近接している)がわかるようになっている。近接の程度は、求められたアーム51の関節角と、関節角の限界角度との差分値によって算出できる。
【0104】
(5-2)変形例2
変形例2では、ロボットRのハンド52により到達可能であると判定された対象物が、ハンド52に対してどの程度余裕があるかについての情報が提供される。かかる情報を提供することによっても、オフラインティーチングを支援することができる。例えば対象物の再配置についての有用な情報が得られる。
本変形例では、判定部111は、ロボットRのハンド52により到達可能と判定した対象物である到達可能対象物に対するロボットRのハンド52の到達の余裕度を特定し、表示制御部101は、到達可能対象物に対するロボットRのハンド52の到達の余裕度が認識可能となるように表示する。例えば図17に示すように、到達可能対象物に対してマークM4を表示する。マークM4は、「OK(*)(*:1~5)」という表示形式となっており、括弧内の数字によって余裕度(例えば、数字が大きいほど余裕がある)がわかるようになっている。
余裕度は、求められたアーム51の関節角と、関節角の限界角度との差分値によって算出できる。
【0105】
(5-3)変形例3
判定部111は、オペレータの操作入力に基づいていずれか1つのロボットが選択された場合に、複数の対象物の各々がロボットRのハンド52により到達可能であるか否かを判定してもよい。
つまり、階層型リストにおいてロボットRを選択した操作入力に基づいて、すべての対象物に対する到達可否を判定してもよい。それによって、オペレータがエリアチェックを行う対象物を選択する手間を省くことができる。また、すべての対象物に対する到達可否を判定することで、すべての対象物の全体的な配置について検討するための有用な情報が得られる。
【0106】
(5-4)変形例4
プログラム作成部107は、インターロックによる待機時間がタイムアウト値に達した場合には、エラーと判断するようにプログラムを作成してもよい。
ロボットプログラムを実行したときにインターロックによる待機時間がタイムアウト値に達した場合には、エラーと判断することで、例えばロボットRに対する入出力信号に不具合があること等をオペレータが認識することができる。
【0107】
(5-5)変形例5
プログラム作成部107は、インターロックのタイムアウトによりエラーと判断した場合にロボットRを予め決められた基準姿勢にするように、プログラムを作成してもよい。
変形例4に示したようにしてエラーと判断した場合には、エラーが発生した後の動作を行うよりもロボットRの動作を中止して基準姿勢(例えば、初期の姿勢)に戻す方が好ましい場合がある。
【0108】
(5-6)変形例6
プログラム作成部107は、インターロックのタイムアウトによりエラーと判断した場合には、ストレージ22(第1記憶部の例)のタスクデータベース221を参照して、オペレータの操作入力に基づく複数のタスクのうちのいずれかのタスクに対応する作業要素をロボットRに実行させるように、プログラムを作成してもよい。
変形例4に示したようにしてエラーと判断した場合には、ロボットRに特定の作業要素を実行させてもよい。特定の作業要素の例としては、現在把持している対象物をエラー用の棚に置くことが挙げられる。
【0109】
以上、本発明のロボット教示装置の実施形態について詳述したが、本発明は上記の実施形態に限定されない。また、上記の実施形態は、本発明の主旨を逸脱しない範囲において、種々の改良や変更が可能である。
例えば、上述した実施形態に係るロボット教示装置は、図14の機能ブロック図に記載されたすべての機能を備えている必要はなく、少なくとも一部の機能を備えていればよい。
上述した実施形態では、ロボット教示装置は、情報処理装置とロボット制御装置の2つの装置を含む場合について例示したが、その限りではなく、一体の装置として構成してもよい。
上述した実施形態では、情報処理装置の入力装置にポインティングデバイスが含まれる場合について説明したが、その限りではなく、他のデバイスであってもよい。例えば、タッチ入力機能を備えた表示パネルを使用し、オペレータによるタッチ入力を受け付けてもよい。
【0110】
上述した説明により、図14の機能ブロック図に記載された機能のうち少なくとも一部の機能をコンピュータに実現させるためのプログラム、および、当該プログラムが記録されたコンピュータ可読記憶媒体(不揮発性の記憶媒体をも含む。)が開示されていることは当業者に理解される。
【符号の説明】
【0111】
1…ロボット教示装置、2…情報処理装置、21…制御部、22…ストレージ、23…入力装置、24…表示装置、25…通信インタフェース部、3…ロボット制御装置、31…制御部、32…ストレージ、33…通信インタフェース部、11…ペントレイ、P…ペン群、12…キャップトレイ、C…キャップ群、13…治具、14…製品トレイ、A1~A12…製品、EC…通信ネットワークケーブル、R…ロボット、51…アーム、52…ハンド、61~68…ノード、101…表示制御部、102…タスク作成部、103…タスク更新部、104…タスク入替部、105…設定更新部、106…グルーピング部、107…プログラム作成部、108…プログラム実行部、109…状態情報算出部、110…シミュレーション部、111…判定部、112…姿勢選択部、113…基準点設定部、114…モデル配置部、115…インターロック設定部、221…タスクデータベース、222…階層型リストデータベース、223…3次元モデルデータベース、224…実行ログデータベース、RA…ロボット領域、PA…対象物領域、W1~W6…ウィンドウ、b1~b4…ボタン、AP…アプローチ点、TP…目標点、DP…デパーチャ点、T…テーブル
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17