(57)【特許請求の範囲】
【請求項１】
位置検出装置が搭載された被搭載物の移動面における位置を検出する位置検出装置であって、
前記移動面における移動量を検出するＮ個（Ｎ＞２）の移動量検出手段と、
前記移動量検出手段の出力に基づいて選択されたｎ個（２≦ｎ＜Ｎ）の前記移動量検出手段が検出した移動量を用いて前記位置を算出する第一の位置算出手段と、
前記移動量検出手段が検出した前記移動量を用いて、１つの前記移動量検出手段について前記移動量検出手段の複数の検出手段位置を算出する第二の位置算出手段と、
１つの前記移動量検出手段の前記複数の検出手段位置を比較した結果に基づいて、ｎ個の前記移動量検出手段を選択する選択手段と、を有し、
前記第一の位置算出手段は、前記選択手段が選択したｎ個のうち任意の２つの前記移動量検出手段が検出した前記移動量を用いて前記位置を算出する位置検出装置。
【請求項２】
前記移動量検出手段は前記移動量の信頼度情報を出力し、
前記信頼度情報が閾値未満の前記移動量を検出した前記移動量検出手段の前記移動量を、前記第一の位置算出手段が前記位置を算出する対象から除外する除外手段を有する請求項１に記載の位置検出装置。
【請求項３】
前記第二の位置算出手段は１つの前記検出手段位置を、２つの前記移動量検出手段が検出した前記移動量を用いて算出するものであり、１つの前記検出手段位置を異なる２つの前記移動量検出手段の組み合わせごとに算出し、
前記選択手段は、算出された前記検出手段位置及びＮ個の移動量検出手段の相対位置に基づいて前記移動量検出手段の前記検出手段位置を他の前記移動量検出手段の前記検出手段位置から推定し、
１つの前記移動量検出手段の前記複数の検出手段位置の中央値を、該移動量検出手段の前記検出手段位置に決定し、
前記第一の位置算出手段は、前記選択手段が決定した前記検出手段位置と選択したｎ個のうち任意の２つの前記移動量検出手段が検出した前記移動量を用いて前記位置を算出する請求項１に記載された位置検出装置。
【請求項４】
前記選択手段は、前記中央値に決定された前記検出手段位置の算出又は推定に使用された１組の前記移動量検出手段のカウント値を大きくし、
前記カウント値が多い順に上位ｎ個の前記移動量検出手段を選択する請求項３に記載の位置検出装置。
【請求項５】
前記第二の位置算出手段は１つの前記検出手段位置を、２つの前記移動量検出手段が検出した前記移動量を用いて算出するものであり、１つの前記検出手段位置を異なる２つの前記移動量検出手段の組み合わせごとに算出し、
前記選択手段は、算出された前記検出手段位置及びＮ個の移動量検出手段の相対位置に基づいて前記移動量検出手段の前記検出手段位置を他の前記移動量検出手段の前記検出手段位置から推定し、
１つの前記移動量検出手段の前記複数の検出手段位置の最大値と最小値を除外し、残りの前記検出手段位置の平均値を該移動量検出手段の前記検出手段位置に決定し、
前記第一の位置算出手段は、前記選択手段が決定した前記検出手段位置と選択したｎ個のうち任意の２つの前記移動量検出手段が検出した前記移動量を用いて前記位置を算出する請求項１に記載された位置検出装置。
【請求項６】
前記選択手段は、前記平均値の算出に使用された前記検出手段位置の算出又は推定に使用された１組の前記移動量検出手段のカウント値を大きくし、
前記カウント値が多い順に上位ｎ個の前記移動量検出手段を選択する請求項５に記載の位置検出装置。
【請求項７】
前記選択手段が選択したｎ個の前記移動量検出手段の少なくとも１つの前記検出手段位置と、Ｎ個の前記移動量検出手段の相対位置に基づき、前記選択手段が選択しなかった前記移動量検出手段の位置を補正する補正手段を有する請求項１〜６のいずれか１項に記載の位置検出装置。
【請求項８】
前記補正手段は、１つの前記移動量検出手段について算出された複数の検出手段位置に異常値が含まれる場合、前記選択手段が選択しなかった前記移動量検出手段の位置を補正しない請求項７に記載の位置検出装置。
【請求項９】
請求項１〜８のいずれか１項に記載の位置検出装置と、
前記被搭載物の位置に応じて該位置の画像を形成するための液滴を吐出する液滴吐出手段と、
を有する液滴吐出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、位置検出装置及び液滴吐出装置に関する。
【背景技術】
【０００２】
用紙を搬送させて用紙が画像の形成位置に到達したタイミングでインクなどを吐出して画像を形成するプリンタが知られている。これに対し、ノートＰＣの小型化、スマートフォンなどのスマートデバイスの普及などにより、プリンタ装置においても小型化・携帯化のニーズが高まっている。そこで、プリンタ装置から紙搬送システムを削除することで小型化されたプリンタ（以下、ＨＭＰ：ハンディモバイルプリンタという）が実用化されつつある。ＨＭＰには、紙搬送システムが搭載されていないので、人の手で紙面上を移動させられることで紙面上を走査しインクを吐出する。
【０００３】
ＨＭＰは紙面上における自分の位置を検出して位置に応じた画像を形成するためのインクを吐出する。この位置を検出するための機構として、従来、底面に２つのナビゲーションセンサが配置されているＨＭＰが知られている（例えば、特許文献１参照。）。ナビゲーションセンサは光学的に紙面の微小なエッジを検出してサイクル時間ごとの移動量を検出するセンサである。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のＨＭＰは２つのナビゲーションセンサのうち１つでも出力に異常があると正確な位置を検出できないという問題があった。例えば、ナビゲーションセンサが印刷媒体からはみ出してしまった場合又は印刷媒体から浮いてしまった場合、ナビゲーションセンサが出力する移動量が正確でなくなる。ＨＭＰは移動量が異常であることを検出し、印刷品質の低下を防ぐために印刷を停止する場合もあり、画像データの全体を印刷できないというユーザにとって好ましくない状況をもたらす場合がある。
【０００５】
本発明は、上記課題に鑑み、少なくとも１つのナビゲーションセンサの出力に異常があっても位置を検出できる位置検出装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、位置検出装置が搭載された被搭載物の移動面における位置を検出する位置検出装置であって、前記移動面における移動量を検出するＮ個（Ｎ＞２）の移動量検出手段と、前記移動量検出手段の出力に基づいて選択されたｎ個（２≦ｎ＜Ｎ）の前記移動量検出手段が検出した移動量を用いて前記位置を算出する第一の位置算出手段と、前記移動量検出手段が検出した前記移動量を用いて、１つの前記移動量検出手段について前記移動量検出手段の複数の検出手段位置を算出する第二の位置算出手段と、１つの前記移動量検出手段の前記複数の検出手段位置を比較した結果に基づいて、ｎ個の前記移動量検出手段を選択する選択手段と、を有し、前記第一の位置算出手段は、前記選択手段が選択したｎ個のうち任意の２つの前記移動量検出手段が検出した前記移動量を用いて前記位置を算出する。
【発明の効果】
【０００７】
少なくとも１つのナビゲーションセンサの出力に異常があっても位置を検出できる位置検出装置を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】ハンディモバイルプリンタが有するナビゲーションセンサを示す図の一例である。
【図２】ＨＭＰによる画像形成を模式的に示す図の一例である。
【図３】ＨＭＰのハードウェア構成図の一例である。
【図４】制御部の構成を説明する図の一例である。
【図５】画像読取部の構成図の一例である。
【図６】ナビゲーションセンサのハードウェア構成の構成例を示す図である。
【図７】ナビゲーションセンサによる移動量の検出方法を説明する図の一例である。
【図８】ＩＪ記録ヘッド駆動回路の構成図の一例である。
【図９】ＩＪ記録ヘッドにおけるノズル位置等について説明する図の一例である。
【図１０】ＨＭＰの座標系と位置の算出方法を説明する図の一例である。
【図１１】画像形成中に生じるＨＭＰの回転角の変化量ｄθの求め方を説明する図の一例である。
【図１２】ノズルの位置の算出を説明する図の一例である。
【図１３】ＨＭＰにおけるナビゲーションセンサの配置例を示す図である。
【図１４】ＨＭＰ２０の機能ブロック図の一例である。
【図１５】画像データ出力器とＨＭＰの動作手順を説明するフローチャート図の一例である。
【図１６】ナビゲーションセンサＳ２とＳ３の位置と回転角θにより算出されたナビゲーションセンサＳ０の位置を示す図の一例である。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための形態について図面を参照しながら説明する。
【００１０】
＜ナビゲーションセンサの数について＞
図１は、本実施形態のハンディモバイルプリンタが有するナビゲーションセンサを示す図の一例である。図のハンディモバイルプリンタ（以下、ＨＭＰという）は４つのナビゲーションセンサＳ０〜Ｓ３を有している。なお、ナビゲーションセンサの数や配置は一例に過ぎない。ナビゲーションセンサＳ０〜Ｓ３はサンプリング周期ごとの移動量を出力するセンサである。ナビゲーションセンサが１つあれば移動量を検知できるが、ＨＭＰの姿勢を検出するためには少なくとも２つのナビゲーションセンサのそれぞれの出力（移動量）が必要である。ＨＭＰは移動量と姿勢から印刷媒体１２における位置を検出する。
【００１１】
図１（ａ）では４つのナビゲーションセンサＳ０〜Ｓ３が印刷媒体１２上を走査している。この場合、ＨＭＰは任意の２つのナビゲーションセンサ（例えば、Ｓ０とＳ１、Ｓ２とＳ３）の出力を使用して位置を検出すればよい。これに対し図１（ｂ）では、２つのナビゲーションセンサＳ２，Ｓ３が紙面からはみ出している。この場合、ＨＭＰ２０は印刷媒体１２からナビゲーションセンサＳ２，Ｓ３がはみ出したことを検出して、ナビゲーションセンサＳ０，Ｓ１の移動量と姿勢から印刷媒体における位置を検出する。
【００１２】
図１（ｂ）では印刷媒体１２からナビゲーションセンサＳ２，Ｓ３がはみ出したことが明らかだが、ＨＭＰがはみ出したナビゲーションセンサＳ２，Ｓ３を特定することが困難な場合も少なくない。そこで、ＨＭＰは１つのナビゲーションセンサＳ０〜Ｓ３について複数の位置を算出し、信頼性の高い位置がナビゲーションセンサＳ０〜Ｓ３の位置であると決定する。こうすることで、ＨＭＰがはみ出したナビゲーションセンサを特定できない場合でも、信頼性が高いナビゲーションセンサとその位置を決定して印刷を継続できる。
【００１３】
したがって、ナビゲーションセンサが３つ以上（Ｎ個（Ｎ＞２））あることで、２つ以上のナビゲーションセンサが印刷媒体上にある限り（１つ以上のナビゲーションセンサが印刷媒体１２からはみ出しても）、印刷品質の低下を抑制してＨＭＰは印刷を継続できる。
【００１４】
＜用語について＞
被搭載物とは、位置検出装置が搭載された物をいう。移動面において位置が検出されうる物としてもよい。例えば、ＨＭＰ２０が被搭載物の一例である。また、位置検出装置は移動した距離を検出することができるため距離測定器も被搭載物の一例となりうる。
【００１５】
移動面は、ＨＭＰ２０が移動できる面であればよく、平面の他、曲面も含まれる。具体的には印刷媒体１２が挙げられるがこれには限られない。
【００１６】
移動量検出手段（ナビゲーションセンサ）の出力とは、移動量検出手段又は移動量の信頼性を評価できる情報である。本実施形態では後述するセンサ信頼度情報や、移動量から算出された１つのナビゲーションセンサの複数の位置を例にして説明する。
【００１７】
位置を算出するとは、何らかのデータに演算を施すことにより位置に関する情報を得ることであり、位置を検出するとは、プロセスを問わずに位置に関する情報を得ることをいう。ただし、両者は位置に関する情報が得られる点で同じであり本実施形態では位置の算出と位置の検出を厳密には区別しない。
【００１８】
また、本実施形態において、画像形成、記録、印字、印写、印刷、造形等はいずれも同義語とする。
【００１９】
＜ＨＭＰ２０による画像形成＞
図２は、ＨＭＰ２０による画像形成を模式的に示す図の一例である。ＨＭＰ２０には、例えばスマートフォンやＰＣ（Personal Computer）等の画像データ出力器１１から画像データが送信される。ユーザはＨＭＰ２０を把持して、印刷媒体１２（例えば定形用紙やノートなど）から浮き上がらないようにフリーハンドで走査させる。
【００２０】
ＨＭＰ２０は後述するようにナビゲーションセンサＳ０〜Ｓ３のいずれか２つで位置を検出し、ＨＭＰ２０が目標吐出位置に移動すると、目標吐出位置で吐出すべき色のインクを吐出する。すでにインクを吐出した場所はマスクされるので（インクの吐出の対象とならないので）、ユーザは印刷媒体１２上で任意の方向にＨＭＰ２０を走査させることで画像を形成できる。
【００２１】
印刷媒体１２からＨＭＰ２０が浮き上がらないことが好ましいのは、ナビゲーションセンサＳ０〜Ｓ３が印刷媒体１２からの反射光を利用して移動量を検出するためである。印刷媒体１２からＨＭＰ２０が浮き上がると反射光を検出できなくなり移動量を検出できない。また、印刷媒体１２からナビゲーションセンサＳ０〜Ｓ３がはみ出した場合も、印刷媒体１２の厚みにより反射光を検出できなくなったり、検出できても位置がずれる場合がある。
【００２２】
このため、本実施形態では少なくとも２つのナビゲーションセンサ（Ｓ０〜Ｓ３のうち２つ）が印刷媒体１２上で走査されることが好ましい。
【００２３】
＜構成例＞
図３は、ＨＭＰ２０のハードウェア構成図の一例を示す。ＨＭＰ２０は、印刷媒体１２に画像を形成する画像形成装置の一例である。ＨＭＰ２０は、制御部２５によって全体の動作が制御され、制御部２５には通信Ｉ/Ｆ２７、ＩＪ記録ヘッド駆動回路２３、ＯＰＵ２６、ＲＯＭ２８、ＤＲＡＭ２９、及び、４つのナビゲーションセンサ３０（区別する場合はＳ０〜Ｓ３）が電気的に接続されている。また、ＨＭＰ２０は電力により駆動されるため、電源２２と電源回路２１を有している。電源回路２１が生成する電力は、点線２２ａで示す配線などにより、通信Ｉ/Ｆ２７、ＩＪ記録ヘッド駆動回路２３、ＯＰＵ２６、ＲＯＭ２８、ＤＲＡＭ２９、ＩＪ記録ヘッド２４、制御部２５、及び、４つのナビゲーションセンサ３０に供給されている。なお、ナビゲーションセンサ３０の数は３つ以上であればよい。
【００２４】
電源２２は主に電池（バッテリー）が利用される。太陽電池や商用電源（交流電源）、燃料電池等が用いられてもよい。電源回路２１は、電源２２が供給する電力をＨＭＰ２０の各部に分配する。また、電源２２の電圧を各部に適した電圧に降圧や昇圧する。また、電源２２が電池で充電可能である場合、電源回路２１は交流電源の接続を検出して電池の充電回路に接続し、電源２２を充電する。
【００２５】
通信Ｉ/Ｆ２７は、スマートフォンやＰＣ（Personal Computer）等の画像データ出力器１１から画像データの受信等を行う。通信Ｉ/Ｆ２７は例えば無線ＬＡＮ、Bluetooth（登録商標）、ＮＦＣ（Near Field Communication）、赤外線、３Ｇ（携帯電話）、又は、ＬＴＥ（Long Term Evolution）等の通信規格に対応した通信装置である。また、このような無線通信の他、有線ＬＡＮ、ＵＳＢケーブルなどを用いた有線通信に対応した通信装置であってもよい。
【００２６】
ＲＯＭ２８は、ＨＭＰ２０のハードウェア制御を行うファームウェアや、ＩＪ記録ヘッド２４の駆動波形データ（液滴を吐出するための電圧変化を規定するデータ）や、ＨＭＰ２０の初期設定データ等を格納している。
【００２７】
ＤＲＡＭ２９は通信Ｉ/Ｆ２７が受信した画像データを記憶したり、ＲＯＭ２８から展開されたファームウェアの格納のために使用される。したがって、ＣＰＵ３３がファームウェアを実行する際のワークメモリとして使用される。
【００２８】
ナビゲーションセンサ３０は、所定のサイクル時間ごとにＨＭＰ２０の移動量を検出するセンサである。なお、４つのナビゲーションセンサ３０の機能は同じであるが、違いがあるとしても本実施形態の説明の上で支障がないものとする。ナビゲーションセンサ３０は、例えば、発光ダイオード（ＬＥＤ）やレーザ等の光源と、印刷媒体１２を撮像する撮像センサを有している。ＨＭＰ２０が印刷媒体１２上を走査されると、印刷媒体１２の微小なエッジが次々に検出され（撮像され）エッジ間の距離を解析することで移動量が得られる。本実施形態では、ナビゲーションセンサ３０は、ＨＭＰ２０の底面に４つ搭載されている。なお、ナビゲーションセンサ３０として、さらに多軸の加速度センサを用いてもよく、ＨＭＰ２０は加速度センサのみでＨＭＰ２０の位置を検出してもよい。また、印刷媒体に垂直に軸に対する回転角を検出するためにジャイロセンサを有していてもよい。
【００２９】
ＯＰＵ（Operation panel Unit）２６は、ＨＭＰ２０の状態を表示するＬＥＤ、ユーザがＨＭＰ２０に画像形成を指示するためのスイッチ等を有している。ただし、これに限定するものではなく、液晶ディスプレイを有していてよく、さらにタッチパネルを有していてもよい。また、音声入力機能を有していてもよい。
【００３０】
ＩＪ記録ヘッド駆動回路２３は上記の駆動波形データを用いて、ＩＪ記録ヘッド２４を駆動するための駆動波形（電圧）を生成する。インクの液滴のサイズなどに応じた駆動波形を生成できる。
【００３１】
ＩＪ記録ヘッド２４は、インクを吐出するためのヘッドである。図ではＣＭＹＫの４色のインクを吐出可能になっているが、単色でもよく５色以上の吐出が可能でもよい。各色ごとに一列（二列以上でもよい）に並んだ複数のインク吐出用のノズル６１が配置されている。また、インクの吐出方式はピエゾ方式でもサーマル方式でもよく、静電方式などの他の方式でもよい。
【００３２】
ＩＪ記録ヘッド２４は、ノズル６１から液体を吐出・噴射する機能部品である。吐出される液体は、ＩＪ記録ヘッド２４から吐出可能な粘度や表面張力を有するものであればよく、特に限定されないが、常温、常圧下において、又は加熱、冷却により粘度が３０ｍＰａ・ｓ以下となるものであることが好ましい。より具体的には、水や有機溶媒等の溶媒、染料や顔料等の着色剤、重合性化合物、樹脂、界面活性剤等の機能性付与材料、ＤＮＡ、アミノ酸やたんぱく質、カルシウム等の生体適合材料、天然色素等の可食材料、などを含む溶液、懸濁液、エマルジョンなどであり、これらは例えば、インクジェット用インク、表面処理液、電子素子や発光素子の構成要素や電子回路レジストパターンの形成用液、３次元造形用材料液等の用途で用いることができる。
【００３３】
制御部２５はＣＰＵ３３を有しＨＭＰ２０の全体を制御する。制御部２５は、ナビゲーションセンサ３０により検出される移動量及び回転角を元に、ＩＪ記録ヘッド２４の各ノズルの位置、該位置に応じて形成する画像の決定、後述する吐出ノズル可否判定等を行う。制御部２５について詳細は次述する。
【００３４】
図４は、制御部２５の構成を説明する図の一例である。制御部２５はＳｏＣ５０とＡＳＩＣ/ＦＰＧＡ４０を有している。ＳｏＣ５０とＡＳＩＣ/ＦＰＧＡ４０はバス４６，４７を介して通信する。ＡＳＩＣ/ＦＰＧＡ４０はどちらの実装技術で設計されてもよいことを意味し、ＡＳＩＣ/ＦＰＧＡ４０以外の他の実装技術で構成されてよい。また、ＳｏＣ５０とＡＳＩＣ/ＦＰＧＡ４０を別のチップにすることなく１つのチップや基板で構成してもよい。あるいは、３つ以上のチップや基板で実装してもよい。
【００３５】
ＳｏＣ５０は、バス４７を介して接続されたＣＰＵ３３、位置算出回路３４、メモリＣＴＬ（コントローラ）３５、及び、ＲＯＭ ＣＴＬ（コントローラ）３６等の機能を有している。なお、ＳｏＣ５０が有する構成要素はこれらに限られない。
【００３６】
また、ＡＳＩＣ/ＦＰＧＡ４０は、バス４６を介して接続された、画像読取部３８、割込みコントローラ４１、ナビゲーションセンサＩ/Ｆ４２、印字/センサタイミング生成部４３、及び、ＩＪ記録ヘッド制御部４４を有している。なお、ＡＳＩＣ/ＦＰＧＡ４０が有する構成要素はこれらに限られない。
【００３７】
ＣＰＵ３３は、ＲＯＭ２８からＤＲＡＭ２９に展開されたファームウェア（プログラム）などを実行し、ＳｏＣ５０内の位置算出回路３４、メモリＣＴＬ３５、及び、ＲＯＭ ＣＴＬ３６の動作を制御する。また、ＡＳＩＣ/ＦＰＧＡ４０内の画像読取部３８、割込みコントローラ４１、ナビゲーションセンサＩ/Ｆ４２、印字/センサタイミング生成部４３、及び、ＩＪ記録ヘッド制御部４４等の動作を制御する。
【００３８】
位置算出回路３４は、ＨＭＰ２０の位置（座標情報）を算出する。具体的には、位置算出回路３４は、４つのナビゲーションセンサＳ０〜Ｓ３のうち少なくとも１つの移動量を使用し、４つのナビゲーションセンサＳ０〜Ｓ３のうち２つの移動量に基づく姿勢（回転角）に基づいてＨＭＰ２０の位置を算出する。ＨＭＰ２０の位置とは、厳密にはノズル６１の位置であるが、ナビゲーションセンサ３０の位置が分かればＨＭＰ２０はノズル６１の位置を算出できる。また、位置算出回路３４は目標吐出位置を算出する。位置算出回路３４をＣＰＵ３３がソフト的に実現してもよい。
【００３９】
ナビゲーションセンサ３０の位置は、後述するように例えば所定の原点（画像形成が開始される時のＨＭＰ２０の初期位置）を基準に算出されている。また、位置算出回路３４は、過去の位置と最も新しい位置の差に基づいて加速度や移動方向を推定し、例えば次回のインクの吐出タイミングにおける位置を予測する。こうすることで、ユーザの走査に対する遅れを抑制してインクを吐出できる。
【００４０】
メモリＣＴＬ３５は、ＤＲＡＭ２９とのインタフェースであり、ＤＲＡＭ２９に対しデータを要求し、取得したファームウェアをＣＰＵ３３に送出したり、取得した画像データをＡＳＩＣ/ＦＰＧＡ４０に送出する。
【００４１】
ＲＯＭ ＣＴＬ３６は、ＲＯＭ２８とのインタフェースであり、ＲＯＭ２８に対しデータを要求し、取得したデータをＣＰＵ３３やＡＳＩＣ/ＦＰＧＡ４０に送出する。
【００４２】
位置算出回路３４が算出したナビゲーションセンサ３０の位置をＣＰＵが画像読取部３８に入力する。画像読取部３８は、ナビゲーションセンサ３０とノズル６１の相対位置に基づき各ノズルの位置を算出する。そして、ノズルの位置に応じた画像データをＤＲＡＭから読み出し、ＩＪ記録ヘッド２４が要求する並び順で画像データを並べて送信する。
【００４３】
印字/センサタイミング生成部４３は、ナビゲーションセンサＩ/Ｆ４２が情報を読み取るタイミングをナビゲーションセンサＩ／Ｆに通知し、ＩＪ記録ヘッド制御部４４に駆動タイミングを通知する。情報を読み取るタイミングの周期はインクの吐出タイミングの周期よりも長い。
【００４４】
ＩＪ記録ヘッド制御部４４は、印字/センサタイミング生成部４３が通知したタイミングで画像データに基づいてインクを吐出する。ＩＪ記録ヘッド駆動回路２３は上記のように制御信号に対応した駆動波形データを用いて、駆動波形（電圧）を生成する。なお、ＩＪ記録ヘッド制御部４４は吐出ノズル可否判定を行い、インクを吐出すべき目標吐出位置があればインクを吐出し、目標吐出位置がなければ吐出しないと判定する。
【００４５】
ナビゲーションセンサＩ/Ｆ４２は、ナビゲーションセンサ３０と通信し、ナビゲーションセンサ３０からの情報として移動量ΔＸ´、ΔＹ´（これらについては後述する）を受信し、その値をレジスタに格納する。ナビゲーションセンサ３０からの情報は、その他、反射光の読み取りが良好かどうかなどを示すステータス通知機能（後述するセンサ信頼度情報が含まれる）も有する。
【００４６】
割込みコントローラ４１は、ナビゲーションセンサＩ/Ｆ４２がナビゲーションセンサ３０との通信が完了したことを検知して、ＳｏＣ５０へそれを通知するための割込み信号を出力する。ＣＰＵ３３はこの割込みにより、ナビゲーションセンサＩ/Ｆ４２がレジスタに記憶するΔＸ´、ΔＹ´を取得する。
【００４７】
図５は、画像読取部３８の構成図の一例を示す。画像読取部３８は、ＣＰＵ Ｉ／Ｆ３８１、ノズル位置生成部３８２、アドレス生成部３８３、出力Ｉ／Ｆ３８４、データ蓄積部３８５、及び、テーブル管理部３８６を有する。ＣＰＵ Ｉ／Ｆ３８１はＣＰＵ３３とのインタフェースとなる回路である。ＣＰＵ Ｉ／Ｆ３８１はＣＰＵ３３から幅方向の画像の解像度、縦方向の画像の解像度など各種設定を受け付ける。また、ＩＪ記録ヘッド制御部４４から吐出タイミングを取得して、吐出タイミングにおけるナビゲーションセンサ３０の位置をＣＰＵ３３から受け付ける。
【００４８】
ノズル位置生成部３８２は、ナビゲーションセンサ３０の位置から各ノズルの位置を生成する。ナビゲーションセンサ３０の位置を１回受け取る毎に、ノズル数分の位置を生成して、アドレス生成部３８３に出力する。また、ノズル位置生成部３８２は、印刷モードや吐出ノズル数制限などに対応して、各ノズルの有効/無効フラグを出力する。
【００４９】
アドレス生成部３８３は、ノズル位置生成部３８２により得られた各ノズルの位置を元に、そのデータが格納されているメモリアドレスを生成する。
【００５０】
データ蓄積部３８５はメモリＣＴＬ３５から取得した画像データを蓄積する。また、ＤＲＡＭ２９に書き込むデータを一時的に蓄積する。
【００５１】
テーブル管理部３８６は、アドレス生成部３８３により生成されたアドレスとデータ蓄積部３８５に蓄積されたデータとの対応付けを行う。テーブル管理部３８６は、アドレス生成部３８３により生成されたアドレスに対応付けられているデータをアドレス生成部３８３に出力する。
【００５２】
出力Ｉ／Ｆ３８４は、テーブル管理部３８６から取得した画像データをＩＪ記録ヘッド制御部４４の要求する形式に変換する。また、画像データをバッファリングし、要求に応じてＩＪ記録ヘッド制御部４４に画像データを出力する。
【００５３】
＜ナビゲーションセンサについて＞
図６は、ナビゲーションセンサのハードウェア構成の構成例を示す図である。ナビゲーションセンサＳ０〜Ｓ３は同じ構造である。ナビゲーションセンサ３０は、ホストＩ/Ｆ３０１、イメージプロセッサ３０２、ＬＥＤドライバ３０３、２つのレンズ３０４、３０６及び、イメージアレイ３０５を有する。ＬＥＤドライバ３０３は、ＬＥＤと制御回路が一体となっておりイメージプロセッサ３０２からの命令によりＬＥＤ光を照射する。イメージアレイ３０５は、印刷媒体１２からのＬＥＤ光の反射光をレンズ３０４を介して受光する。２つのレンズ３０４，３０６は、印刷媒体１２の表面に対して光学的に焦点が合うように設置されている。
【００５４】
イメージアレイ３０５は、ＬＥＤ光の波長に感度を有するフォトダイオードなどを有し、受光したＬＥＤ光からイメージデータを生成する。イメージプロセッサ３０２はイメージデータを取得して、イメージデータからナビゲーションセンサの移動距離（上記のΔＸ´、ΔＹ´）を算出する。イメージプロセッサ３０２は、算出した移動距離を、ホストＩ/Ｆ３０１を介して制御部２５へ出力する。
【００５５】
光源として使用される発光ダイオード(ＬＥＤ)は、表面が粗い印刷媒体１２、例えば紙を使用する場合に有用である。これは、表面が粗い場合、影が発生するため、その影を特徴部分として、Ｘ軸方向及びＹ軸方向の移動距離を正確に算出することが可能になるからである。一方、表面が滑らか、あるいは透明な印刷媒体１２に対しては、光源としてレーザ光を発生させる半導体レーザ(ＬＤ)を使用することができる。半導体レーザで、印刷媒体１２上に例えば縞模様等を形成することで特徴部分を作ることができ、それを基に正確に移動距離を算出することができるからである。
【００５６】
次に、図７を用いて、ナビゲーションセンサ３０の動作について説明する。図７はナビゲーションセンサ３０による移動量の検出方法を説明する図である。ＬＥＤドライバ３０３が照射した光は、レンズ３０６を介して印刷媒体１２の表面に照射される。印刷媒体１２の表面は、図７（ａ）に示すように様々な形状の微小な凹凸を有している。このため、様々な形の影が発生する。
【００５７】
イメージプロセッサ３０２は、予め決められたサンプリングタイミング毎に、レンズ３０４及びイメージアレイ３０５を介して反射光を受光し、イメージデータ３１０を取得する。図７（ｂ）に示すように生成したイメージデータ３１０を、イメージプロセッサ３０２は規定の分解能単位でマトリクス化する。すなわち、イメージデータ３１０を複数の矩形領域に分割する。そして、イメージプロセッサ３０２は、前回のサンプリングタイミングで得られたイメージデータ３１０と、今回のサンプリングタイミングで得られたイメージデータ３１０とを比較してイメージデータ３１０が移動した矩形領域の数を検出し、それを移動距離として算出する。図７（ｂ）で図示するΔＸ方向にＨＭＰ２０が移動したとする。ｔ＝０とｔ＝１のイメージデータ３１０を比較すると、右端にある形状が中央の形状と一致する。したがって、形状は−Ｘ方向に移動しているので、ＨＭＰ２０がＸ方向に一マス分移動したことが分かる。時刻ｔ＝１とｔ＝２についても同様である。
【００５８】
＜ＩＪ記録ヘッド駆動回路＞
図８は、ＩＪ記録ヘッド駆動回路２３の構成図の一例である。まず、ＩＪ記録ヘッド２４は、複数のノズル６１を備え、各ノズル６１にはアクチュエータが設けられている。アクチュエータは、サーマル方式、ピエゾ方式のいずれであってもよい。サーマル方式は、ノズル内のインクに熱を与えて膨張させ、この膨張によりノズル６１からインク滴を吐出させるものである。ピエゾ方式は、圧電素子によりノズル壁を押し、内部のインクを押し出すことによりインク滴を吐出させるものである。
【００５９】
ＩＪ記録ヘッド駆動回路２３は、アナログスイッチ２３１と、レベルシフタ２３２と、階調デコーダ２３３と、ラッチ２３４と、シフトレジスタ２３５とを備えている。ＩＪ記録ヘッド制御部４４は、ＩＪ記録ヘッド駆動回路２３に対し、ＩＪ記録ヘッド２４のノズル６１の数（アクチュエータの数も同じ）分のシリアルデータである画像データＳＤを、画像データ転送クロックSCKによってシフトレジスタ２３５に転送する。
【００６０】
転送が終了すると、ＩＪ記録ヘッド制御部４４は、画像データラッチ信号SLnによりノズル毎に設けられたラッチ２３４に各画像データＳＤを記憶させる。
【００６１】
ＩＪ記録ヘッド制御部４４は、画像データＳＤをラッチさせた後、アナログスイッチ２３１へ各階調値のインク滴を各ノズルから吐出させるためのヘッド駆動波形Vcomを出力する。このとき、ＩＪ記録ヘッド制御部４４は、階調デコーダ２３３に対してヘッド駆動マスクパターンＭＮを階調制御信号として与えるが、そのヘッド駆動マスクパターンＭＮを駆動波形のタイミングに合わせて選択するように遷移させる。
【００６２】
階調デコーダ２３３は、階調制御信号とラッチされた画像データとを論理演算し、レベルシフタ２３２は、論理演算した得られた論理レベル電圧信号を、アナログスイッチ２３１を駆動できる電圧レベルまで昇圧する。
【００６３】
アナログスイッチ２３１は、昇圧された電圧信号を受け付けON/OFFすることにより、ＩＪ記録ヘッドのアクチュエータへ供給する駆動波形VoutNが各ノズルで異なる波形となる。ＩＪ記録ヘッド２４は、この駆動波形に基づきインク滴を吐出させ、印刷媒体１２上に画像を形成する。
【００６４】
なお、図８の構成及びその説明は、インクジェット方式のプリンタで一般に採用されている構成である。インク滴を吐出できれば、図８の構成に限られずＨＭＰ２０に搭載されてよい。
【００６５】
＜ＩＪ記録ヘッドにおけるノズル位置について＞
次に、図９を用いて、ＩＪ記録ヘッド２４におけるノズル位置等について説明する。図９（ａ）は、ＨＭＰ２０の平面図の一例である。図９（ｂ）はＩＪ記録ヘッド２４のみを説明する図の一例である。図示されている面が印刷媒体１２に対向する面である。
【００６６】
本実施形態のＨＭＰ２０は、２つのナビゲーションセンサＳ０を有している。２つのナビゲーションセンサＳ０，Ｓ１の間の長さは距離Ｌである。距離Ｌは長いほどよい。これは、距離Ｌが長いほど検出可能な最小の回転角θが小さくなり、ＨＭＰ２０の位置の誤差が少なくなるからである。
【００６７】
ナビゲーションセンサ３０からＩＪ記録ヘッド２４までの距離はそれぞれ距離ａ、ｂである。距離ａと、距離ｂは等しくてもよいし、ゼロでもよい（ＩＪ記録ヘッド２４に接している）。また、ナビゲーションセンサ３０が１つだけの場合、ナビゲーションセンサＳ０はＩＪ記録ヘッド２４の周囲の任意の場所に配置される。したがって、図示するナビゲーションセンサＳ０、Ｓ１の位置は一例である。ただし、ＩＪ記録ヘッド２４とナビゲーションセンサＳ０、Ｓ１の距離が短いことでＨＭＰ２０の底面のサイズを削減しやすくなる。
【００６８】
図９（ｂ）に示すように、ＩＪ記録ヘッド２４の端から最初のノズル６１までの距離は距離ｄ、隣接するノズル間の距離は距離ｅである。ａ〜ｅの値はＲＯＭ２８などに予め記憶されている。
【００６９】
位置算出回路３４などがナビゲーションセンサＳ０の位置を算出すれば、距離ａ（距離ｂ）、距離ｄ及び距離ｅを用いて、位置算出回路３４はノズル６１の位置を算出できる。
【００７０】
＜印刷媒体１２におけるＨＭＰ２０の位置について＞
図１０は、ＨＭＰ２０の座標系と位置の算出方法を説明する図の一例である。本実施形態では、印刷媒体１２に水平な方向をＸ軸、垂直な方向をＹ軸に設定する。原点は画像形成が開始された際のナビゲーションセンサＳ０の位置である。この座標を印刷媒体座標と称することにする。これに対し、ナビゲーションセンサＳ０は図１１の座標軸（Ｘ´軸、Ｙ´軸）で移動量を出力する。すなわち、ノズル６１の配列方向をＹ´軸、Ｙ´軸に直交する方向をＸ´軸として移動量を出力する。
【００７１】
図９（ａ）に示したように、印刷媒体１２に対しＨＭＰ２０が時計回りにθ回転している場合を例にして説明する。ユーザがＨＭＰ２０を印刷媒体座標に対し全く傾けることなく走査させることは困難でゼロでないθが生じると考えられる。全く回転していなければ、Ｘ＝Ｘ´、Ｙ＝Ｙ´である。しかし、ＨＭＰ２０が印刷媒体１２に対し回転角θ、回転した場合、ナビゲーションセンサＳ０の出力とＨＭＰ２０の印刷媒体１２における実際の位置が一致しなくなる。回転角θは時計回りが正、Ｘ、Ｘ´は右方向が正、Ｙ、Ｙ´は上方向が正である。
【００７２】
図１０（ａ）はＨＭＰ２０のＸ座標を説明する図の一例である。図１０（ａ）では回転角θのＨＭＰ２０がＸ方向にのみ同じ回転角θのまま移動した場合のナビゲーションセンサＳ０が検出する移動量ΔＸ´、ΔＹ´とＸ，Ｙの対応を示している。なお、２つのナビゲーションセンサＳ０、Ｓ１の相対位置は固定なので２つのナビゲーションセンサＳ０、Ｓ１の出力（移動量）は同じである。ナビゲーションセンサＳ０のＸ座標はＸ１＋Ｘ２であり、Ｘ１＋Ｘ２はΔＸ´、ΔＹ´及び回転角θから求められる。
【００７３】
図１０（ｂ）は回転角θのＨＭＰ２０がＹ方向にのみ同じ回転角θのまま移動した場合のナビゲーションセンサＳ０が検出する移動量ΔＸ´、ΔＹ´とＸ，Ｙの対応を示している。ナビゲーションセンサＳ０のＹ座標はＹ１＋Ｙ２であり、Ｙ１＋Ｙ２は−ΔＸ´、ΔＹ´及び回転角θから求められる。
【００７４】
したがって、ＨＭＰ２０がＸ方向及びＹ方向に回転角θのまま移動した場合、ナビゲーションセンサＳ０が出力するΔＸ´、ΔＹ´は印刷媒体座標のＸ，Ｙに以下のように変換できる。
Ｘ＝ΔＸ´cosθ＋ΔＹ´sinθ  …（１）
Ｙ＝−ΔＸ´sinθ＋ΔＹ´cosθ  …（２）
<<回転角θの検出>>
図１１を用いて、ナビゲーションセンサＳ０，Ｓ１が出力する移動量を用いた回転角θの算出方法を説明する。図１１は、画像形成中に生じるＨＭＰ２０の回転角の変化量ｄθの求め方を説明する図の一例である。回転角の変化量ｄθは２つのナビゲーションセンサＳ０，Ｓ１が検出する移動量ΔＸ´を用いて算出される（ΔＹ´を用いてもよい）。印刷媒体１２の上側のナビゲーションセンサＳ０が検出する移動量ΔＸ´0、ナビゲーションセンサＳ１が検出する移動量をΔＸ´1とする。なお、図１１ではすでに得られている回転角をθとしている。
【００７５】
ＨＭＰ２０が平行移動しながらｄθ回転した場合、移動量ΔＸ´0とΔＸ´1は一致しない。しかし、どちらの出力も２つのナビゲーションセンサＳ０，Ｓ１を結ぶ直線に垂直な方向の移動量なので、移動量ΔＸ´0とΔＸ´1の差は「ΔＸ´0−ΔＸ´1」として求めることができる。この差はＨＭＰ２０がｄθ回転したことにより生じた値である。また、「ΔＸ´0−ΔＸ´1」、Ｌ、及び、ｄθに図１１に示す関係があることから、ｄθは以下のように表すことができる。
ｄθ＝arcsin｛（ΔＸ´0−ΔＸ´1）/Ｌ｝  …（３）
位置算出回路３４がこのｄθを積算することで回転角θを求めることができる。式（１）（２）に示すように、回転角θを用いてＨＭＰ２０は位置を検出できる。また、式（３）から分かるように、より小さいｄθを検出するには距離Ｌを大きくすることが好ましい。
【００７６】
＜ノズルの位置＞
図１２（ａ）はノズルの位置の算出を説明する図の一例である。ナビゲーションセンサの位置が１つでも分かり回転角θが分かると、ノズル位置生成部３８２は各ノズル６１の位置を算出できる。図１２（ａ）のノズル６１−１を例にして説明する。なお、図１２（ａ）ではナビゲーションセンサＳ２、Ｓ３は省略されている。ナビゲーションセンサＳ０とＩＪ記録ヘッド２４の間隔がａ、ＩＪ記録ヘッド２４の端からノズル６１−１までの距離がｄである。また、印刷媒体１２に垂直な軸に対する回転角がθである。これらから、ノズル６１−１の座標（Ｘ，Ｙ）を求めることができる。
【００７７】
Ｘ＝Ｘ０-(a+d)×sinθ
Ｙ＝Ｙ０-(a+d)×cosθ
また、図１２（ｂ）は２つのナビゲーションセンサＳ０，Ｓ１を結ぶ直線上にないノズル６１の位置を説明する図である。本実施形態では４つのナビゲーションセンサＳ０〜Ｓ３がＨＭＰ２０に配置されているので、ノズル列Ｙ，Ｃは２つのナビゲーションセンサＳ０，Ｓ１又はＳ２，Ｓ３を結ぶ直線上にない場合がある。また、カラーの画像形成を行うＨＭＰ２０の場合、ノズル列Ｙ，Ｃによっては２つのナビゲーションセンサＳ０，Ｓ１又はＳ２，Ｓ３を結ぶ直線上にない場合がある。
【００７８】
ノズル列Ｙとノズル列Ｃの距離をｆとすると、図１２（ｂ）のノズル列Ｃのノズル６１−１ｃの座標は以下のように求めることができる。
【００７９】
Ｘ＝Ｘ０-(a+d)×sinθ+ f×cosθ
Ｙ＝Ｙ０-(a+d)×cosθ- f×sinθ
＜４つのナビゲーションセンサの配置例＞
図１３は、本実施形態のＨＭＰ２０におけるナビゲーションセンサＳ０〜Ｓ１の配置例を示す図である。ＨＭＰ２０はノズル位置の算出に必要な個数以上のナビゲーションセンサを備え、複数のナビゲーションセンサの内、任意の数のナビゲーションセンサからの出力を用いてノズル位置を算出する。
【００８０】
位置算出に必要なナビゲーションセンサの数は２つなので、ＨＭＰ２０は３つ以上のナビゲーションセンサを搭載している。ＨＭＰ２０はその中から信頼性が高いナビゲーションセンサを２つ採用し、この２つのナビゲーションセンサの移動量を用いて回転角θを算出する。これにより、いくつかのナビゲーションセンサの出力に異常があっても、適切なナビゲーションセンサを選択しノズル位置を算出することができる。
【００８１】
図１３のＨＭＰはナビゲーションセンサを４つ搭載しており、ＩＪ記録ヘッド２４の４隅に配置されている。ナビゲーションセンサＳ０〜Ｓ３の位置は図示するものに限られない。しかし、ナビゲーションセンサＳ０，Ｓ１、Ｓ２，Ｓ３はＩＪ記録ヘッド２４に隣接していることが好ましい。ＩＪ記録ヘッド２４とナビゲーションセンサＳ０，Ｓ１、Ｓ２，Ｓ３の間隔が短いことで、印刷媒体１２における画像形成可能範囲が広くなる。これは、ノズル６１と２つのナビゲーションセンサ（後述するように６通りある）は印刷媒体１２上に存在する必要があるためである。
【００８２】
また、２つのナビゲーションセンサ（６通りある）の間隔は長い方が好ましい。これは、２つのナビゲーションセンサ（６通りある）の間隔（図１１のＬ）が回転角θの分解能に影響するためである（より小さな回転角の変化量ｄθを検出可能になる）。
【００８３】
したがって、図示するようにＩＪ記録ヘッド２４と同程度の長さの間隔でナビゲーションセンサＳ０，Ｓ１及びＳ２，Ｓ３が配置され、ノズル列に垂直な方向はＩＪ記録ヘッド２４の幅と同程度の長さの間隔でナビゲーションセンサＳ０とＳ１及びＳ２とＳ３が配置されることが好ましい。
【００８４】
＜ＨＭＰの機能について＞
図１４は、ＨＭＰ２０の機能ブロック図の一例を示す。ＨＭＰ２０は異常検出部５１、センサ位置決定部５２及びセンサ位置補正部５３を有する。これらは、図４に示したＣＰＵ３３がＲＯＭ２８に記憶されたファームウェア（プログラム）をＤＲＡＭ２９に展開して実行することで得られる機能又は手段である。
【００８５】
異常検出部５１はＣＰＵ３３等により実現され、センサ信頼度情報に基づいて、移動量に異常値が含まれるおそれがあるナビゲーションセンサを位置算出の対象外として除外する。センサ信頼度情報とは、ナビゲーションセンサＳ０〜Ｓ３が出力する移動量の信頼度に関する情報であり、移動量と共にナビゲーションセンサＩ／Ｆ４２がナビゲーションセンサＳ０〜Ｓ３から取得することができる。例えば、イメージアレイ３０５が受光した反射光の強度、イメージプロセッサ３０２が検出したエッジ（特徴点）の数、及び、イメージアレイ３０５のシャッター時間などがセンサ信頼度情報である。これらはＨＭＰ２０が印刷媒体１２から浮いた場合に値が悪化する。反射光の強度は低下し、エッジ（特徴点）の数は少なくなり、シャッター時間は増大する。それぞれ適正な値の範囲が決まっており、適正な値に含まれない場合、異常検出部５１は適性でないナビゲーションセンサを除外する。なお、このような情報は印刷媒体の表面品質に関するので表面品質値と呼ばれる場合がある。さらに、異常検出部５１は移動量が閾値以上のナビゲーションセンサを除外してもよい。ユーザの一般的な走査速度で移動量が閾値を超える場合、ナビゲーションセンサＳ０〜Ｓ３が印刷媒体１２からはみ出したり浮いている場合があるためである。
【００８６】
センサ位置決定部５２は、ＣＰＵ３３等により実現される。１つのナビゲーションセンサ３０の位置は１組のナビゲーションセンサの移動量で算出されるが、４つのナビゲーションセンサＳ０〜Ｓ３がある場合、複数の組で同じ１つのナビゲーションセンサの位置が算出される。センサ位置決定部５２は、１つのナビゲーションセンサの複数の位置の中央値、又は、最大値と最小値を除外した平均値を、ナビゲーションセンサの位置に決定する。さらに、このナビゲーションセンサの位置の算出に使用された２つのナビゲーションセンサのカウント値を大きくし、カウント値に基づいて２つのナビゲーションセンサを決定する。これにより、信頼性が高いナビゲーションセンサを２つ決定し、回転角を算出できる。
【００８７】
センサ位置補正部５３は、ＣＰＵ３３等により実現され、位置の算出に採用されたセンサ(２個)の位置を用いて、位置の算出に採用されなかったナビゲーションセンサ(２個)の位置を補正する。
【００８８】
＜動作手順＞
図１５は、画像データ出力器１１とＨＭＰ２０の動作手順を説明するフローチャート図の一例である。まず、ユーザは画像データ出力器１１の電源ボタンを押下する（Ｕ１０１）。画像データ出力器１１はそれを受け付け、電池等から電源が供給されて起動する。
【００８９】
ユーザは画像データ出力器１１で出力したい画像を選択する（Ｕ１０２）。画像データ出力器１１は画像の選択を受け付ける。ワープロアプリケーションのようなソフトウェアの文書データが画像として選択されてもよいし、ＪＰＥＧなどの画像データが選択されてもよい。必要であればプリンタドライバが画像データ以外のデータを画像に変更してよい。
【００９０】
ユーザは選択した画像をＨＭＰ２０で印刷する操作を行う（Ｕ１０３）。ＨＭＰ２０は印刷ジョブの実行の要求を受け付ける。印刷ジョブの要求により画像データがＨＭＰ２０へ送信される。
【００９１】
ユーザは、ＨＭＰ２０を持ち、印刷媒体１２（例えばノート）の上で初期位置を決定する（Ｕ１０４）。
【００９２】
そして、ユーザはＨＭＰ２０の印刷開始ボタンを押下する（Ｕ１０５）。ＨＭＰ２０は印刷開始ボタンの押下を受け付ける。
【００９３】
ユーザはＨＭＰ２０を印刷媒体１２の上で滑らせるように自由に走査する（Ｕ１０６）。
【００９４】
続いて、ＨＭＰ２０の動作を説明する。以下の動作はＣＰＵ３３がファームウェアを実行することで行われる。
【００９５】
ＨＭＰ２０も電源のＯＮにより起動する。ＨＭＰ２０のＣＰＵ３３は、ＨＭＰ２０に内蔵されている図３，４のハードウェア要素を初期化する（Ｓ１０１）。例えば、ナビゲーションセンサＩ/Ｆ４２のレジスタを初期化したり、印字/センサタイミング生成部４３にタイミング値を設定したりする。また、ＨＭＰ２０と画像データ出力器１１との間の通信を確立する。
【００９６】
ＨＭＰ２０のＣＰＵ３３は初期化が完了したかどうかを判定し、完了していない場合はこの判定を繰り返す（Ｓ１０２）。
【００９７】
初期化が完了すると（Ｓ１０２のＹｅｓ）、ＨＭＰ２０のＣＰＵ３３は、ＯＰＵ２６の例えばＬＥＤ点灯によりユーザに印刷可能な状態であることを報知する（Ｓ１０３）。これにより、ユーザは印刷可能な状態であることを把握し、上記のように印刷ジョブの実行を要求する。
【００９８】
印刷ジョブの実行の要求により、ＨＭＰ２０の通信Ｉ/Ｆ２７は画像データ出力器１１から画像データの入力を受け付け、画像が入力された旨をＯＰＵ２６のＬＥＤを点滅させる等によりユーザに対し報知する（Ｓ１０４）。
【００９９】
ユーザが印刷媒体１２上でＨＭＰ２０の初期位置を決め印刷開始ボタンを押下すると、ＨＭＰ２０のＯＰＵ２６はこの操作を受け付け、ＣＰＵ３３がナビゲーションセンサＩ/Ｆ４２に位置を読み取らせる（Ｓ１０５）。これにより、ナビゲーションセンサＩ/Ｆ４２はナビゲーションセンサＳ０〜Ｓ３と通信し、ナビゲーションセンサＳ０〜Ｓ３が検出した移動量を取得しレジスタなどに格納しておく（Ｓ１００１）。ＣＰＵ３３はナビゲーションセンサＩ/Ｆ４２から移動量を読み出す。
【０１００】
ユーザが印刷開始ボタンを押下した直後に取得された移動量はゼロであるがゼロでないとしても、ＣＰＵ３３は例えば座標(0,0)の初期位置としてＤＲＡＭ２９やＣＰＵ３３のレジスタなどに格納する（Ｓ１０６）。
【０１０１】
また、初期位置を取得すると印字/センサタイミング生成部４３がタイミングの生成を開始する（Ｓ１０７）。印字/センサタイミング生成部４３は、初期化で設定されたナビゲーションセンサＳ０の移動量の取得タイミングに達するとナビゲーションセンサＩ/Ｆ４２にタイミングを指示する。これが周期的に行われ上記のサンプリング周期となる。
【０１０２】
ＨＭＰ２０のＣＰＵ３３は、移動量と角速度情報を取得するタイミングであるか否かを判定する（Ｓ１０８）。この判定は、割込みコントローラ４１からの通知により行うが、印字/センサタイミング生成部４３と同じタイミングをＣＰＵ３３がカウントすることで判定してもよい。
【０１０３】
移動量と角速度情報を取得するタイミングになると、ＨＭＰ２０のＣＰＵ３３はナビゲーションセンサＩ/Ｆ４２から４つのナビゲーションセンサＳ０〜Ｓ３の移動量をそれぞれ取得する（Ｓ１０９）。上記のように、ナビゲーションセンサＩ/Ｆ４２は印字/センサタイミング生成部４３が生成するタイミングでナビゲーションセンサＳ０〜Ｓ３から移動量を取得している。
【０１０４】
次に、異常検出部５１は、出力が異常であるナビゲーションセンサを位置の算出対象から除外する（Ｓ１０９−２）。上記のようにセンサ信頼度情報や移動量が閾値未満のナビゲーションセンサＳ０〜Ｓ３を除外する。この時、除外されなかったナビゲーションの数が１以下になる場合はＯＰＵ２６にエラーなどが表示され処理が終了する。あるいは、除外されなかったナビゲーションの数が２以上になるように異常検出部５１が除外するナビゲーションセンサの数を制限してもよい。
【０１０５】
次に、位置算出回路は、前回のサンプリング周期で算出した位置（Ｘ,Ｙ）と、今回のサンプリング周期で取得した移動量(ΔＸ´、ΔＹ´)から、現在の位置を算出し記憶部５９に記憶させる（Ｓ１０９−３）。本実施形態では、ナビゲーションセンサの数が最大で４つである。したがって、位置の算出に使用するナビゲーションセンサＳ０〜Ｓ３の組合せの数は、４つから２つを選ぶ場合の数（すなわち６通り）である。
ナビゲーションセンサＳ０とＳ１の移動量から算出
ナビゲーションセンサＳ０とＳ２の移動量から算出
ナビゲーションセンサＳ０とＳ３の移動量から算出
ナビゲーションセンサＳ１とＳ２の移動量から算出
ナビゲーションセンサＳ１とＳ３の移動量から算出
ナビゲーションセンサＳ２とＳ３の移動量から算出
位置算出回路３４は、除外されていない全てのナビゲーションセンサＳ０〜Ｓ３のうち２つの組み合わせで位置を算出する。なお、記憶部５９に記憶される位置は、ナビゲーションセンサの組合せと対応付けて記憶される。
【０１０６】
次に、センサ位置決定部５２は、ノズルの位置の算出に使用する２つのナビゲーションセンサを決定する（Ｓ１１０）。例えば、上記のように６通りでナビゲーションセンサＳ０〜Ｓ３の位置が算出された場合、１つのナビゲーションセンサごとに６つの位置が算出される。ナビゲーションセンサＳ０を例にして説明する。まず、ナビゲーションセンサＳ０の位置は、ナビゲーションセンサＳ０とＳ１、Ｓ０とＳ２、Ｓ０とＳ３、の３つの組み合わせでそれぞれ算出される。
【０１０７】
また、ナビゲーションセンサＳ０を組み合わせに含まないナビゲーションセンサＳ１とＳ２の移動量からＳ１とＳ２の位置が算出される。ここで、ナビゲーションセンサＳ１又はＳ２とＳ０の相対位置が分かっているので、ナビゲーションセンサＳ１とＳ２の移動量から算出されたナビゲーションセンサＳ１又はＳ２の位置と回転角θによりナビゲーションセンサＳ０の位置を推定できる。同様に、ナビゲーションセンサＳ１とＳ３の移動量から算出されたナビゲーションセンサＳ１又はＳ３の位置と回転角によりナビゲーションセンサＳ０の位置を推定できる。ナビゲーションセンサＳ２とＳ３の移動量から算出されたナビゲーションセンサＳ２又はＳ３の位置と回転角によりナビゲーションセンサＳ０の位置を推定できる。
【０１０８】
図１６は、ナビゲーションセンサＳ２とＳ３の位置と回転角θにより算出されたナビゲーションセンサＳ０の位置を示す。ナビゲーションセンサＳ０とＳ２の間隔をＬｗとすると、印刷媒体座標ではナビゲーションセンサＳ０とＳ２がＬｗcosθ離れていることになる。したがって、Ｓ２の座標を（Ｘ２，Ｙ２）とすると、ナビゲーションセンサＳ０の座標（Ｘ０，Ｙ０）は、Ｘ０＝Ｘ２−Ｌｗcosθ、Ｙ０＝Ｙ２＋Ｌｗsinθ、のように求めることができる。
【０１０９】
このように、１つのナビゲーションセンサＳ０について上記の組み合わせの数と同じ６つの位置が算出又は推定される。ナビゲーションセンサＳ１〜Ｓ３についても６つの位置の候補が推定される。
【０１１０】
しかし、６つの位置の中に異常値が含まれている可能性があるため、単純な平均でナビゲーションセンサの位置を決定することは好ましくない。これは、今回のサンプリング周期では正常に戻っているためステップＳ１０９−２で除外されないが、前回のサンプリング周期では異常であった場合、前回の位置が異常であるため今回の位置に異常値が混ざるおそれがあるためである。
【０１１１】
図１３のようにナビゲーションセンサＳ０〜Ｓ３が配置されており、ナビゲーションセンサＳ２とＳ３の移動量が前回のサンプリング周期で異常であったが（例えば紙面からはみ出した）今回のサンプリング周期では異常でなかったとする。この場合、センサ位置決定部５２はナビゲーションセンサＳ０，Ｓ１を使用するナビゲーションセンサに決定すべきである。ナビゲーションセンサＳ２、Ｓ３で算出された位置は、前回が異常なので正確でないおそれがある。ナビゲーションセンサＳ０とＳ２の組み合わせで算出されたナビゲーションセンサＳ０の位置もＳ２が異常であったので正確でなくなる可能性が高い。ナビゲーションセンサＳ１とＳ３の組み合わせで算出されたＳ１の位置もＳ３が異常であったので正確でなくなる可能性が高い。一方、ナビゲーションセンサＳ０とＳ１の組み合わせで算出されたナビゲーションセンサＳ０、Ｓ１の位置は前回も今回も異常でない移動量に基づき算出されたため正確である可能性が高い。
【０１１２】
同様に、ナビゲーションセンサＳ０、Ｓ１の位置との相対位置に基づいて推定されたナビゲーションセンサＳ２，Ｓ３の位置も正確である可能性が高い。
【０１１３】
そこで、センサ位置決定部５２は、６つの位置から信頼度が高い位置を抽出し、この位置の算出又は推定に使用された２つのナビゲーションセンサを統計的に決定する。具体的には、センサ位置決定部５２は、例えば中央値、又は、最大値と最小値を除外した平均値で、信頼度が高い位置を決定する。
【０１１４】
(i) 中央値で決定する
算出結果である位置（Ｘ，Ｙ）をＸ，Ｙ別々に大きな順に並べ、算出された位置の数が奇数の場合、真ん中の値をナビゲーションセンサの位置に決定する。算出された位置の数が偶数の場合、真ん中付近の２つの値の平均をナビゲーションセンサの位置に決定する。
【０１１５】
例えば、ナビゲーションセンサＳ０について、ナビゲーションセンサＳ０とＳ１、Ｓ０とＳ２、Ｓ０とＳ３の３つの組み合わせで移動量から位置が算出される。また、ナビゲーションセンサＳ０〜Ｓ３の相対位置に基づいて、ナビゲーションセンサＳ１とＳ２の位置から推定されるＳ０、ナビゲーションセンサＳ２とＳ３の位置から推定されるＳ０、ナビゲーションセンサＳ１とＳ３の位置から推定されるＳ０の３つの組み合わせがある。Ｓ０のＸ座標を昇順にＸ１，Ｘ２，Ｘ３、Ｘ４，Ｘ５，Ｘ６の６つとすると、Ｘ３とＸ４の平均が選択される。正常な移動量から算出された位置は同じ値になるか類似するので、中央値を選択することで正常な移動量から算出された位置を選択できる。
【０１１６】
このＸ３が例えばＳ０とＳ１の組み合わせによる場合、センサ位置決定部５２はナビゲーションセンサＳ０とＳ１についてカウント値を１つ大きくする。また、Ｘ４が例えばＳ１とＳ２の位置から推定された場合、センサ位置決定部５２はＳ１とＳ２についてカウント値を１つ大きくする。
【０１１７】
Ｙ座標についても同様に、Ｓ０のＹ座標が昇順にＹ１，Ｙ２，Ｙ３、Ｙ４、Ｙ５、Ｙ６の６つとすると、Ｙ３とＹ４が選択される。Ｙ３とＹ４の平均が選択される。
【０１１８】
このＹ３が例えばナビゲーションセンサＳ０とＳ２の組み合わせによる場合、センサ位置決定部５２はナビゲーションセンサＳ０とＳ２についてカウント値を１つ大きくする。また、Ｙ４が例えばナビゲーションセンサＳ２とＳ３の位置から推定された場合、センサ位置決定部５２はナビゲーションセンサＳ２とＳ３についてカウント値を１つ大きくする。
【０１１９】
したがって、Ｓ０が２、Ｓ１が２、Ｓ２が３、Ｓ３が１というカウント値が得られる。このように、中央にあるため信頼性が高いナビゲーションセンサの位置を算出するために使用された組の各ナビゲーションセンサのカウント値、及び、中央にあるため信頼性が高いナビゲーションセンサの位置の推定に使用された組の各ナビゲーションセンサのカウント値が大きくなる。したがって、カウント値は信頼性が評価された値となる。
【０１２０】
Ｓ１〜Ｓ３についても同様の処理を行う。これにより、例えば、ナビゲーションセンサＳ２とＳ３の移動量が前回のサンプリング周期で異常である場合は、ナビゲーションセンサＳ０，Ｓ１のカウント値が大きくなることが期待される。
【０１２１】
このように、ナビゲーションセンサＳ０〜Ｓ３についてカウント値が算出される。センサ位置決定部５２は、カウント値が高い順に上位２個のナビゲーションセンサをノズルの位置の算出に使用するナビゲーションセンサとして採用する。なお、上位２つのナビゲーションセンサの位置は中央値として算出されており、２つのナビゲーションセンサが選択されるのはセンサ位置決定部５２が回転角を算出するためである。
【０１２２】
(ii) 最大値と最小値を除外した平均値で決定する
センサごとに得られているＸ，Ｙを別々にして、最大値と最小値を除外して、除外されなかった残りのＸ、Ｙの平均値を算出する。正常な移動量から算出された位置は同じ値になるか類似するので、最大値と最小値を除外して平均値を算出することで正常な移動量から算出された位置を決定できる。
【０１２３】
中央値の場合と同様に、ナビゲーションセンサＳ０のＸ座標が昇順にＸ１，Ｘ２，Ｘ３、Ｘ４，Ｘ５，Ｘ６の６つであるとする。Ｘ１とＸ６が削除され、Ｘ２〜Ｘ５の平均値が算出される。このＸ２がナビゲーションセンサＳ０とＳ１の組み合わせによる場合、センサ位置決定部５２はナビゲーションセンサＳ０とＳ１のカウント値を１つ大きくする。また、Ｘ３がナビゲーションセンサＳ０とＳ２の組み合わせによる場合、ナビゲーションセンサＳ０とＳ２についてカウント値を１つ大きくする。Ｘ４がＳ１とＳ２の位置から推定された場合、Ｓ１とＳ２についてカウント値を１つ大きくする。Ｘ５がＳ１とＳ３の位置から推定された場合、Ｓ１とＳ３についてカウント値を１つ大きくする。
【０１２４】
次に、ナビゲーションセンサＳ０のＹ座標が昇順にＹ１，Ｙ２，Ｙ３、Ｙ４、Ｙ５、Ｙ６の６つであるとする。Ｙ１とＹ６が削除されＹ２〜Ｙ５の平均値が算出される。このＹ２がナビゲーションセンサＳ０とＳ１の組み合わせによる場合、センサ位置決定部５２はナビゲーションセンサＳ０とＳ１のカウント値を１つ大きくする。また、Ｙ３がナビゲーションセンサＳ０とＳ２の組み合わせによる場合、ナビゲーションセンサＳ０とＳ２についてカウント値を１つ大きくする。Ｙ４がＳ１とＳ２の位置から推定された場合、Ｓ１とＳ２についてカウント値を１つ大きくする。Ｙ５がＳ１とＳ３の位置から推定された場合、Ｓ１とＳ３についてカウント値を１つ大きくする。
【０１２５】
したがって、ナビゲーションセンサＳ０のカウント値は４、Ｓ１のカウント値は６、Ｓ２のカウント値は４、Ｓ３のカウント値は２、になる。Ｓ１〜Ｓ３についても同様の処理を行う。したがって、ナビゲーションセンサＳ０〜Ｓ３についてカウント値が算出される。センサ位置決定部５２は、カウント値が高い順に上位２個のナビゲーションセンサをノズルの位置の算出に使用するナビゲーションセンサとして採用する。なお、上位２つのナビゲーションセンサの位置は平均値として算出されており、２つのナビゲーションセンサが選択されるのはセンサ位置決定部５２が回転角を算出するためである。
【０１２６】
このように、１つのナビゲーションセンサについて複数の位置を算出して単純に平均値を算出するのでなく、中央値又は平均値に使用されたナビゲーションセンサのカウント値によって信頼性が高いナビゲーションセンサを選択できる。したがって、４つのナビゲーションセンサＳ０〜Ｓ３からはみ出していないナビゲーションセンサを選択する可能性が高くなり、印刷品質を低下させないで印刷形成を継続できる。
【０１２７】
なお、(i)では中央値に採用されなかったナビゲーションセンサの数をカウントしてもよい。また、(ii)では、最大値と最小値であったため除外されたナビゲーションセンサの数をカウントしてもよい。この場合、カウント値が少ない順に上位２つのナビゲーションセンサが選択される。
【０１２８】
また、(i)又は(ii)の方法のいずれの場合も、上位２つを選ぶのでなくｎ個（２≦ｎ＜Ｎ）のナビゲーションセンサを選択してもよい。例えば、６つのナビゲーションセンサがありそのうち２つのナビゲーションセンサが印刷媒体１２からはみ出した場合、４つのナビゲーションセンサの位置は信頼性が高いと考えられる。したがって、上位４つのナビゲーションセンサが選択されそのうち任意の２つのナビゲーションセンサが選択されても、印刷品質に大きな影響はないはずである。すなわち、はみ出した可能性があるナビゲーションセンサを何らかの方法で推定できれば、はみ出していないと推定される数のナビゲーションセンサを選択すればよい。しかしながら、上位２つを選ぶことで、印刷媒体１２上にある２つのナビゲーションセンサを選択できる可能性が高いと考えられるため好適である。
【０１２９】
以上のように、(i)又は(ii)の方法で２つのナビゲーションセンサが決定される。この２つのナビゲーションセンサの位置は中央値又は平均値で算出されているが、回転角が不明である。ノズル６１の位置を算出するためには回転角が必要なため、センサ位置決定部５２は決定した２つのナビゲーションセンサを位置算出回路３４に通知する。これにより、位置算出回路３４は、センサ位置決定部５２が決定した２つのナビゲーションセンサの移動量を用いて回転角の変化量（すなわち回転角）を算出する。したがって、２つのナビゲーションセンサの位置（どちら１つあればよい）と回転角を用いてノズル６１の位置を算出できる。
【０１３０】
なお、センサ位置補正部５３は、採用された２個のナビゲーションセンサの位置とナビゲーションセンサＳ０〜Ｓ３の相対位置の関係から、採用されなかったナビゲーションセンサ（２個)の位置を補正することができる。すなわち、採用されなかったナビゲーションセンサ（２個)の位置を、相対位置で推定された位置で置き換える。あるいは、採用されなかったナビゲーションセンサ（２個)の位置と相対位置で推定された位置の平均値を、採用されなかったナビゲーションセンサ（２個)の位置とする。
【０１３１】
また、補正の要否を判定してもよい。この場合、１つのナビゲーションセンサの６つの位置に異常値が混ざっているか否かを判定する。センサ位置補正部５３は例えば１つのナビゲーションセンサの位置の標準偏差を求め、標準偏差が閾値以上の場合、異常値が混ざっていると判定する。そして、異常値が混ざっていない場合にのみ位置の補正を行う。標準偏差でなく分散を用いてもよい。
【０１３２】
次に、位置算出回路３４は、ステップＳ１１０で決定されたナビゲーションセンサの現在の位置を用いて各ノズル６１の現在の位置を算出する（Ｓ１１１）。
【０１３３】
次に、ＣＰＵ３３は画像読取部３８に画像を読み取らせる。画像読取部３８は算出した各ノズル６１の位置を基に、各ノズル６１の周辺画像の画像データをＤＲＡＭ２９から読み取る（Ｓ１１２）。
【０１３４】
次に、ＩＪ記録ヘッド制御部４４は周辺画像を構成する各画像要素の位置座標と、各ノズル６１の位置座標とを比較する（Ｓ１１３）。位置算出回路３４は、ノズル６１の過去の位置と現在の位置を用いてノズル６１の加速度を算出している。これにより、位置算出回路３４は、ナビゲーションセンサＩ/Ｆ４２が移動量を取得する周期よりも短いＩＪ記録ヘッド２４のインク吐出周期ごとにノズル６１の位置を算出している。ＩＪ記録ヘッド制御部４４は、位置算出回路３４が算出するノズル６１の位置から所定範囲内に画像要素の位置座標が含まれるか否かを判定する（吐出ノズル可否判定）。
【０１３５】
吐出条件を満たさない場合、処理はステップＳ１０８に戻る。吐出条件を満たす場合、ＩＪ記録ヘッド制御部４４はノズル６１ごとに画像要素のデータをＩＪ記録ヘッド駆動回路２３に出力する（Ｓ１１５）。これにより、印刷媒体１２にはインクが吐出される。
【０１３６】
次に、ＣＰＵ３３は全画像データを出力したかを判定する（Ｓ１１６）。出力していない場合、ステップＳ１０８からＳ１１５までの処理を繰り返す。
【０１３７】
全画像データを出力した場合、ＣＰＵ３３は、例えばＯＰＵ２６のＬＥＤを点灯させユーザに印刷が終了したことを報知する（Ｓ１１７）。
【０１３８】
なお、全画像データを出力しなくても、ユーザが十分と判断した場合には、ユーザは印刷完了ボタンを押下し、ＯＰＵ２６がそれを受け付けて、印刷を終了してよい。印刷終了後、ユーザが電源をＯＦＦにすることもできるし、印刷が終了した時点で、自動で電源がOFFにされるようになっていてもよい。
【０１３９】
以上説明したように、ナビゲーションセンサが３つ以上あることで、ＨＭＰは２つ以上のナビゲーションセンサを用いてノズル６１の位置の算出を継続し、印刷品質の低下を抑制して印刷を継続できる。
【０１４０】
＜その他の適用例＞
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【０１４１】
例えば、上記したＳｏＣ５０、ＡＳＩＣ/ＦＰＧＡ４０の構成要素は、ＣＰＵ性能やＡＳＩＣ/ＦＰＧＡ４０の回路規模等により、どちらに含まれていてもよい。
【０１４２】
また、本実施形態ではインクを吐出して画像を形成すると説明したが、可視光、紫外線、赤外線、レーザなどを照射して画像を形成してもよい。この場合、印刷媒体１２として例えば熱や光に反応するものが用いられる。また、透明な液体を吐出してもよい。この場合、特定の波長域の光が照射されると可視情報が得られる。また、金属ペーストや樹脂などを吐出してもよい。
【０１４３】
なお、ナビゲーションセンサ３０は移動量検出手段の一例であり、位置算出回路３４は第二の位置算出手段の一例であり、画像読取部３８は第一の位置算出手段の一例であり、
センサ位置決定部５２は選択手段の一例であり、異常検出部５１は除外手段の一例であり、センサ位置補正部５３は補正手段の一例である。ナビゲーションセンサ３０の位置は検出手段位置の一例である。ＩＪ記録ヘッド制御部４４等は液滴吐出手段の一例であり、ＨＭＰ２０は液滴吐出装置の一例である。
【符号の説明】
【０１４４】
１１      画像データ出力器
１２      印刷媒体
３０      ナビゲーションセンサ
３３      ＣＰＵ
３４      位置算出回路
５１      異常検出部
５２      センサ位置決定部
５３      センサ位置補正部
６１      ノズル
【先行技術文献】
【特許文献】
【０１４５】
【特許文献１】特表２０１０-５２２６５０号公報
【図１】
0006717042.tif 000002
【図２】
0006717042.tif 000003
【図３】
0006717042.tif 000004
【図４】
0006717042.tif 000005
【図５】
0006717042.tif 000006
【図６】
0006717042.tif 000007
【図７】
0006717042.tif 000008
【図８】
0006717042.tif 000009
【図９】
0006717042.tif 000010
【図１０】
0006717042.tif 000011
【図１１】
0006717042.tif 000012
【図１２】
0006717042.tif 000013
【図１３】
0006717042.tif 000014
【図１４】
0006717042.tif 000015
【図１５】
0006717042.tif 000016
【図１６】
0006717042.tif 000017