(57)【要約】【課題】従来、ワークの形状が僅かでも変更される毎に、変更後の該ワークに対する作業を行うロボットに動作の教示をし直す必要があり、このことが、製造ラインの効率低下に繋がっていた。【解決手段】装置１０は、ワークの形状を取得する形状取得部１２と、基準ワーク形状、該基準ワーク形状における基準作業位置、および該基準作業位置に対する作業の種類を含む基本動作パターンを取得する動作パターン取得部１４と、ワークの形状が基準ワーク形状と類似しているか否かを判定する類似判定部１６と、ワークの形状および基準ワーク形状に基づいて、基準作業位置に対応する、ワークにおける作業位置を決定する位置決定部１８と、基準作業位置を決定した作業位置に変更することで動作軌跡を生成する軌跡生成部２０とを備える。【選択図】図１
2018176332.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの動作軌跡を自動で生成する装置であって、
ロボットの作業対象となるワークの形状を取得する形状取得部と、
基準ワーク形状、該基準ワーク形状における基準作業位置、および該基準作業位置に対する作業の種類を含む基本動作パターンを取得する動作パターン取得部と、
前記形状取得部が取得した前記ワークの形状が、前記基本動作パターンに含まれる前記基準ワーク形状と類似しているか否かを判定する類似判定部と、
前記類似判定部が互いに類似していると判定した前記ワークの形状および前記基準ワーク形状に基づいて、前記基本動作パターンに含まれる前記基準作業位置に対応する、前記ワークにおける作業位置を決定する位置決定部と、
前記基準作業位置を、前記位置決定部が決定した前記作業位置に変更することで、前記ロボットが、前記基本動作パターンに含まれる前記作業を前記作業位置に対して実行するための動作軌跡を生成する軌跡生成部と、を備える、装置。
【請求項２】
前記ワークの形状の入力を受け付けて前記形状取得部へ送信する形状入力部、
前記ワークの形状を検出し、検出した該ワークの形状を前記形状取得部へ送信する視覚センサ、または、
前記ワークの形状が記された標識を読み取って前記形状取得部へ送信する標識読み取りセンサをさらに備える、請求項１に記載の装置。
【請求項３】
前記基本動作パターンは、複数の前記基準作業位置を含み、
前記位置決定部は、前記複数の基準作業位置に対応する、前記ワークにおける複数の前記作業位置をそれぞれ算出する、請求項１または２に記載の装置。
【請求項４】
前記位置決定部が決定した前記複数の作業位置に対して前記作業を実行する順序の入力を受け付ける順序入力部をさらに備え、
前記基本動作パターンは、前記複数の作業位置に対する前記作業の順序を規定する基準順序を含み、
前記軌跡生成部は、前記複数の基準作業位置を、前記位置決定部が決定した前記複数の作業位置に変更し、前記基準順序を、前記順序入力部が受け付けた前記順序に変更することで、前記ロボットが、前記順序入力部が受け付けた前記順序に従って前記作業を前記複数の作業位置に対して実行するための前記動作軌跡を生成する、請求項３に記載の装置。
【請求項５】
前記動作パターン取得部は、互いに異なる形状を有する複数種類の前記基準ワーク形状を各々含む複数種類の前記基本動作パターンを取得し、
前記類似判定部は、予め定められた規則に従って、前記ワークの形状が、前記複数種類の前記基準ワーク形状のいずれかに類似しているか否かを判定し、
前記軌跡生成部は、前記複数種類の基本動作パターンのうち、前記類似判定部が類似していると判定した前記基準ワーク形状を含む前記基本動作パターンに含まれる前記基準作業位置を変更することで前記動作軌跡を生成する、請求項１〜４のいずれか１項に記載の装置。
【請求項６】
前記動作パターン取得部は、互いに異なる複数種類の前記作業を各々含む複数種類の前記基本動作パターンを取得し、
前記装置は、前記作業の種類の入力を受け付ける作業入力部をさらに備え、
前記軌跡生成部は、前記複数種類の基本動作パターンのうち、前記作業入力部が受け付け前記作業の種類を含む前記基本動作パターンに含まれる前記基準作業位置を変更することで前記動作軌跡を生成する、請求項１〜４のいずれか１項に記載の装置。
【請求項７】
請求項１〜６のいずれか１項に記載の装置と、
前記装置に通信ネットワークを介して通信可能に接続されたサーバと、を備え、
前記基本動作パターンは、前記サーバに記憶される、システム。
【請求項８】
ロボットの動作軌跡を自動で生成する方法であって、
ロボットの作業対象となるワークの形状を取得することと、
基準ワーク形状、該基準ワーク形状における基準作業位置、および該基準作業位置に対する作業の種類を含む基本動作パターンを取得することと、
取得した前記ワークの形状が、前記基本動作パターンに含まれる前記基準ワーク形状と類似しているか否かを判定することと、
互いに類似していると判定した前記ワークの形状および前記基準ワーク形状に基づいて、前記基本動作パターンに含まれる前記基準作業位置に対応する、前記ワークにおける作業位置を決定することと、
前記基準作業位置を、決定した前記作業位置に変更することで、前記ロボットが、前記基本動作パターンに含まれる前記作業を前記作業位置に対して実行するための動作軌跡を生成することと、を備える、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの動作軌跡を自動で生成する装置、システム、および方法に関する。
【背景技術】
【０００２】
ロボットの動作軌跡を自動で生成する技術が知られている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−９０２３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来、ワークの形状が僅かでも変更される毎に、変更後の該ワークに対する作業を行うロボットに動作の教示をし直す必要があり、このことが、製造ラインの効率低下に繋がっていた。
【課題を解決するための手段】
【０００５】
本開示の一態様において、ロボットの動作軌跡を自動で生成する装置は、ロボットの作業対象となるワークの形状を取得する形状取得部と、基準ワーク形状、該基準ワーク形状における基準作業位置、および該基準作業位置に対する作業の種類を含む基本動作パターンを取得する動作パターン取得部と、形状取得部が取得したワークの形状が、基本動作パターンに含まれる基準ワーク形状と類似しているか否かを判定する類似判定部と、類似判定部が互いに類似していると判定したワークの形状および基準ワーク形状に基づいて、基本動作パターンに含まれる基準作業位置に対応する、ワークにおける作業位置を決定する位置決定部と、基準作業位置を、位置決定部が決定した作業位置に変更することで、ロボットが、基本動作パターンに含まれる作業を作業位置に対して実行するための動作軌跡を生成する軌跡生成部とを備える。
【０００６】
本開示の他の態様において、ロボットの動作軌跡を自動で生成する方法は、ロボットの作業対象となるワークの形状を取得することと、基準ワーク形状、該基準ワーク形状における基準作業位置、および該基準作業位置に対する作業の種類を含む基本動作パターンを取得することと、取得したワークの形状が、基本動作パターンに含まれる基準ワーク形状と類似しているか否かを判定することと、互いに類似していると判定したワークの形状および基準ワーク形状に基づいて、基本動作パターンに含まれる基準作業位置に対応する、ワークにおける作業位置を決定することと、基準作業位置を、決定した作業位置に変更することで、ロボットが、基本動作パターンに含まれる作業を作業位置に対して実行するための動作軌跡を生成することとを備える。
【発明の効果】
【０００７】
本開示の一態様によれば、ロボットでワークに作業を行うときの動作軌跡を、ロボットを再度教示することなく、基本動作パターンを利用して自動で構築できる。これにより、ロボットの再教示に掛かる負担を削減することができるので、製造ラインの効率を向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】一実施形態に係る装置のブロック図である。
【図２】一実施形態に係るロボットシステムの概略図である。
【図３】一実施形態に係る基準ワークの概略図である。
【図４】（ａ）は、図３に示す基準ワークを示し、（ｂ）は、該基準ワークに類似するワークの例を示す。
【図５】マッピング理論を説明するための図である。
【図６】図１に示す位置決定部が算出した、図４（ｂ）に示すワークにおける作業位置を示す図である。
【図７】他の実施形態に係る装置のブロック図である。
【図８】（ａ）は、他の実施形態に係る基準ワークを示し、（ｂ）は、該基準ワークに類似するワークの例を示す。
【図９】図７に示す装置の動作フローの一例を表すフローチャートである。
【図１０】さらに他の実施形態に係る装置のブロック図である。
【図１１】さらに他の実施形態に係る装置のブロック図である。
【図１２】複数種類の基本動作パターンを説明するための表を示す。
【図１３】図１１に示す装置の動作フローの一例を表すフローチャートである。
【図１４】図１３中のステップＳ２２のフローの一例を表すフローチャートである。
【図１５】図１１中の視覚センサが撮像したワークの画像の例を示す。
【図１６】座標系にプロットされたワークおよび第１種の基準ワークの画像の例を示す。
【図１７】座標系にプロットされたワークおよび第２種の基準ワークの画像の例を示す。
【図１８】座標系にプロットされたワークおよび第３種の基準ワークの画像の例を示す。
【図１９】図１１に示す位置決定部が算出した、図１５に示すワークにおける作業位置を示す図である。
【図２０】一実施形態に係るシステムのブロック図である。
【発明を実施するための形態】
【０００９】
以下、本開示の実施の形態を図面に基づいて詳細に説明する。なお、以下に説明する種々の実施形態において、同様の要素には同じ符号を付し、重複する説明を省略する。まず、図１を参照して、一実施形態に係る装置１０について説明する。
【００１０】
装置１０は、ロボットの動作軌跡を自動で生成するものであって、形状取得部１２、動作パターン取得部１４、類似判定部１６、位置決定部１８、および軌跡生成部２０を備える。装置１０は、ＣＰＵおよびメモリ等を有する１つのコンピュータから構成されてもよい。または、形状取得部１２、動作パターン取得部１４、類似判定部１６、位置決定部１８、および軌跡生成部２０の各々が、ＣＰＵまたはメモリ等を有する１つのコンピュータから構成されてもよい。
【００１１】
本実施形態においては、装置１０の外部に設けられた記憶部２２に、基本動作パターン２４が予め記憶されている。基本動作パターン２４は、基準ワーク形状、該基準ワーク形状における基準作業位置、および該基準作業位置に対する作業の種類に関する情報を含むコンピュータプログラムであって、ロボットに、該基準作業位置に対して所定の作業を実行させる。
【００１２】
以下、図２および図３を参照して、一実施形態に係るロボットシステムおよび基本動作パターンについて説明する。図２に示すロボットシステム３０は、ワークＷに対してスポット溶接を行うためのものであって、ロボット制御部３２およびロボット３４を備える。
【００１３】
ロボット制御部３２は、ＣＰＵおよびメモリ（図示せず）等を有し、ロボット３４の各構成要素を直接的または間接的に制御する。ロボット３４は、例えば垂直多関節ロボットであり、ベース４０、旋回胴４２、ロボットアーム４４、手首部４６、およびエンドエフェクタ４８を有する。ベース４０は、作業セルの床に固定されている。
【００１４】
旋回胴４２は、鉛直軸周りに回動可能となるように、ベース４０に設けられている。ロボットアーム４４は、旋回胴４２に回動可能に連結された下腕部５０と、該下腕部５０の先端に回動可能に連結された上腕部５２とを有する。手首部４６は、上腕部５２の先端に回動可能に連結され、エンドエフェクタ４８を支持している。
【００１５】
旋回胴４２、ロボットアーム４４、および手首部４６の各々には、サーボモータ（図示せず）が内蔵されている。ロボット３４に対しては、自動制御の座標系の１つとして、ロボット座標系ＣＲが設定されている。
【００１６】
ロボット制御部３２は、ロボット座標系ＣＲを基準として各サーボモータに指令を送り、旋回胴４２、ロボットアーム４４、および手首部４６を駆動する。これにより、エンドエフェクタ４８は、ロボット座標系ＣＲにおいて任意の位置および姿勢に配置される。
【００１７】
エンドエフェクタ４８は、スポット溶接ガンであって、ベース部５４、固定アーム５６、可動アーム５８、駆動部６０、固定電極チップ６２、および可動電極チップ６４を備える。
【００１８】
ベース部５４は、ロボット３４の手首部４６に連結されている。固定アーム５６は、その基端がベース部５４に固定されており、固定電極チップ６２は、固定アーム５６の先端に固定されている。
【００１９】
可動アーム５８は、固定電極チップ６２に対して接近および離反するように、ベース部５４に可動に設けられている。駆動部６０は、例えばサーボモータを有し、ロボット制御部３２からの指令に応じて、可動アーム５８を固定電極チップ６２に対して接近および離反するように移動させる。
【００２０】
固定電極チップ６２および可動電極チップ６４は、ロボット制御部３２からの指令に応じて通電する。これにより、固定電極チップ６２および可動電極チップ６４は、該固定電極チップ６２および可動電極チップ６４の間に挟持したワークＷを、スポット溶接する。
【００２１】
図３は、一実施形態に係る基準ワークＷＲ１を示している。基準ワークＷＲ１は、例えば車体であって、予め定められた基準ワーク形状を有する。この基準ワークＷＲ１には、計１２箇所の基準作業位置Ａ１〜Ａ１２が設定されている。これら基準作業位置Ａ１〜Ａ１２は、ユーザによって予め定められる。ロボット３４は、この基準作業位置Ａ１〜Ａ１２の各々に対してスポット溶接作業を行う。
【００２２】
本実施形態に係る基本動作パターン２４は、ロボット３４に、基準作業位置Ａ１〜Ａ１２の各々に対してスポット溶接を実行させる。具体的には、ロボット制御部３２は、基本動作パターン２４に従ってロボット３４をロボット座標系ＣＲにおいて制御し、エンドエフェクタ４８によって基準作業位置Ａ１〜Ａ１２の各々をスポット溶接する。
【００２３】
基本動作パターン２４は、ロボット３４に、予め定められた基準順序で、基準作業位置Ａ１〜Ａ１２の各々をスポット溶接させる。この基準順序は、例えば、作業位置Ａ１→Ａ２→Ａ３→Ａ４→Ａ５→Ａ６→Ａ７→Ａ８→Ａ９→Ａ１０→Ａ１１→Ａ１２の順序として規定され得る。
【００２４】
この基本動作パターン２４は、教示操作盤またはシミュレーション等を用いてスポット溶接作業をロボット３４に教示することによって、予め構築され、記憶部２２に記憶される。
【００２５】
基本動作パターン２４は、基準ワークＷＲ１の基準ワーク形状、ロボット座標系ＣＲにおける各基準作業位置Ａ１〜Ａ１２の座標、基準順序、および、エンドエフェクタ４８を基準順序に従って基準作業位置Ａｎから基準作業位置Ａｎ＋１（ｎ＝１〜１１）へ移動させるためのロボット３４の動作軌跡の情報等を含む。
【００２６】
ここで、基準ワークＷＲ１に対して作業を行う製造ラインにおいて、基準ワークＷＲ１から形状が僅かに変更されただけの、該基準ワークＷＲ１に類似する形状を有するワークＷ１に対して同様の作業を行いたいという要求がある。
【００２７】
図４（ｂ）に、このようなワークＷ１の一例を示す。ワークＷ１は、基準ワークＷＲ１の長さ方向の寸法を縮小したような形状を有している。図４に示す基準ワークＷＲ１およびワークＷ１の形状は、図４中の座標系Ｃ１における座標または関数として表すことができる。
【００２８】
一例として、基準ワークＷＲ１およびワークＷ１は、互いに異なる仕様に準ずるように作製されることによって、互いに僅かに異なる形状を有し得る（例えば、基準ワークＷＲ１が日本向け仕様である一方、ワークＷ１が米国向け仕様である）。
【００２９】
本実施形態に係る装置１０は、ロボット３４に、このようなワークＷ１に対して作業を行わせるための動作軌跡を、ロボット３４を教示することなく、自動で生成する。
【００３０】
以下、装置１０の機能について、図１、図３〜図６を参照して説明する。形状取得部１２は、ロボット３４の作業対象となるワークＷ１の形状に関する情報を受け付ける。一例として、形状取得部１２は、後述する形状入力部、視覚センサ、または標識読み取りセンサから、ワークＷ１の形状に関する情報を受け付ける。
【００３１】
動作パターン取得部１４は、基本動作パターン２４を取得する。本実施形態においては、動作パターン取得部１４は、記憶部２２に通信可能に接続され、該記憶部２２から基本動作パターン２４を取得する。
【００３２】
類似判定部１６は、形状取得部１２が受け付けたワークＷ１の形状に基づいて、該ワークＷ１の形状が、基準ワークＷＲ１の基準ワーク形状と類似しているか否かを判定する。一例として、類似判定部１６は、後述するように、形状取得部１２がワークＷ１の形状を受け付けたときに、該ワークＷ１の形状が基準ワークＷＲ１の基準ワーク形状に類似すると自動的に判定するように、構成される。
【００３３】
位置決定部１８は、類似判定部１６が類似していると判定したワークＷ１の形状と、基準ワークＷＲ１の基準ワーク形状とに基づいて、該基準ワーク形状における基準作業位置Ａ１〜Ａ１２にそれぞれ対応する、ワークＷ１における作業位置を求める。
【００３４】
この算出方法について、図５を参照して説明する。図５（ａ）は、一例として長方形の基準ワーク形状Ｂを示し、図５（ｂ）は、該基準ワーク形状Ｂを任意に変形させた変形形状Ｂ’を示している。図５（ａ）に示す例においては、基準ワーク形状Ｂにおける任意の位置に、点Ｃが設定されている。基準ワーク形状Ｂ、変形形状Ｂ’、および点Ｃは、図５中の座標系Ｃ２によって座標化される。
【００３５】
ここで、基準ワーク形状Ｂに対する点Ｃの位置に対応する、変形形状Ｂ’に対する位置は、図５（ｂ）中の点Ｃ’の位置となる。この点Ｃ’の位置（すなわち、座標系Ｃ２の座標）は、座標系Ｃ２における基準ワーク形状Ｂと変形形状Ｂ’の座標（または関数）が既知であれば、これら座標（または関数）の情報を公知のマッピング理論式に導入することによって、座標系Ｃ２の座標として算出することができる。
【００３６】
マッピング理論式の一例を以下の数式１に示す。
【００３７】
【数１】
2018176332.tif 000003
上記の数式１において、ｆ（ｘ（ｋ））は、変形形状Ｂ’の特徴点（例えば、頂角、エッジ等）の座標を示し、ｘ（ｋ）’は、基準ワーク形状Ｂの特徴点の座標を示す。
【００３８】
位置決定部１８は、このような算出方法を用いて、基準ワークＷＲ１の基準ワーク形状おける基準作業位置Ａ１〜Ａ１２にそれぞれ対応する、ワークＷ１における作業位置を算出する。具体的には、位置決定部１８は、予め記憶された基準ワークＷＲ１の図面データ（例えば、２ＤＣＡＤデータまたは３ＤＣＡＤデータ）から、図４中の座標系Ｃ１における基準ワークＷＲ１の基準ワーク形状の座標（または関数）を取得する。
【００３９】
また、位置決定部１８は、形状取得部１２が受け付けたワークＷ１の基準ワーク形状の情報を基に、図４中の座標系Ｃ１におけるワークＷ１の形状の座標（または関数）を取得する。そして、位置決定部１８は、基準ワークＷＲ１およびワークＷ１の形状を表す座標（または関数）をマッピング理論式に導入することよって、基準作業位置Ａ１〜Ａ１２にそれぞれ対応する、ワークＷ１における作業位置Ａ１’〜Ａ１２’を算出する。
【００４０】
このように算出された作業位置Ａ１’〜Ａ１２’を、図６に示す。これら作業位置Ａ１’〜Ａ１２’は、座標系Ｃ１の座標として表される。次いで、位置決定部１８は、算出した作業位置Ａ１’〜Ａ１２’の座標系Ｃ１における座標に、座標変換行列（例えば、ヤコビ行列）を乗算して３次元のロボット座標系ＣＲに変換し、ロボット座標系ＣＲにおける作業位置Ａ１’〜Ａ１２’の座標を算出する。
【００４１】
こうして、位置決定部１８は、基準ワークＷＲ１の基準ワーク形状における基準作業位置Ａ１〜Ａ１２にそれぞれ対応する、ワークＷ１における作業位置Ａ１’〜Ａ１２’を決定することができる。
【００４２】
軌跡生成部２０は、基本動作パターン２４に含まれる基準作業位置Ａ１〜Ａ１２の情報（具体的には、ロボット座標系ＣＲの座標）を、位置決定部１８が決定した作業位置Ａ１’〜Ａ１２’（具体的には、ロボット座標系ＣＲにおける座標）に変更する。こうして、軌跡生成部２０は、ロボット３４に作業位置Ａ１’〜Ａ１２’に対してスポット溶接作業を実行させるための動作軌跡を自動で生成する。
【００４３】
本実施形態によれば、ロボット３４でワークＷ１に作業（スポット溶接）を行うときの該ロボット３４の動作軌跡を、該ロボット３４を再度教示することなく、基本動作パターン２４を利用して自動で構築できる。この構成によれば、ロボット３４の再教示に掛かる負担を削減することができるので、製造ラインの効率を向上させることができる。
【００４４】
次に、図７を参照して、他の実施形態に係る装置７０について説明する。装置７０は、上述の装置１０と同様に、ロボット３４でワークＷ１にスポット溶接作業を行うときの該ロボット３４の動作軌跡を自動で生成する。
【００４５】
装置７０は、ＣＰＵ７２、システムメモリ７４、ワークメモリ７６、入力／出力インターフェース（Ｉ／Ｏインターフェース）７８、表示部８０、および入力部８２を備える。例えば、ＣＰＵ７２、システムメモリ７４、ワークメモリ７６、およびＩ／Ｏインターフェース７８は、１つのコンピュータ（ＰＣ、タブレット端末等）として構成されてもよい。
【００４６】
ＣＰＵ７２は、システムメモリ７４、ワークメモリ７６、およびＩ／Ｏインターフェース７８と、バス８４を介して通信可能に接続されており、これらの要素と通信しつつ、後述する各種のプロセスを実行する。
【００４７】
システムメモリ７４は、電気的に消去・記録可能な不揮発性メモリであり、例えば、ＥＥＰＲＯＭ（登録商標）等から構成される。システムメモリ７４は、ＣＰＵ７２が後述する各種プロセスを実行するのに要する定数、変数、設定値、プログラム等を、装置７０の非動作時にも失われないように記憶する。
【００４８】
本実施形態においては、システムメモリ７４は、複数種類の基本動作パターン２４および８６と、複数種類の基準ワークＷＲ１およびＷＲ２の図面データ（例えば、２ＤＣＡＤデータまたは３ＤＣＡＤデータ）と、複数種類のワークＷ１およびＷ２の図面データとを、予め記憶している。
【００４９】
ワークメモリ７６は、ＣＰＵ７２が各種プロセスを実行するのに要するデータを一時的に保管する。また、ワークメモリ７６には、システムメモリ７４に記録されている定数、変数、設定値、パラメータ、プログラム等が適宜展開される。ＣＰＵ７２は、ワークメモリ７６に展開されたデータを、各種プロセスを実行するために利用する。
【００５０】
Ｉ／Ｏインターフェース７８は、表示部８０および入力部８２と通信可能に接続され、ＣＰＵ７２からの指令の下、入力部８２および表示部８０と通信する。Ｉ／Ｏインターフェース７８は、例えばイーサネットポートまたはＵＳＢポート等から構成され、表示部８０および入力部８２と有線で通信してもよい。または、Ｉ／Ｏインターフェース７８は、例えばＷｉ−Ｆｉ等の無線ＬＡＮを介して、表示部８０および入力部８２と無線で通信してもよい。
【００５１】
表示部８０は、例えば、ＣＲＴ、液晶ディスプレイ（ＬＣＤ）、または有機ＥＬディスプレイから構成され、Ｉ／Ｏインターフェース７８から送信された画像データを受信し、ユーザが視認可能な画像として表示する。入力部８２は、例えば、押しボタン装置、キーボード、タッチパネル、またはマウスを有し、ユーザは、入力部８２を操作することによって、情報を入力できる。
【００５２】
システムメモリ７４には、第１種の基本動作パターン２４と、第２種の基本動作パターン８６が格納されている。第１種の基本動作パターン２４は、上述の実施形態と同様に、ロボット３４に、図３に示す第１種の基準ワークＷＲ１の基準作業位置Ａ１〜Ａ１２の各々に対して、予め定められた基準順序でスポット溶接させる。
【００５３】
一方、第２種の基本動作パターン８６は、ロボット３４に、図８（ａ）に示す第２種の基準ワークＷＲ２をスポット溶接させるためのコンピュータプログラムである。第２種の基準ワークＷＲ２は、例えば車体であって、予め定められた基準ワーク形状を有する。第２種の基準ワークＷＲ２には、計７箇所の基準作業位置Ｄ１〜Ｄ７が設定されている。
【００５４】
第２種の基本動作パターン８６は、ロボット３４に、基準作業位置Ｄ１〜Ｄ７の各々に対して、予め定められた基準順序でスポット溶接を実行させる。この基準順序は、例えば、作業位置Ｄ１→Ｄ２→Ｄ３→Ｄ４→Ｄ５→Ｄ６→Ｄ７の順序として、設定され得る。
【００５５】
第２種の基本動作パターン８６は、教示操作盤またはシミュレーション等を用いて作業（すなわち、スポット溶接）をロボット３４に教示することによって予め構築され、システムメモリ７４に記憶される。
【００５６】
第２種の基本動作パターン８６は、基準ワークＷＲ２の基準ワーク形状、ロボット座標系ＣＲにおける各基準作業位置Ｄ１〜Ｄ７の座標、基準順序、および、エンドエフェクタ４８を基準順序に従って基準作業位置Ｄｎから基準作業位置Ｄｎ＋１（ｎ＝１〜７）へ移動させるためのロボット３４の動作軌跡の情報等を含む。
【００５７】
第２種の基準ワークＷＲ２の基準ワーク形状に類似する形状を有するワークＷ２の例を、図８（ｂ）に示す。このワークＷ２は、第２種の基準ワークＷＲ２の長さ方向の寸法を縮小したような形状を有している。
【００５８】
一例として、第２種の基準ワークＷＲ２およびワークＷ２は、互いに異なる仕様に準ずるように作製されることによって、互いに僅かに異なる形状を有し得る（例えば、基準ワークＷＲ２が日本向け仕様である一方、ワークＷ２が米国向け仕様である）。
【００５９】
ＣＰＵ７２は、図５を参照して上述した算出方法を用いて、第２種の基準ワークＷＲ２における基準作業位置Ｄ１〜Ｄ７にそれぞれ対応する、ワークＷ２における作業位置Ｄ１’〜Ｄ７’を求める。
【００６０】
また、ＣＰＵ７２は、上述の実施形態と同様に、第１種の基準ワークＷＲ１における基準作業位置Ａ１〜Ａ１２にそれぞれ対応する作業位置Ａ１’〜Ａ１２’を求める。このように、本実施形態においては、ＣＰＵ７２は、基準作業位置Ａ１〜Ａ１２、Ｄ１〜Ｄ７に対応する作業位置Ａ１’〜Ａ１２’、Ｄ１’〜Ｄ７’を決定する位置決定部８８（図７）としての機能を担う。
【００６１】
次に、図９を参照して、装置７０の動作フローの一例について説明する。図９に示す動作フローは、ＣＰＵ７２が、ユーザから動作開始指令を受け付けたときに、開始する。図９に示す動作フローを開始したとき、ＣＰＵ７２は、ワークの形状に関する情報をユーザが入力可能とするための入力画面の画像データを生成し、表示部８０に表示させる。
【００６２】
例えば、ＣＰＵ１２は、第１種の車体の「日本仕様」（第１種の基準ワークＷＲ１に相当）、第１種の車体の「米国仕様」（ワークＷ１に相当）、第２種の車体の「日本仕様」（第２種の基準ワークＷＲ２に相当）、または、第２種の車体の「米国仕様」（ワークＷ２に相当）を選択可能な入力画面を生成する。ユーザは、入力部８２を操作して、表示部８０に表示された入力画面において、これら４つのオプションのうちの１つを選択する。
【００６３】
入力部８２は、ユーザが入力した形状入力データを、Ｉ／Ｏインターフェース７８に送信する。この形状入力データは、ユーザが選択した第１種の基準ワークＷＲ１、第２種の基準ワークＷＲ２、ワークＷ１またはＷ２に関する情報を含むものであって、ワークＷＲ１、ＷＲ２、Ｗ１、Ｗ２の形状に関する情報に相当する。
【００６４】
このように、本実施形態においては、入力部８２は、ワークＷＲ１、ＷＲ２、Ｗ１、Ｗ２の形状の入力を受け付ける形状入力部９０（図７）として機能する。
【００６５】
Ｉ／Ｏインターフェース７８は、入力部８２から形状入力データを受信し、ＣＰＵ７２は、受信した形状入力データをワークメモリ７６に記憶する。このように、本実施形態においては、Ｉ／Ｏインターフェース７８は、ワークＷＲ１、Ｗ１の形状に関する情報を受け付ける形状取得部９２（図７）として機能する。
【００６６】
ステップＳ１において、ＣＰＵ７２は、ワークＷＲ１、ＷＲ２、Ｗ１、Ｗ２の形状に関する情報の入力を受け付けたか否かを判定する。具体的には、ＣＰＵ７２は、Ｉ／Ｏインターフェース７８が形状入力データを受け付けたか否かを判定する。
【００６７】
ＣＰＵ７２は、形状入力データを受け付けた（すなわち、ＹＥＳ）と判定した場合、ステップＳ２へ進む。一方、ＣＰＵ７２は、形状入力データを受け付けていない（すなわち、ＮＯ）と判定した場合、ステップＳ１２へ進む。
【００６８】
ステップＳ２において、ＣＰＵ７２は、Ｉ／Ｏインターフェース７８が受け付けた形状入力データが、基準ワークＷＲ１またはＷＲ２（すなわち、「日本仕様」）の選択を表すものであるか否かを判定する。ここで、システムメモリ７４に記憶されている基本動作パターン２４および８６は、それぞれ、基準ワークＷＲ１およびＷＲ２と関連付けられて記憶されている。
【００６９】
ＣＰＵ７２は、基本動作パターン２４および８６をシステムメモリ７４から読み出して、基本動作パターン２４および８６を取得する。このように、ＣＰＵ７２は、基本動作パターン２４および８６を取得する動作パターン取得部９４（図７）として機能する。
【００７０】
ＣＰＵ７２は、Ｉ／Ｏインターフェース７８が受け付けた形状入力データと、取得した基本動作パターン２４および８６とを照らし合わせることによって、該形状入力データが基準ワークＷＲ１またはＷＲ２の選択を表すものであるか否かを判定できる。
【００７１】
ＣＰＵ７２は、Ｉ／Ｏインターフェース７８が受け付けた形状入力データが、基準ワークＷＲ１またはＷＲ２の選択を表すものである（すなわち、ＹＥＳ）と判定した場合、ステップＳ９へ進む。
【００７２】
一方、ＣＰＵ７２は、Ｉ／Ｏインターフェース７８が受け付けた形状入力データが、ワークＷ１またはＷ２（すなわち、「米国仕様」）の選択を表すものである（すなわち、ＮＯ）と判定した場合、ステップＳ３へ進む。
【００７３】
ステップＳ３において、ＣＰＵ７２は、ワークＷ１、Ｗ２の形状が基準ワークＷＲ１、ＷＲ２の基準ワーク形状に類似するものであると判定する。具体的には、ワークＷ１の形状が第１種の基準ワークＷＲ１の基準ワーク形状に類似するものであることを定めるために、システムメモリにおいて、ワークＷ１の情報（図面データ）は、第１種の基準ワークＷＲ１の情報に関連付けられて記憶されている。
【００７４】
同様に、ワークＷ２の形状が第２種の基準ワークＷＲ２の基準ワーク形状に類似するものであることを定めるために、システムメモリにおいて、ワークＷ２の情報は、第２種の基準ワークＷＲ２の情報に関連付けられて記憶されている。
【００７５】
仮に、ＣＰＵ７２が、Ｉ／Ｏインターフェース７８を通してワークＷ１の形状入力データを受け付けてステップＳ２でＮＯと判定したとする。この場合、ＣＰＵ７２は、このステップＳ３において、入力を受け付けたワークＷ１が、該ワークＷ１の情報に関連付けられている第１種の基準ワークＷＲ１に類似するものであると自動的に判定し、システムメモリ７４から、ワークＷ１と第１種の基準ワークＷＲ１の図面データを読み出す。
【００７６】
一方、仮に、ＣＰＵ７２が、Ｉ／Ｏインターフェース７８を通してワークＷ２の形状入力データを受け付けてステップＳ２でＮＯと判定したとする。この場合、ＣＰＵ７２は、このステップＳ３において、入力を受け付けたワークＷ２が第２種の基準ワークＷＲ２に類似するものであると自動的に判定し、システムメモリ７４から、ワークＷ２と第２種の基準ワークＷＲ２の図面データを読み出す。
【００７７】
このように、本実施形態においては、ＣＰＵ７２は、形状取得部９２が取得したワークＷ１、Ｗ２の形状が、動作パターン取得部９４が取得した基本動作パターン２４、８６に含まれる基準ワークＷＲ１、ＷＲ２の基準ワーク形状に類似するものであるかを判定する類似判定部９６（図７）としての機能を担う。
【００７８】
ここで、ＣＰＵ７２は、予め定められた規則に従って、入力を受け付けたワークＷ１またはＷ２が基準ワークＷＲ１またはＷＲ２に類似していると判定している。本実施形態に係る予め定められた規則とは、入力を受け付けたワークＷ１またはＷ２が、その情報に関連付けられている基準ワークＷＲ１またはＷＲ２に類似しているものと判定するという規則である。
【００７９】
ステップＳ４において、ＣＰＵ７２は、ワークＷ１、Ｗ２における作業位置Ａ１’〜Ａ１２’、Ｄ１’〜Ｄ７’を決定する。具体的には、ＣＰＵ７２は、位置決定部８８として機能して、ステップＳ３で読み出したワークＷ１またはＷ２および基準ワークＷＲ２またはＷＲ２の図面データと、上述した算出方法とを用いて、図６に示す作業位置Ａ１’〜Ａ１２’または図８（ｂ）に示す作業位置Ｄ１’〜Ｄ７’を決定する。
【００８０】
ステップＳ５において、ＣＰＵ７２は、ステップＳ４で決定した作業位置作Ａ１’〜Ａ１２’またはＤ１’〜Ｄ７’の情報を表示する。具体的には、ＣＰＵ７２は、ステップＳ４で決定した作業位置Ａ１’〜Ａ１２’またはＤ１’〜Ｄ７’が示されている、図６または図８（ｂ）の画像データを生成し、表示部８０に表示する。
【００８１】
このとき表示部８０に表示される画像には、基準順序（例えば、Ｄ１→Ｄ２→Ｄ３→Ｄ４→Ｄ５→Ｄ６→Ｄ７の順序）の情報と、該基準順序の変更を入力するための順序入力画面とが、併せて示される。ユーザは、表示部８０に表示される順序入力画面において、入力部８２を操作して、基準順序の変更を入力することができる。
【００８２】
例えば、表示部８０に、図８（ｂ）に示すワークＷ２とともに順序入力画像が表示された場合、ユーザは、入力部８２を操作して、ワークＷ２をスポット溶接する順序を、基準順序：Ｄ１→Ｄ２→Ｄ３→Ｄ４→Ｄ５→Ｄ６→Ｄ７から、任意の順序（例えば、Ｄ７→Ｄ１→Ｄ６→Ｄ２→Ｄ３→Ｄ５→Ｄ４）に変更できる。
【００８３】
このように、本実施形態においては、入力部８２は、ロボット３４に作業（スポット溶接）を実行する順序の入力を受け付ける順序入力部９８（図７）として機能する。入力部８２は、ユーザが入力した順序入力データを、Ｉ／Ｏインターフェース７８に送信する。Ｉ／Ｏインターフェース７８は、入力部８２から順序入力データを受信し、ＣＰＵ７２は、受信した順序入力データをワークメモリ７６に記憶する。
【００８４】
ステップＳ６において、ＣＰＵ７２は、作業を実行する順序の入力を受け付けたか否かを判定する。具体的には、ＣＰＵ７２は、Ｉ／Ｏインターフェース７８が入力部８２から順序入力データを受け付けたか否かを判定する。
【００８５】
ＣＰＵ７２は、Ｉ／Ｏインターフェース７８が順序入力データを受け付けた（すなわち、ＹＥＳ）と判定した場合、ステップＳ７へ進む。一方、ＣＰＵ７２は、Ｉ／Ｏインターフェース７８が順序入力データを受け付けていない（すなわち、ＮＯ）と判定した場合、ステップＳ８へ進む。
【００８６】
ステップＳ７において、ＣＰＵ７２は、ロボット３４が基準作業位置（Ａ１’〜Ａ１２’またはＤ１’〜Ｄ７’）に対して作業(スポット溶接）を実行する順序を、ユーザから受け付けた順序に決定し、ワークメモリ７６に記憶する。
【００８７】
ステップＳ８において、ＣＰＵ７２は、動作軌跡を生成する。具体的には、ＣＰＵ７２は、基本動作パターン２４または８６に含まれる基準作業位置Ａ１〜Ａ１２またはＤ１〜Ｄ７の情報を、ステップＳ４で決定した作業位置Ａ１’〜Ａ１２’またはＤ１’〜Ｄ７’に変更する。
【００８８】
また、ステップＳ７の実行後にこのステップＳ８を実行する場合は、ＣＰＵ７２は、基本動作パターン２４または８６に含まれる基準順序（例えば、Ｄ１→Ｄ２→Ｄ３→Ｄ４→Ｄ５→Ｄ６→Ｄ７）を、ステップＳ７で決定した順序（例えば、Ｄ７→Ｄ１→Ｄ６→Ｄ２→Ｄ３→Ｄ５→Ｄ４）に変更する。
【００８９】
一方、ステップＳ６でＮＯと判定した後にこのステップＳ８を実行する場合は、ＣＰＵ７２は、基本動作パターン２４または８６に含まれる基準順序の設定を維持する。
【００９０】
こうして、ＣＰＵ７２は、ロボット３４に、作業位置Ａ１’〜Ａ１２’またはＤ１’〜Ｄ７’に対して、ユーザが指定した順序または基準順序で作業（スポット溶接）を実行させるための動作軌跡を自動で生成する。
【００９１】
例えば、ユーザが、第２種の車体の「米国仕様」（ワークＷ２）を選択し、且つ、作業の順序を、Ｄ７→Ｄ１→Ｄ６→Ｄ２→Ｄ３→Ｄ５→Ｄ４に設定した場合、ＣＰＵ７２は、このステップＳ８において、ロボット３４に、ワークＷ１の作業位置Ｄ１’〜Ｄ７’に対して、Ｄ７’→Ｄ１’→Ｄ６’→Ｄ２’→Ｄ３’→Ｄ５’→Ｄ４’の順序でスポット溶接を実行させるときの該ロボット３４の動作軌跡を生成する。
【００９２】
このように、本実施形態においては、ＣＰＵ７２は、ロボット３４に作業位置Ａ１’〜Ａ１２’、Ｄ１’〜Ｄ７’に対して作業を実行させるための動作軌跡を生成する軌跡生成部９９（図７）としての機能を担う。
【００９３】
ステップＳ９において、ＣＰＵ７２は、動作軌跡を表示する。ステップＳ８の実行後にこのステップＳ９を実行する場合は、ＣＰＵ７２は、ステップＳ８で生成した動作軌跡を表す画像データを生成し、表示部８０に表示する。
【００９４】
一方、ステップＳ２でＹＥＳと判定した後にこのステップＳ８を実行する場合は、ＣＰＵ７２は、ステップＳ１でユーザから受け付けた種類の基準ワークＷＲ１またはＷＲ２に対応する基本動作パターン２４または８６をシステムメモリ７４から読み出す。そして、ＣＰＵ７２は、読み出した基本動作パターン２４または８６を表す画像データを生成し、表示部８０に表示する。
【００９５】
このとき表示部８０に表示される画像には、承認ボタンおよび非承認ボタンの画像が併せて示される。ユーザは、画像中の承認ボタンおよび非承認ボタンをクリックすることによって、表示部８０に表示された動作軌跡を承認するか、または非承認とするかを、選択できる。
【００９６】
ステップＳ１０において、ＣＰＵ７２は、ユーザが動作軌跡を承認したか否かを判定する。具体的には、ＣＰＵ７２は、ステップＳ９で表示部８０に表示された承認ボタンをクリックした入力を受け付けたか否かを判定する。
【００９７】
承認ボタンのクリック入力を受け付けた（すなわち、ＹＥＳ）と判定した場合、ＣＰＵ７２は、ステップＳ１１へ進む。一方、非承認ボタンのクリック入力を受け付けた（すなわち、ＮＯ）と判定した場合、ＣＰＵ７２は、図９のフローの開始時と同様に、ワークの形状に関する情報を入力するための入力画面を表示部８０に表示させ、ステップＳ１２へ進む。
【００９８】
ステップＳ１１において、ＣＰＵ７２は、ステップＳ９で表示している動作軌跡を、実際の製造ラインにおいてロボット３４でワークに作業を行うために用いる実用動作軌跡として、システムメモリ７４に記憶する。そして、ＣＰＵ７２は、図９に示すフローを終了する。
【００９９】
一方、ステップＳ１またはＳ１０でＮＯと判定した場合、ステップＳ１２において、ＣＰＵ７２は、ユーザから動作終了指令を受け付けたか否かを判定する。ＣＰＵ７２は、動作終了指令を受け付けた（すなわち、ＹＥＳ）と判定した場合、図９に示すフローを終了する。一方、ＣＰＵ７２は、動作終了指令を受け付けていない（すなわち、ＮＯ）と判定した場合、ステップＳ１へ戻る。
【０１００】
このように、本実施形態によれば、ロボット３４でワークＷ１またはＷ２にスポット溶接を行うときの該ロボット３４の動作軌跡を、ロボット３４を再度教示することなく、基本動作パターン２４または８６を利用して自動で構築できる。これにより、ロボット３４の再教示に掛かる負担を削減することができるので、製造ラインの効率を向上させることができる。
【０１０１】
また、本実施形態においては、装置７０は、形状入力部９０を備えている。これにより、ユーザは、形状入力部９０を通して、作業対象となるワークの形状に関する情報を容易に入力できる。
【０１０２】
また、本実施形態においては、装置７０は、順序入力部９８を備え、ＣＰＵ７２は、ユーザから指定された順序に従って作業を実行させる動作軌跡を生成している。この構成によれば、ユーザは、ロボット３４に任意の順序で作業を実行させるときの動作軌跡を、ロボット３４の再教示を要することなく、自動で構築できる。したがって、製造ラインの効率を、さらに有利に向上させることができる。
【０１０３】
なお、本実施形態においては、２種類の基準ワークＷＲ１およびＷＲ２の情報と、該基準ワークＷＲ１およびＷＲ２に対応する、２種類の基本動作パターン２４および８６がシステムメモリ７４に記憶されている場合について述べた。
【０１０４】
しかしながら、これに限らず、ｎ種類（ｎは、３以上の整数）の基準ワークＷＲ１〜ＷＲｎの情報と、該基準ワークＷＲ１〜ＷＲｎにそれぞれ対応する、ｎ種類の基本動作パターンがシステムメモリ７４に予め記憶されてもよい。
【０１０５】
また、基準ワークＷＲ１〜ＷＲｎの各々に類似するものとして、複数のワークからなるワーク群の情報が、該基準ワークＷＲ１〜ＷＲｎの各々に関連付けられてシステムメモリ７４に記憶されてもよい。
【０１０６】
例えば、基準ワークＷＲ１に類似するものとして、ワークＷ１、Ｗ１−２、Ｗ１−３，・・・Ｗ１−ｍの計ｍ個（ｍは、２以上の整数）のワークからなるワーク群が、基準ワークＷＲ１に類似するものとして、該基準ワークＷＲ１に関連付けられて記憶されてもよい。
【０１０７】
この場合、図９のフローの開始時に、ＣＰＵ１２は、基準ワークＷＲ１〜ＷＲｎと、該基準ワークＷＲ１〜ＷＲｎの各々に関連付けられた複数のワーク群の中から、ユーザが所望のワークを選択可能する入力画面の画像データを生成し、表示部８０に表示させる。そして、ＣＰＵ１２は、ユーザからの形状入力データをトリガーとして、上述したようにステップＳ１〜Ｓ１２のフローを実行する。
【０１０８】
次に、図１０を参照して、さらに他の実施形態に係る装置１００について説明する。装置１００は、上述の装置７０と以下の構成において相違する。すなわち、装置１００は、形状入力部９０の代わりに、標識読み取りセンサ１０２を備える。
【０１０９】
標識読み取りセンサ１０２は、Ｉ／Ｏインターフェース７８に通信可能に接続される。標識読み取りセンサ１０２は、例えば、バーコードリーダまたはＱＲリーダであって、所定の標識（例えば、バーコードまたはＱＲコード）を読み取り可能である。
【０１１０】
本実施形態においては、この標識は、製造ラインで流すワークの表面に設けられる。この場合において、標識は、ワークの表面に直接刻印されてもよいし、ワークとは別の部材（例えば、シール）として設けて、ワークの表面に貼着してもよい。
【０１１１】
一例として、標識読み取りセンサ１０２は、ユーザが携帯可能な手持ち式装置であってもよい。この場合、ユーザは、製造ラインで流れてくるワークに設けられた標識を、手持ち式の標識読み取りセンサ１０２によって手動で読み取る。
【０１１２】
他の例として、標識読み取りセンサ１０２は、製造ライン上の所定位置に固定されてもよい。この場合、標識読み取りセンサ１０２は、製造ライン上で流れてくるワークに設けられた標識を自動で読み取る。
【０１１３】
本実施形態においては、標識には、作業を行うべきワークの形状に関する情報が記されており、標識読み取りセンサ１０２は、該標識を読み取って、該標識に含まれているワークの形状に関する情報を、Ｉ／Ｏインターフェース７８に送信する。
【０１１４】
次に、図９を参照して、装置１００の動作フローの一例について説明する。装置１００のＣＰＵ７２は、上述の装置７０と同様に、図９に示すフローを実行する。ここで、本実施形態においては、ワークＷＲ１、ＷＲ２、Ｗ１、およびＷ２の各々には、自らの情報を記す標識が設けられている。
【０１１５】
標識読み取りセンサ１０２は、製造ライン上で流れてくるワークＷＲ１、ＷＲ２、Ｗ１、またはＷ２に設けられた標識を読み取り、該標識に記されている標識情報を取得する。この標識情報は、ワークＷＲ１、ＷＲ２、Ｗ１、Ｗ２の形状の種類を特定する情報を含むものであって、ワークＷＲ１、ＷＲ２、Ｗ１、Ｗ２の形状に関する情報に相当する。
【０１１６】
標識読み取りセンサ１０２は、取得した標識情報をＩ／Ｏインターフェース７８に送信する。Ｉ／Ｏインターフェース７８は、形状取得部９２として機能して、標識読み取りセンサ１０２から標識情報を受信し、ＣＰＵ７２は、受信した標識情報をワークメモリ７６に記憶する。
【０１１７】
ステップＳ１において、ＣＰＵ７２は、ワークＷＲ１、ＷＲ２、Ｗ１、Ｗ２の形状に関する情報の入力を受け付けたか否かを判定する。具体的には、ＣＰＵ７２は、Ｉ／Ｏインターフェース７８が標識読み取りセンサ１０２から標識情報を受け付けたか否かを判定する。
【０１１８】
ＣＰＵ７２は、標識情報を受け付けた（すなわち、ＹＥＳ）と判定した場合、ステップＳ２へ進む。一方、ＣＰＵ７２は、標識情報を受け付けていない（すなわち、ＮＯ）と判定した場合、ステップＳ１２へ進む。
【０１１９】
ステップＳ２において、ＣＰＵ７２は、Ｉ／Ｏインターフェース７８が受け付けた標識情報が、基準ワークＷＲ１またはＷＲ２を特定するものであるか否かを判定する。ＣＰＵ７２は、受け付けた標識情報が、基準ワークＷＲ１またはＷＲ２を特定するものである（すなわち、ＹＥＳ）と判定した場合、ステップＳ９へ進む。
【０１２０】
一方、ＣＰＵ７２は、Ｉ／Ｏインターフェース７８が受け付けた標識情報が、ワークＷ１またはＷ２を特定するものである（すなわち、ＮＯ）と判定した場合、ステップＳ３へ進む。ステップＳ２の後、ＣＰＵ７２は、上述の装置７０と同様に、ステップＳ３〜１２を順次実行する。
【０１２１】
本実施形態においては、装置１００は、標識読み取りセンサ１０２を備えている。これにより、製造ライン上を流れるワークＷＲ１、ＷＲ２、Ｗ１、Ｗ２の形状を容易に特定することができる。
【０１２２】
次に、図１１を参照して、さらに他の実施形態に係る装置１１０について説明する。装置１１０は、上述の装置１００と、以下の構成において相違する。すなわち、装置１１０は、視覚センサ１１２および作業入力部１１６を備える。
【０１２３】
視覚センサ１１２は、例えば３次元視覚センサであって、フォーカスレンズ等の光学系と、ＣＣＤセンサまたはＣＭＯＳセンサ等の撮像センサとを有する。視覚センサ１１２は、製造ライン上で流れてくるワークを撮像可能な位置に固定され、Ｉ／Ｏインターフェース７８に通信可能に接続される。視覚センサ１１２は、制御部７２からの指令に応じて、製造ライン上のワークを撮像し、撮像した画像をＩ／Ｏインターフェース７８へ送信する。
【０１２４】
図１２は、本実施形態においてシステムメモリ７４に予め格納される計１２種類の基本動作パターン１３０、１３２、１３４、１３６、１３８、１４０、１４２、１４４、１４６、１４８、１５０、および１５２を説明するための表を示す。
【０１２５】
図１２中の「作業」の「把持」の列に示されている基本動作パターン１３０、１３６、１４２、および１４８は、それぞれ、四角形の基準ワーク形状を有する基準ワークＷＲ３、丸形の基準ワーク形状を有する基準ワークＷＲ４、三角形の基準ワーク形状を有する基準ワークＷＲ５、および線状の基準ワーク形状を有する基準ワークＷＲ６に設定された複数の基準作業位置Ｅｎ（ｎ＝１、２）をロボットに把持させるためのコンピュータプログラムである。
【０１２６】
例えば、図１２中の基本動作パターン１３６は、丸形の基準ワークＷＲ４に設定された２箇所の基準作業位置Ｅ１およびＥ２を、ロボットに把持させる。基準作業位置Ｅｎを把持する作業を行うときは、図２に示すロボット３４のエンドエフェクタとして、エンドエフェクタ４８の代わりに、物品を把持可能なロボットハンド（図示せず）が装着される。
【０１２７】
また、図１２中の「作業」の「スポット溶接」の列に示されている基本動作パターン１３２、１３８、１４４、および１５０は、それぞれ、４種類の基準ワークＷＲ３、ＷＲ４、ＷＲ５およびＷＲ６の各々に設定された複数の基準作業位置Ｆｎ（ｎ＝１〜４）に対して、Ｆｎ→Ｆｎ＋１の基準順序で、ロボット３４にスポット溶接させるためのコンピュータプログラムである。
【０１２８】
例えば、図１２中の基本動作パターン１３２は、四角形の基準ワークＷＲ３に設定された４箇所の基準作業位置Ｆ１〜Ｆ４に対して、Ｆ１→Ｆ２→Ｆ３→Ｆ４の基準順序で、ロボット３４にスポット溶接させる。
【０１２９】
また、図１２中の「作業」の「アーク溶接」の列に示されている基本動作パターン１３４、１４０、１４６、および１５２は、それぞれ、４種類の基準ワークＷＲ３、ＷＲ４、ＷＲ５およびＷＲ６の各々に設定された複数の基準作業位置Ｇｎ（ｎ＝１〜５）に対して、Ｇｎ→Ｇｎ＋１の基準順序で、ロボット３４にアーク溶接させるためのコンピュータプログラムである。
【０１３０】
例えば、図１２中の基本動作パターン１４６は、三角形の基準ワークＷＲ５に設定された４箇所の基準作業位置Ｇ１〜Ｇ４に対して、Ｇ１→Ｇ２→Ｇ３→Ｇ４の基準順序で、ロボットにアーク溶接させる。アーク溶接作業を行うときは、図２に示すロボット３４には、エンドエフェクタ４８の代わりに、アーク溶接用のエンドエフェクタ（図示せず）が装着される。
【０１３１】
このように、１２種類の基本動作パターン１３０〜１５２は、それぞれ、４種類の基準ワークＷＲ３、ＷＲ４、ＷＲ５およびＷＲ６の各々に対して、３種類の作業（把持、スポット溶接、アーク溶接）を実行させる。
【０１３２】
１２種類の基本動作パターン１３０〜１５２は、それぞれ、基準ワークＷＲ３、ＷＲ４、ＷＲ５、ＷＲ６の基準ワーク形状、基準作業位置Ｆｎ、Ｇｎ、Ｅｎ、および、該基準作業位置に対する作業の種類（把持、スポット溶接、アーク溶接）に関する情報を含む。
【０１３３】
システムメモリ７４は、１２種類の基本動作パターン１３０〜１５２と、４種類の基準ワークＷＲ３、ＷＲ４、ＷＲ５およびＷＲ６の図面データを予め格納する。ＣＰＵ７２は、動作パターン取得部９４として機能して、システムメモリ７４から基本動作パターン１３０〜１５２を読み出して取得する。
【０１３４】
次に、図１３を参照して、装置１１０の動作フローの一例について説明する。なお、図１３に示すフローにおいて、図９に示すフローと同様のプロセスには同じステップ番号を付し、詳細な説明を省略する。
【０１３５】
ステップＳ２１において、視覚センサ１１２は、ワークの形状を検出する。具体的には、制御部７２は、視覚センサ１１２に指令を送り、視覚センサ１１２によって製造ライン上のワークを撮像する。
【０１３６】
視覚センサ１１２が撮像したワークＷ３の画像の例を、図１５に示す。図１５に示すように、視覚センサ１１２によって撮像されたワークＷ３の形状（エッジ等の特徴点）は、視覚センサ１１２に対して設定されたセンサ座標系Ｃｓにおいて、座標化され得る。
【０１３７】
こうして、視覚センサ１１２は、ワークＷ３の形状を検出し、取得した画像データをＩ／Ｏインターフェース７８へ送信する。この画像データは、ワークＷ３の形状に関する情報に相当する。
【０１３８】
Ｉ／Ｏインターフェース７８は、視覚センサ１１２から画像データを受信し、ＣＰＵ７２は、受信した画像データをワークメモリ７６に記憶する。このように、本実施形態においては、Ｉ／Ｏインターフェース７８は、ワークＷ３の形状に関する情報を受け付ける形状取得部１１４（図１１）として機能する。
【０１３９】
ステップＳ２２において、ＣＰＵ７２は、ステップＳ２１で検出したワークＷ３と、基準ワークＷＲ３、ＷＲ４、ＷＲ５、ＷＲ６との類似性を判定する。このステップＳ２２において、図１４を参照して説明する。
【０１４０】
ステップＳ３１において、ＣＰＵ７２は、ステップＳ２１で検出したワークＷ３と、システムメモリ７４に記憶された複数種類の基準ワークＷＲ３、ＷＲ４、ＷＲ５、ＷＲ６のうちの第１種の基準ワークとの相違度δ１を算出する。この相違度δは、以下の数式２を用いて算出できる。
【０１４１】
【数２】
2018176332.tif 000004
この数式２は、上記の数式１中の項Ｅに相当する。この数式２によって求められる相違度δとは、２つの形状の相違の度合を表すパラメータであって、その値が小さい程、２つの形状が類似していることを意味する。
【０１４２】
ここで、第１種の基準ワークとして、図１２に示す四角形の基準ワークＷＲ３が設定されたとする。この場合、ＣＰＵ７２は、ステップＳ２１で取得したワークＷ３の画像データを基に、センサ座標系ＣＳで座標化されたワークＷ３の形状（特徴点）を、図１６に示す座標系Ｃ３にプロットする。
【０１４３】
これとともに、ＣＰＵ７２は、システムメモリ７４に記憶された基準ワークＷＲ３の図面データを基に、該基準ワークＷＲ３の形状を、ワークＷ３に重ねるように、座標系Ｃ３にプロットする。
【０１４４】
そして、数式２中のｆ（ｘ（ｋ））に、ワークＷ３の特徴点の座標を代入し、ｘ（ｋ）’に基準ワークＷＲ３の特徴点の座標を代入することで、数式２から、ワークＷ３と基準ワークＷＲ３との相違度δ１を算出できる。図１６に示す例においては、相違度δ１は、δ１≒６．２×１０−４となる。
【０１４５】
ステップＳ３２において、ＣＰＵ７２は、ステップＳ３１で算出した相違度δ１が閾値α以下であるか否かを判定する。この閾値αは、ユーザによって予め定められ、システムメモリ７４に記憶される。
【０１４６】
ＣＰＵ７２は、相違度δ１が閾値α以下である（すなわち、ＹＥＳ）と判定した場合、ステップＳ３３へ進む。一方、ＣＰＵ７２は、相違度δ１が閾値αよりも大きい（すなわち、ＮＯ）と判定した場合、ステップＳ３４へ進む。
【０１４７】
例えば、この閾値αは、α＝４．５×１０−４に設定される。この場合において、ステップＳ３１でワークＷ３と基準ワークＷＲ３との相違度δ１（≒６．２×１０−４）を算出したとすると、δ１＞αであるので、ＣＰＵ７２は、ＮＯと判定し、ステップＳ３４へ進む。
【０１４８】
ステップＳ３４において、ＣＰＵ７２は、ステップＳ２１で検出したワークＷ３と、システムメモリ７４に記憶された複数種類の基準ワークＷＲ３、ＷＲ４、ＷＲ５、ＷＲ６のうちの第２種の基準ワークとの相違度δ２を算出する。
【０１４９】
例えば、第２種の基準ワークとして、図１２に示す丸形の基準ワークＷＲ４が設定されたとする。この場合、ＣＰＵ７２は、図１７に示すように、ステップＳ２１で取得したワークＷ３の形状と基準ワークＷＲ４の形状とを、座標系Ｃ３にプロットする。そして、ＣＰＵ７２は、数式２を用いて、ワークＷ３と基準ワークＷＲ４との相違度δ２を算出する。図１７に示す例においては、相違度δ２は、δ２≒６．７×１０−４となる。
【０１５０】
ステップＳ３５において、ＣＰＵ７２は、ステップＳ３４で算出した相違度δ２が閾値α以下であるか否かを判定する。ＣＰＵ７２は、相違度δ２が閾値α以下である（すなわち、ＹＥＳ）と判定した場合、ステップＳ３３へ進む。一方、ＣＰＵ７２は、相違度δ２が閾値αよりも大きい（すなわち、ＮＯ）と判定した場合、ステップＳ３６へ進む。
【０１５１】
例えば、閾値αがα＝４．５×１０−４に設定され、ステップＳ３４でワークＷ３と基準ワークＷＲ４との相違度δ２（≒６．７×１０−４）が算出されたとすると、δ２＞αであるので、ＣＰＵ７２は、ＮＯと判定し、ステップＳ３６へ進む。
【０１５２】
ステップＳ３６において、ＣＰＵ７２は、ステップＳ２１で検出したワークＷ３と、システムメモリ７４に記憶された複数種類の基準ワークＷＲ３、ＷＲ４、ＷＲ５、ＷＲ６のうちの第３種の基準ワークとの相違度δ３を算出する。
【０１５３】
例えば、第３種の基準ワークとして、図１２に示す三角形の基準ワークＷＲ５が設定されたとする。この場合、ＣＰＵ７２は、図１８に示すように、ステップＳ２１で取得したワークＷ３の形状と基準ワークＷＲ５の形状とを、座標系Ｃ３にプロットする。そして、ＣＰＵ７２は、数式２を用いて、ワークＷ３と基準ワークＷＲ５との相違度δ３を算出する。図１８に示す例においては、相違度δ３は、δ３≒４．１×１０−４となる。
【０１５４】
ステップＳ３７において、ＣＰＵ７２は、ステップＳ３６で算出した相違度δ３が閾値α以下であるか否かを判定する。ＣＰＵ７２は、相違度δ３が閾値α以下である（すなわち、ＹＥＳ）と判定した場合、ステップＳ３３へ進む。一方、ＣＰＵ７２は、相違度δ３が閾値αよりも大きい（すなわち、ＮＯ）と判定した場合、ステップＳ３８へ進む。
【０１５５】
例えば、閾値αがα＝４．５×１０−４に設定され、ステップＳ３６でワークＷ３と基準ワークＷＲ４との相違度δ３（≒４．１×１０−４）が算出されたとすると、δ３≦αであるので、ＣＰＵ７２は、ＹＥＳと判定し、ステップＳ３３へ進む。
【０１５６】
ステップＳ３８において、ＣＰＵ７２は、ステップＳ２１で検出したワークＷ３と、システムメモリ７４に記憶された複数種類の基準ワークＷＲ３、ＷＲ４、ＷＲ５、ＷＲ６のうちの第４種の基準ワークとの相違度δ４を算出する。
【０１５７】
例えば、第４種の基準ワークとして、図１２に示す線状の基準ワークＷＲ６が設定されたとする。この場合、ＣＰＵ７２は、上述の算出方法を用いて、ワークＷ３と基準ワークＷＲ６との相違度δ４を算出する。
【０１５８】
ステップＳ３９において、ＣＰＵ７２は、ステップＳ３８で算出した相違度δ４が閾値α以下であるか否かを判定する。ＣＰＵ７２は、相違度δ４が閾値α以下である（すなわち、ＹＥＳ）と判定した場合、ステップＳ３３へ進む。一方、ＣＰＵ７２は、相違度δ４が閾値αよりも大きい（すなわち、ＮＯ）と判定した場合、図１３中のステップＳ２６へ進む。
【０１５９】
ステップＳ３３において、ＣＰＵ７２は、ワークＷ３の形状が、ステップＳ３２、Ｓ３５、Ｓ３７、またはＳ３９でＹＥＳと判定した相違度δ１、δ２、δ３またはδ４に対応する、基準ワークＷＲ３、ＷＲ４、ＷＲ５またはＷＲの基準ワーク形状に類似していると判定する。
【０１６０】
ステップＳ２１で図１５に示すワークＷ３を検出した場合、ＣＰＵ７２は、ステップＳ３７でＹＥＳと判定するので、ワークＷ３の形状が基準ワークＷＲ５の基準ワーク形状に類似するものであると判定し、システムメモリ７４から基準ワークＷＲ５の図面データを読み出す。そして、ＣＰＵ７２は、図１３中のステップＳ２３へ進む。
【０１６１】
このように、本実施形態においては、ＣＰＵ７２は、形状取得部１１４が受け付けたワークＷ３の形状が、基準ワークＷＲ３、ＷＲ４、ＷＲ５またはＷＲ６の基準ワーク形状に類似しているか否かを判定する類似判定部１１７（図１１）としての機能を担う。
【０１６２】
ここで、ＣＰＵ７２は、予め定められた規則に従って、検出したワークＷ３が基準ワークＷＲ３、ＷＲ４、ＷＲ５またはＷＲ６に類似していると判定している。本実施形態に係る予め定められた規則とは、数式２を用いて算出した相違度δが閾値α以下であるときにワークの形状が基準ワーク形状に類似していると判定するという規則である。
【０１６３】
このステップＳ３３を終了したとき、ＣＰＵ７２は、ユーザが作業を選択可能とする作業入力画面の画像データを生成し、表示部８０に表示する。このとき表示部８０に表示される画像には、図１２に示す３種類の作業：「把持」、「スポット溶接」、または「アーク溶接」を選択可能とする画像が示される。
【０１６４】
ユーザは、表示部８０に表示される作業入力画面を視認しつつ、入力部８２を操作して、「把持」、「スポット溶接」、または「アーク溶接」を選択することができる。このように、本実施形態においては、入力部８２は、作業の種類の入力を受け付ける作業入力部１１６（図１１）として機能する。
【０１６５】
入力部８２は、ユーザが入力した作業入力データを、Ｉ／Ｏインターフェース７８に送信する。Ｉ／Ｏインターフェース７８は、入力部８２から作業入力データを受信し、ＣＰＵ７２は、受信した作業入力データをワークメモリ７６に記憶する。
【０１６６】
再度、図１３を参照して、ステップＳ２３において、ＣＰＵ７２は、作業の入力を受け付けたか否かを判定する。具体的には、ＣＰＵ７２は、Ｉ／Ｏインターフェース７８が入力部８２から、作業入力データを受け付けたか否かを判定する。
【０１６７】
ＣＰＵ７２は、Ｉ／Ｏインターフェース７８が作業入力データを受け付けた（すなわち、ＹＥＳ）と判定した場合、ステップＳ２４へ進む。一方、ＣＰＵ７２は、Ｉ／Ｏインターフェース７８が作業入力データを受け付けていない（すなわち、ＮＯ）と判定した場合、ステップＳ２３をループする。
【０１６８】
ステップＳ２４において、ＣＰＵ７２は、ステップＳ３３で類似すると判定した基準ワークＷＲ５における基準作業位置に対応する、ワークＷ３における作業位置を決定する。例えば、ステップＳ２３で「スポット溶接」の作業の選択を受け付けたとする。
【０１６９】
この場合、ＣＰＵ７２は、ステップＳ３３でワークＷ３に類似すると判定した基準ワークＷＲ５の座標Ｃ３（図１８）における座標と、ワークＷ３の座標Ｃ３における座標とを、上述した数式１に代入し、図１２中の基本動作パターン１４４に含まれる作業位置Ｆ１〜Ｆ３にそれぞれ対応する、ワークＷ３における作業位置Ｆ１’〜Ｆ３’を求める。
【０１７０】
このように求めた作業位置Ｆ１’〜Ｆ３’を、図１９に示す。このように、本実施形態においては、ＣＰＵ７２は、基準ワークＷＲ５における作業位置Ｆ１〜Ｆ３に対応する、ワークＷ３における作業位置Ｆ１’〜Ｆ３’を決定する位置決定部１１８（図１１）としての機能を担う。
【０１７１】
ステップＳ２５において、ＣＰＵ７２は、動作軌跡を生成する。具体的には、ＣＰＵ７２は、基本動作パターン１４４に含まれる基準作業位置Ｆ１〜Ｆ３の情報（ロボット座標系ＣＲの座標）を、ステップＳ２４で決定した作業位置Ｆ１’〜Ｆ３’（ロボット座標系ＣＲの座標）に変更する。
【０１７２】
また、ステップＳ７の実行後にこのステップＳ２５を実行する場合は、ＣＰＵ７２は、基本動作パターン１４４に含まれる基準順序（例えば、Ｆ１→Ｆ２→Ｆ３）を、ステップＳ７で決定した順序（例えば、Ｆ３→Ｆ２→Ｆ１）に変更する。一方、ステップＳ６でＮＯと判定した後にこのステップＳ８を実行する場合は、ＣＰＵ７２は、基本動作パターン１４４に含まれる基準順序の設定を維持する。
【０１７３】
こうして、ＣＰＵ７２は、ロボット３４に、作業位置Ｆ１’〜Ｆ３’に対して、ユーザが指定した順序または基準順序で、ステップＳ２３でユーザから受け付けた作業を実行させるときの該ロボット３４の動作軌跡を自動で生成する。
【０１７４】
このように、本実施形態においては、ＣＰＵ７２は、ロボット３４に作業位置Ｆ１’〜Ｆ３’に対して作業を実行させるときの動作軌跡を生成する軌跡生成部１２０（図１１）としての機能を担う。
【０１７５】
ステップＳ１０でＮＯと判定した場合、ステップＳ２７において、ＣＰＵ７２は、ステップＳ９で表示している動作軌跡を修正するための入力を受け付ける。具体的には、ＣＰＵ７２は、ステップＳ９で表示部８０に表示した動作軌跡をユーザが変更可能とするための修正入力画面の画像データを生成し、表示部８０に表示させる。
【０１７６】
ユーザは、表示部８０に表示された修正入力画面を視認しつつ、入力部８２を操作して、動作軌跡を修正する。ＣＰＵ７２は、Ｉ／Ｏインターフェース７８を介して、入力部８２から修正入力データを受け付けて、該修正入力データに応じて動作軌跡を修正する。
【０１７７】
一方、図１４中のステップＳ３９でＮＯと判定した場合、ステップＳ２６において、ＣＰＵ７２は、警告を表示する。例えば、ＣＰＵ７２は、「検出したワークの形状は、基準ワーク形状のいずれにも類似していません」という警告を表す警告画像データを生成する。そして、ＣＰＵ７２は、生成した警告画像データを表示部８０に表示する。
【０１７８】
または、ＣＰＵ７２は、音声信号の形態で警告信号を生成し、装置１１０に設けられたスピーカ（図示せず）を通して、警告を音声として出力してもよい。
【０１７９】
本実施形態によれば、ロボット３４でワークＷ３に作業を行うときの該ロボット３４の動作軌跡を、ロボット３４を再度教示することなく、基本動作パターン１４４を利用して自動で構築できる。この構成によれば、ロボット３４の再教示に掛かる負担を削減することができるので、製造ラインの効率を向上させることができる。
【０１８０】
また、本実施形態においては、装置１１０は、ワークの形状を検出可能な視覚センサ１１２を備えている。この構成によれば、形状が未知のワークＷ３に関しても、作業位置Ｆ１〜Ｆ３に対応する作業位置Ｆ１’〜Ｆ３’を求めることができる。
【０１８１】
また、本実施形態においては、ＣＰＵ７２は、相違度δを算出し、該相違度δを基に、ワークＷ３と基準ワークＷＲ３、ＷＲ４、ＷＲ５、ＷＲ６との類似性を判定している。この構成によれば、ワークＷ３と、基準ワークＷＲ３、ＷＲ４、ＷＲ５、ＷＲ６との類似性を、より高精度且つ自動で判定することができる。
【０１８２】
なお、相違度δの代わりに、検出したワークＷ３と基準ワークＷＲ３、ＷＲ４、ＷＲ５、ＷＲ６との類似性を判定するための他のパラメータを用いることもできる。例えば、２つの形状の類似の度合を表す類似度を用いてもよい。
【０１８３】
この類似度は、２つの形状の頂角（または辺）の数、頂角（または辺）の角度、占有面積等から、所定のアルゴリズムによって求められ得るパラメータであって、その値が大きい程、２つの形状が類似していることを意味する。
【０１８４】
したがって、類似度を用いる場合は、ＣＰＵ７２は、図１４中のステップＳ３１、Ｓ３４、Ｓ３６、およびＳ３８において、類似度を算出し、ステップＳ３２、Ｓ３５、Ｓ３７、およびＳ３９において、類似度が、予め定められた閾値β以上であるか否かを判定する。
【０１８５】
ＣＰＵ７２は、類似度が閾値β以上である（すなわち、ＹＥＳ）と判定した場合、ステップＳ３３へ進む一方、類似度が閾値βよりも小さい（すなわち、ＮＯ）と判定した場合、ステップＳ３４、Ｓ３６、またはＳ３８へ進む。
【０１８６】
なお、図１に示す実施形態において、記憶部２２は、装置１０の外部に設けられたサーバに内蔵されてもよい。このような実施形態を、図２０に示す。図２０に示すシステム１６０は、複数の装置１０Ａ、１０Ｂ、および１０Ｃと、サーバ１６２とを備える。
【０１８７】
装置１０Ａ、１０Ｂ、および１０Ｃの各々は、上述の装置１０と同様に、形状取得部１２、動作パターン取得部１４、類似判定部１６、位置決定部１８、および軌跡生成部２０を備える。装置１０Ａ、１０Ｂ、および１０Ｃの各々は、サーバ１６２に、通信ネットワーク１６４を介して、通信可能に接続されている。
【０１８８】
基本動作パターン２４を格納する記憶部２２は、サーバ１６２に内蔵されている。通信ネットワーク１６４は、例えば、イントラネット等のＬＡＮ、またはインターネットである。
【０１８９】
一例として、装置１０Ａ、１０Ｂ、および１０Ｃは、それぞれ別の工場内に設置される。装置１０Ａ、１０Ｂ、および１０Ｃの動作パターン取得部１４は、通信ネットワーク１６４を通してサーバ１６２から基本動作パターン２４をダウンロードして取得する。
【０１９０】
そして、装置１０Ａ、１０Ｂ、および１０Ｃは、上述した手法を用いて、該基本動作パターン２４を利用して動作軌跡を生成する。この構成によれば、別々の場所にある複数の工場で、基本動作パターン２４を共有することができる。
【０１９１】
なお、上述の装置７０、１００、または１１０において、基本動作パターンをシステムメモリ７４に格納させる代わりに、上述のサーバ１６２に内蔵された記憶部２２に内蔵させてもよい。この場合、Ｉ／Ｏインターフェース７８は、通信ネットワーク１６４を介してサーバ１６２に通信可能に接続され得る。
【０１９２】
また、上述した実施形態においては、基準ワークＷＲ１、ＷＲ２、ＷＲ３、ＷＲ４、ＷＲ５、およびＷＲ６の各々に、複数の基準作業位置が設定された場合について述べた。しかしながら、これに限らず、基準作業位置は、１箇所でもよい。
【０１９３】
また、上述の装置１０、１０Ａ、１０Ｂ、１０Ｃ、７０、１００、または１１０は、ロボットシステム３０のロボット制御部３２に組み込まれてもよいし、ロボット制御部３２とは別の要素として設けられてもよい。
【０１９４】
また、図９に示すフローにおいて、ＣＰＵ７２は、ステップＳ１０でＮＯと判定した後に、図１３中のステップＳ２７を実行し、次いで、ステップＳ９に戻ってもよい。また、上述した種々の実施形態の特徴を組み合わせることもできる。
【０１９５】
以上、実施形態を通じて本開示を説明したが、上述の実施形態は、特許請求の範囲に係る発明を限定するものではない。
【符号の説明】
【０１９６】
１０，７０，１００、１１０    装置
１２，９２，１１４    形状取得部
１４，９４    動作パターン取得部
１６，９６，１１７    類似判定部
１８，８８，１１８    位置決定部
２０，９９，１２０    軌跡生成部
【図１】
2018176332.tif 000005
【図２】
2018176332.tif 000006
【図３】
2018176332.tif 000007
【図４】
2018176332.tif 000008
【図５】
2018176332.tif 000009
【図６】
2018176332.tif 000010
【図７】
2018176332.tif 000011
【図８】
2018176332.tif 000012
【図９】
2018176332.tif 000013
【図１０】
2018176332.tif 000014
【図１１】
2018176332.tif 000015
【図１２】
2018176332.tif 000016
【図１３】
2018176332.tif 000017
【図１４】
2018176332.tif 000018
【図１５】
2018176332.tif 000019
【図１６】
2018176332.tif 000020
【図１７】
2018176332.tif 000021
【図１８】
2018176332.tif 000022
【図１９】
2018176332.tif 000023
【図２０】
2018176332.tif 000024