(57)【要約】【課題】検出精度を確保した位置検出装置を提供すること。【解決手段】開示の技術の一態様に係る位置検出装置は、位置検出装置が搭載されたハンドヘルド装置の移動面における位置を検出する位置検出装置であって、前記移動面における前記ハンドヘルド装置の検出移動量を検出する移動量検出部と、少なくとも前記移動面における前記ハンドヘルド装置の姿勢を検出する姿勢検出部と、前記移動量検出部の特性情報を格納する格納部と、格納された前記特性情報に基づいて前記検出移動量を補正した補正移動量を出力する補正部と、前記補正移動量及び前記姿勢に基づいて取得した前記ハンドヘルド装置の前記位置を出力する位置取得部と、を有する。【選択図】図１７
2020116932.tif 000002
【特許請求の範囲】
【請求項１】
位置検出装置が搭載されたハンドヘルド装置の移動面における位置を検出する位置検出装置であって、
前記移動面における前記ハンドヘルド装置の検出移動量を検出する移動量検出部と、
少なくとも前記移動面における前記ハンドヘルド装置の姿勢を検出する姿勢検出部と、
前記移動量検出部の特性情報を格納する格納部と、
格納された前記特性情報に基づいて前記検出移動量を補正した補正移動量を出力する補正部と、
前記補正移動量及び前記姿勢に基づいて取得した前記ハンドヘルド装置の前記位置を出力する位置取得部と、を有する
位置検出装置。
【請求項２】
前記特性情報は、前記ハンドヘルド装置の前記移動面における移動方向に応じた方向倍率を含み、
前記補正部は、前記移動方向に応じた前記方向倍率に基づき、前記検出移動量を補正する
請求項１に記載の位置検出装置。
【請求項３】
前記特性情報は、前記ハンドヘルド装置の前記移動面における移動速度に応じた速度倍率を含み、
前記補正部は、前記移動速度に応じた前記速度倍率に基づき、前記検出移動量を補正する
請求項１、又は２に記載の位置検出装置。
【請求項４】
前記特性情報は、前記移動量検出部が前記検出移動量を検出する検出面に対する前記移動量検出部の高さに応じた前記方向倍率及び前記速度倍率の少なくとも一方を含み、
前記補正部は、前記高さと前記移動方向とに応じた前記方向倍率、及び前記高さと前記移動速度とに応じた前記速度倍率の少なくとも一方に基づき、前記検出移動量を補正する
請求項２、又は３に記載の位置検出装置。
【請求項５】
前記特性情報は、前記移動面の種別に応じた前記方向倍率及び前記速度倍率の少なくとも一方を含み、
前記補正部は、前記移動面の種別と前記移動方向とに応じた前記方向倍率、及び前記移動面の種別と前記移動速度とに応じた前記速度倍率の少なくとも一方に基づき、前記検出移動量を補正する
請求項２乃至４の何れか１項に記載の位置検出装置。
【請求項６】
前記姿勢に基づいて取得される、前記ハンドヘルド装置の前記移動面における回転角の回転中心を通り、前記移動面に直交する軸上に、前記移動量検出部の前記移動面における中心位置が配置され、
前記格納部は、前記姿勢検出部の特性情報を格納し、
前記補正部は、格納された前記姿勢検出部の特性情報に基づいて前記姿勢を補正した補正姿勢を出力し、
前記位置取得部は、前記補正移動量及び前記補正姿勢に基づいて取得した前記ハンドヘルド装置の前記位置を出力する
請求項１乃至５の何れか１項に記載の位置検出装置。
【請求項７】
請求項１乃至６の何れか１項に記載の位置検出装置と、
前記ハンドヘルド装置の前記位置に応じて、印刷媒体に前記位置の画像を形成するための液体を吐出する液体吐出部と、を有する
ハンドヘルド装置。
【請求項８】
前記移動面は、前記印刷媒体面に含まれる
請求項７に記載のハンドヘルド装置。
【請求項９】
前記格納部に格納された前記特性情報を、前記ハンドヘルド装置の外部から入力された入力情報に基づき書き換える特性情報書換部を有する
請求項７、又は８に記載のハンドヘルド装置。
【請求項１０】
位置検出装置が搭載されたハンドヘルド装置の移動面における位置を検出する位置検出方法であって、
前記移動面における前記ハンドヘルド装置の検出移動量を検出する移動量検出工程と、
少なくとも前記移動面における前記ハンドヘルド装置の姿勢を検出する姿勢検出工程と、
前記移動量検出工程の特性情報を格納する格納工程と、
格納された前記特性情報に基づいて前記検出移動量を補正した補正移動量を出力する補正工程と、
前記補正移動量に基づいて取得した前記ハンドヘルド装置の前記位置を出力する位置取得工程と、を含む
位置検出方法。
【請求項１１】
位置検出装置が搭載されたハンドヘルド装置の移動面における位置を検出する位置検出装置を、
前記移動面における前記ハンドヘルド装置の検出移動量を検出する移動量検出部、
少なくとも前記移動面における前記ハンドヘルド装置の姿勢を検出する姿勢検出部、
前記移動量検出部の特性情報を格納する格納部、
格納された前記特性情報に基づいて前記検出移動量を補正した補正移動量を出力する補正部、
前記補正移動量に基づいて取得した前記ハンドヘルド装置の前記位置を出力する位置取得部、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、位置検出装置、ハンドヘルド装置、位置検出方法、及びプログラムに関する。
【背景技術】
【０００２】
ノートＰＣの小型化、スマートデバイスの普及等により、プリンタの小型化・携帯化のニーズが高まり、プリンタから紙搬送システムを削除することで小型化された液体吐出装置（以下、ＨＨＰ：ハンドヘルドプリンタという）が実用化されつつある。ＨＨＰでは、紙搬送システムが搭載されていないため、人が紙面上でＨＨＰを移動させ、移動中にインク等の液体が吐出されることで紙面上に画像が形成される。紙面上で液体が吐出される位置を正確に制御するために、ＨＨＰの紙面上での移動量が移動量検出部により検出され、検出された移動量に基づいて取得されたＨＨＰの位置情報が用いられる。
【０００３】
このような位置情報を取得する装置として、移動量検出部が所定の時間前の時刻に取得した画像と現在の時刻に取得した画像との相関値に基づき移動量を検出し、検出された移動量に基づいて位置を取得するものが開示されている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１の装置では、移動量検出部における撮像光学系の寸法誤差や取付ばらつき等に起因した移動量の検出誤差により、位置の検出精度が低下する場合がある。
【０００５】
位置検出装置がＰＣ（Personal Computer）で用いられるマウス等に適用される場合には、ユーザがディスプレイ上のカーソルの位置を視認し、視認された位置をユーザが自身のマウス操作に反映させればよいため、位置検出装置に必ずしも高い精度が要求されない。
【０００６】
しかし、ＨＨＰでは、ＨＨＰの位置情報が印刷される画像の品質に大きく影響するため、位置情報に高い精度が要求され、特許文献１による装置では位置検出精度が不足する場合があった。
【０００７】
本発明は、上記の点に鑑みてなされたものであって、検出精度を確保した位置検出装置を提供することを課題とする。
【課題を解決するための手段】
【０００８】
開示の技術の一態様に係る位置検出装置は、位置検出装置が搭載されたハンドヘルド装置の移動面における位置を検出する位置検出装置であって、前記移動面における前記ハンドヘルド装置の検出移動量を検出する移動量検出部と、少なくとも前記移動面における前記ハンドヘルド装置の姿勢を検出する姿勢検出部と、前記移動量検出部の特性情報を格納する格納部と、格納された前記特性情報に基づいて前記検出移動量を補正した補正移動量を出力する補正部と、前記補正移動量及び前記姿勢に基づいて取得した前記ハンドヘルド装置の前記位置を出力する位置取得部と、を有する。
【発明の効果】
【０００９】
検出精度を確保した位置検出装置を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態に係るＨＨＰによる印刷の様子の一例を説明する図である。
【図２】実施形態に係るＨＨＰのハードウェア構成の一例を説明するブロック図である。
【図３】実施形態に係る制御部のハードウェア構成の一例を説明するブロック図である。
【図４】ジャイロセンサが角速度を検出する原理を説明する図である。
【図５】ナビゲーションセンサのハードウェア構成の一例を説明するブロック図である。
【図６】ナビゲーションセンサによる移動量の検出方法の一例を説明する図であり、（ａ）は印刷媒体への光の照射を説明する図、（ｂ）はイメージデータの一例を示す図である。
【図７】実施形態に係るＩＪ記録ヘッド駆動回路の構成の一例を説明するブロック図である。
【図８】ＩＪ記録ヘッドのノズル位置の一例を説明する図であり、（ａ）実施形態に係るＨＨＰの構成の一例を説明する平面図、（ｂ）はＩＪ記録ヘッドのみを説明する図である。
【図９】実施形態に係るＨＨＰの座標系と位置の算出方法の一例を説明する図であり、（ａ）はＨＨＰのＸ座標を説明する図、（ｂ）はナビゲーションセンサが検出する移動量を示す図である。
【図１０】印刷中に生じるＨＨＰの回転角の求め方の一例を説明する図である。
【図１１】目標吐出位置とノズルの位置の関係の一例を説明する図である。
【図１２】画像データ出力器とＨＨＰによる印刷動作の一例を示すフローチャートである。
【図１３】移動方向に応じたナビゲーションセンサの検出倍率の相違を説明する図であり、（ａ）は移動方向に対する異方性がない場合の検出倍率を示す図、（ｂ）は移動方向に対する異方性がある場合の検出倍率を示す図である。
【図１４】移動速度に応じたナビゲーションセンサの検出倍率の相違を説明する図である。
【図１５】第１の実施形態に係るＨＨＰのハードウェア構成の一例を説明するブロック図である。
【図１６】第１の実施形態に係る制御部のハードウェア構成の一例を説明するブロック図である。
【図１７】第１の実施形態に係る位置検出装置の機能構成の一例を説明するブロック図である。
【図１８】ＨＨＰの移動方向に応じたナビゲーションセンサの検出倍率データの取得方法の一例を説明する図であり、（ａ）は検出倍率データ取得時の移動面内でのナビゲーションセンサの回転を説明する図、（ｂ）は取得された検出倍率データの一例を示す図である。
【図１９】移動方向に応じた補正テーブルの一例を示す図である。
【図２０】第１の実施形態に係る補正部による補正方法の一例を説明する図である。
【図２１】移動速度に応じた補正テーブルの一例を示す図である。
【図２２】第１の実施形態に係る位置検出装置の動作の一例について説明するフローチャートである。
【図２３】ナビゲーションセンサの高さを説明する図である。
【図２４】ナビゲーションセンサの高さと検出移動量との関係の一例を説明する図である。
【図２５】第２の実施形態に係るＨＨＰの機能構成の一例を説明するブロック図である。
【図２６】格納部に格納された各種補正テーブルの一例を説明する図である。
【図２７】第２の実施形態に係る位置検出装置による補正テーブルの選択処理の一例を示すフローチャートである。
【図２８】ナビゲーションセンサとジャイロセンサとの配置の一例を説明する図である。
【図２９】第３の実施形態に係るＨＨＰの機能構成の一例を説明するブロック図である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を参照しながら説明する。
【００１２】
実施形態では、位置検出装置を搭載したハンドヘルドプリンタ（以下、ＨＨＰという）について説明する。ＨＨＰは、ユーザにより印刷媒体上で移動（走査）されながら、画像データと、位置検出装置で検出された位置情報とに基づいてインク（液体の一例）を吐出し、印刷媒体上に画像を形成する装置である。ここで、ＨＨＰは「ハンドヘルド装置」の一例である。
【００１３】
なお、実施形態では、記録ヘッドを「ＩＪ記録ヘッド」と称する。また、実施形態の用語における印刷、画像形成、印字、記録はいずれも同義とする。
【００１４】
＜実施形態に係るＨＨＰの構成＞
先ず、実施形態に係るＨＨＰについて説明する。図１は、実施形態に係るＨＨＰによる印刷の様子の一例を説明する図である。ＨＨＰ２０には、スマートフォンやＰＣ（Personal Computer）等の画像データ出力器１１から画像データが送信される。ユーザはＨＨＰ２０を把持して、印刷媒体１２（定形用紙やノート等）から浮き上がらないようにフリーハンドで走査させる。このＨＨＰ２０が走査される面は、「移動面」の一例である。
【００１５】
ＨＨＰ２０は後述するようにナビゲーションセンサ３０とジャイロセンサ３１で位置を検出し、ＨＨＰ２０が目標吐出位置に移動すると、目標吐出位置で吐出すべき色のインクを吐出する。すでにインクを吐出した場所はマスクされるため（インクの吐出の対象とならないため）、ユーザは、印刷媒体１２上で任意の方向にＨＨＰ２０を走査させることで、印刷媒体１２上に画像を形成することができる。
【００１６】
印刷媒体１２からＨＨＰ２０が浮き上がらないことが好ましいのは、ナビゲーションセンサ３０が印刷媒体１２からの反射光を利用して移動量を検出するためである。印刷媒体１２からＨＨＰ２０が浮き上がると反射光を検出できなくなり移動量を検出できない。印刷媒体１２からナビゲーションセンサ３０がはみ出した場合も、印刷媒体１２の厚みにより反射光を検出できなくなったり、検出できても位置がずれたりする場合がある。このため、ナビゲーションセンサ３０は印刷媒体１２上で走査されることが好ましく、上記のようにノズル６１とナビゲーションセンサ３０が印刷媒体１２上に共に存在することが好ましい。
【００１７】
＜実施形態に係るＨＨＰのハードウェア構成＞
図２は、実施形態に係るＨＨＰのハードウェア構成の一例を説明する図である。ＨＨＰ２０は、制御部２５によって全体の動作が制御され、制御部２５には通信Ｉ/Ｆ（Interface）２７、ＩＪ（Inkjet）記録ヘッド駆動回路２３、ＯＰＵ（Operation panel Unit）２６、ＲＯＭ（Read Only Memory）２８、ＤＲＡＭ（Dynamic Random Access Memory）２９、ナビゲーションセンサ３０、及びジャイロセンサ３１等が電気的に接続されている。
【００１８】
また、ＨＨＰ２０は電力により駆動されるため、電源２２と電源回路２１とを有している。電源回路２１が生成する電力は、点線２２ａで示す配線等により、通信Ｉ/Ｆ２７、ＩＪ記録ヘッド駆動回路２３、ＯＰＵ２６、ＲＯＭ２８、ＤＲＡＭ２９、ＩＪ記録ヘッド２４、制御部２５、ナビゲーションセンサ３０、及びジャイロセンサ３１に供給されている。ここで、ＩＪ記録ヘッド２４は、「液体吐出部」の一例である。
【００１９】
電源２２としては主に電池（バッテリー）が利用される。太陽電池や商用電源（交流電源）、燃料電池等が用いられても良い。電源回路２１は、電源２２が供給する電力をＨＨＰ２０の各部に分配する。また、電源２２の電圧を各部に適した電圧に降圧や昇圧する。また、電源２２が充電可能な電池である場合、電源回路２１は交流電源の接続を検出して電池の充電回路に接続し、電源２２の充電を可能にする。
【００２０】
通信Ｉ/Ｆ２７は、スマートフォンやＰＣ等の画像データ出力器１１から画像データの受信等を行う。通信Ｉ/Ｆ２７は例えば無線ＬＡＮ、Bluetooth（登録商標）、ＮＦＣ（Near Field Communication）、赤外線、３Ｇ（携帯電話）、又は、ＬＴＥ（Long Term Evolution）等の通信規格に対応した通信装置である。また、このような無線通信の他、有線ＬＡＮ、ＵＳＢケーブルなどを用いた有線通信に対応した通信装置であっても良い。
【００２１】
ＲＯＭ２８は、ＨＨＰ２０のハードウェア制御を行うファームウェアや、ＩＪ記録ヘッド２４の駆動波形データ（液滴を吐出するための電圧変化を規定するデータ）や、ＨＨＰ２０の初期設定データ等を格納している。
【００２２】
ＤＲＡＭ２９は通信Ｉ/Ｆ２７が受信した画像データを記憶したり、ＲＯＭ２８から展開されたファームウェアを格納したりするために使用される。したがって、ＣＰＵ３３がファームウェアを実行する際のワークメモリとして使用される。
【００２３】
ナビゲーションセンサ３０は、所定のサイクル時間毎にＨＨＰ２０の移動量を検出するセンサである。ナビゲーションセンサ３０は、例えば、発光ダイオード（ＬＥＤ）やレーザ等の光源と、印刷媒体１２を撮像する撮像センサを有している。ＨＨＰ２０が印刷媒体１２上を走査されると、印刷媒体１２の微小なエッジが次々に検出され（撮像され）エッジ間の距離を解析することで移動量が得られる。実施形態では、ナビゲーションセンサ３０は、ＨＨＰ２０の底面に１つだけ搭載されている。従来は２つであった。ただし、説明のためナビゲーションセンサ３０が２つあるＨＨＰ２０について説明する場合がある。なお、ナビゲーションセンサ３０として、さらに多軸の加速度センサを用いても良く、ＨＨＰ２０は加速度センサのみでＨＨＰ２０の移動量を検出しても良い。
【００２４】
ジャイロセンサ３１は、印刷媒体１２に垂直な軸を中心にＨＨＰ２０が回転した際の角速度を検出するセンサである。詳細は後述される。
【００２５】
ＯＰＵ２６は、ＨＨＰ２０の状態を表示するＬＥＤ、ユーザがＨＨＰ２０に印刷を指示するためのスイッチ等を有している。ただし、これに限定されるものではなく、液晶ディスプレイを有していても良く、さらにタッチパネルを有していても良い。また、音声入力機能を有していても良い。
【００２６】
ＩＪ記録ヘッド駆動回路２３は上記の駆動波形データを用いて、ＩＪ記録ヘッド２４を駆動するための駆動波形（電圧）を生成する。インクの液滴のサイズ等に応じた駆動波形を生成できる。
【００２７】
ＩＪ記録ヘッド２４は、インクを吐出するためのヘッドである。図ではＣＭＹＫの４色のインクを吐出可能になっているが、単色でも良く５色以上の吐出が可能でも良い。色毎に一列（二列以上でも良い）に列状に並んだ複数のインク吐出用のノズル６１（吐出ノズルの一例）が配置されている。また、インクの吐出方式はピエゾ方式でもサーマル方式でも良く、この他の方式でも良い。ＩＪ記録ヘッド２４は、ノズル６１からインク等の液体を吐出・噴射する機能部品である。吐出される液体は、ＩＪ記録ヘッド２４から吐出可能な粘度や表面張力を有するものであれば良く、特に限定されないが、常温、常圧下において、または加熱、冷却により粘度が３０〔mPa・s〕以下となるものであることが好ましい。より具体的には、水や有機溶媒等の溶媒、染料や顔料等の着色剤、重合性化合物、樹脂、界面活性剤等の機能性付与材料、ＤＮＡ、アミノ酸やたんぱく質、カルシウム等の生体適合材料、天然色素等の可食材料、などを含む溶液、懸濁液、エマルジョンなどであり、これらは例えば、インクジェット用インク、表面処理液、電子素子や発光素子の構成要素や電子回路レジストパターンの形成用液、３次元造形用材料液等の用途で用いることができる。
【００２８】
制御部２５はＣＰＵ３３を有し、ＨＨＰ２０の全体を制御する。制御部２５は、ナビゲーションセンサ３０により検出される移動量及びジャイロセンサ３１により検出される角速度を元に、ＩＪ記録ヘッド２４の各ノズルの位置と、その位置に応じて形成する画像の決定、後述する吐出ノズル可否判定等を行う。制御部２５について詳細は次述する。
【００２９】
＜制御部のハードウェア構成＞
図３は、制御部２５のハードウェア構成の一例を説明するブロック図である。制御部２５はＳｏＣ（System on a Chip）５０とＡＳＩＣ（Application Specific Integrated Circuit）/ＦＰＧＡ（Field-Programmable Gate Array）４０を有している。ＳｏＣ５０とＡＳＩＣ/ＦＰＧＡ４０はバス４６，４７を介して通信する。ＡＳＩＣ/ＦＰＧＡ４０はどちらの実装技術で設計されても良いことを意味し、ＡＳＩＣ/ＦＰＧＡ４０以外の他の実装技術で構成されて良い。また、ＳｏＣ５０とＡＳＩＣ/ＦＰＧＡ４０を別のチップにすることなく１つのチップや基板で構成してもよい。或いは、３つ以上のチップや基板で実装してもよい。
【００３０】
ＳｏＣ５０は、バス４７を介して接続されたＣＰＵ３３、位置算出回路３４、メモリＣＴＬ（コントローラ）３５、及びＲＯＭ ＣＴＬ（コントローラ）３６等の機能を有している。なお、ＳｏＣ５０が有する構成要素はこれらに限られない。
【００３１】
また、ＡＳＩＣ/ＦＰＧＡ４０は、バス４６を介して接続されたＩｍａｇｅ ＲＡＭ３７、ＤＭＡＣ３８、回転器３９、割込みコントローラ４１、ナビゲーションセンサＩ/Ｆ４２、印字/センサタイミング生成部４３、ＩＪ記録ヘッド制御部４４及びジャイロセンサＩ/Ｆ４５を有している。なお、ＡＳＩＣ/ＦＰＧＡ４０が有する構成要素はこれらに限られない。
【００３２】
ＣＰＵ３３は、ＲＯＭ２８からＤＲＡＭ２９に展開されたファームウェア（プログラム）などを実行し、ＳｏＣ５０内の位置算出回路３４、メモリＣＴＬ３５、及び、ＲＯＭ ＣＴＬ３６等の動作を制御する。また、ＡＳＩＣ/ＦＰＧＡ４０内のＩｍａｇｅ ＲＡＭ３７、ＤＭＡＣ３８、回転器３９、割込みコントローラ４１、ナビゲーションセンサＩ/Ｆ４２、印字/センサタイミング生成部４３、ＩＪ記録ヘッド制御部４４及びジャイロセンサＩ/Ｆ４５等の動作を制御する。
【００３３】
位置算出回路３４は、ナビゲーションセンサ３０が検出するサンプリング周期毎の移動量及びジャイロセンサ３１が検出するサンプリング周期毎の角速度に基づいてＨＨＰ２０の位置（座標情報）を算出する。ＨＨＰ２０の位置とは、厳密にはノズル６１の位置であるが、ナビゲーションセンサ３０のある位置が分かればノズル６１の位置を算出できる。実施形態では、特に断らない限りナビゲーションセンサ３０の位置としてナビゲーションセンサＳ０の位置をいう。また、位置算出回路３４は目標吐出位置を算出する。なお、位置算出回路３４をＣＰＵ３３がソフト的に実現しても良い。
【００３４】
ナビゲーションセンサ３０の位置は、後述するように所定の原点（印刷が開始される時のＨＨＰ２０の初期位置）等を基準に算出されている。また、位置算出回路３４は、過去の位置と最も新しい位置の差に基づいて移動方向や加速度を推定し、次回の吐出タイミングにおけるナビゲーションセンサ３０の位置を予測することができる。こうすることで、ユーザの走査に対する遅れを抑制してインクを吐出できる。
【００３５】
メモリＣＴＬ３５は、ＤＲＡＭ２９とのインタフェースであり、ＤＲＡＭ２９に対しデータを要求し、取得したファームウェアをＣＰＵ３３に送出したり、取得した画像データをＡＳＩＣ/ＦＰＧＡ４０に送出したりする。
【００３６】
ＲＯＭ ＣＴＬ３６は、ＲＯＭ２８とのインタフェースであり、ＲＯＭ２８に対しデータを要求し、取得したデータをＣＰＵ３３やＡＳＩＣ/ＦＰＧＡ４０に送出する。
【００３７】
Ｉ２Ｃ ＣＴＬ６９は、ＮＶＲＡＭ６７とのインタフェースである。但し、Ｉ２Ｃに限定されるものではなく、ＳＰＩ（Serial Peripheral Interface）やパラレルバス等のインタフェースを用いても良い。
【００３８】
回転器３９は、ＤＭＡＣ３８が取得した画像データを、インクを吐出するヘッド、ヘッド内のノズル位置、及び、取り付け誤差等によるヘッド傾きに応じて回転させる。ＤＭＡＣ３８は回転後の画像データをＩＪ記録ヘッド制御部４４へ出力する。
【００３９】
Ｉｍａｇｅ ＲＡＭ３７はＤＭＡＣ３８が取得した画像データを一時的に格納する。すなわち、ある程度の画像データがバッファリングされ、ＨＨＰ２０の位置に応じて読み出される。
【００４０】
ＩＪ記録ヘッド制御部４４は、画像データ（ビットマップデータ）にディザ処理などを施して大きさと密度で画像を表す点の集合に画像データを変換する。これにより、画像データは吐出位置と点のサイズのデータとなる。ＩＪ記録ヘッド制御部４４は点のサイズに応じた制御信号をＩＪ記録ヘッド駆動回路２３に出力する。ＩＪ記録ヘッド駆動回路２３は上記のように制御信号に対応した駆動波形データを用いて、駆動波形（電圧）を生成する。
【００４１】
ナビゲーションセンサＩ/Ｆ４２は、ナビゲーションセンサ３０と通信し、ナビゲーションセンサ３０からの情報として移動量ΔＸ´、ΔＹ´（これらについては後述する）を受信し、その値を内部レジスタに格納する。
【００４２】
印字/センサタイミング生成部４３は、ナビゲーションセンサＩ/Ｆ４２とジャイロセンサＩ/Ｆ４５が情報を読み取るタイミングを通知し、ＩＪ記録ヘッド制御部４４に駆動タイミングを通知する。情報を読み取るタイミングの周期はインクの吐出タイミングの周期よりも長い。ＩＪ記録ヘッド制御部４４は吐出ノズル可否判定を行い、インクを吐出すべき目標吐出位置があればインクを吐出し、目標吐出位置がなければ吐出しないと判定する。
【００４３】
ジャイロセンサＩ/Ｆ４５は印字/センサタイミング生成部４３により生成されたタイミングになるとジャイロセンサ３１が検出する角速度を取得してその値をレジスタに格納する。
【００４４】
割込みコントローラ４１は、ナビゲーションセンサＩ/Ｆ４２がナビゲーションセンサ３０との通信が完了したことを検知して、ＳｏＣ５０へそれを通知するための割込み信号を出力する。ＣＰＵ３３はこの割込みにより、ナビゲーションセンサＩ/Ｆ４２が内部レジスタに記憶するΔＸ´、ΔＹ´を取得する。その他、エラー等のステータス通知機能も有する。ジャイロセンサＩ/Ｆ４５に関しても同様に、割込みコントローラ４１はＳｏＣ５０に対し、ジャイロセンサ３１との通信が終了したことを通知するための割込み信号を出力する。
【００４５】
＜ジャイロセンサによる検出原理＞
図４は、ジャイロセンサ３１が角速度を検出する原理を説明する図である。移動している物体に回転が加わると、物体の移動方向と回転軸の両方に直行する方向にコリオリ力が発生する。
【００４６】
物体を移動させるため、ジャイロセンサ３１ではＭＥＭＳ（Micro Electro Mechanical Systems）素子を振動させることで速度ｖ（ベクトル）を発生させる。振動している質量ｍのＭＥＭＳ素子に外部から角速度ω（ベクトル）の回転が加わると、ＭＥＭＳ素子にコリオリ力が加わる。コリオリ力Ｆは以下のように表すことができる。
Ｆ＝−２ｍΩ×ｖ
なお、「×」はベクトルの外積を表し、上記のように物体の移動方向と回転軸に直交する方向がコリオリ力Ｆの方向である。ＭＥＭＳ素子は例えば櫛歯構造の電極を有しており、ジャイロセンサ３１はコリオリ力Ｆにより発生した変位を静電容量の変化として捉える。コリオリ力Ｆの信号はジャイロセンサ３１内で増幅されフィルタリングされた後、角速度に演算されて出力される。すなわち、Ｆ，ｍ、ｖが既知なので角速度ωを取り出すことができる。
【００４７】
＜ナビゲーションセンサのハードウェア構成＞
図５は、ナビゲーションセンサのハードウェア構成の構成例を示す図である。ナビゲーションセンサ３０は、Ｈｏｓｔ Ｉ/Ｆ３０１、イメージプロセッサ３０２、ＬＥＤドライバ３０３、２つのレンズ３０４、３０６及び、イメージアレイ３０５を有する。ＬＥＤドライバ３０３は、ＬＥＤと制御回路が一体となっておりイメージプロセッサ３０２からの命令によりＬＥＤ光を照射する。イメージアレイ３０５は、レンズ３０４を介して印刷媒体１２からのＬＥＤ光の反射光を受光する。２つのレンズ３０４，３０６は、印刷媒体１２の表面に対して光学的に焦点が合うように設置されている。
【００４８】
イメージアレイ３０５は、ＬＥＤ光の波長に感度を有するフォトダイオード等を有し、受光したＬＥＤ光からイメージデータを生成する。イメージプロセッサ３０２はイメージデータを取得して、イメージデータからナビゲーションセンサの移動距離（上記のΔＸ´、ΔＹ´）を算出する。イメージプロセッサ３０２は、算出した移動距離を、ホストＩ/Ｆ３０１を介して制御部２５へ出力する。
【００４９】
光源として使用される発光ダイオード(ＬＥＤ)は、表面が粗い印刷媒体１２、例えば紙を使用する場合に有用である。これは、表面が粗い場合、影が発生するため、その影を特徴部分として、Ｘ軸方向及びＹ軸方向の移動距離を正確に算出することができる。一方、表面が滑らか、或いは透明な印刷媒体１２に対しては、光源としてレーザ光を発生させる半導体レーザ(ＬＤ)を使用することができる。半導体レーザで、印刷媒体１２上に例えば縞模様等を形成することで特徴部分を作ることができ、それを基に正確に移動距離を算出することができる。
【００５０】
＜ナビゲーションセンサの動作＞
次に、図６を用いて、ナビゲーションセンサ３０の動作について説明する。図６はナビゲーションセンサ３０による移動量の検出方法の一例を説明する図であり、（ａ）は印刷媒体への光の照射の様子を説明する図、（ｂ）はイメージデータの一例を示す図である。
【００５１】
ＬＥＤドライバ３０３が照射した光は、レンズ３０６を介して印刷媒体１２の表面に照射される。印刷媒体１２の表面は、図６（ａ）に示すように様々な形状の微小な凹凸を有している。このため、様々な形の影が発生する。
【００５２】
イメージプロセッサ３０２は、予め決められたサンプリングタイミング毎に、レンズ３０４及びイメージアレイ３０５を介して反射光を受光し、イメージデータ３１０を取得する。図６（ｂ）に示すように生成したイメージデータ３１０を、イメージプロセッサ３０２は規定の分解能単位でマトリクス化する。すなわち、イメージデータ３１０を複数の矩形領域に分割する。
【００５３】
そして、イメージプロセッサ３０２は、前回のサンプリングタイミングで得られたイメージデータ３１０と、今回のサンプリングタイミングで得られたイメージデータ３１０とを比較してイメージデータ３１０が移動した矩形領域の数を検出し、それを移動距離として算出する。図６（ｂ）で図示するΔＸ方向にＨＨＰ２０が移動したとする。ｔ＝０とｔ＝１のイメージデータ３１０を比較すると、右端にある形状が中央の形状と一致する。したがって、形状は−Ｘ方向に移動しているので、ＨＨＰ２０がＸ方向に一マス分移動したことが分かる。時刻ｔ＝１とｔ＝２についても同様である。
【００５４】
＜ＩＪ記録ヘッド駆動回路の構成＞
図７は、ＩＪ記録ヘッド駆動回路２３の構成の一例を説明するブロック図である。まず、ＩＪ記録ヘッド２４は、複数のノズル６１を備え、各ノズル６１にはアクチュエータが設けられている。アクチュエータは、サーマル方式、ピエゾ方式のいずれであっても良い。サーマル方式は、ノズル内のインクに熱を与えて膨張させ、この膨張によりノズル６１からインク滴を吐出させるものである。ピエゾ方式は、圧電素子によりノズル壁を押し、内部のインクを押し出すことによりインク滴を吐出させるものである。
【００５５】
ＩＪ記録ヘッド駆動回路２３は、アナログスイッチ２３１と、レベルシフタ２３２と、階調デコーダ２３３と、ラッチ２３４と、シフトレジスタ２３５とを備えている。ＩＪ記録ヘッド制御部４４は、ＩＪ記録ヘッド駆動回路２３に対し、ＩＪ記録ヘッド２４のノズル６１の数（アクチュエータの数も同じ）分のシリアルデータである画像データＳＤを、画像データ転送クロックＳＣＫによってシフトレジスタ２３５に転送する。
【００５６】
転送が終了すると、ＩＪ記録ヘッド制御部４４は、画像データラッチ信号ＳＬｎによりノズル毎に設けられたラッチ２３４に各画像データＳＤを記憶させる。
【００５７】
ＩＪ記録ヘッド制御部４４は、画像データＳＤをラッチさせた後、アナログスイッチ２３１へ各階調値のインク滴を各ノズルから吐出させるためのヘッド駆動波形Ｖｃｏｍを出力する。このとき、ＩＪ記録ヘッド制御部４４は、階調デコーダ２３３に対してヘッド駆動マスクパターンＭＮを階調制御信号として与えるが、そのヘッド駆動マスクパターンＭＮを駆動波形のタイミングに合わせて選択するように遷移させる。
【００５８】
階調デコーダ２３３は、階調制御信号とラッチされた画像データとを論理演算し、レベルシフタ２３２は、論理演算した得られた論理レベル電圧信号を、アナログスイッチ２３１を駆動できる電圧レベルまで昇圧する。
【００５９】
アナログスイッチ２３１は、昇圧された電圧信号を受け付けＯＮ／ＯＦＦすることにより、ＩＪ記録ヘッド２４のアクチュエータへ供給する駆動波形ＶｏｕｔＮが各ノズルで異なる波形となる。ＩＪ記録ヘッド２４は、この駆動波形に基づきインク滴を吐出させ、印刷媒体１２上に画像を形成する。
【００６０】
なお、図７の構成及びその説明は、インクジェット方式のプリンタで一般に採用されている構成である。インク滴を吐出できれば、図７の構成に限られずＨＨＰ２０に搭載されてよい。
【００６１】
＜ＩＪ記録ヘッドにおけるノズル位置について＞
次に、図８を用いて、ＩＪ記録ヘッド２４におけるノズル位置等について説明する。図８（ａ）は、ＨＨＰ２０の平面図の一例である。図８（ｂ）はＩＪ記録ヘッド２４のみを説明する図の一例である。図示されている面が印刷媒体１２に対向する面である。
【００６２】
実施形態に係るＨＨＰ２０は、１つのナビゲーションセンサＳ０を有している。図８（ａ）のＳ１は、説明の便宜上、ナビゲーションセンサ３０が２つある場合の設置位置を示す。ナビゲーションセンサ３０が２つある場合の、２つのナビゲーションセンサＳ０，Ｓ１の間の長さは距離Ｌである。距離Ｌは長いほどよい。これは、距離Ｌが長いほど検出可能な最小の回転角θが小さくなり、ＨＨＰ２０の位置の誤差が少なくなるからである。
【００６３】
ナビゲーションセンサ３０からＩＪ記録ヘッド２４までの距離はそれぞれ距離ａ、ｂである。距離ａと、距離ｂは等しくてもよいし、ゼロでもよい（ＩＪ記録ヘッド２４に接している）。また、ナビゲーションセンサ３０が１つだけの場合、ナビゲーションセンサＳ０はＩＪ記録ヘッド２４の周囲の任意の場所に配置される。したがって、図示するナビゲーションセンサＳ０の位置は一例である。ただし、ＩＪ記録ヘッド２４とナビゲーションセンサＳ０の距離が短いことでＨＨＰ２０の底面のサイズを削減しやすくなる。
【００６４】
図８（ｂ）に示すように、ＩＪ記録ヘッド２４の端から最初のノズル６１までの距離は距離ｄ、隣接するノズル間の距離は距離ｅである。ａ〜ｅの値はＲＯＭ２８等に予め記憶されている。
【００６５】
位置算出回路３４等がナビゲーションセンサＳ０の位置を算出すれば、距離ａ（距離ｂ）、距離ｄ及び距離ｅを用いて、位置算出回路３４はノズル６１の位置を算出できる。
【００６６】
＜印刷媒体１２におけるＨＨＰ２０の位置について＞
図９は、実施形態に係るＨＨＰの座標系と位置の算出方法の一例を説明する図であり、（ａ）はＨＨＰのＸ座標を説明する図、（ｂ）はナビゲーションセンサが検出する移動量を示す図である。
【００６７】
実施形態では、印刷媒体１２に水平な方向をＸ軸、垂直な方向をＹ軸に設定する。原点は印刷が開始された際のナビゲーションセンサＳ０の位置である。この座標を印刷媒体座標と称することにする。これに対し、ナビゲーションセンサＳ０は図９の座標軸（Ｘ´軸、Ｙ´軸）で移動量を出力する。すなわち、ノズル６１の配列方向をＹ´軸、Ｙ´軸に直交する方向をＸ´軸として移動量を出力する。
【００６８】
図９（ａ）に示したように、印刷媒体１２に対しＨＨＰ２０が時計回りにθ回転している場合を例にして説明する。ユーザがＨＨＰ２０を印刷媒体座標に対し全く傾けることなく走査させることは困難で、ゼロでないθが生じると考えられる。全く回転していなければ、Ｘ＝Ｘ´、Ｙ＝Ｙ´である。しかし、ＨＨＰ２０が印刷媒体１２に対し回転角θ、回転した場合、ナビゲーションセンサＳ０の出力とＨＨＰ２０の印刷媒体１２における実際の位置が一致しなくなる。回転角θは時計回りが正、Ｘ、Ｘ´は右方向が正、Ｙ、Ｙ´は上方向が正である。
【００６９】
図９（ａ）では回転角θのＨＨＰ２０がＸ方向にのみ同じ回転角θのまま移動した場合のナビゲーションセンサＳ０が検出する移動量ΔＸ´、ΔＹ´とＸ，Ｙの対応を示している。なお、ナビゲーションセンサ３０が２つある場合、相対位置は固定なので２つのナビゲーションセンサ３０の出力（移動量）は同じである。ナビゲーションセンサＳ０のＸ座標はＸ１＋Ｘ２であり、Ｘ１＋Ｘ２はΔＸ´、ΔＹ´及び回転角θから求められる。
【００７０】
図９（ｂ）は回転角θのＨＨＰ２０がＹ方向にのみ同じ回転角θのまま移動した場合のナビゲーションセンサＳ０が検出する移動量ΔＸ´、ΔＹ´とＸ，Ｙの対応を示している。ナビゲーションセンサＳ０のＹ座標はＹ１＋Ｙ２であり、Ｙ１＋Ｙ２は−ΔＸ´、ΔＹ´及び回転角θから求められる。
【００７１】
したがって、ＨＨＰ２０がＸ方向及びＹ方向に回転角θのまま移動した場合、ナビゲーションセンサＳ０が出力するΔＸ´、ΔＹ´は印刷媒体座標のＸ，Ｙに以下のように変換できる。
Ｘ＝ΔＸ´cosθ＋ΔＹ´sinθ  …（１）
Ｙ＝−ΔＸ´sinθ＋ΔＹ´cosθ  …（２）
<<回転角θの検出方法>>
実施形態では、回転角θをジャイロセンサ３１の出力により位置算出回路３４が求める。しかしながら、距離Ｌが長い方が位置を高精度に求められることを示すため、ナビゲーションセンサ３０が２つある場合の回転角θの求め方を説明する。
【００７２】
図１０は、印刷中に生じるＨＨＰ２０の回転角ｄθの求め方の一例を説明する図である。回転角ｄθは２つのナビゲーションセンサＳ０，Ｓ１が検出する移動量ΔＸ´を用いて算出される。印刷媒体１２の上側のナビゲーションセンサＳ０が検出する移動量ΔＸ´0、ナビゲーションセンサＳ１が検出する移動量をΔＸ´1とする。なお、図１０ではすでに得られている回転角をθとしている。
【００７３】
ＨＨＰ２０が平行移動しながらｄθ回転した場合、移動量ΔＸ´0とΔＸ´1は一致しない。しかし、どちらの出力も２つのナビゲーションセンサＳ０，Ｓ１を結ぶ直線に垂直な方向の移動量なので、移動量ΔＸ´0とΔＸ´1の差は「ΔＸ´0−ΔＸ´1」として求めることができる。この差はＨＨＰ２０がｄθ回転したことにより生じた値である。また、「ΔＸ´0−ΔＸ´1」、Ｌ、及び、ｄθに図１０に示す関係があることから、ｄθは以下のように表すことができる。
ｄθ＝arcsin｛（ΔＸ´0−ΔＸ´1）/Ｌ｝  …（３）
位置算出回路３４がこのｄθを積算することで回転角θを求めることができる。式（１）（２）に示すように、回転角θは位置の算出に用いられるので、回転角θが位置の精度に影響する。また、式（３）から分かるように、より小さいｄθを検出するには距離Ｌを大きくすることが好ましい。したがって、距離Ｌが位置の精度に影響するが、距離Ｌを大きくするとＨＨＰ２０の底面積が大きくなり、印刷可能範囲５０１が小さくなる。
【００７４】
続いて、ジャイロセンサ３１の出力を用いた回転角θの算出方法を説明する。ジャイロセンサ３１の出力は角速度ωである。
ω=dθ/dt
であるから、ｄｔをサンプリング周期とすると回転角ｄθは以下で表せる。
dθ=ω×dt
したがって、現在（時間t=0〜N）の回転角θは以下のようになる。
【００７５】
【数１】
2020116932.tif 000003
このように、ジャイロセンサ３１でも回転角θを求めることができる。式（１）（２）に示すように、回転角θを用いて位置を算出できる。ナビゲーションセンサＳ０の位置を算出できれば、図８（ｂ）に示したａ〜ｅの値により、位置算出回路３４は各ノズル６１の座標を算出することができる。なお、式（１）のＸ、式（２）のＹはそれぞれサンプリング周期における変化量なのでこのＸ，Ｙを累積することで現在の位置が求められる。
【００７６】
＜目標吐出位置＞
続いて、図１１を用いて目標吐出位置について説明する。図１１は、目標吐出位置とノズル６１の位置の関係の一例を説明する図である。目標吐出位置Ｇ１〜Ｇ９は、ＨＨＰ２０がノズル６１からインクを着弾させる目標位置（画素の形成先）である。目標吐出位置Ｇ１〜Ｇ９は、ＨＨＰ２０の初期位置とＨＨＰ２０のＸ軸/Ｙ軸方向の解像度(Xdpi,Ydpi)から求めることができる。
【００７７】
例えば、解像度が３００dpiの場合、ＩＪ記録ヘッド２４の長手方向及びこれに対し垂直な方向に約0.084[mm]ごとに目標吐出位置が設定される。この目標吐出位置Ｇ１〜Ｇ９に吐出される画素があれば、ＨＨＰ２０はインクを吐出する。
【００７８】
しかし、実際には、ノズル６１と目標吐出位置が完全に一致するタイミングを捉えることは困難であるため、ＨＨＰ２０は目標吐出位置とノズル６１の現在位置との間に許容誤差６２を設けている。そして、ノズル６１の現在位置が目標吐出位置から許容誤差６２の範囲内にある場合に、ノズル６１からインクを吐出する（このような許容範囲を設けることを「吐出ノズル可否判定」という。）。
【００７９】
また、矢印６３に示すように、ＨＨＰ２０はノズル６１の移動方向と加速度を監視しており、次回の吐出タイミングのノズル６１の位置を予測している。したがって、予測された位置と許容誤差６２の範囲内を比較してインクの吐出を準備することが可能になる。
【００８０】
＜画像データ出力器とＨＨＰによる印刷動作＞
図１２は、画像データ出力器１１とＨＨＰ２０による印刷動作の一例を説明するフローチャートである。
【００８１】
まず、ステップＵ１０１において、ユーザは画像データ出力器１１の電源ボタンを押下する。画像データ出力器１１はそれを受け付け、電池等から電源が供給されて起動する。
【００８２】
続いて、ステップＵ１０２において、ユーザは画像データ出力器１１で出力したい画像を選択する。画像データ出力器１１は画像の選択を受け付ける。ワープロアプリケーションのようなソフトウェアの文書データが画像として選択されてもよいし、ＪＰＥＧ等の画像データが選択されても良い。必要であればプリンタドライバが画像データ以外のデータを画像に変更してよい。
【００８３】
続いて、ステップＵ１０３において、ユーザは選択した画像をＨＨＰ２０で印刷する操作を行う。ＨＨＰ２０は印刷ジョブの実行の要求を受け付ける。印刷ジョブの要求により画像データがＨＨＰ２０へ送信される。
【００８４】
続いて、ステップＵ１０４において、ユーザは、ＨＨＰ２０を持ち、印刷媒体１２（例えばノート）の上で初期位置を決定する。
【００８５】
続いて、ステップＵ１０５において、ユーザはＨＨＰ２０の印刷開始ボタンを押下する。ＨＨＰ２０は印刷開始ボタンの押下を受け付ける。
【００８６】
続いて、ステップＵ１０６において、ユーザはＨＨＰ２０を印刷媒体１２の上で滑らせるように自由に走査する。
【００８７】
次に、ＨＨＰ２０の動作を説明する。以下の動作はＣＰＵ３３がファームウェアを実行することで行われる。
【００８８】
ＨＨＰ２０も電源のＯＮにより起動する。
【００８９】
先ず、ステップＳ１０１において、ＨＨＰ２０のＣＰＵ３３は、ＨＨＰ２０に内蔵されている図３，４のハードウェア要素を初期化する。例えば、ナビゲーションセンサＩ/Ｆ４２やジャイロセンサＩ/Ｆ４５のレジスタを初期化したり、印字／センサタイミング生成部４３にタイミング値を設定したりする。また、ＨＨＰ２０と画像データ出力器１１との間の通信を確立する。
【００９０】
続いて、ステップＳ１０２において、ＨＨＰ２０のＣＰＵ３３は初期化が完了したかどうかを判定し、完了していない場合（ステップＳ１０２、Ｎｏ）はこの判定を繰り返す。
【００９１】
初期化が完了すると（ステップＳ１０２、Ｙｅｓ）、ステップＳ１０３において、ＨＨＰ２０のＣＰＵ３３は、ＯＰＵ２６の例えばＬＥＤ点灯によりユーザに印刷可能な状態であることを報知する。これにより、ユーザは印刷可能な状態であることを把握し、上記のように印刷ジョブの実行を要求する。
【００９２】
続いて、ステップＳ１０４において、印刷ジョブの実行の要求により、ＨＨＰ２０の通信Ｉ/Ｆ２７は画像データ出力器１１から画像データの入力を受け付け、画像が入力された旨をＯＰＵ２６のＬＥＤを点滅させる等によりユーザに対し報知する。
【００９３】
続いて、ステップＳ１０５において、ユーザが印刷媒体１２上でＨＨＰ２０の初期位置を決め印刷開始ボタンを押下すると、ＨＨＰ２０のＯＰＵ２６はこの操作を受け付け、ＣＰＵ３３がナビゲーションセンサＩ/Ｆ４２に位置（移動量）を読み取らせる。これにより、ステップＳ１００１において、ナビゲーションセンサＩ/Ｆ４２はナビゲーションセンサＳ０と通信し、ナビゲーションセンサＳ０が検出した移動量を取得しレジスタ等に格納しておく。ＣＰＵ３３はナビゲーションセンサＩ/Ｆ４２から移動量を読み出す。
【００９４】
続いて、ステップＳ０６において、ユーザが印刷開始ボタンを押下した直後に取得された移動量はゼロであるがゼロでないとしても、ＣＰＵ３３は例えば座標(0,0)の初期位置としてＤＲＡＭ２９やＣＰＵ３３のレジスタなどに格納する。
【００９５】
また、ステップＳ１０７において、初期位置を取得すると印字／センサタイミング生成部４３がタイミングの生成を開始する。印字／センサタイミング生成部４３は、初期化で設定されたナビゲーションセンサＳ０の移動量の取得タイミングに達するとナビゲーションセンサＩ/Ｆ４２にタイミングとジャイロセンサＩ/Ｆ４５にタイミングを指示する。これが周期的に行われ上記のサンプリング周期となる。
【００９６】
続いて、ステップＳ１０８において、ＨＨＰ２０のＣＰＵ３３は、移動量と角速度情報を取得するタイミングであるか否かを判定する。この判定は、割込みコントローラ４１からの通知により行うが、印字／センサタイミング生成部４３と同じタイミングをＣＰＵ３３がカウントすることで判定しても良い。
【００９７】
続いて、ステップＳ１０９において、移動量と角速度情報を取得するタイミングになると、ＨＨＰ２０のＣＰＵ３３はナビゲーションセンサＩ/Ｆ４２から移動量を取得し、ジャイロセンサＩ/Ｆ４５から角速度情報を取得する。上記のように、ジャイロセンサＩ/Ｆ４５は印字／センサタイミング生成部４３が生成するタイミングでジャイロセンサ３１から角速度情報を取得しており、ナビゲーションセンサＩ/Ｆ４２は印字／センサタイミング生成部４３が生成するタイミングでナビゲーションセンサＳ０から移動量を取得している。
【００９８】
続いて、ステップＳ１１０において、位置算出回路３４は角速度情報と移動量を用いてナビゲーションセンサＳ０の現在の位置を算出する。具体的には、位置算出回路３４は、前回のサイクルで算出した位置(Ｘ,Ｙ)と、今回取得した移動量(ΔＸ´、ΔＹ´)及び角速度情報から算出した移動距離を加えて、現在のナビゲーションセンサＳ０の位置を算出する。初期位置のみで、前回算出した位置がない場合は、初期位置に今回取得した移動量(ΔＸ´、ΔＹ´) 及び角速度情報から算出した移動距離を加えて、現在のナビゲーションセンサＳ０の位置を算出する。
【００９９】
続いて、ステップＳ１１１において、位置算出回路３４はナビゲーションセンサＳ０の現在の位置を用いて各ノズル６１の現在の位置を算出する。
【０１００】
このように、印字／センサタイミング生成部４３により角速度情報と移動量が同時に又はほぼ同時に取得されるので、回転角と回転角が検出されたタイミングで取得された移動量でノズル６１の位置を算出できる。したがって、種類が異なるセンサの情報でノズル６１の位置が算出されても、ノズル６１の位置の精度が低下しにくい。
【０１０１】
続いて、ステップＳ１１２において、ＣＰＵ３３はＤＭＡＣ３８を制御して、算出した各ノズル６１の位置を基に、各ノズル６１の周辺画像の画像データをＤＲＡＭ２９からＩｍａｇｅ ＲＡＭ３７へ送信する。なお、回転器３９は、ユーザにより指定されたヘッド位置（ＨＨＰ２０の持ち方など）及びＩＪ記録ヘッド２４の傾きに応じて、画像を回転させる。
【０１０２】
続いて、ステップＳ１１３において、ＩＪ記録ヘッド制御部４４は周辺画像を構成する各画像要素の位置座標と、各ノズル６１の位置座標とを比較する。位置算出回路３４は、ノズル６１の過去の位置と現在の位置を用いてノズル６１の加速度を算出している。これにより、位置算出回路３４は、ナビゲーションセンサＩ/Ｆ４２が移動量を取得しジャイロセンサＩ/Ｆ４５が角速度情報を取得する周期よりも短いＩＪ記録ヘッド２４のインク吐出周期ごとにノズル６１の位置を算出している。
【０１０３】
続いて、ステップＳ１１４において、ＩＪ記録ヘッド制御部４４は、位置算出回路３４が算出するノズル６１の位置から所定範囲内に画像要素の位置座標が含まれるか否かを判定する。
【０１０４】
吐出条件を満たさない場合（ステップＳ１１５、Ｎｏ）、処理はステップＳ１０８に戻る。吐出条件を満たす場合（ステップＳ１１５、Ｙｅｓ）、ステップＳ１１５において、ＩＪ記録ヘッド制御部４４はノズル６１ごとに画像要素のデータをＩＪ記録ヘッド駆動回路２３に出力する。これにより、印刷媒体１２にはインクが吐出される。
【０１０５】
続いて、ステップＳ１１６において、ＣＰＵ３３は全画像データを出力したかを判定する。出力していない場合（ステップＳ１１６、Ｎｏ）、ステップＳ１０８〜Ｓ１１５までの処理を繰り返す。
【０１０６】
全画像データを出力した場合（ステップＳ１１６、Ｙｅｓ）、ステップＳ１１７において、ＣＰＵ３３は、例えばＯＰＵ２６のＬＥＤを点灯させユーザに印刷が終了したことを報知する。
【０１０７】
このようにして、実施形態に係るＨＨＰ２０は、画像データ出力器１１から入力した画像を印刷媒体上に印刷することができる。
【０１０８】
なお、全画像データを出力しなくても、ユーザが十分と判断した場合には、ユーザは印刷完了ボタンを押下し、ＯＰＵ２６がそれを受け付けて、印刷を終了して良い。印刷終了後、ユーザが電源をＯＦＦにすることもできるし、印刷が終了した時点で、自動で電源がＯＦＦにされるようになっていても良い。
【０１０９】
［第１の実施形態］    
次に、第１の実施形態に係るＨＨＰ２０ａについて説明する。なお、既に説明した実施形態と同一の構成部についての説明は省略する。後述する第２の実施形態、及び第３の実施形態においても同様である。
【０１１０】
＜ナビゲーションセンサの移動量検出誤差について＞
ここで、「移動量検出部」の一例としてのナビゲーションセンサ３０の移動量の検出誤差について説明する。
【０１１１】
図５〜６を参照して上述したように、ナビゲーションセンサ３０は、ＬＥＤドライバ３０３やレンズ３０４及び３０６、イメージアレイ３０５等の部品が筐体に組み付けられて構成される。レンズ３０４及び３０６の形状や各部品の筐体への組み付け等には、製作公差の範囲外である場合は当然として、製作公差の範囲内であったとしても、製作誤差が含まれるため、製作されるナビゲーションセンサ３０毎で検出特性に差が生じる場合がある。
【０１１２】
検出特性の具体例の一つとして、検出倍率が挙げられる。実際の移動量とナビゲーションセンサ３０の出力する移動量とは、一次式で表現可能な線形な関係にあるが、検出倍率とはこの一次式の傾きを意味する。このような検出倍率等が製作誤差によりナビゲーションセンサ３０毎で異なる場合がある。また、検出倍率は、ＨＨＰ２０ａの移動面における移動方向や移動速度に応じて異なる場合がある。なお、以下では検出倍率をαとして表す場合がある。
【０１１３】
図１３は、移動方向に応じたナビゲーションセンサの検出倍率の相違を説明する図である。（ａ）は移動方向に対する異方性がない場合の検出倍率を示す図であり、（ｂ）は移動方向に対する異方性がある場合の検出倍率を示す図である。
【０１１４】
図１３において、Ｘ方向はＨＨＰ２０ａの移動面における任意の１方向を表し、Ｙ方向はＸ方向と直交する方向を表している。一例として、Ｙ方向はＩＪ記録ヘッド２４の備えるノズル６１の配列方向であるＹ´軸方向であり、Ｘ方向はＹ´軸に直交する方向のＸ´軸方向である。
【０１１５】
図１３（ａ）に示されている３つの円は、Ｘ方向への移動量をΔＸ´とし、Ｙ方向への移動量をΔＹ´とした場合に、√｛（ΔＸ´）２＋（ΔＹ´）２｝を半径とする円をそれぞれ示している。
【０１１６】
実線で示されている円１３１は実際の移動量とナビゲーションセンサで検出される移動量とが等しい場合の検出倍率（α＝１）を示し、一点鎖線で示されている円１３２は、実際の移動量より大きく検出されるナビゲーションセンサの検出倍率（α＞１）を示している。二点鎖線で示されている円１３３は、実際の移動量より小さく検出されるナビゲーションセンサの検出倍率（α＜１）を示している。
【０１１７】
図１３（ａ）の例では移動方向に対する異方性がないため、ＨＨＰ２０ａの移動面におけるどの方向に移動しても検出倍率は一定となり、移動方向に対する検出倍率を円で表すことができる。そして、検出倍率に応じて円の半径が変化する。
【０１１８】
一方、検出倍率αに、移動方向に対する異方性がある場合は、図１３（ｂ）に示されているように、検出倍率αは移動方向に応じて半径（長さ）の異なる楕円等の円以外の図形で表される。楕円１３４は、Ｘ方向では１より小さく（α＜１）、Ｙ方向では１より大きい（α＞１）場合の検出倍率を表している。
【０１１９】
このように、製作誤差により、ナビゲーションセンサ３０毎で単に検出倍率が異なるだけでなく、ナビゲーションセンサ３０毎で移動方向に応じた検出倍率が異なる場合がある。
【０１２０】
一方、図１４は、移動速度に応じたナビゲーションセンサの検出倍率の相違を説明する図である。図１４において、横軸はＨＨＰ２０ａの移動速度を示し、縦軸は検出倍率を示している。また、破線で示すグラフ１４１は、ＨＨＰ２０ａの移動速度に依らず、検出倍率が常に一定の場合を示し、実線で示すグラフ１４２は移動速度に応じて変化する検出倍率を示している。
【０１２１】
このように、製作誤差により、ナビゲーションセンサ３０毎で移動速度に応じた検出倍率が異なる場合がある。
【０１２２】
ナビゲーションセンサ３０毎で検出倍率等に差があると、ナビゲーションセンサ３０で検出されるＨＨＰ２０ａの移動量に基づいて取得されるＨＨＰ２０ａの位置情報にばらつきが生じる。そして、ＨＨＰ２０ａの位置情報に基づいて印刷媒体に形成される印刷画像の品質にばらつきが生じる。
【０１２３】
そこで、本実施形態では、ナビゲーションセンサ３０による移動量の検出誤差を補正することで、ＨＨＰ２０ａの位置の検出精度を確保し、ＨＨＰ２０ａの印刷画像の品質を確保している。以下に、その詳細を説明する。
【０１２４】
＜第１の実施形態に係るＨＨＰの構成＞
図１５は、本実施形態に係るＨＨＰのハードウェア構成の一例を説明するブロック図である。ＨＨＰ２０ａは、制御部２５ａによって全体の動作が制御され、制御部２５ａにはＮＶＲＡＭ（Non-Volatile RAM）６７等が電気的に接続されている。
【０１２５】
また、ＨＨＰ２０ａの電源回路２１が生成する電力は、点線２２ａで示す配線等により、ＮＶＲＡＭ６７に供給されている。
【０１２６】
ＮＶＲＡＭ６７は、ＨＨＰ２０ａの内部に配置された不揮発性のランダムアクセスメモリである。ＮＶＲＡＭ６７は、ナビゲーションセンサ３０の特性情報を格納する。この特性情報については、別途詳述する。
【０１２７】
次に、図１６は、制御部２５ａのハードウェア構成の一例を説明するブロック図である。制御部２５ａはＳｏＣ５０ａを有し、ＳｏＣ５０ａは、Ｉ２Ｃ ＣＴＬ６９等の機能を有している。ＣＰＵ３３は、ＲＯＭ２８からＤＲＡＭ２９に展開されたファームウェア（プログラム）等を実行して、ＳｏＣ５０ａ内のＩ２Ｃ ＣＴＬ６９等の動作を制御する。
【０１２８】
Ｉ２Ｃ ＣＴＬ６９は、ＮＶＲＡＭ６７とのインタフェースである。但し、Ｉ２Ｃに限定されるものではなく、ＳＰＩ（Serial Peripheral Interface）やパラレルバス等のインタフェースを用いても良い。
【０１２９】
＜第１の実施形態に係る位置検出装置の機能構成＞
次に、本実施形態に係るＨＨＰ２０ａに搭載され、移動面におけるＨＨＰ２０ａの位置を検出する位置検出装置８０の機能構成について説明する。図１７は、本実施形態に係る位置検出装置の機能構成の一例を説明するブロック図である。位置検出装置８０の機能構成は、ＨＨＰ２０ａのハードウェア構成、及び制御部２５ａの構成により実現される。
【０１３０】
図１７に示すように、位置検出装置８０は、ナビゲーションセンサ３０と、ナビゲーションセンサＩ／Ｆ４２と、ジャイロセンサ３１と、ジャイロセンサＩ／Ｆ４５と、平滑化処理部８１と、移動方向取得部８２と、移動速度取得部８３と、格納部８４と、補正部８５と、位置算出回路３４と、特性情報書換部８８とを有する。
【０１３１】
ナビゲーションセンサ３０は、所定のサイクル時間毎に検出した移動量ΔＸ´、ΔＹ´を、ナビゲーションセンサＩ／Ｆ４２を介して平滑化処理部８１に出力する。ここで移動量ΔＸ´、ΔＹ´は、それぞれ「検出移動量」の一例である。
【０１３２】
ジャイロセンサ３１は、所定のサイクル時間毎に検出した角速度ωを、ジャイロセンサＩ／Ｆ４５を介して位置算出回路３４に出力する。ここで、ジャイロセンサ３１は「姿勢検出部」の一例であり、角速度ωは「姿勢」の一例である。
【０１３３】
平滑化処理部８１は、入力した移動量ΔＸ´、ΔＹ´に対してローパスフィルタリング処理を実行し、高周波ノイズを低減して平滑化する。そして、処理後の移動量ΔＸ´、ΔＹ´を移動方向取得部８２、移動速度取得部８３、及び補正部８５にそれぞれ出力する。
【０１３４】
移動方向取得部８２は、入力した移動量ΔＸ´、ΔＹ´に基づき、以下の式によりＨＨＰ２０ａの移動方向φを取得し、補正部８５に出力する。
φ＝（ΔＹ´／ΔＸ´）
移動速度取得部８３は、入力した移動量ΔＸ´、ΔＹ´に基づき、以下の式によりＨＨＰ２０ａの移動速度ｖを取得し、補正部８５に出力する。
ｖＸ＝ｆＸ（ΔＸ´）
ｖＹ＝ｆＹ（ΔＹ´）
ｖ＝√（ｖＸ２＋ｖＹ２）
ここで、ｖＸは移動速度ｖのＸ方向成分であり、ｖＹは移動速度ｖのＹ方向成分である。また、ｆＸは移動量ΔＸ´を移動速度に変換する変換式であり、ｆＹは移動量ΔＹ´を移動速度に変換する変換式である。この変換は、変換式で実行されても良いし、予め取得された、移動量ΔＸ´と移動速度ｖＸとの対応関係を示す変換テーブル、及び移動量ΔＹ´と移動速度ｖＹとの対応関係を示す変換テーブルを用いて実行されても良い。
【０１３５】
格納部８４は、ＮＶＲＡＭ６７等により実現され、ナビゲーションセンサ３０の特性情報を格納する。ここで、特性情報とは、ナビゲーションセンサ３０による移動量の検出特性を示す情報であり、製作誤差に起因してナビゲーションセンサ毎で異なる情報である。具体的には、本実施形態では、移動方向φと方向倍率αＸ（φ）、αＹ（φ）との対応関係を示す補正テーブルと、移動速度ｖと速度倍率α（ｖ）との対応関係を示す補正テーブルを、それぞれ特性情報の一例として格納している。
【０１３６】
ここで、方向倍率αＸ（φ）は移動方向に応じた検出倍率αのＸ方向成分であり、方向倍率αＹ（φ）は移動方向に応じた検出倍率αのＹ方向成分である。速度倍率α（ｖ）は移動速度に応じた検出倍率αである。
【０１３７】
補正部８５は、入力した移動方向φに基づき、格納部８４を参照して方向倍率αＸ（φ）、αＹ（φ）を取得し、また、入力した移動速度ｖに基づき、格納部８４を参照して速度倍率α（ｖ）を取得する。そして、方向倍率αＸ（φ）、αＹ（φ）と、速度倍率α（ｖ）とに基づいて、移動量ΔＸ´、ΔＹ´を補正し、補正後の移動量である補正移動量ΔＸ"、ΔＹ"を取得する。補正移動量ΔＸ"、ΔＹ"は、位置算出回路３４に出力される。なお、補正方法の詳細については、別途、図２０を参照して述べる。
【０１３８】
位置算出回路３４は、入力した補正移動量ΔＸ"、ΔＹ"、及び角速度ωに基づいてＨＨＰ２０の位置（座標情報）を算出し、印字／センサタイミング生成部４３に出力する。ここで、位置算出回路３４は「位置取得部」の一例である。
【０１３９】
特性情報書換部８８は、ナビゲーションセンサ３０の特性情報を、通信Ｉ／Ｆ２７を介して画像データ出力器１１から入力し、格納部８４に格納された特性情報を書き換える機能を有する。これにより、格納部８４に格納された特性情報を随時更新することができる。ここで、画像データ出力器１１から入力される情報は、「入力情報」の一例である。
【０１４０】
次に、格納部８４に格納される、移動方向φと方向倍率αＸ（φ）、αＹ（φ）との対応関係を示す補正テーブルについて説明する。補正テーブルは、ＨＨＰ２０ａの移動方向φ毎での移動量がナビゲーションセンサ３０と基準とする計測器の両者で検出され、これらの移動量データに基づき作成される。
【０１４１】
ここで、移動面内でφだけ回転した状態のＨＨＰ２０ａを移動面において水平方向に移動させる場合と、移動面内で回転していない状態のＨＨＰ２０ａを移動面において水平方向からφだけ傾いた方向に移動させる場合とで、検出倍率は等価になる。
【０１４２】
そのため、一例として、補正テーブルの作成時には、ＨＨＰ２０ａの移動方向を変化させる代わりに、ナビゲーションセンサ３０の中心位置を回転中心としてＨＨＰ２０ａを回転させる。そして、ＨＨＰ２０ａの回転角度毎で、ＨＨＰ２０ａを所定の方向（Ｘ方向等）に移動させた時の移動量を、基準とする計測器とＨＨＰ２０ａの両者で検出する。なお、ＨＨＰ２０ａを移動させる代わりに、印刷媒体等の対象物を所定の方向に移動させても良い。
【０１４３】
ＨＨＰ２０ａの回転は回転ステージ等により行い、回転ステージの回転角度を計測しながらＨＨＰ２０ａを回転させる。基準とする移動量の計測器と、回転ステージの回転角度の計測器は、十分な計測精度を備えるものが好ましい。
【０１４４】
基準とする計測器により検出された移動量ベクトルＬＫと、ナビゲーションセンサ３０により検出された移動量ベクトルＬＳとから検出倍率のＸ方向成分αＸと、Ｙ方向成分αＹを算出する。
【０１４５】
算出では、先ず、移動量ベクトルＬＳの大きさ｜ＬＳ｜で除算することで移動量ベクトルＬＳ及びＬＫを正規化した後、それぞれのＸ方向成分とＹ方向成分を求める。但し、φＫは移動量ベクトルＬＫの方向である。
ＬＳＸ＝ｃｏｓφ
ＬＳＹ＝ｓｉｎφ
ＬＫＸ＝｜ＬＫ｜／｜ＬＳ｜・ｃｏｓφＫ
ＬＫＹ＝｜ＬＫ｜／｜ＬＳ｜・ｓｉｎφＫ
そして、以下の式により方向倍率のＸ方向成分αＸと、Ｙ方向成分αＹを算出することができる。
αＸ＝ＬＫＸ／ＬＳＸ  ・・・（４）
αＹ＝ＬＫＹ／ＬＳＹ  ・・・（５）
図１８は、上述したような、ＨＨＰの移動方向に応じたナビゲーションセンサの検出倍率データの取得方法の一例を説明する図である。（ａ）は検出倍率データ取得時の移動面内でのナビゲーションセンサの回転を説明する図であり、（ｂ）は取得された検出倍率データの一例を示す図である。
【０１４６】
図１８（ａ）は、ＨＨＰ２０ａの移動面に配置されたナビゲーションセンサ３０を、移動面に直交する方向（上方向）から見た図であり、１８１はナビゲーションセンサ３０の中心位置である。この中心位置を回転中心として、ＨＨＰ２０ａの移動方向φに該当する方向にＨＨＰ２０ａを回転させる。そして、図１８（ａ）のＸ方向にＨＨＰ２０ａを移動させて、移動量ベクトルＬＫ及びＬＳを取得する。検出された移動量ベクトルＬＫ及びＬＳに基づき、上述した計算式により、検出倍率αＸ及びαＹが算出される。
【０１４７】
図１８（ｂ）では、ＨＨＰ２０ａを回転させた方向と、ＨＨＰ２０ａの移動方向との関係に合わせて、図１８（ａ）に対してＸ方向の座標軸が反転されて表示されている。１８２は、移動量ベクトルＬＫ及びＬＳに基づき算出された方向倍率データを示し、方向倍率を示すベクトルの先端部分がプロットされ、表示されている。
【０１４８】
図１９は、移動方向に応じた補正テーブルの一例を示す図である。図１９では、正のＸ方向への移動を往路、負のＸ方向への移動を復路として、往路と復路でそれぞれ取得された検出倍率から算出された方向倍率のＸ方向成分αＸ（φ）と、Ｙ方向成分αＹ（φ）が示されている。このような補正テーブルが作成され、格納部８４に格納される。
【０１４９】
次に、方向倍率を用いた補正方法について説明する。図２０は、本実施形態に係る補正部による補正方法の一例を説明する図である。図２０において、破線で示した矢印２０１は、ナビゲーションセンサ３０により検出された移動量ベクトルＬＳを示している。移動量ベクトルＬＳのＸ方向成分はΔＸ´であり、Ｘ方向成分はΔＹ´である。
【０１５０】
実線で示した矢印２０２は、移動量ベクトルＬＳをベクトルの大きさ｜ＬＳ｜で除算して正規化ベクトルＬＳＮを示している。正規化ベクトルＬＳＮのＸ方向成分はΔＸ´Ｎであり、Ｘ方向成分はΔＹ´Ｎである。一点鎖線で示した矢印２０３は、補正後の移動量ベクトルを表す補正移動量ベクトルＬＳＣを示し、二点鎖線で示した矢印２０４は、補正量を表す補正ベクトルを示している。
【０１５１】
補正移動量ベクトルＬＳＣのＸ方向成分ΔＸ"とＹ方向成分ΔＹ"は、以下の式により算出することができる。
ΔＸ"＝｜ＬＳ｜・αＸ（φ）・ΔＸ´Ｎ
ΔＹ"＝｜ＬＳ｜・αＹ（φ）・ΔＹ´Ｎ
なお、上述した例では、（４）式及び（５）式で示したように、移動量ベクトルＬＳと移動量ベクトルＬＫの比により方向倍率αＸ、αＹを算出し、検出移動量に方向倍率αＸ、αＹを乗算して補正移動量を算出するものを示したが、これに限定されるものではない。移動量ベクトルＬＳと移動量ベクトルＬＫの差により方向倍率αＸ、αＹを算出し、検出移動量に方向倍率αＸ、αＹを加算して補正移動量を算出しても良い。
【０１５２】
次に、図２１は、移動速度に応じた補正テーブルの一例を示す図である。図２１では、正のＸ方向への移動を往路、負のＸ方向への移動を復路として、往路と復路でそれぞれ取得された検出倍率から算出された速度倍率α（ｖ）が示されている。速度倍率α（ｖ）は、上述した方法と同様に、基準とする計測器を用いて取得することができる。図２１に示したような補正テーブルが作成され、格納部８４に格納される。
【０１５３】
補正部８５は、検出された移動速度ｖに基づき格納部８４を参照して、速度倍率α（ｖ）を取得し、方向倍率αＸ（φ）、αＹ（φ）を用いた補正と併せて、以下の式により補正移動量ベクトルＬＳＣのＸ方向成分ΔＸ"とＹ方向成分ΔＹ"を算出することができる。
ΔＸ"＝α（ｖ）・｜ＬＳ｜・αＸ（φ）・ΔＸ´Ｎ
ΔＹ"＝α（ｖ）・｜ＬＳ｜・αＹ（φ）・ΔＹ´Ｎ
なお、上述した例では、移動方向に応じた方向倍率、及び移動速度に応じた速度倍率が記録された補正テーブルにより、方向倍率、及び速度倍率を取得し、補正移動量を算出するものを示したが、これに限定されるものではない。移動方向を補正移動量に変換する変換式と、移動速度を補正移動量に変換する変換式とを予め取得しておき、これらの変換式に基づいて補正移動量を算出しても良い。この場合、これらの変換式が格納部８４に格納され、補正時に補正部８５により参照される。このような変換式も、「特性情報」の一例である。
【０１５４】
また、上述した方向倍率α（φ）、及び速度倍率α（ｖ）等の特性情報は、工場等でのナビゲーションセンサ３０の製作時、又は出荷時に取得され、格納部８４に格納される。但し、これに限定されるものではなく、出荷後に取得されても良いし、出荷後に取得された特性情報により、格納部８４に格納されている特性情報が書き換えられても（更新されても）良い。
【０１５５】
＜第１の実施形態に係る位置検出装置の動作＞
次に、本実施形態に係る位置検出装置８０の動作について説明する。図２２は、本実施形態に係る位置検出装置の動作の一例を示すフローチャートである。
【０１５６】
先ず、ステップＳ２２１において、ナビゲーションセンサ３０は、所定のサイクル時間毎に移動量ΔＸ´、ΔＹ´を検出し、ナビゲーションセンサＩ／Ｆ４２を介して平滑化処理部８１に出力する。
【０１５７】
続いて、ステップＳ２２２において、ジャイロセンサ３１は、所定のサイクル時間毎に角速度ωを検出し、ジャイロセンサＩ／Ｆ４５を介して位置算出回路３４に出力する。
【０１５８】
続いて、ステップＳ２２３において、平滑化処理部８１は、入力した移動量ΔＸ´、ΔＹ´に対してローパスフィルタリング処理を実行し、高周波ノイズを低減して平滑化する。そして、処理後の移動量ΔＸ´、ΔＹ´を移動方向取得部８２、移動速度取得部８３、、及び補正部８５にそれぞれ出力する。
【０１５９】
続いて、ステップＳ２２４において、移動方向取得部８２は、ＯＰＵ２６からの選択操作信号等に従い、移動方向に応じた補正をするか否かを判定する。移動方向に応じた補正をすると判定された場合は（ステップＳ２２４、Ｙｅｓ）、ステップＳ２２５に移行し、しないと判定された場合は（ステップＳ２２４、Ｎｏ）、ステップＳ２２７に移行する。
【０１６０】
続いて、ステップＳ２２５において、移動方向取得部８２は、平滑化処理部８１から入力した移動量ΔＸ´、ΔＹ´に基づき、ＨＨＰ２０ａの移動方向φを取得し、補正部８５に出力する。
【０１６１】
続いて、ステップＳ２２６において、補正部８５は、入力した移動方向φに基づき、格納部８４を参照して方向倍率αＸ（φ）、αＹ（φ）を取得する。
【０１６２】
続いて、ステップＳ２２７において、移動速度取得部８３は、ＯＰＵ２６からの選択操作信号等に従い、移動速度に応じた補正をするか否かを判定する。移動速度に応じた補正をすると判定された場合は（ステップＳ２２７、Ｙｅｓ）、ステップＳ２２８に移行し、しないと判定された場合は（ステップＳ２２７、Ｎｏ）、ステップＳ２３１に移行する。
【０１６３】
続いて、ステップＳ２２８において、移動速度取得部８３は、平滑化処理部８１から入力した移動量ΔＸ´、ΔＹ´に基づき、ＨＨＰ２０ａの移動速度ｖを取得し、補正部８５に出力する。
【０１６４】
続いて、ステップＳ２２９において、補正部８５は、入力した移動速度ｖに基づき、格納部８４を参照して速度倍率α（ｖ）を取得する。
【０１６５】
続いて、ステップＳ２３０において、補正部８５は、方向倍率αＸ（φ）、αＹ（φ）、及び／又は速度倍率α（ｖ）に基づいて、移動量ΔＸ´、ΔＹ´を補正し、補正後の補正移動量ΔＸ"、ΔＹ"を位置算出回路３４に出力する。
【０１６６】
続いて、ステップＳ２３１において、位置算出回路３４は、入力した補正移動量ΔＸ"、ΔＹ"、及び角速度ωに基づいてＨＨＰ２０の位置を算出する。
【０１６７】
続いて、ステップＳ２３２において、位置算出回路３４は、算出したＨＨＰ２０の位置情報を印字／センサタイミング生成部４３に出力する。
【０１６８】
このようにして、位置検出装置８０は、ＨＨＰ２０の位置を検出し、出力することができる。
【０１６９】
＜効果＞
以上説明してきたように、本実施形態では、ナビゲーションセンサ３０の製作誤差に起因した移動量の検出誤差を、ナビゲーションセンサ３０毎に取得された特性情報に基づいて補正する。これにより、製作誤差に起因したナビゲーションセンサ３０の検出誤差を抑制することができる。そして、検出された移動量に基づく位置の検出精度を確保し、ＨＨＰ２０ａの印刷画像の品質を確保することができる。
【０１７０】
また、本実施形態では、特性情報書換部８８を備えることで、格納部８４に格納された補正テーブル（特性情報）を書き換えて随時更新することが可能となる。
【０１７１】
［第２の実施形態］
次に、第２の実施形態に係るＨＨＰ２０ｂについて説明する。
【０１７２】
ここで、ＨＨＰ２０ｂでは、ＨＨＰ２０ｂの印刷媒体に対向する部分に、転動体（コロ）を含む移動補助部材を取り付ける場合がある。転動体は非常に小さな転がり抵抗で自転することができるため、移動補助部材を介して印刷媒体上でＨＨＰ２０ｂを移動させることができる。これにより、印刷媒体上でのＨＨＰ２０ｂの移動を円滑に行うことができる。
【０１７３】
しかし、このような移動補助部材をＨＨＰ２０ｂに取り付けると、ナビゲーションセンサ３０と印刷媒体との間の距離が変わり、ナビゲーションセンサ３０の特性情報が変化し、特性情報を用いて移動量を適切に補正できなくなる場合がある。
【０１７４】
ここで、ナビゲーションセンサ３０と印刷媒体との間の距離は、換言すると、「ナビゲーションセンサ３０により検出移動量を検出する検出面に対するナビゲーションセンサ３０の高さ」であり、以下の説明では、ナビゲーションセンサ３０の高さと称する。なお、移動補助部材によるナビゲーションセンサ３０の高さの変化は一例であり、他の要因で、ナビゲーションセンサ３０の高さが変化する場合もある。
【０１７５】
また、印刷媒体の種別には、普通紙や光沢紙等があり、また同じ普通紙や光沢紙の中にも表面の粗さや材質に応じて様々な種別がある。このような印刷媒体の種別により、ナビゲーションセンサ３０の備えるＬＥＤドライバ３０３から照射された光の反射特性が変わる場合がある。そして、反射特性に応じてナビゲーションセンサ３０の特性情報が変化し、特性情報を用いて移動量を適切に補正できなくなる場合がある。ここで、印刷媒体の種別は、「移動面の種別」の一例である。
【０１７６】
図２３は、ナビゲーションセンサの高さを説明する図である。図２３において、筐体２３６の内部には、ＬＥＤドライバ３０３やレンズ３０４及び３０６、イメージアレイ３０５等の部品が組み付けられている。
【０１７７】
図２３に破線の矢印で示した高さ２３７は、ナビゲーションセンサ３０の高さを示している。ナビゲーションセンサ３０の筐体における印刷媒体に対向する面に、移動補助部材が取り付けられると、ナビゲーションセンサ３０の高さが変化する（高くなる）。
【０１７８】
このように、ナビゲーションセンサ３０の高さが変化すると、ＬＥＤドライバ３０３やレンズ３０４及び３０６、イメージアレイ３０５等の部品と、印刷媒体との間の距離が変化し、レンズ３０４によりイメージアレイ３０５に形成される像の大きさや明るさ等が変化する場合がある。
【０１７９】
また、印刷媒体の種別により、印刷媒体の表面の粗さ等が異なるため、これにより、レンズ３０４によりイメージアレイ３０５に形成される像の大きさや明るさ等が変化する場合がある。
【０１８０】
図２４は、ナビゲーションセンサの高さと検出移動量との関係の一例を説明する図である。図２４の横軸はナビゲーションセンサの高さを示し、縦軸はナビゲーションセンサ３０による検出移動量を示している。
【０１８１】
図２４において破線のグラフ２４１は、実際の移動量を示し、実線のグラフ２４２はナビゲーションセンサ３０による検出移動量を示している。図２４に示されているように、ナビゲーションセンサ３０の高さに応じて、レンズ３０４によりイメージアレイ３０５に形成される像の大きさや明るさ等が変化することで、ナビゲーションセンサ３０により検出される移動量が変化する。
【０１８２】
そこで、本実施形態では、ナビゲーションセンサ３０の高さ、及び印刷媒体の種別に応じて異なる補正テーブルを格納部８４に格納させる。そして、取得したナビゲーションセンサ３０の高さ情報、及び印刷媒体の種別情報に応じて、異なる補正テーブルを用いて補正を実行する。以下に、その詳細を説明する。
【０１８３】
＜第２の実施形態に係るＨＨＰの機能構成＞
図２５は、本実施形態に係るＨＨＰの機能構成の一例を説明するブロック図である。図２５に示すように、ＨＨＰ２０ｂは、位置検出装置８０ｂを有し、位置検出装置８０ｂは、高さ情報取得部８６と、印刷媒体種別情報取得部８７と、補正部８５ｂとを有する。
【０１８４】
高さ情報取得部８６は、ナビゲーションセンサ３０の高さ情報を取得し、補正部８５ｂの補正テーブル選択部８５１に出力する。一例として、高さ情報取得部８６は、ユーザがＯＰＵ２６で行った移動補助部材の「有」の選択操作を示す信号をＯＰＵ２６から入力し、ＨＨＰ２０ｂに移動補助部材が取り付けられたことを検知する。そして、予め定められた、移動補助部材が取り付けられた場合のナビゲーションセンサ３０の高さ情報を取得し、補正テーブル選択部８５１に出力することができる。
【０１８５】
但し、これに限定されるものではなく、ＨＨＰ２０ｂの筐体に設けられた移動補助部材の取付を検知するセンサ等の検知信号に基づき、高さ情報を取得しても良い。また、ＨＨＰ２０ｂに設けられたナビゲーションセンサ３０の高さを検出するセンサの検出信号に基づき、高さ情報を取得しても良い。
【０１８６】
印刷媒体種別情報取得部８７は、印刷媒体の種別情報を取得し、検知信号を補正テーブル選択部８５１に出力する。一例として、印刷媒体種別情報取得部８７は、ユーザがＯＰＵ２６で行った印刷媒体の種別の選択操作を示す信号をＯＰＵ２６から入力し、印刷媒体の種別を取得することができる。但し、これに限定されるものではなく、ＨＨＰ２０ｂに設けられた印刷媒体の種別を検出するセンサの検出信号に基づき、印刷媒体の種別情報を取得しても良い。
【０１８７】
補正部８５ｂは補正テーブル選択部８５１を有する。補正テーブル選択部８５１は、高さ情報取得部８６から入力した高さ情報、及び印刷媒体種別情報取得部８７から入力した印刷媒体種別情報に応じて、格納部８４に格納された補正テーブルを選択することができる。補正部８５ｂは、補正テーブル選択部８５１が選択した補正テーブルを用いて、ナビゲーションセンサ３０による検出移動量を補正することができる。
【０１８８】
図２６は、格納部に格納された各種補正テーブルの一例を説明する図である。格納部８４には、補助部材有補正テーブル８４１と、補助部材無補正テーブル８４２と、普通紙補正テーブル８４３と、光沢紙補正テーブル８４４とを有する。
【０１８９】
補正テーブル選択部８５１は、高さ情報取得部８６から入力した高さ情報に応じて、補助部材有補正テーブル８４１、又は補助部材無補正テーブル８４２の何れかを選択することができる。また、補正テーブル選択部８５１は、印刷媒体種別情報取得部８７から入力した印刷媒体種別情報に応じて、普通紙補正テーブル８４３、又は光沢紙補正テーブル８４４の何れかを選択することができる。
【０１９０】
一例として、補助部材有補正テーブル８４１と、普通紙補正テーブル８４３とが選択された場合、補正テーブル選択部８５１は、補助部材有補正テーブル８４１に格納された方向倍率α１（φ）と、普通紙補正テーブル８４３に格納された方向倍率α２（φ）とを選択し、補正部８５ｂは、方向倍率α１（φ）及びα２（φ）を乗算して得られる方向倍率α１（φ）×α２（φ）を、検出移動量の補正に用いることができる。
【０１９１】
図２７は、本実施形態に係る位置検出装置による補正テーブルの選択処理の一例を示すフローチャートである。
【０１９２】
先ず、ステップＳ２７１において、高さ情報取得部８６は、ＯＰＵ２６からの選択操作信号等に従い、高さに応じた補正をするか否かを判定する。補正をすると判定された場合は（ステップＳ２７１、Ｙｅｓ）、ステップＳ２７２に移行し、補正をしないと判定された場合は（ステップＳ２７１、Ｎｏ）、ステップＳ２７４に移行する。
【０１９３】
続いて、ステップＳ２７２において、高さ情報取得部８６は、ナビゲーションセンサ３０の高さ情報を取得し、補正テーブル選択部８５１に出力する。
【０１９４】
続いて、ステップＳ２７３において、補正テーブル選択部８５１は、高さ情報取得部８６から入力した高さ情報に応じて、格納部８４に格納された補正テーブルを選択する。
【０１９５】
続いて、ステップＳ２７４において、印刷媒体種別情報取得部８７は、ＯＰＵ２６からの選択操作信号等に従い、印刷媒体の種別に応じた補正をするか否かを判定する。補正をすると判定された場合は（ステップＳ２７４、Ｙｅｓ）、ステップＳ２７５に移行し、補正をしないと判定された場合は（ステップＳ２７４、Ｎｏ）、処理を終了する。
【０１９６】
続いて、ステップＳ２７５において、印刷媒体種別情報取得部８７は、印刷媒体の種別情報を取得し、補正テーブル選択部８５１に出力する。
【０１９７】
続いて、ステップＳ２７６において、補正テーブル選択部８５１は、印刷媒体種別情報取得部８７から入力した印刷媒体種別情報に応じて、格納部８４に格納された補正テーブルを選択する。
【０１９８】
このようにして、位置検出装置８０ｂは、ナビゲーションセンサ３０の高さ情報、及び印刷媒体の種別情報に応じて、適切な補正テーブルを選択し、ナビゲーションセンサ３０による検出移動量の補正に用いることができる。
【０１９９】
以上説明してきたように、本実施形態では、ナビゲーションセンサ３０の高さ、及び印刷媒体の種別に応じて、異なる補正テーブルを選択して補正に用いる。これにより、ナビゲーションセンサ３０の高さ、及び印刷媒体の種別に応じた適切な特性情報により、移動量を適切に補正することができる。
【０２００】
なお、上述した以外の効果は、第１の実施形態で説明したものと同様である。
【０２０１】
＜第３の実施形態＞
次に、第３の実施形態に係るＨＨＰ２０ｃについて説明する。
【０２０２】
上述したように、ジャイロセンサ３１による角速度ωを用い、ＨＨＰ２０ｃの回転角θを検出することができる。本実施形態では、ジャイロセンサ３１による角速度ωをジャイロセンサ３１の特性情報に基づいて補正することで、ＨＨＰ２０ｃの回転角θを正確に検出する。
【０２０３】
図２８は、本実施形態におけるナビゲーションセンサ３０とジャイロセンサ３１との配置の一例を説明する図である。図２８において、破線で示される軸２８１は、移動面に対して直交する軸であり、ジャイロセンサ３１により検出される回転角θの回転中心２８２を通る軸である。また軸２８１は、ナビゲーションセンサ３０の中心位置２８３を通っている。このように、ジャイロセンサ３１はナビゲーションセンサ３０の上方であって、回転中心２８２が軸２８１上に配置されるようにして配置されている。
【０２０４】
図２９は、本実施形態に係る位置検出装置８０ｃの機能構成の一例を説明するブロック図である。図２９に示すように、位置検出装置８０ｃは、格納部８４ｃと、補正部８５ｃと、位置算出回路３４ｃとを有する。
【０２０５】
格納部８４ｃは、ナビゲーションセンサ３０により検出された移動量ΔＸ´、ΔＹ´の補正テーブルに加え、ジャイロセンサ３１により検出された角速度ωの補正テーブルを格納している。角速度ωの補正テーブルは、「姿勢検出部の特性情報」の一例である。
【０２０６】
補正部８５ｃは、格納部８４ｃに格納された補正テーブルに基づいて角速度ωを補正したデータβ（ω）に基づき、ＨＨＰ２０ｃの回転角θを算出することができる。補正部８５ｃは、算出した回転角θを位置算出回路３４ｃに出力する。ここで、角速度ωを補正したデータβ（ω）は、「補正姿勢」の一例である。
【０２０７】
位置算出回路３４ｃは、補正移動量ΔＸ"、ΔＹ"、及び回転角θに基づいて取得したＨＨＰ２０ｃの位置を出力することができる。
【０２０８】
ナビゲーションセンサ３０は、その中心位置の近くで回転した時出力が小さくなり、正しい移動量の検出が困難になるが、本実施形態のようにナビゲーションセンサ３０、及びジャイロセンサ３１を配置することで正確な位置角度検出が可能になる。
【０２０９】
また、上述したように、ナビゲーションセンサ３０の位置は、ＩＪ記録ヘッド２４のノズルの位置を検出するための基準となる。本実施形態のように、ナビゲーションセンサ３０の中心位置２８３とジャイロセンサ３１の回転中心２８２とを軸２８１上に配置することで、基準位置の回転角度とジャイロセンサ３１の回転軸を近くに配置することができ、検出誤差を少なくし、ノズルの位置を正確に検出することが可能となる。
【０２１０】
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【０２１１】
また、実施形態は、位置検出方法も含む。例えば、位置検出方法は、位置検出装置が搭載されたハンドヘルド装置の移動面における位置を検出する位置検出方法であって、前記移動面における前記ハンドヘルド装置の検出移動量を検出する移動量検出工程と、少なくとも前記移動面における前記ハンドヘルド装置の姿勢を検出する姿勢検出工程と。前記移動量検出工程の特性情報を格納する格納工程と、格納された前記特性情報に基づいて前記検出移動量を補正した補正移動量を出力する補正工程と、前記補正移動量に基づいて取得した前記ハンドヘルド装置の前記位置を出力する位置取得工程と、を含む。このような位置検出方法により、上述した位置検出装置と同様の効果を得ることができる。
【０２１２】
さらに、実施形態は、プログラムも含む。例えば、プログラムは、位置検出装置が搭載されたハンドヘルド装置の移動面における位置を検出する位置検出装置を、前記移動面における前記ハンドヘルド装置の検出移動量を検出する移動量検出部、少なくとも前記移動面における前記ハンドヘルド装置の姿勢を検出する姿勢検出部、前記移動量検出部の特性情報を格納する格納部、格納された前記特性情報に基づいて前記検出移動量を補正した補正移動量を出力する補正部、前記補正移動量に基づいて取得した前記ハンドヘルド装置の前記位置を出力する位置取得部、として機能させる。このようなプログラムにより、上述した位置検出装置と同様の効果を得ることができる。
【０２１３】
また、上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP（digital signal processor）、FPGA（field programmable gate array）や従来の回路モジュール等のデバイスを含むものとする。
【符号の説明】
【０２１４】
１１      画像データ出力器
１２      印刷媒体
２０、２０ａ、２０ｂ、２０ｃ  ＨＨＰ
２３      ＩＪ記録ヘッド駆動回路
２４      ＩＪ記録ヘッド（液体吐出部の一例）
２５、２５ａ  制御部
２６      ＯＰＵ
３０      ナビゲーションセンサ（移動量検出部の一例）
３１      ジャイロセンサ（姿勢検出部の一例）
３３      ＣＰＵ
３４、３４ｃ  位置算出回路（位置取得部の一例）
４２      ナビゲーションセンサＩ/Ｆ
４３      センサタイミング生成部
４４      ＩＪ記録ヘッド制御部
４５      ジャイロセンサＩ/Ｆ
５０、５０ａ  ＳｏＣ
６１      ノズル
６７      ＮＶＲＡＭ（格納部の一例）
７０      Ｉ２Ｃ ＣＴＬ
８１      平滑化処理部
８２      移動方向取得部
８３      移動速度取得部
８４      格納部
８５      補正部
８５１    補正テーブル選択部
８６      高さ情報取得部
８７      印刷媒体種別情報取得部
８８      特性情報書換部
ΔＸ´、ΔＹ´  移動量（検出移動量の一例）
ΔＸ"、ΔＹ"  補正移動量
ω        角速度
θ        回転角
φ        移動方向
ｖ        移動速度
α        検出倍率
αＸ（φ）、αＹ（φ）  方向倍率
α（ｖ）  速度倍率
【先行技術文献】
【特許文献】
【０２１５】
【特許文献１】ＵＳ２０１１／０１５０３６３Ａ１
【図１】
2020116932.tif 000004
【図２】
2020116932.tif 000005
【図３】
2020116932.tif 000006
【図４】
2020116932.tif 000007
【図５】
2020116932.tif 000008
【図６】
2020116932.tif 000009
【図７】
2020116932.tif 000010
【図８】
2020116932.tif 000011
【図９】
2020116932.tif 000012
【図１０】
2020116932.tif 000013
【図１１】
2020116932.tif 000014
【図１２】
2020116932.tif 000015
【図１３】
2020116932.tif 000016
【図１４】
2020116932.tif 000017
【図１５】
2020116932.tif 000018
【図１６】
2020116932.tif 000019
【図１７】
2020116932.tif 000020
【図１８】
2020116932.tif 000021
【図１９】
2020116932.tif 000022
【図２０】
2020116932.tif 000023
【図２１】
2020116932.tif 000024
【図２２】
2020116932.tif 000025
【図２３】
2020116932.tif 000026
【図２４】
2020116932.tif 000027
【図２５】
2020116932.tif 000028
【図２６】
2020116932.tif 000029
【図２７】
2020116932.tif 000030
【図２８】
2020116932.tif 000031
【図２９】
2020116932.tif 000032