(57)【要約】【課題】ロボットの動作教示の容易化に有効なロボットシミュレータ、ロボットシステム及びシミュレーション方法を提供する。【解決手段】ロボットシミュレータ１００は、ロボット１０及び当該ロボット１０の周辺の障害物に関するモデル情報を記憶したモデル記憶部１１１と、ロボット１０の動作の開始位置及び終了位置を定める第一入力情報を取得するように構成された情報取得部１２０と、ロボット１０と障害物との衝突を回避しつつ、ロボット１０の先端部１６を開始位置から終了位置まで移動させるパスを第一入力情報及びモデル情報に基づいて生成することと、障害物を示す図とパスの経由点を示す指標とを含む画像データを生成することと、を実行するように構成された情報処理部１３０と、を備える。【選択図】図２
2018134703.tif 000002
【特許請求の範囲】
【請求項１】
ロボット及び当該ロボットの周辺の障害物に関するモデル情報を記憶したモデル記憶部と、
前記ロボットの動作の開始位置及び終了位置を定める第一入力情報を取得するように構成された情報取得部と、
前記ロボットと前記障害物との衝突を回避しつつ、前記ロボットの先端部を前記開始位置から前記終了位置まで移動させるパスを前記第一入力情報及び前記モデル情報に基づいて生成することと、前記障害物を示す図と前記パスの経由点を示す指標とを含む画像データを生成することと、を実行するように構成された情報処理部と、を備えるロボットシミュレータ。
【請求項２】
前記情報取得部は、前記経由点の位置を変更する第二入力情報を更に取得するように構成され、
前記情報処理部は、前記第二入力情報に基づく位置の変更後の前記経由点を通るように、前記パスを再生成することと、前記第二入力情報に基づいて前記指標の位置を変更した前記画像データを生成することと、を更に実行するように構成されている、請求項１記載のロボットシミュレータ。
【請求項３】
前記情報取得部は、前記パスの生成回数を規制する条件を定める第三入力情報を更に取得するように構成され、
前記情報処理部は、前記パスを生成する際に、前記第三入力情報により定まる条件を満たすまで前記パスの生成を繰り返すことと、生成された複数のパスから一つのパスを選択することとを実行するように構成されている、請求項１又は２記載のロボットシミュレータ。
【請求項４】
前記情報取得部は、前記パスの評価基準を定める第四入力情報を更に取得するように構成され、
前記情報処理部は、前記生成された前記複数のパスから前記一つのパスを選択する際に、前記第四入力情報により定まる前記評価基準に従って前記一つのパスを選択するように構成されている、請求項３記載のロボットシミュレータ。
【請求項５】
前記情報取得部は、前記ロボットに対する接近可能距離を定める第五入力情報を更に取得するように構成され、
前記情報処理部は、前記第五入力情報に基づいて定まる前記接近可能距離を保ちつつ前記ロボットを覆う外殻モデルを生成することを更に実行し、前記パスを生成する際に、前記外殻モデルと前記障害物との衝突を回避しつつ、前記先端部を前記開始位置から前記終了位置まで移動させるパスを生成するように構成されている、請求項１〜４のいずれか一項記載のロボットシミュレータ。
【請求項６】
前記情報取得部は、前記ロボットの先端部の姿勢条件を定める第六入力情報を更に取得するように構成され、
前記情報処理部は、前記パスを生成する際に、前記先端部の姿勢が、前記第六入力情報により定まる前記姿勢条件を満たすように前記パスを生成するように構成されている、請求項１〜５のいずれか一項記載のロボットシミュレータ。
【請求項７】
前記情報取得部は、前記ロボットの関節の可動範囲を定める第七入力情報を更に取得するように構成され、
前記情報処理部は、前記パスを生成する際に、前記関節の動作角度が、前記第七入力情報により定まる前記可動範囲内に収まるように前記パスを生成するように構成されている、請求項１〜６のいずれか一項記載のロボットシミュレータ。
【請求項８】
請求項１〜７のいずれか一項記載のロボットシミュレータと、
前記ロボットと、
前記パスに沿って前記先端部を移動させるように前記ロボットを制御するロボットコントローラと、を備えるロボットシステム。
【請求項９】
ロボットシミュレータによるシミュレーション方法であって、
ロボット及び当該ロボットの周辺の障害物に関するモデル情報を記憶することと、
前記ロボットの動作の開始位置及び終了位置を定める第一入力情報を取得することと、
前記ロボットと前記障害物との衝突を回避しつつ、前記ロボットの先端部を前記開始位置から前記終了位置まで移動させるパスを前記第一入力情報及び前記モデル情報に基づいて生成することと、
前記障害物を示す図と前記パスの経由点を示す指標とを含む画像データを生成することと、を含むシミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ロボットシミュレータ、ロボットシステム及びシミュレーション方法に関する。
【背景技術】
【０００２】
特許文献１には、画像生成部と、始点指定部と、経由点指定部と、生成部とを備えるティーチングシステムが開示されている。画像生成部は、ロボットの加工対象であるワーク上に設定された閉じた加工線を含む仮想画像を生成する。始点指定部は、仮想画像上で加工線以外の位置に始点を指定する。経由点指定部は、加工線上に経由点を指定する。生成部は、始点から経由点を経由して加工線をたどり再び当該経由点に戻る経路についてロボットに対する教示データを生成する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−２０２５２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本開示は、ロボットの動作教示の容易化に有効なロボットシミュレータ、ロボットシステム及びシミュレーション方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本開示の一側面に係るロボットシミュレータは、ロボット及び当該ロボットの周辺の障害物に関するモデル情報を記憶したモデル記憶部と、ロボットの動作の開始点（or開始位置）及びと終了点(終了位置)を定める第一入力情報を取得するように構成された情報取得部と、ロボットと障害物との衝突を回避しつつ、二つの教示点の間でロボットの先端部を開始位置から終了位置まで移動させるパスを第一入力情報及びモデル情報に基づいて生成することと、障害物を示す図とパスの経由点を示す指標とを含む画像データを生成することと、を実行するように構成された情報処理部と、を備える。
【０００６】
本開示の他の側面に係るロボットシステムは、上記ロボットシミュレータと、ロボットと、パスに沿って先端部を移動させるようにロボットを制御するロボットコントローラと、を備える。
【０００７】
本開示の更に他の側面に係るシミュレーション方法は、ロボットシミュレータによるシミュレーション方法であって、ロボット及び当該ロボットの周辺の障害物に関するモデル情報を記憶することと、ロボットの動作の開始位置及び終了位置に対する少なくとも二つの教示点を定める第一入力情報を取得することと、ロボットと障害物との衝突を回避しつつ、二つの教示点の間でロボットの先端部を開始位置から終了位置まで移動させるパスを第一入力情報及びモデル情報に基づいて生成することと、障害物を示す図とパスの経由点を示す指標とを含む画像データを生成することと、を含む。
【発明の効果】
【０００８】
本開示によれば、ロボットの動作教示の容易化に有効なロボットシミュレータ、ロボットシステム及びシミュレーション方法を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】ロボットシステムの全体構成を示す模式図である。
【図２】ロボットシミュレータの機能的な構成を示すブロック図である。
【図３】ジョブの内容を例示するテーブルである。
【図４】メインウィンドウを例示する模式図である。
【図５】ロボットシミュレータのハードウェア構成を示すブロック図である。
【図６】パス生成支援機能の呼び出しからパス生成までの手順を示すフローチャートである。
【図７】ジョブ指定ウィンドウを表示した画面を例示する模式図である。
【図８】オプション設定ウィンドウを表示した画面を例示する模式図である。
【図９】パス生成の詳細手順を示すフローチャートである。
【図１０】生成されたパスを表示した画面を例示する模式図である。
【図１１】開始位置及び終了位置を直線で結ぶパスを表示した画面を例示する模式図である。
【図１２】指標選択からパス修正までの手順を示すフローチャートである。
【図１３】経由点の編集マークを表示した画面を例示する模式図である。
【図１４】パス修正の詳細手順を示すフローチャートである。
【図１５】修正後のパスを表示した画面を例示する模式図である。
【図１６】動画再生処理の手順を示すフローチャートである。
【図１７】動画再生中の画面を例示する模式図である。
【発明を実施するための形態】
【００１０】
以下、実施形態について、図面を参照しつつ詳細に説明する。説明において、同一要素又は同一機能を有する要素には同一の符号を付し、重複する説明を省略する。本実施形態に係るロボットシステムは、オペレータにより教示された動作をロボットに実行させることにより、加工、組立等の様々な作業を自動化するシステムである。
【００１１】
〔ロボットシステム〕
図１に示すように、ロボットシステム１は、ロボット１０と、ロボットシミュレータ１００と、ロボットコントローラ２００とを備える。ロボット１０は、例えば６軸の垂直多関節ロボットであり、その先端部に設けられるツールによりワーク３０に対する作業を実行するように構成されている。作業内容に応じたツールの選択により、様々な作業を実行可能である。作業内容の具体例としては、パーツをピッキングして配置するピックアンドプレース、パーツ同士のスポット溶接、又はパーツ同士のアーク溶接等が挙げられる。図１においては、パーツ同士のアーク溶接を行うロボット１０を例示している。
【００１２】
ロボット１０は、基部１１と、旋回部１２と、第一腕部１３と、第二腕部１４と、第三腕部１５と、先端部１６と、アクチュエータ２１〜２６とを有する。
【００１３】
基部１１は設置面に固定されている。旋回部１２は、基部１１の上に設けられており、鉛直な軸線Ａｘ１まわりに旋回可能である。以下、基部１１と旋回部１２との接続部を「関節Ｊ１」といい、基部１１に対する旋回部１２の旋回角度を「関節Ｊ１の角度」という。
【００１４】
第一腕部１３は、旋回部１２に接続されており、軸線Ａｘ１に直交する軸線Ａｘ２まわりに揺動可能である。直交は、所謂立体交差のように互いに離れて交差することを含む。以下、旋回部１２と第一腕部１３との接続部を「関節Ｊ２」といい、旋回部１２に対する第一腕部１３の揺動角度を「関節Ｊ２の角度」という。
【００１５】
第二腕部１４は、第一腕部１３の先端部に接続されており、軸線Ａｘ２に平行な軸線Ａｘ３まわりに揺動可能である。以下、第一腕部１３と第二腕部１４との接続部を「関節Ｊ３」といい、第一腕部１３に対する第二腕部１４の揺動角度を「関節Ｊ３の角度」という。第二腕部１４の先端部は、第二腕部１４の中心線に沿う軸線Ａｘ４まわりに旋回可能である。以下、第二腕部１４の基端部と先端部との接続部を「関節Ｊ４」といい、第二腕部１４の基端部に対する先端部の旋回角度を「関節Ｊ４の角度」という。
【００１６】
第三腕部１５は、第二腕部１４の先端部に接続されており、軸線Ａｘ４に直交する軸線Ａｘ５まわりに揺動可能である。以下、第二腕部１４と第三腕部１５との接続部を「関節Ｊ５」といい、第二腕部１４に対する第三腕部１５の揺動角度を「関節Ｊ５の角度」という。
【００１７】
先端部１６は、第三腕部１５の先端部に接続されており、軸線Ａｘ６は第三腕部１５の中心線に沿う軸線Ａｘ６まわりに旋回可能である。以下、第三腕部１５と先端部１６との接続部を「関節Ｊ６」といい、第三腕部１５に対する先端部１６の旋回角度を「関節Ｊ６の角度」という。先端部１６にはツール１７が設けられている。ツール１７は例えばアーク溶接用のトーチであり、着脱自在である。
【００１８】
アクチュエータ２１〜２６は、例えば電動モータ等を動力源として関節Ｊ１〜Ｊ６をそれぞれ駆動する。具体的に、アクチュエータ２１は軸線Ａｘ１まわりに旋回部１２を旋回させ、アクチュエータ２２は軸線Ａｘ２まわりに第一腕部１３を揺動させ、アクチュエータ２３は軸線Ａｘ３まわりに第二腕部１４を搖動させ、アクチュエータ２４は軸線Ａｘ４まわりに第二腕部１４の先端部を旋回させ、アクチュエータ２５は軸線Ａｘ５まわりに第三腕部１５を搖動させ、アクチュエータ２６は軸線Ａｘ６まわりに先端部１６を旋回させる。
【００１９】
関節Ｊ１〜Ｊ６の角度の調節により、先端部１６のツール１７の位置及び姿勢をワーク３０に合わせて自在に調節することが可能である。
【００２０】
ワーク３０は、ロボット１０の移動の障害物となり得る要素を含んでいる。例えばワーク３０は、ベースとなるパーツ３１と、パーツ３１上に配置された複数のパーツ３２，３３，３４を有している。一例として、ロボット１０は、パーツ３１に対するパーツ３２，３３，３４のアーク溶接を行う。一つの溶接部から他の溶接部にツール１７を移動させる際に、パーツ３２，３３，３４のそれぞれが障害物となり得る。なお、「障害物」とは、常に先端部１６の移動の妨げとなることを意味するものではなく、ロボット１０の動作条件によって先端部１６の移動の妨げとなり得るものを意味する。ワークのパーツの他、例えばロボットの周辺装置又は治具等も障害物となり得る。
【００２１】
なお、以上に示したロボット１０の構成はあくまで一例である。ロボット１０の構成は、その先端部の位置及び姿勢を所望の状態に調節可能なものであればいかなるものであってもよい。例えばロボット１０は、上述の構成に更に１軸を追加した７軸ロボットであってもよい。
【００２２】
ロボットシミュレータ１００は、ロボット１０及びワーク３０のモデル情報に基づいて、ロボット１０及びワーク３０の位置関係をシミュレーションし、その結果に基づいてロボット１０のパスを生成する。パスは、ロボットシミュレータ１００の先端部１６の移動経路と、当該経路に沿って先端部１６を移動させる際のロボット１０の姿勢（すなわち関節Ｊ１〜Ｊ６の角度）とを定める情報である。
【００２３】
ロボットコントローラ２００は、上記パスに沿って先端部１６を移動させる（上記パスに従って関節Ｊ１〜関節Ｊ５をそれぞれ動作させる）ようにロボット１０を制御する。
【００２４】
ロボットシミュレータ１００及びロボットコントローラ２００は一体化されていてもよい例えばロボットコントローラ２００にロボットシミュレータ１００の機能が組み込まれていてもよいし、ロボットシミュレータ１００にロボットコントローラ２００の機能が組み込まれていてもよい。
【００２５】
〔ロボットシミュレータ〕
続いて、ロボットシミュレータ１００の構成を詳細に説明する。図２に示すように、ロボットシミュレータ１００は、一つ又は複数のコンピュータにより構成された本体１１０と、入力装置１９１と、モニタ１９２とを有する。
【００２６】
入力装置１９１は、本体１１０に対し情報を入力するための装置である。入力装置１９１は、所望の情報を入力可能であればいかなるものであってもよく、その具体例としてはキーパッド及びマウス等が挙げられる。モニタ１９２は、本体１１０から出力された情報を表示するための装置である。モニタ１９２は、グラフィック表示が可能であればいかなるものであってもよく、その具体例としては液晶パネルなどが挙げられる。なお、入力装置１９１及びモニタ１９２は、入力機能と表示機能とを併せ持つタッチパネルとして一体化されていてもよい。また、入力装置１９１及びモニタ１９２は本体１１０に組み込まれていてもよい。
【００２７】
本体１１０は、機能的な構成（以下、「機能モジュール」という。）として、モデル記憶部１１１と、ジョブ記憶部１１２と、条件記憶部１１３と、パス記憶部１１４と、メイン画面出力部１１５と、情報取得部１２０と、情報処理部１３０と、画像データ出力部１１８とを有する。
【００２８】
モデル記憶部１１１は、ロボット１０及び当該ロボットの周辺の障害物に関するモデル情報を記憶する。例えばモデル記憶部１１１は、障害物に関するモデル情報として、ワーク３０のモデル情報を記憶する。モデル情報は、例えばポリゴンにより構成された三次元のサーフェスデータである。ロボット１０及びワーク３０のモデル情報は、三次元の設計データに基づいて生成されたものであってもよいし、三次元計測装置等による計測データに基づいて生成されてものであってもよい。
【００２９】
ジョブ記憶部１１２は、ロボット１０の動作を規定する少なくとも一つのジョブを記憶する。図３に示すように、個々のジョブは、時系列で順に並ぶ複数のラインを含む。各ラインは、先端部１６の目標位置及び姿勢を定める情報と、一つ前のラインとの間におけるパス生成の要否とを含む。順に並ぶライン間（以下、「区間」という。）には、線形補間、円弧補間又は関節角度補間等の既存の手法によるパスが予め設定されている。以下、これを「初期パス」という。
【００３０】
図２に戻り、条件記憶部１１３は、パスの生成条件を記憶する。例えば条件記憶部１１３は、パス（パスの候補）の生成回数を規制する条件（以下、「繰り返し条件」という。）を記憶する。繰り返し条件は、パスの生成回数の上限値であってもよいし、パスの生成を繰り返す時間であってもよい。
【００３１】
条件記憶部１１３は、生成されたパスの評価基準を更に記憶してもよい。パスの評価基準は、上記繰り返し条件を満たす生成回数で生成された複数のパスのうち、いずれを選択するかの基準として用いられる。パスの評価基準の具体例としては、パスに沿って先端部１６が移動する時間が最小であること、パスに沿って先端部１６が移動する際の関節Ｊ１〜Ｊ６の合計動作角度が最小であること、パスの経由点（後述）の数が最小であること、パスに沿って先端部１６が移動する際のアクチュエータ２１〜２６の消費電力が最小であること、等が挙げられる。
【００３２】
条件記憶部１１３は、ロボット１０に対する障害物の接近可能距離、すなわち障害物に対するロボット１０の接近可能距離を記憶してもよい。接近可能距離は、後述の外殻モデルの生成に用いられる。
【００３３】
条件記憶部１１３は、パスに沿って移動する際の先端部１６の姿勢条件を記憶してもよい。姿勢条件は、先端部１６の姿勢角度を一つに定める数値であってもよく、先端部１６の姿勢角度の上限値及び下限値を定める数値範囲であってもよい。
【００３４】
条件記憶部１１３は、パスに沿って先端部１６が移動する際の関節Ｊ１〜Ｊ６の可動範囲を記憶してもよい。関節Ｊ１〜Ｊ６の可動範囲は、いかなる形式で定められていてもよい。例えば関節Ｊ１〜Ｊ６の可動範囲は、関節Ｊ１〜Ｊ６の角度の数値範囲であってもよいし、ハードウェア上の制約により定まる可動範囲（以下、「構造上の可動範囲」という。）に対する比率であってもよい。
【００３５】
パス記憶部１１４は、生成されたパスを記憶する。
【００３６】
メイン画面出力部１１５は、ロボットシミュレータ１００を操作するためのメインウィンドウのデータを生成し、モニタ１９２に出力する。図４は、メインウィンドウを例示する模式図である。図４に示すように、メインウィンドウ３００は、メニューバー３１０と、ジョブフレーム３２０と、描画フレーム３３０とを含む。メニューバー３１０は、ロボットシミュレータ１００の各種機能を呼び出すためのボタンを含む。例えばメニューバー３１０は、パス生成支援ボタン３１１と、再生ボタン３１２とを含む。パス生成支援ボタン３１１は、パスの生成支援機能を呼び出すためのボタンであり、入力装置１９１による操作入力（例えばクリック又はタップ等）が可能である。再生ボタン３１２は、生成されたパスに従ったロボット１０の動画像を再生するためのボタンであり、入力装置１９１による操作入力が可能である。ジョブフレーム３２０は、パス生成支援の対象となるジョブの構成を表示する。描画フレーム３３０は、ロボット１０を示す図と、ワーク３０を示す図とを含む画像を表示する。
【００３７】
図２に戻り、情報取得部１２０は、少なくとも、ロボット１０の動作の開始位置及び終了位置を定める入力情報（以下、「第一入力情報」という。）を取得するように構成されている。「開始位置」は、動作の開始時における先端部１６の位置と、当該位置に先端部１６を配置する際のロボット１０の姿勢（すなわち関節Ｊ１〜Ｊ６の角度）とを含む。「終了位置」は、動作の終了時における先端部１６の位置と、当該位置に先端部１６を配置する際のロボット１０の姿勢とを含む。
【００３８】
情報取得部１２０は、生成されたパスの経由点（後述）の位置を変更する入力情報（以下、「第二入力情報」という。）を更に取得するように構成されていてもよい。
【００３９】
情報取得部１２０は、上記繰り返し条件を定める入力情報（以下、「第三入力情報」という。）、上記パスの評価基準を定める入力情報（以下、「第四入力情報」という。）、上記接近可能距離を定める入力情報（以下、「第五入力情報」という。）、上記姿勢条件を定める入力情報（以下、「第六入力情報」という。）、及び上記可動範囲を定める入力情報（以下、「第七入力情報」という。）の少なくとも一つを更に取得するように構成されていてもよい。
【００４０】
例えば情報取得部１２０は、より細分化された機能モジュールとして、ジョブ指定取得部１２１と、オプション入力取得部１２２と、修正入力取得部１２３とを有する。
【００４１】
ジョブ指定取得部１２１は、上記第一入力情報の一例として、ジョブ記憶部１１２に記憶されたジョブのいずれかを指定する情報（以下、「ジョブ指定情報」という。）を入力装置１９１から取得する。上述のとおり、ジョブは、時系列で順に並ぶ複数のラインを含み、各ラインは、先端部１６の目標位置及び姿勢を定める情報を含む。このため、ジョブを指定することで、ジョブの区間ごとに、ロボット１０の動作の開始位置及び終了位置が定まる。なお、第一入力情報は、ジョブ指定情報に限られない。ジョブ指定取得部１２１は、開始位置及び終了位置を直接的に指定する情報を入力装置１９１から取得してもよい。
【００４２】
オプション入力取得部１２２は、上記第三入力情報〜第七入力情報を入力装置１９１から取得し、これらの入力情報によりそれぞれ定まる条件を条件記憶部１１３に書き込む。
【００４３】
修正入力取得部１２３は、上記第二入力情報の一例として、モニタ１９２の画像上において経由点の指標（後述）を移動させる入力情報を入力装置１９１から取得する。
【００４４】
情報処理部１３０は、ロボット１０と障害物との衝突を回避しつつ、先端部１６を開始位置から終了位置まで移動させるパスを第一入力情報及びモデル情報に基づいて生成することと、障害物を示す図とパスの経由点を示す指標とを含む画像データを生成することと、を実行するように構成されている。
【００４５】
情報処理部１３０は、上記第二入力情報に基づく位置の変更後の経由点を通るように、パスを修正することと、第二入力情報に基づいて指標の位置を変更した画像データを生成することと、を更に実行するように構成されていてもよい。
【００４６】
情報処理部１３０は、パスを生成する際に、第三入力情報により定まる上記繰り返し条件を満たすまでパスの生成を繰り返すことと、生成された複数のパスから一つのパスを選択することとを実行するように構成されていてもよく、複数のパスから一つのパスを選択する際に、第四入力情報により定まる上記評価基準に従って一つのパスを選択するように構成されていてもよい。
【００４７】
情報処理部１３０は、第五入力情報に基づいて定まる上記接近可能距離を保ちつつロボット１０を覆う外殻モデルを生成することを更に実行し、パスを生成する際に、外殻モデルと障害物との衝突を回避しつつ、先端部１６を開始位置から終了位置まで移動させるパスを生成するように構成されていてもよい。
【００４８】
情報処理部１３０は、ロボット１０を覆う外殻モデルに加えて、上記接近可能距離を保ちつつ障害物を覆う外殻モデルを生成し、ロボット１０の外殻モデルと障害物の外殻モデルとの衝突を回避しつつ、先端部１６を開始位置から終了位置まで移動させるパスを生成するように構成されていてもよい。
【００４９】
情報処理部１３０は、パスを生成する際に、先端部１６の姿勢が、第六入力情報により定まる上記姿勢条件を満たすようにパスを生成するように構成されていてもよく、関節Ｊ１〜Ｊ６の動作角度が、第七入力情報により定まる可動範囲内に収まるようにパスを生成するように構成されていてもよい。
【００５０】
例えば情報処理部１３０は、より細分化された機能モジュールとして、外殻モデル生成部１３１と、開始・終了位置設定部１３２と、パス生成部１３３と、画像データ生成部１３４と、経由点修正部１３５と、パス生成可否判定部１３６と、修正パス生成部１３７と、動画像データ生成部１３８とを有する。
【００５１】
外殻モデル生成部１３１は、条件記憶部１１３に記憶された上記接近可能距離を保ちつつロボット１０を覆う外殻モデルを生成してモデル記憶部１１１に書き込む。外殻モデル生成部１３１は、上記接近可能距離を保ちつつ障害物（例えばパーツ３２，３３，３４）を覆う外殻モデルを更に生成してモデル記憶部１１１に書き込んでもよい。
【００５２】
開始・終了位置設定部１３２は、ジョブ指定取得部１２１により取得された指定に対応するジョブ（以下、「指定ジョブ」という。）の情報をジョブ記憶部１１２から取得し、当該情報に基づいて、パスの生成対象となる区間の開始位置及び終了位置を定める。
【００５３】
パス生成部１３３は、パスを生成すべき区間の開始位置及び終了位置の情報を開始・終了位置設定部１３２から取得し、モデル情報をモデル記憶部１１１から取得して、ロボット１０と障害物との衝突を回避しつつ、先端部１６を開始位置から終了位置まで移動させるパスを生成する。
【００５４】
より具体的に、パス生成部１３３は、次の条件ｉ）〜ｉｉｉ）を満たすように、少なくとも一つの経由点を経て開始位置から終了位置に至るパスを生成する。開始位置と経由点との間、経由点同士の間、及び経由点と終了位置との間は、線形補間、円弧補間又は関節角度補間等の既存の手法により補間される。
ｉ）モデル記憶部１１１に記憶されたロボット１０の外殻モデルと障害物のモデルとが衝突（干渉）しない。
ｉｉ）パスに沿って移動する際の先端部１６の姿勢が、条件記憶部１１３に記憶された上記姿勢条件を満たす。
ｉｉｉ）パスに沿って先端部１６が移動する際に、関節Ｊ１〜Ｊ６の動作角度が、条件記憶部１１３に記憶された可動範囲内に収まる。
【００５５】
パス生成部１３３は、条件記憶部１１３に記憶された上記繰り返し条件を満たすまでパスの生成を繰り返して複数のパスを得た後、条件記憶部１１３に記憶された上記評価基準に従って複数のパスから一つのパスを選択し、当該パスをジョブ記憶部１１２に記憶された指定ジョブに適用する。これにより、指定ジョブのうちパスの生成対象となっている区間における上記初期パスが、上記条件ｉ）〜ｉｉｉ）を満たすパスに改変される。
【００５６】
パスを生成した後、パス生成部１３３は、第二入力情報に基づく位置の変更後の経由点を通るように、パスを修正する。
【００５７】
画像データ生成部１３４は、モデル記憶部１１１に記憶されたモデル情報と、ジョブ記憶部１１２に記憶された改変後のジョブ（パス生成部１３３によるパスの改変後のジョブ）とに基づいて、ロボット１０を示す図と、ワーク３０を示す図と、パスの経由点を示す指標と、パスを示す線とを含む画像データを生成する。画像データは、例えばポリゴン及びベクトルにより構成された三次元画像データであってもよいし、二次元の線図データであってもよい。上記画像データを生成した後、画像データ生成部１３４は、第二入力情報に基づいて上記指標の位置を変更した画像データを生成する。
【００５８】
経由点修正部１３５は、上記指標の位置の変更に応じて三次元空間における経由点の位置を変更する。
【００５９】
パス生成可否判定部１３６は、変更後の経由点を通るパスを生成可能であるか否かを判定する。例えばパス生成可否判定部１３６は、変更後の経由点が上記条件ｉ）〜ｉｉｉ）を満たすか否かを判定する。
【００６０】
修正パス生成部１３７は、上記変更後の経由点を通るようにパスを修正し、当該パスをジョブ記憶部１１２に記憶された上記改変後のジョブに適用する。
【００６１】
動画像データ生成部１３８は、モデル記憶部１１１に記憶されたモデル情報と、ジョブ記憶部１１２に記憶された改変後のジョブとに基づいて、パスに沿って先端部１６を移動させるようにロボット１０を動作させた場合の動画像データを生成する。
【００６２】
画像データ出力部１１８は、画像データ生成部１３４により生成された画像データ又は動画像データ生成部１３８により生成された動画像データをモニタ１９２に出力する。
【００６３】
図５は、本体１１０のハードウェア構成を例示するブロック図である。図５に示すように、本体１１０は回路１５０を有し、回路１５０は、一つ又は複数のプロセッサ１５１と、記憶部１５２と、入出力ポート１５５，１５６とを有する。
【００６４】
記憶部１５２は、メモリ１５３及びストレージ１５４を含む。ストレージ１５４は、本体１１０の上記各機能モジュールを構成するためのプログラムを記録している。ストレージ１５４は、コンピュータ読み取り可能であればどのようなものであってもよい。具体例として、ハードディスク、不揮発性の半導体メモリ、磁気ディスク及び光ディスク等が挙げられる。メモリ１５３は、ストレージ１５４からロードしたプログラム及びプロセッサ１５１の演算結果等を一時的に記憶する。プロセッサ１５１は、メモリ１５３と協働してプログラムを実行することで、各機能モジュールを構成する。
【００６５】
入出力ポート１５５は、プロセッサ１５１からの指令に応じ、入力装置１９１との間で電気信号の入出力を行う。入出力ポート１５６は、プロセッサ１５１からの指令に応じ、モニタ１９２との間で電気信号の入出力を行う。
【００６６】
〔シミュレーション方法〕
続いて、シミュレーション方法の一例として、ロボットシミュレータ１００によるパスの生成支援手順を説明する。
【００６７】
（パス生成支援機能の呼び出しからパス生成までの手順）
図６に示すように、ロボットシミュレータ１００は、まずステップＳ０１を実行する。ステップＳ０１では、パス生成支援ボタン３１１に対する操作入力をメイン画面出力部１１５が待機する。
【００６８】
次に、ロボットシミュレータ１００はステップＳ０２を実行する。ステップＳ０２では、ジョブ指定取得部１２１が、ジョブ指定ウィンドウを表示するためのデータをモニタ１９２に出力する。
【００６９】
図７は、ジョブ指定ウィンドウを表示した画面を例示する模式図である。図７に示すように、ジョブ指定ウィンドウ４００は、ジョブリスト４０１と、オプションボタン４０２と、パス生成ボタン４０３とを含む。ジョブリスト４０１は、ジョブ記憶部１１２に記憶されているジョブを一覧表示する。入力装置１９１への入力により、ジョブリスト４０１に表示されたジョブのいずれかを選択することが可能である。オプションボタン４０２は、パス生成のオプション条件の入力画面を呼び出すためのボタンであり、入力装置１９１による操作入力が可能である。パス生成ボタン４０３は、ジョブリスト４０１において選択された一つのジョブについてパス生成の実行を要求するためのボタンであり、入力装置１９１による操作入力が可能である。
【００７０】
図６に戻り、ロボットシミュレータ１００は、次にステップＳ０３を実行する。ステップＳ０３では、パス生成ボタン４０３に対する操作入力の有無をジョブ指定取得部１２１が確認する。
【００７１】
ステップＳ０３において、パス生成ボタン４０３に対する操作入力は無いと判定した場合、ロボットシミュレータ１００はステップＳ０４を実行する。ステップＳ０４では、オプションボタン４０２に対する操作入力の有無をオプション入力取得部１２２が確認する。
【００７２】
ステップＳ０４において、オプションボタン４０２に対する操作入力は無いと判定した場合、ロボットシミュレータ１００は処理をステップＳ０３に戻す。以後、ロボットシミュレータ１００は、オプションボタン４０２又はパス生成ボタン４０３のいずれかに対する操作入力を待機する。
【００７３】
ステップＳ０４において、オプションボタン４０２に対する操作入力が有ると判定した場合、ロボットシミュレータ１００はステップＳ０５を実行する。ステップＳ０５では、オプション入力取得部１２２がオプション設定ウィンドウを表示する。
【００７４】
図８は、オプション設定ウィンドウを表示した画面を例示する模式図である。図８に示すように、オプション設定ウィンドウ５００は、設定メニュー５１０，５２０，５３０，５４０，５５０，５６０と、ＯＫボタン５９０とを含む。
【００７５】
設定メニュー５１０は、パスの探索終了条件（上記繰り返し条件）を設定するためメニューであり、入力ボックス５１２，５１３と、ラジオボタン５１１とを含む。入力ボックス５１２は、探索パス数（上記繰り返し回数）を入力するための部分であり、入力装置１９１による数値の入力が可能である。入力ボックス５１３は、探索時間（上記繰り返し時間）を入力するための部分であり、入力装置１９１による数値の入力が可能である。ラジオボタン５１１は、探索パス数及び探索時間のいずれを定めるかを選択するための部分であり、入力装置１９１による選択入力が可能である。設定メニュー５１０への入力情報は、上記第三入力情報の一例に相当する。
【００７６】
設定メニュー５２０は、パスの選択基準（上記評価基準）を設定するためのメニューであり、入力ボックス５２１を含む。入力ボックス５２１は、選択基準を入力するための部分であり、入力装置１９１による選択入力が可能である。例えば入力ボックス５２１は、プルダウン方式により、「サイクルタイム最小」、「関節動作角度最小」、「経由点数最小」又は「消費電力最少」のいずれかを入力し得るように構成されている。入力ボックス５２１において「サイクルタイム最小」が入力された場合には、パスに沿って先端部１６が移動する時間が最小となるパスを選択するように上記評価基準が設定される。入力ボックス５２１において「関節動作角度最小」が入力された場合には、パスに沿って先端部１６が移動する際の関節Ｊ１〜Ｊ６の合計動作角度が最小となるパスを選択するように上記評価基準が設定される。入力ボックス５２１において「経由点数最小」が入力された場合には、パスの経由点（後述）の数が最小となるパスを選択するように上記評価基準が設定される。入力ボックス５２１において「消費電力最小」が入力された場合には、パスに沿って先端部１６が移動する際のアクチュエータ２１〜２６の消費電力が最小となるパスを選択するように上記評価基準が設定される。設定メニュー５２０への入力情報は、上記第四入力情報の一例に相当する。
【００７７】
設定メニュー５３０は、生成されたパスにおける先端部１６の移動速度を設定するためのメニューであり、入力ボックス５３１を含む。入力ボックス５３１は、移動速度の設定値を入力するための部分であり、入力装置１９１による数値の入力が可能である。
【００７８】
設定メニュー５４０は、簡易化条件（上記外殻モデルの生成条件）を設定するためのメニューであり、入力ボックス５４１，５４２を含む。入力ボックス５４１は、マージン量（上記接近可能距離）を入力するための部分であり、入力装置１９１による数値の入力が可能である。入力ボックス５４２は、粒度を入力するための部分であり、入力装置１９１による数値の入力が可能である。粒度は、外殻モデルの簡易化の程度を意味する。粒度の具体例としては、外殻モデルのサーフェスの細分化の程度を示す数値が挙げられる。細分化の程度を示す数値は、ロボット１０のモデルのサーフェスに比較した比率で表されてもよい。入力ボックス５４１への入力情報は、上記第五入力情報に相当する。
【００７９】
設定メニュー５５０は、上記姿勢条件を設定するためのメニューであり、入力ボックス５５１，５５２，５５３を含む。入力ボックス５５１，５５２，５５３は、Ｘ軸まわりの傾き角、Ｙ軸まわりの傾き角、及びＺ軸まわりの傾き角をそれぞれ入力するための部分であり、入力装置１９１による数値の入力が可能である。なお、Ｘ軸、Ｙ軸、Ｚ軸は所定の座標軸である。設定メニュー５５０への入力情報は、上記第六入力情報に相当する。
【００８０】
設定メニュー５６０は、パスの探索範囲（空間的な探索範囲）を規制する条件を設定するためのメニューであり、入力ボックス５６１，５６２，５６３，５６４，５６５，５６６と、入力ボックス５７１，５７２，５７３，５７４，５７５，５７６とを含む。
【００８１】
入力ボックス５６１，５６２，５６３，５６４，５６５，５６６は、関節Ｊ１〜Ｊ６の可動範囲を定める値を入力するための部分であり、入力装置１９１による数値の入力が可能である。例えば、入力ボックス５６１〜５６６には関節Ｊ１〜Ｊ６の構造上の可動範囲に対する使用率を入力可能である。この場合、関節Ｊ１〜Ｊ６の構造上の可動範囲に上記使用率を乗算した範囲が上記可動範囲として設定される。
【００８２】
入力ボックス５７１，５７２，５７３，５７４，５７５，５７６は、先端部１６の可動領域を定める値を入力するための部分であり、入力装置１９１による数値の入力が可能である。例えば、入力ボックス５７１，５７２には、Ｘ軸座標の下限及び上限をそれぞれ入力可能であり、入力ボックス５７３，５７４には、Ｙ軸座標の下限及び上限をそれぞれ入力可能であり、入力ボックス５７５，５７６には、Ｚ軸座標の下限及び上限を入力可能であり、これらの入力値により定まる領域が先端部１６の可動領域として設定される。
【００８３】
入力ボックス５６１〜５６６への入力情報は、上記第七入力情報に相当する。入力ボックス５７１〜５７６への入力情報も、上記第七入力情報に相当する。先端部１６の可動領域を規制することによって、関節Ｊ１〜Ｊ６の可動範囲が間接的に規制されるためである。
【００８４】
ＯＫボタン５９０は、設定メニュー５１０，５２０，５３０，５４０，５５０，５６０への入力内容の登録を要求するボタンであり、入力装置１９１による操作入力が可能である。
【００８５】
図６に戻り、ロボットシミュレータ１００は、次にステップＳ０６を実行する。ステップＳ０６では、ＯＫボタン５９０に対する操作入力をオプション入力取得部１２２が待機する。
【００８６】
次に、ロボットシミュレータ１００はステップＳ０７を実行する。ステップＳ０７では、オプション入力取得部１２２が、設定メニュー５１０，５２０，５３０，５４０，５５０，５６０への入力情報を取得し、これらをパスの生成条件として条件記憶部１１３に書き込む。
【００８７】
次に、ロボットシミュレータ１００はステップＳ０８を実行する。ステップＳ０８では、オプション入力取得部１２２が、オプション設定ウィンドウ５００を非表示にする指令をモニタ１９２に出力する。
【００８８】
ステップＳ０３において、パス生成ボタン４０３に対する操作入力がなされたと判定した場合、ロボットシミュレータ１００はステップＳ０９を実行する。ステップＳ０９では、ジョブ指定取得部１２１が、ジョブリスト４０１におけるジョブの選択状況を上記ジョブ指定情報として取得する。
【００８９】
次に、ロボットシミュレータ１００はステップＳ１０を実行する。ステップＳ１０では、情報処理部１３０が、指定ジョブ（ジョブ指定情報により指定されたジョブ）の区間のうちパスの生成対象となる区間について、条件記憶部１１３に記憶された条件に従ってパスを生成する。ステップＳ１０における処理内容については、後に詳述する。以上でパスの生成支援機能の呼び出しからパス生成までの手順が完了する。
【００９０】
（パス生成の詳細手順）
続いて、ステップＳ１０における処理の詳細な手順を説明する。図９に示すように、ロボットシミュレータ１００は、まずステップＳ２１を実行する。ステップＳ２１では、外殻モデル生成部１３１が、条件記憶部１１３に記憶された上記接近可能距離を保ちつつロボット１０を覆う外殻モデルを生成してモデル記憶部１１１に書き込む。例えば条件記憶部１１３は、ロボット１０のモデルと外殻モデルとの間隔の最小値が上記接近可能距離以上となるように、上記粒度に従って外殻モデルを生成する。
【００９１】
次に、ロボットシミュレータ１００はステップＳ２２を実行する。ステップＳ２２では、開始・終了位置設定部１３２が、上記指定ジョブの情報をジョブ記憶部１１２から取得し、当該情報に基づいて、パスの生成対象となる区間の開始位置及び終了位置を定める。
【００９２】
次に、ロボットシミュレータ１００はステップＳ２３を実行する。ステップＳ２３では、パス生成部１３３が、開始位置及び終了位置の情報を開始・終了位置設定部１３２から取得し、モデル情報をモデル記憶部１１１から取得して、ロボット１０と障害物との衝突を回避しつつ、先端部１６を開始位置から終了位置まで移動させるパスを生成し、これをパスの候補としてジョブ記憶部１１２に書き込む。より具体的に、パス生成部１３３は、上記条件ｉ）〜ｉｉｉ）を満たすようにパスを生成する。例えばパス生成部１３３は、上記条件ｉ）〜ｉｉｉ）を満たす経由点を生成し、当該経由点を通るようにパスを修正することを、パス全体にわたって条件ｉ）〜ｉｉｉ）が満たされるまで繰り返す。より詳細な手法は、例えば特許第４１０３０５７号等に開示されている。
【００９３】
次に、ロボットシミュレータ１００はステップＳ２４を実行する。ステップＳ２４では、条件記憶部１１３に記憶された上記繰り返し条件が満たされたか否かをパス生成部１３３が確認する。
【００９４】
ステップＳ２４において、上記繰り返し条件を満たしていないと判定した場合、ロボットシミュレータ１００は処理をステップＳ２３に戻す。以後、上記繰り返し条件が満たされるまで、パスの候補の生成と書き込みが繰り返され、パス記憶部１１４に複数のパスの候補が蓄積される。
【００９５】
次に、ロボットシミュレータ１００はステップＳ２５を実行する。ステップＳ２５では、パス生成部１３３が、条件記憶部１１３に記憶された上記評価基準に従って、上記複数のパスの候補から一つのパスを選択し、当該パスをジョブ記憶部１１２に記憶された指定ジョブに適用する。すなわち、指定ジョブのうち、当該パスの生成対象となった区間に、当該パスの経由点を挿入する。これにより、当該区間における上記初期パスが、上記条件ｉ）〜ｉｉｉ）を満たすパスに改変される。
【００９６】
次に、ロボットシミュレータ１００はステップＳ２６を実行する。ステップＳ２６では、開始・終了位置設定部１３２が、パスの生成対象となる全区間についてパスの生成が完了したかを確認する。
【００９７】
ステップＳ２６において、パスを生成すべき区間が残っていると判定した場合、ロボットシミュレータ１００はステップＳ２７を実行する。ステップＳ２７では、開始・終了位置設定部１３２が、パスを生成すべき区間のいずれかを選択し、これに応じて開始位置及び終了位置を変更する。その後、ロボットシミュレータ１００は処理をステップＳ２３に戻す。以後、パスの生成対象となる全区間についてパスの生成が完了するまで、パスの生成と、生成後のパスに応じた指定ジョブの改変とが繰り返される。これにより、パスの生成対象となる全区間について、初期パスの改変がなされた指定ジョブを、以下においては「改変後のジョブ」という。
【００９８】
ステップＳ２６において、パスを生成すべき区間は残っていないと判定した場合、ロボットシミュレータ１００はステップＳ２８を実行する。ステップＳ２８では、画像データ生成部１３４が、モデル記憶部１１１に記憶されたモデル情報と、ジョブ記憶部１１２に記憶された改変後のジョブとに基づいて、ロボット１０を示す図と、外殻モデルを示す図と、ワーク３０を示す図と、パスの経由点を示す指標と、パスを示す線とを含む画像データを生成する。
【００９９】
次に、ロボットシミュレータ１００はステップＳ２９を実行する。ステップＳ２９では、画像データ出力部１１８が、ステップＳ２９において生成された画像データを画像データ生成部１３４から取得し、当該画像データをモニタ１９２に出力する。以上で上記ステップＳ１０が完了する。
【０１００】
図１０は、ステップＳ２９において、モニタ１９２に表示される画像を例示する模式図である。描画フレーム３３０には、ロボット１０のモデルＭ１と、ワーク３０のモデルＭ２に加え、外殻モデルＭ３が表示されている。更に、描画フレーム３３０には、開始位置を示す指標Ｐ１と、経由点を示す指標Ｐ１１〜Ｐ１５と、終了位置を示す指標Ｐ２と、経由点の指標Ｐ１１〜Ｐ１５経て開始位置の指標Ｐ１から終了位置の指標Ｐ２に至る線ＲＴ１とが表示されている。指標Ｐ１１〜Ｐ１５が表示された状態においては、入力装置１９１により、指標Ｐ１１〜Ｐ１５のいずれかを選択する入力が可能である。なお、図１０においては、理解の容易化のために描画フレーム３３０内の表示内容を二次元的に示しているが、実際には、描画フレーム３３０内に三次元画像を表示することが可能である。
【０１０１】
図１１は、比較用の図であり、上記ステップＳ２３〜Ｓ２７を行うことなく、上記初期パスを表示した画像を例示している。図１１においては、パーツ３２，３３を通り抜けて指標Ｐ１から指標Ｐ２に至る線ＲＴ２が表示されている。線ＲＴ２で示される初期パスにてロボット１０を動作させる場合に、ロボット１０とパーツ３２，３３との衝突が生じるのは明らかである。これに対し、図１０における線ＲＴ１は、パーツ３２，３３を迂回して指標Ｐ１から指標Ｐ２に至っており、線ＲＴ１で示されるパスにてロボット１０を動作させる場合、ロボット１０とパーツ３２，３３との衝突は生じない。
【０１０２】
以上のように、ワーク３０のモデルＭ２と、経由点を示す指標Ｐ１１〜Ｐ１５とを合わせて描画することにより、生成されたパスの妥当性を視覚的に確認することが可能である。また、パスを示す線ＲＴ１を合わせて表示することにより、生成されたパスの妥当性をより明確に確認することが可能である。
【０１０３】
なお、上述した手順においては、ジョブ記憶部１１２に記憶された指定ジョブを生成後のパスにより改変する例を示したが、パス生成部１３３は、指定ジョブのコピーを生成した上で、当該コピーを改変してもよい。
【０１０４】
（指標選択からパス修正までの手順）
図１２に示すように、ロボットシミュレータ１００は、まずステップＳ３１を実行する。ステップＳ３１では、いずれかの経由点の指標を選択する入力の有無を修正入力取得部１２３が確認する。
【０１０５】
ステップＳ３１において、指標を選択する入力が無いと判定した場合、ロボットシミュレータ１００はステップＳ３２を実行する。ステップＳ３２では、入力装置１９１において、パス修正を完了させる入力（以下、「完了入力」という。）がなされたか否かを修正入力取得部１２３が確認する。完了入力の具体例としては、再生ボタン３１２に対する操作入力、又はメインウィンドウ３００を閉じる入力等が挙げられる。
【０１０６】
ステップＳ３２において、完了入力は無いと判定した場合、ロボットシミュレータ１００は処理をステップＳ３１に戻す。以後、ロボットシミュレータ１００は、指標を選択する入力又は完了入力を待機する。
【０１０７】
ステップＳ３１において、指標を選択する入力が有ると判定した場合、ロボットシミュレータ１００はステップＳ３３を実行する。ステップＳ３３では、編集マークＥＭ（図１３参照）を選択された指標に付加する指令を修正入力取得部１２３が画像データ出力部１１８に出力し、この指令に応じた画像データを画像データ出力部１１８がモニタ１９２に出力する。以下、編集マークＥＭが付された指標を「アクティブ指標」という。アクティブ指標は、入力装置１９１による操作入力（例えばドラッグ入力）により移動させることが可能である。
【０１０８】
次に、ロボットシミュレータ１００はステップＳ３４を実行する。ステップＳ３４では、アクティブ指標を移動させる操作入力が開始されたか否かを修正入力取得部１２３が確認する。
【０１０９】
ステップＳ３４において、アクティブ指標を移動させる操作入力が開始されたと判定した場合、ロボットシミュレータ１００はステップＳ３５を実行する。ステップＳ３５では、情報処理部１３０が、アクティブ指標の移動に応じてパスを修正する処理を実行する。ステップＳ３５における処理内容については、後に詳述する。
【０１１０】
次に、ロボットシミュレータ１００は、ステップＳ３６を実行する。ステップＳ３６では、アクティブ指標を移動させる操作入力が完了したか否かを修正入力取得部１２３が確認する。
【０１１１】
ステップＳ３６において、アクティブ指標を移動させる操作入力は完了していないと判定した場合、ロボットシミュレータ１００は処理をステップＳ３５に戻す。以後、アクティブ指標を移動させる操作入力が完了するまで、アクティブ指標の移動に応じたパスの修正が繰り返される。
【０１１２】
ステップＳ３６において、アクティブ指標を移動させる操作入力が完了したと判定した場合、ロボットシミュレータ１００はステップＳ３７を実行する。ステップＳ３４において、アクティブ指標を移動させる操作入力が開始されていないと判定した場合、ロボットシミュレータ１００は、ステップＳ３５，Ｓ３６を実行することなくステップＳ３７を実行する。ステップＳ３７では、他の経由点の指標を選択する操作入力の有無を修正入力取得部１２３が確認する。
【０１１３】
ステップＳ３７において、他の経由点の指標を選択する操作入力が有ると判定した場合、ロボットシミュレータ１００はステップＳ３８を実行する。ステップＳ３８では、編集マークＥＭの位置を新たに選択された指標の位置に変更する指令を修正入力取得部１２３が画像データ出力部１１８に出力し、この指令に応じた画像データを画像データ出力部１１８がモニタ１９２に出力する。
【０１１４】
次に、ロボットシミュレータ１００はステップＳ３９を実行する。ステップＳ３７において、他の経由点の指標を選択する操作入力は無いと判定した場合、ロボットシミュレータ１００はステップＳ３８を実行することなくステップＳ３９を実行する。ステップＳ３９では、修正入力取得部１２３が上記完了入力の有無を確認する。
【０１１５】
ステップＳ３９において、完了入力は無いと判定した場合、ロボットシミュレータ１００は処理をステップＳ３３に戻す。以後、完了入力がなされるまでは、入力装置１９１への操作入力に応じて、アクティブ指標の移動に応じたパス修正と、アクティブ指標の変更とが繰り返される。ステップＳ３２及びステップＳ３９において完了入力が有ると判定した場合、ロボットシミュレータ１００は処理を完了する。
【０１１６】
（パス修正の詳細手順）
続いて、ステップＳ３５における処理の詳細な手順を説明する。図１４に示すように、ロボットシミュレータ１００は、まずステップＳ４１を実行する。ステップＳ４１では、修正入力取得部１２３が、アクティブ指標を移動させる入力情報を取得する。
【０１１７】
次に、ロボットシミュレータ１００はステップＳ４２を実行する。ステップＳ４２では、修正入力取得部１２３が、ステップＳ４１において取得した情報に応じてアクティブ指標の移動量を設定する。
【０１１８】
次に、ロボットシミュレータ１００はステップＳ４３を実行する。ステップＳ４３では、経由点修正部１３５が、アクティブ指標の移動量に応じて経由点の位置を変更する。
【０１１９】
次に、ロボットシミュレータ１００はステップＳ４４を実行する。ステップＳ４４では、変更後の経由点（ステップＳ４３において位置が変更された経由点）を通るパスの生成可否をパス生成可否判定部１３６が判定する。例えばパス生成可否判定部１３６は、変更後の経由点が上記条件ｉ）〜ｉｉｉ）を満たすかを判定する。
【０１２０】
ステップＳ４４において、変更後の経由点を通るパスを生成可能であると判定した場合、ロボットシミュレータ１００はステップＳ４５を実行する。ステップＳ４５では、修正パス生成部１３７が、変更後の経由点を通るようにパスを再生成し、当該パスをジョブ記憶部１１２に記憶された上記改変後のジョブに適用する。すなわち、改変後のジョブのうち、当該パスの生成対象となった区間に、当該パスの経由点を挿入する。
【０１２１】
次に、ロボットシミュレータ１００はステップＳ４６を実行する。ステップＳ４６では、ステップＳ４３において設定された移動量にてアクティブ指標の位置を変更し、これに応じて編集マークの位置も変更し、更に変更後のアクティブ指標を通るようにパスの線を変更した画像データを画像データ生成部１３４が再生成する。
【０１２２】
ステップＳ４４において、変更後の経由点を通るパスの生成が不可であると判定した場合、ロボットシミュレータ１００はステップＳ４７を実行する。ステップＳ４７では、パスの生成が不可であることを通知するための画像データ（以下、「ＮＧ画像データ」という。）を画像データ生成部１３４が生成する。ＮＧ画像データは、パスの生成が不可であることを視覚的に認識させられる限りどのような画像であってもよい。例えば画像データ生成部１３４は、パスの生成が可能である場合に対して、ロボット１０の図の色又は描画フレーム３３０の背景色等を変更した画像データをＮＧ画像データとして生成してもよい。
【０１２３】
ステップＳ４６又はステップＳ４７を実行した後、ロボットシミュレータ１００はステップＳ４８を実行する。ステップＳ４８では、画像データ出力部１１８が、ステップＳ４６又はステップＳ４７において生成された画像データを画像データ生成部１３４から取得し、当該画像データをモニタ１９２に出力する。以上で上記ステップＳ３５が完了する。
【０１２４】
図１５は、ステップＳ４８において、モニタ１９２に表示される画像を例示する模式図であり、図１３における指標Ｐ１３の位置が変更され、これに応じてパスの線ＲＴ１が変更された場合を例示している。
【０１２５】
（動画再生処理の手順）
図１６に示すように、ロボットシミュレータ１００は、まずステップＳ５１を実行する。ステップＳ５１では、動画像データ生成部１３８が再生ボタン３１２に対する操作入力を待機する。
【０１２６】
次に、ロボットシミュレータ１００はステップＳ５２を実行する。ステップＳ５２では、動画像データ生成部１３８が、ジョブの開始位置に対応する関節Ｊ１〜Ｊ６の角度をジョブ記憶部１１２から取得する。以下、動画像データ生成部１３８により取得された関節Ｊ１〜Ｊ６の角度を「シミュレーション角度」という。
【０１２７】
次に、ロボットシミュレータ１００はステップＳ５３を実行する。ステップＳ５３では、動画像データ生成部１３８が、モデル記憶部１１１に記憶されたモデル情報と、ジョブ記憶部１１２に記憶されたジョブとに基づいて、シミュレーション角度を適用したロボット１０の図と、ワーク３０の図と、パスの経由点を示す指標と、パスを示す線とを含む画像データを、モデル記憶部１１１に記憶されたモデル情報及びジョブ記憶部１１２に記憶されたジョブに基づいて生成する。
【０１２８】
次に、ロボットシミュレータ１００はステップＳ５４を実行する。ステップＳ５４では、画像データ出力部１１８が、ステップＳ５３において生成された画像データを動画像データ生成部１３８から取得し、当該画像データをモニタ１９２に出力する。
【０１２９】
次に、ロボットシミュレータ１００はステップＳ５５を実行する。ステップＳ５５では、シミュレーション角度を適用したロボット１０の先端部１６がジョブの終了位置に到達したか否かを動画像データ生成部１３８が確認する。
【０１３０】
ステップＳ５５において、先端部１６がジョブの終了位置に到達していないと判定した場合、ロボットシミュレータ１００はステップＳ５６を実行する。ステップＳ５６では、動画像データ生成部１３８が、パス上における次の位置（例えば所定時間経過後の位置）に対応する関節Ｊ１〜Ｊ６の角度をジョブ記憶部１１２から取得する。
【０１３１】
その後、ロボットシミュレータ１００は処理をステップＳ５３に戻す。以後、先端部１６がジョブの終了位置に到達するまで、パスに沿った先端部１６の位置の変更と、これに応じた関節Ｊ１〜Ｊ６のシミュレーション角度の変更と、変更後のシミュレーション角度に応じた画像データの生成及び出力とが繰り返される。これにより、パスに沿って先端部１６を移動させる場合におけるロボット１０の動作が動画像として表示される（図１７参照）。
【０１３２】
ステップＳ５５において、ロボット１０の先端部１６がジョブの終了位置に到達したと判定した場合、ロボットシミュレータ１００は動画再生処理を完了する。生成されたパスを含むジョブに従ったロボット１０の動作を動画像として表示することにより、生成されたパスの妥当性をより明確に確認することが可能である。
【０１３３】
〔本実施形態の効果〕
以上に説明したように、ロボットシミュレータ１００は、ロボット１０及び当該ロボット１０の周辺の障害物に関するモデル情報を記憶したモデル記憶部１１１と、ロボット１０の動作の開始位置及び終了位置を定める第一入力情報を取得するように構成された情報取得部１２０と、ロボット１０と障害物との衝突を回避しつつ、ロボット１０の先端部１６を開始位置から終了位置まで移動させるパスを第一入力情報及びモデル情報に基づいて生成することと、障害物を示す図とパスの経由点を示す指標とを含む画像データを生成することと、を実行するように構成された情報処理部１３０と、を備える。
【０１３４】
このロボットシミュレータ１００によれば、ロボット１０と障害物との衝突を回避しつつ、ロボット１０の先端部１６を開始位置から終了位置まで移動させるパスが自動生成される。また、障害物を示す図とパスの経由点を示す指標とを含む画像データが生成されるので、当該画像データを用い、障害物及び自動生成されたパスの関係を視覚的に示すことができる。これにより、パスの採用可否判定、及びパスの微調節等を容易に行うことが可能となる。従って、ロボット１０の動作教示の容易化に有効である。
【０１３５】
情報取得部１２０は、経由点の位置を変更する第二入力情報を更に取得するように構成され、情報処理部１３０は、第二入力情報に基づく位置の変更後の経由点を通るように、パスを再生成することと、第二入力情報に基づいて指標の位置を変更した画像データを生成することと、を更に実行するように構成されていてもよい。この場合、画像上で経由点を移動させる直感的操作によってパスを調節できる。また、経由点の位置の変更後に画像が更新されるので、調節後のパスの状態を確認しながらパスを調節できる。従って、ロボット１０の動作教示の容易化に更に有効である。
【０１３６】
情報取得部１２０は、パスの生成回数を規制する条件を定める第三入力情報を更に取得するように構成され、情報処理部１３０は、パスを生成する際に、第三入力情報により定まる条件を満たすまでパスの生成を繰り返すことと、生成された複数のパスから一つのパスを選択することとを実行するように構成されていてもよい。複数のパスを得たうえで一つのパスの選ぶことで、より品質（例えばロボットの動作効率の高さ等）の高いパスを生成可能である。また、パスの生成回数を規制する条件を設定可能とすることで、パスの品質及び生成時間のバランスをユーザの好みに応じて調節することが可能となる。従って、ロボット１０の動作教示の容易化に更に有効である。
【０１３７】
情報取得部１２０は、パスの評価基準を定める第四入力情報を更に取得するように構成され、情報処理部１３０は、複数のパスから一つのパスを選択する際に、第四入力情報により定まる評価基準に従って一つのパスを選択するように構成されていてもよい。この場合、パスの評価基準を指定可能とすることで、よりユーザの要求に合ったパスの生成が可能となる。従って、ロボット１０の動作教示の容易化に更に有効である。
【０１３８】
情報取得部１２０は、ロボット１０に対する接近可能距離を定める第五入力情報を更に取得するように構成され、情報処理部１３０は、第五入力情報に基づいて定まる接近可能距離を保ちつつロボット１０を覆う外殻モデルを生成することを更に実行し、パスを生成する際に、外殻モデルと障害物との衝突を回避しつつ、先端部１６を開始位置から終了位置まで移動させるパスを生成するように構成されていてもよい。この場合、ロボット１０の先端部１６がパスに沿って動く場合に、ロボット１０と障害物との間に少なくとも接近可能距離に相当する間隔が保たれる。このため、ロボット１０の先端部１６が実際に動く軌道と、パスとの間にある程度のずれを許容することが可能となる。また、外殻モデルの形状を単純化し、パスの生成速度を向上させることも可能となる。従って、ロボット１０の動作教示の容易化に更に有効である。
【０１３９】
情報取得部１２０は、ロボット１０の先端部１６の姿勢条件を定める第六入力情報を更に取得するように構成され、情報処理部１３０は、パスを生成する際に、先端部１６の姿勢が、第六入力情報により定まる姿勢条件を満たすようにパスを生成するように構成されていてもよい。この場合、ユーザが求める姿勢条件を満たしつつパスを生成することが可能となる。従って、ロボットの動作教示の容易化に更に有効である。
【０１４０】
情報取得部１２０は、ロボット１０の関節Ｊ１〜Ｊ６の可動範囲を定める第七入力情報を更に取得するように構成され、情報処理部１３０は、パスを生成する際に、関節Ｊ１〜Ｊ６の動作角度が、第七入力情報により定まる可動範囲内に収まるパスを生成するように構成されていてもよい。この場合、関節Ｊ１〜Ｊ６の可動範囲を、構造上の可動範囲に比較して小さく設定することで、関節角度の更なる変更余地を残した状態でパスを生成することが可能となる。このため、パスの生成後に当該パスを微調整する作業が更に容易となる。従って、ロボットの動作教示の容易化に更に有効である。
【０１４１】
以上、実施形態について説明したが、本発明は必ずしも上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変更が可能である。
【符号の説明】
【０１４２】
１…ロボットシステム、１０…ロボット、１００…ロボットシミュレータ、２００…ロボットコントローラ、Ｊ１，Ｊ２，Ｊ３，Ｊ４，Ｊ５，Ｊ６…関節、３２，３３，３４…パーツ（障害物）、１１１…モデル記憶部、１２０…情報取得部、１３０…情報処理部。
【図１】
2018134703.tif 000003
【図２】
2018134703.tif 000004
【図３】
2018134703.tif 000005
【図４】
2018134703.tif 000006
【図５】
2018134703.tif 000007
【図６】
2018134703.tif 000008
【図７】
2018134703.tif 000009
【図８】
2018134703.tif 000010
【図９】
2018134703.tif 000011
【図１０】
2018134703.tif 000012
【図１１】
2018134703.tif 000013
【図１２】
2018134703.tif 000014
【図１３】
2018134703.tif 000015
【図１４】
2018134703.tif 000016
【図１５】
2018134703.tif 000017
【図１６】
2018134703.tif 000018
【図１７】
2018134703.tif 000019