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