(57)【要約】【課題】制御軸を４軸以上有する垂直多関節ロボットのハンドの移動時間を精度よく推定する。【解決手段】動作ベクトル算出部は、ロボットのハンドの直線状の複数の移動経路の移動時間を取得し、それぞれの動作ベクトルを算出して動作ベクトルＤＢに記憶する（Ｓ１６）。また、類似ベクトル抽出部は、未知の作業の動作ベクトルの方向と、動作ベクトルＤＢに記憶されている動作ベクトルの方向と、を比較して、未知の作業の動作ベクトルと最も類似する動作ベクトルを特定する（Ｓ２６）。そして、移動時間算出部は、特定した動作ベクトルのスカラー量と、未知の作業の動作ベクトルのスカラー量と、特定した動作ベクトルに対応する移動時間と、に基づいて、未知の作業の移動時間を推定する（Ｓ４０）。【選択図】図７
2018176377.tif 000002
【特許請求の範囲】
【請求項１】
制御軸を４軸以上有する垂直多関節ロボットのハンドの直線状の複数の移動経路の移動時間を取得し、
前記複数の移動経路それぞれのベクトルを算出し、
移動時間を推定する対象経路のベクトルの方向と、前記複数の移動経路のベクトルの方向と、を比較して、前記複数の移動経路のうち、ベクトルの方向が前記対象経路のベクトルの方向と最も類似する移動経路を特定し、
特定した前記移動経路のベクトルのスカラー量と、前記対象経路のベクトルのスカラー量と、特定した前記移動経路の移動時間と、に基づいて、前記対象経路の移動時間を推定する、
処理をコンピュータに実行させるためのロボット移動時間推定プログラム。
【請求項２】
特定した前記移動経路のベクトルと、前記対象経路のベクトルと、のなす角が所定範囲に含まれるか否かを判断し、
前記判断する処理の結果、前記所定範囲に含まれない場合に、前記推定する処理の実行を禁止する、
処理を前記コンピュータに更に実行させることを特徴とする請求項１に記載のロボット移動時間推定プログラム。
【請求項３】
前記推定する処理では、前記対象経路のベクトルのスカラー量を、特定した前記移動経路のベクトルのスカラー量で除した結果と、特定した前記移動経路の移動時間との積を算出する、ことを特徴とする請求項１又は２に記載のロボット移動時間推定プログラム。
【請求項４】
制御軸を４軸以上有する垂直多関節ロボットのハンドの直線状の複数の移動経路の移動時間を取得し、
前記複数の移動経路それぞれのベクトルを算出し、
移動時間を推定する対象経路のベクトルの方向と、前記複数の移動経路のベクトルの方向と、を比較して、前記複数の移動経路のうち、ベクトルの方向が前記対象経路のベクトルの方向と最も類似する移動経路を特定し、
特定した前記移動経路のベクトルのスカラー量と、前記対象経路のベクトルのスカラー量と、特定した前記移動経路の移動時間と、に基づいて、前記対象経路の移動時間を推定する、
処理をコンピュータが実行するロボット移動時間推定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット移動時間推定プログラム及びロボット移動時間推定方法に関する。
【背景技術】
【０００２】
従来、製品の組立を行う組立ラインの各工程（作業主体）へ作業を割り当てる作業編成（工程計画とも呼ばれる）は、各工程における作業順序の遵守や作業量の平準化などを考慮して最適化している。組立ラインにロボットが含まれる場合、ロボットのサイクルタイム（１回の作業サイクルに要する時間）を算出するためには、作業ごとの所要時間を見積もる必要がある。作業ごとの所要時間は、部品を部品供給位置においてピックアップするまでの時間と、ピックアップした部品を組み付け位置まで搬送する時間（ロボットの移動時間）と、部品を組み付ける時間との合計時間である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開昭６０−６１８０１号公報
【特許文献２】特開平１０−１４３２１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
新たな作業におけるロボットの移動時間を見積もる場合、シミュレーション等により算出、計測された別の作業の移動時間と、別の作業と新たな作業の移動距離の差異と、を考慮して見積もることが考えられる。しかしながら、ロボットが制御軸を４軸以上有する垂直多関節ロボットである場合には、移動経路が変われば駆動する制御軸の組み合わせも変わり、移動速度も変わる。したがって、垂直多関節ロボットの移動時間を見積もる場合、垂直多関節ロボットの制御の特性を考慮しなければ、移動時間を正確に見積もることができないおそれがある。
【０００５】
１つの側面では、本発明は、制御軸を４軸以上有する垂直多関節ロボットのハンドの移動時間を精度よく推定することが可能なロボット移動時間推定プログラム及びロボット移動時間推定方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
一つの態様では、ロボット移動時間推定プログラムは、制御軸を４軸以上有する垂直多関節ロボットのハンドの直線状の複数の移動経路の移動時間を取得し、前記複数の移動経路それぞれのベクトルを算出し、移動時間を推定する対象経路のベクトルの方向と、前記複数の移動経路のベクトルの方向と、を比較して、前記複数の移動経路のうち、ベクトルの方向が前記対象経路のベクトルの方向と最も類似する移動経路を特定し、特定した前記移動経路のベクトルのスカラー量と、前記対象経路のベクトルのスカラー量と、特定した前記移動経路の移動時間と、に基づいて、前記対象経路の移動時間を推定する、処理をコンピュータに実行させるためプログラムである。
【発明の効果】
【０００７】
制御軸を４軸以上有する垂直多関節ロボットのハンドの移動時間を精度よく推定することができる。
【図面の簡単な説明】
【０００８】
【図１】一実施形態に係る工程計画生成装置のハードウェア構成を概略的に示す図である。
【図２】工程計画を生成する組立ラインの一例を示す図である。
【図３】図２の５工程に対して作業を割り振った工程計画の一例を示す図である。
【図４】工程計画生成装置の機能ブロック図である。
【図５】工程計画においてロボットに割り当てられた各作業の概要を示す図である。
【図６】図６（ａ）は、座標ＤＢのデータ構造の一例を示す図であり、図６（ｂ）は、作業ＤＢのデータ構造の一例を示す図であり、図６（ｃ）は、動作ベクトルＤＢのデータ構造の一例を示す図である。
【図７】移動時間推定部の処理を示すフローチャートである。
【図８】図８（ａ）〜図８（ｄ）は、移動時間の推定処理を説明するための図（その１）である。
【図９】図９（ａ）〜図９（ｄ）は、移動時間の推定処理を説明するための図（その２）である。
【図１０】図１０（ａ）〜図１０（ｄ）は、移動時間の推定処理を説明するための図（その３）である。
【図１１】移動時間ＤＢのデータ構造の一例を示す図である。
【図１２】再生成された工程計画の一例を示す図である。
【図１３】変形例１にかかる移動時間推定部の処理を示すフローチャートである。
【図１４】変形例２にかかる工程計画生成装置の機能ブロック図である。
【図１５】変形例２にかかる移動時間推定部の処理を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、ロボット移動時間推定装置としての工程計画生成装置の一実施形態について、図１〜図１２に基づいて詳細に説明する。
【００１０】
図１には、一実施形態に係る工程計画生成装置１０のハードウェア構成が示されている。本実施形態の工程計画生成装置１０は、例えばＰＣ（Personal Computer）などの情報処理装置であり、図１に示すように、ＣＰＵ（Central Processing Unit）９０、ＲＯＭ（Read Only Memory）９２、ＲＡＭ（Random Access Memory）９４、記憶部（ここではＨＤＤ（Hard Disk Drive））９６、ネットワークインタフェース９７、及び可搬型記憶媒体用ドライブ９９、表示部９３、入力部９５等を備えている。表示部９３は液晶ディスプレイ等を含み、入力部９５は、キーボードやマウス、タッチパネル等を含む。これら工程計画生成装置１０の構成各部は、バス９８に接続されている。工程計画生成装置１０では、ＲＯＭ９２あるいはＨＤＤ９６に格納されているプログラム（ロボット移動時間推定プログラムを含む）、或いは可搬型記憶媒体用ドライブ９９が可搬型記憶媒体９１から読み取ったプログラム（ロボット移動時間推定プログラムを含む）をＣＰＵ９０が実行することにより、図４に示す各部の機能が実現される。なお、図４には、工程計画生成装置１０のＨＤＤ９６等に格納されている座標ＤＢ（database）５０、作業ＤＢ５２、動作ベクトルＤＢ５４、移動時間ＤＢ５６についても図示されている。なお、可搬型記憶媒体９１は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal Serial Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリなどである。
【００１１】
ここで、本実施形態の工程計画生成装置１０は、図２に示すような組立ライン１２０の工程計画を生成する。図２に示すように、製品の組み立てを行う組立ライン１２０は、一例として、工程Ａから工程Ｅの５工程を有するものとする。
【００１２】
組立ライン１２０では、ベルトコンベア（不図示）などにより製品を工程から工程へ搬送する。組立ライン１２０の各工程には、ロボット２１Ａまたは人（作業員）２１Ｂ〜２１Ｅが配置される。図２の例では、工程Ａにはロボット２１Ａが配置され、工程Ｂ〜工程Ｅには作業員２１Ｂ〜２１Ｅがそれぞれ配置されている。工程Ａから工程Ｅに配置されたロボット２１Ａまたは作業員２１Ｂ〜２１Ｅは、組立ライン１２０において搬送される製品に対して工程計画により割り当てられた作業を実施して製品を製造する。本実施形態において、ロボット２１Ａは、制御軸を４軸以上有する垂直多関節ロボットであるものとする。
【００１３】
なお、組立ライン１２０の構成例は、図２に例示した構成に限定するものではない。例えば、組立ライン１２０は、６工程以上の工程数を有してもよいし、５工程未満の工程数を有していてもよい。また、ロボット２１Ａの配置位置は工程Ａ以外であってもよく、ロボットは複数あってもよい。
【００１４】
図３には、上記５工程に対して作業を割り振った工程計画の一例が示されている。図３のようにロボットが配置された工程を含む工程に対して作業を割り振る場合、作業者やロボットの作業性に関するパラメータ、タクトタイムなど、複数のパラメータを考慮する必要がある。なお、図３において、Ｐ１〜Ｐ９は、ロボット２１Ａが実行可能な作業であるものとする。例えば、ロボット２１Ａが作業を行う場合、各作業に要する時間は、図３の二点鎖線枠内に示すように、部品ピック時間と、移動時間と、組み付け時間に分けられる。部品ピック時間は、製品に組み付ける部品を部品供給位置においてロボット２１Ａのハンドがピックアップするまでに要する時間である。移動時間は、部品をピックアップしたハンドが、部品を組み付ける位置（製品の所定位置）に移動するまでに要する時間である。また、組み付け時間は、移動したハンドが製品に部品を組み付けるまでに要する時間である。工程計画を生成する際には、ロボットによる各作業に要する時間を見積もり（推定し）、ロボットのサイクルタイムがどの程度になるかを考慮する必要がある。なお、図３の部品ピック時間と組み付け時間は予めわかっていることが多いため、移動時間を精度よく見積もることが必要となる。
【００１５】
図４には、工程計画生成装置１０の機能ブロック図が示されている。工程計画生成装置１０は、ＣＰＵ９０がプログラムを実行することにより、図４に示す工程計画生成部２０、および移動時間推定部３０として機能する。工程計画生成部２０は、局所探索法等を用いて工程計画を生成する。移動時間推定部３０は、ロボット２１Ａに割り当てられた作業における移動時間を推定する。移動時間推定部３０は、シミュレーション部４０、取得部及び算出部としての動作ベクトル算出部４２、特定部及び判断部としての類似ベクトル抽出部４４、スカラー量算出部４６、推定部としての移動時間算出部４８、を有する。
【００１６】
シミュレーション部４０は、工程計画生成部２０において生成された初回の工程計画を参照し、ロボット２１Ａに割り当てられた作業の移動時間をシミュレーションする。例えば、初回の工程計画において、図３に示すように作業Ｐ１、Ｐ２，Ｐ３，Ｐ４，Ｐ５、Ｐ６がロボット２１Ａに割り当てられたとする。図５には、各作業の概要が示されている。図５に示すように、作業Ｐ１は、部品供給位置Ｆ１において部品をピックアップし、製品７０の組み付け位置Ｐ１に部品を組み付けるという作業である。同様に、作業Ｐ２〜Ｐ６は、部品供給位置Ｆ２〜Ｆ６それぞれにおいて部品をピックアップし、製品７０の組み付け位置Ｐ２〜Ｐ６それぞれに部品を組み付けるという作業である。シミュレーション部４０は、座標ＤＢ５０を参照してシミュレーションを行うことで、図５において実線矢印で示す直線状の移動経路をロボット２１Ａのハンドが移動するのに要する時間（移動時間）を見積もる。また、シミュレーション部４０は、シミュレーション結果（移動時間の見積もり結果）を作業ＤＢ５２に格納する。
【００１７】
ここで、座標ＤＢ５０は、一例として、図６（ａ）に示すようなデータ構造を有する。具体的には、座標ＤＢ５０は、各部品供給位置の座標（三次元座標）と、各組み付け位置の座標（三次元座標）とを記憶する。
【００１８】
作業ＤＢ５２は、一例として、図６（ｂ）に示すようなデータ構造を有する。作業ＤＢ５２は、図６（ｂ）に示すように、「作業ＩＤ」、「部品供給位置座標」、「組み付け位置座標」、「移動時間」の各フィールドを有する。「作業ＩＤ」のフィールドには、各作業の識別情報が格納され、「部品供給位置座標」のフィールドには、各作業に対応する部品供給位置の座標が格納される。「組み付け位置座標」のフィールドには、各作業に対応する組み付け位置の座標が格納される。「移動時間」のフィールドには、シミュレーションの結果得られた各作業の移動時間が格納される。
【００１９】
図４に戻り、動作ベクトル算出部４２は、作業ＤＢ５２に格納された各作業において部品供給位置から組み付け位置までをハンドが直線的に移動した場合の動作ベクトル（図５の実線矢印で示すベクトル）を算出する。動作ベクトル算出部４２は、算出した動作ベクトルを動作ベクトルＤＢ５４に格納する。また、動作ベクトル算出部４２は、作業ＤＢ５２に格納されていない作業（未知の作業と呼ぶ）を特定し、特定した未知の作業における動作ベクトルを算出する。すなわち、移動時間を推定する対象経路のベクトルを算出する。この場合、動作ベクトル算出部４２は、座標ＤＢ５０を参照して、特定した未知の作業において部品供給位置から組み付け位置までをハンドが直線的に移動した場合の動作ベクトルを算出する。
【００２０】
ここで、動作ベクトルＤＢ５４は、図６（ｃ）に示すようなデータ構造を有する。動作ベクトルＤＢ５４は、図６（ｃ）に示すように、「作業ＩＤ」と「動作ベクトル」のフィールドを有する。「作業ＩＤ」のフィールドには、作業の識別情報が格納され、「動作ベクトル」のフィールドには、動作ベクトルが格納される。
【００２１】
類似ベクトル抽出部４４は、動作ベクトルＤＢ５４を参照し、未知の作業の動作ベクトルの方向と最も類似する動作ベクトルを抽出する。具体的には、類似ベクトル抽出部４４は、動作ベクトルＤＢ５４から１つずつ動作ベクトルを特定し、特定した動作ベクトルと未知の作業の動作ベクトルとのなす角を算出する。そして、類似ベクトル抽出部４４は、動作ベクトルＤＢ５４に格納されている動作ベクトルのうち、なす角が最も小さい動作ベクトルを特定する。
【００２２】
スカラー量算出部４６は、類似ベクトル抽出部４４が抽出した動作ベクトルのスカラー量と、未知の作業の動作ベクトルのスカラー量を算出する。この場合、スカラー量算出部４６は、作業における部品供給位置と組み付け位置との距離を動作ベクトルのスカラー量として算出する。
【００２３】
移動時間算出部４８は、スカラー量算出部４６の算出結果に基づいて、未知の作業の移動時間を算出する。具体的には、移動時間算出部４８は、類似ベクトル抽出部４４が抽出した動作ベクトルのスカラー量と、未知の作業の動作ベクトルのスカラー量の比を算出する。そして、移動時間算出部４８は、算出した比と、類似ベクトル抽出部４４が抽出した動作ベクトルに対応する作業の移動時間とに基づいて、未知の作業の移動時間を算出する。移動時間算出部４８は、算出した移動時間を移動時間ＤＢ５６に格納する。
【００２４】
ここで、移動時間ＤＢ５６は、移動時間算出部４８が算出した移動時間等を格納するデータベースであり、図１１に示すようなデータ構造を有している。この移動時間ＤＢ５６は、図１１に示すように、図６（ｂ）の作業ＤＢ５２と同一のデータ構造を有している。
【００２５】
（移動時間推定部３０の処理）
次に、移動時間推定部３０の処理について、図７のフローチャートに沿って、その他図面を適宜参照しつつ、詳細に説明する。なお、図７の処理の前提として、座標ＤＢ５０には、製造する製品や組み立てラインの情報に基づいてデータが格納されているが、その他のデータベースにはデータは格納されていないものとする。
【００２６】
図７の処理が開始されると、まずステップＳ１０において、シミュレーション部４０が、工程計画生成部２０により初回の工程計画生成処理が実行されるまで待機する。本実施形態では、図３に示すような工程計画が生成されたことが、工程計画生成部２０からシミュレーション部４０に通知されると、ステップＳ１２に移行する。
【００２７】
ステップＳ１２に移行すると、シミュレーション部４０が、ロボット２１Ａに割当てられた作業の移動時間をシミュレーションする。この場合、シミュレーション部４０は、座標ＤＢ５０から各作業の部品供給位置と組み付け位置の座標を取得し、各作業の移動時間（図５において実線矢印で示す移動経路の移動時間）をシミュレーションする。
【００２８】
次いで、ステップＳ１４では、シミュレーション部４０は、各作業の部品供給位置と組み付け位置の座標と、シミュレーションにより得られた移動時間を作業ＤＢ５２に記憶する。図６（ｂ）は、ステップＳ１４を実行した後の作業ＤＢ５２である。
【００２９】
次いで、ステップＳ１６では、動作ベクトル算出部４２が、各作業における動作ベクトル（図５において実線矢印で示すベクトル）を計算し、動作ベクトルＤＢ５４に記憶する。図６（ｃ）は、ステップＳ１６を実行した後の動作ベクトルＤＢ５４である。
【００３０】
次いで、ステップＳ１８では、動作ベクトル算出部４２が、未知の作業（初回の工程計画ではロボット２１Ａに割り当てられていない作業）の移動時間を全て推定したか否かを判断する。ここでは、未知の作業の移動時間を１つも推定していないので、ステップＳ１８の判断は否定され、ステップＳ２２に移行する。なお、ステップＳ１８の判断が肯定された場合には、図７の全処理を終了する。
【００３１】
ステップＳ１８の判断が否定され、ステップＳ２２に移行すると、動作ベクトル算出部４２は、未知の作業の１つを特定する。この場合、例えば、動作ベクトル算出部４２は、未知の作業として、図８（ａ）において太線矢印で示すように、部品供給位置がＦ１で組み付け位置がＰ７の作業（Ｐ７）を特定したものとする。
【００３２】
次いで、ステップＳ２４では、動作ベクトル算出部４２が、特定した未知の作業の動作ベクトルを算出する。この場合、動作ベクトルＦ１Ｐ７が算出される。
【００３３】
次いで、ステップＳ２６では、類似ベクトル抽出部４４が、算出した動作ベクトルと方向が最も類似する動作ベクトルを動作ベクトルＤＢ５４から抽出する。この場合、類似ベクトル抽出部４４は、動作ベクトルＦ１Ｐ７と、動作ベクトルＦ１Ｐ１とのなす角（図８（ｂ）参照）、動作ベクトルＦ１Ｐ７と、動作ベクトルＦ２Ｐ２とのなす角（図８（ｃ）参照）、動作ベクトルＦ１Ｐ７と、動作ベクトルＦ３Ｐ３とのなす角（図８（ｄ）参照）、…を算出する。そして、類似ベクトル抽出部４４は、なす角が最も小さい動作ベクトルを、算出した動作ベクトルと方向が最も類似する動作ベクトルとして抽出する。図８（ｂ）〜図８（ｄ）の例では、図８（ｂ）の動作ベクトルＦ１Ｐ１が抽出される。
【００３４】
次いで、ステップＳ２８では、類似ベクトル抽出部４４が、動作ベクトルのなす角が閾値以下か否か、すなわちなす角が所定範囲に含まれるか否かを判断する。このステップＳ２８の判断が否定された場合、シミュレーションにより得られた移動時間（図６（ｂ））を用いて未知の作業の移動時間を推定しても、精度よく推定できない可能性が高いことを意味する。したがって、ステップＳ２８の判断が否定された場合には、ステップＳ３０に移行し、類似ベクトル抽出部４４は、未知の作業（Ｐ７）の移動時間を推定できない旨を移動時間ＤＢ５６に記憶する。なお、ステップＳ３０の後は、ステップＳ３２〜Ｓ４０を経ずにステップＳ１８に戻る。すなわち、ステップＳ２８の判断が否定された場合には、後述する移動時間を推定する処理（Ｓ４０）の実行が禁止されているといえる。
【００３５】
一方、ステップＳ２８の判断が肯定された場合には、ステップＳ３２に移行する。
【００３６】
ステップＳ３２に移行すると、スカラー量算出部４６は、ステップＳ２６で抽出した動作ベクトルのスカラー量を計算する。図８（ｂ）の例では、スカラー量算出部４６は、動作ベクトルＦ１Ｐ１のスカラー量（｜Ｆ１Ｐ１｜）を計算する。
【００３７】
次いで、ステップＳ３４では、スカラー量算出部４６が、ステップＳ２２で特定した未知の作業の動作ベクトルのスカラー量を計算する。図８（ｂ）の例では、スカラー量算出部４６は、動作ベクトルＦ１Ｐ７のスカラー量（｜Ｆ１Ｐ７｜）を計算する。
【００３８】
次いで、ステップＳ３６では、移動時間算出部４８が、スカラー量の比Ｋを計算する。図８（ｂ）の例では、次式（１）のようにスカラー量の比Ｋ１を計算する。
Ｋ１＝｜Ｆ１Ｐ７｜／｜Ｆ１Ｐ１｜      …（１）
【００３９】
次いで、ステップＳ３８では、移動時間算出部４８が、抽出した動作ベクトルに対応する移動時間を取得する。この場合、移動時間算出部４８は、図６（ｂ）の作業ＤＢ５２から、動作ベクトルＦ１Ｐ１（作業Ｐ１）に対応する移動時間Ｔ１を取得する。
【００４０】
次いで、ステップＳ４０では、移動時間算出部４８が、スカラー量の比と取得した移動時間とから、未知の作業の移動時間を算出し、移動時間ＤＢ５６に記憶する。上記例では、移動時間算出部４８は、次式（２）に基づいて未知の作業の移動時間Ｔ７ａを算出する。
Ｔ７ａ＝Ｋ１×Ｔ１      …（２）
【００４１】
図１１の移動時間ＤＢ５６では、上から１つ目のレコードとして、上述した処理の結果（Ｔ７ａ＝Ｋ１×Ｔ１）が記憶されている。
【００４２】
ステップＳ４０の処理が終了すると、ステップＳ１８に戻り、ステップＳ１８の判断が否定されるまで、ステップＳ１８〜Ｓ４０の処理が繰り返し実行される。
【００４３】
例えば、未知の作業として、図９（ａ）において太線矢印で示す、部品供給位置がＦ２で、組み付け位置がＰ７の作業Ｐ７が特定されたとする（Ｓ２２）。この場合、ステップＳ２６では、類似ベクトル抽出部４４は、動作ベクトルＦ２Ｐ７と、動作ベクトルＦ１Ｐ１とのなす角（図９（ｂ）参照）、動作ベクトルＦ２Ｐ７と、動作ベクトルＦ２Ｐ２とのなす角（図９（ｃ）参照）、動作ベクトルＦ２Ｐ７と、動作ベクトルＦ３Ｐ３とのなす角（図９（ｄ）参照）、…を算出する。そして、類似ベクトル抽出部４４は、なす角が最も小さい動作ベクトルを、算出した動作ベクトルと方向が最も類似する動作ベクトルとして抽出する。図９（ｂ）〜図９（ｄ）の例では、図９（ｃ）の動作ベクトルＦ２Ｐ２が抽出される。
【００４４】
したがって、移動時間算出部４８は、スカラー量の比Ｋ２を、次式（３）に基づいて算出し、算出した比Ｋ２と、動作ベクトルＦ２Ｐ２に対応する移動時間Ｔ２とを用いて、次式（４）に基づいて未知の作業の移動時間Ｔ７ｂを算出する。
Ｋ２＝｜Ｆ２Ｐ７｜／｜Ｆ２Ｐ２｜      …（３）
Ｔ７ｂ＝Ｋ２×Ｔ２      …（４）
【００４５】
なお、図１１の移動時間ＤＢ５６では、上から２つ目のレコードとして、上述した処理の結果（Ｔ７ｂ＝Ｋ２×Ｔ２）が記憶されている。
【００４６】
一方、未知の作業として、図１０（ａ）において太線矢印で示す、部品供給位置がＦ３で、組み付け位置がＰ７の作業Ｐ７が特定されたとする（Ｓ２２）。この場合、ステップＳ２６では、類似ベクトル抽出部４４は、動作ベクトルＦ３Ｐ７と、動作ベクトルＦ１Ｐ１とのなす角（図１０（ｂ）参照）、動作ベクトルＦ３Ｐ７と、動作ベクトルＦ２Ｐ２とのなす角（図１０（ｃ）参照）、動作ベクトルＦ３Ｐ７と、動作ベクトルＦ３Ｐ３とのなす角（図１０（ｄ）参照）、…を算出する。そして、類似ベクトル抽出部４４は、なす角が最も小さい動作ベクトルを、算出した動作ベクトルと方向が最も類似する動作ベクトルとして抽出する。図１０（ｂ）〜図１０（ｄ）の例では、図１０（ｃ）の動作ベクトルＦ２Ｐ２が抽出される。
【００４７】
したがって、移動時間算出部４８は、スカラー量の比Ｋ３を、次式（５）に基づいて算出し、算出した比Ｋ３と、動作ベクトルＦ２Ｐ２に対応する移動時間Ｔ２とを用いて、次式（６）に基づいて未知の作業の移動時間Ｔ７ｃを算出する。
Ｋ３＝｜Ｆ３Ｐ７｜／｜Ｆ２Ｐ２｜      …（５）
Ｔ７ｃ＝Ｋ３×Ｔ２      …（６）
【００４８】
なお、図１１の移動時間ＤＢ５６では、上から３つ目のレコードとして、上述した処理の結果（Ｔ７ｃ＝Ｋ３×Ｔ２）が記憶されている。
【００４９】
以上のように、図７の処理においては、未知の作業の移動時間を推定する場合に、未知の作業と移動方向が最も類似する作業の動作ベクトルのスカラー量及び移動時間を用いることとしている。このようにすることで、垂直多関節ロボットにおいてハンドを駆動する場合の制御軸が同一又は類似する動作ベクトルを用いて未知の作業の移動時間を推定することができる。したがって、ハンドが移動する際の制御軸を考慮して、精度よく未知の作業の移動時間を推定することが可能となる。
【００５０】
本実施形態では、工程計画生成部２０は、初回の工程計画を生成した後、再度工程計画を生成することがある。例えば、工程計画の再生成において、初回の工程計画（図３）の作業Ｐ３と作業Ｐ７が、図１２に示すように入れ替えられたとする。この場合の作業Ｐ７は、部品供給位置がＦ３で組み付け位置がＰ７の作業となる。このような場合には、工程計画生成部２０は、作業Ｐ７の移動時間として、図１１の移動時間ＤＢ５６の上から３つ目のレコードに格納されている移動時間を取得すればよい。これにより、シミュレーションを行わなくても、作業Ｐ７の作業時間を精度よく見積もることが可能である。
【００５１】
なお、図７のステップＳ３０において、移動時間ＤＢ５６に移動時間を推定できない旨が記憶された作業については、シミュレーション部４０が別途移動時間をシミュレーションするなどして移動時間を特定すればよい。
【００５２】
以上、詳細に説明したように、本実施形態によると、動作ベクトル算出部４２は、ロボット２１Ａのハンドが直線状の複数の移動経路それぞれに沿って移動した場合の移動時間のシミュレーション結果を取得し、それぞれの動作ベクトルを算出して動作ベクトルＤＢ５４に記憶する（Ｓ１６）。また、類似ベクトル抽出部４４は、未知の作業の動作ベクトルの方向と、動作ベクトルＤＢ５４に記憶されている動作ベクトルの方向と、を比較して、未知の作業の動作ベクトルと最も類似する動作ベクトルを特定する（Ｓ２６）。そして、移動時間算出部４８は、特定した動作ベクトルのスカラー量と、未知の作業の動作ベクトルのスカラー量と、特定した動作ベクトルに対応する移動時間と、に基づいて、未知の作業の移動時間を推定する（Ｓ４０）。すなわち、本実施形態では、シミュレーションにより得られた移動時間を用いて、未知の作業の移動時間を推定する場合に、未知の作業の動作ベクトルの方向と最も類似する動作ベクトル及びこれに対応する移動時間を動作ベクトルＤＢ５４及び作業ＤＢ５２から抽出し、推定に利用する。このため、垂直多関節ロボットにおいてハンドを駆動する場合の制御軸が同一又は類似する動作ベクトルを用いて未知の作業の移動時間を推定することで、精度よく未知の作業の移動時間を推定することができる。
【００５３】
また、本実施形態では、未知の作業の動作ベクトルと、これに最も類似する動作ベクトルとのなす角が閾値以下でない場合に、未知の作業の動作ベクトルを推定しない（推定を禁止する）ようにしている。これにより、精度の低い移動時間の推定処理が行われないようにすることができる。
【００５４】
また、本実施形態では、ステップＳ４０において、移動時間算出部４８は、未知の作業の動作ベクトルのスカラー量とステップＳ２６で抽出された動作ベクトルのスカラー量との比と、抽出された動作ベクトルに対応する移動時間との積を未知の作業の移動時間として算出する。これにより、簡易な計算により未知の作業の移動時間を算出することができる。
【００５５】
（変形例１）
なお、上記実施形態では、移動時間推定部３０が、初回の工程計画が生成された後に、すべての未知の作業の移動時間を推定する場合について説明したが、これに限られるものではない。すなわち、工程計画生成部２０が工程計画を再生成した場合に新たにロボット２１Ａに割り当てられた作業の移動時間のみを、移動時間推定部３０が推定することとしてもよい。
【００５６】
図１３には、本変形例１における移動時間推定部３０の処理がフローチャートにて示されている。図１３の処理においては、ステップＳ１０〜Ｓ１６までは、上記実施形態と同様に実行される。
【００５７】
ステップＳ１６の後、ステップＳ１１８に移行すると、動作ベクトル算出部４２は、工程計画生成部２０により工程計画が再作成されるまで待機する。動作ベクトル算出部４２は、工程計画生成部２０から工程計画を再作成した旨の通知を受けると、ステップＳ１２２において、新たにロボット２１Ａに割り当てられた作業の部品供給位置と組み付け位置を取得し、ステップＳ１２４において、動作ベクトルを算出する。
【００５８】
次いで、ステップＳ１２６では、類似ベクトル抽出部４４は、算出した動作ベクトルと方向が最も類似する動作ベクトルを動作ベクトルＤＢ５４から抽出する。次いで、ステップＳ１２８では、類似ベクトル抽出部４４は、ステップＳ１２４で算出した動作ベクトルと、ステップＳ１２６で抽出した動作ベクトルのなす角が閾値以下か否かを判断する。
【００５９】
このステップＳ１２８の判断が否定された場合には、ステップＳ１３０に移行し、類似ベクトル抽出部４４は、アラームを出力する。なお、ステップＳ１３０においてアラームが出力された場合には、例えばシミュレーション部４０は、新たにロボットに割り当てられた作業の移動時間をシミュレーションにより得ることとしてもよい。ステップＳ１３０においてアラームを出力しておくことで、ユーザ（工程計画策定者）はシミュレーションが実行されていることを認識することができる。
【００６０】
一方、ステップＳ１２８の判断が肯定された場合には、ステップＳ１３２に移行し、ステップＳ１３２〜Ｓ１３８の処理が、図７のステップＳ３２〜Ｓ３８と同様に実行される。その後、ステップＳ１４０に移行すると、移動時間算出部４８は、ステップＳ１３６で算出されたスカラー量の比と、ステップＳ１３８で取得した移動時間とから、新たにロボットに割り当てられた作業の移動時間を算出する。そして、移動時間算出部４８は、算出した移動時間を工程計画生成部２０に対して出力する。その後は、ステップＳ１１８に戻る。
【００６１】
以上のように、本変形例１では、工程計画が再生成されるたびに、新たにロボットに割り当てられた作業の移動時間を算出（推定）するため、移動時間推定部３０の処理量を低減することができる。
【００６２】
（変形例２）
なお、上記実施形態及び変形例１では、ステップＳ１２において、シミュレーション部４０が、初回の工程計画でロボット２１Ａに割当てられた作業の移動時間をシミュレーションする場合について説明したが、これに限られるものではない。例えば、実際にロボット２１Ａを動作させているような状況下では、ロボット２１Ａを実際に移動経路に沿って移動させ、移動に要した時間（実移動時間）を計測するようにしてもよい。
【００６３】
例えば、図１４に示すように、移動時間推定部３０の機能として、図４のシミュレーション部４０に代えて、実動作時間取得部４０’を用意する。この場合、実動作時間取得部４０’は、図７のステップＳ１２に代えて、図１５のステップＳ１２’を実行する。具体的には、実動作時間取得部４０’は、ステップＳ１２’において、初回の工程計画でロボット２１Ａに割当てられた作業の移動時間（実移動時間）を作業者に計測させるため、作業者に向けた指示を出力（表示部９３等に表示）する。指示を確認した作業者は、ロボット２１Ａ（さらに詳しくはロボット２１Ａのコントローラ）に動作コマンドを入力するなどしてロボット２１Ａを移動経路に沿って移動させ、実移動時間をストップウォッチで計測する。そして、作業者は、入力部９５を介して計測結果（実移動時間）を入力する。これにより、実動作時間取得部４０’は、初回の工程計画においてロボット２１Ａに割当てられた作業の実移動時間を取得することができるので、作業ＤＢ５２の「移動時間」のフィールドに格納しておく。
【００６４】
以上のように、本変形例２によれば、移動時間推定部３０は、ロボット２１Ａのハンドが直線状の複数の移動経路それぞれに沿って実際に移動した場合の移動時間（実移動時間）に基づいて、未知の作業の移動時間を推定する。これにより、実移動時間を用いて、精度よく未知の作業の移動時間を推定することができる。
【００６５】
なお、図１５では、図７のステップＳ１２に代えて、ステップＳ１２’を実行する例について図示したが、これに限らず、変形例１の処理（図１３の処理）のステップＳ１２に代えて、ステップＳ１２’を実行することとしてもよい。
【００６６】
なお、実移動時間を計測する場合、例えば、ロボット２１Ａが移動している間の動画を撮影し、ロボット２１Ａの移動を撮影していた時間に基づいて実移動時間を計測するようにしてもよい。また、ストップウォッチや動画撮影以外の手段を用いて実移動時間を計測するようにしてもよい。
【００６７】
また、図１４の実動作時間取得部４０’は、初回の工程計画においてロボット２１Ａに割当てられた作業を実行するための動作コマンドを座標ＤＢ５０に基づいて生成し、ロボット２１Ａ（コントローラ）に対して入力するとともに、動作開始時刻と動作完了時刻をロボット２１Ａに出力させる指示を入力してもよい。これにより、実動作時間取得部４０’は、ロボット２１Ａが割当てられた作業を実行した際の動作開始時刻と動作完了時刻をロボット２１Ａから取得することができるため、これらの時刻に基づいて実動作時間を算出することが可能となる。
【００６８】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体（ただし、搬送波は除く）に記録しておくことができる。
【００６９】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００７０】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００７１】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【００７２】
なお、以上の実施形態及び変形例の説明に関して、更に以下の付記を開示する。
（付記１）  制御軸を４軸以上有する垂直多関節ロボットのハンドの直線状の複数の移動経路の移動時間を取得し、
前記複数の移動経路それぞれのベクトルを算出し、
移動時間を推定する対象経路のベクトルの方向と、前記複数の移動経路のベクトルの方向と、を比較して、前記複数の移動経路のうち、ベクトルの方向が前記対象経路のベクトルの方向と最も類似する移動経路を特定し、
特定した前記移動経路のベクトルのスカラー量と、前記対象経路のベクトルのスカラー量と、特定した前記移動経路の移動時間と、に基づいて、前記対象経路の移動時間を推定する、
処理をコンピュータに実行させるためのロボット移動時間推定プログラム。
（付記２）  特定した前記移動経路のベクトルと、前記対象経路のベクトルと、のなす角が所定範囲に含まれるか否かを判断し、
前記判断する処理の結果、前記所定範囲に含まれない場合に、前記推定する処理の実行を禁止する、
処理を前記コンピュータに更に実行させることを特徴とする付記１に記載のロボット移動時間推定プログラム。
（付記３）  前記推定する処理では、前記対象経路のベクトルのスカラー量を、特定した前記移動経路のベクトルのスカラー量で除した結果と、特定した前記移動経路の移動時間との積を算出する、ことを特徴とする付記１又は２に記載のロボット移動時間推定プログラム。
（付記４）  制御軸を４軸以上有する垂直多関節ロボットのハンドの直線状の複数の移動経路の移動時間を取得し、
前記複数の移動経路それぞれのベクトルを算出し、
移動時間を推定する対象経路のベクトルの方向と、前記複数の移動経路のベクトルの方向と、を比較して、前記複数の移動経路のうち、ベクトルの方向が前記対象経路のベクトルの方向と最も類似する移動経路を特定し、
特定した前記移動経路のベクトルのスカラー量と、前記対象経路のベクトルのスカラー量と、特定した前記移動経路の移動時間と、に基づいて、前記対象経路の移動時間を推定する、
処理をコンピュータが実行するロボット移動時間推定方法。
（付記５）  制御軸を４軸以上有する垂直多関節ロボットのハンドの直線状の複数の移動経路の移動時間を取得する取得部と、
前記複数の移動経路それぞれのベクトルを算出する算出部と、
移動時間を推定する対象経路のベクトルの方向と、前記複数の移動経路のベクトルの方向と、を比較して、前記複数の移動経路のうち、ベクトルの方向が前記対象経路のベクトルの方向と最も類似する移動経路を特定する特定部と、
前記特定部が特定した前記移動経路のベクトルのスカラー量と、前記対象経路のベクトルのスカラー量と、特定した前記移動経路の移動時間と、に基づいて、前記対象経路の移動時間を推定する推定部と、
を備えるロボット移動時間推定装置。
（付記６）  前記特定部が特定した移動経路のベクトルと、前記対象経路のベクトルと、のなす角が所定範囲に含まれるか否かを判断する判断部をさらに備え、
前記推定部は、前記判断部の判断の結果、前記所定範囲に含まれない場合に、推定を行わないことを特徴とする付記５に記載のロボット移動時間推定装置。
（付記７）  前記推定部は、前記対象経路のベクトルのスカラー量を、前記特定部が特定した前記移動経路のベクトルのスカラー量で除した結果と、特定した前記移動経路の移動時間との積を算出する、ことを特徴とする付記５又は６に記載のロボット移動時間推定装置。
【符号の説明】
【００７３】
１０  工程計画生成装置（ロボット移動時間推定装置）
４２  動作ベクトル算出部（取得部、算出部）
４４  類似ベクトル抽出部（特定部、判断部）
４８  移動時間算出部（推定部）
【図１】
2018176377.tif 000003
【図２】
2018176377.tif 000004
【図３】
2018176377.tif 000005
【図４】
2018176377.tif 000006
【図５】
2018176377.tif 000007
【図６】
2018176377.tif 000008
【図７】
2018176377.tif 000009
【図８】
2018176377.tif 000010
【図９】
2018176377.tif 000011
【図１０】
2018176377.tif 000012
【図１１】
2018176377.tif 000013
【図１２】
2018176377.tif 000014
【図１３】
2018176377.tif 000015
【図１４】
2018176377.tif 000016
【図１５】
2018176377.tif 000017