(57)【要約】【課題】保持体に装着した障害物に応じて、障害物が縫針と干渉することを確実に回避可能なミシンを提供する。【解決手段】ミシンは、縫針を装着した針棒の下方で縫製対象物を保持する保持体を、絶対原点位置又は縫製開始位置まで送り移動する。送り移動中、ミシンのＣＰＵは、Ｘ軸モータ、Ｙ軸モータを１パルス分駆動して保持体を移動する度に、イメージセンサが撮影した針棒下方の所定領域の画像中の障害物を識別し、障害物が針棒に対応する制限領域から所定距離内にあるか否かを確認する（Ｓ２５０）。ＣＰＵは、障害物が制限領域から所定距離内に入ると、保持体の移動方向を異なる方向に変更する（Ｓ３５０）。移動方向変更後に保持体が可動域端に到達すると、ＣＰＵは、移動方向を反転し（Ｓ４０１：ＹＥＳ、Ｓ４０２：ＹＥＳ，Ｓ４０３）、反転後に保持体が再度可動域端に到達すると、エラー発生を報知する（Ｓ４０５）。【選択図】図９
2013202210.tif 000002
【特許請求の範囲】
【請求項１】
縫針を下端に装着可能且つ上下動可能な針棒と、
前記針棒の下方に設け且つ縫製対象物を保持する保持体を水平移動可能な移動機構とを備えたミシンにおいて、
前記針棒の下方を含む領域である第一領域を撮影可能な撮影手段と、
前記撮影手段が撮影した前記第一領域の画像中で、予め設定した前記保持体と共に移動する部材の特徴部分を識別する識別手段と、
前記移動機構を制御することで、前記識別手段が識別した前記特徴部分が、前記第一領域の前記画像中の前記針棒に対応する範囲である第二領域と重ならないように前記保持体を移動する移動制御手段と
を備えたことを特徴とするミシン。
【請求項２】
前記移動制御手段は、前記識別手段が、前記画像中で、前記第二領域から前記保持体の移動方向の反対方向に第一距離内で前記特徴部分を識別した場合、前記移動方向を異なる方向に変更して、前記保持体を移動することを特徴とする請求項１に記載のミシン。
【請求項３】
前記移動制御手段は、前記移動方向を、優先する方向として予め設定した優先方向に変更して、前記保持体を移動することを特徴とする請求項２に記載のミシン。
【請求項４】
前記移動制御手段は、前記特徴部分の境界線の延びる方向に応じて前記移動方向を変更して、前記保持体を移動することを特徴とする請求項２または３に記載のミシン。
【請求項５】
前記移動制御手段は、前記保持体が移動可能範囲の一端に到達した場合、前記移動方向を、前記移動方向の反対方向に変更して、前記保持体を移動することを特徴とする請求項２〜４の何れか１つに記載のミシン。
【請求項６】
前記移動制御手段が前記移動方向を前記反対方向に変更した後、前記保持体が前記移動可能範囲の他端に到達した場合、エラー発生を報知する報知手段を更に備えたことを特徴とする請求項５に記載のミシン。
【請求項７】
前記移動制御手段による前記保持体の移動速度に応じて前記第一距離を設定する距離設定手段を更に備えたことを特徴とする請求項２〜６の何れか１つに記載のミシン。
【請求項８】
前記移動制御手段は、前記識別手段が識別した前記特徴部分が、前記第一領域の画像中の前記第二領域の周囲に予め設定した第三領域から前記保持体の移動方向の反対方向に第二距離内で前記特徴部分を識別した場合、前記移動機構を制御して、前記保持体の移動速度を減速することを特徴とする請求項１〜７の何れか１つに記載のミシン。
【請求項９】
前記特徴部分は、予め設定した色を含む領域であり、
前記識別手段は、前記色を含み且つ所定の大きさよりも大きい領域を、前記特徴部分として識別することを特徴とする請求項１〜８の何れか１つに記載のミシン。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、上下動する針棒に対して、縫製対象物を保持する保持体を相対的に移動しながら縫製を行うミシンに関する。
【背景技術】
【０００２】
縫製データに従って、下端に縫針を装着した針棒を上下動し、縫製対象物を保持する保持体を針棒に対して相対的に水平移動しながら模様を縫製するミシンがある。該ミシンは、最初に縫針が上昇位置にある状態で、所定の移動法則に従った経路に沿って絶対原点に保持体を移動する。該ミシンは縫製データに従って絶対原点から縫製開始位置まで保持体を更に移動した後、縫目を形成する縫製動作を開始する。
【０００３】
作業者は、縫製対象物に応じて保持体に補助押え部材を装着する時がある。該補助押え部材が上昇位置にある縫針と干渉する高さを有する場合、補助押え部材は移動経路上で縫針と干渉する障害物となる場合がある。故に、ミシンは、障害物と縫針との干渉を回避する為に、必要に応じて該移動経路を変更する。例えば特許文献１に記載のミシンは、接触式のセンサを用いて障害物を検出した時、移動経路を変更する。特許文献２に記載の縫製データ編集装置は、予め設定した排除エリアに応じて縫製データ中の針位置を修正することで、予め移動経路を変更する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６−２１００８２号公報
【特許文献２】特開２０１１−１１５３７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１のミシンは接触式のセンサで障害物を検出するので、使用に伴いセンサの検出精度が低下する可能性がある。ミシンが特許文献２に記載の方法で移動経路を変更した縫製データに従って縫製を行う時、作業者は設定済みの排除エリアに対応しない障害物を保持体に装着する場合がある。該場合、ミシンは障害物が縫針と干渉することを防止できない。更に、縫製データは保持体が絶対原点に移動した後の移動量を示すので、特許文献２に記載の方法は、保持体が絶対原点に到達する前に障害物が縫針と干渉する可能性は排除できない。
【０００６】
本発明の目的は、保持体に装着した障害物に応じて、障害物が縫針と干渉することを確実に回避可能なミシンを提供することである。
【課題を解決するための手段】
【０００７】
請求項１のミシンは、縫針を下端に装着可能且つ上下動可能な針棒と、前記針棒の下方に設け且つ縫製対象物を保持する保持体を水平移動可能な移動機構とを備えたミシンにおいて、前記針棒の下方を含む領域である第一領域を撮影可能な撮影手段と、前記撮影手段が撮影した前記第一領域の画像中で、予め設定した前記保持体と共に移動する部材の特徴部分を識別する識別手段と、前記移動機構を制御することで、前記識別手段が識別した前記特徴部分が、前記第一領域の前記画像中の前記針棒に対応する範囲である第二領域と重ならないように前記保持体を移動する移動制御手段とを備えたことを特徴とする。
【０００８】
前記ミシンは、撮影手段が撮影した第一領域の画像中の、保持体と共に移動する部材の特徴部分を識別する識別手段を備え、該特徴部分が針棒に対応する第二領域と重ならないように保持体の移動を制御する。故に、作業者が縫製対象物に応じた部材を保持体に装着する場合、作業者は障害物となる該部材の特徴部分を予め特徴部分として設定すればよい。ミシンは、撮影手段が撮影した画像に基づき、該部材に応じて適切に保持体の移動を制御することができる。即ち、ミシンは縫製データに従った移動経路に沿って障害物を回避するのではなく、撮影手段が撮影した画像に基づき、障害物を回避することができる。更に、ミシンは、保持体が絶対原点に到達する前でも、障害物が針棒に装着した縫針と干渉することを回避することができる。ミシンは非接触で障害物を識別できるので、接触式のセンサを用いるミシンに比べ、使用に伴って障害物の検出精度が低下するのを防止できる。上記の通り、ミシンは保持体に装着した障害物に応じて、障害物が縫針と干渉することを確実に回避することができる。
【０００９】
請求項２のミシンにおいて、前記移動制御手段は、前記識別手段が、前記画像中で、前記第二領域から前記保持体の移動方向の反対方向に第一距離内で前記特徴部分を識別した場合、前記移動方向を異なる方向に変更して、前記保持体を移動することを特徴とする。該ミシンは特徴部分が針棒に対応する第二領域から第一距離内に近づいた時点で移動方向を変更するので、障害物が針棒に装着した縫針に干渉することをより確実に回避することができる。
【００１０】
請求項３のミシンにおいて、前記移動制御手段は、前記移動方向を、優先する方向として予め設定した優先方向に変更して、前記保持体を移動することを特徴とする。該ミシンにおいて、作業者が保持体に装着した部材の配置方向に応じて優先方向を予め設定した場合、ミシンは作業者が適切と判断した方向に移動方向を変更できる。該部材の通常の配置方向に応じた方向を優先方向として予め一律に設定すれば、ミシンは作業者の設定作業を要することなく効率的に移動方向を変更できる。
【００１１】
請求項４のミシンにおいて、前記移動制御手段は、前記特徴部分の境界線の延びる方向に応じて前記移動方向を変更して、前記保持体を移動することを特徴とする。該ミシンは、特徴部分の境界線の延びる方向に応じて保持体の移動方向を変更することで、効率的且つ確実に障害物が針棒に干渉することを回避することができる。
【００１２】
請求項５のミシンにおいて、前記移動制御手段は、前記保持体が移動可能範囲の一端に到達した場合、前記移動方向を、前記移動方向の反対方向に変更して、前記保持体を移動することを特徴とする。即ち、該ミシンは、移動方向を自動的に反転する。故に、縫製対象物が切り替わり、障害物の位置や形状が変わったとしても、作業者は優先回避方向を設定し直さなくてもよい。
【００１３】
請求項６のミシンは、前記移動制御手段が前記移動方向を前記反対方向に変更した後、前記保持体が前記移動可能範囲の他端に到達した場合、エラー発生を報知する報知手段を更に備えたことを特徴とする。該ミシンは、何らかの不具合で障害物の位置がずれてしまい、回避不能な状態になったことを作業者に報知できる。故に、作業者は報知後に適切な措置を取ることができる。
【００１４】
請求項７のミシンは、前記移動制御手段による前記保持体の移動速度に応じて前記第一距離を設定する距離設定手段を更に備えたことを特徴とする。移動速度が速くなるほど、保持体が単位時間内に移動する距離は長くなる。移動速度が遅くなるほど、保持体が単位時間内に移動する距離は短くなる。故に、移動速度に応じて第一距離を長く設定することで、障害物が針棒に装着した縫針に干渉することを更に確実に回避することができる。
【００１５】
請求項８のミシンにおいて、前記移動制御手段は、前記識別手段が識別した前記特徴部分が、前記第一領域の画像中の前記第二領域の周囲に予め設定した第三領域から前記保持体の移動方向の反対方向に第二距離内で前記特徴部分を識別した場合、前記移動機構を制御して、前記保持体の移動速度を減速することを特徴とする。該ミシンは、特徴部分が第二領域からの周囲に設定した第三領域に重なると減速するので、減速後に保持体の移動を制御できる。故に、ミシンは、障害物が針棒に装着した縫針に干渉することを更に確実に回避することができる。
【００１６】
請求項９のミシンにおいて、前記特徴部分は、予め設定した色を含む領域であり、前記識別手段は、前記色を含み且つ所定の大きさよりも大きい領域を、前記特徴部分として識別することを特徴とする。該ミシンは、画像中のノイズを、特徴部分と誤って識別することを防止できる。
【図面の簡単な説明】
【００１７】
【図１】ミシン１の斜視図である。
【図２】ミシン１の前端部７の右側面図である。
【図３】ミシン１の電気的構成を示すブロック図である。
【図４】座標系６０１、縫製可能範囲６１１、所定領域５３の説明図である。
【図５】イメージセンサ５０が出力する画像データのうちＲ値データの一例の説明図である。
【図６】ＬＣＤ３２が表示する撮影画像の一例を示す図である。
【図７】縫製処理のフローチャートである。
【図８】領域マップの一例の説明図である。
【図９】送り移動処理のフローチャートである。
【図１０】移動処理のフローチャートである。
【図１１】画像監視処理のフローチャートである。
【図１２】移動方向変更と中継位置設定の説明図である。
【図１３】移動方向変更処理のフローチャートである。
【図１４】移動方向変更と中継位置設定の別の説明図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照して、本発明の実施形態のミシン１について説明する。図１の上側、下側、左斜め下側、右斜め上側、左斜め上側、右斜め下側は夫々ミシン１の上側、下側、前側、後側、左側、右側である。
【００１９】
図１を参照し、ミシン１の全体構造について説明する。図１に示す如く、ミシン１は、ベッド部２、脚柱部３、アーム部４を備える。ベッド部２はテーブル９５に載置する。ベッド部２は前後方向に延び、内部に垂直釜（図示略）等を備える。脚柱部３はベッド部２後側から鉛直上方に延びる。脚柱部３は内部にミシンモータ１１２（図３参照）等を備える。アーム部４は脚柱部３上端からベッド部２の上面に対向して前方に延び、前端に前端部７を備える。アーム部４は内部に主軸、針棒駆動機構（図示略）等を備える。針棒１０は、前端部７の下端から下方へ延びる。縫針１１は針棒１０の下端に着脱可能である。
【００２０】
ミシン１は、ベッド部２の上方に作業台５と移送装置６を備える。作業台５は、針板５０１を備える。針板５０１は、針棒１０に装着した縫針１１の直下の位置に、縫針１１が挿通可能な針穴５０２を有する。移送装置６は、移送板６１、昇降部６２、押え板６３、移送板保持部６４、Ｘ軸移動機構（図示略）、腕部６５、Ｙ軸移動機構（図示略）を備える。
【００２１】
移送板６１は水平方向に配置した板部材であり、平面視矩形状の開口を有する。移送板保持部６４は左右方向に延び、移送板６１をＸ軸方向（左右方向）に移動可能に支持する。Ｘ軸移動機構は、ベッド部２の内部に設けてある。Ｘ軸移動機構は、Ｘ軸モータ１１４（図３参照）を駆動源として、移送板６１をＸ軸方向（左右方向）へ移動する。移送板保持部６４に連結する腕部６５は、脚柱部３内に設けたＹ軸移動機構に接続する。Ｙ軸移動機構は、Ｙ軸モータ１１６（図３参照）を駆動源として、腕部６５をＹ軸方向（前後方向）へ移動する。移送板保持部６４は、腕部６５の移動に伴ってＹ軸方向（前後方向）へ移動する。
【００２２】
移送板保持部６４が支持する移送板６１は、移送板保持部６４と共に移動する。移送板保持部６４は、昇降部６２を昇降可能に支持する。押え板６３は昇降部６２下端に連結する矩形枠状の板部材である。押え板６３の開口は、移送板６１の開口と略同一形状である。作業者は縫製対象物（例えば加工布）を移送板６１上に載置する。昇降部６２が下方に移動すると、押え板６３は下降する。押え板６３と移送板６１は、縫製対象物を上下から挟んで保持する。以下、移送板６１と押え板６３を総称して保持体６０という。
【００２３】
作業者は、縫製対象物に応じて保持体６０に補助押え部材を装着する時がある。例えば、バッグの持ち手部分等、縫製対象物に先に縫い付けられたパーツを縫製の妨げにならないように固定する必要がある場合がある。該場合、作業者は、押え板６３の他に、縫製対象物を上から押える補助押え部材を使用する。例えば、図１は、保持体６０に補助押え部材５１０を２個装着した例である。補助押え部材５１０は、押え板６３よりも厚みがある板材である。即ち、補助押え部材５１０の上端は、常に押え板６３の上面よりも上方にある。補助押え部材５１０は、平面視で矩形の短辺のうち一方の中央部が外側へ向けて矩形状に突出した形状を呈する。本実施形態の補助押え部材５１０の少なくとも上面は、縫製対象物とは異なる色で着色する。以下では、縫製対象物が赤色以外であり、補助押え部材５１０の上面は赤色である例を説明する。
【００２４】
ミシン１はテーブル９５上に設けた操作パネル８と、操作パネル８に接続した操作箱３０を備える。操作パネル８、操作箱３０は夫々、各種情報、各種指示を入力する為のキー群と、情報表示用のディスプレイを備える。作業者は情報又は指示を入力する場合、操作パネル８又は操作箱３０を使用する。ミシン１は、テーブル９５下方に制御装置１００（図３参照）を格納する制御箱（図示略）を備える。操作パネル８はコード（図示略）を介して制御箱に接続する。操作箱３０はケーブル９を介して操作パネル８に接続可能である。
【００２５】
図２を参照し、アーム部４の前端部７周辺の構成について説明する。前端部７は、上糸５５を案内する為の構成、縫針１１を装着した針棒１０、押え足１３を装着した押え棒１２、イメージセンサ５０等を備える。上糸５５を案内する為の構成は、前端部７の右側面に設けた副糸調子器１５、糸調子器１６、糸案内１７、１８、天秤１９、糸案内２０を含む。上糸５５は、テーブル９５（図１参照）に設けた糸駒立て（図示略）に載置した糸駒から、副糸調子器１５、糸調子器１６、糸案内１７、糸案内１８、天秤１９、糸案内２０を経由し、縫針１１の針孔１１１に挿通する。前述したように、針棒１０は、前端部７下端から下方へ延びる。ミシンモータ１１２（図３参照）は主軸（図示略）を回転駆動する。針棒駆動機構（図示略）は、主軸の回転駆動に伴って針棒１０を上下動する。
【００２６】
押え棒１２は、針棒１０の左方（図２の背面側）で前端部７の下端から下方へ延びる。押え足１３は押え棒１２下端部に装着する。押え足駆動機構（図示略）は、主軸の回転駆動に伴う針棒１０の上下動に同期して、押え棒１２を上下動する。押え足１３は、縫針１１が縫製対象物から抜ける時に上方から縫製対象物を押えることで、縫製対象物が上方へ浮き上がるのを防止する。押え足１３の先端部は円筒状の筒部１３１である。縫針１１は、筒部１３１の貫通穴を通って縫製対象物に刺さる。縫針１１は筒部１３１下方の針穴５０２を通って上下動する。
【００２７】
イメージセンサ５０は、ミシン１のフレーム（図示略）に設けた支持部５１に固定する。イメージセンサ５０は、例えば周知のＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）であり、撮影した画像の画像データを出力する。イメージセンサ５０のレンズ（図示略）は、縫針１１の下方を含む所定領域を撮影可能な方向に向いている。イメージセンサ５０の撮影範囲について後で詳述する。
【００２８】
図３を参照し、ミシン１の電気的構成について説明する。図３に示す如く、ミシン１の制御装置１００は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、不揮発性メモリ１０４、入出力インターフェース（Ｉ／Ｆ）１０６、駆動回路１１３、１１５、１１７、通信Ｉ／Ｆ１２７を備える。ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、不揮発性メモリ１０４は、バス１０５を介して入出力Ｉ／Ｆ１０６に電気的に接続する。ＣＰＵ１０１は、ミシン１の制御を司り、ＲＯＭ１０２が記憶する各種プログラムに従って、縫製に関わる各種演算及び処理を実行する。ＲＯＭ１０２は、各種プログラム、各種初期設定パラメータ、複数の模様（縫目線、縫目模様、刺繍模様等）の縫製データ等を記憶する。縫製データについては後述する。ＲＡＭ１０３は、ＣＰＵ１０１の演算結果、ポインタ、カウンタ等を一時的に記憶する。不揮発性メモリ１０４は、ミシン１で作成した縫製データ、作業者が入力した各種設定情報等を記憶する。
【００２９】
駆動回路１１３、１１５、１１７は、入出力Ｉ／Ｆ１０６に電気的に接続する。駆動回路１１３はミシンモータ１１２に電気的に接続する。ＣＰＵ１０１は、駆動回路１１３を介してミシンモータ１１２を制御する。ミシンモータ１１２は主軸を回転駆動する。駆動回路１１５はＸ軸モータ１１４に電気的に接続する。駆動回路１１７はＹ軸モータ１１６に電気的に接続する。ＣＰＵ１０１は、駆動回路１１５、１１７を介してＸ軸モータ１１４、Ｙ軸モータ１１６を夫々制御する。Ｘ軸モータ１１４、Ｙ軸モータ１１６は何れもパルスモータである。Ｘ軸モータ１１４、Ｙ軸モータ１１６は夫々、Ｘ軸移動機構、Ｙ軸移動機構を駆動することで、保持体６０をＸ軸方向、Ｙ軸方向に移動する。
【００３０】
ＣＰＵ１０１は、縫製時に、ミシンモータ１１２を駆動して主軸を回転駆動することで、針棒１０、押え棒１２の上下動と垂直釜の回転を制御する。ＣＰＵ１０１は、ミシンモータ１１２の駆動と同時に、縫製データに基づきＸ軸モータ１１４、Ｙ軸モータ１１６を駆動して、保持体６０の位置を制御する。ミシン１は該動作で縫製対象物上に縫製を行う。
【００３１】
通信Ｉ／Ｆ１２７は入出力Ｉ／Ｆ１０６に電気的に接続する。通信Ｉ／Ｆ１２７は、例えばシリアル通信用のインターフェースである。ミシン１は、通信Ｉ／Ｆ１２７を介して外部機器に接続可能である。本実施形態では、操作箱３０はミシン１に接続する。尚、図３に示す如く、操作箱３０は、ケーブル９で接続した操作パネル８を介して、通信Ｉ／Ｆ１２７に接続してある。
【００３２】
Ｘ方向原点センサ１１８、Ｙ方向原点センサ１１９、起動スイッチ１２１、操作パネル８、イメージセンサ５０は夫々、制御装置１００の入出力Ｉ／Ｆ１０６に電気的に接続する。Ｘ方向原点センサ１１８は、Ｘ軸移動機構（図示略）に設けた原点設定用の周知の構成のセンサである。Ｙ方向原点センサ１１９は、Ｙ軸移動機構（図示略）に設けた原点設定用の周知の構成のセンサである。起動スイッチ１２１は、テーブル９５下方に設置し、制御装置１００にコードで接続するペダル式のスイッチである。作業者は、ミシン１の各種動作（例えば縫製処理）を開始する時に起動スイッチ１２１を踏み込む。操作パネル８、イメージセンサ５０については前述の通りである。
【００３３】
図３に示す如く、操作箱３０は、制御装置３００、液晶ディスプレイ（以下、ＬＣＤという）３２、キー群３３を備える。制御装置３００は、ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３、入出力Ｉ／Ｆ３０６、通信Ｉ／Ｆ３０７、駆動回路３０８を備える。ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３は、バス３０５を介して入出力Ｉ／Ｆ３０６に電気的に接続する。駆動回路３０８は、入出力Ｉ／Ｆ３０６に電気的に接続する。駆動回路３０８はＬＣＤ３２に電気的に接続する。キー群３３は、入出力Ｉ／Ｆ３０６に電気的に接続する。
【００３４】
ＣＰＵ３０１は、操作箱３０の制御を司り、ＲＯＭ３０２が記憶する各種プログラムとミシン１が送信したデータに従って、ＬＣＤ３２への画像表示、キー群３３からの入力受付等の処理を実行する。ＲＡＭ３０３は、ＣＰＵ３０１の演算結果、ポインタ、カウンタ等を一時的に記憶する。通信Ｉ／Ｆ３０７は入出力Ｉ／Ｆ３０６に電気的に接続する。通信Ｉ／Ｆ３０７は、例えばシリアル通信用のインターフェースである。操作箱３０は、通信Ｉ／Ｆ３０７を介してミシン１に接続する。ＬＣＤ３２は、各種情報を画像表示する。本実施形態では、ＬＣＤ３２は、イメージセンサ５０が撮影した画像を表示可能である。キー群３３は、作業者が各種情報、指示を入力する為のものである。キー群３３は、四方向矢印キー、数字キー、機能キー等を含む。
【００３５】
図４を参照し、本実施形態における縫製データ、ミシン１の縫製可能範囲（保持体６０の可動範囲）、イメージセンサ５０の撮影範囲について説明する。
【００３６】
縫製データは、模様を縫製する為の複数の針落ち点の位置を、縫針１１の位置と保持体６０の位置との相対位置で示す。針落ち点は、針棒１０と共に縫針１１が下方に移動した時、縫針１１が刺さる縫製対象物上の予定位置である。本実施形態では、針落ち点の位置は、保持体６０に対して設定する座標系６０１の座標データで示す。座標系６０１は、Ｘ軸モータ１１４、Ｙ軸モータ１１６（図３参照）の座標系である。本実施形態では、座標系６０１はワールド座標系と予め対応付ける。ワールド座標系は空間全体を示す座標系であり、撮影対象物の重心等の影響を受けることのない座標系である。
【００３７】
座標系６０１では、Ｘ軸プラス方向はミシン１の左から右に向かう方向であり、Ｙ軸プラス方向はミシン１の前から後に向かう方向である。本実施形態では、座標系６０１の原点Ｏ（Ｘ，Ｙ，Ｚ）＝（０，０，０）は、保持体６０（より詳細には押え板６３の開口内側の領域）の中心点が縫針１１（図３参照）の直下にある位置と定める。保持体６０の該位置を絶対原点位置という。該位置は、保持体６０の中心点が針穴５０２の真上にある位置と言い換えることもできる。本実施形態の移送装置６は、縫製中に保持体６０をＺ方向（ミシン１の上下方向）に移動しないので、針落ち点の座標データのＺ座標は常にゼロである。
【００３８】
縫製データは、座標データの示す針落ち点が順に縫針１１（図３参照）の直下に位置するように保持体６０を移動しながら縫製を行う為のデータである。詳細には、本実施形態の縫製データは、Ｘ軸モータ１１４、Ｙ軸モータ１１６の夫々の駆動パルス数（回転方向を含む）と、「縫製」か「送り」かを示す種別を対応付けて順に並べたデータである。「縫製」は、保持体６０を移動し且つ縫針１１を針落ち点で縫製対象物に刺して縫目を形成する動作である。「送り」は、縫目を形成せず保持体６０の移動のみ行う動作である。詳細は後述するが、ＣＰＵ１０１は、縫製データを順に読み出して処理を行う。尚、縫製データは上記の形式に限らず、針落ち点の座標データと種別を対応付けたデータでもよい。ＣＰＵ１０１は、保持体６０の移動の都度、該データ中の座標データに基づき、Ｘ軸モータ１１４、Ｙ軸モータ１１６の夫々の回転方向と駆動パルス数を算出してもよい。
【００３９】
保持体６０の内側の領域のうち、ミシン１が縫製を行うことができる範囲を縫製可能範囲６１１という。縫針１１と保持体６０の干渉を防止する為、縫製可能範囲６１１は、保持体６０の内側の領域よりも小さく設定する。縫製可能範囲６１１は、例えば座標系６０１の原点Ｏを中心としてＸ軸方向、Ｙ軸方向に対称な領域である。本実施形態では、縫製可能範囲６１１は保持体６０の移動可能範囲と等しい。ミシン１は、保持体６０が移動可能範囲の端（以下、可動域端という）に到達したことを検出する構成を備える。
【００４０】
図示しないが、該構成は、例えば、Ｘ方向ストッパ、Ｘエンコーダ、Ｙ方向ストッパ、Ｙエンコーダを含む。Ｘ方向ストッパは、移送板保持部６４の左右二箇所に設ける。Ｙ方向ストッパは、腕部６５の前後二箇所に設ける。Ｘエンコーダ、Ｙエンコーダは、夫々、Ｘ軸モータ１１４、Ｙ軸モータ１１６の回転量を検出して信号を出力するロータリーエンコーダである。
【００４１】
保持体６０（移送板６１）がＸ方向（左右方向）に移動して何れかのＸ方向ストッパに接触すると、Ｘ方向ストッパは保持体６０の移動を阻止する。故に、Ｘエンコーダは信号を出力しないので、ＣＰＵ１０１は、保持体６０がＸ方向における可動域端に到達したことを認識できる。ＣＰＵ１０１は、Ｙ方向ストッパとＹエンコーダを用いて、同様に、保持体６０がＹ方向における可動域端に到達したことも認識できる。尚、保持体６０が可動域端に到達したことを検出する構成は、移送板保持部６４の左右二箇所、腕部６５の前後二箇所に設けた接触式センサ等、他の構成でもよい。
【００４２】
本実施形態のイメージセンサ５０は、縫針１１の下方を含む所定領域、より詳細には縫針１１の直下にある針穴５０２（図１参照）を中心とした矩形状の所定領域５３を撮影可能である。図４に示す如く、保持体６０が絶対原点位置にある時の所定領域５３は、座標系６０１の原点Ｏを中心とする矩形領域である。本実施形態では、イメージセンサ５０は、縦４８０画素、横６４０画素で構成する所定領域５３の画像（以下、撮影画像という）の画像データを定期的に出力する。詳細には、イメージセンサ５０は、ＲＧＢ形式の２５６階調の階調値（ＲＧＢ値）を示すデータを、Ｒ値データ、Ｇ値データ、Ｂ値データの３種類に分けて定期的に出力する。イメージセンサ５０が出力した最新の画像データは、ＲＡＭ１０３の所定の記憶エリアに格納する。図５は、Ｒ値データの一例を示している。Ｒ値データは、縦４８０画素、横６４０画素の各画素が１バイト（ｂｙｔｅ）に対応し、１バイトのデータが０〜２５５の何れかのＲ値を示す。図示しないが、Ｇ値データ、Ｂ値データも同様のデータである。
【００４３】
ミシン１は、最新の画像データに基づき、操作箱３０のＬＣＤ３２（図１参照）に撮影画像をリアルタイムで表示可能である。イメージセンサ５０は縫製対象物の表面に対して斜め上方から縫製対象物を撮影するので、針棒１０等は撮影画像中に斜めに写りこむ。故に、ＣＰＵ１０１は、例えば図６に示す如く、撮影画像を真上から見た画像に視点変換した上で表示するのが好ましい。尚、図６の例と以下の説明では、撮影画像が針棒１０のみを含む例を挙げるが、撮影画像が押え足１３等を含む場合も同様である。画像の視点変換方法は周知なので説明を省略するが、例えば特開２００９−１７２１２２号公報に記載の方法を採用することができる。但し、ＣＰＵ１０１は、視点変換は行わずに撮影画像をそのまま表示してもよい。何れの場合も、作業者は、ＬＣＤ３２が表示する撮影画像で所定領域５３の状態を確認することができる。
【００４４】
図７〜図１４を参照し、ミシン１の縫製処理について説明する。図７の縫製処理は、ＣＰＵ１０１が縫製処理の実行指示の入力を検知した時に開始する。ＣＰＵ１０１は、ＲＯＭ１０２から縫製処理用のプログラムを読み出して実行する。作業者は、まず、操作パネル８または操作箱３０のキーを操作して、縫製対象の模様の識別番号を選択する。ＣＰＵ１０１は、作業者が選択した模様（以下、選択模様という）の識別番号の入力を受け付け、該識別番号に対応する縫製データをＲＯＭ１０２又は不揮発性メモリ１０４からＲＡＭ１０３の所定の記憶エリアに読み出す（Ｓ１）。
【００４５】
ＣＰＵ１０１は、制限領域と減速領域を設定し、領域マップを作成してＲＡＭ１０３に記憶する（Ｓ２）。制限領域は、所定領域５３の撮影画像中の少なくとも針棒１０に対応する範囲である。ＣＰＵ１０１は、後述する送り移動処理において、補助押え部材５１０が針棒１０に装着した縫針１１と干渉することを回避する為に、補助押え部材５１０（図１参照）が撮影画像中で該制限領域に重ならないように保持体６０の移動を制御する。減速領域は、所定領域５３の制限領域の周囲に予め設定する領域である。ＣＰＵ１０１は、後述する送り移動処理において、補助押え部材５１０が撮影画像中で減速領域に重なった場合、保持体６０の移動速度を減速する。
【００４６】
ＣＰＵ１０１は、制限領域と減速領域の設定方法として、次に例示する方法を使用可能である。例えば、ＣＰＵ１０１は、所定領域５３の撮影画像中の針穴５０２（図６参照）を識別し、針穴５０２を中心とする半径Ｘミリの円形領域を制限領域５６として設定する。尚、図６は真上から見た画像に視点変換した画像の例なので針穴５０２は隠れているが、撮影画像では識別可能である。ＣＰＵ１０１は更に制限領域５６の周囲に半径Ｙミリ（但しＹ＞Ｘ）の円形領域を減速領域５７として設定する。Ｘ、Ｙは、予め設定して不揮発性メモリ１０４に記憶した値でもよいし、作業者が操作パネル８又は操作箱３０のキーを操作して入力した値でもよい。Ｘは、針棒１０の半径以上であることが好ましい。
【００４７】
他の制限領域、減速領域の設定方法では、ＣＰＵ１０１は、針穴５０２を含む撮影画像を操作箱３０のＬＣＤ３２に表示する。作業者は、操作箱３０のキー群３３を操作して、撮影画像中で針穴５０２の周囲の領域を制限領域として指定し、更にその周囲の領域を減速領域として指定する。操作箱３０がＬＣＤ３２の表面にタッチパネルを備える場合、作業者はスタイラスペン等を使用してタッチパネル上で領域を指定してもよい。ＣＰＵ１０１は、作業者が指定した領域を制限領域、減速領域として設定できる。更に他の方法では、所定領域５３内に針穴５０２以外の特徴点がある場合、不揮発性メモリ１０４は、該特徴点と針棒１０との位置関係を記憶しておく。ＣＰＵ１０１は撮像画像中の特徴点を識別し、該特徴点を基準として、針棒１０に対応する制限領域、減速領域を設定してもよい。尚、ＣＰＵ１０１は、周知の任意の画像認識技術を用いて撮影画像中の針穴５０２、その他の特徴点を識別すればよい。
【００４８】
説明の簡単化の為、針棒１０に対応する範囲のみを制限領域として設定する方法を説明した。しかし、針棒１０の他、押え足１３等も前端部７の下端から下方に突出している。故に、制限領域は、針棒１０に加え、押え足１３等に対応する範囲も含む領域として設定してもよい。該場合も、ＣＰＵ１０１は、所定領域５３の撮影画像の針穴５０２、その他の特徴点を基準として、予め定めた法則に従って、又は作業者の指定に応じて、制限領域、減速領域を設定すればよい。
【００４９】
領域マップは、所定領域５３の撮影画像中の制限領域、減速領域の位置を示すマップである。前述の通り、所定領域５３の撮影画像の大きさは、縦４８０画素、横６４０画素である。領域マップは、撮影画像の全画素の各々に１バイト（ｂｙｔｅ）を割り当てた縦４８０バイト、横６４０バイトのデータである。領域マップ中の各画素に対応する位置のデータは、該画素が制限領域内にあれば１を示し、減速領域内にあれば２を示し、その他の領域（制限領域でも減速領域でもない領域）内にあれば０を示す。例えば、ＣＰＵ１０１は、図６に示す制限領域５６、減速領域５７の例に対応して、図８に示すような領域マップを作成する。制限領域５６である中心部の画素に対応する位置のデータは１を示し、減速領域５７である周囲の画素に対応する位置のデータは２を示し、その他のデータは０を示している。以下の説明では、ＣＰＵ１０１は、Ｓ２で図６に示す制限領域５６、減速領域５７を設定したものとする。
【００５０】
ＣＰＵ１０１は、領域マップの作成後、障害物情報を設定する（Ｓ３）。障害物情報は、縫針１１と干渉する可能性のある障害物を画像認識で識別する為の障害物の特徴部分に関する情報である。障害物情報は、例えば、障害物の色、形状、障害物に付した模様等に関する情報である。本実施形態では、補助押え部材５１０が障害物の例である。ＣＰＵ１０１は、補助押え部材５１０の上面に付した色（赤色）を識別する。作業者は、操作パネル８又は操作箱３０のキーを操作して、赤色を示す情報を入力する。赤色を示す情報は、例えば、ＲＧＢ値で示すことができる（Ｒ値＝２５５、Ｇ値＝０、Ｂ値＝０）。ＣＰＵ１０１は、ＬＣＤ３２に予め設定した主要な色（赤、青、黄、黒等）を選択可能に表示し、作業者が選択した色に応じたＲＧＢ値を障害物情報として設定してもよい。障害物情報が障害物の形状、模様に関する情報の場合、作業者は操作パネル８又は操作箱３０のキーを操作して、形状、模様を示す情報を入力してもよい。ＣＰＵ１０１は設定した障害物情報をＲＡＭ１０３に記憶する。本実施形態では、Ｓ３で設定した障害物の色を、対象色という。
【００５１】
ＣＰＵ１０１は、起動スイッチ１２１（図３参照）がＯＮとなったか否かを判断する（Ｓ６）。作業者が起動スイッチ１２１を踏み込まず、起動スイッチ１２１がＯＦＦの場合（Ｓ６：ＮＯ）、ＣＰＵ１０１は選択模様の変更操作があったか否かを判断する（Ｓ１２）。選択模様の変更操作があった場合（Ｓ１２：ＹＥＳ）、ＣＰＵ１０１は処理をＳ１に戻す。選択模様の変更操作がない場合（Ｓ１２：ＮＯ）、ＣＰＵ１０１は処理をＳ６に戻す。作業者が起動スイッチ１２１を踏み込むと、起動スイッチ１２１がＯＮとなる（Ｓ６：ＹＥＳ）。ＣＰＵ１０１は、原点設定が必要か否かを判断する（Ｓ７）。原点設定とは、保持体６０を前述の絶対原点位置に移動する動作である。ミシン１は、縫製データに基づいて保持体６０を移動する前に、まず絶対原点位置に保持体６０を移動する。故に、ＣＰＵ１０１は、起動スイッチ１２１がＯＮとなった時、Ｓ１で読み出した縫製データが未処理であれば、原点設定が必要と判断し（Ｓ７：ＹＥＳ）、後述の送り移動処理を行う（Ｓ２０）。ＣＰＵ１０１は、送り移動処理の後、Ｓ６に処理を戻す。
【００５２】
ＣＰＵ１０１は、既に原点設定を行っており、縫製データに基づいて保持体６０を移動する場合、原点設定は不要と判断する（Ｓ７：ＮＯ）。ＣＰＵ１０１は、Ｓ１でＲＡＭ１０３に読み出した選択模様の縫製データのうち、最初の未処理データを取得し、処理対象データとしてＲＡＭ１０３の作業メモリにコピーする（Ｓ８）。ＣＰＵ１０１は、処理対象データの種別が「送り」であるか否か判断する（Ｓ９）。縫製データの最初のデータは、最初の針落ち点が縫針１１の直下にある位置（以下、縫製開始位置という）に保持体６０を移動させる為のデータであり、種別は「送り」である（Ｓ９：ＹＥＳ）。ＣＰＵ１０１は、後述の送り移動処理を行う（Ｓ２０）。ＣＰＵ１０１は、送り移動処理の後、Ｓ６に処理を戻す。尚、起動スイッチ１２１の操作回数を減らす為に、原点設定から縫製開始位置への移動を一連の処理として行ってもよい。
【００５３】
縫製開始点まで保持体６０が移動した後、処理対象データの種別は「送り」でなく「縫製」となる（Ｓ９：ＮＯ）。ＣＰＵ１０１は、保持体６０を移動し且つ縫針１１を針落ち点で縫製対象物に刺すことで縫目を形成する縫目形成処理を行う（Ｓ１１）。詳細には、ＣＰＵ１０１は、作業者が設定した回転速度でミシンモータ１１２を駆動して主軸を回転駆動することで、針棒１０の上下動と垂直釜の回転を制御する。ＣＰＵ１０１は、主軸の回転駆動と同期した速度で、処理対象データが示す回転方向で、処理対象データが示す駆動パルス数をＸ軸モータ１１４、Ｙ軸モータ１１６に与えることで、保持体６０を移動する。ミシン１は該動作で縫製データに従って順に縫製対象物に縫目を形成することで、選択模様を縫製する。
【００５４】
ＣＰＵ１０１は、縫目形成処理（選択模様の縫製）の後、選択模様の変更操作があったか否か判断する（Ｓ１２）。選択模様の変更操作があった場合（Ｓ１２：ＹＥＳ）、ＣＰＵ１０１は処理をＳ１に戻す。選択模様の変更操作がない場合（Ｓ１２：ＮＯ）、ＣＰＵ１０１は処理をＳ６に戻す。縫製処理はミシン１の電源がＯＦＦとなると終了する。
【００５５】
以下、図９〜図１４を参照し、送り移動処理について説明する。送り移動処理は、縫針１１を縫製対象物に刺すことなく、目標位置（絶対原点位置または縫製開始位置）まで保持体６０を移動する処理である。ＣＰＵ１０１はまず回避中フラグを０に設定してＲＡＭ１０３に記憶する（Ｓ２０１）。回避中フラグは、ＣＰＵ１０１が通常の移動方向とは異なる方向に保持体６０を移動中であるか否か（回避動作中であるか否か）、及び回避動作中の場合の移動方向を、０、１、２の何れかで示す値である。詳細は後述するが、ＣＰＵ１０１は、回避中フラグを０、１、２の順に設定する。
【００５６】
ＣＰＵ１０１は、目標位置に応じてＸ正負カウンタ（Ｃｘ）とＹ正負カウンタ（Ｃｙ）をセットする（Ｓ２０２）。ＣＰＵ１０１が絶対原点位置に保持体６０を移動する場合、目標位置は原点Ｏであるが、保持体６０の位置は座標系６０１（図４参照）の座標で特定できていない。故に、ＣＰＵ１０１は、Ｘ方向原点センサ１１８とＹ方向原点センサ１１９（図３参照）を用いて原点設定を行う為に、ＣｘとＣｙに十分大きな値をセットする。ＣＰＵ１０１が縫製開始位置を目標位置として保持体６０を移動する場合、保持体６０は既に絶対原点位置にあるので、ＣＰＵ１０１は、処理対象データが示す値をＣｘとＣｙにセットする。ＣＰＵ１０１は、ＲＡＭ１０３に用意したタイマカウンタをリセットし、経過時間のカウントを開始する（Ｓ２０３）。
【００５７】
ＣＰＵ１０１は、移動処理を行う（Ｓ２１０）。移動処理は、目標位置または後述する中継位置に向けてＸ方向、Ｙ方向の少なくとも一方に１パルス分保持体６０を移動する処理である。図１０に示す如く、移動処理では、ＣＰＵ１０１は、所定の時間間隔（例えば、１／１００秒毎）でＸ軸モータ１１４、Ｙ軸モータ１１６にパルスを与えて保持体６０を移動する為に、所定時間が経過したか否かを判断する（Ｓ２１２）。ＣＰＵ１０１は、所定時間が経過しない間待機する（Ｓ２１２：ＮＯ→Ｓ２１２）。尚、ミシン１は、作業者の入力した指示に応じて送り移動処理時の保持体６０の移動速度を予め設定可能であってもよい。この場合、所定時間は移動速度に応じて変動する。
【００５８】
ＣＰＵ１０１は、所定時間が経過すると（Ｓ２１２：ＹＥＳ）、Ｃｘの値が０より大きいか否か判断する（Ｓ２１３）。Ｃｘの値が０より大きい場合（Ｓ２１３：ＹＥＳ）、ＣＰＵ１０１は、Ｘ軸モータ１１４にＸ正方向駆動パルスを１パルス出力する指示を駆動回路１１５（図３参照）に与える（Ｓ２１４）。保持体６０は、Ｘ正方向へ１パルス分移動する。ＣＰＵ１０１は、Ｃｘの値から１を減算し（Ｓ２１５）、処理をＳ２２１に進める。
【００５９】
Ｃｘの値が０より小さい場合（Ｓ２１３：ＮＯ、Ｓ２１７：ＹＥＳ）、ＣＰＵ１０１は、Ｘ軸モータ１１４にＸ負方向駆動パルスを１パルス出力する指示を駆動回路１１５に与える（Ｓ２１８）。保持体６０は、Ｘ負方向へ１パルス分移動する。ＣＰＵ１０１は、Ｃｘの値に１を加算し（Ｓ２１９）、処理をＳ２２１に進める。Ｃｘの値が０の場合（Ｓ２１３：ＮＯ、Ｓ２１７：ＮＯ）、保持体６０は既にＸ軸方向において目標位置または中継位置に到達している。故に、ＣＰＵ１０１は、Ｘ軸方向に保持体６０を動かさずに処理をＳ２２１に進める。
【００６０】
Ｃｙの値が０より大きい場合（Ｓ２２１：ＹＥＳ）、ＣＰＵ１０１は、Ｙ軸モータ１１６にＹ正方向駆動パルスを１パルス出力する指示を駆動回路１１７（図３参照）に与える（Ｓ２２２）。保持体６０は、Ｙ正方向へ１パルス分移動する。ＣＰＵ１０１は、Ｃｙの値から１を減算し（Ｓ２２３）、次の移動までの経過時間をカウントする為にタイマカウンタをリセットする（Ｓ２３０）。ＣＰＵ１０１は、移動処理を終了し、図９の送り移動処理に戻る。
【００６１】
Ｃｙの値が０より小さい場合（Ｓ２２１：ＮＯ、Ｓ２２６：ＹＥＳ）、ＣＰＵ１０１は、Ｙ軸モータ１１６にＹ負方向駆動パルスを１パルス出力する指示を駆動回路１１７に与える（Ｓ２２７）。保持体６０は、Ｙ負方向へ１パルス分移動する。ＣＰＵ１０１は、Ｃｙの値に１を加算し（Ｓ２２８）、タイマカウンタをリセットする（Ｓ２３０）。ＣＰＵ１０１は、移動処理を終了し、図９の送り移動処理に戻る。Ｃｙの値が０の場合（Ｓ２２１：ＮＯ、Ｓ２２６：ＮＯ）、保持体６０は既にＹ軸方向において目標位置または中継位置に到達している。ただし、保持体６０がＸ軸方向において目標位置または中継位置に到達していない場合があるので、ＣＰＵ１０１は、次の移動までの経過時間をカウントする為にタイマカウンタをリセットする（Ｓ２３０）。ＣＰＵ１０１は、Ｙ軸方向に保持体６０を動かさずに移動処理を終了し、図９の送り移動処理に戻る。
【００６２】
図９に示す如く、ＣＰＵ１０１は、移動処理の後、画像監視処理を行う（Ｓ２５０）。画像監視処理は、所定領域５３（図６参照）の撮影画像を監視し、障害物（本実施形態では補助押え部材５１０）が制限領域５６に重ならないようにフラグをセットする処理である。図１１に示す如く、画像監視処理では、ＣＰＵ１０１はまず、重なりフラグと減速フラグを０に設定してＲＡＭ１０３に記憶する（Ｓ２５１）。重なりフラグは、制限領域５６から保持体６０の移動方向と反対方向の所定距離内に障害物が存在する否かを、１、０の何れかで示す値である。減速フラグは、減速領域５７から保持体６０の移動方向と反対方向の所定距離内に障害物が存在するか否かを、１、０の何れかで示す値である。
【００６３】
ＣＰＵ１０１は、保持体６０の移動方向に応じて、制限領域５６、減速領域５７をＸ軸方向、Ｙ軸方向に夫々オフセットするオフセット量であるＯＦｘ、ＯＦｙを設定する（Ｓ２５２）。障害物が制限領域５６に重なってしまうと、障害物が縫針１１と干渉する可能性が高まる。故に、本実施形態では、制限領域５６から保持体６０の移動方向と反対方向の所定距離内に障害物が進入すると、ＣＰＵ１０１は保持体６０の移動方向を変更する。該所定距離がオフセット量である。オフセット量は、本実施形態では、処理の簡単化の為に画素数（例えば、１０画素）で設定するが、距離（例えば、５ミリ）で設定し、ＣＰＵ１０１が処理の都度距離を画素数に換算して使用してもよい。
【００６４】
保持体６０の移動方向は、Ｘ正方向、Ｘ正方向Ｙ負方向、Ｙ負方向、Ｘ負方向Ｙ負方向、Ｘ負方向、Ｘ負方向Ｙ正方向、Ｙ正方向、Ｘ正方向Ｙ正方向の８種類ある。Ｘ正負カウンタ（Ｃｘ）の示す値が正の値の場合、保持体６０はＸ正方向に移動するので、ＣＰＵ１０１は、制限領域５６からＸ負方向にオフセット量を設ける。即ち、ＯＦｘは負の値である。逆に、Ｃｘの示す値が負の値の場合、保持体６０はＸ負方向に移動するので、ＣＰＵ１０１は、制限領域５６からＸ正方向にオフセット量を設ける。即ち、ＯＦｘは正の値である。Ｃｘの示す値が０の場合、保持体６０はＸ軸方向には移動しないので、ＯＦｘは０である。Ｙ正負カウンタ（Ｃｙ）も同様である。即ち、Ｃｙが示す値が正の値の場合、ＯＦｙは負の値である。Ｃｙが示す値が負の値の場合、ＯＦｙは正の値である。Ｃｙの示す値が０の場合、ＯＦｙは０である。
【００６５】
作業者は、送り移動処理中の保持体６０の移動速度の初期設定値を設定可能である。オフセット量は、該移動速度にかかわらず一定の値に設定してもよいが、移動速度が速くなるほど大きい値に設定すると好ましい。移動速度が速くなるほど、保持体６０が単位時間内に移動する距離は長くなる。移動速度が遅くなるほど、保持体６０が単位時間内に移動する距離は短くなる。故に、移動速度の初期設定値に応じてオフセット量を設定することで、障害物が針棒１０に装着した縫針１１に干渉することを更に確実に回避することができる。
【００６６】
ＣＰＵ１０１は、ＲＡＭ１０３に用意した縦ポインタ（Ｐｖ）、横ポインタ（Ｐｈ）の値を夫々０に設定する（Ｓ２５３）。Ｐｖ、Ｐｈは、夫々、領域マップ（図８参照）から処理対象として読み出すデータを特定するポインタである。Ｐｖ＝０は、領域マップの１行目を指し、Ｐｈ＝０は、領域マップの１列目を指す。ＣＰＵ１０１は、Ｐｖの値が４８０より小さく（Ｓ２６１：ＹＥＳ）、且つＰｈの値が６４０よりも小さい場合（Ｓ２６２：ＹＥＳ）、領域マップでＰｖとＰｈが示す位置のデータが、０であるか否か判断する（Ｓ２７１）。図８に示す如く、最初の処理対象の１行目１列目のデータは０なので（Ｓ２７１：ＹＥＳ）、対応する位置は、制限領域５６内でも減速領域５７内でもない。ＣＰＵ１０１は、Ｐｈの値に１を加算して、１行目２列目の位置のデータを処理対象とし（Ｓ２７６）、処理をＳ２６２に戻す。
【００６７】
Ｐｈの値は６４０より小さく（Ｓ２６２：ＹＥＳ）、１行目２列目の位置のデータも０なので（Ｓ２７１）、ＣＰＵ１０１は、Ｐｈの値に１を加算し（Ｓ２７６）、処理を再びＳ２６２に戻す。ＣＰＵ１０１は同様にして処理を繰り返し、順に１行目のデータを右方向へ処理していく。ＣＰＵ１０１が６４０列目のデータを処理すると、Ｐｈの値が６４０に達し（Ｓ２６２：ＮＯ）、１行目のデータの処理が終了する。ＣＰＵ１０１は、次の行のデータを処理するためにＰｖの値に１を加算する（Ｓ２６３）と共にＰｈの値を０に戻し（Ｓ２６４）、処理をＳ２６１に戻す。
【００６８】
ＣＰＵ１０１は同様に処理を繰り返す。領域マップでＰｖとＰｈが示す位置が制限領域５６内又は減速領域５７内となると、該位置のデータは、０ではなくなる（Ｓ２７１：ＮＯ）。Ｐｈの値にＸ軸方向のオフセット量ＯＦｘを加算した値（Ｐｈ＋ＯＦｘ）が０以上且つ６４０未満でない場合（Ｓ２７２：ＮＯ）、処理対象の位置はオフセット後に所定領域５３の撮影画像中にない。故に、ＣＰＵ１０１は次の処理対象を設定し（Ｓ２７６）、処理をＳ２６２に戻す。
【００６９】
Ｐｈ＋ＯＦｘは０以上且つ６４０未満であるが（Ｓ２７２：ＹＥＳ）、Ｐｖの値にＹ軸方向のオフセット量ＯＦｙを加算した値（Ｐｖ＋ＯＦｙ）は０以上且つ４８０未満でない場合も（Ｓ２７３：ＮＯ）、処理対象の位置はオフセット後に所定領域５３の撮影画像中にない。故に、ＣＰＵ１０１は次の処理対象を設定し（Ｓ２７６）、処理をＳ２６２に戻す。
【００７０】
Ｐｖ＋ＯＦｙも０以上且つ４８０未満である場合（Ｓ２７３：ＹＥＳ）、ＣＰＵ１０１は、ＲＡＭ１０３が記憶する最新の画像データ（Ｒ値データ（図３参照）、Ｇ値データ、Ｂ値データ）において、Ｐｈ＋ＯＦｘとＰｖ＋ＯＦｙが示す位置の画素の色が対象色か否かを判断する（Ｓ２７４）。詳細には、最新の画像データのＲＧＢ値と、図７のメイン処理のＳ３でＣＰＵ１０１が設定し、ＲＡＭ１０３に記憶した対象色のＲＧＢ値とが同じであれば、ＣＰＵ１０１は、該画素の色は対象色であると判断する。尚、多少の誤差を許容する為に、ＲＧＢ値が完全に一致しない場合でも、ＣＰＵ１０１は、ＲＧＢ色空間で所定距離内にある２色を同じ色と判断してもよい。
【００７１】
Ｐｈ＋ＯＦｘとＰｖ＋ＯＦｙが示す位置の画素の色が対象色でない場合（Ｓ２７４：ＮＯ）、領域マップの処理対象の位置をＯＦｘ、ＯＦｙだけオフセットした位置は、所定領域５３の撮影画像中の障害物と重ならない。即ち、ＣＰＵ１０１は、制限領域５６内又は減速領域５７内の処理対象の位置から保持体６０の移動方向と反対方向の所定距離内で、障害物を識別していない。故に、ＣＰＵ１０１は次の処理対象を設定し（Ｓ２７６）、処理をＳ２６２に戻す。
【００７２】
図１２に示す如く、Ｐｈ＋ＯＦｘとＰｖ＋ＯＦｙが示す位置Ｐ２（ＰｈとＰｖが示す位置Ｐ１をオフセットした位置）の画素の色が対象色である場合（Ｓ２７４：ＹＥＳ）、ＣＰＵ１０１は、該画素の周辺画素（例えば、該画素を取り巻く８画素）の色も対象色であるか否かを判断する（Ｓ２７５）。周辺画素の色が対象色でなければ（Ｓ２７５：ＮＯ）、Ｐｈ＋ＯＦｘとＰｖ＋ＯＦｙが示す位置の画素の色は画像中のノイズの可能性が高い。故に、ＣＰＵ１０１は移動方向を変更せずに次の処理対象を設定し（Ｓ２７６）、処理をＳ２６２に戻す。尚、ＣＰＵ１０１はＳ２７５の処理は行わなくてもよい。
【００７３】
周辺画素の色が対象色である場合（Ｓ２７５：ＹＥＳ）、領域マップの処理対象の位置をＯＦｘ、ＯＦｙだけオフセットした位置は、所定領域５３の撮影画像中の障害物と重なる。即ち、ＣＰＵ１０１は、制限領域５６内又は減速領域５７内の処理対象の位置から保持体６０の移動方向と反対方向の所定距離内で、障害物を識別したことになる。
【００７４】
領域マップで処理対象の位置のデータが１ではなく、２である場合（Ｓ２８１：ＮＯ）、処理対象の位置は減速領域５７内にある。故に、ＣＰＵ１０１は、減速フラグを１にセットし（Ｓ２８２）、処理をＳ２６２に戻す。ＣＰＵ１０１は、減速フラグが１の場合、Ｘ軸モータ１１４、Ｙ軸モータ１１６（図３参照）の回転速度を初期の設定値よりも遅くすることで、保持体６０移動速度を減速する。
【００７５】
領域マップで処理対象の位置のデータが１である場合（Ｓ２８１：ＹＥＳ）、処理対象の位置は制限領域５６内にある。故に、ＣＰＵ１０１は、重なりフラグを１に設定し、減速フラグを０に設定する（Ｓ２９１）。ＣＰＵ１０１は、この時のＰｈとＰｖの値をＲＡＭ１０３に記憶しておく。ＣＰＵ１０１は、画像監視処理を終了し、図９の送り移動処理に戻る。尚、本実施形態では、減速領域５７は制限領域５６の周囲にある。故に、ＣＰＵ１０１は処理過程で重なりフラグを１に設定するより前に減速フラグを１に設定する。しかし、制限領域５６から保持体６０の移動方向と反対方向の所定距離内に、障害物が存在することが判明した場合、ＣＰＵ１０１は、減速フラグより重なりフラグを優先する。
【００７６】
以上に説明したように、画像監視処理で、制限領域５６から保持体６０の移動方向と反対方向の所定距離内に障害物が存在することが判明した場合、ＣＰＵ１０１は、重なりフラグを１に設定してその時点で画像監視処理を終了する。ＣＰＵ１０１が減速領域５７から保持体６０の移動方向と反対方向の所定距離内で障害物を識別し、且つ制限領域５６から保持体６０の移動方向と反対方向の所定距離内で障害物を識別できないまま、前述のＳ２６１〜Ｓ２８２の処理を繰り返し、領域マップの４８０行目６４０列目まで処理が終了したとする（Ｓ２６１：ＮＯ）。該場合、ＣＰＵ１０１がＳ２８２で減速フラグを１に設定した状態で、画像監視処理は終了する。ＣＰＵ１０１が減速領域５７から保持体６０の移動方向と反対方向の所定距離内でも障害物を識別できないまま、前述のＳ２６１〜Ｓ２８２の処理を繰り返し、領域マップの４８０行目６４０列目まで処理が終了したとする（Ｓ２６１：ＮＯ）。該場合、重なりフラグと減速フラグは両方とも０のまま、画像監視処理は終了する。
【００７７】
図９に示す如く、送り移動処理では、画像監視処理（Ｓ２５０）の後、ＣＰＵ１０１は、ＲＡＭ１０３が記憶する重なりフラグが１であるか否かを判断すする（Ｓ３０１）。重なりフラグが０である場合（Ｓ３０１：ＮＯ）、現在、制限領域５６から保持体６０の移動方向と反対方向の所定距離内に障害物は存在しない。ＣＰＵ１０１は回避中フラグが０か否か判断する（Ｓ３０４）。０に設定した回避中フラグは、保持体６０が回避動作中ではないことを示す。回避中フラグが０の場合（Ｓ３０４：ＹＥＳ）、ＣＰＵ１０１はそのまま処理をＳ２１０へ戻す。ＣＰＵ１０１は前述の移動処理（Ｓ２１０）、画像監視処理（Ｓ２５０）を繰り返す。
【００７８】
回避中フラグが０でなければ（Ｓ３０４：ＮＯ）、既に保持体６０は回避動作中である。ＣＰＵ１０１は、回避動作中に更に移動方向を変更するか否かを確認する為に、後述の移動方向変更処理（Ｓ３５０）で中継位置を設定する。ＣＰＵ１０１は、中継位置に到達したか否かを判断する（Ｓ３０５）。具体的には、ＣＰＵ１０１は、ＣｘとＣｙの値が何れも０であれば、中継位置に到達したと判断し（Ｓ３０５：ＹＥＳ）、後述の移動方向変更処理（Ｓ３５０）に進む。
【００７９】
ＣＰＵ１０１は、中継位置に到達していないと判断した場合（Ｓ３０５：ＮＯ）、中継位置に向けてＸ方向、Ｙ方向の少なくとも一方に１パルス分保持体６０を移動する移動処理を行う（Ｓ３１０）。Ｓ３１０の移動処理の内容は、前述の図９のＳ２１０の処理と同じなので、説明は省略する。ＣＰＵ１０１は、Ｓ３１０の移動処理の後、処理を後述するＳ４０１に進める。
【００８０】
重なりフラグが１の場合（Ｓ３０１：ＹＥＳ）、制限領域５６から保持体６０の移動方向と反対方向の所定距離内に障害物が存在する。故に、ＣＰＵ１０１は、回避中フラグが０であれば（Ｓ３０２：ＹＥＳ）、回避動作を開始する為に回避中フラグを１に設定する（Ｓ３０３）。１に設定した回避中フラグは、後述する優先方向に近い方向に保持体６０を移動することを示す。ＣＰＵ１０１は、後述する移動方向変更処理を行う（Ｓ３５０）。
【００８１】
回避中フラグが０でなければ（Ｓ３０２：ＮＯ）、既に保持体６０は回避動作中であるが、続く移動方向変更処理（Ｓ３５０）で更に移動方向を変更する。
【００８２】
図１３を参照し、移動方向変更処理（図９のＳ３５０）について説明する。移動方向変更処理では、ＣＰＵ１０１は、画像監視処理（図１１参照）のＳ２９１でＲＡＭ１０３に記憶したＰｈとＰｖの値に基づき、撮影画像中でＰｈとＰｖが示す位置の画素（以下、注目画素という）を特定する。図１２の例では、ＣＰＵ１０１は、点Ｐ１の位置にある画素を注目画素とする。ＣＰＵ１０１は、注目画素を中心に周辺の画素を順に走査し、対象色の境界線を特定する（Ｓ３５１）。ＣＰＵ１０１は、対象色の境界線を、対象色の画素のうち他の色の画素に隣接する画素を繋ぐ線として特定すればよい。
【００８３】
ＣＰＵ１０１は、注目画素（点Ｐ１）から見て保持体６０の移動方向と反対方向（以下、注目方向という）に対象色の境界線があるか否かを判断する（Ｓ３５２）。図１２の例では、保持体６０の移動方向は矢印Ａで示すＸ正方向Ｙ負方向である。ＣＰＵ１０１は、注目画素（点Ｐ１）を通り且つ注目方向に延びる直線Ｌが境界線と交差するか否かを判断すればよい。尚、ＣＰＵ１０１は、Ｘ正負カウンタ（Ｃｘ）とＹ正負カウンタ（Ｃｙ）の値から、移動方向を特定する。
【００８４】
注目画素から見て注目方向に対象色の境界線がある場合（Ｓ３５２：ＹＥＳ）、保持体６０は、障害物が制限領域５６に近づく方向に移動中である。故に、ＣＰＵ１０１は、回避中フラグの値に応じて保持体６０の移動方向を変更する。ＣＰＵ１０１は、回避中フラグが２か否かを判断する（Ｓ３７１）。詳細は後述するが、２に設定した回避中フラグは、優先方向の反対方向に近い方向に保持体６０を移動することを示す。回避中フラグが２ではない場合（Ｓ３７１：ＮＯ）、回避中フラグが１であるので、ＣＰＵ１０１は、移動方向を、境界線の傾きに沿い且つ優先方向に近い方向に変更し（Ｓ３７２）、処理をＳ３７５に進める。回避中フラグが２の場合（Ｓ３７１：ＹＥＳ）、ＣＰＵ１０１は、移動方向を、境界線の傾きに沿い且つ優先方向の反対方向に近い方向に変更し（Ｓ３７３）、処理をＳ３７５に進める。
【００８５】
優先方向は、例えば、ミシン１の製造者が予め設定しＲＯＭ１０２又は不揮発性メモリ１０４に記憶した一定方向である。障害物となる補助押え部材は、一般的に、ミシン１の後側から前側に向けて延びる場合が多い。該場合、保持体６０をミシン１の後側へ向けて移動することで、障害物を回避できる可能性は高くなる。故に、ミシン１の製造者は、保持体６０をミシン１の前側から後側へ向かう方向、即ち、Ｙ正方向を優先方向として設定すればよい。該場合、ＣＰＵ１０１は、作業者の設定作業を要することなく効率的に移動方向を変更できる。但し、優先方向は、ミシン１の製造者が予め設定した一定方向に限らない。例えば、ＣＰＵ１０１は、図７の縫製処理のＳ３の後、作業者が入力した方向を優先方向として設定してもよい。作業者は、使用する補助押え部材の取付け方向に応じて、適切な方向を入力する。該場合、ＣＰＵ１０１は、該取付け方向に応じた適切な方向を優先方向に設定できる。
【００８６】
境界線の傾きは、例えば、Ｘ軸に対して反時計周り方向の角度で特定することができる。図１４に示す如く、障害物５００の境界線が曲線の場合、ＣＰＵ１０１は、例えば、前述の直線Ｌと境界線の交点Ｐ５における接線Ｔ１を求め、該接線Ｔ１の傾きを使用すればよい。対象色の境界線、即ち、障害物の外縁に沿った方向に保持体６０の移動方向を変更することで、効率的且つ確実に障害物が針棒１０に装着した縫針１１に干渉することを回避することができる。
【００８７】
例えば、図１２の例において、保持体６０の元の移動方向は矢印Ａの示すＸ正方向Ｙ負方向であるとする。障害物である補助押え部材５１０の境界線の傾きは、Ｘ軸に対して９０度である。該例において優先方向がＹ正方向の場合、変更後の移動方向は、矢印Ｂで示すＹ正方向である。図１４の例において、優先方向がＹ正方向の場合、変更後の移動方向は、矢印Ｃで示す、接線Ｔ１に沿って図中右上に向かう方向である。
【００８８】
Ｓ３７５において、ＣＰＵ１０１は、注目画素を通り且つ注目方向に延びる直線と境界線との交点から、境界線が変更後の移動方向に所定距離以上延びているか否かを判断する。該所定距離は、予め設定した一定距離でもよいし、作業者が縫製処理前に設定し不揮発性メモリ１０４に記憶した値でもよい。境界線が所定距離以上延びている場合（Ｓ３７５：ＹＥＳ）、ＣＰＵ１０１は、現在位置（現在縫針１１の直下にある点）から、変更後の移動方向の反対方向に所定距離離れた位置にある１点を中継位置として設定し（Ｓ３７６）、中継位置をＣｘ、Ｃｙにセットする（Ｓ３７９）。
【００８９】
中継位置は、現在位置から目標位置に保持体６０を移動する時、少なくとも現在位置から移動方向を変えずに障害物を回避した状態で移動可能な位置である。ミシン１は、中継位置を設定することで可能な限り最短距離で保持体６０を目標位置に向けて移動できる。
【００９０】
図１２の例では、ＣＰＵ１０１は、現在縫針１１の直下にある点Ｐ０から、矢印Ｂで示す変更後の移動方向の反対方向に所定距離Ｄ１離れた点Ｐ３を中継位置とする。変更後の移動方向はＹ正方向なので、点Ｐ３は、点Ｐ０からＹ負方向に所定距離Ｄ１離れた位置にある。ＣＰＵ１０１は、ＬＣＤ３２の画面上での点Ｐ０と点Ｐ３の位置関係を、座標系６０１（図４参照）での位置関係に変換する。詳細には、ＣＰＵ１０１は、ＬＣＤ３２の画面上の点Ｐ０と点Ｐ３の座標を座標系６０１における点の座標に変換する。二次元座標をワールド座標系の三次元座標に変換する方法は周知なので説明を省略するが、例えば特開２００９−１７２１２２号公報に記載の方法を採用することができる。
【００９１】
ＣＰＵ１０１は、変換後の現在位置と中継位置の位置関係に基づき、中継位置が縫針１１の直下に位置するように保持体６０を移動する為のＸ軸モータ１１４、Ｙ軸モータ１１６（図３参照）の夫々の駆動パルス数を算出する。ＣＰＵ１０１は、算出した駆動パルス数に基づき、Ｃｘ、Ｃｙをセットする。即ち、Ｃｘ、Ｃｙの値は、中継位置まで保持体６０を移動する為の値となる。ＣＰＵ１０１は、処理をＳ３８０に進める。
【００９２】
図１４の例の如く、直線Ｌと障害物５００の境界線の交点Ｐ５から、境界線が変更後の移動方向（矢印Ｃ）に所定距離以上延びていない場合（Ｓ３７５：ＮＯ）、ＣＰＵ１０１は、境界線の傾きに基づいて中継位置を設定する（Ｓ３７７）。具体的には、ＣＰＵ１０１は、例えば次の方法で中継位置を設定する。ＣＰＵ１０１はまず、変更後の移動方向と反対方向に沿って順に境界線の接線を求める。ＣＰＵ１０１は、接線Ｔ１の傾きから所定量以上傾きが変化した時点の接線Ｔ２を特定する。該所定量は、予め設定した一定量でもよいし、作業者が縫製処理前に設定し不揮発性メモリ１０４に記憶した値でもよい。境界線の傾きの特定方法は前述の通りである。ＣＰＵ１０１は、直線Ｌと障害物５００の境界線の交点Ｐ５から、接線Ｔ１と接線Ｔ２の交点Ｐ６までの距離Ｄ２を特定する。ＣＰＵ１０１は、現在縫針１１の直下にある点Ｐ０から、矢印Ｃで示す変更後の移動方向の反対方向に距離Ｄ２離れた点Ｐ７を中継位置とする。ＣＰＵ１０１は、上述した如く中継位置をＣｘ、Ｃｙにセットする（Ｓ３７９）。ＣＰＵ１０１は、処理をＳ３８０に進める。
【００９３】
注目画素から見て注目方向に対象色の境界線がない場合（Ｓ３５２：ＮＯ）、目標位置に向けて保持体６０を移動できるので、ＣＰＵ１０１は回避中フラグを０に変更し（Ｓ３５６）、目標位置をＣｘ、Ｃｙにセットして（Ｓ３５７）、処理をＳ３８０に進める。
【００９４】
ＣＰＵ１０１がＳ３７６又はＳ３７７で中継位置を設定した場合、ＣＰＵ１０１は、Ｓ３８０では中継位置に向けてＸ方向、Ｙ方向の少なくとも一方に１パルス分保持体６０を移動する。ＣＰＵ１０１がＳ３５６で回避フラグを０に変更した場合、ＣＰＵ１０１は、Ｓ３８０では目標位置に向けてＸ方向、Ｙ方向の少なくとも一方に１パルス分保持体６０を移動する。Ｓ３８０の移動処理の内容は、前述の図９のＳ２１０の処理と同じなので、説明は省略する。ＣＰＵ１０１は、移動処理の後、移動方向変更処理を終了し、図９の送り移動処理に戻る。
【００９５】
図９に示す如く、移動方向変更処理（Ｓ３５０）の後、又は移動処理（Ｓ３１０）の後、ＣＰＵ１０１は、保持体６０が可動域端に到達したか否かを判断する（Ｓ４０１）。前述の通り、ミシン１は、保持体６０が可動域端に到達したことを検出する構成（図示略）を備える。ＣＰＵ１０１は、保持体６０が可動域端に到達していないと判断した場合（Ｓ４０１：ＮＯ）、目標位置に到達したか否を判断する（Ｓ４１０）。
【００９６】
目標位置が絶対原点位置の場合、ＣＰＵ１０１は、次のように判断を行う。Ｘ方向原点センサ１１８とＹ方向原点センサ１１９（図３参照）は、保持体６０が絶対原点位置に到達した時、検出信号を出力する。故に、ＣＰＵ１０１は、前述の移動処理（Ｓ２１０、Ｓ３１０、Ｓ３８０）で保持体６０が移動した結果、Ｘ方向原点センサ１１８とＹ方向原点センサ１１９からの検出信号を認識した場合、保持体６０の絶対原点位置（目標位置）への移動が完了したと判断する。目標位置が縫製開始位置の場合、ＣＰＵ１０１は、Ｘ正負カウンタ（Ｃｘ）、Ｙ正負カウンタ（Ｃｙ）の値が何れも０になった場合、保持体６０の縫製開始位置（目標位置）への移動が完了したと判断する。ＣＰＵ１０１は、保持体６０がまだ目標位置に到達していない場合（Ｓ４１０）、処理をＳ２５０に戻す。
【００９７】
尚、ＣＰＵ１０１が上述の如く移動方向変更処理（Ｓ３５０）で中継位置を設定した後に画像監視処理（Ｓ２５０）に戻る場合、ＣＰＵ１０１は、変更後の移動方向に応じてオフセット量を設定する（図１１のＳ２５２）。図１２の例の如く、変更後の移動方向が矢印Ｂの示す方向である場合、ＣＰＵ１０１はＳ２５２で制限領域５６からＹ負方向のオフセット量（−ＯＦｙ）を設ける。ＣＰＵ１０１は、制限領域５６内の位置から−ＯＦｙの位置で障害物を識別しない。故に、重なりフラグは０の状態のまま、画像監視処理は終了する。該場合、重なりフラグは０であり且つ回避中フラグは１なので（図９のＳ３０１：ＮＯ、Ｓ３０４：ＮＯ）、ＣＰＵ１０１は、上述の如く中継位置に到達したか否かの判断処理に進む（Ｓ３０５）。
【００９８】
ＣＰＵ１０１は、保持体６０が可動域端に到達したと判断した場合（Ｓ４０１：ＹＥＳ）、回避中フラグが１であるか否かを判断する（Ｓ４０２）。回避中フラグが１の場合、前述の移動方向変更処理（Ｓ３５０）において、保持体６０の移動方向は、境界線の傾きに沿い且つ優先方向に近い方向に変わっている。即ち、保持体６０は、該方向に移動した結果、可動域端まで到達してしまったことを意味する。故に、ＣＰＵ１０１は、移動方向を更に変更する為に、回避中フラグを２に変更し（Ｓ４０３）、処理をＳ２５０に戻す。
【００９９】
回避中フラグが２の状態で処理が移動方向変更処理（Ｓ３５０）に進んだ場合、前述したように、ＣＰＵ１０１は、保持体６０の移動方向を、境界線の傾きに沿い且つ優先方向の反対方向に近い方向に変更することになる。このように、ＣＰＵ１０１は、保持体６０の移動方向を自動的に反転する。故に、縫製対象物が切り替わり、障害物の位置や形状が変わったとしても、作業者は既に設定した優先方向を設定し直さなくてもよい。
【０１００】
回避中フラグが１でなく２の場合（Ｓ４０２：ＮＯ）、ＣＰＵ１０１は保持体６０の移動方向を反転したにもかかわらず、保持体６０は目標位置に到達できず、再度可動域端まで到達してしまった状態である。故に、ＣＰＵ１０１は、例えば、操作箱３０のＬＣＤ３２にエラー発生を示すメッセージを表示することで、作業者にエラー発生を報知し（Ｓ４０５）、作業者が電源スイッチ（図示略）をＯＦＦするのを待つ。ＣＰＵ１０１は、該方法で、何らかの不具合で障害物の位置がずれてしまい、回避不能な状態になったことを作業者に報知できる。故に、作業者は報知後に適切な措置を取ることができる。
【０１０１】
以上に説明したように、本実施形態のミシン１のＣＰＵ１０１は、所定時間毎に、目標位置または中継位置に向けてＸ方向、Ｙ方向の少なくとも一方に１パルス分保持体６０を移動し（Ｓ２１０、Ｓ３１０、Ｓ３８０）、イメージセンサ５０の撮影画像を用いて、針棒１０に対応する制限領域５６から所定距離内に障害物が近づいていないか否かを監視する（Ｓ２５０）。ＣＰＵ１０１は、制限領域５６から保持体６０の移動方向と反対方向の所定距離内で障害物を識別した場合、保持体６０の移動方向を変更して、障害物が制限領域５６に重ならないように保持体６０を移動する。
【０１０２】
故に、作業者が縫製対象物に応じた補助押え部材を保持体６０に装着する場合、作業者は障害物となる該補助押え部材の特徴部分（本実施形態では色）を予め特徴部分として設定すればよい。ミシン１は、撮影画像に基づき、該補助押え部材に応じて適切に保持体６０の移動を制御することができる。即ち、ミシン１は縫製データに従った移動経路に沿って障害物を回避するのではなく、イメージセンサ５０の撮影画像に基づき、障害物を回避することができる。更に、ミシン１は、保持体６０が絶対原点位置に到達する前でも、障害物が針棒１０に装着した縫針１１と干渉することを回避することができる。ミシンは非接触で障害物を識別できるので、接触式のセンサを用いるミシンに比べ、使用に伴って障害物の検出精度が低下するのを防止できる。上記の通り、ミシン１は保持体６０に装着した障害物に応じて、障害物が縫針１１と干渉することを確実に回避することができる。
【０１０３】
ＣＰＵ１０１は、制限領域５６の周囲に予め設定した減速領域５７から保持体６０の移動方向と反対方向の所定距離内で障害物を識別した場合、減速フラグを１に変更することで、保持体６０の移動速度を減速する。即ち、ＣＰＵ１０１は、減速後に保持体６０が制限領域５６に重ならないように、保持体６０の移動を制御できる。故に、ミシン１は、障害物が針棒１０に装着した縫針に干渉することを更に確実に回避することができる。
【０１０４】
本実施形態では、移送装置６は、本発明の「移動機構」に相当する。イメージセンサ５０は、「撮影手段」に相当する。図９のＳ２５０の画像監視処理を行うＣＰＵ１０１は、「識別手段」に相当する。所定領域５３（図４参照）は、「第一領域」に相当する。制限領域５６、減速領域５７（図６参照）は、夫々、「第二領域」、「第三領域」に相当する。図９のＳ３５０の移動方向変更処理、Ｓ３１０の移動処理、Ｓ４０１〜Ｓ４０３の処理を行うＣＰＵ１０１は、「移動制御手段」に相当する。Ｓ４０５のエラー報知の処理を行うＣＰＵ１０１は、「報知手段」に相当する。図１１のＳ２５２で移動速度に応じてオフセット量を設定する処理を行うＣＰＵ１０１は、「距離設定手段」に相当する。
【０１０５】
本発明は、前述の実施形態の他に種々の変更が可能である。例えば、領域マップ（図８参照）は予め設定して不揮発性メモリ１０４等に記憶してあってもよい。該場合、ＣＰＵ１０１は、図７の縫製処理のＳ２では、記憶した領域マップをＲＡＭ１０３に読み出す処理を行う。制限領域の周囲の減速領域はなくてもよい。即ち、領域マップは、制限領域のみを示してもよい。針棒１０に対応する制限領域が針棒１０の直径に比較して十分大きければ、制限領域に対するオフセット量は設けなくてもよい。制限領域と減速領域を設ける場合、制限領域と減速領域のオフセット量は、互いに異なってもよい。
【０１０６】
ＣＰＵ１０１は、移動方向変更処理（図１３参照）のＳ３７２で境界線の傾き（境界線の延びる方向）を考慮せず、移動方向を優先方向に変更すると決定してもよい。ＣＰＵ１０１は、Ｓ３７３で境界線の傾きを考慮せず、移動方向の反対方向を優先方向に変更すると決定してもよい。反対に、ＣＰＵ１０１は、優先方向を考慮せず、境界線の延びる方向のみに応じて移動方向を変更してもよい。
【０１０７】
保持体６０が可動域端に到達した場合に移動方向を反対方向に変更する処理（図９のＳ４０１〜Ｓ４０３、図１３のＳ３７１、Ｓ３７３）、移動方向を反対方向に変更した後、保持体６０が可動域端に到達した場合にエラー発生を報知する処理（図９のＳ４０５）は、省略可能である。ＣＰＵ１０１は、エラー発生を報知するメッセージを、ＬＣＤ３２ではなく操作パネル８のディスプレイに表示してもよい。ＣＰＵ１０１は、メッセージ表示でなく、ブザーによる警告音発信やランプの発光でエラー発生を報知してもよい。
【０１０８】
画像監視処理（図１１参照）で領域マップ中の走査開始位置は、必ずしも１行目１列目の位置でなくてもよい。例えば、ＣＰＵ１０１は、制限領域内の任意の位置（データが１を示す位置）を特定し、該位置を中心として順に周囲を走査してもよい。ＣＰＵ１０１は、作業者が指示した位置から走査を開始してもよい。
【０１０９】
撮影範囲（所定領域５３）、撮影画像の大きさはイメージセンサ５０の種類等に応じて異なるので、イメージセンサ５０の撮影画像のサイズ、対応する領域マップのサイズは実施形態の例に限らない。その他に実施形態で挙げた数値も単なる例示であり、適宜変更が可能なことは勿論である。
【符号の説明】
【０１１０】
１  ミシン
６  移送装置
１０  針棒
１１  縫針
５０  イメージセンサ
６０  保持体
１０１  ＣＰＵ
【図１】
2013202210.tif 000003
【図２】
2013202210.tif 000004
【図３】
2013202210.tif 000005
【図４】
2013202210.tif 000006
【図５】
2013202210.tif 000007
【図６】
2013202210.tif 000008
【図７】
2013202210.tif 000009
【図８】
2013202210.tif 000010
【図９】
2013202210.tif 000011
【図１０】
2013202210.tif 000012
【図１１】
2013202210.tif 000013
【図１２】
2013202210.tif 000014
【図１３】
2013202210.tif 000015
【図１４】
2013202210.tif 000016