(57)【要約】【課題】ロボットによる一連の作業の実行結果に対して、作業要素ごとの検討を支援する。【解決手段】本発明の一実施形態は、ロボットの作業要素に関する情報であるタスクを含むロボットプログラムを実行するプログラム実行部と、プログラム実行部による実行結果に基づいてロボットに対する制御信号を生成し、当該制御信号によって動作するロボットの時間の経過に応じた状態を示す情報である状態情報を、ロボットから取得する状態情報取得部と、状態情報取得部により得られた状態情報に基づいて、時間軸において前記タスクの作業要素に相当する期間が識別可能となるように、ロボットの状態を示す第１タイミングチャートを表示装置に表示する表示制御部とである。【選択図】図１５
2019064917.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの作業要素に関する情報であるタスクを含むロボットプログラムを実行するプログラム実行部と、
前記プログラム実行部による実行結果に基づいて前記ロボットに対する制御信号を生成し、当該制御信号によって動作する前記ロボットの時間の経過に応じた状態を示す情報である状態情報を、前記ロボットから取得する状態情報取得部と、
前記状態情報取得部により得られた前記状態情報に基づいて、時間軸において前記タスクの作業要素に相当する期間が識別可能となるように、前記ロボットの状態を示す第１タイミングチャートを表示装置に表示する表示制御部と、
を備えた、ロボットシミュレータ。
【請求項２】
仮想空間における前記ロボットの３次元モデルの情報を記憶する記憶部と、
前記状態情報取得部によって得られた状態情報に基づいて、前記３次元モデルを動作させて前記表示装置に表示するシミュレーション部と、
をさらに備えた、請求項１に記載されたロボットシミュレータ。
【請求項３】
前記プログラム実行部による実行結果に基づいて、時間の経過に応じた前記ロボットの状態を示す情報である状態情報を演算する状態情報算出部、をさらに備え、
前記表示制御部は、前記状態情報算出部により得られた前記状態情報に基づいて、時間軸において前記タスクの作業要素に相当する期間が識別可能となるように、前記ロボットの状態を示す第２タイミングチャートを前記表示装置に表示する、
請求項１又は２に記載されたロボットシミュレータ。
【請求項４】
前記表示制御部は、前記第１タイミングチャートと前記第２タイミングチャートを、前記タスクの作業要素に相当する期間の前記ロボットの状態が比較可能となるように、前記表示装置に表示する、
請求項３に記載されたロボットシミュレータ。
【請求項５】
前記表示制御部は、前記第１タイミングチャートと前記第２タイミングチャートとを切り替え可能に表示するか、又は、前記第１タイミングチャートと前記第２タイミングチャートとを共通の時間軸において重ね合わせて表示する、
請求項４に記載されたロボットシミュレータ。
【請求項６】
前記表示制御部は、異なる作業要素同士における前記ロボットの状態が比較可能となるように、または、同一の作業要素であっても異なる前記実行結果における前記ロボットの状態が比較可能となるように、前記第１タイミングチャートを前記表示装置に表示する、
請求項１に記載されたロボットシミュレータ。
【請求項７】
前記状態情報は、前記ロボットは複数の種別の情報を含み、
前記表示制御部は、前記状態情報のうち、オペレータの操作入力によって前記複数の種別の中から選択された一部の種別の情報に基づいて、前記第１タイミングチャートを前記表示装置に表示する、請求項１又は６に記載されたロボットシミュレータ。
【請求項８】
前記状態情報には、前記ロボットにおける入出力信号の状態が含まれる、請求項１から６のいずれか１項に記載されたロボットシミュレータ。
【請求項９】
前記シミュレーション部は、前記第１タイミングチャートにおいて表示されている期間のうち、オペレータの操作入力に基づいて指定された一部の期間における前記状態情報に基づいて、前記３次元モデルを動作させて前記表示装置に表示する、請求項２に記載されたロボットシミュレータ。
【請求項１０】
前記シミュレーション部は、前記３次元モデルの動作を、前記状態情報に基づく速度よりも高速となるように、若しくは低速となるように、又は、時間の進行が逆方向となるようにして、前記表示装置に表示する、請求項２に記載されたロボットシミュレータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットシミュレータに関する。
【背景技術】
【０００２】
ロボットの動作をティーチング（教示）するとともに、ロボットの３次元モデルによりロボットにティーチングした動作をシミュレーションすることが知られている。例えば特許文献１には、アームに研削加工ツールを装着したロボットの動作のシミュレートすることが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４９６１４４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、教示対象となるロボットが行う一連の作業に複数の作業要素が含まれる場合に、当該一連の作業のロボットの実行結果に対して、複数の作業要素の各々について確認したいという要請がある。ここで、「作業要素」とは、物体を「取る」や「置く」等、一連の作業の中でロボットが行う最小単位の作業を意味する。作業要素ごとのロボットの状態に着目することで、ロボットによる一連の作業のティーチング、及び／又は、ロボットと作業の対象物の配置の改善を図ることができる。【０００５】
そこで、本発明は、ロボットによる一連の作業の実行結果に対して、作業要素ごとの検討を支援することを目的とする。
【課題を解決するための手段】
【０００６】
本願の例示的な第１発明は、ロボットの作業要素に関する情報であるタスクを含むロボットプログラムを実行するプログラム実行部と、前記プログラム実行部による実行結果に基づいて前記ロボットに対する制御信号を生成し、当該制御信号によって動作する前記ロボットの時間の経過に応じた状態を示す情報である状態情報を、前記ロボットから取得する状態情報取得部と、前記状態情報取得部により得られた前記状態情報に基づいて、時間軸において前記タスクの作業要素に相当する期間が識別可能となるように、前記ロボットの状態を示す第１タイミングチャートを表示装置に表示する表示制御部と、を備えた、ロボットシミュレータである。
【発明の効果】
【０００７】
本発明によれば、ロボットによる一連の作業の実行結果に対して、作業要素ごとの検討を支援することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、第１の実施形態のロボットシミュレータの全体構成について示す図である。
【図２】図２は、第１の実施形態のロボットシミュレータに含まれる各装置のハードウェア構成を示す図である。
【図３】図３は、第１の実施形態の一例に係る３次元ＣＡＤ用ウィンドウを示す図である。
【図４】図４は、第１の実施形態の一例に係る教示用ウィンドウを示す図である。
【図５】図５は、ジョブを概念的に説明するための図である。
【図６】図６は、タスクを概念的に説明するための図である。
【図７】図７は、第１の実施形態の一例に係る教示用ウィンドウの遷移を示す図である。
【図８】図８は、タスクリストの一例を示す図である。
【図９】図９は、第１の実施形態に係るロボットシミュレータによって表示されるタイミングチャートの一例を示す図である。
【図１０】図１０は、第１の実施形態の一例に係る３次元ＣＡＤ用ウィンドウを示す図である。
【図１１】図１１は、第１の実施形態に係るロボットシミュレータの機能ブロック図である。
【図１２】図１２は、第１の実施形態に係るロボットシミュレータの処理を示すシーケンスチャートの例である。
【図１３】図１３は、第２の実施形態のロボットシミュレータの全体構成について示す図である。
【図１４】図１４は、第２の実施形態のロボットシミュレータに含まれる各装置のハードウェア構成を示す図である。
【図１５】図１５は、第２の実施形態に係るロボットシミュレータによって表示されるタイミングチャートの一例を示す図である。
【図１６】図１６は、第２の実施形態に係るロボットシミュレータの機能ブロック図である。
【図１７】図１７は、第３の実施形態に係るロボットシミュレータによって表示されるタイミングチャートの一例を示す図である。
【図１８】図１８は、第３の実施形態に係るロボットシミュレータによって表示されるタイミングチャートの一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明のロボットシミュレータの実施形態について説明する。
以下の説明において、「作業要素」とは、物体を「取る」や「置く」等、一連の作業の中でロボットが行う最小単位の作業を意味する。
「対象物」とは、ロボットの作業の対象となる物体を意味し、ロボットが把持する物体（例えば、加工対象物であるワーク）に限らず、ロボットの作業に関連する物体（例えば、ロボットが把持する物体を置く棚）をも含む。
【００１０】
（１）第１の実施形態
第１の実施形態のロボットシミュレータは、ロボットの実機に接続することなく、ロボットの実機の動作をシミュレートし、ロボットの状態をタイミングチャートに表示する。
【００１１】
（１−１）本実施形態に係るロボットシミュレータの構成
以下、本実施形態のロボットシミュレータ１の構成について、図１および図２を参照して説明する。図１は、本実施形態のロボットシミュレータ１の全体構成について示す図である。図２は、本実施形態のロボットシミュレータ１に含まれる各装置のハードウェア構成を示す図である。
【００１２】
図１に示すように、ロボットシミュレータ１は、情報処理装置２およびロボット制御装置３を備える。情報処理装置２とロボット制御装置３とは、例えば通信ネットワークケーブルＥＣにより通信可能に接続される。
情報処理装置２は、工場のラインに設置されたロボットに対して動作を教示するための装置である。情報処理装置２は、オペレータによるオフラインティーチングを行うために設けられており、例えばロボットが設置される工場から離れた位置（例えば、オペレータの作業場所）に配置される。
【００１３】
ロボット制御装置３は、情報処理装置２から送信されるロボットプログラムを実行する。本実施形態ではロボット制御装置３はロボットと接続されないが、ロボットと接続された場合には、ロボットプログラムの実行結果に応じた制御信号をロボットに送り、ロボットを動作させることが可能である。そのため、好ましくは、ロボット制御装置３は、ロボットの実機の近傍に配置される。
【００１４】
図２に示すように、情報処理装置２は、制御部２１と、ストレージ２２と、入力装置２３と、表示装置２４と、通信インタフェース部２５とを備える。
制御部２１は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、および、ＲＡＭ（Random Access Memory）を含む。ＲＯＭには、３次元ＣＡＤアプリケーションプログラムと教示ソフトウェアが記憶されている。ＣＰＵは、ＲＯＭ上の３次元ＣＡＤアプリケーションソフトウェア（以下、適宜「ＣＡＤソフトウェア」という。）と教示ソフトウェアをＲＡＭに展開して実行する。教示ソフトウェアとＣＡＤソフトウェアは、ＡＰＩ（Application Program Interface）を介して協調して処理を実行する。
制御部２１は、ＣＡＤソフトウェアによる動画再生を行うために、フレーム単位で画像を連続的に表示する。
【００１５】
ストレージ２２は、ＨＤＤ（Hard Disk Drive）あるいはＳＳＤ（Solid State Drive）等の大容量記憶装置であり、制御部２１のＣＰＵにより逐次アクセス可能に構成されている。後述するように、ストレージ２２には、タスクデータベース２２１、階層型リストデータベース２２２、３次元モデルデータベース２２３、および、実行ログデータベース２２４が格納される。
ストレージ２２には、ＣＡＤソフトウェアを実行するときに参照される３次元モデルのデータが格納される。本実施形態の例では、ストレージ２２には、ロボットおよび対象物（例えば、後述するペン、キャップ、製品、ペントレイ、キャップトレイ、製品トレイ）の３次元モデルのデータが格納される。
ストレージ２２には、ロボット制御装置３から取得した実行ログデータが格納される。実行ログデータには、ロボットプログラムの実行結果と、後述するロボット状態データとが含まれる。
ロボット状態データは、後述するタイミングチャートの作成に使用される。ロボット状態データはまた、３次元ＣＡＤによってロボットの動作を仮想空間内で動画（アニメーション）により再現するために使用されてもよい。
【００１６】
入力装置２３は、オペレータによる操作入力を受け付けるためのデバイスであり、ポインティングデバイスを含む。
表示装置２４は、教示ソフトウェアおよびＣＡＤソフトウェアの実行結果を表示するためのデバイスであり、表示駆動回路および表示パネルを含む。
通信インタフェース部２５は、ロボット制御装置３との間でネットワーク通信を行うための通信回路を含む。
【００１７】
ロボット制御装置３は、制御部３１と、ストレージ３２と、通信インタフェース部３３とを備える。
制御部３１は、ＣＰＵ、ＲＯＭ、ＲＡＭ、および、制御回路を含む。制御部３１は、情報処理装置２から受信するロボットプログラムを実行し、実行ログデータを出力する。上述したように、実行ログデータには、ロボットプログラムの実行結果と、ロボットプログラムに記述された作業を実行するロボットのロボット状態データとを含む。
ストレージ３２は、ロボットのマニピュレータ（アーム５１、ハンド５２を含むロボット本体）のモデルのデータを備えている。制御部３１は、ロボットプログラムの実行結果に基づいて、マニピュレータを構成する各部のジョブを実行中の時間の経過に応じた物理量（例えば、アーム５１の関節角の角度変位、角速度、ハンド５２の位置等）を演算する。かかる物理量のデータが上記ロボット状態データに含まれる。
【００１８】
ストレージ３２は、ＨＤＤあるいはＳＳＤ等の大容量記憶装置であり、制御部３１のＣＰＵにより逐次アクセス可能に構成されている。ストレージ３２には、ロボットのマニピュレータのモデルのデータの他に、ロボットプログラムおよび実行ログデータが格納される。
通信インタフェース部３３は、情報処理装置２との間でネットワーク通信を行うための通信回路を含む。
【００１９】
（１−２）オフラインティーチングにおけるユーザインタフェース
ロボットのシミュレーションを実行する前に、オペレータは、情報処理装置２を使用して、ロボットに対するオフラインティーチングを行い、ロボットプログラムを作成する。ロボットプログラムを作成するに当たって、本実施形態の好ましい例では、ＣＡＤソフトウェアと教示ソフトウェアを情報処理装置２に実行させる。
ＣＡＤソフトウェアの実行結果はＣＡＤ用ウィンドウに表示され、教示ソフトウェアの実行結果は教示用ウィンドウに表示される。オペレータは、ＣＡＤ用ウィンドウと教示用ウィンドウの両方を情報処理装置２に表示させ、あるいはＣＡＤ用ウィンドウと教示用ウィンドウを切り替えながら情報処理装置２に表示させ、ティーチングやＣＡＤによる動画再生に関連する操作を行う。
【００２０】
図３に、本実施形態の一例に係るＣＡＤ用ウィンドウＷ１を示す。図３には、テーブルＴの上に、ロボットＲと、ペントレイ１１と、キャップトレイ１２と、治具１３と、製品トレイ１４とが、仮想空間に配置された状態の画像（以下、適宜「ＣＡＤ画像」という。）が表示されている。
図３に示す例では、ロボットＲがペンにキャップを嵌めて製品（ペンにキャップが嵌められた状態の完成品）を組み立てる一連の作業を行うことが想定されている。ペントレイ１１には複数のペンからなるペン群Ｐが配置され、キャップトレイ１２には複数のキャップからなるキャップ群Ｃが配置されている。治具１３は、ロボットＲがペンを一時的に配置してキャップを嵌める作業を行うための部材である。製品トレイ１４は、製品を置くための部材である。
【００２１】
図３に示す例では、ペン群Ｐに含まれる各ペン、キャップ群Ｃに含まれる各キャップ、ペントレイ１１、キャップトレイ１２、治具１３、製品トレイ１４の各々は、ロボットＲの作業対象である対象物の例である。また、ペンにキャップが嵌められた製品も対象物の例である。
【００２２】
（１−２−１）階層型リスト
図４に、本実施形態の一例に係る教示用ウィンドウＷ２を示す。教示用ウィンドウＷ２に表示されているのは、図３のＣＡＤ画像に含まれているロボットＲ、および、対象物の階層関係を示す階層型リストである。
【００２３】
教示ソフトウェアは、ＣＡＤソフトウェアと連携して階層型リストを作成することができる。階層型リストとして木構造のデータフォーマットが教示ソフトウェアによって用意される。オペレータは、ＣＡＤ用ウィンドウと教示用ウィンドウを表示させた状態で、ＣＡＤ画像内のロボットＲおよび対象物をポインティングデバイスで選択した状態で上記木構造のデータフォーマットの所望のノードまでドラッグする操作を行う。この操作を、ロボットＲの教示を行うのに必要となるすべての対象物に対して順に行うことで、階層型リストを完成させることができる。階層型リストに表示される各ノードの名称は、元となる３次元モデルの名称がそのまま適用されてもよいが、後で名称を変更できるようにしてもよい。
【００２４】
以下の説明では、ＣＡＤ画像内のロボットＲ、対象物を階層型リストのいずれかのノードに含めるようにすることを、ロボットＲ又は対象物を「階層型リストに登録する」という。図３では、ロボットが１体である場合のＣＡＤ画像を例示しているが、ロボットが２体以上存在する場合には、当該２体以上のロボットを階層型リストに登録することができる。
【００２５】
図４に示す階層型リストにおいて、ロボットＲ（Robot_R）のノードの下層には、ハンドに関連する３個のノードが設けられている。ハンドに対して複数のノードを設けているのは、ハンドに想定される作業状態を考慮するためである。すなわち、ノード６１〜６３は、以下の内容を意味する。
【００２６】
・ノード６１（Pen）…ペンを把持する作業に対応したハンド
・ノード６２（Cap）…キャップを把持する作業に対応したハンド
・ノード６３（Pen_with_Cap）…キャップが嵌められたペンを把持する作業に対応したハンド
【００２７】
ノード６１〜６３のいずれかを対象として右クリック操作を行い、「ハンドシーケンス操作」を選択すると、アクチュエーション方式（シングルソレノイド、又はダブルソレノイド等）、センサ種類などのハンドシーケンスに関連する設定を行うことができる。
ハンドシーケンスは、ロボットＲのハンド５２が把持する対象物に依存するため、ハンド５２が把持する対象物ごとに設定される。ハンドシーケンスが設定されていない場合に後述するタスクを作成した場合には、タスクに基づくプログラムを実行できないため、表示装置２４に警告表示を出力してもよい。
【００２８】
対象物の構成要素には、治具（JIG）、ペントレイ（PenTray）、キャップトレイ（CapTray）、製品トレイ（ProductTray）、ペン（Pen1, Pen2,…，Pen12）、キャップ（Cap1, Cap2,…，Cap12）、および、製品（PenProduct1, PenProduct2,…，PenProduct12）が含まれる。
治具（JIG）のノードの下位には、治具を対象とした作業に対応して、例えば、以下のノードが設けられる。
【００２９】
・ノード６４（PenProduct）…製品（PenProduct）を保持した状態の治具
・ノード６５（PenJ）…ペン（Pen）を保持した状態の治具
・ノード６６（CapJ）…キャップ（Cap）を保持した状態の治具
【００３０】
ペントレイ（PenTray）のノードの下位には、ペンPen1, Pen2,…，Pen12に対応する各ノードが設けられる。キャップトレイ（CapTray）のノードの下位には、キャップCap1, Cap2,…，Cap12に対応する各ノードが設けられる。製品トレイ（ProductTray）のノードの下位には、製品PenProduct1, PenProduct2,…，PenProduct12に対応する各ノードが設けられる。
【００３１】
階層型リストの中のロボットＲ（図４のRobot_R）、および対象物（治具（JIG）、ペントレイ（PenTray）、キャップトレイ（CapTray）、製品トレイ（ProductTray）、ペンPen1, Pen2,…，Pen12、キャップCap1, Cap2,…，Cap12、および、製品PenProduct1, PenProduct2,…，PenProduct12）の各ノードは、各々に対応する３次元モデルのデータと関連付けられた状態となっている。そのため、階層型リストを作成後に階層型リスト内のロボットＲおよび対象物の３次元モデルに変更があった場合であっても、階層型リストに再度登録する必要はない。
【００３２】
（１−２−２）ジョブおよびタスクについて
次に、ジョブおよびタスクについて、図５および図６を参照して説明する。
図５は、ジョブを概念的に説明するための図である。図６は、タスクを概念的に説明するための図である。
【００３３】
ジョブとは、ロボットＲが行う一連の作業である。タスクとは、一連の作業の中でロボットＲが行う最小単位の作業である作業要素に関する情報である。従って、図５に示すように、ジョブ（JOB）に相当する期間には、複数のタスクＴ１，Ｔ２，…，Ｔｎ−１，Ｔｎに対応する複数の作業要素の期間と、ロボットＲの作業要素間の移動（つまり、「タスク間移動」）とが含まれる。図５に示すように、本実施形態では、ロボットＲが行うジョブに対して複数のタスクが定義される。
【００３４】
各タスクには、複数のモーション（「ロボットＲの動き」を意味する。）Ｍ１〜Ｍｎが含まれる。タスクには、モーションの他、ハンドシーケンス（ＨＳ）が含まれてもよい。ハンドシーケンスは、ロボットＲのハンド５２による対象物の把持についての一連の処理である。隣接するモーションの間には、後述するインターロック等による待機時間ＷＴが設定される場合がある。
【００３５】
図６において、矢印付きの線は、ロボットＲのハンド５２の軌跡を概念的に示している。当該軌跡は、作業要素の目標点ＴＰに到達する前の通過点であるアプローチ点ＡＰ１，ＡＰ２と、目標点ＴＰと、目標点ＴＰに到達した後の通過点であるデパーチャ点ＤＰ１，ＤＰ２とを含む。目標点ＴＰは、作業要素の対象である対象物の位置を示している。
【００３６】
図６に示す例では、アプローチ点ＡＰ１に到達する前のロボットＲの動作が、作業要素間の移動（つまり、前の作業要素と図６に示す作業要素との間の移動）に相当する。デパーチャ点ＤＰ２から後のロボットＲの動作が、作業要素間の移動（つまり、図６に示す作業要素と次の作業要素との間の移動）に相当する。アプローチ点ＡＰ１からデパーチャ点ＤＰ２までのロボットＲの動作が１つの作業要素および１つのタスクに対応し、当該作業要素内において隣接する点間のロボットＲの動きが１つのモーションに相当する。
すなわち、タスクは、作業要素に関する情報のほか、目標点ＴＰ、アプローチ点ＡＰ、およびデパーチャ点ＤＰのうち少なくともいずれかの点に関する情報を含んでもよい。
【００３７】
図６では、アプローチ点ＡＰ１，ＡＰ２においてインターロックが設定されている場合が例示されている。インターロックは、他のロボット等との干渉を回避するために、所定の信号が入力されるまで、目標点ＴＰ、アプローチ点ＡＰ、およびデパーチャ点ＤＰの少なくともいずれかの点においてロボットＲの動作を待機させる処理である。
タスクには、インターロックを設定する点と、インターロックによる待機時間のタイムアウト値とを含むインターロック設定に関する情報を含んでもよい。
【００３８】
（１−２−３）タスクの作成
次に、階層型リストを用いたタスクの作成方法について、図４および図７を参照して説明する。図７は、本実施形態の一例に係る教示用ウィンドウの遷移を示す図である。
図４に示す階層型リストにおいてタスクを作成するには、先ず、ロボット領域ＲＡに含まれるロボットＲ（Robot_R）のハンド（Hand）のノード６１〜６３のうちいずれかのノードを、オペレータがポインティングデバイスで選択して右クリック操作を行い、「タスク作成」を選択する。すなわち、ノードの選択は、オペレータの操作入力に基づいて、タスクに対応する作業要素におけるロボットＲのハンドの把持対象から選択される。
【００３９】
「タスク作成」が選択されると、図７のタスク作成のための教示用ウィンドウＷ３が表示される。教示用ウィンドウＷ３はタスクの詳細設定を行うための画面であり、タスク名称（Name）と、作業要素の種別（Function）、作業要素の目標物（Target）の各項目が表示される。ここで、階層型リストの対象物領域ＰＡの中からいずれかの対象物に対応するノードをポインティングデバイスで左クリックすることで、教示用ウィンドウＷ３の目標物（Target）の項目に、左クリックにより選択された対象物が入力される。作業要素の種別（Function）の欄には、予め設定された複数の種類の作業要素（例えば、取る（Pick up）、置く（Place）等）の候補からなるプルダウンメニューの中からいずれかの作業要素を選択できるように構成されている。
【００４０】
次いで、階層型リストの対象物領域ＰＡの中から作業対象となる対象物をポインティングデバイスで選択して左クリック操作を行うことにより、教示用ウィンドウＷ３の目標物（Target）の項目に、選択された対象物が入力される。
作業要素の種別（Function）と目標物（Target）の各項目についてデータが入力されると、当該データに基づいて、タスクの名称（Name）が自動的に決定されて表示される。
【００４１】
例えば、ロボットＲのハンドが何も把持していない状態において、「ペントレイからペンPen1を取る」という作業要素に対応するタスクを作成するには、ロボット領域ＲＡ内のノード６１を、オペレータはポインティングデバイスで右クリックしてから「タスク作成」を選択する。次いで、階層型リストの対象物領域ＰＡの中からペントレイ（PenTray）に対応するノード６７を対象としてポインティングデバイスで左クリック操作を行うことで教示用ウィンドウＷ３の目標物（Target）の項目に、ペントレイ（PenTray）が入力される。作業要素の種別（Function）の欄では、複数の種類の作業要素の候補の中から「取る（Pick up）」を選択する。そして、階層型リストの対象物領域ＰＡの中から作業対象となるペンPen1に対応するノード６８を対象としてポインティングデバイスで左クリック操作を行うことで、図７に示す教示用ウィンドウＷ３が表示される。
【００４２】
以上の操作の結果、「ペントレイからペンPen1を取る」という作業要素に関する情報として、“Pickup_Pen1_From_PenTray”という名称のタスクが作成される。
本実施形態では、作業要素の対象物（ここでは「ペンPen1」）と、作業要素の始点（例えば「ペントレイ」）若しくは終点とを階層型リスト上で指定することで、オペレータは直感的にタスクを作成することができる。また、タスクの名称は、作業要素の作業内容（例えば「Pickup」）と、作業対象（例えば「ペンPen1」）と、作業要素の始点となる対象物（例えば「ペントレイ」）、又は終点となる対象物とを含むように自動的に作成されるため、タスクの名称からタスクの内容が直ちに分かるようになっている。
【００４３】
タスクを作成した場合、タスクに含まれるアプローチ点ＡＰ、目標点ＴＰ、および、デパーチャ点ＤＰについての情報が自動的に作成されてもよい。あるいは、オペレータが教示用ウィンドウＷ３のボタンｂ１（「詳細設定」）を操作し、１又は複数のアプローチ点及び／又はデパーチャ点を設定してもよい。自動的にアプローチ点ＡＰ、目標点ＴＰ、および、デパーチャ点ＤＰを作成する場合、対象物の重心を目標点ＴＰとして設定し、対象物の重心を基準とした対象物のローカル座標系において所定の軸上（例えばＺ軸上）にアプローチ点ＡＰおよびデパーチャ点ＤＰを設定してもよい。
【００４４】
図７を参照すると、教示用ウィンドウＷ３のボタンｂ１（「詳細設定」）を操作することで、オペレータは、「アプローチ点、デパーチャ点設定」のほか、「モーションパラメータ設定」および「インターロック設定」のいずれかを選択することができる。
モーションパラメータとは、タスクに含まれる隣接するアプローチ点ＡＰ間、アプローチ点ＡＰから目標点ＴＰまでの間、および、目標点ＴＰからデパーチャ点ＤＰまでの間のロボットＲのハンド５２等の動きに関するパラメータである。例えば、かかるパラメータとして、移動速度、加速度、加速時間、減速時間、ロボットＲの姿勢等が挙げられる。「モーションパラメータ設定」を選択することで、上記モーションパラメータをデフォルト値から変更することができる。
「インターロック設定」を選択することで、インターロックの待機時間のタイムアウト値と、待機時間がタイムアウト値を超えてエラーと判断したときの動作の設定とを、デフォルト値から変更することができる。
【００４５】
図７の教示用ウィンドウＷ３には、ボタンｂ２（「作成」）が設けられている。ボタンｂ２（「作成」）が操作されることで、教示用ウィンドウＷ３によって設定されたタスクが後述するタスクリストに登録される。
【００４６】
（１−２−４）タスクに基づくプログラムの作成
例えば、図６に示すタスクに対応する作業要素を実行するためのプログラムは、以下の複数の関数からなり、各関数は、ロボットＲに対応するモーションを実行させるためのプログラムによって記述されている。
なお、以下のmove(AP1)は、作業要素間の移動として別に定義されてもよい。
【００４７】
・move(AP1) …アプローチ点ＡＰ１までの移動
・interlock(IL1)…アプローチ点ＡＰ１でインターロック（ＩＬ１）による待機
・move(AP2)…アプローチ点ＡＰ２までの移動
・interlock(IL2)…アプローチ点ＡＰ２でインターロック（ＩＬ２）による待機
・move(TP)…目標点ＴＰまでの移動
・handSequence()…ハンドシーケンス処理
・move(DP1)…デパーチャ点ＤＰ１までの移動
・move(DP2)…デパーチャ点ＤＰ２までの移動
なお、interlock(IL1)およびinterlock(IL2)の関数において、タスクごとの動作確認を行う場合、プログラムは作成されるが、インターロックによる待機時間のタイムアウト値が無効となっている。
【００４８】
（１−２−５）タスクリスト
タスクリストとは、ロボットＲが行うジョブに含まれる複数の作業要素の各々に対応する複数のタスクの一覧の情報である。特定のジョブを対象として教示用ウィンドウＷ３によって作成されたタスクは、順次、当該ジョブに対応するタスクリストに登録されていく。タスクリストに含まれる複数のタスクの順序は、当該複数のタスクにそれぞれ対応する複数の作業要素の実行順序を示していることが、ジョブを管理する上で好ましい。
【００４９】
図８の教示用ウィンドウＷ４は、「ペンにキャップを嵌めて製品を組み立てる」という一連の作業であるジョブ（「Pen Assembly」）に対応するタスクリストの一例を表示する。このタスクリストの一例は、以下の(i)〜(vi)の６個の作業要素に対応するタスクを含む。この場合、タスク作成のための教示用ウィンドウＷ３によって、括弧内に表された名称のタスクが作成された場合を示している。
(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)
【００５０】
オペレータは、タスクリストにおいて、いずれかのタスクをポインティングデバイスで選択した状態でドラッグ操作を行うことで、選択されたタスクをタスクリスト中の任意の順序に設定することができる。
【００５１】
図８に示すように、タスクリストのいずれかのタスクをポインティングデバイスで選択した状態で右クリックを行うと、「タスク編集」、「タスク追加」、「タスク削除」のいずれかの処理を選択できる。ここで、「タスク編集」が選択された場合には、選択されているタスクの教示用ウィンドウＷ３に戻って、当該タスクについての情報を変更することができる。「タスク追加」が選択された場合には、選択されているタスクのすぐ後の順序に、作成済みのタスクを読み込んで挿入するか、あるいは、教示用ウィンドウＷ３に戻ってタスクを作成して挿入することができる。「タスク削除」が選択された場合には、選択されているタスクをタスクリストから削除することができる。
【００５２】
図８において、教示用ウィンドウＷ４内の任意の位置を対象として右クリック操作を行い、「プログラム出力」が選択された場合、ジョブに対応して、シミュレーション用プログラムと実機用プログラムの２種類のロボットプログラムを出力する。実機用プログラムはインターロックによる待機時間のタイムアウト値が有効となっているが、シミュレーション用プログラムはインターロックによる待機時間が無効化されている点で、両者は異なる。
【００５３】
（１−２−６）ジョブのシミュレーション
図８の教示用ウィンドウＷ４においてボタンｂ３が操作された場合、タスクリストに対応するロボットＲのジョブのシミュレーションが実行される。
ジョブのシミュレーションを実行するに当たっては、先ず、当該ジョブに対応するロボットプログラムが作成される。すなわち、タスクリストに含まれる各タスクに基づくプログラムは、前述したように、ロボットＲに対応する複数のモーションを実行させるためのプログラムが記述された関数の集合体として表される。なお、連続するタスクに対応する作業要素の間のロボットＲの移動についてのモーションパラメータ（移動速度、加速度、加速時間、減速時間等）は、デフォルト値として予め定められていてもよいし、オペレータが設定できるようにしてもよい。
各タスクに基づくプログラムを組み合わせるに当たっては、入力信号あるいは条件によって実行するプログラムを切り替えるような分岐処理や、特定のプログラムを繰り返す処理等が組み込まれてもよい。
【００５４】
本実施形態では、情報処理装置２においてロボットプログラムが作成され、ロボット制御装置３において当該ロボットプログラムが実行される。本実施形態では、上記シミュレーション用プログラムが実行される。
本実施形態では、ロボット制御装置３にロボットの実機が接続されていないため、ロボット制御装置３の制御部３１は、ストレージ３２に記録されているロボットＲのマニピュレータのモデルのデータに基づいて、マニピュレータを構成する各部の時間の経過に応じた物理量（例えば、アーム５１の関節角の角度変位、角速度等）を、ロボット状態データとして演算する。
【００５５】
ジョブの実行結果とロボット状態データを含む実行ログデータは、ロボット制御装置３から情報処理装置２へ送信される。情報処理装置２は、ロボット状態データに基づいて、タイミングチャートを作成して表示する。本実施形態では、実機のロボットＲがロボット制御装置３に接続されていない状態でジョブのシミュレーションが行われるため、情報処理装置２によって作成されるタイミングチャートを適宜、「オフラインタイミングチャート」ともいう。オフラインタイミングチャートは、第２タイミングチャートの一例である。
【００５６】
図９に、情報処理装置２の表示装置２４において表示されるタイミングチャートの一例を示す。
図９に例示するタイミングチャートは、図８の教示用ウィンドウＷ４において例示したジョブ（「Pen Assembly」）の中の「ペントレイからペンを取る (Pickup_Pen1_From_PenTray)」という名称のタスクに対応するタイミングチャートを示している。
図９のタイミングチャートは、グラフを表示する部分であるＡ部と、タスクの実行状況について表示する部分であるＢ部と、を含み、最上部には、ジョブの開始時刻からの時間が表示されている。図９に示す例では、カーソルＣＵ１〜ＣＵ３が設けられている。ポインティングデバイスによって各カーソルを左右に移動させることができる。カーソルＣＵ１は、ジョブの開始時刻からの時間を示しており、カーソルＣＵ２，ＣＵ３はそれぞれ、カーソルＣＵ１が示す時刻を０としたときの時間を示している。
【００５７】
図９のＡ部には、ロボットＲの以下のロボット状態データの参照時間（例えば１ｍｓ）ごとの変化をプロットした波形（グラフ）が表示される。なお、ロボットＲの位置とは、例えば、マニピュレータの先端フランジの位置である。
・ロボットＲのＸ座標（ワールド座標系）の位置の指令値（“posX”）
・ロボットＲのＹ座標（ワールド座標系）の位置の指令値（“posY”）
・ロボットＲのＺ座標（ワールド座標系）の位置の指令値（“posZ”）
・アーム５１の関節角の角速度の指令値（“Angular Velocity”）
【００５８】
なお、図９のＡ部に表示されているグラフは、複数の種別のロボット状態データの一部の種別のデータに過ぎない。オペレータは、複数の種別のロボット状態データの中から、表示させるロボット状態データの種別を選択できる。
【００５９】
図９のＢ部では、タスク名称（“Task Function”）とモーション状態（“Motion status”）が表示される。タスク名称（“Task Function”）は、上述したように“Pickup_Pen1_From_PenTray”であり、図９からジョブに含まれる当該タスクの期間（開始時刻および終了時刻）がわかる。
モーション状態（“Motion status”）はタスクに含まれるモーションに対応している。すなわち、モーション状態（“Motion status”）では、以下の３種類のモーション（ここでは、ハンドシーケンスも含む。）の期間（開始時刻および終了時刻）がわかる。各モーションの開始時刻および終了時刻は、各モーションに対応する関数の実行開始時刻および実行終了時刻と一致する。各タスクの開始時刻は、各タスクに含まれる複数のモーションのうち最初のモーションの開始時刻と一致し、各タスクの終了時刻は、各タスクに含まれる複数のモーションのうち最後のモーションの終了時刻と一致する。
【００６０】
・Move(PTP)…円弧移動。主に、アプローチ点ＡＰ間の移動、および、デパーチャ点ＤＰ間の移動のうちのいずれかの移動に用いられる。
・Move(Line)…直線移動。主に、アプローチ点ＡＰから目標点ＴＰまでの移動、および、目標点ＴＰからデパーチャ点ＤＰまでの移動のうちのいずれかの移動に用いられる。
・HandSequence()…ハンドシーケンス処理
【００６１】
ロボットＲのロボット状態データを算出するときにエラーが発生した場合には、図８の教示用ウィンドウＷ４のステータス（Status）の欄に、エラー原因を表示してもよい。エラー原因としては、例えば、速度超過、目標点不到達、特異点到達等が挙げられる。
【００６２】
好ましくは、本実施形態では、情報処理装置２は、ロボット状態データに基づいて、ロボットＲおよび対象物の３次元モデルを仮想空間内で動作させ、シミュレーション出力として、タスクに対応するロボットＲの動きの動画（アニメーション）の表示を行う。それによって、オペレータは、ジョブのシミュレーションの結果をＣＡＤ用ウィンドウで確認することができる。
【００６３】
図１０は、ジョブのシミュレーションの結果を動画再生するためのＣＡＤ用ウィンドウＷ５の一例を示している。ＣＡＤ用ウィンドウＷ５に示す例では、オペレータによる操作対象として、ボタンｂ４〜ｂ８が提供される。
ボタンｂ４は、図９に示すタイミングチャートと同じロボット状態データの変化となるように（つまり、通常速度により）、仮想空間においてロボットＲおよび対象物の動作させるための操作ボタンである。ボタンｂ５は、通常速度の倍の速度でロボット状態データが変化するように、仮想空間においてロボットＲおよび対象物の動作させるための操作ボタンである。ボタンｂ６は、通常速度より低速でロボット状態データが変化するように、仮想空間においてロボットＲおよび対象物の動作させるための操作ボタンである。ボタンｂ７は、仮想空間において動作中のロボットＲおよび対象物を一時的に停止させるための操作ボタンである。ボタンｂ８は、時間の進行が逆方向となるようにしてロボット状態データを変化させて（つまり、逆再生して）、仮想空間においてロボットＲおよび対象物の動作させるための操作ボタンである。
【００６４】
（１−３）ロボットシミュレータ１の機能
次に、本実施形態のロボットシミュレータ１の機能について、図１１を参照して説明する。図１１は、実施形態に係るロボットシミュレータ１の機能ブロック図である。
図１１に示すように、ロボットシミュレータ１は、表示制御部１０１、タスク作成部１０２、プログラム作成部１０３、プログラム実行部１０４、状態情報算出部１０５、シミュレーション部１０７、および、インターロック設定部１０８を備える。
ロボットシミュレータ１はさらに、タスクデータベース２２１、階層型リストデータベース２２２、３次元モデルデータベース２２３、および、実行ログデータベース２２４を備える。
【００６５】
以下の説明において、情報処理装置２の制御部２１の処理について言及するときには、制御部２１に含まれるＣＰＵが教示ソフトウェア及び／又はＣＡＤソフトウェアを実行することにより処理が行われる。
【００６６】
表示制御部１０１は、教示ソフトウェアおよびＣＡＤソフトウェアの実行結果を表示装置２４に表示させる制御を行う。表示制御部１０１の機能を実現するために、情報処理装置２の制御部２１は、教示ソフトウェアおよびＣＡＤソフトウェアの出力を含む画像データを生成し、バッファリングし、表示装置２４へ送信する。表示装置２４は、表示駆動回路を駆動して画像を表示パネルに表示する。
【００６７】
タスク作成部１０２は、オペレータの操作入力に基づいて、対象物に対するロボットの作業要素に関する情報であるタスクを作成する機能を備える。
タスク作成部１０２の機能を実現するために、情報処理装置２の制御部２１は、入力装置２３からオペレータの操作入力を受け付けると、当該操作入力に基づき、図７の作業要素の種別（Function）および作業要素の目標物（Target）の情報を含むファイルとしてタスクを作成し、ストレージ２２に記録する。制御部２１は、作業要素の種別（Function）および作業要素の目標物（Target）に基づいて、所定の規則に従ってタスク名称を決定する。ストレージ２２は、タスク作成部１０２によって作成されたタスクを含むタスクデータベース２２１を記憶する。
情報処理装置２の制御部２１は、ロボットが行うジョブに含まれる複数の作業要素に対応するタスクを順に作成し、それによって、当該ジョブに関連付けられた複数のタスクがタスクリストとして作成される。タスクデータベース２２１では、各タスクが特定のジョブに関連付けられた状態で記録されている。
表示制御部１０１は、ストレージ２２のタスクデータベース２２１を参照して、複数のタスクの一覧であるタスクリストを表示装置２４に表示する。タスクリストが表示されることで、ロボットのティーチングを行うときに、ロボットが行うジョブを分かり易く管理することができる。本実施形態では、表示されるタスクリストの各タスクの名称が、ロボットの作業要素の作業内容が認識できるように構成されているため、一連の作業内容がオペレータに直感的に理解しやすいものとなっている。
【００６８】
表示制御部１０１は、ロボットの構成要素と、対象物の構成要素とが階層的に記述された階層型データを表示装置２４に表示する。
情報処理装置２の制御部２１は、教示ソフトウェアとＣＡＤソフトウェアの連携により階層型リストを作成する。すなわち、制御部２１は、ＣＡＤ画像内のロボットおよび対象物を入力装置２３のポインティングデバイスで選択した状態で木構造のデータフォーマットの所望のノードまでドラッグする操作入力を受け付けて、木構造の階層型リストを作成する。制御部２１は、作成した階層型リストをストレージ２２の階層型リストデータベース２２２に記録する。階層型リストでは、木構造のデータにおけるロボットの構成要素および対象物の構成要素に対応する各ノードと、３次元モデルデータベース２２３に記録される３次元モデルの対応するデータと、が関連付けられた状態となっている。
【００６９】
好ましくは、タスク作成部１０２は、階層型データのロボットの構成要素および対象物の構成要素を指定するオペレータの操作入力に基づいて、タスクを作成する機能を備える。当該機能を実現するために、情報処理装置２の制御部２１は、特定の対象物を把持する作業に対応したロボットのハンドを示すノードと、当該対象物に対応するノードとを階層型リストから選択するオペレータの操作入力に基づいて、タスクを作成する。階層型リストを使用することで、オペレータが作業要素の内容に応じて直感的にタスクを作成することができる。
【００７０】
プログラム作成部１０３は、タスク作成部１０２によって作成されたタスクに基づいて、当該タスクに対応する作業要素をロボット５に実行させるためのプログラムを作成する機能を備える。
プログラム作成部１０３の機能を実現するために、情報処理装置２の制御部２１は、タスクに含まれる作業要素の種別、作業要素の目標物、アプローチ点、デパーチャ点、モーションパラメータ、およびインターロックの設定を基に、タスクに対応する作業要素をロボットに実行させるためのプログラムが記述された関数を作成する。例えば、プログラム作成部１０３は、タスクに含まれる情報を参照し、ストレージ２２に保存された作業要素の種別に応じた所定のプログラムのフォーマットにおける座標位置等を書き換えることで、自動的にプログラムを作成する。
【００７１】
プログラム実行部１０４は、ロボットの作業要素に関する情報であるタスクを含むロボットプログラムを実行する機能を備える。
プログラム実行部１０４の機能を実現するために、情報処理装置２の制御部２１は、通信インタフェース部２５を介して少なくとも１つのタスクに基づいて作成したロボットプログラム（シミュレーション用プログラム）を、ロボット制御装置３へ送信する。
前述したように、１つのジョブには、タスクによって記述される複数の作業要素と作業要素間の移動とが含まれる。１つのタスクには、複数のモーションと必要に応じてハンドシーケンスとが含まれ、タスクに対応する作業要素を実行するためのプログラムは、複数の関数によって定義される。ロボットの作業要素間の移動は、予め決められたデフォルトのモーションパラメータを含むプログラムによって記述された関数で定義される。
ロボット制御装置３の制御部３１は、ロボットプログラムを受信すると、各モーションおよびハンドシーケンスに対応する複数の関数を順に実行することで、１つのジョブに対するロボットプログラムを実行する。
【００７２】
状態情報算出部１０５は、プログラム実行部１０４による実行結果に基づいて、時間の経過に応じたロボットの状態を示す情報であるロボット状態データ（状態情報の例）を演算する機能を備える。そして、表示制御部１０１は、状態情報算出部１０５により得られたロボット状態データに基づいて、時間軸においてタスクの作業要素に相当する期間が識別可能となるように、ロボットの状態を示すタイミングチャート（すなわち、オフラインタイミングチャート）を表示装置２４に表示する。
【００７３】
状態情報算出部１０５の機能を実現するために、ロボット制御装置３の制御部３１は、上述したように、各タスクに基づいて作成されたプログラムを順に実行するようにして、情報処理装置２から受信したロボットプログラムを実行する。そして、制御部３１は、ロボットプログラムの実行結果として、ジョブ全体におけるロボット状態データを演算して順次、ストレージ３２に記録する。
ロボット状態データは、マニピュレータ５０のモデルを基に演算された時間の経過に応じたロボットの状態を示す物理量（例えば、アームの関節角、アームの速度や加速度、ハンドの位置等）のデータである。
ジョブ全体のロボットプログラムの実行が終了すると、制御部３１は、ストレージ３２から、ジョブの進行の時間軸に沿った所定の参照時間（例えば１ｍｓ）ごとのロボット状態データを読み出す。制御部３１は、読み出したロボット状態データと、ロボットプログラムの実行結果とを含む実行ログデータを、通信インタフェース部３３を介して情報処理装置２へ送信する。
【００７４】
情報処理装置２の制御部２１は、ロボット制御装置３からロボット状態データを含む実行ログデータを取得すると、実行ログデータを実行ログデータベース２２４に記録する。
制御部２１は、取得した参照時間ごとのロボット状態データに基づいて、所定の形式のオフラインタイミングチャートを含む画像を生成して表示装置２４に表示する。当該タイミングチャートは、ロボットの一連の作業について特定の作業要素に相当する期間を識別可能となるように構成される。
【００７５】
ロボット状態データは、ロボットは複数の種別の情報を含んでもよい。その場合、表示制御部１０１は、ロボット状態データのうち、オペレータの操作入力によって複数の種別の中から選択された一部の種別の情報に基づいて、オフラインタイミングチャートを表示装置２４に表示してもよい。それによって、オペレータは、自身が確認したい種別のロボット状態データをオフラインタイミングチャートに表示させることができる。ロボット状態データの種別の選択方法は問わないが、例えば、オペレータによる操作によってロボット状態データの種別を選択可能とするメニューを含めるようにしてタイミングチャートの表示画面が構成されていることが好ましい。
【００７６】
ストレージ２２（記憶部の例）は、仮想空間におけるロボットの３次元モデルと、対象物の３次元モデルの情報と、を含む３次元モデルデータベース２２３を記憶する。
シミュレーション部１０７は、状態情報算出部１０５によって得られたロボット状態データに基づいて、３次元モデルを仮想空間内で動作させて表示装置２４に表示する機能を備える。
シミュレーション部１０７の機能を実現するため、情報処理装置２の制御部２１は、実行ログデータベース２２４に記録した実行ログデータを読み出し、当該実行ログデータに含まれるロボット状態データを基に仮想空間上でロボットおよび対象物の３次元モデルを動作させて表示装置２４に表示する。これによって、オペレータは、各タスクのロボットの動作を視覚的に確認することができるため、各タスクの設定値（例えば、アプローチ点、デパーチャ点、モーションパラメータ等）や対象物の配置（例えば、図３のキャップトレイ１２の配置等）を再検討することが容易となる。
【００７７】
シミュレーション部１０７は、３次元モデルの動作を、ロボット状態データに基づく速度よりも高速となるように、若しくは低速となるように、又は、時間の進行が逆方向となるようにして、表示装置２４に表示してもよい。それによって、オペレータは、シミュレーションの結果を、オペレータの所望の速度で、あるいは逆再生により再現することができる。
この場合、情報処理装置２の制御部２１は、図１０に例示したように、ＣＡＤ用ウィンドウのボタンに対するオペレータによる操作に応じて、通常速度よりも高速あるいは低速にしてロボットおよび対象物の３次元モデルを動画再生し、又は、当該３次元モデルを逆再生して表示装置２４に表示する。実行ログデータベース２２４には、例えば１ｍｓの参照時間ごとのロボット状態データが記録されているため、制御部２１は、オペレータの操作に応じた再生用のフレームを作成する。
【００７８】
インターロック設定部１０８は、オペレータの操作入力に基づき、タスクに設定された目標点、アプローチ点およびデパーチャ点の少なくともいずれかの点においてロボットの動作を待機させる待機時間のタイムアウト値を設定する機能を備える。
インターロック設定部１０８の機能を実現するために、情報処理装置２の制御部２１は、入力装置２３が受け付けたオペレータの操作入力（例えば、図７の教示用ウィンドウＷ３における操作入力）に基づいてストレージ２２にアクセスし、タスクデータベース２２１に含まれるタスクに含まれる特定のアプローチ点又はデパーチャ点に設定されたインターロックの待機時間のタイムアウト値を書き換える。
インターロック設定部１０８により、ロボットのオフラインティーチングを行うときに、インターロックによる待機時間のタイムアウト値を作業要素ごとにオペレータが容易に設定することができる。
【００７９】
なお、シミュレーション部１０７は、インターロックによる待機時間を無効化して、３次元モデルを仮想空間内で動作させてもよい。つまり、シミュレーション用プログラムを実行するときには、インターロックによる待機を行わずに３次元モデルを動作させる。それによって、オペレータは、仮想空間上でロボットを停止させずに、ロボットの動きに着目してプログラムの実行結果を確認することができる。
【００８０】
（１−４）ジョブのシミュレーションの実行処理
次に、図１２を参照して、ロボットシミュレータ１によるジョブのシミュレーションの実行処理についてシーケンスチャートを参照して説明する。図１２は、本実施形態に係るロボットシミュレータのジョブの実行処理を示すシーケンスチャートの例である。
【００８１】
図８の教示用ウィンドウＷ４においてオペレータによるボタンｂ３に対する操作入力（シミュレーションの実行指示）を受け付けると（ステップＳ１０：ＹＥＳ）、プログラム作成部１０３は、ジョブをロボットＲに実行するためのロボットプログラムを作成する（ステップＳ１２）。このロボットプログラムには、ジョブに対応するタスクリストの各タスクに対応する作業要素をロボットＲに実行させるためのプログラムが記述された複数の関数が含まれる。
【００８２】
作成されたロボットプログラムは、情報処理装置２からロボット制御装置３へ送信されて（ステップＳ１４）、ロボット制御装置３において実行される。すなわち、プログラム実行部１０４は、タスク単位でロボットプログラムを実行する（ステップＳ１６）。状態情報算出部１０５は、プログラム実行部１０４による実行結果に基づいて、時間の経過に応じたロボットＲの状態を示す情報であるロボット状態データを演算し、ロボット状態データを含む実行ログデータをストレージ３２に記録する（ステップＳ１８）。ステップＳ１６，Ｓ１８の処理は、タスクリストに含まれるすべてのタスクが終了するまで行われる。
すべてのタスクについての処理が終了すると（ステップＳ２０：ＹＥＳ）、ロボット制御装置３は、実行ログデータを情報処理装置２に送信する（ステップＳ２２）。実行ログデータには、ジョブの進行の時間軸に沿った所定の参照時間（例えば１ｍｓ）ごとのロボット状態データと、ロボットプログラムの実行結果とが含まれる。情報処理装置２は、受信した実行ログデータを実行ログデータベース２２４に記録する。
次いで、表示制御部１０１は、ステップＳ２２で受信した実行ログデータに含まれるロボット状態データ（つまり、状態情報算出部１０５によって得られたロボット状態データ）に基づいて所定のフォーマットとしたタイミングチャート（オフラインタイミングチャート）を表示装置２４に表示する（ステップＳ２４）。シミュレーション部１０７は、ロボット状態データに基づいて３次元モデルを仮想空間内で動作させて表示装置２４に表示する（ステップＳ２６）。
【００８３】
以上説明したように、本実施形態のロボットシミュレータ１は、ジョブに対応するロボットプログラムの実行結果に基づいてロボット状態データを演算し、当該ロボット状態データに基づいて、時間軸においてタスクの作業要素に相当する期間が識別可能となるようにオフラインタイミングチャートを表示する。そのため、ロボットの一連の作業についてのシミュレーションの結果を表示するときに、特定の作業要素に相当する期間を識別可能とすることができ、作業要素ごとの検討を支援することができる。
【００８４】
（２）第２の実施形態
次に、本発明の第２の実施形態について説明する。
【００８５】
（２−１）本実施形態に係るロボットシミュレータの構成
以下、本実施形態のロボットシミュレータ１Ａの構成について、図１３および図１４を参照して説明する。図１３は、本実施形態のロボットシミュレータ１Ａの全体構成について示す図である。図１４は、本実施形態のロボットシミュレータ１Ａに含まれる各装置のハードウェア構成を示す図である。
なお、第１の実施形態のロボットシミュレータ１と同様の構成要素については、同一の符号を付して重複説明を省略する。
【００８６】
図１３に示すように、ロボットシミュレータ１Ａは、情報処理装置２およびロボット制御装置３Ａを備える。情報処理装置２とロボット制御装置３Ａとは、例えば通信ネットワークケーブルＥＣにより通信可能に接続される。
ロボット制御装置３Ａは、情報処理装置２から送信されるロボットプログラムを実行する点では第１の実施形態のロボット制御装置３と共通するが、ロボットＲとケーブルＷＣにより接続されている点でロボット制御装置３と異なる。好ましくは、ロボット制御装置３Ａは、ロボットの実機の近傍に配置される。
【００８７】
図１４に示すように、ロボット制御装置３Ａは、制御部３１Ａと、ストレージ３２と、通信インタフェース部３３とを含む。
ロボット制御装置３Ａの制御部３１Ａは、ロボットプログラムを実行してロボットＲに対する制御信号を生成する。ロボットＲに対する制御信号は、ロボットＲに対する指令値を示す信号（例えば、パルス信号）である。ロボットＲに対する指令値は、例えばロボットＲの位置、速度、加速度等の目標値である。
制御部３１Ａは、ロボットＲから、ロボットＲの状態を示すデータであるロボット状態データを取得する。本実施形態において、制御部３１Ａが取得するロボット状態データは、演算値ではなくロボットＲから取得する点で、第１の実施形態とは異なる。また、本実施形態のロボット状態データには、ロボットＲに対する入出力信号が含まれる。制御部３１Ａは、ロボットＲから取得したロボット状態データを逐次、ストレージ３２に記録する。
制御部３１Ａは、ストレージ３２から、ジョブの進行の時間軸に沿った所定の参照時間（例えば１ｍｓ）ごとのロボット状態データを読み出し、読み出したロボット状態データと、ロボットプログラムの実行結果とを含む実行ログデータを情報処理装置２へ送信する。
【００８８】
図１４に示すように、ロボットＲは、ロボット本体となるマニピュレータ５０と、制御装置５５と、センサ群５６と、入出力部５７とを備える。
マニピュレータ５０は、ロボットＲの本体部であり、アーム５１およびハンド５２と、アーム５１およびハンド５２の位置、角度を制御する複数のモータと、を含む。
制御装置５５は、ロボット制御装置３Ａから受信する指令値に追従するように、マニピュレータ５０に設けられたモータを制御するサーボ機構を備える。
センサ群５６は、マニピュレータ５０の位置、速度、加速度、および、各関節の角度，角速度等を検出する複数のセンサを含んでもよい。
【００８９】
制御装置５５がロボット制御装置３Ａへ送信するロボット状態データは、センサ群５６のいずれかのセンサによって検出されたマニピュレータ５０の物理量であってもよいし、モータに対する制御電流値等から推定可能な物理量であってもよい。例えば、アーム５１の関節角の角速度のデータは、アーム５１の関節角の角速度センサが設けられている場合には当該角速度センサの検出値であってもよいし、マニピュレータ５０のモータを制御するサーボ機構における制御電流値であってもよい。
【００９０】
入出力部５７は、ロボットＲの外部のシステムとの入出力インタフェースである。例えば、入力信号の例としては、外部のシステムからのインターロック信号や、後述するようにロボットＲがラインに配置されている場合には、対象物の位置についての補正のための信号が挙げられる。
【００９１】
（２−２）本実施形態のタイミングチャート
本実施形態では、実機のロボットＲがロボット制御装置３Ａに接続され、ロボットＲから取得したロボット状態データに基づいて、情報処理装置２においてタイミングチャートが作成される。以下の説明では、本実施形態において作成されるタイミングチャートを適宜、「オンラインタイミングチャート」ともいう。オンラインタイミングチャートは、第１タイミングチャートの一例である。
【００９２】
図１５に、本実施形態のタイミングチャートの一例を示す。図１５のタイミングチャートは、グラフを表示する部分であるＡ部と、タスクの実行状況について表示する部分であるＢ部とに加えて、入出力信号を表示する部分であるＣ部を含む。すなわち、オンラインタイミングチャートに含まれるロボット状態データには、ロボットにおける入出力信号の状態が含まれてもよい。オンラインタイミングチャートに表示される入出力信号は、ロボットＲに対して設けられた入出力信号の中からオペレータの操作入力により選択可能であることが好ましい。
【００９３】
Ａ部には、ロボットＲから取得した以下のロボット状態データの参照時間（例えば１ｍｓ）ごとの変化をプロットした波形(グラフ)が表示される。
・ロボットＲのＸ座標（ワールド座標系）の位置の取得値（“posX”）
・ロボットＲのＹ座標（ワールド座標系）の位置の取得値（“posY”）
・ロボットＲのＺ座標（ワールド座標系）の位置の取得値（“posZ”）
・アーム５１の関節角の角速度の取得値（“Angular Velocity”）
【００９４】
Ｂ部において、第１の実施形態のオフラインタイミングチャートと同様に、各モーションの開始時刻および終了時刻は、各モーションに対応する関数の実行開始時刻および実行終了時刻と一致する。各タスクの開始時刻は、各タスクに含まれる複数のモーションのうち最初のモーションの開始時刻と一致し、各タスクの終了時刻は、各タスクに含まれる複数のモーションのうち最後のモーションの終了時刻と一致する。
【００９５】
図１５のＣ部では、Ｉ／Ｏ（入出力信号）の状態（ＯＮ（Ｈレベル）又はＯＦＦ（Ｌレベル））が表示される。［］の中の数字は、予め定められたＩ／Ｏ番号であり、［］に続く文字は、Ｉ／Ｏの内容を示している。なお、Ｃ部に含まれる入出力信号が不定を示す場合がある。
図１５に示す例では、以下の内容のＩ／Ｏを示している。
【００９６】
・[09] Pen Set … 実機のロボットＲの作業環境にカメラが設けられており、当該カメラがペントレイを認識したときにＯＮとなる。ペントレイが固定して配置されている場合には常にＯＮであるが、ペントレイがラインで運ばれてくる場合には、カメラがペントレイのペンを認識したときにＯＦＦからＯＮに切り替わる。
・[10] Vision lockon … 実機のロボットＲの作業環境に設置されているカメラによって認識されたペントレイの位置に基づいて、ロボットＲに対する指令値に対する補正を行う補正タイミングを示している。補正タイミングに達したときにＯＮとなる。補正タイミングは、タスクに対して予め設定されている。
・[16] Hand1 grasp … ハンドがペンを把持したときにＯＮとなる。ＯＮのタイミングはハンドシーケンスによって異なる。
・[17] Hand1 release … ハンドがペンを離したときにＯＮとなる。実機のロボットＲでは、対象物を取る（pick up）作業中にＯＮとなった場合、対象物を掴み損ねて落下させたことがわかる。
【００９７】
図１５に示すように、オンラインタイミングチャートにおいても、第１の実施形態のオフラインタイミングチャートと同様に、ロボットＲのジョブに含まれる各タスクの期間（開始時刻および終了時刻）と、各タスクに含まれるモーションの期間（開始時刻および終了時刻）とがわかる。
図１５のオンラインタイミングチャートの例では、ロボットＲに対する指令値の補正タイミングである時刻ｔ３が、当該指令値に対応するモーションの開始時刻である時刻ｔ２よりも後になっており、問題が発生していることがわかる。
【００９８】
（２−３）ロボットシミュレータ１Ａの機能
次に、本実施形態のロボットシミュレータ１Ａの機能について、図１６を参照して説明する。図１６は、実施形態に係るロボットシミュレータ１Ａの機能ブロック図である。
図１６に示すように、ロボットシミュレータ１Ａは、表示制御部１０１、タスク作成部１０２、プログラム作成部１０３、プログラム実行部１０４、状態情報取得部１０６、シミュレーション部１０７、および、インターロック設定部１０８を備える。すなわち、本実施形態のロボットシミュレータ１Ａは、状態情報算出部１０５ではなく状態情報取得部１０６を備えている点で、第１の実施形態のロボットシミュレータ１とは異なる。
【００９９】
本実施形態のプログラム実行部１０４を実現するために、情報処理装置２の制御部２１は、例えば教示用ウィンドウＷ３（図８）のボタンｂ３に対する操作入力を認識すると、ロボットプログラム（実機用プログラム）を作成し、当該ロボットプログラムをロボット制御装置３Ａへ送信する。ロボット制御装置３Ａの制御部３１Ａは、受信した実機用プログラムを実行する。
【０１００】
状態情報取得部１０６は、プログラム実行部１０４による実行結果に基づいてロボットに対する制御信号を生成し、当該制御信号によって動作するロボットの時間の経過に応じた状態を示す情報であるロボット状態データを、ロボットから取得する機能を備える。
本実施形態では、表示制御部１０１は、状態情報取得部１０６により得られたロボット状態データに基づいて、時間軸においてタスクの作業要素に相当する期間が識別可能となるように、ロボットの状態を示すタイミングチャート（すなわち、オンラインタイミングチャート）を表示装置２４に表示する。
【０１０１】
状態情報取得部１０６の機能を実現するために、ロボット制御装置３Ａの制御部３１Ａは、上述したように、各タスクに基づいて作成されたプログラムを順に実行するようにして、情報処理装置２から受信したロボットプログラムを実行する。そして、制御部３１Ａは、ロボットプログラムに含まれる関数を実行する度に、ロボットＲに対する指令値を含む制御信号を生成し、ロボットＲへ送信する。
ロボットＲの制御装置５５は、ロボット制御装置３Ａから受信する指令値に追従するように、マニピュレータ５０に設けられたモータを制御するとともに、ロボット状態データをロボット制御装置３Ａに送信する。ロボット状態データは、センサ群５６のいずれかのセンサによって検出されたマニピュレータ５０の物理量、あるいはマニピュレータ５０の物理量の推定値（例えば制御電流値等）である。ロボット制御装置３Ａの制御部３１Ａは、ロボットＲから取得したロボット状態データを逐次、ストレージ３２に記録する。
制御部３１Ａは、ストレージ３２に累積されるロボット状態データを所定の参照時間（例えば１ｍｓ）ごとに読み出し、読み出した所定の参照時間ごとのロボット状態データを含む実行ログデータを情報処理装置２へ送信する。
情報処理装置２の制御部２１は、受信した実行ログデータを実行ログデータベース２２４に記録する。さらに、制御部２１は、第１の実施形態と同様に、実行ログデータに含まれるロボット状態データに基づいて、所定の形式のタイミングチャート（オンラインタイミングチャート）を含む画像を生成して表示装置２４に表示する。当該タイミングチャートにより、ロボットの一連の作業について特定の作業要素に相当する期間を識別可能とすることができる。
【０１０２】
第１の実施形態と同様に、ロボット状態データは、ロボットは複数の種別の情報を含んでもよい。その場合、表示制御部１０１は、ロボット状態データのうち、オペレータの操作入力によって複数の種別の中から選択された一部の種別の情報に基づいて、オンラインタイミングチャートを表示装置２４に表示してもよい。
【０１０３】
本実施形態では、シミュレーション部１０７は、状態情報取得部１０６によって得られたロボット状態データに基づいて、３次元モデルを仮想空間内で動作させて表示装置２４に表示する機能を備えてもよい。その際、シミュレーション部 １０７は、３次元モデルの動作を、ロボット状態データに基づく速度よりも高速となるように、若しくは低速となるように、又は、時間の進行が逆方向となるようにして、表示装置２４に表示してもよい。
本実施形態では、情報処理装置２の制御部２１は、ロボットＲから取得した参照時間ごとのロボット状態データを基に仮想空間上でロボットおよび対象物の３次元モデルを動作させて表示装置２４に表示する。これによって、オペレータは、各タスクのロボットの動作を視覚的に確認することができるため、各タスクの設定値（例えば、アプローチ点、デパーチャ点、モーションパラメータ等）や対象物の配置（例えば、図３のキャップトレイ１２の配置等）を再検討することが容易となる。
【０１０４】
本実施形態において、オンラインタイミングチャートを表示し、３次元モデルの動画を再生する処理は、図１２に示したフローチャートの処理と概ね共通するが、ステップＳ１８において、ロボットＲからロボット状態データを取得して記録する点が異なる。
【０１０５】
以上説明したように、本実施形態のロボットシミュレータ１Ａは、ジョブに対応するロボットプログラムの実行結果に基づいてロボットに対して指令値を送信し、ロボットからロボット状態データを取得する。そして、ロボットシミュレータ１Ａは、取得したロボット状態データに基づいて、時間軸においてタスクの作業要素に相当する期間が識別可能となるようにオンラインタイミングチャートを表示する。そのため、実機のロボットの一連の作業についての結果を表示するときに、特定の作業要素に相当する期間を識別可能とすることができ、作業要素ごとの検討を支援することができる。
【０１０６】
（３）第３の実施形態
次に、第３の実施形態について説明する。
本実施形態のロボットシミュレータは、第１の実施形態のロボットシミュレータ１の機能と、第２の実施形態のロボットシミュレータ１Ａの機能とを備え、オフラインタイミングチャートとオンラインタイミングチャートの両方を表示装置２４に表示する。すなわち、本実施形態では、表示制御部１０１は、オフラインタイミングチャート（第２タイミングチャートの例）とオンラインタイミングチャート（第１タイミングチャートの例）を、タスクの作業要素に相当する期間のロボットの状態が比較可能となるように、表示装置２４に表示する。かかる表示によって、同一のジョブに対してロボットに接続した場合と接続しない場合とでのロボット状態データを、ジョブに含まれる作業要素ごとに比較し、検討することができる。
【０１０７】
本実施形態の情報処理装置２の実行ログデータベース２２４には、同一のジョブに対して作成されたロボットプログラムを実行することで得られたロボット状態データ（演算されたロボット状態データ、および、ロボットから取得したロボット状態データ）が記録される。そして、情報処理装置２の制御部２１は、演算されたロボット状態データに基づくオフラインタイミングチャートと、ロボットから取得したロボット状態データに基づくオンラインタイミングチャートとを、比較可能となる表示装置２４に表示する。
【０１０８】
オフラインタイミングチャートとオンラインタイミングチャートとを比較可能となるような表示態様は限定するものではなく、例えば、表示画面の上側にオフラインタイミングチャートを表示し、表示画面の下側にオンラインタイミングチャートを表示してもよい。
好ましくは、表示制御部１０１は、オフラインタイミングチャートとオンラインタイミングチャートとを切り替え可能に表示するか、又は、オフラインタイミングチャートとオンラインタイミングチャートとを共通の時間軸において重ね合わせて表示装置２４に表示する。かかる表示態様とすることで、オフラインタイミングチャートとオンラインタイミングチャートを比較することが容易となる。
【０１０９】
図１７に、オフラインタイミングチャートとオンラインタイミングチャートとを共通の時間軸において重ね合わせて表示した例を示す。図１７に示す例では、図１５に示したオンラインタイミングチャートに、図９に示したオフラインタイミングチャートが共通の時間軸において重ね合わせて表示されている。
【０１１０】
図１８に、オフラインタイミングチャートとオンラインタイミングチャートとを切り替え可能に表示した例を示す。図１８に示す例では、最上部に、オフラインタイミングチャートに対応する「結果＃１（ロボット非接続）」という名称のタブと、オンラインタイミングチャートに対応する「結果＃２（ロボット接続）」という名称のタブとが切り替え可能に設けられる。図１８は、「結果＃１（ロボット非接続）」という名称のタブが選択された場合を示しており、図９のオフラインタイミングチャートと同一の表示内容となっている。
【０１１１】
（４）変形例
以下、上述した各実施形態の変形例について述べる。
【０１１２】
（４−１）変形例１
表示制御部１０１は、異なる作業要素同士におけるロボットの状態が比較可能となるように、オフラインタイミングチャート又はオンラインタイミングチャートを表示装置２４に表示してもよい。それによって、ロボットのジョブに含まれる複数の作業要素のうち異なる作業要素間においてロボットの状態を比較することができる。
本変形例を実現するために、例えば、情報処理装置２の制御部２１は、ジョブに含まれる複数のタスクのうち２つのタスクを選択するオペレータの操作入力に基づいて、情報処理装置２の制御部２１は、選択された２つのタスクの期間が並列に構成されたタイミングチャートを作成する。好ましくは、選択された２つのタスクの期間の開始時刻が一致するようにしてタイミングチャートが作成される。
【０１１３】
（４−２）変形例２
シミュレーション部１０７は、オフラインタイミングチャート又はオンラインタイミングチャートにおいて表示されている期間のうち、オペレータの操作入力に基づいて指定された一部の期間におけるロボット状態データに基づいて、３次元モデルを動作させて表示装置２４に表示してもよい。それによって、ジョブの全期間のうちオペレータが注目したい期間のロボットの動作を確認することができる。
本変形例を実現するために、オフラインタイミングチャート又はオンラインタイミングチャートに、図１０に例示したようなボタンｂ４（通常速度によりロボットおよび対象物の動作させるための操作ボタン）が設けられる。情報処理装置２の制御部２１は、当該ボタンｂ４の操作入力に基づいて、オフラインタイミングチャート又はオンラインタイミングチャートに対応する動画を再生する。このとき、タイミングチャートに設けられたカーソルＣＵ１〜ＣＵ３を操作することで、動画の再生対象とする期間を、タイミングチャートに表示されている期間のうち一部の期間に指定できるようにする。
【０１１４】
（４−３）変形例３
第２の実施形態において、表示制御部１０１は、同一の作業要素であっても異なる実行結果におけるロボットの状態が比較可能となるように、オンラインタイミングチャートを表示装置２４に表示してもよい。それによって、同一のタスクを複数回試行したときのロボットの状態のばらつきを把握することができる。  本変形例を実現するために、情報処理装置２の制御部２１は、ロボットプログラムを複数回実行することで取得した複数のロボット状態データをジョブの開始時刻が一致するようにして重ねてプロットしたタイミングチャートを作成する。
【０１１５】
以上、本発明のロボットシミュレータの複数の実施形態について詳述したが、本発明は上記の各実施形態に限定されない。また、上記の実施形態は、本発明の主旨を逸脱しない範囲において、種々の改良や変更が可能である。例えば、各実施形態について言及した技術的事項は、技術的矛盾が生じない限り、異なる実施形態の間で適宜組み合わせてもよい。
【０１１６】
上述した第１および第２の実施形態において、情報処理装置２は、ロボット制御装置３から取得したロボット状態データに基づいて有用な情報を提供するようにしてもよい。
例えば、ジョブ内の作業要素間の移動距離および移動回数を統計処理した情報を提供することで、ラインにおける対象物の供給及び／又は排出の場所、向き等の検討を支援することができる。
また、ジョブ内のロボットの動作時間と待機時間の時間比率を算出して提示してもよい。それによって、ジョブ内の作業順序の改善、あるいは不要な高速動作を低速化する等の検討を支援することができる。
【０１１７】
上述した実施形態に係るロボットシミュレータは、図１１又は図１６の機能ブロック図に記載されたすべての機能を備えている必要はなく、少なくとも一部の機能を備えていればよい。
上述した実施形態では、ロボットシミュレータは、情報処理装置とロボット制御装置の２つの装置を含む場合について例示したが、その限りではなく、一体の装置として構成してもよい。
上述した実施形態では、情報処理装置の入力装置にポインティングデバイスが含まれる場合について説明したが、その限りではなく、他のデバイスであってもよい。例えば、タッチ入力機能を備えた表示パネルを使用し、オペレータによるタッチ入力を受け付けてもよい。
上述した実施形態では、ジョブに含まれるタスクリストを、階層型リストを基に作成する例を説明したが、その限りではない。ジョブに含まれる複数の作業要素が特定される限り、階層型リストを基にジョブに含まれるタスクを定義する必要はない。
【０１１８】
上述した説明により、図１１および図１６の機能ブロック図に記載された機能のうち少なくとも一部の機能をコンピュータに実現させるためのプログラム、および、当該プログラムが記録されたコンピュータ可読記憶媒体（不揮発性の記憶媒体をも含む。）が開示されていることは当業者に理解される。
【符号の説明】
【０１１９】
１，１Ａ…ロボットシミュレータ、２…情報処理装置、２１…制御部、２２…ストレージ、２３…入力装置、２４…表示装置、２５…通信インタフェース部、３，３Ａ…ロボット制御装置、３１，３１Ａ…制御部、３２…ストレージ、３３…通信インタフェース部、１１…ペントレイ、Ｐ…ペン群、１２…キャップトレイ、Ｃ…キャップ群、１３…治具、１４…製品トレイ、Ａ１〜Ａ１２…製品、ＥＣ…通信ネットワークケーブル、ＷＣ…ケーブル、Ｒ…ロボット、５０…マニピュレータ、５１…アーム、５２…ハンド、５５…制御装置、５６…センサ群、５７…入出力部、６１〜６８…ノード、１０１…表示制御部、１０２…タスク作成部、１０３…プログラム作成部、１０４…プログラム実行部、１０５…状態情報算出部、１０６…状態情報取得部、１０７…シミュレーション部、１０８…インターロック設定部、２２１…タスクデータベース、２２２…階層型リストデータベース、２２３…３次元モデルデータベース、２２４…実行ログデータベース、ＲＡ…ロボット領域、ＰＡ…対象物領域、Ｗ１〜Ｗ６…ウィンドウ、ｂ１〜ｂ８…ボタン、ＡＰ…アプローチ点、ＴＰ…目標点、ＤＰ…デパーチャ点、Ｔ…テーブル
【図１】
2019064917.tif 000003
【図２】
2019064917.tif 000004
【図３】
2019064917.tif 000005
【図４】
2019064917.tif 000006
【図５】
2019064917.tif 000007
【図６】
2019064917.tif 000008
【図７】
2019064917.tif 000009
【図８】
2019064917.tif 000010
【図９】
2019064917.tif 000011
【図１０】
2019064917.tif 000012
【図１１】
2019064917.tif 000013
【図１２】
2019064917.tif 000014
【図１３】
2019064917.tif 000015
【図１４】
2019064917.tif 000016
【図１５】
2019064917.tif 000017
【図１６】
2019064917.tif 000018
【図１７】
2019064917.tif 000019
【図１８】
2019064917.tif 000020
【国際調査報告】
2019064917.tif 000021
2019064917.tif 000022
2019064917.tif 000023
2019064917.tif 000024
2019064917.tif 000025
2019064917.tif 000026