(57)【特許請求の範囲】
【請求項１】
所与の作業シーケンスを完了するためのサイクル時間を最小限にするように、ワークセル内で１つのロボットおよび周辺機械セットの配置を最適化するためのコンピュータシステムの動作方法であって、前記コンピュータシステムは、入力デバイスと、ＣＰＵと、データを格納するためのメモリデバイスとを備え、前記方法は、
ａ）前記ＣＰＵによって、ワークセルを表すデータセットを定義し該データセットを前記メモリデバイスに格納するステップと、
ｂ）前記ＣＰＵによって、ロボットと、前記周辺機械セットからの第１の周辺機械とを、前記ワークセル内に配置した情報を計算し、前記情報を現在のレイアウトセットとして指定し当該指定された情報を前記メモリデバイスに格納するステップと、
ｃ）前記ＣＰＵによって、前記ワークセル内に配置するために、前記周辺機械セットから他の周辺機械を選択し、当該選択した他の周辺機械の情報を前記メモリデバイスに格納するステップと、
ｄ）前記ＣＰＵによって、前記現在のレイアウトセット内の各レイアウトについて、最小サイクル時間のために選択される最適化方法を使用して、ステップｃ）で選択された周辺機械を前記ワークセル内に配置するのに可能なロケーションセットを計算するステップであって、最小サイクル時間のために選択される前記最適化方法は、修正された従来の模擬アニーリング方法を備え、前記修正は、
ｉ）前記ＣＰＵによって、模擬アニーリングプロセス中に遭遇する局所極小を計算し、前記局所極小を前記メモリデバイスに格納するステップと、
ｉｉ）前記ＣＰＵによって、局所極小データポイントを取り囲む領域を含む、前記局所極小のそれぞれに対応する誘引（attraction）領域を計算し、前記誘引領域を前記メモリデバイスに格納するステップと、
ｉｉｉ）前記ＣＰＵによって、計算において誘引領域内にないデータポイントに遭遇したときに、模擬アニーリング方法の温度関数を値ゼロに設定することによって、傾斜降下の計算を実行するステップと、
ｉｖ）前記ＣＰＵによって、傾斜降下が誘引領域内にあるデータポイントを生成するときに、誘引領域が傾斜降下の開始されるデータポイントを含むように、誘引領域を再定義し該誘引領域を前記メモリデバイスに格納するステップと
を含むステップと、
ｅ）前記ＣＰＵによって、ステップｄ）で計算された可能なロケーションセットから、計算された最小のサイクル時間に対応するロケーションを表すロケーションサブセットを選択する計算をし、各選択されたロケーションがワークセル内のオブジェクトレイアウトに対応したものであり、前記ＣＰＵによって、前記ロケーションサブセットを現在のレイアウトセットとして指定し当該指定されたサブセットを前記メモリデバイスに格納するステップと、
ｆ）前記ＣＰＵによって、前記周辺機械セット内の前記周辺機械すべてが、前記ワークセル内に配置された情報が得られるまで、ステップｃ）からｅ）を反復するステップと
を備えることを特徴とするコンピュータシステムの動作方法。
【請求項２】
請求項１に記載のコンピュータシステムの動作方法において、
前記ＣＰＵによって、ワークセル内に配置するための順序で、前記周辺機械セット内に周辺機械を配置する情報を計算するステップ
をさらに備えることを特徴とするコンピュータシステムの動作方法。
【請求項３】
請求項２に記載のコンピュータシステムの動作方法において、
前記ＣＰＵは、前記周辺機械がロボットが最もよくアクセスする機械を優先する順序で配置されるように、計算を行う
ことを特徴とするコンピュータシステムの動作方法。
【請求項４】
請求項２に記載のコンピュータシステムの動作方法において、
前記ＣＰＵは、前記周辺機械が大型の機械に対して小型の機械を優先する順序で配置されるように、計算を行う
ことを特徴とするコンピュータシステムの動作方法。
【請求項５】
請求項２に記載のコンピュータシステムの動作方法において、
前記ＣＰＵは、前記周辺機械が、第１の基準としてロボットが最もよくアクセスする機械を優先する順序で、および第２の基準として大型の機械に対して小型の機械を優先する順序で配置されるように、計算を行う
ことを特徴とするコンピュータシステムの動作方法。
【請求項６】
入力デバイスと、
ＣＰＵと、
データを格納するためのメモリデバイスとを備え、
前記ＣＰＵは、前記メモリデバイスからアプリケーションプログラムを読み出して実行し、前記アプリケーションプログラムは、所与の作業シーケンスを完了するサイクル時間を最小化するように、ワークセル内でのロボットおよび周辺機械セットの配置を最適化するためのコードを含み、前記コードが前記ＣＰＵに実行させる方法は、
ａ）前記ＣＰＵによって、ワークセルを表すデータセットを定義し該データセットを前記メモリデバイスに格納するステップと、
ｂ）前記ＣＰＵによって、ロボットと、前記周辺機械セットからの第１の周辺機械とを、前記ワークセル内に配置した情報を計算し、前記情報を現在のレイアウトセットとして指定し当該指定された情報を前記メモリデバイスに格納するステップと、
ｃ）前記ＣＰＵによって、前記ワークセル内に配置するために、前記周辺機械セットから他の周辺機械を選択し、当該選択した他の周辺機械の情報を前記メモリデバイスに格納するステップと、
ｄ）前記ＣＰＵによって、前記現在のレイアウトセット内の各レイアウトについて、最小サイクル時間のために選択される最適化方法を使用して、ステップｃ）で選択された周辺機械を前記ワークセル内に配置するために可能なロケーションセットを計算するステップであって、最小サイクル時間のために選択される前記最適化方法は、修正された模擬アニーリング方法を備え、前記修正は、
ｉ）前記ＣＰＵによって、模擬アニーリングプロセス中に遭遇する局所極小を計算し、前記局所極小を前記メモリデバイスに格納するステップと、
ｉｉ）前記ＣＰＵによって、局所極小データポイントを取り囲む領域を含む、前記局所極小のそれぞれに対応する誘引領域を計算し、前記誘引領域を前記メモリデバイスに格納するステップと、
ｉｉｉ）前記ＣＰＵによって、計算において誘引領域内にないデータポイントに遭遇したときに、模擬アニーリング方法の温度関数を値ゼロに設定することによって、傾斜降下の計算を実行するステップと、
ｉｖ）前記ＣＰＵによって、傾斜降下が誘引領域内にあるデータポイントを生成するときに、誘引領域が傾斜降下の開始されるデータポイントを含むように、誘引領域を再定義し該誘引領域を前記メモリデバイスに格納するステップと
を含むステップと、
ｅ）前記ＣＰＵによって、ステップｄ）で計算された可能なロケーションセットから、計算された最小のサイクル時間に対応するロケーションを表すロケーションサブセットを選択する計算をし、各選択されたロケーションがワークセル内のオブジェクトレイアウトに対応したものであり、前記ＣＰＵによって、前記ロケーションサブセットを現在のレイアウトセットとして指定し当該指定されたサブセットを前記メモリデバイスに格納するステップと、
ｆ）前記ＣＰＵによって、前記周辺機械セット内の前記周辺機械すべてが前記ワークセル内に配置された情報が得られるまで、ステップｃ）からｅ）を反復するステップとを含む
ことを特徴とするＣＡＤ／ＣＡＭコンピュータシステム。
【請求項７】
請求項６に記載のＣＡＤ／ＣＡＭコンピュータシステムにおいて、
前記方法は、前記ＣＰＵによって、ワークセル内に配置するための順序で前記周辺機械セット内に周辺機械を配置する情報を計算するステップをさらに含む
ことを特徴とするＣＡＤ／ＣＡＭコンピュータシステム。
【請求項８】
請求項７に記載のＣＡＤ／ＣＡＭコンピュータシステムにおいて、
前記ＣＰＵは、前記周辺機械がロボットが最もよくアクセスする機械を優先する順序で配置されるように、計算を行う
ことを特徴とするＣＡＤ／ＣＡＭコンピュータシステム。
【請求項９】
請求項７に記載のＣＡＤ／ＣＡＭコンピュータシステムにおいて、
前記ＣＰＵは、前記周辺機械が大型の機械に対して小型の機械を優先する順序で配置されるように、計算を行う
ことを特徴とするＣＡＤ／ＣＡＭコンピュータシステム。
【請求項１０】
コンピュータ実行可能コードを格納したコンピュータ読取り可能な記録媒体であって、前記コードは所与の作業シーケンスを完了させるサイクル時間を最小にするために、入力デバイスと、ＣＰＵと、データを格納するためのメモリデバイスとを備えたコンピュータに、ワークセル内でのロボットおよび周辺機械セットの配置を最適化させるための手段を備え、前記コードは、
ａ）前記ＣＰＵによって、ワークセルを表すデータセットを定義し該データセットを前記メモリデバイスに格納するステップと、
ｂ）前記ＣＰＵによって、ロボットと、前記周辺機械セットからの第１の周辺機械とを、前記ワークセル内に配置した情報を計算し、前記情報を現在のレイアウトセットとして指定し当該指定された情報を前記メモリデバイスに格納するステップと、
ｃ）前記ＣＰＵによって、前記ワークセル内に配置するために、前記周辺機械セットから他の周辺機械を選択し、当該選択した他の周辺機械の情報を前記メモリデバイスに格納するステップと、
ｄ）前記ＣＰＵによって、前記現在のレイアウトセット内の各レイアウトについて、最小サイクル時間のために選択される最適化方法を使用して、ステップｃ）で選択された周辺機械を前記ワークセル内に配置するために可能なロケーションセットを計算するステップであって、最小サイクル時間のために選択される前記最適化方法は、修正された模擬アニーリング方法を備え、前記修正は、
ｉ）前記ＣＰＵによって、模擬アニーリングプロセス中に遭遇する局所極小を計算し、前記局所極小を前記メモリデバイスに格納するステップと、
ｉｉ）前記ＣＰＵによって、局所極小データポイントを取り囲む領域を含む、前記局所極小のそれぞれに対応する誘引領域を計算し、前記誘引領域を前記メモリデバイスに格納するステップと、
ｉｉｉ）前記ＣＰＵによって、計算において誘引領域内にないデータポイントに遭遇したときに、模擬アニーリング方法の温度関数を値ゼロに設定することによって、傾斜降下の計算を実行するステップと、
ｉｖ）前記ＣＰＵによって、傾斜降下が誘引領域内にあるデータポイントを生成するときに、誘引領域が傾斜降下の開始されるデータポイントを含むように、誘引領域を再定義し該誘引領域を前記メモリデバイスに格納するステップと
を含むステップと、
ｅ）前記ＣＰＵによって、ステップｄ）で計算された可能なロケーションセットから、計算された最小のサイクル時間に対応するロケーションを表すロケーションサブセットを選択する計算をし、各選択されたロケーションはワークセル内のオブジェクトレイアウトに対応しており、前記ＣＰＵによって、前記ロケーションサブセットを現在のレイアウトセットとして指定し当該指定されたサブセットを前記メモリデバイスに格納するステップと、
ｆ）前記ＣＰＵによって、前記周辺機械セット内の前記周辺機械すべてが前記ワークセル内に配置された情報が得られるまで、ステップｃ）からｅ）を反復するステップと
を含む方法を、コンピュータに実行させるための手段をさらに備えた
ことを特徴とするコンピュータ読取り可能な記録媒体。
【請求項１１】
請求項１０に記載のコンピュータ読取り可能な記録媒体において、
前記コードは、前記ＣＰＵによって、ワークセル内に配置するための順序で前記周辺機械セット内に周辺機械を配置する情報を計算するステップを、コンピュータに実行させるための手段をさらに備えた
ことを特徴とするコンピュータ読取り可能な記録媒体。
【請求項１２】
請求項１１に記載のコンピュータ読取り可能な記録媒体において、
前記コードは、前記ＣＰＵによって、ロボットが最もよくアクセスする機械を優先する順序で前記周辺機械を配置する計算を行うステップを、コンピュータに実行させるための手段をさらに備えた
ことを特徴とするコンピュータ読取り可能な記録媒体。
【請求項１３】
請求項１１に記載のコンピュータ読取り可能な記録媒体において、
前記コードは、前記ＣＰＵによって、大型の機械に対して小型の機械を優先する順序で前記周辺機械を配置するように、計算を行うステップを、コンピュータに実行させるための手段をさらに備えた
ことを特徴とするコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータソフトウェアユーティリティプログラムに関する。さらに詳細には、コンピュータ援用設計（ＣＡＤ）、コンピュータ援用製造（ＣＡＭ）、およびコンピュータ援用エンジニアリング（ＣＡＥ）の分野におけるプログラムに関し、具体的に言えば、製造設備内でロボットおよび機械の適切な物理的位置を決定するためにこのようなシステムを使用することに関する。
【０００２】
【従来の技術】
従来、ロボットは、自動化された製造プロセスで広く使用されている。ロボットを使用すると、精密で時間効率の高い方法で反復性のタスクを実行することができる。たとえばロボットを、自動車の骨組をスポット溶接するための自動車製造ライン内で使用すると、手作業を利用して達成するよりも、時間効率の高い方法で、溶接部分を精密に配置することができる。他の例では、ワークセル内に配置され、その周囲を他の機械で囲まれたロボットは、ワークセル環境内の様々な周辺機械から部品を取得し、作業端末でその様々な部品を組み立てることによって製品を作成する。典型的な製造プロセスでは、ロボットは２地点間を移動する反復性のシーケンスを実行し、各地点で停止する。たとえば、ロボットは、プログラムされたそれぞれの停止位置でアセンブリにスポット溶接を行う。他の例では、ロボットは組立作業において、実行される組立タスクによって指示される作業シーケンスで、１つの周辺機械から次の機械まで移動する。
【０００３】
ロボットの生産性は、１つの作業シーケンスを完了するためのサイクル時間を最小限にすることによって、かなり向上させることができる。所与のロボットの場合、サイクル時間は、タスクに関するロボットのマニピュレータ（ｍａｎｉｐｕｌａｔｏｒ）ツールの位置、ポイントへの移動シーケンス、アクチュエータの最高速度および加速度、ポイントの相対的位置、ならびにロボットアームの構成など、多くのパラメータによって決まる。また、ロボットがアクセスするポイントの相対的位置によって、すなわちワークセルレイアウトによっても決まる。作業端末で誤って配置されたロボットは、十分な作業効率が得られず、障害を起こす危険性さえある。したがって、指定の作業シーケンスに対するサイクル時間を最小限にできるように、システム用のロボットおよび周辺機械の位置を選択する必要がある。
【０００４】
既存のＣＡＤシステムを使用して、ロボットを含む製造設備をモデリングすることができる。このようなＣＡＤシステムが、ロボットの構成およびワークセル内の周辺機器の構成を詳述したデータを備えている場合、ワークプレースをモデリングするのに使用される。各アイテムは設備をモデリングするためにワークセル内部に配置し、次いで周辺機械はタスクの実行可能性および有効性を調べるために移動することができる。ただし、これまで業界でロボットワークセルの設計用に使用された設計プロセスには、ユーザが実行しなければならない何らかの対話式チェックおよび変更ループが含まれている。このようなプロセスは時間がかかり、レイアウトの品質は人間の設計者に大幅に依存するものである。
【０００５】
ワークセル用に一体化された設計プロセスを実現させるためには、ＣＡＤ／ＣＡＭ／ＣＡＥシステムでサイクル時間を短くするようにロボットおよび周辺機械の位置を最適化するための、自動レイアウトプランニングツールが必要である。
【０００６】
【発明が解決しようとする課題】
従来のシステムには上述したような種々の問題があり、さらなる改善が望まれている。
【０００７】
本発明は、このような問題に鑑みてなされたもので、その目的とするところは、ロボットおよび周辺機械からなるロボットアセンブリワークセルのレイアウトを効率的な方法で見つけるためのシステム、方法、および装置を提供することにある。
【０００８】
【課題を解決するための手段】
したがって、本発明は、ロボットおよび周辺機械からなるロボットアセンブリワークセルに最適またはほぼ最適なレイアウトを効率的な方法で見つけるためのシステム、方法、および装置を提供する。最適なレイアウトは、作業シーケンスを最低時間内で処理できるようにする、ワークセル（ワークスペース）内のロボットおよび周辺機械の配置として定義される。
【０００９】
本発明は、完全な解が得られるまで、変数のステップごとのサブセットをセットアップすることで構成される、「構成アルゴリズム」技法を使用する。もちろん、ワークセル内に配置されるアイテムは、作業に関与するロボットおよび各周辺機械である。本発明の一態様によれば、ワークセルをレイアウトする問題は、第１に、ロボットおよび第１の周辺機械をワークセル内に配置することから着手される。その後、ワークセル内に配置する第２の周辺機械が選択される。本発明の一態様によれば、修正された「模擬アニーリング」方法を使用して、ワークセルのフロア上に、第２の周辺機械を配置することができるロケーションセットを見つける。修正された模擬アニーリング方法は、ワークセル内でロボットと周辺機械とが対話する時間（サイクル時間）を最小限にするようなロケーションを見つける。
【００１０】
本発明の修正された模擬アニーリング方法は、最適に近い第２の周辺機械用の配置セットを導き出す。すなわち、検索で見つけられたロケーションの中に絶対的に最適なものがなくてもよい（ただし、解の１つは絶対的に最適である可能性がある）。それにもかかわらず、この方法によって見つけられたロケーションは、周辺機械を配置するのに最適に近いロケーションを表す。本発明によれば、修正された模擬アニーリング方法は多くの配置問題を生み出す可能性はあるが、（サイクル時間に関して）最高のロケーションのみが維持されて引き続き評価される。模擬アニーリング方法によって生成されたロケーションの残りは、考慮の対象から外される。本発明の好適実施形態によれば、最良のロケーションが５つだけ選択される。したがって、引き続き評価するための部分レイアウトセットは、５つの部分レイアウトからなり、それぞれがそのオリジナルロケーション内にロボットおよび第１の機械を有し、さらにワークセルフロア上の特有ロケーションに第２の周辺機械を有することになる。
【００１１】
修正された模擬アニーリング方法は、新しい機械が追加されたときに、維持されたそれぞれの部分レイアウトに対して実行される。したがって、本発明の一態様によれば、第３の周辺機械が配置用に選択される。その後、第３の周辺機械に可能な配置セットを見つけるために、本発明の修正された模擬アニーリング方法を使用して、部分レイアウトセット内の各部分レイアウトが検索される。この検索プロセスが、５つの維持された部分レイアウトそれぞれに対して、ロボット、第１の２つの周辺機械、および第３の機械を含む、新しい部分レイアウトのセットを導き出す。この検索は、５つの維持された部分レイアウトそれぞれに対して行われるので、第３の周辺機械を含むレイアウトが多数生成される。ただし、本発明の一態様によれば、ここで再度、最高の部分レイアウトだけが引き続き評価するために選択され、残りは考慮の対象から外される。本発明の好適実施形態にしたがって、部分レイアウトはいくつでも選択できると考えられるが、ユーザが望むかまたはＣＰＵ時間の実行可能性によって指示されるように、最高の部分レイアウトが５つだけ選択される。
【００１２】
前述のプロセスは、すべての周辺機械がワークセル環境内に配置されるまで繰り返される。
【００１３】
本発明の他の態様によれば、第１の周辺機械は「受け入れ可能ベースロケーション領域」の中央に配置される。ロボットのアームおよびリストジョイント部の運動上の制限により、ロボットのマニピュレータツールは、任意の単一ロボットベースロケーションについて、その環境内で制限された分散ロケーション数までしか可能ではない。同様に、ロボットのマニピュレータツールが１つのロケーションに固定されており、そのロボットベースが移動可能である場合、その作業範囲を介してロボットのアームおよびリストを動かすと、ワークセルのフロア中をロボットのベースが移動することになる。ロボットがその作業範囲全体を移動するときにロボットベースが移動するワークセルフロア上の範囲が、特定のワークポイントに対して許容可能なロボットのベースロケーション領域を確定する。ロボットを許容可能なベースロケーション領域の外に配置すると、ロボットは作業ポイントに届くことができなくなる。
【００１４】
本発明の他の態様によれば、周辺機械が評価される順序は、ほとんどの作業シーケンスでアクセスされる機械を第１の基準として優先し、小型機械を第２の基準として優先する、機械の選択規則を使用して決定される。その結果、サイクル時間の最適化が改善される。
【００１５】
本発明の他の態様によれば、周辺機械の形状は、模擬アニーリング方法を適用する前に簡略化される。その結果、検索の処理時間が高速化される。
【００１６】
前述のように、修正された「模擬アニーリング」方法は、サイクル時間を最短化するように周辺機械を配置するために最適なポジションセットを見つけるのに使用される。この従来の模擬アニーリングアルゴリズムは、当分野の技術者にはよく知られており、たとえば、参照により本明細書に組み込まれている、Ｓ．ＫｉｒｋｐａｔｒｉｃｋのＣ．Ｄ．Ｇｅｌａｔｔ，Ｊｒ．およびＭ．Ｐ．Ｖｅｃｃｈｉによる、「Ｏｐｔｉｍｉｚａｔｉｏｎ  ｂｙ  Ｓｉｍｕｌａｔｅｄ  Ａｎｎｅａｌｉｎｇ」，Ｓｃｉｅｎｃｅ，２２０（４５９８），ｐｐ．６７１−６８０，１９８３年５月、に記載されている。従来の模擬アニーリングアルゴリズムは、問題に対して１つの独立した最適な解を導き出すだけであり、産業用ＣＡＤシステムのコンテキストで使用するには不満足なものである。さらに模擬アニーリングには、局所極小（ｌｏｃａｌ  ｍｉｎｉｍｕｍ）の最下位までたどり着かない限り、通常の解と局所極小とを区別することができないため、長い計算時間が必要となる場合がある。本発明によれば、従来の模擬アニーリング方法には、この方法に何らかの「便宜主義（ｏｐｐｏｒｔｕｎｉｓｍ）」を構築するために、２つの機能が追加された。
【００１７】
第１の機能は、ローカル検索手順の規則的な適用に対応する、「フリーズヒート（ｆｒｅｅｚｅ−ｈｅａｔ）」サイクルと呼ばれるサイクルを使用することである。この機能の目的は、できる限り迅速に最小の谷（ｖａｌｌｅｙ）を探索することであり、検索スペース内で最も近い局所極小を導き出す。第２の機能は、局所極小およびその「誘引領域」を記憶することである。この方法では、いったん探索した最小の谷には二度と訪れることがなく、他の最小を得ることができる。このように修正すると、実行の終わりに、最適に近い解のセットとそれぞれの近隣に関する知識とが一緒に導き出される。この修正を使用すると、ロボットベースの単一の絶対的に最適なロケーションが見つけ出されるという保証はない。その代わりに、従来の模擬アニーリング方法では必要であった計算リソースをほとんど使用せずに、最適に近い解セットが得られる。
【００１８】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を詳細に説明する。なお、各図面において同様の機能を有する箇所には同一の符号を付し、説明の重複は省略する。
【００１９】
図１は、本実施形態に使用可能なコンピュータシステム１００の物理的なリソースを示す。コンピュータ１００は、データ、アドレス、および制御信号を提供するプロセッサホストバス１０２に接続されたＣＰＵ１０１を備える。プロセッサ１０１は、Ｐｅｎｔｉｕｍ（登録商標）シリーズのプロセッサ、Ｋ６（商標）プロセッサ、ＭＩＰＳ（登録商標）プロセッサ、Ｐｏｗｅｒ  ＰＣ（登録商標）プロセッサ、またはＡＬＰＨＡ（登録商標）プロセッサなどの、どんな従来型汎用シングルチップまたはマルチチップのマイクロプロセッサでもよい。さらにプロセッサ１０１は、デジタル信号プロセッサまたはグラフィックスプロセッサなどの、どんな従来型専用マイクロプロセッサでもよい。マイクロプロセッサ１０１は、従来のアドレス、データ、およびこれをプロセッサホストバス１０２に結合する制御ラインを有することができる。
【００２０】
コンピュータ１００は、一体型ＲＡＭメモリ制御装置１０４を備えるシステム制御装置１０３を含むことができる。システム制御装置１０３はホストバス１０２に接続し、ランダムアクセスメモリ１０５へのインタフェースを提供することができる。システム制御装置１０３は、ホストバスから周辺バスへのブリッジング機能を提供することもできる。これによって制御装置１０３は、プロセッサホストバス１０２上の信号と１次周辺バス１１０上の信号とを、整合性を持たせて交換することができる。たとえば周辺バス１１０は、ＰＣＩ（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ）バス、ＩＳＡ（ｉｎｄｕｓｔｒｉａｌ  ｓｔａｎｄａｒｄ  ａｒｃｈｉｔｅｃｔｕｒｅ）バス、またはマイクロチャネルバスであってもよい。さらに制御装置１０３は、ホストバス１０２と周辺バス１１０との間で一致した、データバッファリングおよびデータ転送速度を提供することができる。これによって制御装置１０３は、たとえば、インタフェースが６４ビット６６ＭＨｚでデータ転送速度が５３３Ｍバイト／秒のプロセッサ１０１を、データパスのビット幅、クロック速度、またはデータ転送速度が異なるデータパスを有するＰＣＩバス１１０にインタフェースさせることができる。
【００２１】
たとえばハードディスクドライブ１１３に結合されたハードディスクドライブ制御インタフェース１１１、ビデオディスプレイ１１５に結合されたビデオディスプレイ制御装置１１２、ならびにキーボードおよびマウス制御装置１２１を含むアクセサリデバイスを、バス１２０に結合し、プロセッサ１０１によって制御することができる。コンピュータシステムは、コンピュータシステムネットワーク、イントラネット、またはインターネットへの接続を含むことができる。こうした接続を介して、データおよび情報を送受信することができる。
【００２２】
コンピュータ１００は、基本的なコンピュータソフトウェアルーチンを格納するために、不揮発性ＲＯＭメモリ１２２を含むこともできる。ＲＯＭ１２２は、構成データを格納するために、ＥＥＰＲＯＭ（ｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）などの変更可能メモリを含むことができる。ＲＯＭ１２２にＢＩＯＳルーチン１２３を含めて、基本的なコンピュータの初期設定、システムテスト、および入力／出力（Ｉ／Ｏ）サービスを提供することができる。ＢＩＯＳ１２３は、オペレーティングシステムをディスク１１３から「ブート」できるようにするルーチンを含むこともできる。高水準オペレーティングシステムの例には、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  ９８（商標）、Ｗｉｎｄｏｗｓ  ＮＴ（商標）、ＵＮＩＸ、ＬＩＮＵＸ、Ａｐｐｌｅ  ＭａｃＯＳ（商標）オペレーティングシステム、または他のオペレーティングシステムがある。
【００２３】
オペレーティングシステムは、ＲＡＭメモリ１０５内に完全にロードするか、またはＲＡＭメモリ１０５、ディスクドライブ格納装置１１３、またはネットワークロケーションにある格納装置に部分的に含めることができる。オペレーティングシステムは、ソフトウェアアプリケーション、ソフトウェアシステム、およびソフトウェアシステムのツールを実行する機能を提供することができる。ソフトウェア機能は、ビデオディスプレイ制御装置１１２およびコンピュータシステム１００の他のリソースにアクセスして、設計のモデル、ロボット構成、ワークスペース、およびワークプレース環境をビデオコンピュータディスプレイ１１５上に提供することができる。
【００２４】
アセンブリワークセルレイアウトの問題および仮定
アセンブリワークセルレイアウトの問題は、ロボットの近隣にあり、ロボットが対話する周辺機械の相対的位置を決定することに関係する。その目的は、１つまたは複数のワークセルの有効性基準を最適化することである。本実施形態によれば、最適化のために満たさなければならない１つの基準、すなわちアセンブリタスクに対応するサイクル時間が考慮された。工業用ＣＡＤ／ＣＡＭ／ＣＡＥシステムでは、このような基準を算出するのに必要な努力がかなりの量にのぼる。実際、制御装置の製造業者がそのロボットに関して独自のシミュレーションモジュールを提供しているように、各評価はロボットの動きのシミュレーションを意味する。
【００２５】
以下の要素の場合、考慮する必要がある。
【００２６】
１．機械の形状が不揃いの可能性がある。この場合、ロボットを基準にした機械の向きで可能な数を制限する表現方法を見つける問題、および機械の重なりを効率的に検出する問題が発生する。
【００２７】
２．各機械が、少なくとも１つのアクセス／送達ポイントを有し、ロボットは機械に関連付けられたタスクを実行するためにこのポイントに届かなければならない。
【００２８】
３．機械は、機械間で保守、修理、およびオペレータの動作が行えるだけの十分なスペースをとらなければならない。このゆとりは機械によって異なる場合がある。
【００２９】
４．アセンブリタスクには、２つ以上のロボットが必要となる場合がある。
【００３０】
５．機械のアクセス／送達ポイントをロボットのワークスペース内に配置し、ロボットはこれに届かなければならない。
【００３１】
６．ロボットのベースは移動可能であってもよい。移動ロボットの場合は、機械の間に動き回る余分なスペースが必要である。
【００３２】
一般的なアセンブリワークセルのレイアウト問題は非常に複雑で組み合わされたものである。したがって、以下のような道理にかなった実践的な、何らかの簡略化および仮定が実行される。
【００３３】
１．ワークセルは、ベースが固定された１つのロボットおよび周辺機械のセットからなる。
【００３４】
２．アセンブリタスクに関連付けられた作業シーケンスが決定される。
【００３５】
３．考慮の対象となる機械のタイプおよび形状は限定されていない。
【００３６】
４．機械にはアクセス／送達ポイントが１つだけある。ほとんどの機械にこのようなポイントが１つしかない場合、この仮定は道理にかなっている。機械上でのアクセスポイントの位置は、機械の「中央」に限定されていない。
【００３７】
５．機械の間にあるスペースのゆとりは、ユーザによって与えられるものである。機械の内部表現は、スペースのゆとりを考慮に入れて決められる。
【００３８】
６．レイアウトに使用できるフロアスペースは、制限されないものと仮定される。使用可能なフロアスペースに合わせて機械をわずかに移動させても、結果にはほとんど影響を与えない。さらにレイアウトは、所与のフロア領域に適合させるために、全体として表示することができる。
【００３９】
実用的および工業的なケースに対して信頼できる解を提供するために、以下の制約を考慮に入れなければならない。
【００４０】
１．機械のアクセスポイントのアクセス可能度。
【００４１】
２．作業が実行されるポイントにロボットツールが届く場合、ロボットとその環境との間の衝突回避。
【００４２】
３．ロボットアームがアクセスポイント間を移動する場合、ロボットとその環境との間の衝突回避。
【００４３】
最終的に、ユーザによって、アセンブリロボットモデル、これと対話する機械、および実行されるアセンブリタスクに対応する作業／対話シーケンスという、初期データが提供される。
【００４４】
ワークセルレイアウト解法
ロボットが所与のアセンブリタスクを実行するための全サイクル時間は、周辺機械など、その環境内でのオブジェクトに対する位置によって決まる。ワークスペースの配置が良くないと、作業効率が悪くなる。これが、特定のタスクが実施される間にマニピュレータの性能が最適化されるような方法で、レイアウトを選択する際の問題につながる。
【００４５】
既存のロボットＣＡＤシステムでは、サイクル時間を最適化するためのプロセスは非常に時間がかかる作業である。本実施形態によれば、このタスクは、周辺機械がワークスペースに１つずつ加えられる構成アルゴリズム方法を使用することによって、より効率的になっている。周辺機械が追加されるごとに、修正された模擬アニーリング方法を使用して、新しい周辺機械を含む可能なレイアウトセッが決定される。最高のレイアウトだけが引き続き評価するために受け入れられる。この方法は、ＣＰＵ時間を削減するためにロボットおよび周辺機械の幾何形状を簡略化することによって能率的になる。さらにこの方法は、アセンブリプロセスでしばしばアクセスされる周辺機械を優先すること、および小型の機械を優先することによって決定される特有の順序で周辺機械を追加することによって能率的になり、その結果、しばしばアクセスされる機械がロボットの近くに配置され、小型の機械はロボットの周囲に、その周辺に大型の機械が集められることになる。
【００４６】
図２を参照すると、本実施形態の方法の概略図が示されている。システムは、特有のロボットモデルの幾何形状５０、各周辺機械の幾何形状５１、およびアセンブリ作業シーケンス５２に関して、システム内部またはシステム外部のいずれかに格納されたデータを使用する。ステップ５３では、本明細書で詳細に記述される「ランク表」が計算される。このランク表の情報を使用して、サイクル時間が計算される。これは、ロボットが特定の機械にアクセスする回数、および機械間での移動回数を記録する。ステップ５４では、周辺機械がワークセル内に配置される順序が決定される。好適実施形態では、機械の配置シーケンスは、ランク表からの情報ならびに周辺デバイスの構成に関する情報を使用して、下記のように決定される。
【００４７】
ステップ５５では、ロボットがワークスペース内に配置され、第１の周辺機械は、ロボットがアクセスしやすいようにロボットの近くに配置される。この構成は、「ａ０」と明示された第１のレイアウトとして明示される。ステップ５６では、カウンタであるパラメータ「ｉ」および「ｊ」が値１に初期設定される。下記のように、値「ｉｍａｘ」は加えられる機械の合計数に対応し、値「ｊｍａｘ」は下記のように機械が追加されるときに評価されるレイアウト数に対応する。パラメータ「ａ」は個々のレイアウトを明示し、パラメータ「Ａ」は機械「ｉ」の全レイアウトセットである。
【００４８】
したがって、プロセスを続行していくと、次にサイクル時間が最小になるような方法で、第２の周辺機械をワークセル内に配置することが望まれる。本実施形態によれば、下記に記載する修正された模擬アニーリング方法を使用して、第２の周辺機械について可能な配置セットが生成される。修正された模擬アニーリング方法が生成する可能性のある可能なロケーション数は、任意に制限されるものではない。この方法は、ワークスペースの構成およびワークスペース内にある他のオブジェクトに応じて、２、３の配置だけを生成するか、または多数の配置を生成することができる。例示の目的で１５の可能な配置が生成されると仮定すると、それぞれの配置が１５の部分レイアウトのうちの１つを定義し、ロボットおよび第１の機械は同じ場所にあるが、第２の機械は異なる場所にある。１５の部分レイアウトは、第２の機械に対応する部分レイアウトセット「Ａ」内に配置される（ステップ５８）。プロセスはステップ５９へ進み、ここではパラメータ「ｊ」が「ｊｍａｘ」に等しいかどうかに関する照会が実行される。パラメータ「ｊ」はステップ５６で値１に初期設定されたカウンタであり、パラメータ「ｊｍａｘ」は評価の基準として使用されている現在の部分レイアウト数であることを想起されたい。この段階で、現在の部分レイアウトは１つしかない、すなわちロボットおよび第１の機械を備えた１つのレイアウトしかないので、「ｊｍａｘ」は値１を有する。したがって、ステップ５９の照会の答えは「はい」となり、ステップ６１に進む。ステップ６１では、修正された模擬アニーリング方法で生成された１５の部分レイアウトのサイクル時間が相互に比較され、最高のものだけが選択される。使用可能なＣＰＵ時間に応じて部分レイアウトをいくつ選択するかは、ユーザの責任で定義される。好適実施形態では、最高のレイアウトが５つだけ維持され、残りは考慮の対象から外される。これで、評価を続ける部分レイアウトセットには５つの部分レイアウトが含まれるので、「ｊｍａｘ」の値は５に設定される。機械番号２の部分レイアウトセットを決定すると、その機械番号に対応するカウンタ、すなわち「ｉ」は値１だけ進む（ステップ６２）ので、プロセスを残りの機械にも繰り返すことができる。
【００４９】
ステップ６３に進むと、追加する機械が他にもあるかどうか（ｉ＝ｉｍａｘであるか）に関する照会が実行される。追加する機械が他にもある場合（ステップ６３で「いいえ」）は、ステップ６４に進み、カウンタ「ｊ」は値１にリセットされる。次いで、現在の５つの部分レイアウトそれぞれに対して、模擬アニーリングプログラムが実行される。したがって、ステップ５７に戻り、修正された模擬アニーリング方法が現在の５つの部分レイアウトのうちの第１を開始し、第３の周辺機械を含む可能なレイアウトセットを生成する。これらのレイアウトはセット「Ａ」に格納され（ステップ５８）、「ｊ」の値は１、「ｊｍａｘ」の値は５となるので、ステップ５９の照会の答えは「いいえ」となる。「ｊ」の値はステップ６０で１だけ増え、修正された模擬アニーリング方法が再度実行されて、開始ポイントとして現在の５つの部分レイアウトのうちの２番目を使用して、第３の周辺機械を含む可能なレイアウトセットが導き出される。このプロセスは、第３の機械の部分レイアウトを生成するための開始ポイントとして、現在の部分レイアウト５つが全部使用されるまで続行される。この時点で、値「ｊ」は「ｊｍａｘ」に等しくなり、前述のように好適実施形態では値５を有し、ステップ５９の照会の答えは「はい」となる。
【００５０】
この段階で機械番号３を含む部分レイアウトセットは潜在的に非常に大きくなる可能性がある。たとえば、現在の５つの部分レイアウトそれぞれについて、１５の新しいレイアウトが生成された場合、機械番号３の部分レイアウトセットには７５の部分レイアウトが含まれることになる。再度、ステップ６１では、すべてのレイアウトが比較され、最高のものだけが維持される。残りを消去することによって、処理時間は道理にかなった限界値に制限される。プロセスは、すべての機械がレイアウト（ｉ＝ｉｍａｘ）（ステップ６３）内に配置されるまで繰り返され、この時点でプロセスは終了する。プロセスの最後には、ユーザが「ｊｍａｘ」に値５を選択したと仮定し、ユーザには５つの完全なレイアウトが提示される。
【００５１】
解析の際に考慮の対象とならない要素があるために、実際には１つまたは複数のレイアウトが実行可能であることが証明できないので、複数の解を有することは有利である。さらに、作業環境またはシーケンスに何らかの変更が加えられ、１つまたは複数の解が発展不可能となった場合でも、ユーザにはまだ選択する他の解がある。
【００５２】
以上、本実施形態の方法全体について述べてきた。次に、本発明の好適実施形態に従った、本実施形態の修正された模擬アニーリング方法ならびにプロセスを最適化するための方法について述べる。
【００５３】
作業シーケンスの定義
アセンブリタスクに関連付けられた作業シーケンスを記述するための標準的なＣＡＤ／ＣＡＭ／ＣＡＥツールがこのタスクに適さないため、好適実施形態でユーザが必要とする対話回数を最小限に抑える、新しいユーザインタフェースが設計された。
【００５４】
ユーザはこのインタフェースを使用すると、ロボットのワークスペース内にある作業ポイント間ではなく、機械間でのロボットの動きを定義することができる。具体的に言えば、ユーザが何を「機械間対話」と呼んでいるかを定義することができる。このような対話は、ロボットがある要素（ピースまたはツール）を１つの所与の機械から第２の機械へ運ぶときに発生する。この点について、ロボットが何も持たずに機械間を移動する場合の対話は、機械間対話ではないことに留意されたい。実際、このような対話は以前の対話から推断できるので、明示的に指定する必要はない。
【００５５】
これは例示的なものとして図示されている。ワークセルは、１つのロボットおよび３つの周辺機械（機械１、機械２、および機械３）で構成される。実行されるタスクは、機械１から所与のピースを連続して２回把持してこのピースを機械２上に配置すること、機械３にある所与のツールを把持して機械２にあるピースを組み立てること、およびツールを機械３に戻すことである。
【００５６】
ユーザは提案されたインタフェースを使用して、単に最初および目標の機械名を連続してクリックし、対話の反復回数を入力することによって、機械間対話を記述することができる。これらのステップは、機械１と機械２との間の対話に関して、図３に示されている。図４に示すように、ユーザは対話シーケンスを記述しながら、これまでに定義した対話をチェックすることができる。すべての対話がここに表示される。
【００５７】
その後、機械シーケンス（すなわちロボットが機械の場所へ移動しなければならない順序）が対話シーケンスから直接推断される。これまでに使用した例では、次のようなシーケンスになる。
【００５８】
機械１−機械２−機械１−機械２−機械３−機械２−機械３
次に、サイクル時間を計算するのに使用するランク表が生成される（図５）。表のｉ，ｉ要素は、ロボットが機械ｉにアクセスする回数である。表のｉ，ｊ要素およびｊ，ｉ要素は、順序に関係なく、機械ｉと機械ｊとの間の移動回数（対話ではない）に対応する。
【００５９】
３次元機械表示の簡略化
ここで示される２次元の機械内部表示は、最適化中に発生する非常に多くの衝突計算を簡略化することを目的とする。これは、任意の直線で囲まれた形状の機械、すなわち、矩形、Ｌ型、またはＴ型の機械など、いくつかの低レベル矩形要素（略して矩形）で構成される機械を正確に記述するものである。円形または多角形などの形状は、境界を示す矩形で表されるだけである。ほとんどの機械の形状は直線で囲まれているので、このような近似も道理にかなっている。
【００６０】
第１に、フロアスペース上にある機械の２次元近似輪郭が以下のように計算され、
【００６１】
【数１】
Ｂ＝｛ｂｉ／１≦ｉ≦ｍ｝
上式で、
ｂｉは機械ｉの境界を示す矩形であり、
ｍは機械の数である。
【００６２】
次に、機械ｉの３次元初期表示からｂｉを構成する矩形のセットが以下のように推断され、
【００６３】
【数２】
Ｂｉ＝｛ｂｉｊ／１≦ｊ≦ｍｉ｝
上式で、
ｂｉｊは機械ｉの分解された矩形ｊであり、
ｍｉは機械ｉの分解された矩形数である。
【００６４】
区分された各矩形ｂｉｊ、ｘｉｊ、およびｙｉｊは、矩形ｂｉｊの中心のｘおよびｙ座標である。矩形ｂｉｊの幅および長さはｗｉｊおよびｌｉｊである。直線で囲まれた機械内にある別々の構成矩形は、ソリッド接続（ｓｏｌｉｄ−ｃｏｎｎｅｃｔｅｄ）されていると想定するが、これはこれら矩形間のオフセットが一定に維持されているという意味である。したがって、配置プロセス中に、セットＢｉ内にあるすべての矩形ｂｉｊ間のオフセットを維持しなければならない。表示を簡単にする目的で、ｂｉの中心からｂｉｊの中心までのオフセットｘおよびｙを表すために、２つの定数としてｘｏｉｊおよびｙｏｉｊを与えている。機械ｉの境界を示す矩形ｂｉの場合、ｘｉおよびｙｉはｂｉの中心のｘおよびｙ座標である。ｂｉの幅および長さはｗｉおよびｌｉである。次いで、直線で囲まれた機械ｉの中心を、それに関係する境界を示す矩形ｂｉの中心として定義すること、およびｂｉからｂｉｊまでのｘオフセットおよびｙオフセットを、それぞれｘｏｉｊ＝ｘｂｉｊ−ｘｉおよびｙｏｉｊ＝ｙｂｉｊ−ｙｉとして定義することができる。図６は、直線で囲まれた機械とその区分された矩形セルとの関係を実証するための簡単な例である。この例で使用されるすべての変数および定数は、これら表記の関係を例示するためにラベル表示されたものである。
【００６５】
重なり合った機械の検出
以前の表示は、重なり合った機械を２次元で検出する、単純かつ迅速な機能を提供している。実際に、ロボットのワークセルレイアウト問題に関して探求された解は、機械の重なりＣｍｏがゼロであるという基準の下で、事前定義されたタスクを達成するのに必要なサイクル時間を最小限にするためのものである。Ｃｍｏは以下のように定義することができる。
【００６６】
【数３】
0003604005.tif 000002
【００６７】
数式（１）では、重なり距離ｏｄｉｊ，ｋｌはｂｋｌとｂｉｊとの間の機械の重なりを符号で表したものである。これは以下のように定義することが可能であり、
【００６８】
【数４】
0003604005.tif 000003
【００６９】
【数５】
0003604005.tif 000004
【００７０】
上式で
ｉｄｉｊ，ｋｌは、機械の重なりを最小限にするｂｋｌとｂｉｊとの間の理想的な最短距離であって、
数式（２）で使用される関数ｆｈ（．）は、０〜１ハードリミットしきい値関数であり、ｘ＞０の場合はｆｈ（ｘ）＝１、そうでない場合はｆｈ（ｘ）＝０である。
【００７１】
ｂｋｌとｂｉｊとの間のユークリッド距離ｄｉｊ，ｋｌは、以下のように定義され、
【００７２】
【数６】
0003604005.tif 000005
【００７３】
上式で、ｄｘｉｊ，ｋｌ＝ｘｂｋｌ−ｘｂｉｊおよびｄｙｉｊ，ｋｌ＝ｙｂｋｌ−ｙｂｉｊはそれぞれ、ｂｋｌの中心からｂｉｊの中心までのｘおよびｙ座標変位として定義される。図７は、この表示方法を実証するために、単純なＬ型機械および矩形機械を使用した一例である。
【００７４】
ワークセルフロアの定義
好適実施形態で使用されるワークセルレイアウトの最適化方法では、各機械の初期配置を計算する必要がある。この配置では、特に機械の重なりを避けなければならない。
【００７５】
このような配置を決定するために、Ｂ．Ｋ．Ａ．Ｎｇｏｉ  ａｎｄ  Ｋ．Ｗｈｙｂｒｅｗ，「Ａ  Ｆａｓｔ  Ｓｐａｔｉａｌ  ＲｅｐｒｅｓｅｎｔａｔｉｏｎＭｅｔｈｏｄ」，Ｔｈｅ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｊｏｕｒｎａｌ  ｏｆ  Ａｄｖａｎｃｅｄ  Ｍａｎｕｆａｃｔｕｒｉｎｇ  Ｔｅｃｈｎｏｌｏｇｙ，８（２），ｐｐ．７１〜７７、１９９３年で示された「空間表示方法」から導出されたワークセルフロア表示が使用された。２次元マトリックスは機械が配置されるごとに更新され、フロアスペース上での機械の現在のレイアウトを表す。マトリックスの第１行および第１列は、レイアウトのｘおよびｙ座標に対応する。残りのマトリックスセルには、機械の占有に応じて「０」または「１」が含まれる（「０」は空きスペースを表す）。
【００７６】
図８は、初期フロアスペースの表示方法を示す図である。初期の２次元マトリックスが、理解しやすいように概略的な方法で表示されている。前述のように、使用可能なスペースは無限であると仮定されている。
【００７７】
例示のために、「機械１」と名付けられ、寸法がｌ１＝４０およびｗ１＝５０の矩形型の機械が、ｘ１＝５２０およびｙ１＝５２０でフロア上に配置されると仮定する。次いでこの２次元マトリックスは４×４マトリックスに拡張され、フロアスペースはフロア領域上に点線で示された９セクションに分割される（図９）。
【００７８】
次いで、図１０に示すように、「機械２」と名付けられ、寸法がｌ２１＝３０、ｗ２１＝６０、ｌ２２＝４０、およびｗ２２＝３０のＬ型機械が、ｘ２＝３００およびｙ２＝７００で配置された場合、取得されるマトリックスは７×７である。
【００７９】
より多くの周辺機械がフロアスペース上に配置されるに従って、追加情報を収容するために２次元マトリックスがステップごとに拡張される。機械がフロア上に配置されるときには、空きセルだけが選択される。したがってこのフロア表示は、最適化方法が適用されるときに、機械にとって可能な初期位置を決定する迅速な方法を提供することになる。
【００８０】
連続的な機械配置規則
前述のように、本実施形態の方法に従って、ワークセルのレイアウトに周辺機械が１つずつ追加され、各ステップで本実施形態の修正された模擬アニーリング方法を使用し、追加される機械に最適な配置が見つけられる。機械はどのような順序でも追加することができる。ただし、好適実施形態により、ロボットが最もよくアクセスする小型の機械が第１にワークセルに追加されると、良い結果が得られる。ワークセル内に配置される機械を連続的に選択するために、非常に効率的であることが証明された、Ｍ．Ｌ．Ｔａｙ  ａｎｄ  Ｂ．Ｋ．Ａ．Ｎｇｏｉ，「Ｏｐｔｉｍｉｓｉｎｇ  Ｒｏｂｏｔ  Ｗｏｒｋｃｅｌｌ  Ｌａｙｏｕｔ」，Ｔｈｅ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｊｏｕｒｎａｌ  ｏｆ  ＡｄｖａｎｃｅｄＭａｎｕｆａｃｔｕｒｉｎｇ  Ｔｅｃｈｎｏｌｏｇｙ，１２（５），ｐｐ．３７７〜３８５、１９９６年で提案された既存の規則が使用された。
【００８１】
配置される第１の機械を選択することは、後続の機械を選択することとは幾分か異なる。これは機械の需要、すなわちロボットが機械にアクセスしなければならない回数に基づいている。最高需要値を基準として使用する理由は、最も需要の高い機械が、他の機械と最も多く対話するからである。したがって、これが第１に配置され、対話の際に使用する他の機械がその周囲に配置されなければならない。同じ最高需要値を有する機械が複数存在する場合は、ベース領域が最も小さい機械が選択されることになる。
【００８２】
後続の機械は、以下の基準に従って選択され、
【００８３】
【数７】
0003604005.tif 000006
【００８４】
上式で、
Ｉｉｊは、機械ｉがすでに配置された機械ｊと対話する回数（ｉ≠ｊ）、
Ｉｍａｘｊは、機械ｊに関連付けられた最大対話値、
Ｓｉは、機械ｉの規準化されたベース領域、
ｎは機械の合計数、
ｋはサイズに割り当てられた重み付け値で０．５に等しい。
【００８５】
規準化されたベース領域Ｓｉは、以下のように定義され、
【００８６】
【数８】
0003604005.tif 000007
【００８７】
上式で、
Ａｍｉｎは、機械間で最小のベース領域、
Ａｉは機械ｉの領域である。
【００８８】
数式（５）および（６）は領域の小さな機械を好むため、大型機械はワークセルの周囲に配置される。
【００８９】
機械の配置
これまで論じたように、ロボットが第１にワークセル内に配置される。次いで第１の周辺機械がワークセル内に配置される。この段階では、ワークスペース内に、第１の機械に関してロボットの動きに対する障害物となる他の機械がないため、最適化は実行されない。したがって、第１の機械は単に、ロボットと機械の幾何学的配置によって決定されるような、ロボットに容易にアクセスできるロケーションに配置されるだけである。本発明の好適実施形態に従い、第１の機械は、図１１の項目６０に示した「許容ベースロケーション領域」の中心に配置される。Ｄａｓｓａｕｌｔ−Ｓｙｓｔｅｍｅｓ，Ｓｕｒｅｓｎｅｓ，Ｆｒａｎｃｅによって販売されている「ＣＡＴＩＡ設計およびロボットプログラミング解法（ＣＡＴＩＡ  Ｄｅｓｉｇｎ  ａｎｄ  Ｒｏｂｏｔ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｓｏｌｕｔｉｏｎ）」システムの「衝突テスト」機能など、既存のＣＡＤシステムの標準機能を使用して、図１１に示すように、許容ロボットベースロケーション領域が計算される。
【００９０】
ａ）許容ベースロケーション領域
図１１および１２を参照すると、許容ベースロケーション領域を決定する方法が詳細に記載されている。許容ベースロケーション領域とは、その中にロボットベースが配置されると、ロボットのマニピュレータが所与の作業ポイントに届く、平面部分のことである。この領域を決定するには、ロボットの物理的な幾何学および運動学を考慮しなければならない。この方法は、ワークスペース内の６次元基準フレーム（ｓｉｘ−ｄｉｍｅｎｓｉｏｎａｌ  ｒｅｆｅｒｅｎｃｅ  ｆｒａｍｅ）に届く所与のロボットマニピュレータを物理的に観察することに基づいている。現在の（リストに３つの直交交差軸を備えた６軸の）産業用ロボットでは、主アーム（位置を確定する最初の３つの軸、図１２の項目４１、４２、および４３）とリスト（向きを確定する後の３つの軸）とを別個のものとして考えることができる。
【００９１】
図１２を参照すると、ロボットのベース用基準フレームとしてＲｏ、ロボットのリスト中心用基準フレームとしてＲｐ、エフェクタ終端用基準フレームまたはツール基準としてＲｅ、ならびに届くことのできる溶接ポイントにリンクされた基準フレームとしてＲａを定義している。Ｒｏは、ＲｅとＲａが一致するときに、円柱座標系（ｒ、θ、ｚ）を使用して、Ｒｐに関して便利に参照することができる。
【００９２】
この座標系では、３軸の主アームについて、以下の数式システムが得られ、
【００９３】
【数９】
0003604005.tif 000008
【００９４】
上式で、ｌｉはアームのセグメントｉの長さ、ｑｉは結合部位ｉの値である。
【００９５】
この数式システムを使用して、水平面内（ｚが定数）でのｒの値を、ｑ２、ｑ３、またはｑ２＋ｑ３に応じて解析的に計算することができる。
【００９６】
この方法は、第１に次の２つの段階で進行する。
【００９７】
１．制限範囲内（すなわちｑ２ｍｉｎ＜ｑ２＜ｑ２ｍａｘ；ｑ３ｍｉｎ＜ｑ３＜ｑ３ｍａｘ）で主アームのジョイント部を走査する（ｓｗｅｅｐ）ことによる、ロボットベースのワークスペースの解析。この解析によって１組の円が導き出される。
【００９８】
２．エルボー構成（すなわち０＜ｑ３＜π）および閉じた運動連鎖（すなわちｑｐｍｉｎ＜ｑ２＋ｑ３＜ｑｐｍａｘ）に従った制限値の解析。この解析によっても、１組の円が導き出される。
【００９９】
次いで、リストジョイント部制限の制限値を考慮に入れる必要がある。３つの共点軸を有し、その１つがスポット溶接ロボットで最も一般的に使用されるリストの場合、リストの動作範囲の制限は、ジョイントｑ５の変位が実際に小さい（すなわちｑ５ｍｉｎ＜ｑ５＜ｑ５ｍａｘ）という事実に従う。図１３の表記を使用すると、
【０１００】
【数１０】
0003604005.tif 000009
が軸４の方位ベクトルであり、
【０１０１】
【数１１】
0003604005.tif 000010
が軸６の方位ベクトルであって、リストの制約は、以下の形式を取る。
【０１０２】
【数１２】
0003604005.tif 000011
【０１０３】
α＝ｑ２＋ｑ３−３π／２であるとすれば（図１３を参照）、リストがその限界にあるロボットベースロケーションを解析的に計算することができる。
【０１０４】
１組の作業ポイント内にある各ポイントについて解析を実行し、その共通部分が許容ベースロケーション領域の範囲を定めている、１組の平面領域または表面を導き出す。作業ポイントが１つしか存在しない場合は、平面が１つだけ生成される。これらのセクションは、１組の曲線または直線の投影によって境界が定められる平面の部分である、表面によって表される。例に示したように、図１１は１作業ポイントおよび「エルボーアップ位置」について、これらセクション６０のうちの１つを示す。ロボットのベースがこの表面内のどこかにあれば、ロボットはこの作業ポイントに届くことができる。作業ポイントの所与の組の場合、許容ベースロケーション領域は、すべての作業ポイント表面に共通の平面内の領域となる。
【０１０５】
ｂ）模擬アニーリング
ロボットおよび第１の周辺機械がワークスペース内に配置されると、次いで、図２を参照しながら上記で述べたように、残りのすべての機械について最適または最適に近い配置を見つけるために、本実施形態の修正された模擬アニーリング技法が使用される。次に、模擬アニーリング方法を簡単に説明した後、模擬アニーリング方法の修正について説明する。
【０１０６】
模擬アニーリング方法の概念は、たとえば、Ｓ．Ｋｉｒｋｐａｔｒｉｃｋ．Ｃ．Ｄ．Ｇｅｌａｔｔ，Ｊｒ．およびＭ．Ｐ．Ｖｅｃｃｈｉによる「Ｏｐｔｉｍｉｚａｔｉｏｎ  ｂｙ  Ｓｉｍｕｌａｔｅｄ  Ａｎｎｅａｌｉｎｇ」，Ｓｃｉｅｎｃｅ，２２０（４５９８），ｐｐ．６７１〜６８０、１９８３年５月に記載されている。模擬アニーリングとは、多くの変数の関数を最小限にするような、最適化問題を解決するための方法を指す言葉である。典型的には、本明細書ではコストと呼ぶ、たとえばサイクル時間などの関数を最小限にする何らかのパラメータ構成を見つけることが含まれる。
【０１０７】
模擬アニーリングは、反復的な改善に基づいており、何らかの既存の２次最適構成または解を開始することおよびこれを小規模に摂動することが含まれる。新しい構成または解が古いものよりも良い場合は、新しい解が受け入れられ、プロセスが再度開始される。この単純な反復方法は、古い構成の改善である場合は新しい構成だけが受け入れられるといった、幾分粗野な方法である。したがって、図１４を参照すると、初期の構成から開始される。これを摂動してよい解だけを受け入れ、すなわち下り坂だけを移動する。したがって、最終的にポイントＡに到達すると、上り坂は移動できないので、それ以上どこにも動くことはできない。そこで、大域極小がポイントＢにあっても、局部極小Ａにはまりこんでしまう。
【０１０８】
模擬アニーリングは、次のような方法で発生する。第１に最小化の開始ポイントが選択され、現在ポイントとしてラベル表示される。次に、そのポイントの隣りに新しいポイントが選択される。新しいポイントが現在のポイントよりも低い関数値を有する場合は、単純な反復方法の場合と同様に、自動的に次のステップの「現在」ポイントとして適合される。そうでなければ、次いでランダムな数が引き出される。このランダム数が、新しいポイントが現在ポイントとして適合されるかどうかを決定する。これによって、模擬アニーリングに、局所極小から飛び出す能力が与えられる。
【０１０９】
模擬アニーリングの実施には、新しいポイントが受け入れられる確率、いわゆる温度降下関数、および温度降下数という、３つのパラメータを規定することが含まれる。これらは次のように記述される。
【０１１０】
１．新しいポイントが受け入れられる確率。
【０１１１】
新しいポイントｊと現在のポイントｉとの差異がゼロよりも小さい場合、受け入れの確率は１である。この差異がゼロよりも大きい場合、受け入れの確率は、
【０１１２】
【数１３】
ｐ（Δｃｉ，ｊ、Ｔ）＝ｅｘｐ（−Δｃｉ，ｊ／Ｔ）
【０１１３】
となり、上式では、
【０１１４】
【数１４】
Δｃｉ，ｊ＝ｃ（ｊ）−ｃ（ｉ）
【０１１５】
となる。
【０１１６】
Ｔは、コスト関数と同じユニットの、「温度」と呼ばれる単なる制御パラメータある。
【０１１７】
この値Ｔは、最初は比較的大きいので、多くのコスト上昇移動が受け入れられる。最適化プロセス中に温度は徐々に降下するので、よりコストの少ない移動が受け入れられていく。
【０１１８】
２．温度降下関数。
Ｋｉｒｋｐａｔｒｉｃｋ（Ｓ．Ｋｉｒｋｐａｔｒｉｃｋ，Ｃ．Ｄ．Ｇｅｌａｔｔ  Ｊｒ．およびＭ．Ｐ．Ｖｅｃｃｈｉの「Ｏｐｔｉｍｉｚａｔｉｏｎ  ｂｙ  Ｓｉｍｕｌａｔｅｄ  Ａｎｎｅａｌｉｎｇ」，Ｓｃｉｅｎｃｅ，２２０（４５９８），ｐｐ．６７１〜６８０、１９８３年５月）は、０．９５の温度降下率を提唱した。Ｓｅｃｈｅｎ（Ｃ．Ｓｅｃｈｅｎの「ＶＬＳＩ  Ｐｌａｃｅｍｅｎｔ  ａｎｄ  Ｇｌｏｂａｌ  Ｒｏｕｔｉｎｇ  Ｕｓｉｎｇ  Ｓｉｍｕｌａｔｅｄ  Ａｎｎｅａｌｉｎｇ」，Ｋｌｕｗｅｒ  Ａｃａｄｅｍｉｃ  Ｐｕｂｌｉｓｈｅｒｓ，Ｂｏｓｔｏｎ，１９８８年）は、高温または低温では、システムがわずかな状態変化しか要求しないことを指摘した。ただし中温では、状態変化は極めて重要である。したがって温度降下率を以下のように、最高および最低温度では０．８に設定し、中温では０．９５に設定することができる。
【０１１９】
【数１５】
Ｔｎ＝α（Ｔ）Ｔｎ−１  （０＜α（Ｔ）＜１）
ここでα（Ｔ）は温度降下率を示す。
【０１２０】
初期温度は、計算の始めに遭遇した最初の１０のレイアウトを受け入れるように選択される。
【０１２１】
３．温度降下数。
この目標は、温度を初期値の５％まで降下させることである。したがって、温度降下数は、温度降下関数から直接導出することができる。
【０１２２】
模擬アニーリングは、一般に図１５の流れ図を参照して示される。始めに、ステップ２００で第１のポイントが選択され、ステップ２０１で現在の解として設定される。さらにステップ２０２で、模擬アニーリング方法の初期パラメータＴおよびｋが設定される。次いで、ステップ２０３で、現在のポイントの隣にあるポイントに関して、サイクル時間コスト解が計算され、その後ステップ２０４で、これと現在の解とが比較される。ステップ２０５で、新しい解が現在の解よりも低い場合（はい）、ステップ２０６で、現在の解の値が自動的に新しい解の値に置き換えられ、このプロセスが繰り返される。ただし、ステップ２０５で新しい解が現在の解よりも高い場合（いいえ）、０から１の間の数がランダムに選択され（ステップ２０７）、次いでステップ２０８に示すように、前述の確率関数によって決定された確率値と比較される。ランダム数の生成および前述の確率関数が、新しいポイントが現在のポイントとして適合されるかどうかを決定し、模擬アニーリングに局所極小から飛び出す能力を与える。ステップ２０８で確率関数が新しい値が受け入れられることを示す場合（はい）、次いで、実際のところ現在の解としては良い解ではないが、新しいポイントが現在のポイントとして設定される（ステップ２０６）。他方、ステップ２０８で新しいポイントが拒否された場合（いいえ）、その後次の反復セットで温度を降下させるべきであるかどうかを決定する（ステップ２０９）。これは、所定数の近隣解が評価されたかどうかによって決定される。ステップ２０９で降下させない場合（いいえ）、同じ温度値を使用してプロセスが繰り返される。ステップ２０９で十分な解数が評価された場合（はい）、その後ステップ２１０で、前述の温度降下関数に従ってＴの値が降下される。ステップ２１１で、温度の最小値が達成されるまでこのプロセス全体が繰り返され、ここでプロセスは終了する。温度を変える前に評価される近隣解の数は、初期には経験に基づいて推測することによって設定され、その後は実験に基づいた知識によって設定される。
【０１２３】
ｃ）修正された模擬アニーリング
本実施形態は、周辺機械の最適な配置を見つける確率を増加させること、およびＣＰＵ時間を削減することによって、模擬アニーリング方法を改善するように、この方法を変更および拡張することに関するものである。これらの変更は、いくつかの理由によって実行された。従来の模擬アニーリングを使用すると得られる、単一の独立した最適な解を取得することは、産業用ＣＡＤシステムのコンテキストでは満足できるものではない。修正された模擬アニーリングを使用すると、機械の配置に関して複数の選択を実行することができる。
【０１２４】
さらに、模擬アニーリング方法には長い計算時間が必要である。大量の計算が必要な理由の１つは、模擬アニーリングが、局所極小の最下位にまで達しない限り、局所極小と通常の解とを区別できないことである。初期段階で、模擬アニーリングは温度が高いときに広域の探索スペースをサンプリングするが、局所極小の深いところまで達するのは、かなり後の、温度が下がったときだけである。すなわち、初期の時点で検索が大域極小の誘引領域（ａｔｔｒａｃｔｉｏｎ  ｄｏｍａｉｎ）に入ったとしても、模擬アニーリング方法はローカル検索を実行せず、領域全体の検索を続行する。これはかなり望ましくない。従来の模擬アニーリング方法に何らかの「便宜主義」を構築することが有利であるので、検索の初期段階でローカル探査を行うことを約束している。本実施形態によれば、修正された模擬アニーリングアルゴリズムは、以下の２つの新しい機能を使用して、この目的を達成するように設計された。
【０１２５】
フリーズヒートサイクル
ローカル探査問題の解を見つけ出すためには、２つの要素が重要である。その第１は、ローカル検索の約束が、実際には傾斜降下の実行を意味することである。第２は、温度がゼロに近づいたときに、模擬アニーリングが傾斜降下と同等であることである。したがって、模擬アニーリングアルゴリズムに便宜主義を加えるためには、局所極小の最下位に達するのに必要な長さだけ、温度をほぼゼロまで下げれば十分である。その後、温度は初期の減衰スケジュールを再開することができる。この方法が「フリーズヒートサイクル」と呼ばれる。
【０１２６】
局所極小の記憶
できる限り速く最小の谷を探索し（フリーズ）、できる限り速くそこから抜け出して（ヒート）、二度とそこへは戻らないことが、理想的に有利である。同じ局所極小を再訪しないために、本実施形態に従って、これまでに見つけたすべての局所極小のリストと、その誘引領域の推定とが一緒に格納される。このため、そこからの傾斜降下がこの局所極小で終了すると思われる局所極小の誘引領域が、すべてのポイントのセットとして定義される。実際にはこのようなセットを解析的に記述することは不可能であり、誘引領域は、傾斜降下の初期ロケーションを通過する局所極小を中心とした円に対応することになる。これは図１６にグラフィック表示されており、円９０内部の領域が誘引領域である。直径ｄ（９３）は、局所極小９１から解、すなわちロケーション９２までの距離によって確立され、ここから降下アルゴリズムが適用されて局所極小９１が発見された。図１７に示したように、その後いつでも、誘引領域９０の外部にある他のロケーション９５からの傾斜降下が９０内部の構成内で終わることを検索中に、誘引領域９０のサイズがロケーション９５を含むように更新され、その結果、円９６によって境界が示された拡張済みの誘引領域が生じる。このような誘引領域は、実際の局所極小誘引領域のサイズを過大評価する場合がある。ただし、修正された方法は、良い結果を与えながら、模擬アニーリング方法の収束特性に影響を与えないように公式化される。傾斜降下は、実際には任意の既存誘引領域の外部にある構成からのみ開始されるが、構成が誘引領域内部にあると、模擬アニーリングはランダムステップの実行を続けて新しい極小を導き出すことができる。
【０１２７】
図１８を参照すると、本実施形態の修正された模擬アニーリングアルゴリズムの方法が示されている。このように、ワークスペースから最初の周辺機械配置が選択され（ステップ６００）、このロケーションが現在の解として設定され（ステップ６０１）、温度関数が初期設定される（ステップ６０２）。その後、現在の解が誘引領域内部にあるかどうかが判定される（ステップ６０３）。内部にある場合は、標準の模擬アニーリングが適用されて、領域内で大域最適を探す。図１８に示すように、これにはステップ６０４からステップ６１５が含まれ、ステップ６０７、６１３、および６１５で呼び出された照会「Ｔ＝０」への答えは、否定で応答される。この場合、温度降下関数に従って、温度が下げられる。
【０１２８】
ただし、現在の解が誘引領域内にない場合は、その後、Ｔの値がゼロに設定されることでフリーズヒートサイクルが適用され（ステップ６１９）、その結果降下アルゴリズムが生成されて、局所極小から飛び出す、すなわち「上り坂」を進んでいく可能性のない極小方向へと即時に働く。評価される解が誘引領域内にない場合、２つの結果のどちらかが発生する。降下アルゴリズム中に、解が既存の誘引領域内に降下していくと、その後既存の誘引領域は、降下アルゴリズムの起源である解を含むように更新され、この場合、図１７に示したように、その誘引領域のサイズが増加される。これは、図１８のステップ６１６に示されている。このステップでは、ステップ６１３の照会が肯定応答（Ｔ＝０）であるので、ステップ６０６で判定された初期解よりも良い解が、ステップ６１６に到達する。ステップ６１６では、新しい解が既存の誘引領域内にあるかどうかが判定され、その後、降下の起源である解を含むように誘引領域が更新されて（ステップ６１７）、その結果誘引領域が拡張される。
【０１２９】
他方で、降下アルゴリズム中に、解が既存の誘引領域内に入らずに極小まで降下した場合は、その後局所極小が新しい誘引領域の中心で見つかったかどうかが判定される。この場合は、対応する誘引領域が作成および格納される（図１８のステップ６２１および６２２）。
【０１３０】
コスト関数
前述の模擬アニーリング方法への修正を介して、莫大なＣＰＵ時間を必要としない、最適および最適に近い解を見つけ出す方法が得られる。
【０１３１】
修正された模擬アニーリングを使用して、選択された機械に可能な配置セットを見つける。計算された位置は、仮定を記述したセクションで言及された制約のみで制限される検索スペース内において、コスト関数の局所極小である。
【０１３２】
コスト関数は、以下に定義した数式（９）から計算され、
【０１３３】
【数１６】
0003604005.tif 000012
【０１３４】
上式で、
ｔｉｊは、ロボットが機械ｉから機械ｊまで移動するのに必要な時間、
Ｉｉｊは、機械ｉがすでに配置された機械ｊと対話する回数（ｉ≠ｊ）、
ｎはすでに配置された機械数である。
【０１３５】
値ｔｉｊは、ＣＡＤ／ＣＡＭ／ＣＡＥシステムで使用可能な標準機能を使用して得られることに留意されたい。
【０１３６】
選択された機械の所与の配置についてＦｉを評価する前に、アクセスポイントのアクセス可能性および重なりがないことが確認される。配置された機械の間でロボットが移動することの実行可能性も保証されており、ロボットの移動が不可能な場合は、移動時間を計算するのに使用される標準機能がエラーメッセージを戻す。
【０１３７】
修正された模擬方法が初期解として使用する初期の機械の位置および向きは、前述のワークセルフロア表示を使用して決定される。配置する機械の境界の１つがすでに配置された機械と一致するように、十分な数の空きマトリックスセルが選択される。このようなロケーションが良好な関数値を保証しない場合であっても、初めは、機械間のスペースを最小にする特権が与えられている。
【０１３８】
部分レイアウト選択規則
前述のように、本実施形態の方法の「構成アルゴリズム」部分では、各ステップで機械が選択され、修正された模擬アニーリング方法を使用して、選択された機械のいくつかの可能な配置が決定される。したがって、すでに配置されたｎ個の機械を含む部分的に構成されたレイアウトは、ｎ＋１個の機械を含むｍ個のレイアウトセットを導き出し、ｍは配置する機械に可能なロケーション数に対応する。
【０１３９】
発見されたすべての機械配置のレイアウトを構成するには、爆発的に多くの計算が必要となる。したがって、部分レイアウトの選択規則が必要である。この規則は、標準的な構成方法に比べて、追加的な機能である。
【０１４０】
使用される方式は、構成ステップの後で生成されたすべての部分レイアウトの中で、最良のｋを維持する。最も有効なｋの値は、経験に基づいて、５であることが証明されている。この値が、最高の「サイクル時間／ＣＰＵ時間」の比を導き出す。
【０１４１】
したがって実行の最後には、５つの最適なワークセルレイアウトがユーザに提供される。このような結果は、いくつかの理由で有用である。たとえば、ワークセルの幾何学的モデリングは、実際の世界では十分な精度を示さない。修正された模擬アニーリング方法から得られた配置が、性能の低下を導き出すような位置で囲まれており、この機械配置が最終的な最適レイアウトの１つにあると思われる場合、この結果を実際の現場に転送することはできない。
【０１４２】
例
ここで、本実施形態の方法を適用する例を、１台のロボットおよび１０台の機械を使用するワークセルに関して記述する。最適化前の３次元表示を図１９に示す。
【０１４３】
この例の作業シーケンスは、以下のとおりである。
【０１４４】
１．ロボットは、機械６からドライブシャフトを連続して６回把持し、これらを円形の割出し台（機械１）上にある６つのアセンブリ取付け具に配置する。
【０１４５】
２．機械７からベアリングとスラスト座金の組み合わせを取得し、これを機械１の取付け具に連続して６回取り付ける。
【０１４６】
３．その後ロボットはグリース計量ユニットである機械２を把持し、機械１にある６つの取付け具すべてのハウジング内歯にグリースを塗布する。
【０１４７】
４．機械８で段付きシャフトが６回把持され、機械１のハウジングに取り付けられる。
【０１４８】
５．機械４で３つの円筒ピンが次々と把持され、機械１の段付きシャフト内に取り付けられる。この手順が次々と６回繰り返される。
【０１４９】
６．機械３から３つのギアホイールが連続して６回把持され、ピン上に配置される。
【０１５０】
７．機械９でファンホイールが６回把持され、機械１のドライブシャフトに取り付けられる。
【０１５１】
８．機械５から取得したスプリングナットが、機械１の各ドライブシャフトに取り付けられる。
【０１５２】
９．最後に、組み立てられたユニットが割出し台から取り外され、１つずつコンベヤベルト（機械１０）上に配置される。
【０１５３】
図２０および２１はそれぞれ、上記の作業シーケンスから生成されたサイズ表およびランク表である。
【０１５４】
前の表から、プログラムの各ステップで値Ｃｉ（数式（５）を参照）が計算された。機械が配置された順序は、次のとおりである。
【０１５５】
機械１−機械７−機械４−機械５−機械９−機械６−機械８−機械３−機械１０−機械２
【０１５６】
結果の比較
本実施形態の修正された模擬アニーリング方法は、確率論的な方法である。したがって、この方法の結果は、実行するごとに異なる場合がある。このセクションで示しレイアウトは、結果を例示するために、どちらも単一の応用例から得られたものである。図２２は最適なレイアウトを示し、図２３は最適に近い、他の計算された５つの解を示す。どちらのレイアウトも機械の間にスペースがあることに留意されたい。
【０１５７】
前の方法と比較するために、Ｍ．Ｌ．Ｔａｙ  ａｎｄ  Ｂ．Ｋ．Ａ．Ｎｇｏｉ，「Ｏｐｔｉｍｉｓｉｎｇ  Ｒｏｂｏｔ  Ｗｏｒｋｃｅｌｌ  Ｌａｙｏｕｔ」，Ｔｈｅ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｊｏｕｒｎａｌ  ｏｆ  Ａｄｖａｎｃｅｄ  Ｍａｎｕｆａｃｔｕｒｉｎｇ  Ｔｅｃｈｎｏｌｏｇｙ，１２（５），ｐｐ．３７７〜３８５、１９９６年によって提案された方法が、Ｄａｓｓａｕｌｔ−Ｓｙｓｔｅｍｅｓ，Ｓｕｒｅｓｎｅｓ，Ｆｒａｎｃｅによって販売されている市販のＣＡＤプログラムである「ＩＧＲＩＰ」で修正および実施されているので、比較が可能であった。使用されたロボットは、デカルト座標ロボットではなく、Ｒｅｎａｕｌｔ  Ａｕｔｏｍａｔｉｏｎ，ｒｕｅ  Ｊｕｌｅｓ  Ｇｕｅｓｄｅｓ，９１１３０  Ｒｉｓ−Ｏｒａｎｇｉｓ，Ｆｒａｎｃｅが構築したＡＣＭＡ  Ｘ５８である。「Ｔ＆Ｎレイアウト」と名付けられた取得レイアウトが、図２４に示されている。
【０１５８】
表１は、図２２、２３、および２４に示されたレイアウトのサイクル時間を示す表である。表２は、両方の方法がワークセルレイアウトを最適化するために必要な計算時間を示す表である。
【０１５９】
【表１】
0003604005.tif 000013
【０１６０】
【表２】
0003604005.tif 000014
【０１６１】
したがって、最適なレイアウトは、従来技術のＴ＆Ｎレイアウトに比べて、サイクル時間を２４．６５秒減らし、１０．２％の改善となっている。さらに、最適に近いレイアウトは、この研究の追加の制約を考慮しなければ、非常に良い解であると言える。
【０１６２】
本実施形態の方法に対応する計算時間は、Ｔ＆Ｎ方法の計算時間よりも長い。にもかかわらず、（１）本方法は、産業用ＣＡＤ／ＣＡＭ／ＣＡＥシステムのコンテキストに適合しており、（２）いくつかのレイアウトが得られ、（３）Ｔ＆Ｎ方法とは異なり、問題に関連付けられた調査スペース、すなわちすべての可能なレイアウトを含む調査スペースが広範囲に渡って検索される。
【０１６３】
統計結果
以前に述べたように、この方法は確率論的である。したがって、その性能を研究するには統計結果が重要である。このプログラムは連続して５０回実行された。表３は、サイクル時間の平均および標準偏差を示した表である。「最適なレイアウト」とは、実際には「取得された５つの中で最高のレイアウト」を意味し、「最悪な最適に近いレイアウト」とは、「取得された５つの中で最悪のレイアウト」を意味する。表４は計算時間に対応する。
【０１６４】
【表３】
0003604005.tif 000015
【０１６５】
【表４】
0003604005.tif 000016
【０１６６】
したがって、前のセクションで得られた結果が確認される。本実施形態の方法が、Ｔ＆Ｎ方法に比べて平均１１．２％の改善を導き出していること、およびこれまでに得られた最高のレイアウトはサイクル時間２０９．６５秒という結果を出したことに留意されたい。
【０１６７】
前述の方法は、ＣＡＤ／ＣＡＭシステムによって定義されることが可能な任意のワークプレース構成に適用できることに留意されたい。本実施形態は、デジタル電子回路、すなわちコンピュータのハードウェア、ファームウェア、ソフトウェア、またはこれらの組み合わせで実施することができる。本実施形態の装置は、プログラム可能プロセッサが実行するために、機械読取り可能記憶デバイス内で具体的に実施されるコンピュータプログラム製品で実施することが可能であり、本実施形態の方法のステップは、入力データで作業して出力を生成することによって本実施形態の機能を実行するために、命令プログラムを実行するプログラム可能プロセッサによって実行することができる。
【０１６８】
本実施形態は、データ格納システム、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスから、データおよび命令を受信し、これらにデータおよび命令を送信するために結合された、少なくとも１つのプログラム可能プロセッサを含むプログラム可能システム上で実行可能な、１つまたは複数のコンピュータプログラム内で実施できるので有利である。アプリケーションプログラムは、高水準の手続き型プログラミング言語またはオブジェクト指向プログラミング言語で実施するか、または所望であればアセンブリ言語または機械言語で実施してもよく、いずれの場合も、この言語はコンパイルまたは翻訳処理された言語であってよい。
【０１６９】
一般にプロセッサは、読取り専用メモリおよび／またはランダムアクセスメモリから、命令およびデータを受け取る。コンピュータプログラム命令およびデータを具体的に実施するのに好適な格納デバイスは、たとえばＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内部ハードディスクおよび取外し可能ディスクなどの磁気ディスク、光磁気ディスク、ならびにＣＤ−ＲＯＭディスクなどを含む、すべての形式の不揮発性メモリを含む。前述のいずれも、特別設計のＡＳＩＣ（特定用途向け集積回路）を補足するか、またはこれに組み込むことができる。
【０１７０】
以上、本発明のいくつかの実施形態について述べてきた。本発明の精神および範囲を逸脱することなく、様々な修正が実行できることが理解されよう。ただし、その他の実施は、添付の特許請求の範囲内であるものとする。
【図面の簡単な説明】
【図１】本発明実施形態の使用可能なコンピュータシステムを示す構成図である。
【図２】本発明実施形態のシステムを表す概略図である。
【図３】本発明実施形態の機械間の対話を定義するためのグラフィックツールの一例を示す図である。
【図４】本発明実施形態の機械の対話シーケンスを搬送するグラフィック表示の一例を示す図である。
【図５】本発明実施形態の特定の機械にロボットがアクセスする回数、ならびに所与の作業シーケンスに関する機械間の対話回数を、編成および格納するためのランク表の一例を示す図である。
【図６】本発明実施形態のワークセル内に配置される機械の形状を簡略化するための、機械の境界矩形とその対応する構成矩形との間の関係を示す図である。
【図７】本発明実施形態のワークセル内での機械間の重なり距離および理想距離を示す図である。
【図８】本発明実施形態のオブジェクトがワークセル内に配置される前の、ワークセルフロアスペースの２次元表現を示す図である。
【図９】本発明実施形態の１つのオブジェクトがその上に配置されたワークセルフロアスペースの２次元表示を示す図である。
【図１０】本発明実施形態の３つのオブジェクトがその上に配置されたワークセルフロアスペースの２次元表示を示す図である。
【図１１】本発明実施形態の水平面内の許容可能ベースロケーション領域内にそのベースが位置付けされたロボットをグラフィック表示した図である。
【図１２】移動軸を示す座標系内に配置されたロボットをグラフィック表示した図である。
【図１３】許容可能なベースロケーション領域を決定するための解析フレームワークを提供する、ロボットのリストジョイント座標系をグラフィック表示した図である。
【図１４】局部極小が存在するときに、単一の反復方法を使用して大域極小を決定する問題を示す図である。
【図１５】模擬アニーリング方法を示す概略図である。
【図１６】本発明実施形態の「誘引領域」をグラフィック表示した図である。
【図１７】本発明実施形態の初期データポイントから誘引領域への傾斜降下によって生じる、誘引領域の拡大をグラフィック表示した図である。
【図１８】本発明実施形態の修正された模擬アニーリング方法を示す概略図である。
【図１９】本発明実施形態の最適化を実行する前の、例のワークセルレイアウトをグラフィック表示した図である。
【図２０】本発明実施形態のワークセルの例について、生成されるマシンのサイズ表を示す図である。
【図２１】本発明実施形態の例について、生成されるランク表を示す図である。
【図２２】本発明実施形態の例について、生成される最適なワークセルレイアウトをグラフィック表示した図である。
【図２３】本発明実施形態の例について、生成される他のワークセルレイアウトをグラフィック表示した図である。
【図２４】本発明実施形態の例について、従来技術の方法によって生成されるワークセルレイアウトをグラフィック表示した図である。
【符号の説明】
６０  許容ベースロケーション領域
６１  主アーム
６２  主アーム
６３  主アーム
９０  前の誘引領域
９１  局所極小
９２  ロケーション
９５  降下アルゴリズムの適用元である解
９６  更新された誘引領域
１００  コンピュータ
１０１  ＣＰＵ
１０２  ＣＰＵバス
１０３  システム制御装置
１０４  ＤＲＡＭ制御装置
１０５  ＲＡＭ
１０６  キャッシュＳＲＡＭ
１１０  周辺バス
１１１  ブリッジ制御装置
１１２  ビデオ制御装置
１１４  ネットワークアダプタ
１１５  ビデオディスプレイ
１２０  ＩＳＡバス
１２１  キーボード制御装置、ＲＴＣ、シリアルおよびパラレルポート
１２２  ＲＯＭ
１２３  ＢＩＯＳ
１２４  オーディオ
【図１】
0003604005.tif 000017
【図２】
0003604005.tif 000018
【図３】
0003604005.tif 000019
【図４】
0003604005.tif 000020
【図５】
0003604005.tif 000021
【図６】
0003604005.tif 000022
【図７】
0003604005.tif 000023
【図８】
0003604005.tif 000024
【図９】
0003604005.tif 000025
【図１０】
0003604005.tif 000026
【図１１】
0003604005.tif 000027
【図１２】
0003604005.tif 000028
【図１３】
0003604005.tif 000029
【図１４】
0003604005.tif 000030
【図１５】
0003604005.tif 000031
【図１６】
0003604005.tif 000032
【図１７】
0003604005.tif 000033
【図１８】
0003604005.tif 000034
【図１９】
0003604005.tif 000035
【図２０】
0003604005.tif 000036
【図２１】
0003604005.tif 000037
【図２２】
0003604005.tif 000038
【図２３】
0003604005.tif 000039
【図２４】
0003604005.tif 000040