"ワークに対する部品の組付け位置を探索する探索装置であって、前記ワークは、前記部品を挿入するための第1の凹部と、前記第1の凹部の底面に形成された前記部品を組付けるための第2の凹部とを有し、前記探索装置は、前記部品に対する挿入方向への押圧力によって前記部品と前記底面とを接触させた状態で、予め定められた第1の移動方向における一方の向きおよび他方の向きと、予め定められた第2の移動方向における一方の向きおよび他方の向きとに、前記部品または前記ワークを移動させる移動手段と、前記第1の移動方向への移動と前記第2の移動方向への移動とによって生じる前記部品に加わる反力を検出する反力検出手段と、前記第1の移動方向における前記一方の向きに前記部品または前記ワークを移動させたときに前記反力が第1の閾値以上となる第1の位置と、当該第1の位置から前記第1の移動方向における前記他方の向きに前記部品または前記ワークを移動させたときに前記反力が前記第1の閾値以上となる第2の位置とを特定する第1の特定手段と、前記第2の移動方向における前記一方の向きに前記部品または前記ワークを移動させたときに前記反力が第1の閾値以上となる第3の位置と、当該第3の位置から前記第2の移動方向における前記他方の向きに前記部品または前記ワークを移動させたときに前記反力が前記第1の閾値以上となる第4の位置とを特定する第2の特定手段とを備え、前記探索装置は、前記第1の位置と前記第2の位置との間の第1の距離が第2の閾値未満の場合には、第1の一連の処理として、前記第1の位置と前記第2の位置との中間位置を起点とした前記第2の移動方向への移動と、前記第2の特定手段による前記第3の位置および前記第4の位置の特定とを実行し、前記第3の位置と前記第4の位置との間の第2の距離が前記第2の閾値未満の場合には、前記第3の位置と前記第4の位置との中間位置を前記組付け位置と判断する、探索装置。前記探索装置は、前記第1の移動方向と前記第2の移動方向とを、それぞれ、一定の向きに一定量だけ変更する変更手段をさらに備え、前記第1の距離が前記第2の閾値以上の場合には、当該第1の距離が前記第2の閾値未満となるまで、前記変更手段による前記第1の移動方向および前記第2の移動方向の変更と、前記第1の位置と前記第2の位置との中間位置を起点とした前記変更後の第1の移動方向への前記移動手段による前記移動と、前記反力検出手段による前記反力の検出と、前記第1の特定手段による前記第1の位置および前記第2の位置の特定とを含む第2の一連の処理を繰り返し、前記第2の一連の処理によって前記第1の距離が前記第2の閾値未満となると、前記第1の一連の処理を実行し、前記第1の一連の処理により特定された前記第3の位置と前記第4の位置との間の前記第2の距離が前記第2の閾値未満の場合には、前記第3の位置と前記第4の位置との中間位置を前記組付け位置と判断する、請求項1に記載の探索装置。前記第2の距離が前記第2の閾値以上の場合には、前記第1の距離が再度前記第2の閾値未満となるまで、前記第2の一連の処理を繰り返し、前記第1の距離が再度前記第2の閾値未満となると、前記第1の一連の処理を再度実行し、当該第1の一連の処理により特定された前記第3の位置と前記第4の位置との間の前記第2の距離が前記第2の閾値未満となった場合には、前記第3の位置と前記第4の位置との中間位置を前記組付け位置と判断する、請求項2に記載の探索装置。前記第1の移動方向における前記一方の向きへの移動距離が予め定められた距離以上となると、前記移動の中止と、前記変更手段による前記第1の移動方向および前記第2の移動方向の変更と、当該移動の開始位置を起点とした前記変更後の第1の移動方向への前記移動手段による前記移動と、前記反力検出手段による前記反力の検出と、前記第1の特定手段による前記第1の位置および前記第2の位置の特定とを実行する、請求項3に記載の探索装置。前記探索装置は、前記部品を負圧により吸着する吸着手段と、前記吸着によって形成された密閉空間への空気流入を検知する検知手段と、前記空気流入の回数をカウントするカウント手段と、前記空気流入の回数が予め定められた回数となると前記押圧力を上昇させる圧力制御手段とを備える、請求項3または4に記載の探索装置。ワークに対する部品の組付け位置を探索する探索装置であって、前記ワークは、前記部品を挿入するための第1の凹部と、前記第1の凹部の底面に形成された前記部品を組付けるための第2の凹部とを有し、前記探索装置は、前記部品に対する挿入方向への押圧力によって前記部品と前記底面とを接触させた状態で、予め定められた移動方向における一方の向きおよび当該一方の向きとは反対の他方の向きに、前記部品または前記ワークを移動させる移動手段と、前記移動によって生じる前記部品に加わる反力を検出する反力検出手段と、前記一方の向きに前記部品または前記ワークを移動させたときに前記反力が第1の閾値以上となる第1の位置と、当該第1の位置から前記他方の向きに前記部品または前記ワークを移動させたときに前記反力が前記第1の閾値以上となる第2の位置とを特定する特定手段と、前記移動方向を、一定の向きに一定量だけ変更する変更手段とを備え、前記探索装置は、前記第1の位置と前記第2の位置との間の距離が第2の閾値未満の場合には、前記第1の位置と前記第2の位置との中間位置を前記組み付け位置と判断し、前記距離が前記第2の閾値以上の場合には、当該距離が前記第2の閾値未満となるまで、前記変更手段による前記移動方向の変更と、前記変更後の移動方向における前記中間位置を起点とした前記移動手段による前記移動と、前記反力検出手段による前記反力の検出と、前記特定手段による前記第1の位置および前記第2の位置の特定とを含む一連の処理を繰り返し、当該距離が前記第2の閾値未満となったときの前記第1の位置と前記第2の位置との中間位置を前記組付け位置と判断する、探索装置。前記部品は、ネジであって、前記ワークは、第1のワークと、第2のワークとを有し、前記第1のワークは、前記第2のワークに重なって配置されており、前記第1のワークは、前記第1の凹部としてバカ穴を有し、前記第2のワークは、前記第2の凹部としてネジ穴を有し、前記底面は、前記第2のワークの表面である、請求項1から6のいずれか1項に記載の探索装置。請求項1から7のいずれか1項に記載の探索装置と、前記組付け位置において、前記部品を前記第2の凹部に組付ける組付け手段とを備える、自動組付け装置。ワークに対する部品の組付け位置を探索する探索装置における探索方法であって、前記ワークは、前記部品を挿入するための第1の凹部と、前記第1の凹部の底面に形成された前記部品を組付けるための第2の凹部とを有し、前記探索方法は、前記探索装置のプロセッサが、前記部品に対する挿入方向への押圧力によって前記部品と前記底面とを接触させた状態で、予め定められた第1の移動方向における一方の向きおよび他方の向きと、予め定められた第2の移動方向における一方の向きおよび他方の向きとに、前記部品または前記ワークを移動させるステップと、前記探索装置のセンサが、前記第1の移動方向への移動と前記第2の移動方向への移動とによって生じる前記部品に加わる反力を検出するステップと、前記プロセッサが、前記第1の移動方向における前記一方の向きに前記部品または前記ワークを移動させたときに前記反力が第1の閾値以上となる第1の位置と、当該第1の位置から前記第1の移動方向における前記他方の向きに前記部品または前記ワークを移動させたときに前記反力が前記第1の閾値以上となる第2の位置とを特定するステップと、前記プロセッサが、前記第2の移動方向における前記一方の向きに前記部品または前記ワークを移動させたときに前記反力が第1の閾値以上となる第3の位置と、当該第3の位置から前記第2の移動方向における前記他方の向きに前記部品または前記ワークを移動させたときに前記反力が前記第1の閾値以上となる第4の位置とを特定するステップと、前記第1の位置と前記第2の位置との間の第1の距離が第2の閾値未満の場合には、前記プロセッサが、前記第1の位置と前記第2の位置との中間位置を起点とした前記第2の移動方向への移動と、前記第3の位置および前記第4の位置の特定とを実行するステップと、前記第3の位置と前記第4の位置との間の第2の距離が前記第2の閾値未満の場合には、前記プロセッサが、前記第3の位置と前記第4の位置との中間位置を前記組付け位置と判断するステップとを備える、探索方法。ワークに対する部品の組付け位置を探索する探索装置における探索方法であって、前記ワークは、前記部品を挿入するための第1の凹部と、前記第1の凹部の底面に形成された前記部品を組付けるための第2の凹部とを有し、前記探索方法は、前記探索装置のプロセッサが、前記部品に対する挿入方向への押圧力によって前記部品と前記底面とを接触させた状態で、予め定められた移動方向における一方の向きおよび当該一方の向きとは反対の他方の向きに、前記部品または前記ワークを移動させるステップと、前記探索装置のセンサが、前記移動によって生じる前記部品に加わる反力を検出するステップと、前記プロセッサが、前記一方の向きに前記部品または前記ワークを移動させたときに前記反力が第1の閾値以上となる第1の位置と、当該第1の位置から前記他方の向きに前記部品または前記ワークを移動させたときに前記反力が前記第1の閾値以上となる第2の位置とを特定するステップと、前記プロセッサが、前記移動方向を、一定の向きに一定量だけ変更するステップと、前記第1の位置と前記第2の位置との間の距離が第2の閾値未満の場合には、前記プロセッサが、前記第1の位置と前記第2の位置との中間位置を前記組み付け位置と判断するステップと、前記距離が前記第2の閾値以上の場合には、前記プロセッサが、当該距離が前記第2の閾値未満となるまで、前記移動方向の変更と、前記変更後の移動方向における前記中間位置を起点とした前記移動と、前記反力の検出と、前記第1の位置および前記第2の位置の特定とを含む一連の処理を繰り返すステップと、当該距離が前記第2の閾値未満となったときの前記第1の位置と前記第2の位置との中間位置を前記組付け位置と判断するステップとを備える、探索方法。ワークに対する部品の組付け位置を探索する探索装置を制御するためのプログラムであって、前記探索装置は、プロセッサと、力センサとを有し、前記ワークは、前記部品を挿入するための第1の凹部と、前記第1の凹部の底面に形成された前記部品を組付けるための第2の凹部とを有し、前記プログラムは、前記部品に対する挿入方向への押圧力によって前記部品と前記底面とを接触させた状態で、予め定められた第1の移動方向における一方の向きおよび他方の向きと、予め定められた第2の移動方向における一方の向きおよび他方の向きとに、前記部品または前記ワークを移動させるステップと、前記第1の移動方向への移動と前記第2の移動方向への移動とによって生じる前記部品に加わる反力を、前記力センサから受付けるステップと、前記第1の移動方向における前記一方の向きに前記部品または前記ワークを移動させたときに前記反力が第1の閾値以上となる第1の位置と、当該第1の位置から前記第1の移動方向における前記他方の向きに前記部品または前記ワークを移動させたときに前記反力が前記第1の閾値以上となる第2の位置とを特定するステップと、前記第2の移動方向における前記一方の向きに前記部品または前記ワークを移動させたときに前記反力が第1の閾値以上となる第3の位置と、当該第3の位置から前記第2の移動方向における前記他方の向きに前記部品または前記ワークを移動させたときに前記反力が前記第1の閾値以上となる第4の位置とを特定するステップと、前記第1の位置と前記第2の位置との間の第1の距離が第2の閾値未満の場合には、前記第1の位置と前記第2の位置との中間位置を起点とした前記第2の移動方向への移動と、前記第3の位置および前記第4の位置の特定とを実行するステップと、前記第3の位置と前記第4の位置との間の第2の距離が前記第2の閾値未満の場合には、前記第3の位置と前記第4の位置との中間位置を前記組付け位置と判断するステップとを、前記プロセッサに実行させる、プログラム。ワークに対する部品の組付け位置を探索する探索装置を制御するためのプログラムであって、前記探索装置は、プロセッサと、力センサとを有し、前記ワークは、前記部品を挿入するための第1の凹部と、前記第1の凹部の底面に形成された前記部品を組付けるための第2の凹部とを有し、前記プログラムは、前記部品に対する挿入方向への押圧力によって前記部品と前記底面とを接触させた状態で、予め定められた移動方向における一方の向きおよび当該一方の向きとは反対の他方の向きに、前記部品または前記ワークを移動させるステップと、前記移動によって生じる前記部品に加わる反力を、前記力センサから受付けるステップと、前記一方の向きに前記部品または前記ワークを移動させたときに前記反力が第1の閾値以上となる第1の位置と、当該第1の位置から前記他方の向きに前記部品または前記ワークを移動させたときに前記反力が前記第1の閾値以上となる第2の位置とを特定するステップと、前記移動方向を、一定の向きに一定量だけ変更するステップと、前記第1の位置と前記第2の位置との間の距離が第2の閾値未満の場合には、前記第1の位置と前記第2の位置との中間位置を前記組み付け位置と判断するステップと、前記距離が前記第2の閾値以上の場合には、当該距離が前記第2の閾値未満となるまで、前記移動方向の変更と、前記変更後の移動方向における前記中間位置を起点とした前記移動と、前記反力の検出と、前記第1の位置および前記第2の位置の特定とを含む一連の処理を繰り返すステップと、当該距離が前記第2の閾値未満となったときの前記第1の位置と前記第2の位置との中間位置を前記組付け位置と判断するステップとを、前記プロセッサに実行させる、プログラム。しかしながら、特許文献1~5であっても、部品を挿入するための第1の凹部と第1の凹部の底面に形成された部品を組付けるための第2の凹部とを有するワークに対して部品の組み付けを行なう場合、第2の凹部の探索時に部品が第1の凹部の側面に接触することがあり、部品の組付け位置を精度よく探索することは難しい。本発明は、上記の問題点に鑑みなされたものであって、その目的は、部品のワークへの組付け工程において、ワークが位置および/または寸法のばらつきを有する場合でも、部品の組付け位置を精度よく探索できる探索装置、自動組付け装置、探索方法、およびプログラムを提供することにある。本発明のある局面に従うと、探索装置は、ワークに対する部品の組付け位置を探索する探索装置である。ワークは、部品を挿入するための第1の凹部と、第1の凹部の底面に形成された部品を組付けるための第2の凹部とを有する。探索装置は、部品に対する挿入方向への押圧力によって部品と底面とを接触させた状態で、予め定められた第1の移動方向における一方の向きおよび他方の向きと、予め定められた第2の移動方向における一方の向きおよび他方の向きとに、部品またはワークを移動させる移動手段と、第1の移動方向への移動と第2の移動方向への移動とによって生じる部品に加わる反力を検出する反力検出手段と、第1の移動方向における一方の向きに部品またはワークを移動させたときに反力が第1の閾値以上となる第1の位置と、第1の位置から第1の移動方向における他方の向きに部品またはワークを移動させたときに反力が第1の閾値以上となる第2の位置とを特定する第1の特定手段と、第2の移動方向における一方の向きに部品またはワークを移動させたときに反力が第1の閾値以上となる第3の位置と、第3の位置から第2の移動方向における他方の向きに部品またはワークを移動させたときに反力が第1の閾値以上となる第4の位置とを特定する第2の特定手段とを備える。探索装置は、第1の位置と第2の位置との間の第1の距離が第2の閾値未満の場合には、第1の一連の処理として、第1の位置と第2の位置との中間位置を起点とした第2の移動方向への移動と、第2の特定手段による第3の位置および第4の位置の特定とを実行し、第3の位置と第4の位置との間の第2の距離が第2の閾値未満の場合には、第3の位置と第4の位置との中間位置を組付け位置と判断する。好ましくは、探索装置は、第1の移動方向と第2の移動方向とを、それぞれ、一定の向きに一定量だけ変更する変更手段をさらに備える。探索装置は、第1の距離が第2の閾値以上の場合には、第1の距離が第2の閾値未満となるまで、変更手段による第1の移動方向および第2の移動方向の変更と、第1の位置と第2の位置との中間位置を起点とした変更後の第1の移動方向への移動手段による移動と、反力検出手段による反力の検出と、第1の特定手段による第1の位置および第2の位置の特定とを含む第2の一連の処理を繰り返す。探索装置は、第2の一連の処理によって第1の距離が第2の閾値未満となると、第1の一連の処理を実行する。探索装置は、第1の一連の処理により特定された第3の位置と第4の位置との間の第2の距離が第2の閾値未満の場合には、第3の位置と第4の位置との中間位置を組付け位置と判断する。好ましくは、探索装置は、第2の距離が第2の閾値以上の場合には、第1の距離が再度第2の閾値未満となるまで、第2の一連の処理を繰り返す。探索装置は、第1の距離が再度第2の閾値未満となると、第1の一連の処理を再度実行する。探索装置は、第1の一連の処理により特定された第3の位置と第4の位置との間の第2の距離が第2の閾値未満となった場合には、第3の位置と第4の位置との中間位置を組付け位置と判断する。好ましくは、探索装置は、第1の移動方向における一方の向きへの移動距離が予め定められた距離以上となると、移動の中止と、変更手段による第1の移動方向および第2の移動方向の変更と、当該移動の開始位置を起点とした変更後の第1の移動方向への移動手段による移動と、反力検出手段による反力の検出と、第1の特定手段による第1の位置および第2の位置の特定とを実行する。好ましくは、探索装置は、部品を負圧により吸着する吸着手段と、吸着によって形成された密閉空間への空気流入を検知する検知手段と、空気流入の回数をカウントするカウント手段と、空気流入の回数が予め定められた回数となると押圧力を上昇させる圧力制御手段とを備える。本発明の他の局面に従うと、探索装置は、ワークに対する部品の組付け位置を探索する探索装置である。ワークは、部品を挿入するための第1の凹部と、第1の凹部の底面に形成された部品を組付けるための第2の凹部とを有する。探索装置は、部品に対する挿入方向への押圧力によって部品と底面とを接触させた状態で、予め定められた移動方向における一方の向きおよび当該一方の向きとは反対の他方の向きに、部品またはワークを移動させる移動手段と、移動によって生じる部品に加わる反力を検出する反力検出手段と、一方の向きに部品またはワークを移動させたときに反力が第1の閾値以上となる第1の位置と、当該第1の位置から他方の向きに部品またはワークを移動させたときに反力が第1の閾値以上となる第2の位置とを特定する特定手段と、移動方向を、一定の向きに一定量だけ変更する変更手段とを備える。探索装置は、第1の位置と第2の位置との間の距離が第2の閾値未満の場合には、第1の位置と第2の位置との中間位置を組み付け位置と判断する。探索装置は、距離が第2の閾値以上の場合には、距離が第2の閾値未満となるまで、変更手段による移動方向の変更と、変更後の移動方向における中間位置を起点とした移動手段による移動と、反力検出手段による反力の検出と、特定手段による第1の位置および第2の位置の特定とを含む一連の処理を繰り返す。探索装置は、距離が第2の閾値未満となったときの第1の位置と第2の位置との中間位置を組付け位置と判断する。好ましくは、部品は、ネジである。ワークは、第1のワークと、第2のワークとを有する。第1のワークは、第2のワークに重なって配置されている。第1のワークは、第1の凹部としてバカ穴を有する。第2のワークは、第2の凹部としてネジ穴を有する。底面は、第2のワークの表面である。本発明のさらに他の局面に従うと、自動組付け装置は、上述した探索装置と、組付け位置において、部品を第2の凹部に組付ける組付け手段とを備える。本発明のさらに他の局面に従うと、探索方法は、ワークに対する部品の組付け位置を探索する探索装置における探索方法である。ワークは、部品を挿入するための第1の凹部と、第1の凹部の底面に形成された部品を組付けるための第2の凹部とを有する。探索方法は、探索装置のプロセッサが、部品に対する挿入方向への押圧力によって部品と底面とを接触させた状態で、予め定められた第1の移動方向における一方の向きおよび他方の向きと、予め定められた第2の移動方向における一方の向きおよび他方の向きとに、部品またはワークを移動させるステップと、探索装置のセンサが、第1の移動方向への移動と第2の移動方向への移動とによって生じる部品に加わる反力を検出するステップと、プロセッサが、第1の移動方向における一方の向きに部品またはワークを移動させたときに反力が第1の閾値以上となる第1の位置と、当該第1の位置から第1の移動方向における他方の向きに部品またはワークを移動させたときに反力が第1の閾値以上となる第2の位置とを特定するステップと、プロセッサが、第2の移動方向における一方の向きに部品またはワークを移動させたときに反力が第1の閾値以上となる第3の位置と、当該第3の位置から第2の移動方向における他方の向きに部品またはワークを移動させたときに反力が第1の閾値以上となる第4の位置とを特定するステップと、第1の位置と第2の位置との間の第1の距離が第2の閾値未満の場合には、プロセッサが、第1の位置と第2の位置との中間位置を起点とした第2の移動方向への移動と、第3の位置および第4の位置の特定とを実行するステップと、第3の位置と第4の位置との間の第2の距離が第2の閾値未満の場合には、プロセッサが、第3の位置と第4の位置との中間位置を組付け位置と判断するステップとを備える。本発明のさらに他の局面に従うと、探索方法は、ワークに対する部品の組付け位置を探索する探索装置における探索方法である。ワークは、部品を挿入するための第1の凹部と、第1の凹部の底面に形成された部品を組付けるための第2の凹部とを有する。探索方法は、探索装置のプロセッサが、部品に対する挿入方向への押圧力によって部品と底面とを接触させた状態で、予め定められた移動方向における一方の向きおよび当該一方の向きとは反対の他方の向きに、部品またはワークを移動させるステップと、探索装置のセンサが、移動によって生じる部品に加わる反力を検出するステップと、プロセッサが、一方の向きに部品またはワークを移動させたときに反力が第1の閾値以上となる第1の位置と、当該第1の位置から他方の向きに部品またはワークを移動させたときに反力が第1の閾値以上となる第2の位置とを特定するステップと、プロセッサが、移動方向を、一定の向きに一定量だけ変更するステップと、第1の位置と第2の位置との間の距離が第2の閾値未満の場合には、プロセッサが、第1の位置と第2の位置との中間位置を組み付け位置と判断するステップと、距離が第2の閾値以上の場合には、プロセッサが、距離が第2の閾値未満となるまで、移動方向の変更と、変更後の移動方向における中間位置を起点とした移動と、反力の検出と、第1の位置および第2の位置の特定とを含む一連の処理を繰り返すステップと、距離が第2の閾値未満となったときの第1の位置と第2の位置との中間位置を組付け位置と判断するステップとを備える。本発明のさらに他の局面に従うと、プログラムは、ワークに対する部品の組付け位置を探索する探索装置を制御するためのプログラムである。探索装置は、プロセッサと、力センサとを有する。ワークは、部品を挿入するための第1の凹部と、第1の凹部の底面に形成された部品を組付けるための第2の凹部とを有する。プログラムは、部品に対する挿入方向への押圧力によって部品と底面とを接触させた状態で、予め定められた第1の移動方向における一方の向きおよび他方の向きと、予め定められた第2の移動方向における一方の向きおよび他方の向きとに、部品またはワークを移動させるステップと、第1の移動方向への移動と第2の移動方向への移動とによって生じる部品に加わる反力を、力センサから受付けるステップと、第1の移動方向における一方の向きに部品またはワークを移動させたときに反力が第1の閾値以上となる第1の位置と、当該第1の位置から第1の移動方向における他方の向きに部品またはワークを移動させたときに反力が第1の閾値以上となる第2の位置とを特定するステップと、第2の移動方向における一方の向きに部品またはワークを移動させたときに反力が第1の閾値以上となる第3の位置と、当該第3の位置から第2の移動方向における他方の向きに部品またはワークを移動させたときに反力が第1の閾値以上となる第4の位置とを特定するステップと、第1の位置と第2の位置との間の第1の距離が第2の閾値未満の場合には、第1の位置と第2の位置との中間位置を起点とした第2の移動方向への移動と、第3の位置および第4の位置の特定とを実行するステップと、第3の位置と第4の位置との間の第2の距離が第2の閾値未満の場合には、第3の位置と第4の位置との中間位置を組付け位置と判断するステップとを、プロセッサに実行させる。本発明のさらの他の局面に従うと、プログラムは、ワークに対する部品の組付け位置を探索する探索装置を制御するためのプログラムである。探索装置は、プロセッサと、力センサとを有する。ワークは、部品を挿入するための第1の凹部と、第1の凹部の底面に形成された部品を組付けるための第2の凹部とを有する。プログラムは、部品に対する挿入方向への押圧力によって部品と底面とを接触させた状態で、予め定められた移動方向における一方の向きおよび当該一方の向きとは反対の他方の向きに、部品またはワークを移動させるステップと、移動によって生じる部品に加わる反力を、力センサから受付けるステップと、一方の向きに部品またはワークを移動させたときに反力が第1の閾値以上となる第1の位置と、第1の位置から他方の向きに部品またはワークを移動させたときに反力が第1の閾値以上となる第2の位置とを特定するステップと、移動方向を、一定の向きに一定量だけ変更するステップと、第1の位置と第2の位置との間の距離が第2の閾値未満の場合には、第1の位置と第2の位置との中間位置を組み付け位置と判断するステップと、距離が第2の閾値以上の場合には、距離が第2の閾値未満となるまで、移動方向の変更と、変更後の移動方向における中間位置を起点とした移動と、反力の検出と、第1の位置および第2の位置の特定とを含む一連の処理を繰り返すステップと、距離が第2の閾値未満となったときの第1の位置と第2の位置との中間位置を組付け位置と判断するステップとを、プロセッサに実行させる。上記の発明によれば、部品のワークへの組付け工程において、ワークが位置および/または寸法のばらつきを有する場合でも、部品の組付け位置を精度よく探索できる。以下、図面を参照しつつ、本発明の実施の形態に係る自動組付け装置について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。<概略構成>図1は、本実施の形態に係る自動組付け装置1の概略構成を示した図である。図1を参照して、自動組付け装置1は、部品をワークに組付ける装置である。自動組付け装置1は、部品の組付け位置を探索する探索装置と、当該探索した組付け位置において当該部品をワークに組付ける組付け装置とを備える。自動組付け装置1では、探索装置と組付け装置とが一体として構成されている。自動組付け装置1は、具体的には、ネジ800をワーク900のネジ穴に対して締め付けるための自動ネジ締め装置である。自動組付け装置1は、基部11と、スカラロボット12と、組付け部13と、ネジ供給機構14とを備える。スカラロボット12は、リンク121と、関節128と、リンク122と、関節129と、リンク123とをこの順に備える。組付け部13は、直動軸131と、直動軸132と、直動軸133と、力センサ134と、ネジ締めドライバ135と、ネジ吸着機構136と、衝撃緩和機構図示せずとを備える。基部11は、金属製の土台である。基部11は、直方体形状を有している。基部11は、上面の寸法が約1500mm×約1500mmである。スカラロボット12は、SCARASelectiveComplianceAssemblyRobotArm型のロボットである。スカラロボット12は、鉛直方向の回転軸を持ち、かつ先端部を水平面内で移動可能とする。リンク121は、基部11に固定されている。リンク121とリンク122とは関節128によって接続されている。リンク122とリンク123とは関節129によって接続されている。スカラロボット12は、図示しないロボット制御部21図4参照によって関節128および129の角度を制御することにより、所定の位置に先端部を移動させる。関節128と129との距離は、450mmである。関節129と、直動軸131,132を原点位置にしたときのネジ締めドライバ135の軸との距離は、550mmである。スカラロボット12は、関節128を中心として半径1000mmの範囲内にネジ締めドライバ135を移動できる。組付け部13は、後述する組付け処理と、ネジ締め動作とを行なうための機構である。組付け部13は、スカラロボット12のリンク123の先端に固定され、スカラロボット12によって移動する。直動軸131,132,133は、ネジ800を移動させる。直動軸131,132,133は、直動型アクチュエータである。直動軸131,132,133は、モーターとボールネジとで構成される。直動軸133の基部は、リンク123に固定されている。直動軸133は、先端側を図1の上下方向z軸方向に駆動する。直動軸132の基部は、直動軸133の先端側に固定されている。直動軸132は、先端側を図1の左右方向y軸方向に駆動する。直動軸131の基部は、直動軸132の先端側に固定されている。直動軸131は、先端側を図1の紙面垂直方向z軸とy軸とに垂直な方向以下、x方向と称するに駆動する。直動軸131および直動軸132は、20mmのストロークを持ち、ストロークの中央を原点とする動作をする。直動軸133は、50mmのストロークを持ち、ストローク上端を原点とする動作をする。直動軸131,132,133は、図示しない組付け制御部22図4参照の制御により、それぞれ、先端側を指定された位置に移動する。力センサ134は、ワーク900に対するネジ800の接触圧を検出する。力センサ134は、x軸、y軸、およびz軸の3軸方向に加えられた力の大きさを検出する3軸力覚センサである。以下では、x軸に加えられた力の大きさを力FXと、y軸に加えられた力の大きさを力FYと、z軸に加えられた力の大きさを力FZと称する。力センサ134の基部は、直動軸131の先端側に固定されている。力センサ134のx,y,zの3軸は、各々直動軸131,132,133の駆動方向と平行となるように取り付けられている。力センサ134の力測定レンジはx,y,zの各方向に±100Nである。力センサ134は、1msごとに力FX,FY,FZを測定し、後述の制御部20図4参照からの読取り処理に応じて、制御部20に出力する。力センサ134の出力は、図1の状態すなわち、先端にネジ締めドライバ135が搭載された状態で、力FX,FY,FZが0になるようオフセット調整されている。ネジ締めドライバ135は、トルク管理による自動ネジ締めが可能なドライバである。ネジ締めドライバ135は、力センサ134の先端側に取り付けられている。ネジ締めドライバ135は、ネジ締め開始の指示を受けると、先端のビット1351図2参照を回転させてネジ締めを行なう。ネジ締めドライバ135は、ビット1351からの反トルクが所定の完了トルクに達するとビット1351の回転を停止し、ネジ締めが完了したことを表す完了信号を制御部20に出力する。ビット1351の付け根には、バネによる衝撃緩和機構が内蔵されている。衝撃緩和機構は、ネジの押し込み方向の力に応じてビット1351の突き出し量を短縮する。これによって、衝撃緩衝機構は、直動軸133が駆動されてビット1351がワーク900に接触するときの衝撃を緩和する。また、衝撃緩和機構により、Z軸位置変動時の反力変化が緩和され、後述する探索移動中の押付け力となる力FZを一定に保つ制御が安定しやすくなる。ネジ締めドライバ135は、トルクアップ検知機能を備える。なお、図示しない制御部20図4参照は、異常判定機能を持つ。制御部20は、ネジ締め中に所定の締結回転角度より少ない回転でトルクが上昇した場合、ビット1351の回転を停止させる。制御部20は、ネジ締め開始後に所定時間が経過してもトルクが上昇しない場合には、ビット1351の回転を停止させる。図2は、ネジ締めドライバ135の先端部と、ネジ吸着機構136と、ワーク900との断面を示した断面図である。図2を参照して、ネジ吸着機構136は、ネジ800を把持する把持手段としての機能を果たす。具体的には、ネジ吸着機構136は、負圧によりネジ800をビット1351に吸着する機構である。ネジ吸着機構136は、ビット1351の付け根に取り付けられている。ネジ吸着機構136は、図示しない空圧パイプにより、外部の負圧源に接続されている。ネジ吸着機構136は、先端にゴム部材1361を備える。ネジ吸着機構136は、ゴム部材1361がネジ800の頭部801に接触すると、空圧パイプによる吸引処理によりゴム部材1361は頭部801に密着する。これにより、負圧による密閉空間が形成される。また、ネジ800がビット1351に対して傾斜した場合でも、ゴム部材1361の弾性によってゴム部材1361が変形し追従するため密閉が保たれる。それゆえ、吸着力は、維持される。さらに、ネジ800がビット1351に対して傾斜した場合、当該傾斜を無くそうとする反力がゴム部材1361から発生する。ネジ供給機構14は、一般的な自動式のネジ供給機である。ネジ供給機構14は、予め内部にストックした複数のネジを整列した後、1個のネジを取り出す。さらに、ネジ供給機構14は、取り出したネジの頭部801をネジの先端面890に対して上に向けた状態で、ネジ供給機構14上面の所定の供給位置にネジを移動させる。ネジ供給機構14は、略直方体の形状を有する。ネジ供給機構14は、基部11上のワーク900の設置範囲に隣接して設置されている。ネジ供給機構14は、スカラロボット12を駆動することによって、ネジ締めドライバ135をネジ供給機構14の供給位置上へ移動させることができる。ネジ供給機構14は、供給位置にネジがあるかどうかを検知するセンサを持つ。ネジ供給機構14は、ネジが取り去られると内部機構を駆動して次のネジを供給位置に移動させる。ネジ800は、たとえば、M3、ネジ長6mm、バインド頭のメートルネジである。なお、ネジ800のサイズや種別は、これに限定されるものではない。ワーク900は、ネジ800により締結される部材である。ワーク900は、ネジ800を挿入するための上穴911第1の凹部と、上穴911の底面908に形成されたネジ800を組付けるためのネジ穴921第2の凹部とを有する。より具体的には、ワーク900は、ともに長方形平板状のワーク901とワーク902とからなる。ワーク901は、ワーク902に対して、上面と外周を覆う形で乗せられており、横方向に一定の誤差範囲内で位置決めされている。ワーク901とワーク902とには、上面外周に沿って複数箇所に、締結用の穴が開けられている。ワーク901の厚みは1.0mmであり、ワーク900の全体厚みは40mmである。ワーク901の穴は、一定径のバカ穴である。ワーク902の穴は、M3のメネジである。なお、底面908は、ワーク902の露出面でもある。以下では、説明の便宜上、底面908を露出面908とも称する。ワーク900は、図示しない外部の搬送装置により、基部11上の所定位置に設置される。また自動組付け装置1によるネジ締めが終わると、ワーク900は、外部の搬送装置により搬出される。基部11上の所定位置に設置されたワーク900の穴の位置は、以下の要因による誤差を持つ。外部の搬送装置がワーク900を設置する動作のばらつきワーク902に対するワーク901のガタつきワーク901およびワーク902の寸法公差以上の累積として、基部11上の所定位置に設置されたワーク901およびワーク902の穴の位置は、その設計上の基準位置を中心に、たとえば±1.5mmの範囲のばらつきを持つ。図3は、ワーク900の上面図である。図3を参照して、上穴911とネジ穴921とは、円形の開口を有している。上穴911の中心とネジ穴921の中心とは、ずれている。自動組付け装置1は、ネジ800の先端面890図2参照を露出面908に接触させた後、ネジ穴921の探索を開始する。<制御系の構成>図4は、自動組付け装置1の制御系の構成を示した図である。自動組付け装置1は、制御部20と、ロボット制御部21と、組付け制御部22と、ネジ供給機構14と、ネジ締めドライバ135と、力センサ134と、ネジ吸着機構136と、関節128と、関節129と、直動軸131と、直動軸132と、直動軸133とを備える。制御部20は、それぞれ後述する、移動量の設定、ノイズμの生成、組付けの進捗度の評価、各種パラメータの記憶、当該パラメータの更新を行なうための計算機である。具体的には、制御部20は、一般的なPCPersonalComputerである図11参照。制御部20は、後述する自動組付け装置1の制御フロー図9,図10を実行するためのアルゴリズムを、予め記憶部図示せずに記憶している。なお、記憶部は、たとえば、HDDHardDiscDrive、フラッシュメモリ等の不揮発性のメモリである。制御部20は、ロボット制御部21,組付け制御部22、ネジ締めドライバ135および力センサ134と通信線で接続され、当該各機器の状態読取りおよび制御を行なう。具体的には、制御部20は、ロボット制御部21に対して、スカラロボット12の関節128および129の角度読取りと目標角度との指令を行なう。制御部20は、組付け制御部22に対して、直動軸131,132,133の位置の取得と目標位置との指令を行なう。制御部20は、ネジ締めドライバ135に対して、異常状態および完了状態の読取りと、締結開始の指示とを行なう。制御部20は、力センサ134に対して、最新の力FX、FY,FZの読取りを行なう。制御部20は、計算パラメータとして、直動軸131,132,133の各々の目標位置PX,PY,PZと、その移動量MX,MY,MZを記憶しており、制御計算によって更新する。<機能ブロック>図5は、自動組付け装置1の機能的構成を示した機能ブロック図である。図5を参照して、自動組付け装置1は、制御部20と、反力検出部250と、移動部260と、吸着部270と、空気流入検知部280と、接触圧検出部291と、トルク検出部292とを備える。制御部20は、特定部210と、距離算出部220と、変更部230と、カウント部240と、押圧力制御部245とを含む。特定部210は、第1特定部211と第2特定部212とを有する。接触圧検出部291は、力センサ134に対応する。接触圧検出部291は、ワーク900に対するネジ800の接触圧を検出し、検出結果を制御部20に送る。トルク検出部292は、ネジ締めドライバ135に対応する。トルク検出部292は、ネジ800を締める際の締付けトルクを検出し、検出結果を制御部20に送る。移動部260は、直動軸131,132,133に対応する。移動部260は、制御部20からの指示に基づき動作する。具体的には、移動部260は、ネジ800に対する挿入方向z方向への押圧力によってネジ800とワーク902の露出面908とを接触させた状態で、予め定められた第1の移動方向以下、u軸方向と称するにおける正の向きの向きおよび負の向き-の向きに、ネジ800を移動させる。また、移動部260は、上記接触させた状態で、予め定められた第2の移動方向以下、v軸方向と称するにおける正の向きおよび負の向きに、ネジ800を移動させる。反力検出部250は、u軸方向への移動とv軸方向への移動とによって生じるネジ800に加わる反力を検出する。具体的には、反力検出部250は、当該移動によって生じる露出面908との摩擦力、ネジ800の側面ネジの先端部802付近が上穴911の側面に当たったときに生じる接触圧、ネジ800の側面がネジ穴921の入口側面に当たったときに生じる接触圧を検出する。特定部210は、反力検出部250により検出された反力が所定の条件を満たすときのxy座標系におけるネジの位置を特定する。具体的には、特定部210は、以下に述べる、第1特定部211による特定処理と、第2特定部212による特定処理とを行なう。第1特定部211は、u軸方向における正の向きにネジ800を移動させたときに反力が閾値Th1以上となる位置Pα第1の位置を特定する。また、第1特定部211は、さらに上記第1の位置からu軸方向における負の向きにネジ800を移動させたときに反力が閾値Th1以上となる位置Pβ第2の位置とを特定する。第2特定部212は、v軸方向における正の向きにネジ800を移動させたときに反力が閾値Th1以上となる位置Pγ第3の位置を特定する。また、第2特定部212は、上記第3の位置からv軸方向における負の向きにネジ800を移動させたときに反力が閾値Th1以上となる位置Pδ第4の位置とを特定する。距離算出部220は、位置Pαと位置Pβとの間の距離L1第1の距離を算出する。また、距離算出部220は、位置Pγと位置Pδとの間の距離L2第2の距離を算出する。詳細については図10に示したフローチャートに基づいて説明するが、制御部20は、位置Pαと位置Pβとの間の距離L1が閾値Th2未満の場合には、一連の処理Sα第1の一連の処理として、位置Pαと位置Pβとの中間位置Pmを起点としたv軸方向への移動と、第2特定部212による位置Pγおよび位置Pδの特定とを実行する。制御部20は、位置Pγと位置Pδとの間の距離L2が閾値Th2未満の場合には、位置Pγと位置δとの中間位置Pnを組付け位置と判断する。閾値Th2は、ネジ800およびネジ穴921の直径に比べて十分に小さい値である。たとえばネジの直径が3mmである場合、閾値Th2は、たとえば1mmである。閾値Th2は、ネジの直径および/または上穴911の径等に基づいた値に、予め定められている。変更部230は、u軸方向とv軸方向とを、それぞれ、一定の向きに一定量だけ変更する。当該向きと量との詳細については、後述する。また、詳細については図10に示したフローチャートに基づいて説明するが、自動組付け装置1は、距離L1が閾値Th2以上の場合には、距離L1が閾値Th2未満となるまで、変更部230によるu軸方向およびv軸方向の変更と、位置Pαと位置Pβとの中間位置Pmを起点とした当該変更後のu軸方向への移動部260による移動と、反力検出部250による反力の検出と、第1特定部211による位置Pαおよび位置Pβの特定とを含む一連の処理Sβ第2の一連の処理を繰り返す。自動組付け装置1は、一連の処理Sβによって距離L1が閾値Th2未満となると、一連の処理Sαを実行する。自動組付け装置1は、一連の処理Sαにより特定された位置Pγと位置Pδとの間の距離L2が閾値Th2未満の場合には、位置Pγと位置Pδとの中間位置Pnを組付け位置と判断する。また、自動組付け装置1は、距離L2が閾値Th2以上の場合には、距離L1が再度閾値Th2未満となるまで、一連の処理Sβを繰り返す。自動組付け装置1は、距離L1が再度閾値Th2未満となると、一連の処理Sαを再度実行する。自動組付け装置1は、一連の処理Sαにより特定された位置Pγと位置Pδとの間の距離L2が閾値Th2未満となった場合には、位置Pγと位置Pδとの中間位置Pnを組付け位置と判断する。吸着部270は、ネジ800を負圧により吸着する。空気流入検知部280は、吸着時の空気流入を検知する。つまり、空気流入検知部280は、負圧により形成された密閉空間への外部空気の流入を検知する。なお、吸着部270と空気流入検知部280とを合わせた構成が、図4に示したネジ吸着機構136に対応する。カウント部240は、空気流入の回数をカウントする。押圧力制御部245は、空気流入の回数が予め定められた回数となると、上記押圧力ネジ800に加えるz方向への力を上昇させる。これにより、ネジ800の頭部801が、より一層、ゴム部材1361に接触する。それゆえ、密閉空間への空気の流入を防ぐことができる。なお、制御部20の他の機能については、後述する。<探索例>次に、図6~図8に基づいて、ネジ穴921を探索する際のネジ800の移動について説明する。つまり、ネジ800の締結位置の探索処理について説明する。図6は、ネジ穴921の探索を説明するための遷移図である。図6aは、ネジ800をz方向へ移動させて、ネジ800の先端面890を露出面908に接触させた状態を示した図である。つまり、図6aは、ネジ800の上穴911への挿入が完了した状態を示した図である。図6aを参照して、制御部20は、ネジ800をu軸の正の向き矢印701の向きへ移動させる。位置P0は、先端面890の中心の位置を表している。言い換えれば、位置P0は、ネジ800の軸の位置を表している。図6bは、図6aの状態からネジ800をu軸の正の向きに移動させた後の状態を示した図である。図6bを参照して、ネジ800は、上穴911の側面に当たり停止する。その後、制御部20は、ネジ800をu軸の負の向き矢印702の向きへ移動させる。先端面890の中心の位置P1が、上述した位置Pα第1の位置に対応する。図6cは、図6bの状態からネジ800をu軸の負の向きに移動させた後の状態を示した図である。図6cを参照して、ネジ800は、上穴911の側面に当たり停止する。その後、制御部20は、ネジ800をu軸の正の向き矢印703の向きへ移動させる。先端面890の中心の位置P2が、上述した位置Pβ第2の位置に対応する。図6dは、図6cの状態からネジ800をu軸の正の向きに移動させた後の状態を示した図である。図6dを参照して、制御部20は、位置P1と位置P2との中間の位置P3まで、ネジ800をu軸に沿って移動させる。位置P3が、上述した中間位置Pmに該当する。図6dに示す状態になった後、距離算出部220は、位置P1と位置P2との間の距離つまり、距離L1を算出する。制御部20は、当該距離L1と閾値Th2とを比較する。制御部20は、距離L1は閾値Th2に比べて大きいため、u軸を回転する処理に移る。図7は、図6dに続いて行なわれる探索を説明するための遷移図である。図7aは、図6dで示した位置P3を起点とした、ネジ800の移動を説明するための図である。図7aを参照して、変更部230は、位置P3を回転中心として、u軸を図7aにおける反時計回りに78.75度回転させる。その後、制御部20は、ネジ800を、回転後のu軸の正の向き矢印704の向きへ移動させる。なお、u軸の回転角度は、78.75度に限定されるものではない。ただし、90度以外の角度が好ましい。また、詳細については後述するが、制御部20は、u軸の回転にあわせて後述するv軸も回転させる。v軸とu軸とのなす角度は、一定本実施の形態では78.75度である。図7bは、図7aの状態からネジ800をu軸の正の向きに移動させた後の状態を示した図である。図7bを参照して、ネジ800は、ネジ穴921の側面に当たり停止する。その後、制御部20は、ネジ800をu軸の負の向き矢印705の向きへ移動させる。先端面890の中心の位置P4が、上述した位置Pα第1の位置に対応する。図7cは、図7bの状態からネジ800をu軸の負の向きに移動させた後の状態を示した図である。図7cを参照して、ネジ800は、ネジ穴921の側面に当たり停止する。その後、制御部20は、ネジ800をu軸の正の向き矢印706の向きへ移動させる。先端面890の中心の位置P5が、上述した位置Pβ第2の位置に対応する。図7dは、図7cの状態からネジ800をu軸の正の向きに移動させた後の状態を示した図である。図7dを参照して、制御部20は、位置P4と位置P5との中間の位置P6まで、ネジ800をu軸に沿って移動させる。位置P6が、上述した中間位置Pmに該当する。図7dに示す状態になった後、距離算出部220は、位置P4と位置P5との間の距離つまり、距離L1を算出する。制御部20は、当該距離L1と閾値Th2とを比較する。制御部20は、距離L1は閾値Th2に比べて小さいため、ネジ800をv軸方向に移動させる処理に移る。図8は、図7dに続いて行なわれる探索を説明するための遷移図である。図8aは、図7dで示した位置P6を起点とした、ネジ800の移動を説明するための図である。図8aを参照して、制御部20は、ネジ800をv軸の正の向き矢印707の向きへ移動させる。なお、上述したように、v軸とu軸とのなす角度は、78.75度である。図8bは、図8aの状態からネジ800をv軸の正の向きに移動させた後の状態を示した図である。図8bを参照して、ネジ800は、ネジ穴921の側面に当たり停止する。その後、制御部20は、ネジ800をv軸の負の向き矢印708の向きへ移動させる。先端面890の中心の位置P7が、上述した位置Pγ第3の位置に対応する。図8cは、図8bの状態からネジ800をv軸の負の向きに移動させた後の状態を示した図である。図8cを参照して、ネジ800は、ネジ穴921の側面に当たり停止する。その後、制御部20は、ネジ800をv軸の正の向き矢印709の向きへ移動させる。先端面890の中心の位置P8が、上述した位置Pδ第4の位置に対応する。図8dは、図8cの状態からネジ800をv軸の正の向きに移動させた後の状態を示した図である。図8dを参照して、制御部20は、位置P7と位置P8との中間の位置P9まで、ネジ800をv軸に沿って移動させる。位置P9が、上述した中間位置Pnに該当する。図8dに示す状態になった後、距離算出部220は、位置P7と位置P8との間の距離つまり、距離L2を算出する。制御部20は、当該距離L2と閾値Th2とを比較する。制御部20は、距離L2は閾値Th2に比べて小さいため、位置P7と位置P8との中間の位置P9を、ネジ800の締結位置と判断する。自動組付け装置1は、位置P9においてネジ800の締結処理を実行する。<制御構造>図9は、自動組付け装置1における処理の流れを示したフローチャートである。図9を参照して、ステップS2において、自動組付け装置1は、ネジ800をワーク900の上穴911内に挿入し、ネジ800を露出面908に接触させる。ステップS4に含まれるステップS42において、自動組付け装置1は、ネジ穴921の探索を開始する。ステップS44において、自動組付け装置1は、上述した密閉空間への空気流入が発生しているか否かを判断する。自動組付け装置1は、空気流入が発生していると判断するとステップS44においてYES、処理をステップS12に進める。自動組付け装置1は、空気流入が発生していないと判断するとステップS44においてNO、ステップS46において、探索開始位置からネジ800を3mm以上移動させたか否かを判断する。自動組付け装置1が当該判断を行なう理由は、ネジ800の無駄な移動を行なわないようにして、探索に要する時間を短くするためである。自動組付け装置1は、3mm以上移動していると判断するとステップS46においてYES、処理をステップS20に進める。自動組み付け装置1は、3mm以上移動していないと判断するとステップS46においてNO、ステップS48において、ネジ穴921の探索に成功したか否かを判断する。自動組付け装置1は、ネジ穴921の探索に成功したと判断するとステップS48においてYES、ステップS6においてネジ締めを開始する。自動組付け装置1は、ネジ穴921の探索に失敗したと判断するとステップS48においてNO、処理をステップS44に進める。ステップS8において、自動組付け装置1は、ネジ締めの工程において、エラーが発生したか否かを判断する。自動組付け装置1は、たとえば、ネジ締め開始後、1500msec経過してもトルクが上昇しない場合には、エラーが発生していると判断する。自動組付け装置1は、エラーが発生していないと判断するとステップS8においてNO、ステップS10においてネジ締めに成功したか否かを判断する。自動組付け装置1は、たとえば、ネジ締め開始後、1500msec以内にトルクが予め定められた値以上に上昇した場合、ネジ締めに成功したと判断する。自動組付け装置1は、エラーが発生したと判断するとステップS8においてYES、ステップS26において、ネジ締めドライバ135を一定時間たとえば1500msecだけ逆回転させてネジ800をネジ穴902から取りだし、ビット1351を5mm引き上げる。具体的には、自動組付け装置1は、ネジ締めドライバ135を逆転して、ワーク900に突き刺さったネジ800を回収してから、ビット1351を引き上げる。ステップS28において、自動組付け装置1は、探索開始原点たとえば図6における位置P0に対してネジ締め位置と点対象となる位置にビット1351を移動させる。なお、ネジ800がワーク900に残っており、ビット1351から外れている場合には、ネジ800の組付け処理を停止する。ステップS12において、自動組付け装置1は、前回の引き上げ距離が3mm未満かつ空気流入回数が3回未満であるか否かを判断する。なお、自動組付け装置1は、ビット1351を引き上げてもネジ800が吸着できない場合は、空気漏れ無視モードに入る。自動組付け装置1は、距離が3mm未満でかつ流入回数が3回未満であると判断するとステップS12においてYES、処理をステップS14に進める。自動組付け装置1は、距離が3mm以上または流入回数が3回以上であると判断すると、ステップS22において、前回の引き上げ距離が3mm未満かつ空気流入回数が5回未満であるか否かを判断する。自動組付け装置1は、距離が3mm未満でかつ5回未満であると判断するとステップS22においてYES、ステップS24において、押圧力の設定値をデフォルトの6Nから8Nに変更する。押圧力を上昇させれば、ネジ800のビット1351への取り付け状態を改善し、空気流入を減少させることができるためである。なお、当該設定値に基づき実際に押圧力を8Nとするのは、再度、処理をステップS2に戻す前である。自動組付け装置1は、距離が3mm以上または流入回数が5回以上であると判断するとステップS22においてNO、処理をステップS46に進める。自動組付け装置1が、処理をステップS46に進める理由は、組付け処理における無限ループを回避するためである。ステップS14において、自動組付け装置1は、ネジ800の姿勢を戻すために、ビット1351の引き上げを開始する。ステップS16において、自動組付け装置1は、空気流入が停止したか否かを判断する。自動組付け装置1は、停止したと判断するとステップS16においてYES、ステップS20において、直前の探索開始位置にビット1351を移動する。自動組付け装置1は、ステップS20の後、ステップS2に処理を進める。つまり、自動組付け装置1は、空気漏れが発生した場合は、途中で回復しても接触判定からやり直す。自動組付け装置1は、停止していないと判断するとステップS16においてNO、ステップS18において、引き上げ距離が3mm以上であるか否かを判断する。自動組付け装置1は、3mm以上引き上げたと判断するとステップS18においてYES、処理をステップS2に進める。自動組付け装置1は、3mm以上引き上げていないと判断するとステップS18においてNO、処理をステップS16に進める。図10は、図9におけるステップS4の処理の詳細を説明するためのフローチャートである。図10を参照して、ステップS102において、自動組付け装置1は、u軸の角度をxy座標系のy軸に対して0度に図6a参照、v軸の角度をy軸に対して78.75度に設定する。ステップS104において、自動組付け装置1は、u軸の正の向きにビット1351を進める。ステップS106において、自動組付け装置1は、反力が閾値Th1以上であるか否かを判断する。上穴911の側面にネジ800が当たったか否かを判断するためである。自動組付け装置1は、閾値Th1以上であると判断するとステップS106においてYES、ステップS108において、u軸の負の向きにビット1351を進める。自動組付け装置1は、閾値Th1未満であると判断するとステップS106においてNO、処理をステップS104に進める。ステップS110において、自動組付け装置1は、反力が閾値Th1以上であるか否かを判断する。自動組付け装置1は、閾値Th1以上であると判断するとステップS110においてYES、ステップS112において、中心位置にビット1351を進める。なお、中心位置とは、ステップS106において反力が閾値Th1以上になった位置上述した位置Pαと、ステップS110において反力が閾値Th1以上になった位置上述した位置Pβとの中間位置上述した中間位置Pmである。自動組付け装置1は、閾値Th1未満であると判断するとステップS110においてNO、処理をステップS108に進める。ステップS114において、自動組付け装置1は、u軸方向の両端点の距離が閾値Th2以下であるか否かを判断する。つまり、自動組付け装置1は、ステップS106において反力が閾値Th1以上になった位置位置Pαと、ステップS110において反力が閾値Th1以上になった位置位置Pβとの間の距離上述した距離L1が閾値Th2以下であるか否かを判断する。自動組付け装置1は、閾値Th2以下であると判断するとステップS114においてYES、ステップS116において、自動組付け装置1は、v軸の正の向きにビット1351を進める。自動組付け装置1は、閾値Th2よりも大きいと判断するとステップS114においてNO、処理をステップS128に進める。ステップS118において、自動組付け装置1は、反力が閾値Th1以上であるか否かを判断する。自動組付け装置1は、閾値Th1以上であると判断するとステップS118においてYES、ステップS120において、v軸の負の向きにビット1351を進める。自動組付け装置1は、閾値Th1未満であると判断するとステップS118においてNO、処理をステップS116に進める。ステップS122において、自動組付け装置1は、反力が閾値Th1以上であるか否かを判断する。自動組付け装置1は、閾値Th1以上であると判断するとステップS122においてYES、ステップS124において、中心位置にビット1351を進める。なお、中心位置とは、ステップS118において反力が閾値Th1以上になった位置上述した位置Pγと、ステップS122において反力が閾値Th1以上になった位置上述した位置Pδとの中間位置上述した中間位置Pnである。自動組付け装置1は、閾値Th1未満であると判断するとステップS122においてNO、処理をステップS120に進める。ステップS126において、自動組付け装置1は、v軸方向の両端点の距離が閾値Th2以下であるか否かを判断する。つまり、自動組付け装置1は、ステップS118において反力が閾値Th1以上になった位置位置Pγと、ステップS122において反力が閾値Th1以上になった位置位置Pδとの間の距離上述した距離L2が閾値Th2以下であるか否かを判断する。自動組付け装置1は、閾値Th2以下であると判断するとステップS126においてYES、ネジ穴921の探索に成功したとして、処理を図9のステップS6に進める。自動組付け装置1は、閾値Th2よりも大きいと判断するとステップS126においてNO、ステップS129において、u軸とv軸とを、ともに一定の向きxy座標系において反時計回りに一定の量78.75度だけ回転させ、その後さらに、ステップS128において、u軸とv軸とを、ともに一定の向きxy座標系において反時計回りに一定の量78.75度だけ回転させる図7a参照。自動組付け装置1は、ステップS128の後は、処理をステップS104に進める。<自動組付け装置1のまとめ>1以上のように、自動組付け装置1は、ワーク900に対するネジ800の組付け位置を探索する装置である。ワーク900は、ネジ800を挿入するための上穴911と、上穴911の底面908に形成されたネジ800を組付けるためのネジ穴921とを有する。自動組付け装置1は、移動部260と、反力検出部250と、第1特定部211と、第2特定部212とを備える。移動部260は、ネジ800に対する挿入方向z方向への押圧力によってネジ800と底面908とを接触させた状態で、u軸方向における正の向きおよび負の向きと、v軸方向における正の向きと負の向きとに、ネジ800を移動させる。反力検出部250は、u軸方向への移動とv軸方向への移動とによって生じるネジ800に加わる反力を検出する。第1特定部211は、u軸方向における正の向きにネジ800を移動させたときに反力が閾値Th1以上となる位置Pαと、位置Pαからu軸方向における負の向きにネジ800を移動させたときに反力が閾値Th1以上となる位置Pβとを特定する。第2特定部212は、v軸方向における正の向きにネジ800を移動させたときに反力が閾値Th1以上となる位置Pγと、位置Pγからv軸方向における負の向きにネジ800を移動させたときに反力が閾値Th1以上となる位置Pδとを特定する。自動組付け装置1は、位置Pαと位置Pβとの間の距離L1が閾値Th2未満の場合には、一連の処理Sαとして、位置Pαと位置Pβとの中間位置Pmを起点としたv軸方向への移動と、第2特定部212による位置Pγおよび位置Pδの特定とを実行する。自動組付け装置1は、位置Pγと位置Pδとの間の距離L2が閾値Th2未満の場合には、位置Pγと位置Pδとの中間位置Pnを組付け位置と判断する。上記の構成によれば、自動組付け装置1は、u軸方向への移動の際に閾値Th1以上の反力を検出したことに基づき、ネジ穴921の探索時にネジが上穴911の側面に接触したことを検知できる。また、自動組付け装置1は、当該接触時の位置を用いて、u軸方向における距離L1を検出できる。自動組付け装置1は、距離L1が閾値Th2未満の場合には、v軸方向への移動の際に閾値Th1以上の反力を検出したことに基づき、ネジ穴921の探索時にネジが上穴911の側面に接触したことを検知できる。また、自動組付け装置1は、当該接触時の位置を用いて、v軸方向における距離L2を検出できる。距離L1と距離L2とが共に閾値Th2よりも小さいときには、ネジ800の先端部がネジ穴921にかかっている状態を表している。このため、位置Pγと位置Pδとの中間位置Pnが、ネジ800の組付け位置と判断してもよい。それゆえ、自動組付け装置1は、上穴911とネジ穴921とがある場合に、ワークが位置および/または寸法のばらつきを有するときでも、ネジ800の組付け位置を精度よく探索できる。2また、自動組付け装置1は、u軸方向とv軸方向とを、それぞれ、一定の向きに一定量だけ変更する変更部230をさらに備える。自動組付け装置1は、距離L1が閾値Th2以上の場合には、距離L1が閾値Th2未満となるまで、変更部230によるu軸方向およびv軸方向の変更と、位置Pαと位置Pβとの中間位置Pmを起点とした変更後のu軸方向への移動部260による移動と、反力検出部250による反力の検出と、第1特定部211による位置Pαおよび位置Pβの特定とを含む一連の処理Sβを繰り返す。自動組付け装置1は、一連の処理Sβによって距離L1が閾値Th2未満となると、一連の処理Sαを実行する。自動組付け装置1は、一連の処理Sαにより特定された位置Pγと位置Pδとの間の距離L2が閾値Th2未満の場合には、位置Pγと位置Pδとの中間位置Pnを組付け位置と判断する。したがって、自動組付け装置1は、一連の処理Sβを繰り返すことにより、距離L1を閾値Th2未満とできる。3また、自動組付け装置1は、距離L2が閾値Th2以上の場合には、距離L1が再度閾値Th2未満となるまで、一連の処理Sβを繰り返す。自動組付け装置1は、距離L1が再度閾値Th2未満となると、一連の処理Sαを再度実行する。自動組付け装置1は、一連の処理Sαにより特定された位置Pγと位置Pδとの間の距離L2が閾値Th2未満となった場合には、位置Pγと位置Pδとの中間位置Pnを組付け位置と判断する。したがって、距離L2が閾値Th2以上の場合となっても、自動組付け装置1は、一連の処理Sβを繰り返すことにより、距離L1を再度閾値Th2未満とできる。4また、自動組付け装置1は、u軸方向における正の向きへの移動距離が予め定められた距離たとえば3mm以上となると図9のステップS46においてYES、移動の中止と、変更部230によるu軸方向およびv軸方向の変更と、当該移動の開始位置を起点とした変更後のu軸方向への移動部260による移動と、反力検出部250による反力の検出と、第1特定部211による位置Pαおよび位置Pβの特定とを実行する。したがって、自動組付け装置1は、ネジ800の無駄な移動を行なわないようにして、探索に要する時間を短くできる。5また、自動組付け装置1は、ネジ800を負圧により吸着する吸着部270と、吸着によって形成された密閉空間への空気流入を検知する空気流入検知部280と、空気流入の回数をカウントするカウント部240と、空気流入の回数が予め定められた回数となると押圧力を上昇させる押圧力制御部245とを備える。したがって、自動組付け装置1は、ネジ800の姿勢が基準となる姿勢からずれた場合であっても、基準となる姿勢に戻すことができる。<制御部20のハードウェア構成>図11は、制御部20として機能するコンピュータシステム300のハードウェア構成を表わすブロック図である。コンピュータシステム300は、主たる構成要素として、プログラムを実行するCPU310と、コンピュータシステム300の使用者による指示の入力を受けるマウス320およびキーボード330と、CPU310によるプログラムの実行により生成されたデータ、又はマウス320若しくはキーボード330を介して入力されたデータを揮発的に格納するRAM340と、データを不揮発的に格納するハードディスク350と、DVD-ROM駆動装置360と、モニタ370と、通信IF380とを含む。各構成要素は、相互にデータバスによって接続されている。DVD-ROM駆動装置360には、DVD-ROM361が装着される。コンピュータシステム300における処理は、各ハードウェアおよびCPU310により実行されるソフトウェアによって実現される。このようなソフトウェアは、ハードディスク350に予め記憶されている場合がある。また、ソフトウェアは、DVD-ROM361その他の記憶媒体に格納されて、プログラムプロダクトとして流通している場合もある。あるいは、ソフトウェアは、いわゆるインターネットに接続されている情報提供事業者によってダウンロード可能なプログラムプロダクトとして提供される場合もある。このようなソフトウェアは、DVD-ROM駆動装置360その他の読取装置によりその記憶媒体から読取られて、あるいは、通信IF380を介してダウンロードされた後、ハードディスク350に一旦格納される。そのソフトウェアは、CPU310によってハードディスク350から読み出され、RAM340に実行可能なプログラムの形式で格納される。CPU310は、そのプログラムを実行する。同図に示されるコンピュータシステム300を構成する各構成要素は、一般的なものである。したがって、本発明の本質的な部分は、RAM340、ハードディスク350、DVD-ROM361その他の記憶媒体に格納されたソフトウェア、あるいはネットワークを介してダウンロード可能なソフトウェアであるともいえる。なお、コンピュータシステム300の各ハードウェアの動作は周知であるので、詳細な説明は繰り返さない。なお、記録媒体としては、DVDROM、CD-ROM、FDFlexibleDisk、ハードディスクに限られず、磁気テープ、カセットテープ、光ディスクMOMagneticOpticalDisc/MDMiniDisc/DVDDigitalVersatileDisc、ICIntegratedCircuitカードメモリカードを含む、光カード、マスクROM、EPROMElectronicallyProgrammableReadOnlyMemory、EEPROMElectronicallyErasableProgrammableReadOnlyMemory、フラッシュROMなどの半導体メモリ等の固定的にプログラムを担持する媒体でもよい。また、記録媒体は、当該プログラム等をコンピュータが読取可能な一時的でない媒体である。ここでいうプログラムとは、CPUにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。<変形例>1上記においては、u軸とv軸とを用いた、ネジ穴921の探索方法について説明したが、上穴911が真円に近い場合図3に示すような場合には、u軸のみを考慮した探索を行なってもよい。当該構成により、u軸とv軸とを探索する構成よりも処理を簡略化することができる。図12は、u軸のみを考慮した探索方法を行なう場合の処理の流れを示したフローチャートである。図12を参照して、自動組付け装置1は、ステップS102Aにおいて、u軸の角度をxy座標系のy軸に対して0度に設定する。自動組付け装置1は、ステップS102Aの後は、図10に示したステップS104~ステップS114の処理を行なう。自動組付け装置1は、u軸方向の両端点の距離が閾値Th2以下であると判断したときにはステップS114においてYES、ネジ穴921の探索に成功したと判断して、処理を、図9のステップS6に進める。自動組付け装置1は、閾値Th2よりも大きいと判断した場合ステップS114においてNO、ステップS128Aにおいて、u軸を一定の向きxy座標系において反時計回りに一定の量78.75度だけ回転させる。自動組付け装置1は、ステップS128Aの後は、処理をステップS104に進める。2上記においては、自動組付け装置1がネジ800をワーク900に取り付ける処理を例に挙げて説明した。以下では、自動組付け装置が、挿入式の樹脂ピンをワークに挿入する処理を説明する。なお、説明の便宜上、挿入式の樹脂ピンをワークに挿入するための自動組付け装置を、自動組付け装置1Aと称する。図13は、樹脂ピン600をワーク900Aに挿入する処理を説明するための図である。図13を参照して、自動組付け装置1Aは、ネジ締めドライバ135の代わりに、把持機構139を持つ。ネジ供給機構14はネジ800の代わりに樹脂ピン600を供給する機構である。ワーク900Aは2層の板状のワーク930,940からなる。ワーク900Aは、樹脂ピン600を挿入するための上穴931第1の凹部と、上穴931の底面909に形成された樹脂ピン600を組付けるためのネジ穴941第2の凹部とを有する。樹脂ピン600は、板状の上部から下方向に固定用の爪が出た形状の樹脂製の固定ピンである。樹脂ピン600をワーク900Aの穴に挿入すると爪の引っ掛かりによって、ワーク930とワーク940とが固定される。把持機構139は、真空吸着式の部品把持機構である。把持機構139の下面には樹脂ピン600の上部と勘合する凹形状が形成されている。凹形状の内部に吸引用の真空源へと接続される穴が設けられている。自動組付け装置1Aの制御動作は、図9に示したフローにてネジ締めドライバ135を操作してネジの回転を開始する処理を実行しないこと以外は、自動組付け装置1と同一である。このような自動組付け装置1Aにより、挿入型の樹脂ピンを、位置ずれのある設置条件で、高信頼に自動挿入することができる。3図10において、ステップS106における閾値とステップS110における閾値とは必ずしも一致してなくてもよい。また、ステップS118における閾値とステップS122における閾値とは必ずしも一致していなくてもよい。さらに、ステップS106,S110における閾値と、ステップS118,S122における閾値とは、必ずしも一致していなくてもよい。また、ステップS114における閾値と、ステップS126における閾値とは、必ずしも一致していなくてもよい。4u軸およびv軸の回転方向は、xy座標系において、時計回りとしてもよい。5図9のステップS46およびステップS18に示した数値3mmは、一例であって、これに限定されるものではない。また、ステップS26における数値5mmも一例であって、これに限定されるものではない。ステップS12,S22に示した流入回数も一例であって、これに限定されるものではない。ステップS24における押圧力の変化も、これに限定されるものではない。6また、上穴911の開口の形状も真円に限定されるものではない。当該形状は、楕円、矩形、真円を一定方向に移動したときに当該真円が通過する領域の形状相対する直線と相対する半円とで囲まれた形状であってもよい。7移動部260が部品の代わりにワークを部品とワークとが接触した状態で移動させるように、自動組付け装置1,1Aを構成してもよい。今回開示された実施の形態は例示であって、上記内容のみに制限されるものではない。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。"