(57)【特許請求の範囲】
【請求項１】
ワークを設置するための台座と、
前記台座の上を移動するヘッドと、
前記ヘッドを前記台座の第１の軸方向に移動させるための第１の駆動機構と、
前記ヘッドを前記台座の第２の軸方向に移動させるための第２の駆動機構と、
前記第１の駆動機構および前記第２の駆動機構を制御する制御部とを備え、
前記制御部は、
前記ヘッドが、前記ワークの複数のポイントを通過する場合において、前記ヘッドが現在のポイントから次のポイントまで曲線軌跡を描く動作で通過したときの移動コストを計算し、
前記移動コストが最少になるように前記ヘッドの次の移動先のポイントを選定し、
前記曲線軌跡は、前記ヘッドの直前のポイントと、前記現在のポイントと、前記次のポイントとに接する円上を通過する軌跡である、制御装置。
【請求項２】
ワークを設置するための台座と、
前記台座の上を移動するヘッドと、
前記ヘッドを前記台座の第１の軸方向に移動させるための第１の駆動機構と、
前記ヘッドを前記台座の第２の軸方向に移動させるための第２の駆動機構と、
前記第１の駆動機構および前記第２の駆動機構を制御する制御部とを備え、
前記制御部は、
前記ヘッドが、前記ワークの複数のポイントを通過する場合において、前記ヘッドの直前のポイントと、現在のポイントとを通過する直線上にあるポイントＰを求め、
前記ヘッドが前記現在のポイントから次のポイントまで曲線軌跡を描く動作で通過したときの移動コストを計算し、
前記移動コストが最少になるように前記ヘッドの次の移動先のポイントを選定し、
前記ポイントＰから前記現在のポイントまでの距離と、前記現在のポイントから前記次のポイントまでの距離とは等しく、
前記曲線軌跡は、前記ポイントＰと、前記現在のポイントと、前記次のポイントとに接する円上を通過する軌跡である、制御装置。
【請求項３】
前記制御部は、
前記直前のポイントと、前記現在のポイントと、前記次のポイントとが直線上に並ぶか否かを判定し、
前記直前のポイントと、前記現在のポイントと、前記次のポイントとが直線上に並ぶ場合、前記ヘッドが前記現在のポイントから前記次のポイントまでを直線軌跡を描く動作で通過したときの移動コストを計算し、
前記直前のポイントと、前記現在のポイントと、前記次のポイントとが直線上に並ばない場合、前記ヘッドが前記現在のポイントから前記次のポイントまでを前記曲線軌跡を描く動作で通過したときの移動コストを計算する、請求項１または２に記載の制御装置。
【請求項４】
前記制御部は、
前記ヘッドのポイントの通過順序の決定後に、前記ヘッドが各ポイントを通過するときの通過経路が前記ヘッドの最小旋回半径以上となるように、前記ヘッドの通過経路を決定する、請求項１〜３のいずれかに記載の制御装置。
【請求項５】
前記制御部は、
前記ヘッドが前記曲線軌跡を描く動作で通過したときの移動コストに基づいて、前記ヘッドのポイントの通過順序を決定した後に、２−ｏｐｔ法により前記ヘッドのポイントの通過順序を変更する、請求項１〜４のいずれかに記載の制御装置。
【請求項６】
前記制御部は、
前記ヘッドが曲線軌跡を描く動作で通過したときの移動コストの計算方法と、前記ヘッドが直線軌跡を描く動作で通過したときの移動コストの計算方法との選択の入力を受け付け、
前記ヘッドが直線を描く動作で通過したときの移動コストの計算方法は、前記現在のポイントから前記次のポイントまでの距離の誤差許容値が０より大きいとき、前記現在のポイントを頂点としたときの、前記直前のポイントおよび前記現在のポイントを結ぶ線分と、前記現在のポイントおよび前記次のポイントを結ぶ線分との角度が１８０度から小さくなるほど移動コストが増加する、請求項１または２に記載の制御装置。
【請求項７】
制御装置におけるヘッドのワーク上の各ポイントの通過順序を求める方法であって、
ヘッドが、前記ワーク上の複数のポイントを通過する場合において、前記ヘッドが現在のポイントから次のポイントまで曲線軌跡を描く動作で通過したときの移動コストを計算するステップと、
前記移動コストが最少になるように前記ヘッドの次の移動先のポイントを選定するステップとを含み、
前記曲線軌跡は、前記ヘッドの直前のポイントと、前記現在のポイントと、前記次のポイントとに接する円上を通過する軌跡である、方法。
【請求項８】
制御装置におけるヘッドのワーク上の各ポイントの通過順序を求める方法であって、
ヘッドが、前記ワーク上の複数のポイントを通過する場合において、前記ヘッドの直前のポイントと、現在のポイントとを通過する直線上にあるポイントＰを求めるステップと、
前記ヘッドが前記現在のポイントから次のポイントまで曲線軌跡を描く動作で通過したときの移動コストを計算するステップと、
前記移動コストが最少になるように前記ヘッドの次の移動先のポイントを選定するステップとを含み、
前記ポイントＰから前記現在のポイントまでの距離と、前記現在のポイントから前記次のポイントまでの距離とは等しく、
前記曲線軌跡は、前記ポイントＰと、前記現在のポイントと、前記次のポイントとに接する円上を通過する軌跡である、方法。
【請求項９】
前記直前のポイントと、前記現在のポイントと、前記次のポイントとが直線上に並ぶか否かを判定するステップと、
前記直前のポイントと、前記現在のポイントと、前記次のポイントとが直線上に並ぶ場合、前記ヘッドが前記現在のポイントから前記次のポイントまでを直線軌跡を描く動作で通過したときの移動コストを計算するステップと、
前記直前のポイントと、前記現在のポイントと、前記次のポイントとが直線上に並ばない場合、前記ヘッドが前記現在のポイントから前記次のポイントまでを前記曲線軌跡を描く動作で通過したときの移動コストを計算するステップとをさらに含む、請求項７または８に記載の方法。
【請求項１０】
前記ヘッドのポイントの通過順序の決定後に、前記ヘッドが各ポイントを通過するときの通過経路が前記ヘッドの最小旋回半径以上となるように、前記ヘッドの通過経路を決定するステップをさらに含む、請求項７〜９のいずれかに記載の方法。
【請求項１１】
前記ヘッドが前記曲線軌跡を描く動作で通過したときの移動コストに基づいて、前記ヘッドのポイントの通過順序を決定した後に、２−ｏｐｔ法により前記ヘッドのポイントの通過順序を変更するステップをさらに含む、請求項７〜１０のいずれかに記載の方法。
【請求項１２】
前記方法は、前記ヘッドが曲線軌跡を描く動作で通過したときの移動コストの計算方法と、前記ヘッドが直線軌跡を描く動作で通過したときの移動コストの計算方法との選択の入力を受け付けるステップをさらに含み、
前記ヘッドが直線を描く動作で通過したときの移動コストの計算方法は、前記現在のポイントから前記次のポイントまでの距離の誤差許容値が０より大きいとき、前記現在のポイントを頂点としたときの、前記直前のポイントおよび前記現在のポイントを結ぶ線分と、前記現在のポイントおよび前記次のポイントを結ぶ線分との角度が１８０度から小さくなるほど移動コストが増加する、請求項７または８に記載の方法。
【請求項１３】
請求項７〜１２のいずれかに記載の方法を制御装置に実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、制御装置に関し、より特定的には、制御装置のヘッドによるワーク上の各ポイントの通過順序の決定に関する。
【背景技術】
【０００２】
ロボットアーム、検査装置、ピックアップ装置およびハンダ付け装置等の制御装置において、各装置に取り付けられたヘッドは、作業台またはワーク上の複数のポイントを通過することで一つの作業を完了することがある。その際、制御装置の作業効率を向上させるために、ヘッドによる各ポイントの最適な通過順序を求めることが重要になる。ここでの「通過順序」とは、ワーク上の複数のポイントの各々を通過する順序を意味する。
【０００３】
制御装置のヘッドによるワーク上の各ポイントの通過順序の決定に関し、例えば、特開２０１７−１８１１８８号公報（特許文献１）は、「前記基板の表面側に設定された複数の検査範囲に対応する位置へ前記表面側照射手段及び前記表面側撮像手段を予め定めた検査順序に基づき順次移動させ、当該複数の検査範囲に係る画像取得処理を順次実行すると共に、前記基板の裏面側に設定された複数の検査範囲に対応する位置へ前記裏面側照射手段及び前記裏面側撮像手段を予め定めた検査順序に基づき順次移動させ、当該複数の検査範囲に係る画像取得処理を順次実行する構成であって、前記基板の表面側について、前記表面側照射手段及び前記表面側撮像手段が移動する経路が所定の起点からの最短経路となるよう前記検査順序が設定され、及び／又は、前記基板の裏面側について、前記裏面側照射手段及び前記裏面側撮像手段が移動する経路が所定の起点からの最短経路となるよう前記検査順序が設定されていることを特徴とする」基板検査装置を開示している（段落［００２５］参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−１８１１８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示された技術によると、制御装置のモーターの負荷を抑制するようにヘッドによる各ポイントの通過順序を決定することができない。したがって、制御装置のモーターの負荷を抑制するようにヘッドによる各ポイントの通過順序を決定する技術が必要とされている。
【０００６】
本開示は、上記のような背景に鑑みてなされたものであって、ある局面における目的は、制御装置のモーターの負荷を抑制するようにヘッドによる各ポイントの通過順序を決定する技術を提供することにある。
【課題を解決するための手段】
【０００７】
本開示の一例では、制御装置が提供される。当該制御装置は、ワークを設置するための台座と、台座の上を移動するヘッドと、ヘッドを台座の第１の軸方向に移動させるための第１の駆動機構と、ヘッドを台座の第２の軸方向に移動させるための第２の駆動機構と、第１の駆動機構および第２の駆動機構を制御する制御部とを備える。制御部は、ヘッドが、ワークの複数のポイントを通過する場合において、ヘッドが現在のポイントから次のポイントまで曲線軌跡を描く動作で通過したときの移動コストを計算し、移動コストが最少になるようにヘッドの次の移動先のポイントを選定する。
【０００８】
上記の開示によれば、制御装置は、ヘッドが各ポイントを曲線の軌跡を描いて通過するのに適した各ポイントの通過順序を求めることができる。
【０００９】
上記の開示において、曲線軌跡は、ヘッドの直前のポイントと、現在のポイントと、次のポイントとに接する円上を通過する軌跡である。
【００１０】
上記の開示によれば、制御装置は、ヘッドの直前のポイントと、現在のポイントと、次のポイントに基づいて、現在のポイントから次のポイントまでの曲線軌跡における移動コストを算出することができる。
【００１１】
上記の開示において、制御部は、ヘッドの直前のポイントと、現在のポイントとを通過する線分上にあるポイントＰを求める。ポイントＰから現在のポイントまでの距離と、現在のポイントから次のポイントまでの距離とは等しく、曲線軌跡は、ポイントＰと、現在のポイントと、次のポイントとに接する円上を通過する軌跡である。
【００１２】
上記の開示によれば、制御装置は、ポイントＰを使用することで、現在のポイントから次のポイントまでの曲線軌跡における移動コストと、実際の制御装置の移動距離との誤差を小さくすることができる。
【００１３】
上記の開示において、制御部は、直前のポイントと、現在のポイントと、次のポイントとが直線上に並ぶか否かを判定し、直前のポイントと、現在のポイントと、次のポイントとが直線上に並ぶ場合、ヘッドが現在のポイントから次のポイントまでを直線軌跡を描く動作で通過したときの移動コストを計算し、直前のポイントと、現在のポイントと、次のポイントとが直線上に並ばない場合、ヘッドが現在のポイントから次のポイントまでを曲線軌跡を描く動作で通過したときの移動コストを計算する。
【００１４】
上記の開示によれば、制御装置は、直前のポイントと、現在のポイントと、次のポイントとの位置関係に基づいて、適切な計算方法で移動コストを計算することができる。
【００１５】
上記の開示において、制御部は、ヘッドのポイントの通過順序の決定後に、ヘッドが各ポイントを通過するときの通過経路がヘッドの最小旋回半径以上となるように、ヘッドの通過経路を決定する。
【００１６】
上記の開示によれば、制御装置は、ヘッドを駆動する駆動部にかかる負荷を抑制しつつ、決定した通過順序に基づいてヘッドを移動させることができる。
【００１７】
上記の開示において、制御部は、ヘッドが曲線軌跡を描く動作で通過したときの移動コストに基づいて、ヘッドのポイントの通過順序を決定した後に、２−ｏｐｔ法によりヘッドのポイントの通過順序を変更する。
【００１８】
上記の開示によれば、制御装置は、２−ｏｐｔ法により通過順序を変更することで、ヘッドの移動距離を削減することができる。
【００１９】
上記の開示において、制御部は、ヘッドが曲線軌跡を描く動作で通過したときの移動コストの計算方法と、ヘッドが直線軌跡を描く動作で通過したときの移動コストの計算方法との選択の入力を受け付ける。ヘッドが直線を描く動作で通過したときの移動コストの計算方法は、現在のポイントから次のポイントまでの距離の誤差許容値が０より大きいとき、現在のポイントを頂点としたときの、直前のポイントおよび現在のポイントを結ぶ線分と、現在のポイントおよび次のポイントを結ぶ線分との角度が１８０度から小さくなるほど移動コストが増加する。
【００２０】
上記の開示によれば、制御部は、直線軌跡を描く動作で通過したときの移動コストの計算方法において、ヘッドの進行ルートに近いポイントを優先して選択することができる。
【００２１】
本開示の他の例では、制御装置におけるヘッドのワーク上の各ポイントの通過順序を求める方法が提供される。当該方法は、ヘッドが、ワーク上の複数のポイントを通過する場合において、ヘッドが現在のポイントから次のポイントまで曲線軌跡を描く動作で通過したときの移動コストを計算するステップと、移動コストが最少になるようにヘッドの次の移動先のポイントを選定するステップとを含む。
【００２２】
上記の開示によれば、ヘッドが各ポイントを曲線の軌跡を描いて通過するのに適した各ポイントの通過順序を求めることができる。
【００２３】
上記の開示において、曲線軌跡は、ヘッドの直前のポイントと、現在のポイントと、次のポイントとに接する円上を通過する軌跡である。
【００２４】
上記の開示によれば、ヘッドの直前のポイントと、現在のポイントと、次のポイントに基づいて、現在のポイントから次のポイントまでの曲線軌跡における移動コストを算出することができる。
【００２５】
上記の開示において、方法は、ヘッドの直前のポイントと、現在のポイントとを通過する線分上にあるポイントＰを求めるステップをさらに含む。ポイントＰから現在のポイントまでの距離と、現在のポイントから次のポイントまでの距離とは等しく、曲線軌跡は、ポイントＰと、現在のポイントと、次のポイントとに接する円上を通過する軌跡である。
【００２６】
上記の開示によれば、ポイントＰを使用することで、現在のポイントから次のポイントまでの曲線軌跡における移動コストと、実際の制御装置の移動距離との誤差を小さくすることができる。
【００２７】
上記の開示において、方法は、直前のポイントと、現在のポイントと、次のポイントとが直線上に並ぶか否かを判定するステップと、直前のポイントと、現在のポイントと、次のポイントとが直線上に並ぶ場合、ヘッドが現在のポイントから次のポイントまでを直線軌跡を描く動作で通過したときの移動コストを計算するステップと、直前のポイントと、現在のポイントと、次のポイントとが直線上に並ばない場合、ヘッドが現在のポイントから次のポイントまでを曲線軌跡を描く動作で通過したときの移動コストを計算するステップとをさらに含む。
【００２８】
上記の開示によれば、直前のポイントと、現在のポイントと、次のポイントとの位置関係に基づいて、適切な計算方法で移動コストを計算することができる。
【００２９】
上記の開示において、方法は、ヘッドのポイントの通過順序の決定後に、ヘッドが各ポイントを通過するときの通過経路がヘッドの最小旋回半径以上となるように、ヘッドの通過経路を決定するステップをさらに含む。
【００３０】
上記の開示によれば、制御装置は、ヘッドを駆動する駆動部にかかる負荷を抑制しつつ、決定した通過順序に基づいてヘッドを移動させることができる。
【００３１】
上記の開示において、方法は、ヘッドが曲線軌跡を描く動作で通過したときの移動コストに基づいて、ヘッドのポイントの通過順序を決定した後に、２−ｏｐｔ法によりヘッドのポイントの通過順序を変更するステップをさらに含む。
【００３２】
上記の開示によれば、２−ｏｐｔ法により通過順序を変更することで、ヘッドの移動距離を削減することができる。
【００３３】
上記の開示において、方法は、ヘッドが曲線軌跡を描く動作で通過したときの移動コストの計算方法と、ヘッドが直線軌跡を描く動作で通過したときの移動コストの計算方法との選択の入力を受け付けるステップをさらに含む。ヘッドが直線を描く動作で通過したときの移動コストの計算方法は、現在のポイントから次のポイントまでの距離の誤差許容値が０より大きいとき、現在のポイントを頂点としたときの、直前のポイントおよび現在のポイントを結ぶ線分と、現在のポイントおよび次のポイントを結ぶ線分との角度が１８０度から小さくなるほど移動コストが増加する。
【００３４】
上記の開示によれば、直線軌跡を描く動作で通過したときの移動コストの計算方法において、ヘッドの進行ルートに近いポイントを優先して選択することができる。
【００３５】
本開示の他の例では、上記のいずれかの方法を制御装置に実行させるためのプログラムが提供される。
【００３６】
上記の開示によれば、上記のいずれかに記載の方法を制御装置に実行させることができる。
【発明の効果】
【００３７】
ある実施の形態に従うと、制御装置のモーターの負荷を抑制するようにヘッドによる各ポイントの通過順序を決定することが可能である。
【００３８】
この開示内容の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解されるこの本開示に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００３９】
【図１】ある実施の形態に従うヘッド１１０による各ポイントの通過順序の決定方法の一例を示す図である。
【図２】制御装置１００の駆動機構の一例を示す図である。
【図３】ある実施形態に係る制御装置１００の制御系の構成の一例を模式的に示す図である。
【図４】制御装置１００が備える機能モジュールの一例を示す模式図である。
【図５】ワーク５００上を通過するヘッド１１０の通過経路の一例を示す図である。
【図６】軌跡角度θＴに基づく直線軌跡の移動コストの変化量の一例を示す図である。
【図７】軌跡角度θＴに基づく曲線軌跡の移動コストの変化量の一例を示す図である。
【図８】距離（Ｐ，Ｃ）および距離（Ｃ，Ｎ）に基づく、第１の計算方法によって求められる移動コストの変化量の一例を示す図である。
【図９】第２の計算方法の前提となるポイントＰ’の一例を説明するための図である。
【図１０】第２の計算方法の概要の一例を説明するための図である。
【図１１】ヘッド１１０の通過経路の第１の例である。
【図１２】ヘッド１１０の通過経路の第２の例である。
【図１３】ヘッド１１０の通過経路の第３の例である。
【図１４】第１の計算方法および第２の計算方法と、ヘッド１１０の通過経路の距離（実際の移動距離）との誤差の一例を示す図である。
【図１５】直線軌跡モードの通過経路および曲線軌跡モードの通過経路の第１の例を示す図である。
【図１６】図１５に示す各々のモードの通過経路の総移動距離およびモーターに対する負荷の一例を示す図である。
【図１７】直線軌跡モードの通過経路および曲線軌跡モードの通過経路の第２の例を示す図である。
【図１８】図１７に示す各々の通過経路ごとの移動距離およびモーターに対する負荷の一例を示す図である。
【図１９】第３の計算方法の一例を示す模式図である。
【図２０】制御装置１００が第３の計算方法を用いて決定した通過順序の一例を示す。
【図２１】制御装置１００の移動コスト算出の手順の一例を示す図である。
【発明を実施するための形態】
【００４０】
以下、図面を参照しつつ、本開示に係る技術思想の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００４１】
＜Ａ．適用例＞
【００４２】
図１は、本実施の形態に従うヘッド１１０による各ポイントの通過順序の決定方法の一例を示す図である。図１を参照して、本発明が適用される場面の一例について説明する。なお、これ以降の説明において、通過順序とは、ヘッド１１０のワーク上の各ポイントの通過順序を意味する。
【００４３】
（Ａ−１．装置構成）
【００４４】
本実施の形態に従うヘッド１１０における各ポイントの通過順序の決定方法は、図１に例示される制御装置１００に好適に適用可能である。制御装置１００は、少なくとも２軸（Ｘ軸，Ｙ軸）の駆動機構によって移動するヘッド１１０と、台座１０５とを備える。
【００４５】
ヘッド１１０は、台座１０５の上を移動する。ここでのヘッド１１０とは、ロボットアームの先端、検査装置のカメラまたはセンサー、およびピックアップ装置の把持部等の任意の構成を含む。また、制御装置１００は、ヘッド１１０の台座１０５からの距離（Ｚ軸）を調節するための駆動機構を備えてもよい。
【００４６】
駆動機構は、例えば、ＣＮＣ（Computerized Numerical Control）工作機等の直動機構であってもよいし、ロボットアームまたはスカラー装置等の複数のモーターを組み合わせた関節を含む機構であってもよい。ある局面において、制御装置１００は、複数のモーターを組み合わせて２軸（Ｘ軸，Ｙ軸）を同時に調整する機構を備えていてもよい。
【００４７】
ある局面において、制御装置１００は、液晶パネル等のリペア装置、ＣＮＣ工作機、ロボットアーム、検査装置、ピックアップ装置、組立装置、ハンダ付け装置等の任意の軸数の駆動機構と、ヘッドとを備える装置であってもよい。
【００４８】
（Ａ−２．通過順序の選択基準）
【００４９】
ヘッド１１０は、その用途に応じて、台座１０５上の複数のポイントを移動する。例えば、制御装置１００が基板の検査装置であり、検査対象の基板（以下、台座１０５上に設置されるものを「ワーク」と表す）に検査箇所が４つあるとする。その場合、ヘッド１１０は、台座１０５上の複数のポイント（検査箇所）（Ａ）〜（Ｄ）を通過する経路１２０上を移動する。制御装置１００は、ヘッド１１０のポイント（Ａ）〜（Ｄ）における通過順序を決定するために、例えば、最近傍法等のアルゴリズムを使用し得る。最近傍法等の最短距離を求めるアルゴリズムは、移動コストに基づいて、通過順序を決定する。そのため、当該移動コストが、通過順序の選択基準であるともいえる。
【００５０】
制御装置１００の作業効率を向上させるためには、ヘッド１１０の移動距離が最少になる経路を求め、ヘッド１１０にその経路を通過させればよい。図１の例では、ヘッド１１０がポイント（Ａ）〜（Ｄ）を直線で結ぶ最短経路を通過すれば、制御装置１００の作業効率は最大になる。言い換えれば、各ポイント間の直線距離を移動コストとして、通過順序を決定すればよいことになる。
【００５１】
しかし、上記の直線移動での最短距離は、駆動機構を駆動させるモーターに大きな負荷を与えるため、機械の寿命を考慮すると好ましくない。そのため、ヘッド１１０は、モーターの負荷を減らすために、緩やかな円弧の軌跡を描きながら移動することが望ましい。
【００５２】
そこで、本実施の形態に従うヘッド１１０による各ポイントの通過順序の決定方法は、ヘッド１１０が、現在のポイントから次のポイントまで曲線軌跡を描いて移動することを前提に、曲線での移動距離が最少になる通過順序を決定する。ここでの「ポイント」とは、台座１０５上での座標により表現されてもよい。言い換えれば、台座１０５上の「ポイント（Ｘ）」とは、「座標（Ｘ）」のことである。なお、これ以降の説明において、「Ｎ番目のポイント」とは、ヘッド１１０がＮ番目に経由するポイントを意味する。
【００５３】
（Ａ−３．ポイント間のコスト計算）
【００５４】
本実施の形態に従うヘッド１１０による各ポイントの通過順序の決定方法において、ヘッド１１０の次の移動先は以下の手順により決定される。なお、制御装置１００は、ヘッド１１０のＮ番目のポイントまでの通過順序を決定済みであり、次にＮ＋１番目のポイント（Ｎ＋１番目の移動先）を決定するとする。
【００５５】
第１のステップにおいて、制御装置１００は、Ｎ番目の移動先である現在のポイント（Ｃ）と、Ｎ−１番目の移動先である直前のポイント（Ｐ）との座標を記憶する。第２のステップにおいて、制御装置１００は、Ｎ＋１番目の動作先の候補である次のポイント（Ｎ）を選択する。
【００５６】
第３のステップにおいて、制御装置１００は、直前のポイント（Ｐ）と、現在のポイント（Ｃ）と、次のポイント（Ｎ）とを通過する円の大きさに基づいて、現在のポイント（Ｃ）から次のポイント（Ｎ）までの移動コストを計算する。より具体的には、制御装置１００は、ポイント（Ｃ）からポイント（Ｎ）までの円弧の距離により、現在のポイント（Ｃ）から次のポイント（Ｎ）までの移動コストを計算する。移動コストは、図１の軌跡角度θＴが大きくなるほど増加する。軌跡角度θＴは、線分ＰＣに対する角度である。言い換えれば、ポイント（Ｃ）を頂点とした場合の線分（ＰＣ）と、線分（ＣＮ）とからなる角度が鋭角になるほど移動コストは増加する。
【００５７】
図１の例において、現在のポイント（Ｃ）から同距離のポイント（Ｎ１）〜（Ｎ３）までのそれぞれの移動コストは、軌跡角度θＴに基づいて、「移動コスト（ポイント（Ｃ）−ポイント（Ｎ１））＜移動コスト（ポイント（Ｃ）−ポイント（Ｎ２））＜移動コスト（ポイント（Ｃ）−ポイント（Ｎ３））」になる。よって、制御装置１００は、次の移動先として、ポイント（Ｎ１）を選択する。制御装置１００は、全てのポイントの通過順序を決定し終わるまで、第１のステップ〜第３のステップまでの処理を繰り返す。詳細な計算コストの計算方法については、後述する。
【００５８】
なお、１番目の移動先を選択する場合、直前のポイント（Ｐ）が存在し得ないため、制御装置１００は、ヘッドの初期位置から最も近いポイントを最初の移動先に設定してもよい。ある局面において、制御装置１００は、移動コストに基づいてヘッド１１０による各ポイントの通過順序を決定した後に、さらに、２−ｏｐｔ法等を用いて、当該通過順序を修正してもよい。
【００５９】
（Ａ−４．ヘッド１１０の動作）
【００６０】
制御装置１００は、ヘッド１１０による各ポイントの通過順序の決定後、確定した通過順序に沿って、ヘッド１１０に各ポイントを通過させる。その際、ヘッド１１０は、ヘッド１１０が移動可能な最小旋回半径以上の曲線軌跡を描きながら各ポイント間を移動する。ヘッド１１０が移動可能な最小旋回半径は、ヘッド１１０を駆動させるモーターおよび駆動機構により決定される。なお、これ以降は、区別のために、ヘッド１１０が通過する各ポイントの順番を「通過順序」と呼ぶ。これに対して、ヘッド１１０が各ポイントを通過するときに描く経路を「通過経路」と呼ぶ。
【００６１】
ヘッド１１０は、上記のコスト計算時に求めた円弧の軌跡を描いて移動する必要はなく、決定された通過順序に従って各ポイントをある程度の曲線的な動きで通過すればよい。上述した移動コストは、あくまでヘッド１１０が曲線軌跡で各ポイントを通過するときの移動コストの近似値であり、ヘッド１１０の実際の通過経路の距離は、移動コスト（円弧の距離）と一致する必要はない。
【００６２】
上記のように、本実施の形態に従う制御装置１００は、ヘッド１１０が曲線軌跡を描いて移動する場合の移動コストに基づいて、ヘッド１１０による各ポイントの通過順序を決定する。当該処理により、制御装置１００は、ヘッド１１０を駆動させるモーターおよび駆動機構にかかる負担を抑制すると共に、ヘッド１１０を効率的に移動させて、制御装置１００の作業効率を向上させることができる。
【００６３】
本実施の形態に従うヘッド１１０による各ポイントの通過順序の決定方法は、ヘッド１１０が巡回するポイントが予め決まっている装置（液晶パネルのリペア装置、ネジ締め装置またはハンダ付け装置等）に対して、好適に適用することができる。
【００６４】
＜Ｂ．ハードウェア構成＞
【００６５】
次に図２〜図４を参照して、本実施の形態に従う通過経路の決定方法を適用可能な制御装置１００のハードウェア構成について説明する。これ以降の説明では、制御装置１００は、３軸の直動機構を備える装置として説明するが、制御装置１００の構成はこれに限られるものではない。ある局面において、制御装置１００は、ロボットアーム、スカラー装置等を含む任意の駆動軸を備える装置であってもよい。
【００６６】
図２は、制御装置１００の駆動機構の一例を示す図である。制御装置１００は、Ｘ軸の駆動機構２０１Ｘと、Ｙ軸の駆動機構２０１Ｙと、Ｚ軸の駆動機構２０１Ｚと、台座１０５と、ヘッド１１０とを備える。各駆動機構を総称する場合は、「駆動機構２０１」と表すこともある。制御装置１００は、駆動機構２０１Ｘ〜２０１Ｚを組み合わせて駆動させることで、ヘッド１１０を３次元空間上で移動させ得る。
【００６７】
駆動機構２０１は、ヘッド１１０を移動させる駆動機構であり、サーボモーター、ステッピングモーター等の任意のモーターによって駆動される。駆動機構２０１は、モーターの動力をボールネジ、ベルト、リンク機構等の動力伝達部品を介してヘッド１１０またはヘッド１１０を取り付けられた筐体部分に伝達する。
【００６８】
図１に示す例では、ヘッド１１０は、Ｚ軸の駆動機構２０１Ｚに動力伝達部品を介して接続されている。駆動機構２０１Ｚが駆動することにより、ヘッド１１０のＺ方向の位置が調整される。また、駆動機構２０１Ｚは、Ｙ軸の駆動機構２０１Ｙに動力伝達部品を介して接続されている。駆動機構２０１Ｙが駆動することにより、駆動機構２０１Ｚおよびヘッド１１０のＹ軸方向の位置が調整される。さらに、駆動機構２０１Ｙは、Ｘ軸の駆動機構２０１Ｘに動力伝達部品を介して接続されている。駆動機構２０１Ｘが駆動することにより、駆動機構２０１Ｙ、駆動機構２０１Ｚおよびヘッド１１０のＸ方向の位置が調整される。
【００６９】
台座１０５は、ワークを設置するための場所であり、ワークを固定するためのネジ穴、治具またはクランプ等が設けられることがある。台座１０５は、一般的に長方形であり、台座１０５の四隅の角のいずれかが、ヘッド１１０のＸＹ軸の座標（０，０）となる。制御装置１００は、ヘッド１１０の位置を当該座標で指定し得る。
【００７０】
ヘッド１１０は、なんらかの作業ツールを取り付けられる。一例として、ヘッド１１０には、切削ツール、検査用カメラ、ピックアップ用のアーム、ハンダごてまたは電動ドライバー等の任意のツールをセットされ得る。ヘッド１１０は、駆動機構２０１によって位置を調整され、ワークに対して何らかの作業（検査、ネジ締め等）を実行する。
【００７１】
図３は、本実施形態に係る制御装置１００の制御系の構成の一例を模式的に示す図である。制御装置１００は、駆動機構２０１と、ヘッド１１０と、制御部３０１と、通信部３０２と、記憶部３０３と、入力部３０４と、出力部３０５とを備える。
【００７２】
駆動機構２０１は、駆動機構２０１を駆動させる動力源であるモーターと、当該モーターを制御するモータードライバーとを備える。より具体的には、駆動機構２０１Ｘには、モーター（Ｍｘ）と、モータードライバー（Ｄｘ）とが設けられている。駆動機構２０１Ｙには、モーター（Ｍｙ）と、モータードライバー（Ｄｙ）とが設けられている。駆動機構２０１Ｚには、モーター（Ｍｚ）と、モータードライバー（Ｄｚ）とが設けられている。ある局面において、各モーターおよびモータードライバーは、駆動機構２０１に内蔵されていてもよい。他の局面において、各モーターおよびモータードライバーは、駆動機構２０１の外部に設置されていてもよい。
【００７３】
ヘッド１１０は、ヘッド１１０の先端に取り付けられるツールを制御するツール制御部３１０と、ツール３２０とを備える。ツール３２０は、着脱可能であってもよい。ある局面において、ツール３２０は、切削ツール、検査用カメラ、ピックアップ用のアーム、ハンダごてまたは電動ドライバー等の任意のツールであってもよい。ツール制御部３１０は、制御部３０１からの指令に基づいて、ツール３２０の動作を制御する。ある局面において、ツール制御部３１０は、ツール３２０に含まれていてもよい。
【００７４】
制御部３０１は、制御装置１００全体を制御する。制御部３０１は、ＣＰＵ（Central Processing Unit）と、ＲＡＭ（Random Access Memory）と、ＲＯＭ（Read Only Memory）とを含み得る。ある局面において、ＲＡＭおよび／またはＲＯＭは、制御部３０１の外部に設けられてもよい。
【００７５】
ＣＰＵは、ＲＡＭに読み込まれた各種プログラムおよびデータを実行または参照する。ある局面において、ＣＰＵは、組み込みＣＰＵであってもよいし、ＦＰＧＡ（Field-Programmable Gate Array）であってもよいし、またはこれらの組み合わせ等によって構成されてもよい。
【００７６】
ＲＡＭは、ＣＰＵによって実行されるプログラムと、ＣＰＵによって参照されるデータとを格納する。ある局面において、ＲＡＭは、ＤＲＡＭ（Dynamic Random Access Memory）またはＳＲＡＭ（Static Random Access Memory）によって実現されてもよい。
【００７７】
ＲＯＭは、不揮発性メモリーであり、ＣＰＵによって実行されるプログラムを格納してもよい。その場合、ＣＰＵは、ＲＯＭからＲＡＭに読み出されたプログラムを実行する。ある局面において、ＲＯＭは、ＥＰＲＯＭ（Erasable Programmable Read Only Memory）、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）またはフラッシュメモリーによって実現されてもよい。
【００７８】
通信部３０２は、駆動機構２０１およびヘッド１１０に対する通信インターフェイスである。制御部３０１は、通信部３０２を介して、モータードライバーおよびツール制御部３１０の各々に制御信号を送信する。また、通信部３０２は、モータードライバーおよびツール制御部３１０の各々からモーターの回転数等の各種情報を受信し得る。
【００７９】
記憶部３０３は、不揮発性メモリーであり、制御装置１００の電源が切れた状態でもデータを保存しておくことができる。記憶部３０３は、ＣＰＵが実行または参照する任意のプログラムおよびデータを保存し得る。ある局面において、記憶部３０３は、ＨＤＤ（Hard Disk Drive）またはＳＳＤ（Solid State Drive）によって実現されてもよい。ＣＰＵは、必要に応じて各種プログラムを記憶部３０３からＲＡＭに読み込み、当該読み込まれたプログラムを実行することができる。
【００８０】
入力部３０４は、外部からの各種入力操作を受け付けるためのインターフェイスである。入力部３０４は、キーボード、マウス、タッチパッドまたはゲームパッド等の任意の入力装置に接続され得る。ある局面において、入力部３０４は、通信ポートであってもよく、外部のコンピューター等から指令を受信し得る。制御部３０１は、当該指令に基づいて、駆動機構２０１およびヘッド１１０を制御し得る。他の局面において、入力部３０４は、緊急停止ボタンであってもよい。緊急停止ボタンが押されると、制御装置１００は、駆動機構２０１およびヘッド１１０の動作を強制停止する。
【００８１】
出力部３０５は、外部に何らかの情報を出力するためのインターフェイスである。出力部３０５は、ブラウン管ディスプレイ、液晶ディスプレイまたは有機ＥＬ（electro-luminescence）ディスプレイ等の任意の出力装置に接続され得る。ある局面において、出力インターフェイス３０６は、ＵＳＢ端子、Ｄ−ｓｕｂ端子、ＤＶＩ（Digital Visual Interface）端子およびＨＤＭＩ（登録商標）（High-Definition Multimedia Interface）端子等によって実現されてもよい。他の局面において、出力部３０５は、外部のコンピューターに対して、信号を送信してもよい。
【００８２】
図４は、制御装置１００が備える機能モジュールの一例を示す模式図である。図４に示される機能モジュールは、ソフトウェアとして実現されてもよく、これらの機能モジュールは、制御部３０１によって実行され得る。
【００８３】
制御装置１００は、機能モジュールとして、モーター指令制御部４００と、予測同期計算部４３０と、トリガー指令制御部４５０とを備える。モーター指令制御部４００は、モーター司令部生成部４０１と、モーター指令補正部４０２と、モーター司令部４０３とを含む。トリガー指令制御部４５０は、トリガー指令生成部４５１と、トリガー指令補正部４５２と、トリガー司令部４５３とを含む。
【００８４】
モーター司令部生成部４０１は、ヘッド１１０の目標位置の座標（Ｐｘ，Ｐｙ，Ｐｚ）を生成し、その目標位置に基づく位置指令をモーター指令補正部４０２に出力する。制御部３０１は、本実施の形態に基づく経路選択によって決定された各ポイントの通過順序に基づいてヘッド１１０の目標軌跡を計算する。
【００８５】
モーター指令補正部４０２は、Ｘ軸位置補正部、Ｙ軸位置補正部、及びＺ軸位置補正部を有しており、目標位置のＸ座標（Ｐｘ）に対応するＸ軸指令位置がＸ軸位置補正部に入力され、目標位置のＹ座標（Ｐｙ）に対応するＹ軸指令位置がＹ軸位置補正部に入力され、目標位置のＺ座標（Ｐｚ）に対応するＺ軸指令位置がＺ軸位置補正部に入力される。
【００８６】
モーター司令部４０３は、モーター指令補正部４０２の出力に基づいて、モータードライバーＤｘ，ＤｙおよびＤｚに対して指令を送信する。ある局面において、各モータードライバーに送信される指令は、モーターに出力するパルスまたは電流量、モーターの回転量、モーターのステップ数、または任意のモーターに対する指令であってもよい。
【００８７】
予測同期計算部４３０は、モータードライバーＤｘ，ＤｙおよびＤｚから駆動パラメーター（各軸の位置ループゲイン等のパラメーター）を読み出して取得する。また、予測同期計算部４３０は、モータードライバーＤｘ，ＤｙおよびＤｚのそれぞれの応答遅れ時間を取得する。予測同期計算部４３０は、これらの取得した情報に基づいて、応答遅れ時間を含む予測位置同期補正パラメーターを計算し、予測位置同期補正パラメーターをモーター指令補正部４０２に出力する。モーター指令補正部４０２は、取得した予測位置同期補正パラメーターに基づいて、モータードライバーへの指令を補正する。
【００８８】
トリガー指令生成部４５１は、モーター指令補正部４０２によって補正されたＸ軸指令位置、Ｙ軸指令位置、および、Ｚ軸指令位置に基づく位置指令Ｃｘ，Ｃｙ，Ｃｚに各軸のモーターが同期して応答する時刻Ｔを計算する。また、トリガー指令生成部４５１は、その時刻Ｔにおいてツール３２０を動作させるためのトリガー指令を生成し、当該トリガー指令をトリガー指令補正部４５２に出力する。
【００８９】
トリガー指令補正部４５２は、各軸のモーターが同期して応答する時刻Ｔ、および、各軸のモーターの機械的な所定の反応時間に基づいて、ワークの一部の部品等の作業対象物がツール３２０の作業位置へ到達する時刻Ｔ２を計算する。また、トリガー指令補正部４５２は、その時刻Ｔ２に予測位置同期補正パラメーターを加味して、トリガー指令の補正を行う。
【００９０】
トリガー司令部４５３は、トリガー指令補正部４５２から出力されたトリガー指令に基づいて、時刻Ｔ１にツール３２０が応答するように、ツール制御部３１０に対して補正後のトリガー指令を送信する。
【００９１】
＜Ｃ．移動コストの計算方法＞
【００９２】
次に、図５〜図１０を参照して、本実施の形態に従うヘッド１１０による各ポイント間の移動コストの第１の計算方法について詳細に説明する。図５は、ワーク５００上を通過するヘッド１１０の通過経路の一例を示す図である。ワーク５００は、部品を実装された基板であり、ポイント５０１〜５０８は、ヘッド１１０に備え付けられたカメラが検査すべきポイントであるとする。制御装置１００は、各ポイントの通過順序を移動コストの計算に基づいて決定する。移動コストの計算方法は、直線軌跡の移動コストの計算方法と、曲線軌跡の移動コストの計算方法とを含む。ある局面において、移動コストの計算方法は、曲線軌跡の移動コストの計算方法のみを含んでもよい。
【００９３】
図６は、軌跡角度θＴに基づく直線軌跡の移動コストの変化量の一例を示す図である。図６に示される例において、制御装置１００は、ヘッド１１０の通過順序として「直前のポイントＰ→現在のポイントＣ」を決定済みである。制御装置１００は、ポイントＣから次の移動先の候補であるポイントＮ１〜Ｎ３（総称する場合は、「ポイントＮ」と表す）までの移動コストを計算する。
【００９４】
直線軌跡の場合、ポイントＣからポイントＮ１〜Ｎ３の各々までの距離が等しい場合、軌跡角度θＴに関係なく、ポイントＣから次のポイントＮ１〜Ｎ３の各々までの直線軌跡の移動コストの計算式は以下の式で表される。
【数１】
0006773243.tif 000002
また、グラフ６００に示されるように、ポイントＣから次のポイントＮまでの直線軌跡の移動コストは、軌跡角度θＴに関係なく一定となる。そのため、制御装置１００は、次の移動先としてポイントＮ１〜Ｎ３のいずれを選択してもよいことになる。
【００９５】
図７は、軌跡角度θＴに基づく曲線軌跡の移動コストの変化量の一例を示す図である。図７に示される例において、制御装置１００は、ヘッド１１０の通過順序として「直前のポイントＰ→現在のポイントＣ」を決定済みである。制御装置１００は、ポイントＣから次の移動先の候補であるポイントＮ１〜Ｎ３までの移動コストを計算する。
【００９６】
曲線軌跡の場合、ポイントＣからポイントＮ１〜Ｎ３の各々までの距離が等しい場合、軌跡角度θＴに比例して移動コストが増大する。なぜならば、軌跡角度θＴの増加に伴い、ポイントＰ，Ｃ，Ｎを通過する円の円周の長さも増加するためである。ポイントＣから次のポイントＮ１〜Ｎ３の各々までの曲線軌跡の移動コストの計算式は以下の式で表される。
【数２】
0006773243.tif 000003
また、グラフ７００に示されるように、ポイントＣから次のポイントＮまでの曲線軌跡の移動コストは、軌跡角度θＴに比例して増加する。そのため、制御装置１００は、次の移動先として、最も軌跡角度θＴが小さいポイントＮ１を選択すべきことがわかる。
【００９７】
本実施の形態に従う制御装置１００は、直線軌跡の移動コストの計算式と、曲線軌跡の移動コストの計算式とを組み合わせて使用し得る。より具体的には、直前のポイントＰ、現在のポイントＣ、および次のポイントＮが直線上に並んでいる場合（軌跡角度θＴ＝０の場合）には、制御装置１００は、直線軌跡の移動コストの計算式により、ポイントＣからポイントＮまでの移動コストを計算する。逆に、直前のポイントＰ、現在のポイントＣ、および次のポイントＮが直線上に並んでいない場合（軌跡角度θＴ≠０の場合）には、制御装置１００は、曲線軌跡の移動コストの計算式により、ポイントＣからポイントＮまでの移動コストを計算する。
【００９８】
当該処理により、制御装置１００は、決定後のヘッド１１０による各ポイントの通過順序に基づいて、ヘッド１１０による各ポイントの通過経路（直線移動および曲線移動のみの経路）を生成し得る。当該通過経路は、ヘッド１１０を駆動させる駆動機構２０１およびモーターにかかる負荷を抑制する経路になる。
【００９９】
また、生成された通過経路は、最近傍法および２−ｏｐｔ法等のアルゴリズムによって求められており、駆動機構２０１およびモーターにかかる負荷を抑制しつつ、可能な限り距離の短い通過経路となる。
【０１００】
＜Ｄ．曲線軌跡の移動コストの計算方法の改良＞
【０１０１】
次に、図８〜図１４を参照して、曲線軌跡の移動コストの第２の計算方法について説明する。第２の計算方法は、第１の計算方法と比較して、計算によって求められる移動コストと、ヘッド１１０の実際の移動距離との誤差がより小さくなる点で異なる。第１の計算方法は、直前のポイントＰから現在のポイントＣまでの距離（以降、２点間の距離を例えば「距離（Ｐ，Ｃ）」と表す）と、現在のポイントＣから次のポイントＮまでの距離（Ｃ，Ｎ）との組み合わせによって、移動コストの誤差が大きく変化することがある。これに対して、第２の計算方法は、距離（Ｐ，Ｃ）および距離（Ｃ，Ｎ）との組み合わせが変化したとしても、移動コストの誤差はわずかしか変化しない。
【０１０２】
図８は、距離（Ｐ，Ｃ）および距離（Ｃ，Ｎ）に基づく、第１の計算方法によって求められる移動コストの変化量の一例を示す図である。距離（Ｐ，Ｃ）および距離（Ｎ，Ｃ）の組み合わせパターンは、以下のパターン（１）〜（３）に分けられる。
【０１０３】
パターン（１）は、距離（Ｐ，Ｃ）と距離（Ｃ，Ｎ）とが等しい場合である。この場合、グラフ８１０が示すように、移動コストは、軌跡角度θＴに比例して増加する。パターン（２）は、距離（Ｐ，Ｃ）が距離（Ｃ，Ｎ）よりも長い場合である。この場合、グラフ８２０が示すように、移動コストは、一旦、軌跡角度θＴに比例して増加した後に減少する。パターン（３）は、距離（Ｐ，Ｃ）が距離（Ｃ，Ｎ）よりも短い場合である。この場合、グラフ８３０が示すように、移動コストは、ある程度まで軌跡角度θＴに関係なくほとんど増加せず、軌跡角度θＴが一定以上の角度になると急激に増加する。
【０１０４】
これに対して、ヘッド１１０の実際の移動距離は、グラフ８１０の示す移動コストに最も近い値となる。ヘッド１１０は、駆動機構２０１およびモーターへの負荷を抑制するため、曲線軌跡で移動する。そのため、ポイントＰ，Ｃ，Ｎが作る角度が鋭角になればなるほど、ヘッド１１０は大きく旋回し、最小ルートの直線から大きく離れていく。そのため、ヘッド１１０の実際の移動距離は、軌跡角度θＴに比例して増加する。
【０１０５】
しかし、距離（Ｐ，Ｃ）および距離（Ｃ，Ｎ）の組み合わせによっては、グラフ８２０または８３０が示すように、移動コストが軌跡角度θＴに正確に比例しない場合がある。そのため、制御装置１００の計算による移動コストと、ヘッド１１０の実際の移動距離との誤差が増大することがある。そこで、第２の計算方法は、この誤差を抑制する方法を提供する。
【０１０６】
図９は、第２の計算方法の前提となるポイントＰ’の一例を説明するための図である。制御装置１００は、ヘッド１１０の通過順序として「直前のポイントＰ→現在のポイントＣ」を決定済みである。制御装置１００は、ポイントＣから次の移動先の候補であるポイントＮまでの移動コストを計算する。また、距離（Ｐ，Ｃ）と距離（Ｃ，Ｎ）とは異なるものとする。
【０１０７】
この場合、制御装置１００は、第２の計算方法を使用するために、線分ＰＣ上のポイントＰ’を選択する。このときの距離（Ｐ’，Ｃ）および距離（Ｃ，Ｎ）は等しくなる。次に制御装置１００は、ポイントＰ’，Ｃ，Ｎに接する円の中心点を求める。制御装置１００は、ポイントＰ’、およびポイントＰ’，Ｃ，Ｎに接する円に基づいて、ポイントＣからポイントＮまでの移動コストを計算する。
【０１０８】
図１０は、第２の計算方法の概要の一例を説明するための図である。制御装置１００は、ポイントＰ，Ｃ，Ｎが一直線上に並んでいない場合、図９に示すように、ポイントＰ’を求める。次に、制御装置１００は、ポイントＰ’，Ｃ，Ｎに接する円におけるポイントＣからポイントＮまでの円弧（以下、「円弧（ＣＮ）」と表す）の長さをポイントＣからポイントＮまでの移動コストとして計算する。円弧（ＣＮ）の移動コストの計算式は（数２）の式で表される。但し、Ｒは、ポイントＰ’，Ｃ，Ｎに接する円の半径である。制御装置１００は、ポイントＰ，Ｃ，Ｎが一直線上に並んでいる場合、ポイントＣからポイントＮまでの移動コストを（数１）の計算式を用いて計算する。
【０１０９】
次に、図１１〜図１４を参照して、第１の計算方法によって計算された移動コスト、および第２の計算方法によって計算された移動コストの各々が、実際のヘッド１１０の通過経路に対してどの程度の誤差を有するのかを説明する。
【０１１０】
図１１は、ヘッド１１０の通過経路の第１の例である。ヘッド１１０は、Ｓｔａｒｔを出発し、ポイント（Ｐ１）〜（Ｐ３）およびＥｎｄの順番にワーク１１０１上を移動する。距離（Ｐ１，Ｐ２）は、距離（Ｐ２，Ｐ３）に対して長いことがわかる。これは、図８のパターン（２）に相当する。ヘッド１１０は、一例として、通過経路１１０２上を移動するものとする。
【０１１１】
図１２は、ヘッド１１０の通過経路の第２の例である。ヘッド１１０は、Ｓｔａｒｔを出発し、ポイント（Ｐ１）〜（Ｐ４）およびＥｎｄの順番にワーク１２０１上を移動する。距離（Ｐ２，Ｐ３）は、距離（Ｐ３，Ｐ４）と近い長さである。これは、図８のパターン（１）に相当する。ヘッド１１０は、一例として、通過経路１２０２上を移動するものとする。
【０１１２】
図１３は、ヘッド１１０の通過経路の第３の例である。ヘッド１１０は、Ｓｔａｒｔを出発し、ポイント（Ｐ１）〜（Ｐ５）およびＥｎｄの順番にワーク１３０１上を移動する。距離（Ｐ３，Ｐ４）は、距離（Ｐ４，Ｐ５）に対して短いことがわかる。これは、図８のパターン（３）に相当する。ヘッド１１０は、一例として、通過経路１３０２上を移動するものとする。
【０１１３】
図１４は、第１の計算方法および第２の計算方法と、ヘッド１１０の通過経路の距離（実際の移動距離）との誤差の一例を示す図である。グラフ１４０４Ａは、図１１に示した経路における、第１の計算方法による移動コストと、ヘッド１１０の通過経路の距離との差分を示す。グラフ１４０４Ｂは、図１２に示した経路における、第１の計算方法による移動コストと、ヘッド１１０の通過経路の距離との差分を示す。グラフ１４０４Ｃは、図１３に示した経路における、第１の計算方法による移動コストと、ヘッド１１０の通過経路の距離との差分を示す。
【０１１４】
グラフ１４０５Ａは、図１１に示した経路における、第２の計算方法による移動コストと、ヘッド１１０の通過経路の距離との差分を示す。グラフ１４０５Ｂは、図１２に示した経路における、第２の計算方法による移動コストと、ヘッド１１０の通過経路の距離との差分を示す。グラフ１４０５Ｃは、図１３に示した経路における、第２の計算方法による移動コストと、ヘッド１１０の通過経路の距離との差分を示す。ここでの差分とは、ヘッド１１０の通過経路の距離に対する移動コストの誤差であるともいえる。
【０１１５】
上記のグラフ１４０４Ａ〜１４０４Ｃを参照すると、制御装置１００が第１の計算方法を使用した場合、図８のパターン（２），（３）を含む通過順序において、移動コストの誤差は増大することがわかる。
【０１１６】
これに対して、上記のグラフ１４０５Ａ〜１４０５Ｃを参照すると、制御装置１００が第２の計算方法を使用した場合、いずれの通過経路についても移動コストの誤差はおおよそ一定であることがわかる。
【０１１７】
グラフ１４０１は、ヘッド１１０の通過経路の距離を示す。グラフ１４０２は、第１の計算方法を使用した場合の移動コストの誤差を示す。グラフ１４０３は、第２の計算方法を使用した場合の移動コストの誤差を示す。グラフ１４０１〜１４０３からも明らかなように、制御装置１００は、第２の計算方法を使用することで、ヘッド１１０によるワーク上の各ポイント間の移動コストを高い精度で計算することができる。
【０１１８】
なお、制御装置１００は、第１の計算方法および第２の計算方法を制御部３０１に実行させるためのプログラムを記憶部３０３に記憶しているものとする。制御装置１００は、必要に応じて、これらのプログラムを記憶部３０３からＲＡＭに読み込んで実行し得る。
【０１１９】
＜Ｅ．移動コストの計算方法によるモーターの負荷の変化＞
【０１２０】
次に、図１５〜図１８を用いて、曲線軌跡の移動コストの計算を使用することで、モーターにかかる負荷がどのように変化のかを説明する。これ以降の説明では、直線軌跡の移動コストの計算によって求めた通過順序に基づく経路を、「直線軌跡モードの通過経路」と呼ぶ。曲線軌跡の移動コストの計算によって求めた通過順序に基づく経路を、「曲線軌跡モードの通過経路」と呼ぶ。
【０１２１】
図１５は、直線軌跡モードの通過経路および曲線軌跡モードの通過経路の第１の例を示す図である。図１５に示される例では、ヘッド１１０は、ワーク１５０１上のポイント（１）〜（７）を通過する。
【０１２２】
通過経路１５０２Ａは、直線軌跡モードの通過経路である。通過経路１５０２Ｂは、曲線軌跡モードの通過経路である。通過経路１５０２Ｂは、通過経路１５０２Ａに対して、比較的緩やかな曲線を描いていることがわかる。そのため、ヘッド１１０が、緩やか曲線で移動しており、駆動機構２０１を駆動するモーターへの負荷が抑制される。
【０１２３】
図１６は、図１５に示す各々のモードの通過経路の総移動距離およびモーターに対する負荷の一例を示す図である。図１６を参照すると、曲線軌道モードの通過経路におけるヘッド１１０の総移動距離は、直線軌道モードの通過経路におけるヘッド１１０の総移動距離と比較して、わずかに増加している。
【０１２４】
また、曲線軌道モードの通過経路におけるヘッド１１０の最大加速度は、直線軌道モードの通過経路におけるヘッド１１０の最大加速度よりも大幅に減少している。このことから、曲線軌跡モードの通過経路は、直線軌跡モードの通過経路よりもなめらかで効率的な経路であることがわかる。
【０１２５】
図１７は、直線軌跡モードの通過経路および曲線軌跡モードの通過経路の第２の例を示す図である。図１５に示される例では、ヘッド１１０は、ワーク１５０１上のポイント（１）〜（２１）を通過する。
【０１２６】
通過経路１７０２Ａは、直線軌跡モードの通過経路である。通過経路１７０２Ｂは、曲線軌跡モードの通過経路である。通過経路１７０２Ｂは、通過経路１７０２Ａに対して、比較的緩やかな曲線を描いていることがわかる。そのため、ヘッド１１０が、緩やか曲線で移動しており、駆動機構２０１を駆動するモーターへの負荷が抑制される。
【０１２７】
図１８は、図１７に示す各々の通過経路ごとの移動距離およびモーターに対する負荷の一例を示す図である。図１８を参照すると、曲線軌道モードの通過経路におけるヘッド１１０の総移動距離は、直線軌道モードの通過経路におけるヘッド１１０の総移動距離と比較して、減少している。
【０１２８】
また、曲線軌道モードの通過経路におけるヘッド１１０の最大加速度は、直線軌道モードの通過経路におけるヘッド１１０の最大加速度よりも大幅に減少している。このことから、曲線軌跡モードの通過経路は、直線軌跡モードの通過経路よりもなめらかで効率的な経路であることがわかる。
【０１２９】
上記の図１６および図１８の比較結果からわかるように、制御装置１００は、曲線軌道モードの通過経路を使用することで、駆動機構２０１を駆動させるモーターにかかる負荷を大幅に減少させることができる。また、制御装置１００は、曲線軌道モードの通過経路を使用することで、ワーク上のポイントの場所および数によっては、総移動距離を減少させることもできる。
【０１３０】
＜Ｆ．直線軌跡の経路選択の改良＞
【０１３１】
次に、図１９〜図２１を参照して、改良された直線軌跡の移動コストの第３の計算方法について説明する。第３の計算方法は、各ポイント間の移動コストを直線軌跡および軌跡角度θＴによって定義する点で、第１および第２の計算方法とは異なる。
【０１３２】
図１９は、第３の計算方法の一例を示す模式図である。図１９の例では、制御装置１００は、ポイントＰ，Ｃまでの通過経路を決定済みであり、次にポイントＣからポイントＮ１またはＮ２までの移動コストを算出する。第３の計算方法は、例えば、ワーク上に格子状に通過すべきポイントが整列しているような場合に効率のよく通過経路を決定することができる。第３の計算方法における移動コストの計算式は以下の式で表される。
【数３】
0006773243.tif 000004
誤差許容値は、ポイントＣ，Ｎ間の誤差の許容値である。例えば、あるワーク上に通過すべきポイントが均等に格子状に並んでいるとする。しかし、製造誤差等により、各ポイント間の距離がわずかに変化することがある。誤差許容値は、このポイント間の距離の誤差の許容範囲を示す。図１９の例では、「誤差許容値＝０．５５」である。
【０１３３】
（数３）に示されるように、第３の計算方法は、軌跡角度θＴが増加するほど、移動コストが増加する。すなわち、Ｃを頂点としたときの線分（ＰＣ）および線分（ＰＮ）によって作られる角度が鋭角になるほど、移動コストは増加する。
【０１３４】
図１９の例では、「距離（Ｃ，Ｎ１）＝４０、ポイントＰ，Ｃ，Ｎ１における軌跡角度＝０」、「距離（Ｃ，Ｎ２）＝３９．５、ポイントＰ，Ｃ，Ｎ２における軌跡角度＝９０」になる。そのため、ポイントＮ２は、ポイントＮ１よりもポイントＣに近いことがわかる。しかし、ポイントＰ，Ｃ，Ｎ２における軌跡角度は、ポイントＰ，Ｃ，Ｎ１における軌跡角度よりも大きいため、第３の計算方法においては、ポイントＣからポイントＮ１までの移動コストは、ポイントＣからポイントＮ２までの移動コストよりも小さくなる。制御装置１００は、第３の計算方法に基づいて、移動コストを計算することで、ヘッド１１０が移動時に曲がらないポイントを優先的に選択することができる。
【０１３５】
図２０は、制御装置１００が第３の計算方法を用いて決定した通過順序の一例を示す。図２０の例において、制御装置１００は、ワーク２００１上のポイント（１）〜（２５）上を通過する。通過経路２００２Ａは、制御装置１００が第３の計算方法によって求められる移動コストを用いて最近傍法により決定した通過順序に基づいて生成される。制御装置１００は、可能な限り、ヘッド１１０を直線上に移動できるように通過順序を決定していることがわかる。通過経路２００２Ｂは、制御装置１００が２−ｏｐｔ法を通過経路２００２Ａに適用した結果である。
【０１３６】
上記のように、本実施の形態に従う制御装置１００は、第１〜第３の計算方法のいずれかを用いてワーク上の各ポイント間の移動コストを算出する。制御装置１００は、当該移動コストに基づいて、最近傍法、２−ｏｐｔ法等のアルゴリズムにより、ヘッド１１０の各ポイントの通過順序を決定する。
【０１３７】
＜Ｇ．制御装置１００の内部処理＞
【０１３８】
図２１は、制御装置１００の移動コスト算出の手順の一例を示す図である。ある局面において、制御部３０１は、図２１の処理を行うためのプログラムを記憶部３０３からＲＡＭに読み込んで、当該プログラムを実行してもよい。他の局面において、当該処理の一部または全部は、当該処理を実行するように構成された回路素子の組み合わせとしても実現され得る。
【０１３９】
ステップＳ２１０５において、制御部３０１は、移動コストの算出方法を選択する。プログラムにおけるユーザーの入力等により直線軌跡の算出方法が選択されていた場合、制御部３０１は、制御をステップＳ２１１０に移す。または、制御部３０１が直前のポイントＰ，現在のポイントＣ，および次のポイントＮの位置関係に基づいて直線軌跡の算出方法を選択した場合、制御部３０１は、制御をステップＳ２１１０に移す。そうでない場合（プログラムにおけるユーザーの入力等により曲線軌跡の算出方法が選択されていた場合、または制御部３０１がポイントＰ，Ｃ，Ｎの位置関係に基づいて曲線軌跡の算出方法を選択した場合）、制御部３０１は、制御をステップＳ２１２０に移す。
【０１４０】
ステップＳ２１１０において、制御部３０１は、ポイントＰ，Ｃ，Ｎにおける軌跡角度を算出する。ステップＳ２１１５において、制御部３０１は、第３の計算方法における（数３）の式（６）を使用して、ポイントＣからポイントＮまでの移動コストを算出する。
【０１４１】
ステップＳ２１２０において、制御部３０１は、ポイントＰ，Ｃ，Ｎにおける軌跡角度を算出する。ステップＳ２１２５において、制御部３０１は、「軌跡角度≠０」であるか否か、すなわちポイントＰ，Ｃ，Ｎが一直線上に存在しないか否かを判定する。制御部３０１は、「軌跡角度≠０」であると判定した場合（ステップＳ２１２５にてＹＥＳ）、制御をステップＳ２１３０に移す。そうでない場合（ステップＳ２１２５にてＮＯ）、制御部３０１は、制御をステップＳ２１３５に移す。
【０１４２】
ステップＳ２１３０において、制御部３０１は、（数２）の式（２）により、ポイントＣからポイントＮまでの移動コストを算出する。ある局面において、制御部３０１は、ポイントＰ，Ｃ，Ｎに基づいて、第１の計算方法によりポイントＣからポイントＮまでの移動コストを算出してもよい。また、他の局面において、制御部３０１は、ポイントＰ’，Ｃ，Ｎに基づいて、第２の計算方法によりポイントＣからポイントＮまでの移動コストを算出してもよい。ステップＳ２１３５において、制御部３０１は、（数１）の式（１）により、ポイントＣからポイントＮまでの移動コストを算出する。
【０１４３】
以上説明したように、本実施の形態に従う制御装置１００は、直線軌跡の移動コストの計算式と、曲線軌跡の移動コストの計算式とを組み合わせて使用することで、ワーク上の各ポイント間の移動コストを算出する。制御装置１００は、この移動コストに基づいて、最近傍法、２−ｏｐｔ法等のアルゴリズムにより、ヘッド１１０の各ポイントの通過順序を決定する。当該処理により、制御装置１００は、ヘッド１１０を駆動させるための駆動機構２０１およびモーターにかかる負荷を抑制しつつ、効率のよりポイントの通過順序を決定し得る。
【０１４４】
＜Ｈ．付記＞
【０１４５】
上述したような本実施の形態は、以下のような技術思想を含む。
［構成１］
ワークを設置するための台座（１０５）と、
前記台座の上を移動するヘッド（１１０）と、
前記ヘッドを前記台座の第１の軸方向に移動させるための第１の駆動機構（２０１Ｘ）と、
前記ヘッドを前記台座の第２の軸方向に移動させるための第２の駆動機構（２０１Ｙ）と、
前記第１の駆動機構および前記第２の駆動機構を制御する制御部（３０１）とを備え、
前記制御部は、
前記ヘッドが、前記ワークの複数のポイントを通過する場合において、前記ヘッドが現在のポイント（Ｃ）から次のポイント（Ｎ）まで曲線軌跡を描く動作で通過したときの移動コストを計算し、
前記移動コストが最少になるように前記ヘッドの次の移動先のポイントを選定する、制御装置。
［構成２］
前記曲線軌跡は、前記ヘッドの直前のポイント（Ｐ）と、前記現在のポイントと、前記次のポイントとに接する円上を通過する軌跡である、構成１に記載の制御装置。
［構成３］
前記制御部は、前記ヘッドの直前のポイントと、前記現在のポイントとを通過する線分上にあるポイントＰ（Ｐ’）を求め、
前記ポイントＰから前記現在のポイントまでの距離と、前記現在のポイントから前記次のポイントまでの距離とは等しく、
前記曲線軌跡は、前記ポイントＰと、前記現在のポイントと、前記次のポイントとに接する円上を通過する軌跡である、構成１に記載の制御装置。
［構成４］
前記制御部は、
前記直前のポイントと、前記現在のポイントと、前記次のポイントとが直線上に並ぶか否かを判定し、
前記直前のポイントと、前記現在のポイントと、前記次のポイントとが直線上に並ぶ場合、前記ヘッドが前記現在のポイントから前記次のポイントまでを直線軌跡を描く動作で通過したときの移動コストを計算し、
前記直前のポイントと、前記現在のポイントと、前記次のポイントとが直線上に並ばない場合、前記ヘッドが前記現在のポイントから前記次のポイントまでを前記曲線軌跡を描く動作で通過したときの移動コストを計算する、構成２または３に記載の制御装置。
［構成５］
前記制御部は、
前記ヘッドのポイントの通過順序の決定後に、前記ヘッドが各ポイントを通過するときの通過経路が前記ヘッドの最小旋回半径以上となるように、前記ヘッドの通過経路を決定する、構成１〜４のいずれかに記載の制御装置。
［構成６］
前記制御部は、
前記ヘッドが前記曲線軌跡を描く動作で通過したときの移動コストに基づいて、前記ヘッドのポイントの通過順序を決定した後に、２−ｏｐｔ法により前記ヘッドのポイントの通過順序を変更する、構成１〜５のいずれかに記載の制御装置。
［構成７］
前記制御部は、
前記ヘッドが曲線軌跡を描く動作で通過したときの移動コストの計算方法と、前記ヘッドが直線軌跡を描く動作で通過したときの移動コストの計算方法との選択の入力を受け付け、
前記ヘッドが直線を描く動作で通過したときの移動コストの計算方法は、前記現在のポイントから前記次のポイントまでの距離の誤差許容値が０より大きいとき、前記現在のポイントを頂点としたときの、前記直前のポイントおよび前記現在のポイントを結ぶ線分と、前記現在のポイントおよび前記次のポイントを結ぶ線分との角度が１８０度から小さくなるほど移動コストが増加する、構成２または３に記載の制御装置。
［構成８］
制御装置におけるヘッドのワーク上の各ポイントの通過順序を求める方法であって、
ヘッドが、前記ワーク上の複数のポイントを通過する場合において、前記ヘッドが現在のポイントから次のポイントまで曲線軌跡を描く動作で通過したときの移動コストを計算するステップと、
前記移動コストが最少になるように前記ヘッドの次の移動先のポイントを選定するステップとを含む、方法。
［構成９］
前記曲線軌跡は、前記ヘッドの直前のポイントと、前記現在のポイントと、前記次のポイントとに接する円上を通過する軌跡である、構成８に記載の方法。
［構成１０］
前記方法は、前記ヘッドの直前のポイントと、前記現在のポイントとを通過する線分上にあるポイントＰを求めるステップをさらに含み、
前記ポイントＰから前記現在のポイントまでの距離と、前記現在のポイントから前記次のポイントまでの距離とは等しく、
前記曲線軌跡は、前記ポイントＰと、前記現在のポイントと、前記次のポイントとに接する円上を通過する軌跡である、構成８に記載の方法。
［構成１１］
前記直前のポイントと、前記現在のポイントと、前記次のポイントとが直線上に並ぶか否かを判定するステップと、
前記直前のポイントと、前記現在のポイントと、前記次のポイントとが直線上に並ぶ場合、前記ヘッドが前記現在のポイントから前記次のポイントまでを直線軌跡を描く動作で通過したときの移動コストを計算するステップと、
前記直前のポイントと、前記現在のポイントと、前記次のポイントとが直線上に並ばない場合、前記ヘッドが前記現在のポイントから前記次のポイントまでを前記曲線軌跡を描く動作で通過したときの移動コストを計算するステップとをさらに含む、構成９または１０に記載の方法。
［構成１２］
前記ヘッドのポイントの通過順序の決定後に、前記ヘッドが各ポイントを通過するときの通過経路が前記ヘッドの最小旋回半径以上となるように、前記ヘッドの通過経路を決定するステップをさらに含む、構成８〜１１のいずれかに記載の方法。
［構成１３］
前記ヘッドが前記曲線軌跡を描く動作で通過したときの移動コストに基づいて、前記ヘッドのポイントの通過順序を決定した後に、２−ｏｐｔ法により前記ヘッドのポイントの通過順序を変更するステップをさらに含む、構成８〜１２のいずれかに記載の方法。
［構成１４］
前記方法は、前記ヘッドが曲線軌跡を描く動作で通過したときの移動コストの計算方法と、前記ヘッドが直線軌跡を描く動作で通過したときの移動コストの計算方法との選択の入力を受け付けるステップをさらに含み、
前記ヘッドが直線を描く動作で通過したときの移動コストの計算方法は、前記現在のポイントから前記次のポイントまでの距離の誤差許容値が０より大きいとき、前記現在のポイントを頂点としたときの、前記直前のポイントおよび前記現在のポイントを結ぶ線分と、前記現在のポイントおよび前記次のポイントを結ぶ線分との角度が１８０度から小さくなるほど移動コストが増加する、構成９または１０に記載の方法。
［構成１５］
構成８〜１４のいずれかに記載の方法を制御装置に実行させるためのプログラム。
【０１４６】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内で全ての変更が含まれることが意図される。また、実施の形態および各変形例において説明された開示内容は、可能な限り、単独でも、組合わせても、実施することが意図される。
【符号の説明】
【０１４７】
１００  制御装置、１０５  台座、１１０  ヘッド、１２０  経路、２０１  駆動機構、３０１  制御部、３０２  通信部、３０３  記憶部、３０４  入力部、３０５  出力部、３０６  出力インターフェイス、３１０  ツール制御部、３２０  ツール、４００  モーター指令制御部、４０１  モーター司令部生成部、４０２  モーター指令補正部、４０３  モーター司令部、４３０  予測同期計算部、４５０  トリガー指令制御部、４５１  トリガー指令生成部、４５２  トリガー指令補正部、４５３  トリガー司令部。
【要約】
【課題】制御装置のモーターの負荷を抑制するようにヘッドによる各ポイントの通過順序を決定する。
【解決手段】制御装置１００は、ワークを設置するための台座１０５と、台座の上を移動するヘッド１１０と、ヘッドを台座の第１の軸方向に移動させるための第１の駆動機構と、ヘッドを台座の第２の軸方向に移動させるための第２の駆動機構と、第１の駆動機構および第２の駆動機構を制御する制御部とを備える。制御部は、ヘッドが、ワークの複数のポイントを通過する場合において、ヘッドが現在のポイントＣから次のポイントＮ１，Ｎ２，Ｎ３まで曲線軌跡を描く動作で通過したときの移動コストを計算し、移動コストが最少になるようにヘッドの次の移動先のポイントを選定する。
【選択図】図１【図１】
0006773243.tif 000005
【図２】
0006773243.tif 000006
【図３】
0006773243.tif 000007
【図４】
0006773243.tif 000008
【図５】
0006773243.tif 000009
【図６】
0006773243.tif 000010
【図７】
0006773243.tif 000011
【図８】
0006773243.tif 000012
【図９】
0006773243.tif 000013
【図１０】
0006773243.tif 000014
【図１１】
0006773243.tif 000015
【図１２】
0006773243.tif 000016
【図１３】
0006773243.tif 000017
【図１４】
0006773243.tif 000018
【図１５】
0006773243.tif 000019
【図１６】
0006773243.tif 000020
【図１７】
0006773243.tif 000021
【図１８】
0006773243.tif 000022
【図１９】
0006773243.tif 000023
【図２０】
0006773243.tif 000024
【図２１】
0006773243.tif 000025