(57)【特許請求の範囲】
【請求項１】
媒体に画像を形成する画像形成装置であって、
媒体を読み取り表面情報を取得する検出手段と、
取得した前記表面情報に基づき前記画像形成装置の移動量を算出する移動量算出部と、
前記検出手段が、所定のパターンを読み取って取得した基本表面情報に基づき、前記移動量を補正する補正手段と、を有する画像形成装置。
【請求項２】
前記基本表面情報に基づき、前記検出手段の高さ情報及び傾度情報の少なくとも一つを取得する取得手段をさらに備え、
前記補正手段は、取得した前記高さ情報及び傾度情報の少なくとも一つに基づき、前記移動量を補正することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記取得手段は、前記基本表面情報に表された前記所定のパターンの第１の方向の長さと第２の方向の長さとの比に基づいて前記検出手段の傾度情報を取得する請求項２に記載の画像形成装置。
【請求項４】
前記取得手段は、前記画像形成装置を表面で走査させた場合の前記基本表面情報に表された前記所定のパターンの第１の方向の移動距離と第２の方向の移動距離との比に基づいて前記検出手段の傾度情報を取得する請求項２又は３に記載の画像形成装置。
【請求項５】
前記取得手段は、前記基本表面情報に表された前記所定のパターンの粒度情報又は前記検出手段によって検出された移動量に対する解像度に基づいて前記検出手段の高さ情報を取得する請求項２乃至４のいずれか１項に記載の画像形成装置。
【請求項６】
前記取得手段は、前記検出手段によって検出された前記所定のパターンに対応する単位画像の数に基づいて前記検出手段の高さ情報を算出して取得する請求項５に記載の画像形成装置。
【請求項７】
前記取得手段は、前記所定のパターンにおける粒度の異なる複数のパターンのうち、前記検出手段によって検出されたパターンに基づいて前記検出手段の高さ情報を取得する請求項５又は６に記載の画像形成装置。
【請求項８】
前記取得手段は、前記検出手段によって前記所定のパターンの検出を開始してから検出が完了するまでの時間に基づいて前記検出手段の高さ情報を取得する請求項２乃至７のいずれか１項に記載の画像形成装置。
【請求項９】
媒体に画像を形成する画像形成装置に実行させるプログラムであって、
検出手段により媒体を読み取り表面情報を取得するステップと、
取得した前記表面情報に基づき前記画像形成装置の移動量を算出するステップと、
前記検出手段が、所定のパターンを読み取って取得した基本表面情報に基づき、前記移動量を補正するステップと、を画像形成装置に実行させるプログラム。
【請求項１０】
媒体に画像を形成する画像形成装置を製造する方法であって、
検出手段が媒体上の所定のパターンを読み取って取得した基本表面情報に基づき、前記画像形成装置の移動量の補正に使用する補正情報を算出するステップと、
前記算出するステップで取得した前記補正情報を記憶領域に格納するステップと、を有する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、プログラム及び方法に関する。
【背景技術】
【０００２】
ユーザが装置を把持し、装置を走査させ、画像形成位置に到達したタイミングで装置からインクを吐出することで用紙に画像を形成するハンドヘルドプリンタ（以下、ＨＨＰ（Hand Held Printer）という）が実用化されつつある。ＨＨＰは、用紙搬送部を有しないため、ユーザが携帯可能なサイズである。
【０００３】
図１は、ＨＨＰ１による画像形成を模式的に示す図の一例である。ＨＨＰ１は、例えば、スマートフォンやＰＣ（Personal Computer）等の画像データ出力器９から画像データを受信する。ユーザは、ＨＨＰ１を把持し、ＨＨＰ１をフリーハンドで走査させる。ＨＨＰ１は、用紙表面と接する底面に位置を検出するためのセンサとＩＪ（Ink Jet）記録ヘッドを備える。ＨＨＰ１は、センサにより用紙上の位置を検出しており、ＩＪ記録ヘッドが吐出位置に到達した際、ＩＪ記録ヘッドからインクを吐出する。既にインクが吐出された部分はマスクされるため、ＨＨＰ１は、一度吐出した部分に再度到達してもインクを吐出しない。
【０００４】
ＨＨＰはセンサからの出力値により現在の位置情報を算出するが、算出した位置情報に誤差が発生する場合がある。そこで、ＨＨＰが求めた位置情報の誤差を計測し、誤差に応じて位置情報を修正する技術がある。
【０００５】
例えば、ナビゲーション測定値から検出した移動パスと実際の移動パスとの差異に基づいてスケールファクタを生成し、装置が検出した位置データの誤差を、スケールファクタを使用して修正する方法が知られている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の技術では、ＨＨＰに対するセンサの位置のズレによって発生した位置情報の誤差を修正することができなかった。例えば、製造時に生じるＨＨＰの個体差によりＨＨＰ間で、センサの位置が本来配置されるべき位置からずれることがある。また、ＨＨＰの経年劣化により、ＨＨＰの使用開始時と比較して、センサの位置が本来配置されるべき位置からずれることがある。この結果、センサから得られる位置情報に誤差が生じ、印字位置がずれるという問題があった。
【０００７】
そこで、本実施形態では、上記課題に鑑み、センサが検出した位置情報に基づき、適正な印字位置を決定することを目的とする。
【課題を解決するための手段】
【０００８】
一つの案では、媒体に画像を形成する画像形成装置であって、媒体を読み取り表面情報を取得する検出手段と、取得した前記表面情報に基づき前記画像形成装置の移動量を算出する移動量算出部と、前記検出手段が、所定のパターンを読み取って取得した基本表面情報に基づき、前記移動量を補正する補正手段と、を有する画像形成装置が提供される。
【発明の効果】
【０００９】
センサが検出した位置情報に基づき、適正な印字位置を決定できる。
【図面の簡単な説明】
【００１０】
【図１】ＨＨＰによる画像形成を模式的に示す図の一例である。
【図２】センサの高さ及び傾斜角度の検出を説明するための図である。
【図３】ＨＨＰのハードウェア構成を示す図である。
【図４】制御部の構成を説明する図の一例である。
【図５】センサのブロック図である。
【図６】センサによる直線方向の移動成分の検出を説明するための図である。
【図７】センサによる回転成分の検出を説明するための図である。
【図８】キャリブレーションを実行する際に使用する装置を示す図である。
【図９】高さ方向のズレの計測を行う場合の説明図である。
【図１０】センサの高さ方向のズレを計測する第１の例における元画像と取得された画像を示す図である。
【図１１】キャプチャ画像のサイズと解像度との関係表の一例を示す図である。
【図１２】解像度とセンサ３０の高さとの関係を示す図である。
【図１３】センサの高さ方向のズレを計測する第２の例における元画像と取得された画像を示す図である。
【図１４】センサの高さ方向のズレを計測する第３の例における画面と取得された画像を示す図である。
【図１５】センサの高さ方向のズレを計測する第４の例における元画像と取得された画像を示す図である。
【図１６】センサのＸＺ方向の傾きを計測する例を示す図である。
【図１７】ＨＨＰの底面の各部位の位置関係を示す図である。
【図１８】センサのＸＹ方向の傾きによる影響を示す図である。
【図１９】キャリブレーションに使用される図形のパターン例を示す第１の図である。
【図２０】キャリブレーションに使用される図形のパターン例を示す第２の図である。
【図２１】キャリブレーション処理の全体のフローを示す図である。
【図２２】センサの位置算出方法を説明するための図である。
【図２３】先頭のノズル位置の算出を説明するための第１の図である。
【図２４】先頭のノズル位置の算出を説明するための第２の図である。
【図２５】先頭及び後尾ノズルの中間にあるノズルの位置の算出を説明するための第１の図である。
【図２６】先頭及び後尾ノズルの中間にあるノズルの位置の算出を説明するための第２の図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することによって重複した説明を省く。
【００１２】
［実施形態１］
＜キャリブレーション処理の概略＞
図２は、センサの高さ及び傾斜角度の検出を説明するための図である。用紙上にＨＨＰ２０を載置した場合の用紙に対するセンサの高さ及び傾斜角度のズレを計測するために、キャリブレーションを実行する。キャリブレーションは、例えば、ＨＨＰ２０の製造時のテスト工程及びユーザがＨＨＰ２０を使用する前などに実行される。表示デバイス１０は、例えば、スマートフォン、タブレット端末等の機器であってもよい。
【００１３】
キャリブレーションを実行する際は、ユーザは、図２（ａ）に示すように表示デバイス１０の画面１１上にＨＨＰ２０を載置し、キャリブレーションボタン５を押下する。キャリブレーションボタン５が押下されると、ＬＥＤ６が点灯する。なお、ＬＥＤ６は、キャリブレーション処理が完了するまで点灯する。続いて、ＨＨＰ２０は、キャリブレーション処理を開始する。
【００１４】
図２（ｂ）の左側は、ＨＨＰ２０を載置した場合の表示デバイス１０の画面１１を示す。例えば、表示デバイス１０は、画面１１に棒状の図形１２を表示する。画面１１の面をＸＹ平面としたとき、キャリブレーション開始時には、例えば、棒状の図形１２はＹ軸に平行に画面１１の左側の位置に表示される。続いて、表示デバイス１０は、棒状の図形１２をＸ軸に平行に右側に移動させる。
【００１５】
図２（ｂ）の右側は、ＨＨＰ２０の底面を示す。ＨＨＰ２０の底面には、センサ３０ａ及びセンサ３０ｂがＩＪ記録ヘッド２４の上部及び下部に配置されている。キャリブレーションが開始されると、センサ３０ａ及びセンサ３０ｂは、それぞれ棒状の図形１２の位置を検知し、棒状の図形１２の移動量ΔＸを計測する。なお、表示デバイス１０は、さらにＸ軸に平行な棒状の図形１２をＹ軸方向に平行に移動させ、センサ３０ａ及びセンサ３０ｂに移動量ΔＹを計測させてもよい。
【００１６】
図２（ｃ）は、ＨＨＰ２０を載置する位置を表示した場合の画面１１を示す。点線で表示されるガイド１３は、ＨＨＰ２０の底面と同じ形状となっている。ユーザは、ＨＨＰ２０の底面をガイド１３に合わせて載置することでＨＨＰ２０を正確な位置に載置することができる。
【００１７】
図２（ｄ）の左側は、センサ３０ｂが正しく配置されている場合に計測される移動量を示す。センサ３０ａとセンサ３０ｂを通る線は、Ｘ軸に垂直かつＹ軸に平行であるものとする。センサ３０ｂが傾きなく正しい位置に配置されている場合、センサ３０ｂは、ＨＨＰ２０のＸ軸方向の移動量ΔＸとＹ軸方向の移動量ΔＹとを正しく計測する。
【００１８】
図２（ｄ）の右側は、センサ３０ｂがＸＹ方向に傾いて配置されている場合に計測される移動量を示す。センサ３０ｂがＸＹ方向かつ反時計方向に角度θ傾いて配置されているものとする。センサ３０ｂが正しく配置されている場合と比較して、センサ３０ｂは、ΔＸの計測値が大きくなり、ΔＹの計測値が小さくなり、計測した移動量に誤差が発生する。また、センサ３０ｂの高さのズレ、ＸＺ方向及びＹＺ方向の傾きによってもΔＸ及びΔＹに誤差が発生する。
【００１９】
ＨＨＰ２０は、例えば、図２（ｄ）の右側のような場合に、キャリブレーション処理であらかじめ算出された補正係数を用いて、センサ３０ｂが正しく配置されている場合と同じになるように移動量ΔＸ及びΔＹを補正する。これにより、ＨＨＰ２０の個体差及び経年劣化等によってセンサ３０の配置にずれが生じても、ＨＨＰ２０の移動量を正しく計測し、装置の正確な位置を検出することができる。
【００２０】
＜ハードウェア構成＞
図３は、ＨＨＰ２０のハードウェア構成を示す図である。ＨＨＰ２０は、印刷媒体に画像を形成する画像形成装置の一例である。ＨＨＰ２０は、制御部２５によって全体の動作が制御され、制御部２５には通信Ｉ／Ｆ（Interface）２７、ＩＪ記録ヘッド駆動回路２３、ＯＰＵ（Operation Unit）２６、ＲＯＭ（Read Only Memory）２８、ＤＲＡＭ（Dynamic Random Memory）２９、及び、センサ３０が電気的に接続されている。また、ＨＨＰ２０は電力により駆動されるため、電源２２と電源回路２１を有している。電源回路２１が生成する電力は、点線で示す配線により、通信Ｉ／Ｆ２７、ＩＪ記録ヘッド駆動回路２３、ＯＰＵ２６、ＲＯＭ２８、ＤＲＡＭ２９、ＩＪ記録ヘッド２４、制御部２５、及び、センサ３０に供給されている。
【００２１】
電源２２は主に電池（バッテリー）が利用される。太陽電池や商用電源（交流電源）、燃料電池等が用いられてもよい。電源回路２１は、電源２２が供給する電力をＨＨＰ２０の各部に分配する。また、電源２２の電圧を各部に適した電圧に降圧や昇圧する。また、電源２２が電池で充電可能である場合、電源回路２１は交流電源の接続を検出して電池の充電回路に接続し、電源２２の充電を可能にする。
【００２２】
通信Ｉ／Ｆ２７は、スマートフォンやＰＣ等の画像データ出力器９から画像データの受信等を行う。通信Ｉ／Ｆ２７は例えば無線ＬＡＮ、Bluetooth（登録商標）、ＮＦＣ（Near Field Communication）、赤外線、３Ｇ（携帯電話）、又は、ＬＴＥ（Long Term Evolution）等の通信規格に対応した通信装置である。また、このような無線通信の他、有線ＬＡＮ、ＵＳＢケーブルなどを用いた有線通信に対応した通信装置であってもよい。
【００２３】
ＲＯＭ２８は、ＨＨＰ２０のハードウェア制御を行うファームウェアや、ＩＪ記録ヘッド２４の駆動波形データ（液滴を吐出するための電圧変化を規定するデータ）や、ＨＨＰ２０の初期設定データ等を格納している。
【００２４】
ＤＲＡＭ２９は通信Ｉ／Ｆ２７が受信した画像データを記憶したり、ＲＯＭ２８から展開されたファームウェアを格納したりするために使用される。従って、ＣＰＵ３１がファームウェアを実行する際のワークメモリとして使用される。
【００２５】
センサ３０は、ＨＨＰ２０の位置を検出するセンサである。センサ３０は、例えば、発光ダイオード（ＬＥＤ）やレーザ等の光源と、印刷媒体２を撮像する撮像センサ、又は、入反射光の干渉縞を撮像するセンサを有している。ＨＨＰ２０が印刷媒体２上を走査されると、印刷媒体２の微小なエッジが次々に検出され（撮像され）エッジ間の距離を解析することで移動量が得られる。センサ３０は、ＨＨＰ２０の少なくとも２箇所に搭載されている。両者を区別する場合、センサ３０ａ，３０ｂという。なお、センサ３０として、さらに多軸の加速度センサやジャイロセンサ等を用いてもよく、加速度センサやジャイロセンサのみでＨＨＰ２０の位置を検出してもよい。
【００２６】
ＯＰＵ２６は、ＨＨＰ２０の状態を表示するＬＥＤ６、ユーザがＨＨＰ２０に画像形成を指示するためのスイッチ（例えば、キャリブレーションボタン５）等を有している。ただし、これに限定するものではなく、液晶ディスプレイを有していてよく、さらにタッチパネルを有していてもよい。また、音声入力機能を有していてもよい。
【００２７】
ＩＪ記録ヘッド駆動回路２３は上記の駆動波形データを用いて、ＩＪ記録ヘッド２４を駆動するための駆動波形を生成する。インクの液滴のサイズなどに応じた駆動波形を生成できる。
【００２８】
ＩＪ記録ヘッド２４は、インクを吐出するためのヘッドである。図ではＣＭＹＫの４色のインクを吐出可能になっているが、単色でもよく５色以上の吐出が可能でもよい。色ごとに一列（二列以上でもよい）に並んだ複数のインク吐出用のノズル（後述する）が配置されている。また、インクの吐出方式はピエゾ方式でもサーマル方式でもよく、この他の方式でもよい。
【００２９】
制御部２５は、センサ３０が検出する移動量を元に、ＩＪ記録ヘッド２４の各ノズルの位置、該位置に応じて形成する画像の決定、吐出ノズル可否判定（ノズルの位置が目標吐出位置から所定範囲内かどうかの判定）等を行う。制御部２５について詳細は次述する。
【００３０】
図４は、制御部２５の構成を説明する図の一例である。制御部２５はＳｏＣ（System On a Chip）５０とＡＳＩＣ（Application Specific Integrated Circuit）／ＦＰＧＡ（Field Programmable Gate Array）４０を有している。ＳｏＣ５０とＡＳＩＣ／ＦＰＧＡ４０はバス４７，バス４８を介して通信する。ＡＳＩＣ／ＦＰＧＡ４０はどちらの実装技術で設計されてもよいことを意味し、ＡＳＩＣ／ＦＰＧＡ４０以外の他の実装技術で構成されてよい。また、ＳｏＣ５０とＡＳＩＣ／ＦＰＧＡ４０を別のチップにすることなく１つのチップや基盤で構成してもよい。あるいは、３つ以上のチップや基盤で実装してもよい。
【００３１】
ＳｏＣ５０は、バス４８を介して接続されたＣＰＵ３１、位置算出回路３２、メモリＣＴＬ（コントローラ）３５、及び、ＲＯＭＣＴＬ（コントローラ）３６等の機能を有している。なお、ＳｏＣ５０が有する構成要素はこれらに限られない。
【００３２】
また、ＡＳＩＣ／ＦＰＧＡ４０は、バス４７を介して接続されたＩｍａｇｅＲＡＭ(Image Random Access Memory)３７、ＤＭＡＣ（Direct Memory Access Controller）３８、回転器３９、割込みコントローラ４１、センサＩ／Ｆ４２、印字／センサタイミング生成部４３、及び、ＩＪ記録ヘッド制御部４４を有している。なお、ＡＳＩＣ／ＦＰＧＡ４０が有する構成要素はこれらに限られない。
【００３３】
ＣＰＵ３１は、ＲＯＭ２８からＤＲＡＭ２９に展開されたファームウェア（プログラム）などを実行し、ＳｏＣ５０内の位置算出回路３２、メモリＣＴＬ（Controller）３５、及び、ＲＯＭＣＴＬ３６の動作を制御する。また、ＡＳＩＣ／ＦＰＧＡ４０内のＩｍａｇｅＲＡＭ３７、ＤＭＡＣ３８、回転器３９、割込みコントローラ４１、センサＩ／Ｆ４２、印字／センサタイミング生成部４３、及び、ＩＪ記録ヘッド制御部４４の動作を制御する。
【００３４】
位置算出回路３２は、センサ３０が検出するサンプリング周期ごとの移動量に基づいてＨＨＰ２０の位置（座標情報）を算出する。ＨＨＰ２０の位置とは、厳密にはノズルの位置であるが、センサ３０のある位置が分かればノズルの位置を算出できる。なお、本実施形態では、センサ３０ａとセンサ３０ｂのいずれか一方を指す場合、センサ３０と表すことがある。また、位置算出回路３２は目標吐出位置を算出する。
【００３５】
センサ３０の位置は、例えば所定の原点（例えば、印刷用紙又は画像データ７の左上コーナーなど）を基準に算出されている。また、位置算出回路３２は、過去の位置と最も新しい位置の差に基づいて移動速度や移動方向を推定し、例えば次回の算出タイミングにおける位置を予測する。こうすることで、ユーザの走査に対する遅れを抑制してインクを吐出できる。
【００３６】
メモリＣＴＬ３５は、ＤＲＡＭ２９とのインタフェースであり、ＤＲＡＭ２９に対しデータを要求し、取得したファームウェアをＣＰＵ３１に送出したり、取得した画像データ７をＡＳＩＣ／ＦＰＧＡ４０に送出したりする。
【００３７】
ＲＯＭＣＴＬ３６は、ＲＯＭ２８とのインタフェースであり、ＲＯＭ２８に対しデータを要求し、取得したデータをＣＰＵ３１やＡＳＩＣ／ＦＰＧＡ４０に送出する。
【００３８】
ＤＭＡＣ３８は、位置算出回路３２が算出した位置情報を元に、メモリＣＴＬ３５を介してＩＪ記録ヘッド２４の各ノズル周辺の画像データ７を取得する。つまり、印刷媒体２に対しＨＨＰ２０が存在する位置の周辺の画像データ７が取得される。
【００３９】
回転器３９は、ＤＭＡＣ３８が取得した画像データを、インクを吐出するヘッド、及び、ヘッド内のノズル位置に応じて回転させる。ＤＭＡＣ３８は回転後の画像データをＩＪ記録ヘッド制御部４４へ出力する。回転器３９は、例えば、位置算出回路３２が位置を算出する際に算出した回転角θを取得し、その回転角θを用いて画像を回転させることができる。
【００４０】
ＩｍａｇｅＲＡＭ３７はＤＭＡＣ３８が取得した画像データ７を一時的に格納する。すなわち、ある程度の画像データ７がバッファリングされ、ＨＨＰ２０の位置に応じて読み出される。
【００４１】
ＩＪ記録ヘッド制御部４４は、画像データ７（ビットマップデータ）にディザ処理などを施して大きさと密度で画像を表す点の集合に画像データ７を変換する。これにより、画像データ７は吐出位置と点のサイズのデータとなる。ＩＪ記録ヘッド制御部４４は点のサイズに応じた制御信号をＩＪ記録ヘッド駆動回路２３に出力する。ＩＪ記録ヘッド駆動回路２３は上記のように制御信号に対応した駆動波形データを用いて、駆動波形を生成する。
【００４２】
センサＩ／Ｆ４２は、センサ３０と通信し、センサ３０からの情報として移動量ΔＸ及びΔＹを受信し、その値を内部レジスタに格納する。ΔＸ及びΔＹは、図２に示された表示デバイス１０の画面１１をＸＹ平面とし、画面１１に表示された画像のＸ軸方向及びＹ軸方向の移動量を示す。
【００４３】
印字／センサタイミング生成部４３は、センサＩ／Ｆ４２にセンサ３０の情報を読み取るタイミングを通知し、ＩＪ記録ヘッド制御部４４に駆動タイミングを通知する。ＩＪ記録ヘッド制御部４４は吐出ノズル可否判定を行い、インクを吐出すべき目標吐出位置があればインクを吐出し、目標吐出位置がなければ吐出しないと判定する。
【００４４】
割込みコントローラ４１は、センサＩ／Ｆ４２がセンサ３０との通信が完了したことを検知して、ＳｏＣ５０へそれを通知するための割り込み信号を出力する。ＣＰＵ３１はこの割り込みにより、センサＩ／Ｆ４２が内部レジスタに記憶するΔＸ、ΔＹを取得する。その他、エラー等のステータス通知機能も有する。
【００４５】
図５は、センサ３０のブロック図である。センサ３０は、ＨｏｓｔＩ／Ｆ５５と、イメージプロセッサ５１と、ＬＥＤ／ＬＡＳＥＲＤｒｉｖｅ５２と、レンズ５３ａと、レンズ５３ｂと、イメージアレイ５４とを有する。
【００４６】
ＬＥＤ／ＬＡＳＥＲＤｒｉｖｅ５２は、ＬＥＤからのレーザ光の照射を制御する。ＬＥＤ／ＬＡＳＥＲＤｒｉｖｅ５２は、レンズ５３ａによりＬＥＤ／ＬＡＳＥＲＤｒｉｖｅ５２から受けたレーザ光を平行光とし、平行光としたレーザ光を印刷媒体２の所定の範囲に照射する。イメージアレイ５４は、レンズ５３ｂを介して印刷媒体２からの反射光を受光し、画像データとしてイメージプロセッサ５１に送信する。イメージプロセッサ５１は、受信した画像データに基づいて移動量ΔＸ及びΔＹを算出する。イメージプロセッサ５１は、ＨｏｓｔＩ／Ｆ５５を介して外部の端末に移動量ΔＸ及びΔＹに関するデータを送信する。
【００４７】
図６は、センサ３０による直線方向の移動成分の検出を説明するための図である。図６（ａ）は、センサ３０から印刷媒体２にＬＥＤレーザを照射した場合を示す。ＬＥＤ／ＬＡＳＥＲＤｒｉｖｅ５２は、レンズ５３ａによりＬＥＤ／ＬＡＳＥＲＤｒｉｖｅ５２からのレーザ光を平行光とし、レーザ光を印刷媒体２の所定の範囲に照射する。イメージアレイ５４は、レンズ５３ｂを介して印刷媒体２からの反射光を受光し、画像データとしてイメージプロセッサ５１に送信する。
【００４８】
図６（ｂ）は、イメージアレイ５４により生成された画像データを示す。Ｓａｍｐ１、Ｓａｍｐ２及びＳａｍｐ３は、イメージアレイ５４により受光され、イメージプロセッサ５１により既定の分解能でマトリクス化された画像データである。例えば、プリンタの場合、１２００ｄｐｉ程度の分解能でマトリクス化を行う。また、Ｓａｍｐ１、Ｓａｍｐ２及びＳａｍｐ３は、ＨＨＰ２０をＸ軸方向に平行に所定速度で移動させた場合に、各時間に取得された画像データであり、Ｓａｍｐ１からスタートしてＳａｍｐ２、Ｓａｍｐ３の順にイメージアレイで取得された画像データである。
【００４９】
Ｓａｍｐ１と比較してＳａｍｐ２は、画像が１マス分左に移動している。また、Ｓａｍｐ１と比較してＳａｍｐ３は、画像が２マス分左に移動している。したがって、Ｓａｍｐ１からＳａｍｐ２までのＨＨＰ２０の移動量は、（ΔＸ,ΔＹ）＝（１,０）であり、Ｓａｍｐ１からＳａｍｐ３までのＨＨＰ２０の移動量は、（ΔＸ,ΔＹ）＝（２,０）となる。なお、ＨＨＰ２０をＹ軸方向に移動させた場合、画像が上下方向に移動し、ΔＹの値が変化する。
【００５０】
また、イメージアレイ５４でより高い分解能で画像データを取得すれば、より詳細な移動量を計測することが可能となる。
【００５１】
図７は、センサ３０による回転成分の検出を説明するための図である。図７（ａ）は、ＨＨＰ２０の底面を表す。図７（ｂ）はＩＪ記録ヘッド２４及びノズル２４ａ〜２４ｆを表す。
【００５２】
本実施形態のＨＨＰ２０は、２つ以上のセンサ３０を有している。ＨＨＰ２０は、センサ３０を２つ以上有することで、センサ３０が印刷媒体上で回転しても回転角θを検出できる。例えば、図７（ａ）ではノズル２４ａ〜２４ｆの配列方向に離間して２つのセンサ３０ａ、センサ３０ｂが配置されている。２つのセンサ３０ａ、センサ３０ｂの間の長さは距離Ｌである。回転角θは、センサ３０ａ及びセンサ３０ｂのＸ軸方向又はＹ軸方向の移動量の差分と距離Ｌとを用いて算出することができる。
【００５３】
また、距離Ｌが長いほど検出可能な最小の回転角θが小さくなり、ＨＨＰ２０の位置の誤差が少なくなるため、距離Ｌは長いほどよい。
【００５４】
センサ３０ａからＩＪ記録ヘッド２４までの距離はそれぞれ距離ａ、ｂである。距離ａと、距離ｂは等しい。また、図７（ｂ）に示すように、ＩＪ記録ヘッド２４の先端から最初のノズルまでの距離は距離ｄ、隣接するノズル間の距離は距離ｅである。距離ａ〜ｅの値はＲＯＭ２８などに予め記憶されている。
【００５５】
位置算出回路３２は、センサ３０の位置を算出すれば、センサ３０との位置関係から各ノズルの位置を算出できる。
【００５６】
本実施形態では、印刷媒体２に水平な方向をＸ軸、垂直な方向をＹ軸に設定する。これに対し、センサ３０は次のような座標軸（Ｘ'軸、Ｙ'軸）で位置を出力する。すなわち、ノズル２４ａ〜２４ｆの配列方向（２つのセンサ３０ａ、３０ｂを通る線に平行な方向）をＹ'軸、Ｙ'軸に直交する方向をＸ'軸とする。
【００５７】
＜キャリブレーションにより実行される３種類の計測＞
図８は、キャリブレーションを実行する際に使用する装置を示す図である。図８（ａ）に示すようにＨＨＰ２０を表示デバイス１０に載置してキャリブレーションを実行してもよい。なお、ＨＨＰ２０を表示デバイス１０に載置してキャリブレーションを実行する操作の方法については、図２を用いて説明した。
【００５８】
また、図８（ｂ）に示すように、画像が印刷された用紙３にＨＨＰ２０を密接させてキャリブレーションを実行してもよい。図８（ｂ）の場合には、ＨＨＰ２０を同じ位置に固定した状態で、用紙３の方をＸ軸方向及びＹ軸方向に移動させる装置を用いてキャリブレーションを実行する。
【００５９】
ＨＨＰ２０は、キャリブレーションを実行することによりセンサ３０ａ及び３０ｂの高さ方向のズレ及び傾き方向のズレを検出する。
【００６０】
例えば、表示デバイス１０の画面１１をＸＹ平面とし、ＸＹ平面の鉛直方向にＺ軸があるものとした場合、高さ方向のズレは、Ｚ軸方向のズレを示す。また、傾き方向のズレは、２種類に分類され、一つは、ＸＺ方向及びＹＺ方向のセンサ３０の傾きであり、もう一つは、ＸＹ平面に対し、時計方向又は反時計方向にセンサ３０を回転させた場合のＸＹ方向の傾きである。
【００６１】
ＨＨＰ２０は、表示デバイス１０の画面１１に表示された画像を検出することによりキャリブレーションを実行し、高さ方向（Ｚ軸方向）のズレ、ＸＺ方向及びＹＺ方向の傾き、及びＸＹ方向の傾きの３つをそれぞれ個別に計測する。
【００６２】
以下、キャリブレーション実行時の高さ方向（Ｚ軸方向）のズレ、ＸＺ方向及びＹＺ方向の傾き、ＸＹ方向の傾きの３つの計測についてそれぞれ説明する。
【００６３】
＜高さ方向（Ｚ軸方向）のズレの計測＞
ＨＨＰ２０は、例えば、以下の４つの方法で高さ方向のズレを計測する。
【００６４】
図９は、高さ方向のズレの計測を行う場合の説明図である。図９〜図１３を用いて高さ方向のズレを計測する第１の例について説明する。（ａ）は、センサ３０を通常の高さに配置した場合を示し、（ｂ）は、センサ３０が左側よりもＺ軸方向の距離ｈ分高く配置されている場合を示す。
【００６５】
図９の（ａ）に示すように、ＬＥＤ／ＬＡＳＥＲＤｒｉｖｅ５２は、レンズ５３ａによりＬＥＤ／ＬＡＳＥＲＤｒｉｖｅ５２からのレーザ光を平行光とし、平行光としたレーザ光を印刷媒体２の所定の範囲に照射する。イメージアレイ５４は、レンズ５３ｂを介して印刷媒体２からの反射光を取得し、画像データとしてイメージプロセッサ５１に送信する。イメージプロセッサ５１では、所定の分解能でマトリクス化した画像データを生成する。
【００６６】
図９の（ａ）の場合と（ｂ）の場合を比較すると、Ｚ軸方向の距離ｈ分高く配置されたことにより、イメージアレイ５４が反射光から取得する画像の解像度が（ａ）よりも（ｂ）の方が低くなる。
【００６７】
図１０は、センサ３０の高さ方向のズレを計測する第１の例における元画像と取得された画像を示す図である。図１０（ａ）は、印刷媒体２に表される元画像を示す。また、図１０の（ｂ）及び（ｃ）は、それぞれ図９（ａ）及び（ｂ）に対応するイメージアレイ５４によって取得された画像を示す。図１０（ｂ）及び（ｃ）の１セルが１０００ｄｐｉ×１０００ｄｐｉに相当する。
【００６８】
図１０（ｂ）は、図９（ａ）の場合にイメージアレイ５４によって取得された画像を示しており、画像の大きさがＸ軸方向に２セル、Ｙ軸方向に２セル分となっている。このため、図１０（ｂ）の正方形の画像の一辺は、５０．８ｕｍ（＝２５．４／１０００×２）となる。
【００６９】
図１０（ｃ）は、図９（ｂ）の場合にイメージアレイ５４によって取得された画像を示しており、画像の大きさがＸ軸方向に１セル、Ｙ軸方向に１セル分となっている。このため、図１０（ｃ）の正方形の画像の一辺は、２５．４ｕｍ（＝２５．４／１０００×１）となり、図１０（ｂ）の場合と比較して解像度が低い。
【００７０】
このように、センサ３０の高さにより画像データの大きさが変わる。センサ３０の高さが低くなる程、画像の解像度が高くなり、センサ３０の高さが高くなる程画像の解像度が低くなる。すなわち、センサ３０の高さと画像の解像度とは関連しており、画像の解像度からセンサ３０の高さを求めることが可能である。また、センサ３０の高さから画像の解像度を求めることも可能である。
【００７１】
したがって、高さ検出部４５は、センサ３０から取得された画像の解像度に基づいてセンサ３０の高さを検出することができる。
【００７２】
図１１は、キャプチャ画像のサイズと解像度との関係表の一例を示す図である。図１１の関係表は、キャプチャ画像一辺あたりのセル数と、センサ３０の高さ（ｍｍ）と、センサの解像度（ｄｐｉ）との関係を示す。画面１１に表示される図形１２の一辺に相当するセル数をカウントし、図１１の関係表と比較することにより、センサ３０の現在の高さ（ｍｍ）に相当する解像度（ｄｐｉ）を求めることができる。
【００７３】
例えば、図１１の関係表は、図形１２の一辺の長さが２５４μｍ、センサ３０の標準の高さを２．５ｍｍ、設定解像度を１０００ｄｐｉとした場合のセル数とセンサの解像度との関係を示している。
【００７４】
例えば、図１１に係る関係表をＲＯＭ２８に保持しておき、位置算出回路３２は、センサ３０の移動量ΔＸ及びΔＹを補正する場合に用いてもよい。また、センサ３０によって計測されたセル数と解像度との関係を示す数式で使用する係数を補正係数としてＲＯＭ２８に保持しておき、位置算出回路３２は、センサ３０の移動量ΔＸ及びΔＹを補正する場合に用いてもよい。例えば、補正係数は、実際のＨＨＰ２０の移動量（キャリブレーション時は図形１２の移動量）を、センサ３０が検出した移動量で除算した値であってもよい。
【００７５】
図１２は、解像度とセンサ３０の高さとの関係を示す図である。図１２に示されるグラフの縦軸は、解像度（ｄｐｉ）を示し、横軸は、高さ（ｍｍ）を示す。高さ２．０ｍｍ〜３．０ｍｍの範囲でグラフはほぼ直線となっており、高さ及び解像度の間で、比例関係が成り立っていることがわかる。すなわち、センサ３０の高さが高くなるほど解像度が低くなり、センサ３０の高さが低くなるほど解像度が高くなる。
【００７６】
また、センサ３０により安定してＨＨＰ２０の移動量を計測できる高さの範囲がある。例えば、図１２の例では、センサ３０により安定してＨＨＰ２０の移動量を計測できる高さが２．０ｍｍ〜３．０ｍｍとなっている。
【００７７】
高さ検出部４５は、計測したセンサ３０の解像度に基づいてセンサ３０の高さを求める。例えば、高さ検出部４５は、計測した解像度が８００ｄｐｉである場合、センサ３０の高さが２．０ｍｍであると判定する。また、高さ検出部４５は、計測した解像度が１０００ｄｐｉである場合、センサ３０の高さが２．５ｍｍであると判定する。また、高さ検出部４５は、計測した解像度が１２００ｄｐｉである場合、センサ３０の高さが３．０ｍｍであると判定する。解像度（センサ３０の高さ）とＨＨＰ２０の移動量とは相関があり、解像度が低い程、センサ３０の高さが高くなって、ＨＨＰ２０の移動量が実際のＨＨＰ２０の移動量よりも大きく検出される。よって、解像度に基づきセンサ３０の高さを検出することによりＨＨＰ２０の移動量を補正することができる。
【００７８】
図１３は、センサ３０の高さ方向のズレを計測する第２の例における元画像と取得された画像を示す図である。第２の高さ方向のズレの計測方法について説明する。（Ａ）は、印刷媒体２に印刷された異なる粒度の図形が複数表示された元画像を示す。（Ｂ）、（Ｃ）及び（Ｄ）は、イメージプロセッサ５１によって取得された画像である。（Ｂ）がセンサ３０の高さが最も低い場合に取得された画像であり、（Ｃ）、（Ｄ）の順にセンサ３０の高さが高い場合に取得された画像である。（Ａ）に示すように、元画像には粒度の異なる４つの図形が表示されている。センサ３０の高さが最も低い（Ｂ）の場合、元画像に表示されている４つの図形全てが表示されている。次にセンサ３０の高さが低い（Ｃ）の場合、元画像に表示されている４つの図形のうち、３つの図形が表示され、一番左の最も粒度の小さい図形が読み取れなくなっている。最もセンサ３０の高さが高い（Ｄ）の場合、元画像に表示されている４つの図形のうち、２つの図形が表示され、左から一番目の図形と二番目の図形が読み取れなくなっている。また、（Ｄ）の場合、一番右側の図形の境界線が不鮮明となり、元画像が正方形であるのに対し、十字状の図形となっている。
【００７９】
このように、センサ３０の高さが比較的低い場合、解像度が高くなるため、粒度の小さい図形を検出することができ、センサ３０の高さが比較的高い場合、解像度が低くなるため、粒度の大きい図形しか検出することができない。
【００８０】
したがって、高さ検出部４５は、粒度の異なる図形の画像をセンサ３０から取得し、検出された最も小さい粒度の図形に基づいて解像度を求めることができる。
【００８１】
図１４は、センサ３０の高さ方向のズレを計測する第３の例における画面と取得された画像を示す図である。第３の高さ方向のズレの計測方法について説明する。図１４の左側の図は、ＨＨＰ２０を載置した場合の表示デバイス１０の画面１１を示す。例えば、表示デバイス１０は、画面１１に棒状の図形１２を表示する。画面１１の面をＸＹ平面としたとき、キャリブレーション開始時には、例えば、棒状の図形はＹ軸に平行に画面１１の左側の位置に表示される。続いて、表示デバイス１０は、棒状の図形１２をＸ軸に平行に徐々に右側へ移動させる。
【００８２】
図１４の（Ａ）、（Ｂ）及び（Ｃ）は、センサ３０の高さが標準よりも低い場合のイメージアレイ５４によって取得された画像を示し、（ａ）、（ｂ）及び（ｃ）は、センサ３０の高さが標準よりも高い場合のイメージアレイ５４によって取得された画像を示す。センサ３０の高さを標準よりも低くした場合、標準よりも解像度が高くなり、センサ３０の高さを標準よりも高くした場合、標準よりも解像度が低くなる。
【００８３】
（Ａ）及び（ａ）は、画面１１の初期位置に棒状の図形１２が表示されている場合に、イメージアレイ５４によって取得された画像を示す。（Ｂ）及び（ｂ）は、画面１１において棒状の図形１２をＸ軸に平行に所定距離移動させた場合に、イメージアレイ５４によって取得された画像を示す。（Ｃ）及び（ｃ）は、画面１１において棒状の図形１２をＸ軸に平行に終了位置まで移動させた場合に、イメージアレイ５４によって取得された画像を示す。
【００８４】
棒状の図形１２が（Ａ）の位置から（Ｂ）の位置まで移動した場合、高さ検出部４５は、ΔＸ＝５を検出し、（Ｂ）の位置から（Ｃ）の位置まで移動した場合、高さ検出部４５は、ΔＸ＝５を検出する。したがって、高さ検出部４５は、棒状の図形１２が初期位置から終了位置まで移動した場合にΔＸ＝１０を検出する。
【００８５】
一方、棒状の図形１２が（ａ）の位置から（ｂ）の位置まで移動した場合、高さ検出部４５は、ΔＸ＝２を検出し、（ｂ）の位置から（ｃ）の位置まで移動した場合、高さ検出部４５は、ΔＸ＝２を検出する。したがって、高さ検出部４５は、棒状の図形１２が初期位置から終了位置まで移動した場合にΔＸ＝４を検出する。
【００８６】
このように、センサ３０の高さが高い場合（解像度が低い場合）、センサ３０によって検出される図形１２の移動量が大きくなり、センサ３０の高さが低い場合（解像度が高い場合）、センサ３０によって検出される図形の移動量が小さくなる。すなわち、図形の移動量とセンサ３０の高さ（解像度）とは関連しており、図形を一定距離移動させた場合に、センサ３０によって検出される図形の移動量からセンサ３０の高さを求めることができる。
【００８７】
したがって、高さ検出部４５は、図形を一定距離移動させた場合に、センサ３０によって検出された図形の移動量に基づいてセンサの高さ（解像度）を求める。
【００８８】
図１５は、センサ３０の高さ方向のズレを計測する第４の例における元画像と取得された画像を示す図である。第４の高さ方向のズレの計測方法について説明する。（Ａ）は、印刷媒体２に印刷された元画像を示す。（Ｂ）、（Ｃ）及び（Ｄ）は、イメージアレイ５４によって取得された画像であり、（Ｂ）が最も露光時間を短くして取得された画像であり、（Ｃ）、（Ｄ）の順に露光時間を長くして取得された画像である。
【００８９】
最も露光時間が短い（Ｂ）の場合、元画像に表示されている４つの画像のうち、２つの画像が表示され、左から一番目の画像と二番目の画像が読み取れなくなっている。さらに、一番右側の画像の境界線が不鮮明となり、元画像が正方形であるのに対し、十字状の画像となっている。次に露光時間が短い（Ｃ）の場合、元画像に表示されている４つの画像のうち、３つの画像が表示され、一番左の画像が読み取れなくなっている。露光時間が最も長い（Ｄ）の場合、元画像に表示されている４つの画像の全てが表示されている。
【００９０】
そして、センサ３０の高さが高く、解像度が低い場合、イメージアレイ５４によって鮮明な画像が取得されるまでの露光時間が長くなり、センサ３０の高さが低く、解像度が高い場合、イメージアレイ５４によって鮮明な画像が取得されるまでの露光時間が短くなる。
【００９１】
すなわち、高さ検出部４５は、イメージアレイ５４によって鮮明な画像が取得されるまでの露光時間を計測することでセンサ３０の高さを求めることができる。例えば、高さ検出部４５は、露光時間とセンサ３０の高さとの関係を示す数式、又はセンサ３０の高さごとに露光時間を関連付けた表をＲＯＭ２８に保持しておき、計測した露光時間からセンサ３０の高さを求める際に使用してもよい。
【００９２】
＜ＸＺ方向及びＹＺ方向の傾きの計測＞
図１６は、センサ３０のＸＺ方向の傾きを計測する例を示す図である。ＸＺ方向及びＹＺ方向の傾き計測する２つの方法について、以下に例示して説明する。
【００９３】
（ａ）には、画面１１の面をＸＹ方向とし、画面１１の面に対して鉛直な軸をＺ軸とし、ＸＺ方向に平行なＨＨＰ２０の断面図を２つ示している。
【００９４】
（ａ）の左側の図では、ＨＨＰ２０の底面をＸＹ平面に平行にした場合に、センサ３０の面がＸＹ平面に対して平行となっている。これに対して（ａ）の右側の図では、ＨＨＰ２０の底面をＸＹ平面に平行にした場合に、センサ３０の面がＸＹ平面に対して傾きを持っている。
【００９５】
（ｂ）は、センサ３０から印刷媒体２にＬＥＤレーザを照射した場合を示す。（ｂ）の左側の図は、（ａ）の左側の図に対応しており、センサ３０をＸＹ平面に平行とした状態で印刷媒体２にＬＥＤレーザを照射した場合を示す。また、（ｂ）の右側の図は、（ａ）の右側の図に対応しており、センサ３０がＸＹ平面に対して傾いている状態で印刷媒体２にＬＥＤレーザを照射した場合を示す。
【００９６】
（ｃ）は、ＬＥＤレーザが照射された印刷媒体２の一部を拡大した図である。縞状の線は、ＬＥＤレーザの照射方向を表す。（ｃ）の左側の図は、（ｂ）の左側の図に対応しており、やや左斜め上方向から印刷媒体２にＬＥＤレーザが照射され、印刷媒体２上の突起の右部分に影が生じている。（ｃ）の右側の図は、（ｂ）の右側の図に対応しており、（ｃ）の左側の図よりもより左側の方向から印刷媒体２にＬＥＤレーザが照射されている。（ｃ）の右側の図は、（ｃ）の左側の図よりも左側からＬＥＤレーザが照射されているため、突起の右方向に（Ｘ軸正方向）にやや長い影が生じる。
【００９７】
（ｄ）は、イメージアレイ５４によって取得された画像を示す。（ｄ）の左側の２つの図は、（ｃ）の左側の図に対応しており、左側は図形１２が初期位置にある場合の画像であり、右側は図形１２が移動して終了位置にある場合の画像である。同様に、（ｄ）の右側の２つの図は、（ｃ）の右側の図に対応しており、左側は図形１２が初期位置にある場合の画像であり、右側は図形１２が移動して終了位置にある場合の画像である。
【００９８】
（ｄ）の左側の図の初期位置にある図形１２の縦の長さは３セル、横の長さは３セルとなっており、縦横比が１：１となっている。これに対して、（ｄ）の右側の図の初期位置にある図形１２の縦の長さは３セル、横の長さは４セルとなっており、縦横比が３：４となっている。すなわち、（ｄ）の右側の図は、センサ３０がＸＺ方向に傾いていることにより、図形１２の形状がＸ軸方向に１セル分伸びている。このように、傾き検出部４６は、センサ３０をＸＹ平面に平行とした状態のときの画像と比較した画像の形状（例えば、縦横比）によって、センサ３０のＸＺ方向の傾きを検出できる。
【００９９】
傾き検出部４６は、Ｘ軸方向（横方向）の図形の長さ、及びＹ軸方向（縦方向）の図形の長さの比率に基づいて補正係数を算出する。
【０１００】
また、印刷媒体２を所定距離移動させた場合の画像の移動量によってもセンサ３０のＸＺ方向の傾きを検出できる。
【０１０１】
印刷媒体２をＸ軸方向に６セル分移動（ΔＸ＝６）させた場合を例に説明する。センサ３０をＸＹ平面に平行とした状態でＸ軸方向に６セル分移動させた場合、傾き検出部４６は、（ｄ）の左側の図のように図形１２の初期位置から終了位置まで６セル分の移動（ｄｘ＝６）を検出する。これに対して、センサ３０をＸＹ平面に対して傾きがある状態でＸ軸方向に６セル分移動させた場合、傾き検出部４６は、（ｄ）の右側の図のように図形１２の初期位置から終了位置まで８セル分の移動（ｄｘ＝８）を検出する。このように、傾き検出部４６は、Ｘ軸方向に一定距離図形を移動させたときの移動量に基づいてセンサ３０のＸＺ方向の傾きを検出できる。
【０１０２】
傾き検出部４６は、計測したＸ軸方向の移動量及び計測したＹ軸方向の移動量の比率に基づいて補正係数を算出する。
【０１０３】
このように、傾き検出部４６は、センサ３０をＸＹ平面に平行とした状態のときの画像の縦横比又は移動量と比較することで、センサ３０のＸＺ方向の傾きを検出できる。
【０１０４】
また、傾き検出部４６は、上記と同様の方法によりＹＺ方向の傾きに係る補正係数を求める。
【０１０５】
＜ＸＹ方向の傾きの計測＞
図１７は、ＨＨＰ２０の底面の各部位の位置関係を示す図である。図１７は、ＨＨＰ２０の底面である。ＨＨＰ２０の縦方向及び横方向の辺に平行な軸をＸ軸、Ｙ軸とする。Ｘ軸はＩＪ記録ヘッド２４のノズルの配列方向に垂直であり、Ｙ軸はＩＪ記録ヘッド２４のノズルの配列方向に平行である。また、センサ３０ａ及びセンサ３０ｂの形状は、例えば、長方形であり、短辺がＸ軸に平行であり、長辺がＹ軸に平行である。図１７に示すような場合にセンサ３０ａ及びセンサ３０ｂは、ＸＹ方向に傾きなく取り付けられているものとする。なお、ＩＪ記録ヘッド２４の形状は、長方形に限定されない。
【０１０６】
図１８は、センサ３０のＸＹ方向の傾きによる影響を示す図である。（ａ）は、ＨＨＰ２０の底面の各部位の位置関係を示す。ＩＪ記録ヘッド２４及びセンサ３０ａの位置関係は、図１８と同様に各辺がＸ軸及びＹ軸に平行である。一方、センサ３０ｂは、短辺がＸ軸に対して角度θ、反時計方向に傾いている。
【０１０７】
（ｂ）は、ＨＨＰ２０をＸ軸方向にΔＸ、Ｙ軸方向にΔＹ移動させた場合の各センサが計測するＸ軸方向及びＹ軸方向の移動量を示す。（ｉ）は、センサ３０ａが計測したΔＸ及びΔＹであり、ＨＨＰ２０の実際の移動量と一致している。一方、（ｉｉ）は、センサ３０ｂが計測したΔＸ及びΔＹであり、ＨＨＰ２０の実際の移動量よりもΔＸが長くなっており、ΔＹが短くなっている。
【０１０８】
（ｃ）は、センサ３０ａ及びセンサ３０ｂが計測した移動量を比較するための図である。（ｉｉ）のΔＸの軸を（ｉ）のΔＸの軸にそろえた場合に、センサ３０ａ及びセンサ３０ｂの実際の移動量が同じであっても、計測される移動量ΔＸ及びΔＹに誤差が生じることが分かる。
【０１０９】
傾き検出部４６は、一方のセンサ３０に対する他方のセンサ３０のＸＹ方向の傾きθを算出する。例えば、センサ３０ａの短辺に平行な軸をＸ軸、長辺に平行な軸をＹ軸としたとき、センサ３０ｂのＸＹ方向の傾きθは、以下の数式に基づいて算出することができる。すなわち、傾きθはセンサ３０ａ及びセンサ３０ｂのＸＹ方向の角度差である。
【０１１０】
【数１】
0006582873.tif 000002
また、位置算出回路３２は、数１の数式により算出したＸＹ方向の傾きθに基づいて下記の数式により実際の移動量ΔＸ及びΔＹを算出することができる。
【０１１１】
ΔＸ＝ｄｘ×ｃｏｓθ＋ｄｙ×ｓｉｎθ
ΔＹ＝ｄｘ×ｓｉｎθ−ｄｙ×ｃｏｓθ・・・（１）
このように、センサ３０ａ及びセンサ３０ｂ間で発生する移動量の誤差を補正することでセンサ３０のＸＹ方向の傾きによる誤差を軽減することができる。
【０１１２】
また、傾き検出部４６は、ｓｉｎθ及びｃｏｓθを補正係数としてメモリ２９に記録しておき、実際の移動量ΔＸ及びΔＹを算出する際に使用してもよい。
【０１１３】
＜キャリブレーションに使用される図形のパターン例＞
図１９は、キャリブレーションに使用される図形のパターン例を示す第１の図である。（ａ）は、正方形の図形を等間隔に複数並べた場合の画像である。（ａ）の図形をＸ軸方向及びＹ軸方向に動かし、移動量ΔＸ及びΔＹを求めることにより、高さ方向のズレ、ＸＺ方向及びＹＺ方向の傾き、ＸＹ方向の傾きを算出することができる。（ｂ）は、Ｙ軸方向に平行な線状の図形を複数並べた場合の画像である。（ｂ）の図形は、Ｙ軸方向に動かしてΔＹを求める場合に用いられる。また、Ｘ軸方向に平行な線状の図形を用いることで、高さ検出部４５及び傾き検出部４６は、図形をＸ軸方向に動かしてΔＸを求めることもできる。
【０１１４】
図２０は、キャリブレーションに使用される図形のパターン例を示す第２の図である。図２０の（ａ）及び（ｂ）は、図１９の（ａ）及び（ｂ）と同じパターンの図形であるが、図１９と比べてＨＨＰ２０の載置位置が４５°傾いているため、図１９と比べて図形がＸＹ方向に４５°傾いている。
【０１１５】
高さ検出部４５及び傾き検出部４６は、セル単位で図形の移動量を計測し、セル単位の図形の移動量の平均値に基づいて移動量ΔＸ及びΔＹを求めてもよい。これにより、画面１１上のＨＨＰ２０が載置された位置にズレがあっても、キャリブレーションへの影響を少なくすることができる。
【０１１６】
＜キャリブレーション処理のフロー＞
図２１は、キャリブレーション処理の全体のフローを示す図である。図２１の左側はユーザの操作又は表示デバイス１０の動作を示し、右側はＨＨＰ２０の動作を示す。
【０１１７】
ユーザによりＨＨＰ２０の電源ボタンが押下されると（ステップＳ１０）、ＨＨＰ２０の高さ方向（Ｚ軸方向）のズレ、ＸＺ方向及びＹＺ方向の傾き、ＸＹ方向の傾きの計測値が初期化される（ステップＳ２０）。続いて、キャリブレーション処理が開始され（ステップＳ１１）、ユーザにより表示デバイス１０がＨＨＰ２０の下に設置される。続いて、表示デバイス１０は、固定パターン画像を表示する（ステップＳ１３）。例えば、表示デバイス１０は、図２（ｂ）のような棒状の図形を固定パターン画像として表示する。続いて、ユーザによりＨＨＰ２０のキャリブレーションボタン５が押下される（ステップＳ１４）。ＨＨＰ２０は、キャリブレーションボタン５が押下されるとレディ状態に移行する。
【０１１８】
ＨＨＰ２０は、レディ状態であるか否かを判定する（ステップＳ２１）。ＨＨＰ２０は、レディ状態に移行していた場合（ステップＳ２１Ｙｅｓ）、ＬＥＤ６を点灯させる（ステップＳ２２）。一方、ＨＨＰ２０は、レディ状態に移行していない場合（ステップＳ２１Ｎｏ）、所定時間経過後にステップＳ２１を再度実行する。
【０１１９】
続いて、ＨＨＰ２０は、センサ３０上のキャプチャ画像を取り込む（ステップＳ２３）。続いて、ＨＨＰ２０は、キャプチャ画像一辺のセル数をカウントする（ステップＳ２４）。
【０１２０】
続いて、高さ検出部４５は、キャプチャ画像一辺のセル数から現在の画面１１からの高さ（Ｚ軸方向の距離ｈ）を求める（ステップＳ２５）。例えば、高さ検出部４５は、図１１に示す関係表を用いてセンサ３０の高さを求めてもよい。続いて、高さ検出部４５は、高さに対応する解像度に応じた補正係数をメモリ２９に格納する（ステップＳ２６）。なお、高さ検出部４５は、図１１に示す関係表をメモリ２９に格納し、補正係数の代わりに用いてもよい。
【０１２１】
続いて、傾き検出部４６は、キャプチャ画像一辺のセル数から現在のＸＺ方向の傾きを算出する（ステップＳ２７）。
【０１２２】
キャプチャ画像一辺のセル数から現在のＸＺ方向の傾きを算出する方法以外の方法を用いてＸＺ方向の傾きを算出してもよい。例えば、傾き検出部４６は、例えば、図１６（ｄ）に示す例のように画面１１に表示された図形１２の移動量に基づいてＸＺ方向の傾きを算出してもよい。
【０１２３】
続いて、傾き検出部４６は、ＸＺ方向の傾きに応じた補正係数をメモリ２９に格納する（ステップＳ２８）。
【０１２４】
続いて、傾き検出部４６は、キャプチャ画像一辺のセル数から現在のＹＺ方向の傾きを算出する（ステップＳ２９）。続いて、傾き検出部４６は、ＹＺ方向の傾きに応じた補正係数をメモリ２９に格納する（ステップＳ３０）。
【０１２５】
続いて、表示デバイス１０は、キャリブレーションボタン５が押下されてから一定時間経過した後に、固定パターン画像を移動させる（ステップＳ１５）。
【０１２６】
続いて、傾き検出部４６は、２つのセンサ３０ａ及びセンサ３０ｂによって計測された固定パターン画像の移動量ΔＸ及びΔＹに基づいて現在のＸＹ方向の傾きθを算出する（ステップＳ３１）。例えば、傾き検出部４６は、数１の数式に基づいてＸＹ方向の傾きθを算出する。
【０１２７】
傾き検出部４６は、算出したＸＹ方向の傾きθに応じた補正係数をメモリ２９に格納する（ステップＳ３２）。例えば、傾き検出部４６は（１）の数式に使用するｓｉｎθ及びｃｏｓθを補正係数としてメモリに格納してもよい。
【０１２８】
続いて、ＨＨＰ２０は、ＬＥＤ６を消灯させる（ステップＳ３３）。続いて、ユーザによってＨＨＰ２０が印字媒体上に移動されると、メモリ２９に格納された各補正係数を用いて位置算出回路３２によって算出された正確な現在位置を参照しつつ、ＨＨＰ２０は、印字処理を開始する（ステップＳ１６）。
【０１２９】
なお、ステップＳ２５、Ｓ２６の高さ（Ｚ）方向のずれの補正、ステップＳ２７〜Ｓ３０の傾き（ＸＺ，ＹＺ）方向のずれの補正、ステップＳ３１、３２の平面上（ＸＹ方向）のずれの補正のうち、高さ（Ｚ）方向のずれの補正のみが行われてもよい。また、ステップＳ２７〜Ｓ３０の傾き（ＸＺ，ＹＺ）方向のずれの補正のみが行われてもよい。ステップＳ３１、３２の平面上（ＸＹ方向）のずれの補正のみが行われてもよい。ただし、上記３つの補正がすべて実行されることが好ましい。また、上記３つの補正が行われる順番は、図２１の順番に限らず、どのような順番であってもよい。
【０１３０】
＜移動後のセンサの移動成分の算出＞
図２２は、センサの位置算出方法を説明するための図である。図２２において左側に移動前のＩＪ記録ヘッド２４が示され、右側に移動後のＩＪ記録ヘッド２４が示される。ＩＪ記録ヘッド２４の両端にはセンサ３０ａ及びセンサ３０ｂが配置されている。ＩＪ記録ヘッド２４は、右上方向に移動しており、センサ３０ａ及びセンサ３０ｂを通る軸が正時計方向にｄθ旋回している。
【０１３１】
センサ３０ａの初期位置を（Ｘ０,Ｙ０）とし、センサ３０ｂの初期位置を（Ｘ１,Ｙ１）とし、センサ３０ａからセンサ３０ｂまでの距離をＬとする。また、移動前及び移動後のセンサ３０ａ及びセンサ３０ｂを通る軸の回転成分をｄθとし、また、移動前及び移動後のセンサ３０ａのＸ軸方向の並行移動成分をΔＸ０,Ｙ軸方向の並行移動成分をΔＹ０とする。また、移動前及び移動後のセンサ３０ａによって検出されたＸ軸方向の移動成分をｄｘＳ０、Ｙ軸方向の移動成分をｄｙＳ０とする。なお、センサ３０ａによって検出された移動成分をｄｘＳ０及びｄｙＳ０には、センサ３０ａ及びセンサ３０ｂを通る軸の回転成分が含まれている。
【０１３２】
位置算出回路３２は、ｄｘＳ０から回転成分と並行移動成分をそれぞれ算出する。位置算出回路３２は、回転成分ｄθを以下の数式に基づいて算出する。
【０１３３】
【数２】
0006582873.tif 000003
位置算出回路３２は、並行移動成分ｄＸ０及びｄＹ０を以下の数式に基づいて算出する。
【０１３４】
ｄＸ０＝ｄｘＳ０×ｃｏｓθ＋ｄｙＳ０×ｓｉｎθ
ｄＹ０＝−ｄｘＳ０×ｓｉｎθ＋ｄｙＳ０×ｃｏｓθ・・・（２）
＜移動後のセンサの位置の補正＞
続いて、位置算出回路３２は、センサ３０ａの解像度から算出された補正係数に基づいてｄＸ０及びｄＹ０を補正する。具体的には、高さ検出部４５によってセンサ３０の高さに対応する補正係数があらかじめ算出され、メモリ２９に格納されている。位置算出回路３２は、メモリ２９に格納されている補正係数に基づいて並行移動成分ｄＸ０及びｄＹ０を補正する。
【０１３５】
例えば、補正係数ＣＴは、実際のＨＨＰ２０の移動量を、センサ３０が検出した移動量で除算した値とする場合、以下の数式を用いて並行移動成分ｄＸ０及びｄＹ０を補正する。なお、補正後のｄＸ０及びｄＹ０は、ｄＸ０'及びｄＹ０'である。
【０１３６】
ｄＸ０'＝ＣＴ×ｄＸ０
ｄＹ０'＝ＣＴ×ｄＹ０・・・（３）
続いて、位置算出回路３２は、傾き検出部４６によって算出されたＸＺ方向の傾きに係る補正係数及びＹＺ方向の傾きに係る補正係数に基づいて移動成分ｄＸ０及びｄＹ０を補正する。例えば、Ｘ軸方向の移動量の係数をＣＸ、Ｙ軸方向の移動量の係数をＣＹとした場合、以下の数式を用いて並行移動成分ｄＸ０及びｄＹ０を補正する。
【０１３７】
ｄＸ０'＝ＣＸ×ｄＸ０
ｄＹ０'＝ＣＹ×ｄＹ０・・・（４）
続いて、位置算出回路３２は、ＸＹ方向の傾きに係る補正係数（例えば、センサ３０ａ及びセンサ３０ｂのｓｉｎθ,ｃｏｓθ）を（２）の数式に用いることにより、移動成分ｄＸ０及びｄＹ０を補正する。
【０１３８】
続いて、位置算出回路３２は、センサ３０ａの初期位置（Ｘ０,Ｙ０）に移動量ｄＸ０及びｄＹ０を加算（Ｘ０＋ｄＸ０,Ｙ０＋ｄＹ０）することで、センサ３０ａの移動後の位置（Ｘ０',Ｙ０'）を算出する。
【０１３９】
続いて、位置算出回路３２は、センサ３０ａの移動後の位置（Ｘ０',Ｙ０'）、及びセンサ３０ａとセンサ３０ｂとを通る線とＹ軸との角度θを、以下の数式に代入し、センサ３０ｂの移動後の位置（Ｘ１',Ｙ１'）を算出する。
【０１４０】
Ｘ１'＝Ｘ０'−Ｌ×ｓｉｎθ
Ｙ１'＝Ｙ０'−Ｌ×ｃｏｓθ・・・（５）
なお、位置算出回路３２は、センサ３０ａと同様にしてセンサ３０ｂの移動後の位置を算出してもよい。
【０１４１】
＜各ノズルの位置の算出＞
図２３は、先頭のノズル位置の算出を説明するための第１の図である。センサ３０ａ及びセンサ３０ｂを結ぶ線分上にノズル２４ａ〜２４ｆが配置されている。位置算出回路３２は、上記処理によって補正されたセンサ３０ａ及びセンサ３０ｂと各ノズルの位置関係から、各ノズルの正確な位置を算出する。
【０１４２】
センサ３０ａからＩＪ記録ヘッド２４までの距離をａ、ＩＪ記録ヘッド２４のセンサ３０ａ側の端部から先頭のノズル２４ａまでの距離をｄ、各ノズル間の距離をｅとした場合、位置算出回路３２は、配列の先頭のノズル２４ａの位置（ＮＺＬ１＿Ｘ, ＮＺＬ１＿Ｙ）を以下の数式で求める。また、位置算出回路３２は、後尾のノズル２４ｆをノズル２４ａの場合と同様に求める。
【０１４３】
ＮＺＬ１＿Ｘ＝Ｘ０−（ａ＋ｄ）×ｓｉｎθ
ＮＺＬ１＿Ｙ＝Ｙ０−（ａ＋ｄ）×ｃｏｓθ・・・（６）
図２４は、先頭のノズル位置の算出を説明するための第２の図である。ノズル２４Ａ〜２４Ｆは、センサ３０ａ及びセンサ３０ｂを結ぶ線分上に配置されていない。ノズル２４ａ〜２４ｆの配列をｎ列、ノズル２４ａ〜２４ｆの配列をｃ列とし、ｎ列とｃ列との距離をｆとしたとき、位置算出回路３２は、配列ｃの先頭のノズル２４Ａの位置（ＮＺＬ１＿Ｘ, ＮＺＬ１＿Ｙ）を以下の数式で求める。また、位置算出回路３２は、配列ｃの後尾のノズル２４Ｆをノズル２４Ａの場合と同様に求める。
【０１４４】
ＮＺＬｃ−１＿Ｘ＝Ｘ０−（ａ＋ｄ）×ｓｉｎθ＋ｆ×ｃｏｓθ
ＮＺＬｃ−１＿Ｙ＝Ｙ０−（ａ＋ｄ）×ｃｏｓθ＋ｆ×ｓｉｎθ・・・（７）
図２５は、先頭及び後尾ノズルの中間にあるノズルの位置の算出を説明するための第１の図である。位置算出回路３２は、先頭及び後尾ノズルとの位置関係に基づいて、以下の数式で先頭及び後尾ノズルの中間にある先頭からＮ番目のノズル２４Ｎ（２４ｂ〜ｆ）の位置を求める。
【０１４５】
ＮＺＬＮ＿Ｘ＝ＸＳ＋｛（ＸＥ−ＸＳ）／（Ｅ−１）｝×Ｎ
ＮＺＬＮ＿Ｘ＝ＹＳ＋｛（ＹＥ−ＹＳ）／（Ｅ−１）｝×Ｎ・・・（８）
図２６は、先頭及び後尾ノズルの中間にあるノズルの位置の算出を説明するための第２の図である。例えば、位置算出回路３２は、ノズル配列の延長線上に存在する仮想のノズルの位置に基づいて、先頭のノズル以降のノズルの位置を求めることができる。位置算出回路３２は、各ノズル間の距離ｅと、Ｘ軸方向とのノズル配列の傾きθに基づいて仮想のノズルの位置（ＮＺＬ＿ＸＥ,ＮＺＬ＿ＹＥ）をあらかじめ算出しておく。
【０１４６】
例えば、ノズル配列に１９２個のノズルが配置されており、２５７番目のノズルを仮想のノズルとし、１番目のノズル２４＿１の位置を（ＮＺＬ＿ＸＳ,ＮＺＬ＿ＹＳ）、仮想のノズル２４＿２５７の位置を（ＮＺＬ＿ＸＥ,ＮＺＬ＿ＹＥ）としたとき、以下の数式で先頭及び後尾ノズルの中間にある先頭からＮ番目のノズル２４＿Ｎの位置（ＮＺＬＮＸ, ＮＺＬＮＹ）を求める。
【０１４７】
ＮＺＬＮＸ＝｛ＮＺＬ＿ＸＳ×（２５７−Ｎ）＋ＮＺＬ＿ＸＥ×（Ｎ−１）｝÷２５６
ＮＺＬＮＹ＝｛ＮＺＬ＿ＹＳ×（２５７−Ｎ）＋ＮＺＬ＿ＹＥ×（Ｎ−１）｝÷２５６・・・（９）
［実施形態２］
実施形態１では、ユーザが印字処理を開始する前にキャリブレーションを実行することを説明したが、これに限定されず、ＨＨＰ２０の製造工程においてキャリブレーションを実行してもよい。
【０１４８】
ＨＨＰ２０の製造工程において実行されたキャリブレーションの結果は、例えば、ＲＯＭ２８に保持しておいてもよい。例えば、高さ検出部４５によって計測されたセンサ３０の高さに係る補正係数、傾き検出部４６によって計測されたＸＺ方向及びＹＺ方向の傾きに係る補正係数、傾き検出部４６によって計測されたＸＹ方向の傾きに係る補正係数を算出し、ＲＯＭ２８に保持しておく。
【０１４９】
これにより、ＨＨＰ２０を稼働させ始めた初期の段階で、ユーザによるキャリブレーション処理を省略又は簡略化することができ、ユーザの利便性を向上できる。
【０１５０】
また、センサ３０の高さを計測し、安定してＨＨＰ２０の移動量を計測できない高さであった場合は、センサ３０を取り付け直したり、センサ３０を交換したりするようにしてもよい。すなわち、ＨＨＰ２０のテスト工程でキャリブレーション処理を実行してもよい。
【０１５１】
例えば、図１２に示す例では、センサ３０の高さが２．０ｍｍ〜３．０ｍｍの範囲である場合に安定してＨＨＰ２０の移動量を計測できるが、センサ３０の高さが２．０ｍｍ〜３．０ｍｍの範囲外である場合、センサ３０を取り付け直したり、センサ３０を交換したりするようにしてもよい。
【０１５２】
なお、ＨＨＰ２０は、画像形成装置の一例である。センサ３０は、検出手段の一例である。センサＩ／Ｆ４２は、移動量算出部の一例である。高さ検出部４５及び傾き検出部４６は、取得手段の一例である。画面１１は、表面情報の一例である。図６（ｂ）のｓａｍｐ１〜３は、基本表面情報の一例である。位置算出回路３２は、補正手段の一例である。センサ３０の高さに関する情報は、高さ情報の一例である。ＸＺ方向及びＹＺ方向の傾き、ＸＹ方向の傾きに関する情報は、傾度情報の一例である。また、高さ情報（センサ３０の高さに関する情報）及び傾度情報（ＸＹ方向の傾きに関する情報）は、補正情報の一例である。
【０１５３】
図形１２は、所定のパターンの一例である。セルは、単位画像の一例である。ＸＹ方向の傾きは、組み付け角度の一例である。ＲＯＭ２８は、記憶領域の一例である。また、第１の方向とは、例えば、Ｘ軸方向であり、第２の方向とは、例えば、Ｙ軸方向である。また、第１の方向の移動距離とは、センサ３０により計測されたＸ軸方向の移動量ΔＸの一例である。第２方向の移動距離とは、センサ３０により計測されたＹ軸方向の移動量ΔＹの一例である。
【符号の説明】
【０１５４】
１０          表示デバイス
２３          ＩＪ記録ヘッド駆動回路
２５          制御部
２６          ＯＰＵ
２８          ＲＯＭ
２９          メモリ（ＤＲＡＭ）
３０ａ,３０ｂ  センサ
３１          ＣＰＵ
３２          位置算出回路
３５          メモリＣＴＬ
３６          ＲＯＭＣＴＬ
３７          ＩｍａｇｅＲＡＭ
３８          ＤＭＡＣ（ＣＡＣＨＥ）
３９          回転器
４０          ＡＳＩＣ／ＦＰＧＡ
４１          割り込みコントローラ
４２          センサＩ／Ｆ
４３          印字／センサタイミング生成部
４４          ＩＪ記録ヘッド制御部
４５          高さ検出部
４６          傾き検出部
４７,４８      バス
【先行技術文献】
【特許文献】
【０１５５】
【特許文献１】特表２０１０−５３５１１８号公報
【図１】
0006582873.tif 000004
【図２】
0006582873.tif 000005
【図３】
0006582873.tif 000006
【図４】
0006582873.tif 000007
【図５】
0006582873.tif 000008
【図６】
0006582873.tif 000009
【図７】
0006582873.tif 000010
【図８】
0006582873.tif 000011
【図９】
0006582873.tif 000012
【図１０】
0006582873.tif 000013
【図１１】
0006582873.tif 000014
【図１２】
0006582873.tif 000015
【図１３】
0006582873.tif 000016
【図１４】
0006582873.tif 000017
【図１５】
0006582873.tif 000018
【図１６】
0006582873.tif 000019
【図１７】
0006582873.tif 000020
【図１８】
0006582873.tif 000021
【図１９】
0006582873.tif 000022
【図２０】
0006582873.tif 000023
【図２１】
0006582873.tif 000024
【図２２】
0006582873.tif 000025
【図２３】
0006582873.tif 000026
【図２４】
0006582873.tif 000027
【図２５】
0006582873.tif 000028
【図２６】
0006582873.tif 000029