(57)【特許請求の範囲】
【請求項１】
制御部を有するコンピュータにより情報処理を行うプログラムにおいて、
コンピュータに、
近距離無線通信部を介して近距離無線通信装置から位置を特定するための位置情報を取得し、
前記近距離無線通信部により前記近距離無線通信装置を認識した時点から、所定時間内の加速度センサから出力される加速度を前記制御部により取得し、
取得した加速度に基づき、前記制御部により姿勢を特定するための姿勢情報を算出する
処理を実行させるプログラム。
【請求項２】
前記制御部は、前記加速度センサから出力された３軸の加速度と、重力加速度または３軸の加速度のノルムとに基づき、姿勢情報を算出する
請求項１に記載のプログラム。
【請求項３】
前記制御部は、前記近距離無線通信部により前記近距離無線通信装置を認識した時点から、記憶部に記憶した所定時間経過後に前記加速度センサから出力される加速度を取得する
請求項１または２に記載のプログラム。
【請求項４】
前記近距離無線通信部を介して前記近距離無線通信装置から方位を特定するための方位情報を取得し、
取得した方位情報に基づき、算出した姿勢情報を前記制御部により補正する
請求項１から３までのいずれか１項に記載のプログラム。
【請求項５】
前記近距離無線通信部により前記近距離無線通信装置を認識した時点から、所定時間経過後の角速度センサから出力される角速度を前記制御部により取得し、
取得した角速度に基づき算出した姿勢情報を、前記制御部により更新する
請求項１から３のいずれか１項に記載のプログラム。
【請求項６】
前記制御部は、取得した角速度に基づき、衝撃による角速度の変化が減少した時点を検出し、
前記制御部は、前記所定時間経過後から減少した時点までに取得される角速度に基づき算出した姿勢情報を更新する
請求項５に記載のプログラム。
【請求項７】
制御部を有するコンピュータにより情報処理を行うプログラムにおいて、
コンピュータに、
近距離無線通信部を介して近距離無線通信装置から位置を特定するための位置情報および方位を特定するための第１方位情報を取得し、
磁気センサから方位を特定するための第２方位情報を取得し、
前記第１方位情報および前記第２方位情報に基づき方位情報を補正し、
予め記憶した姿勢を特定するための姿勢情報を記憶部から読み出し、
読み出した姿勢情報を、補正後の方位情報に基づき前記制御部により補正する
処理を実行させるプログラム。
【請求項８】
情報処理を行う情報処理装置において、
近距離無線通信部を介して近距離無線通信装置から位置を特定するための位置情報を取得する取得部と、
前記近距離無線通信部により前記近距離無線通信装置を認識した時点から、所定時間内の加速度センサから出力される加速度を取得する加速度取得部と、
該加速度取得部により取得した加速度に基づき、姿勢を特定するための姿勢情報を算出する算出部と
を備える情報処理装置。
【請求項９】
情報処理を行う情報処理装置において、
近距離無線通信部を介して近距離無線通信装置から位置を特定するための位置情報および方位を特定するための第１方位情報を取得する取得部と、
磁気センサから方位を特定するための第２方位情報を取得する第２方位情報取得部と、
前記取得部により取得した前記第１方位情報および前記第２方位情報取得部により取得した前記第２方位情報に基づき方位情報を補正する補正部と、
予め記憶した姿勢を特定するための姿勢情報を記憶部から読み出す読み出し部と、
該読み出し部により読み出した姿勢情報を、補正後の方位情報に基づき補正する姿勢補正部と
を備える情報処理装置。
【請求項１０】
制御部を有する情報処理装置により情報処理を行う情報処理方法において、
近距離無線通信部を介して近距離無線通信装置から位置を特定するための位置情報を取得し、
前記近距離無線通信部により前記近距離無線通信装置を認識した時点から、所定時間内の加速度センサから出力される加速度を前記制御部により取得し、
取得した加速度に基づき、前記制御部により姿勢を特定するための姿勢情報を算出する
情報処理方法。
【請求項１１】
制御部を有する情報処理装置により情報処理を行う情報処理方法において、
近距離無線通信部を介して近距離無線通信装置から位置を特定するための位置情報および方位を特定するための第１方位情報を取得し、
磁気センサから方位を特定するための第２方位情報を取得し、
前記第１方位情報および前記第２方位情報に基づき方位情報を補正し、
予め記憶した姿勢を特定するための姿勢情報を記憶部から読み出し、
読み出した姿勢情報を、補正後の方位情報に基づき前記制御部により補正する
情報処理方法。
【請求項１２】
情報処理を行う情報処理装置および傾斜面または鉛直面に配置された近距離無線通信装置を用いた通信システムにおいて、
前記情報処理装置は、
近距離無線通信部を介して前記近距離無線通信装置から位置を特定するための位置情報を取得する取得部と、
前記近距離無線通信部により前記近距離無線通信装置を認識した時点から、所定時間内の加速度センサから出力される加速度を取得する加速度取得部と、
該加速度取得部により取得した加速度に基づき、姿勢を特定するための姿勢情報を算出する算出部と
を備える通信システム。
【請求項１３】
情報処理を行う情報処理装置および水平面に配置された近距離無線通信装置を用いた通信システムにおいて、
前記情報処理装置は、
近距離無線通信部を介して前記近距離無線通信装置から位置を特定するための位置情報および方位を特定するための第１方位情報を取得する取得部と、
磁気センサから方位を特定するための第２方位情報を取得する第２方位情報取得部と、
前記取得部により取得した前記第１方位情報および前記第２方位情報取得部により取得した前記第２方位情報に基づき方位情報を補正する補正部と、
予め記憶した姿勢を特定するための姿勢情報を記憶部から読み出す読み出し部と、
該読み出し部により読み出した姿勢情報を、補正後の方位情報に基づき補正する姿勢補正部と
を備える通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御部を有するコンピュータにより情報処理を行うプログラム、情報処理装置、情報処理方法、及び通信システムに関する。
【背景技術】
【０００２】
携帯端末機のカメラにより撮像した画像データを分析し、位置認識および方向認識を行うことで、様々なサービスを提供する試みがなされている（例えば、非特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１０−５２０６８８号公報
【特許文献２】特表２００９−５４３４９５号公報
【非特許文献】
【０００４】
【非特許文献１】“ＡＲ（拡張現実）技術で近未来をつくるエンジニアたち”、［online］、Tech総研、［2011年6月23日検索］、インターネット〈URL：http://rikunabi-next.yahoo.co.jp/tech/docs/ct_s03600.jsp?p=001574〉
【非特許文献２】“Vidgets: リッチなフィードバックを持つ仮想物理ウィジェット”［online］、［2011年6月23日検索］、インターネット〈URL：http://www.interaction-ipsj.org/archives/paper2005/pdf2005/interactive/B204.pdf〉
【非特許文献３】“加速度センサとRFID を用いたユビキタス環境での利用者コンテキスト推定手法”［online］、［2011年6月23日検索］、インターネット〈URL：http://www.dbsj.org/journal/vol6/no3/papers/saruta.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の技術では、画像処理に時間を要し、リアルタイムでのサービスの提供が困難であるという問題があった。また計算処理量が多く、電力消費が大きくなるという問題もあった。
【０００６】
本発明は斯かる事情に鑑みてなされたものである。その目的は、より精度良く装置の位置情報および姿勢情報等を得ることが可能なプログラム等を提供することにある。
【課題を解決するための手段】
【０００７】
本願に開示するプログラムは、制御部を有するコンピュータにより情報処理を行うプログラムにおいて、コンピュータに、近距離無線通信部を介して近距離無線通信装置から位置を特定するための位置情報を取得し、前記近距離無線通信部により前記近距離無線通信装置を認識した時点から、所定時間内の加速度センサから出力される加速度を前記制御部により取得し、取得した加速度に基づき、前記制御部により姿勢を特定するための姿勢情報を算出する処理を実行させる。
【発明の効果】
【０００８】
本願の一観点によれば、より精度良く装置の位置情報および姿勢等を得ることが可能となる。
【図面の簡単な説明】
【０００９】
【図１】通信システムの概要を示す説明図である。
【図２】無線タグのハードウェア群を示すブロック図である。
【図３】携帯電話機のハードウェア群を示すブロック図である。
【図４】加速度および認識信号の変化を示すグラフである。
【図５】加速度センサにおける座標系を示す説明図である。
【図６】姿勢算出処理の手順を示すフローチャートである。
【図７】姿勢算出処理の手順を示すフローチャートである。
【図８】実施の形態２に係る携帯電話機のハードウェア群を示す説明図である。
【図９】無線タグのＲＡＭに記憶されたタグ情報テーブルのレコードレイアウトを示す説明図である。
【図１０】傾斜部を示す説明図である。
【図１１】姿勢情報の補正処理手順を示すフローチャートである。
【図１２】サーバコンピュータのハードウェア群を示すブロック図である。
【図１３】タグ情報テーブルのレコードレイアウトを示す説明図である。
【図１４】位置情報及び方位情報の取得処理の手順を示すフローチャートである。
【図１５】実施の形態４に係る携帯電話機のハードウェア群を示すブロック図である。
【図１６】角速度の変化を示すグラフである。
【図１７】衝撃の検出手順を示すフローチャートである。
【図１８】接触時のイメージを示す説明図である。
【図１９】姿勢行列の更新及び補正処理の手順を示すフローチャートである。
【図２０】姿勢行列の更新及び補正処理の手順を示すフローチャートである。
【図２１】水平面への接触状態を示す説明図である。
【図２２】姿勢情報の補正手順を示すフローチャートである。
【図２３】姿勢情報の補正手順を示すフローチャートである。
【図２４】実施の形態６に係るタグ情報テーブルのレコードレイアウトを示す説明図である。
【図２５】座標値及び方位の誤差の取得処理の手順を示すフローチャートである。
【図２６】上述した形態の携帯電話機の動作を示す機能ブロック図である。
【図２７】実施の形態７に係る携帯電話機のハードウェア群を示すブロック図である。
【発明を実施するための形態】
【００１０】
実施の形態１
以下実施の形態を、図面を参照して説明する。図１は通信システムの概要を示す説明図である。通信システムは情報処理装置１、および、筐体３に配置された近距離無線通信装置２等を含む。情報処理装置１は例えば、携帯電話機、ノート型パーソナルコンピュータ、ＰＤＡ（Personal Digital Assistance）、音楽プレーヤ、映像プレーヤ、ゲーム機、ブックリーダまたは施設案内用の可搬型コンピュータ等である。以下では情報処理装置１の一例として、携帯電話機１を用いて説明する。
【００１１】
携帯電話機１は後述する近距離無線通信部と、筐体３に配置された近距離無線通信装置２との間で近距離無線通信を行う。距離は例えば数十ｃｍの範囲内で情報の送受信が行えるものであればよい。近距離無線通信方式は、例えばＮＦＣ(Near Field Communication)方式、赤外線通信方式等を用いる。本実施形態ではＮＦＣ方式を用いた例を挙げて説明する。携帯電話機１の近距離無線通信部はＲＦＩＤ(Radio Frequency Identification)タグリーダ（以下タグリーダ１９（図３参照）という）であるものとする。また近距離無線通信装置２はＲＦＩＤタグ（以下、無線タグ２という）であるものとして説明する。
【００１２】
無線タグ２は例えばショッピングモール、映画館、百貨店、球技場、工場、スーパーマーケット、オフィス、学校、病院、駅、空港、公園等の各施設に分散配置されている。無線タグ２は施設内の筐体３、柱、壁、掲示板等に配置されている。本実施形態では一例として、筐体３の傾斜面３２内に無線タグ２が配置されている例を挙げて説明する。樹脂または木材を利用した筐体３は例えば直方体部３１と、直方体部３１上の傾斜部３３とを含む。傾斜部３３は直方体部３１上に設けられる。傾斜部３３は三角柱の形状をなし、正面に向けて傾斜角約４５度の傾斜面３２が設けられている。なお、傾斜面３２は水平以外の角度であればこれに限るものではない。また鉛直（地面に対して垂直）であっても良い。また無線タグ２は傾斜面３２の表面上に設けても良い。
【００１３】
図１Ａに示すように、ユーザは携帯電話機１を傾斜面３２に近づける。携帯電話機１は無線タグ２を認識した時点から所定時間内における加速度に基づき、姿勢情報を算出する。続いて図１Ｂに示すようにユーザは傾斜面３２に携帯電話機１を接触させる。携帯電話機１は無線タグ２から筐体３の位置を特定するための位置情報を取得する。その後、図１Ｃに示すように、ユーザは、算出した姿勢情報および取得した位置に応じた情報を携帯電話機１の表示部から得ることができる。以下詳細を説明する。
【００１４】
図２は無線タグ２のハードウェア群を示すブロック図である。無線タグ２は制御部としてのＣＰＵ(Central Processing Unit)２１、ＲＡＭ（Random Access Memory）２２、電源部２４、近距離無線通信部としての近距離通信部２３、及び通信部２６等を含む。ＣＰＵ２１は、バス２７を介してハードウェア各部と接続され、これらを制御する。ＣＰＵ２１は、ＲＡＭ２２に記憶された制御プログラムに従って、ソフトウェア処理を実行する。電源部２４はボタン電池等を内蔵し各ハードウェアへ電力を供給する。なお、図示しない商用交流電源から電力を供給しても良い。
【００１５】
近距離通信部２３は受信アンテナ（図示せず）および送信アンテナ（図示せず）を備える。近距離通信部２３は受信アンテナを介して携帯電話機１のタグリーダ１９から送信される制御信号の検出（キャリアセンス）を行う。近距離通信部２３は検出した制御信号を復調し、復調後の制御情報をＣＰＵ２１へ出力する。ＣＰＵ２１はＲＡＭ２２に記憶した無線タグ２の位置を特定するための位置情報を読み出す。この位置情報は緯度および経度の情報である。なお、位置情報に高度を含めても良い。その他、施設の固有座標系における座標値であっても良い。その他、位置情報は無線タグ２の位置を特定するための情報であればよく、無線タグ２に付与された識別情報（ＩＤ）であっても良い。携帯電話機１は識別情報に対応づけて記憶された緯度および経度、または、施設の固有座標系における座標値を、図示しない他のサーバコンピュータまたは記憶部から取得するようにしても良い。本実施形態では一例として施設の固有座標系における無線タグ２の設置箇所を示す座標値を、位置情報であるものとして説明する。
【００１６】
ＣＰＵ２１は、読み出した位置情報を近距離通信部２３へ出力する。近距離通信部２３は位置情報を変調し、変調後の位置情報、及び、リーダライタを認識したことを示す認識信号を、送信アンテナを介してタグリーダ１９へ送信する。通信部２６は例えば、無線または有線のＬＡＮ（Local Area Network）カードであり、インターネット等の通信網を介して、ＨＴＴＰ（HyperText Transfer Protocol）等により他のサーバコンピュータ（図示せず）との間で情報の送受信を行う。
【００１７】
図３は携帯電話機１のハードウェア群を示すブロック図である。携帯電話機１は制御部としてのＣＰＵ１１、ＲＡＭ１２、入力部１３、表示部１４、記憶部１５、マイク１１０、スピーカ１１１、時計部１８、タグリーダ１９、加速度センサ１０１及び通信部１６等を含む。ＣＰＵ１１は、バス１７を介してハードウェア各部と接続されている。ＣＰＵ１１は記憶部１５に記憶された制御プログラム１５Ｐに従いハードウェア各部を制御する。ＲＡＭ１２は例えばＳＲＡＭ、ＤＲＡＭ、フラッシュメモリ等である。ＲＡＭ１２は、記憶部としても機能し、ＣＰＵ１１による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。
【００１８】
入力部１３はボタンまたはタッチパネル等の入力デバイスであり、受け付けた操作情報をＣＰＵ１１へ出力する。表示部１４は液晶ディスプレイまたは有機ＥＬ（electroluminescence）ディスプレイ等であり、ＣＰＵ１１の指示に従い各種情報を表示する。通信部１６は無線ＬＡＮカードまたは通信アンテナ等であり、電話通信網およびインターネット等の通信網を介してサーバコンピュータ（図示せず）等との間で情報の送受信を行う。記憶部１５は例えば、大容量フラッシュメモリまたはハードディスク等であり、制御プログラム１５Ｐ等を格納する。
【００１９】
マイク１１０は集音した音声信号をＡＤ変換し、変換後の音声情報をＣＰＵ１１へ出力する。スピーカ１１１はＣＰＵ１１の指示に従いＤＡ変換された音声信号を出力する。時計部１８は日時情報をＣＰＵ１１へ出力する。近距離無線通信部としてのタグリーダ１９は、無線タグ２との間で例えば１３．５６ＭＨｚの電波で通信し、１０ｃｍ程度の近距離で１００〜４００ｋｂｐｓの双方向通信を行う。なお距離は１０ｃｍに限るものではなく、例えば０ｃｍ〜５０ｃｍ以内の距離にて無線通信を行うことができるものであればよい。タグリーダ１９は無線タグ２から出力された位置情報および認識信号を読み取る。タグリーダ１９は読み取った位置情報をＣＰＵ１１へ出力する。加速度センサ１０１は例えば３軸加速度センサであり、検出した３軸方向の加速度をそれぞれＣＰＵ１１へ出力する。なお、３軸加速度センサに代えて１軸または２軸の加速度センサを複数組み合わせて用いても良い。
【００２０】
図４は加速度および認識信号の変化を示すグラフである。横軸は加速度センサ１０１のサンプリング数を示す。右側の縦軸はタグリーダ１９の認識信号の有無を示す。左側の縦軸は加速度を示し、単位はｍ／ｓ2 である。最太実線で示す系列はタグリーダ１９から出力される認識信号の時間的変化を示す。ＣＰＵ１１はタグリーダ１９から認識信号が出力された場合に、無線タグ２を認識したと判断する。
【００２１】
細実線で示す系列は加速度センサ１０１から出力されるｘ軸方向の加速度ａｘの時間的変化を示している。図５は加速度センサ１０１における座標系を示す説明図である。白色矢印で示すiはｘ軸方向の単位ベクトル、白色矢印で示すｊはｙ軸方向の単位ベクトル、白色矢印で示すｋはｚ軸方向の単位ベクトルである。加速度センサ１０１の座標系における単位ベクトルｉとｘｙ平面とのなす角度をθｘとする。加速度センサ１０１の座標系における単位ベクトルｊとｘｙ平面とのなす角度をθｙとする。加速度センサ１０１の座標系における単位ベクトルｋとｘｙ平面とのなす角度をθｚとする。白抜き矢印で示すｇは重力の方向を示す。
【００２２】
図４における長点線で示す系列は加速度センサ１０１から出力されるｙ軸方向の加速度ａｙの時間的変化を示している。短点線で示す系列は加速度センサ１０１から出力されるｚ軸方向の加速度ａｚの時間的変化を示している。太実線で示す系列は加速度センサ１０１から出力される加速度ａｘ、加速度ａｙおよび加速度ａｚの加速度ノルムの時間的変化を示している。加速度ノルムは加速度ベクトルの大きさであり、加速度ａｘの２乗、加速度ａｙの２乗および加速度ａｚの２乗を加算した値の平方根である。
【００２３】
ＣＰＵ１１は記憶部１５から所定時間(図４のＴで示す)を読み出す。なお所定時間Ｔは入力部１３から適宜の値を設定することが可能である。例えば０．１秒とすればよい。ＣＰＵ１１は加速度センサ１０１から取得した加速度をＲＡＭ１２に記憶する。ＣＰＵ１１は無線タグ２を認識してから所定時間を経過した時点の加速度ａｘ、加速度ａｙおよび加速度ａｚをＲＡＭ１２から読み出す（取得する）。ＣＰＵ１１は取得した加速度ａｘ、加速度ａｙおよび加速度ａｚと、重力加速度ｇに基づき加速度センサ１０１の座標系における姿勢情報を算出する。
【００２４】
ＣＰＵ１１は記憶部１５に記憶した式（１）を読み出す。
【００２５】
【数１】
0005729199.tif 000002
【００２６】
ＣＰＵ１１は式（１）に重力加速度、加速度ａｘ、加速度ａｙおよび加速度ａｚを代入し、単位ベクトルｉとｘｙ平面とのなす角度θｘ、単位ベクトルｊとｘｙ平面とのなす角度θｙ、および、単位ベクトルｋとｘｙ平面とのなす角度θｚを算出する。ＣＰＵ１１は算出した姿勢を特定するための姿勢情報として角度θｘ、角度θｙ、および、角度θｚをＲＡＭ１２に記憶する。なお、本実施形態では角度θｘ、角度θｙ、および、角度θｚを、姿勢を特定するための姿勢情報としたが、これに限るものではない。後述するように数式に算出済みのθｘ、θｙ、θｚを代入して算出される姿勢行列Ｅｎを携帯電話機１の姿勢情報としても良い。また、本実施形態においては無線タグ２の認識後、所定時間経過後の加速度を利用したがこれに限るものではない。例えば、ＣＰＵ１１は無線タグ２の認識後、所定時間経過前の加速度を利用しても良い。
【００２７】
ＣＰＵ１１は無線タグ２を認識した場合、ＲＡＭ１２から所定時間さかのぼった時点の加速度を読み出す。ＣＰＵ１１は読み出した加速度および重力加速度に基づき姿勢情報を算出する。その他、ＣＰＵ１１は衝撃を検出する前の加速度を用いても良い。ＣＰＵ１１は加速度の時間的変化が記憶部１５に記憶した閾値より大きい時点を衝撃検出時とする。なお、加速度のノルム、平均値、または分散が記憶部１５に記憶した閾値より大きい時点を衝撃検出時としても良い。ＣＰＵ１１は記憶部１５から予め記憶した所定時間（例えば０．２秒）を読み出す。
【００２８】
ＣＰＵ１１は衝撃検出時から所定時間さかのぼった時点の加速度をＲＡＭ１２から読み出す。ＣＰＵ１１は読み出した加速度および重力加速度に基づき姿勢情報を算出する。その他、本実施形態では姿勢情報の算出にあたり、重力加速度を用いる例を挙げて説明したが、これに限るものではない。重力加速度に代えて、加速度ノルムを用いても良い。
【００２９】
図６及び図７は姿勢算出処理の手順を示すフローチャートである。携帯電話機１のＣＰＵ１１は加速度センサ１０１から３軸の加速度を取得する（ステップＳ６１）。タグリーダ１９が無線タグ２を認識した場合、タグリーダ１９は認識信号及び無線タグ２の位置情報をＣＰＵ１１へ出力する。ＣＰＵ１１はＲＡＭ１２に取得した３軸の加速度を、時系列で記憶する（ステップＳ６３）。ＣＰＵ１１はタグリーダ１９から無線タグ２を認識したことを示す認識信号が出力されたか否かを判断する（ステップＳ６４）。ＣＰＵ１１は認識信号が出力されていないと判断した場合（ステップＳ６４でＮＯ）、処理をステップＳ６１へ戻す。以上の処理を繰り返すことにより、３軸の加速度の時間的変化が蓄積されることになる。
【００３０】
ＣＰＵ１１は認識信号が出力されたと判断した場合（ステップＳ６４でＹＥＳ）、処理をステップＳ６５へ移行させる。ＣＰＵ１１は認識フラグをＲＡＭ１２に設定する（ステップＳ６５）。ＣＰＵ１１はタグリーダ１９を介して、無線タグ２から位置情報を取得する（ステップＳ６６）。ＣＰＵ１１は記憶部１５から予め記憶部１５に記憶された所定時間を読み出す（ステップＳ６７）。ＣＰＵ１１は加速度センサ１０１から３軸の加速度を引き続き取得する（ステップＳ６８）。
【００３１】
ＣＰＵ１１はＲＡＭ１２に加速度を時系列で記憶する（ステップＳ７１）。ＣＰＵ１１はステップＳ６５における認識フラグを設定した時点から、記憶部１５に記憶した所定時間を経過したか否かを判断する（ステップＳ７２）。具体的には、ＣＰＵ１１はステップＳ６５を起点として、時計部１８から出力される経過時間が所定時間を越えたか否かにより判断する。ＣＰＵ１１は所定時間を経過していないと判断した場合（ステップＳ７２でＮＯ）、処理をステップＳ６８に戻す。
【００３２】
ＣＰＵ１１は所定時間を経過したと判断した場合（ステップＳ７２でＹＥＳ）、処理をステップＳ７３へ移行させる。ＣＰＵ１１はＲＡＭ１２から、認識フラグ設定時から所定時間経過時の３軸の加速度を読み出す（ステップＳ７３）。ＣＰＵ１１は記憶部１５から式（１）で示した算出式を読み出す（ステップＳ７４）。ＣＰＵ１１は読み出した算出式に重力加速度及び３軸の加速度をそれぞれ入力することにより、姿勢情報を算出する（ステップＳ７５）。
【００３３】
ＣＰＵ１１は算出した姿勢情報及びステップＳ６６で取得した位置情報を記憶部１５に記憶する（ステップＳ７６）。ＣＰＵ１１は新に記憶した位置情報及び姿勢情報に基づき各種処理を実行する。具体的には、ＣＰＵ１１は姿勢情報に対応してアプリケーションが記憶された記憶部１５を参照し、姿勢情報に対応するアプリケーションを実行する（ステップＳ７７）。これにより、姿勢情報に基づき、携帯電話機１の傾きを把握でき、傾きに応じた各種サービスを提供することが可能となる。例えばＣＰＵ１１は横向きと判断した場合、アプリケーションに従い、施設の情報を表示することができる。また例えば、ＣＰＵ１１が下向きと判断した場合に、地図を表示することが可能なアプリケーションを実行する。その他、精度の高い位置情報を新に取得できるので、取得した位置情報を以降利用することで、より精度の高い情報を提供することが可能となる。
【００３４】
実施の形態２
実施の形態２は方位情報に基づき姿勢情報を補正する形態に関する。図８は実施の形態２に係る携帯電話機１のハードウェア群を示す説明図である。磁気センサ１０２が新たに設けられている。磁気センサ１０２は検出した方位をＣＰＵ１１へ出力する。図９は無線タグ２のＲＡＭ２２に記憶されたタグ情報テーブルのレコードレイアウトを示す説明図である。タグ情報テーブルはタグＩＤフィールド、座標値フィールド及び方位フィールド等を含む。タグＩＤフィールドには無線タグ２に付与される固有の識別情報（以下タグＩＤという）が記憶されている。
【００３５】
座標値フィールドには、位置を特定するための位置情報が記憶されている。本実施形態では一例として筐体３が設置される施設の座標系(以下、固有座標系という)におけるｘｙ座標値が記憶されている。方位フィールドには、傾斜面３２が向かう方位と北方位との間のなす角度が記憶されている。本実施形態では北向きに対して時計回りに２０度と記憶されている。以下方位について説明する。
【００３６】
図１０は傾斜部３３を示す説明図である。図１０においては説明を容易にするために筐体３の直方体部３１を除いた傾斜部３３のみをｘｙ平面上に示している。無線タグ２が設置された傾斜部３３の傾斜面３２に対する垂直線をＬ１とする。垂直線Ｌ１をｘｙ平面に投影した際に形成される線を方位線Ｌ２という。点線で示す北方位と、一点鎖線で示す方位線Ｌ２とのなす角を方位αとする。
【００３７】
ＣＰＵ１１は取得した方位情報に基づき算出した姿勢情報を補正する。具体的にはＣＰＵ１１は記憶部１５に記憶した式（２）を読み出す。
【００３８】
【数２】
0005729199.tif 000003
【００３９】
Ｅｎは加速度センサ１０１の座標系における基準単位ベクトルｉ，ｊ，ｋを成分とする姿勢行列である。ＣＰＵ１１は式（２）に算出済みのθｘ、θｙ、θｚを代入する。これにより加速度センサ１０１の座標系における姿勢行列が算出される。なお、実施の形態１においては、角度θｘ、角度θｙ、および、角度θｚを、姿勢を特定するための姿勢情報とする例を挙げたがこれに限るものではない。式（２）に算出済みのθｘ、θｙ、θｚを代入した姿勢行列Ｅｎを携帯電話機１の姿勢を特定するための姿勢情報としても良い。現段階では方位が特定されていないため、取得した方位情報に基づき、施設の固有座標系における姿勢行列に補正する。ＣＰＵ１１はｚ軸周りに方位α分、姿勢行列を回転させる処理を行う。具体的にはＣＰＵ１１は式（３）で示す回転行列Ｒαを読み出す。
【００４０】
【数３】
0005729199.tif 000004
【００４１】
ＣＰＵ１１は読み出した回転行列Ｒαに方位αを代入する。ＣＰＵ１１は式（４）に示すように、回転行列Ｒαの逆行列を姿勢行列Ｅｎに左から乗ずることで、固有座標系における姿勢行列Ｅｎ’を算出する。
【００４２】
【数４】
0005729199.tif 000005
【００４３】
なお、本実施形態では逆行列を乗ずる例を挙げたが、これに限るものではない。方位を−αとし、回転行列Ｒ（−α）を求め、回転行列Ｒ（−α）を姿勢行列に左から乗じても良い。ＣＰＵ１１は取得した位置情報、方位及び補正後の姿勢情報である固有座標系における姿勢行列Ｅｎ’を記憶部１５に記憶する。ＣＰＵ１１は新たに記憶された位置情報、方位及び固有座標系における姿勢行列に基づき、処理を実行する。例えばＣＰＵ１１はカメラ（図示せず）から取り込んだ画像を表示部１４に表示する際に方位に対応するアイコンを記憶部１５から読み出して表示しても良い。その他、施設の位置情報に対応付けて店舗の情報を記憶しておき、ＣＰＵ１１は姿勢情報が一定の条件を満たす場合に、位置情報及び方位に基づいて表示部１４に施設の情報を表示しても良い。
【００４４】
図１１は姿勢情報の補正処理手順を示すフローチャートである。携帯電話機１のタグリーダ１９は無線タグ２から方位情報を取得する（ステップＳ１１１）。具体的には、無線タグ２のＣＰＵ２１はＲＡＭ２２のタグ情報テーブルから方位情報を読み出し、近距離無線通信部２３を介して、携帯電話機１へ出力する。ＣＰＵ１１はタグリーダ１９を介して方位情報を取得する。ＣＰＵ１１はステップＳ７６で記憶した姿勢情報を記憶部１５から読み出す（ステップＳ１１２）。ＣＰＵ１１は記憶部１５から回転行列を読み出す（ステップＳ１１３）。ＣＰＵ１１は回転行列に方位情報を代入する。ＣＰＵ１１は回転行列の逆行列を算出する（ステップＳ１１４）。ＣＰＵ１１は回転行列の逆行列を左から姿勢行列に乗ずる（ステップＳ１１５）。
【００４５】
ＣＰＵ１１はステップＳ１１５で求めた補正後の姿勢行列を姿勢情報として記憶部１５に記憶する（ステップＳ１１６）。ＣＰＵ１１は取得した方位情報及び位置情報を記憶部１５に記憶する（ステップＳ１１７）。ＣＰＵ１１は、新たに記憶した位置情報、姿勢情報及び方位情報に基づいて、位置情報、姿勢情報または方位情報に対応するアプリケーションを実行する（ステップＳ１１８）。これにより、施設内などＧＰＳデータまたは磁気センサ１０２から適切なデータが取得できない場合でも、斜面に設置した無線タグ２を通じて位置情報及び方位情報を取得することができる。また方位情報に基づいて固有座標系における姿勢行列を適切に補正することが可能となる。
【００４６】
本実施の形態２は以上の如きであり、その他は実施の形態１と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【００４７】
実施の形態３
実施の形態３は異なる経路から位置情報及び方位情報を取得する形態に関する。位置情報及び方位情報は通信部１６を介して接続されるサーバコンピュータから取得しても良い。図１２はサーバコンピュータ４のハードウェア群を示すブロック図である。サーバコンピュータ４は制御部としてのＣＰＵ４１、ＲＡＭ４２、記憶部４５、及び通信部４６等を含む。ＣＰＵ４１は、バス４７を介してハードウェア各部と接続されている。ＣＰＵ４１は記憶部４５に記憶された制御プログラムに従いハードウェア各部を制御する。ＲＡＭ４２は例えばＳＲＡＭ、ＤＲＡＭ、フラッシュメモリ等である。ＲＡＭ４２は、記憶部としても機能し、ＣＰＵ４１による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。
【００４８】
通信部４６は有線または無線ＬＡＮカード等であり、インターネットまたは携帯電話網等の通信網を介して携帯電話機１等との間で情報の送受信を行う。記憶部４５は例えば、ハードディスクまたは大容量フラッシュメモリ等である。記憶部４５は、タグ情報テーブル４５１を記憶している。図１３はタグ情報テーブル４５１のレコードレイアウトを示す説明図である。タグ情報テーブル４５１はタグＩＤフィールド、座標値フィールド及び方位フィールド等を含む。座標値フィールドには位置情報である固有座標系におけるｘｙ座標値が、タグＩＤに対応付けて記憶されている。
【００４９】
方位フィールドには、タグＩＤに対応付けて、無線タグ２が設置される傾斜部３３の傾斜面３２が臨む方位を記憶している。例えばタグＩＤ「００２」とする無線タグ２は座標値「２３、１３０」で特定される位置に設置されている。また無線タグ２が設定された傾斜部３３の傾斜面３２は北向きを基準として時計方向に１９０度回転した方向を臨んで設置されている。
【００５０】
無線タグ２のＲＡＭ２２にはタグＩＤが記憶されている。携帯電話機１のタグリーダ１９はタグＩＤを取得する。ＣＰＵ１１は取得したタグＩＤを、通信部１６を介してサーバコンピュータ４へ出力する。サーバコンピュータ４のＣＰＵ４１は通信部４６を介してタグＩＤを受信する。ＣＰＵ４１はタグ情報テーブル４５１からタグＩＤに対応する位置情報及び方位情報を読み出す。ＣＰＵ４１は通信部４６を介して、位置情報及び方位情報を携帯電話機１へ送信する。携帯電話機１のＣＰＵ１１は通信部１６を介して、位置情報及び方位情報を取得する。
【００５１】
なお、本実施形態では、無線タグ２のＲＡＭ２２にタグＩＤを記憶しておき、サーバコンピュータ４のタグ情報テーブル４５１に位置情報及び方位情報を記憶する例を挙げたがこれに限るものではない。無線タグ２のＲＡＭ２２にタグＩＤと位置情報または方位情報のいずれかを記憶しておき、サーバコンピュータ４のタグ情報テーブル４５１に方位情報または位置情報のいずれかを記憶しても良い。また、本実施形態ではサーバコンピュータ４のタグ情報テーブル４５１に位置情報及び方位情報を記憶する例を挙げたが、携帯電話機１の記憶部１５に記憶しておいても良い。この場合、ＣＰＵ１１がタグＩＤに対応する位置情報及び方位情報を記憶部１５から読み出す。
【００５２】
図１４は位置情報及び方位情報の取得処理の手順を示すフローチャートである。実施の形態１及び２で述べた取得処理に変えて以下の取得処理を実行する。携帯電話機１のタグリーダ１９は無線タグ２を認識した場合、無線タグ２から出力されるタグＩＤを取得する（ステップＳ１４１）。タグリーダ１９は取得したタグＩＤをＣＰＵ１１へ出力する。ＣＰＵ１１は取得したタグＩＤを、通信部１６を介してサーバコンピュータ４へ送信する（ステップＳ１４２）。サーバコンピュータ４のＣＰＵ４１は通信部４６を介してタグＩＤを受信する（ステップＳ１４３）。
【００５３】
ＣＰＵ４１はタグ情報テーブル４５１からタグＩＤに対応する位置情報及び方位情報を読み出す（ステップＳ１４４）。ＣＰＵ４１は通信部４６を介して、位置情報及び方位情報を携帯電話機１へ送信する（ステップＳ１４５）。携帯電話機１のＣＰＵ１１は通信部１６を介して、位置情報及び方位情報を取得する（ステップＳ１４６）。これにより、無線タグ２自身に位置情報及び方位情報が記憶されていなくても、これらの情報を取得することが可能となる。
【００５４】
本実施の形態３は以上の如きであり、その他は実施の形態１及び２と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【００５５】
実施の形態４
実施の形態４はジャイロセンサを用いて補正する形態に関する。図１５は実施の形態４に係る携帯電話機１のハードウェア群を示すブロック図である。携帯電話機１にはさらにジャイロセンサ１０３が設けられている。ジャイロセンサ１０３は例えば２軸または３軸のジャイロセンサが用いられる。本実施形態では３軸ジャイロセンサを用いる例を挙げて説明する。ジャイロセンサ１０３はｘ軸方向の角速度ωｘ、ｙ軸方向の角速度ωｙ及びｚ軸方向の角速度ωｚをＣＰＵ１１へ出力する。ＣＰＵ１１はジャイロセンサ１０３から出力された各軸の角速度をＲＡＭ１２に記憶する。
【００５６】
図１６は角速度の変化を示すグラフである。横軸はサンプリング数を示す。左側の縦軸は角速度であり、単位はｒａｄ／ｓである。右側の縦軸はタグリーダ１９から出力される無線タグ２の認識信号の有無である。太実線の系列はタグリーダ１９から出力される無線タグ２の認識信号の時間的変化を示す。実線の系列はジャイロセンサ１０３から出力されるｘ軸方向の角速度ωｘの時間的変化を示す。点線の系列はジャイロセンサ１０３から出力されるｙ軸方向の角速度ωｙの時間的変化を示す。一点鎖線の系列はジャイロセンサ１０３から出力されるｚ軸方向の角速度ωｚの時間的変化を示す。ＣＰＵ１１は認識信号に基づき、無線タグ２を認識した時点を起点として所定時間Ｔを経過した後から、ジャイロセンサ１０３から出力される角速度に基づきジャイロセンサ１０３または加速度センサ１０１における座標系の姿勢行列Ｅｎを更新する。所定時間Ｔは記憶部１５に予め記憶されている。また無線タグ２の認識処理は実施の形態１で述べたとおりである。
【００５７】
ＣＰＵ１１は姿勢行列Ｅｎの更新を、角速度の変化が減少する時点まで行う。具体的にはＣＰＵ１１は、無線タグ２を認識した後に、ジャイロセンサ１０３から出力される角速度の時間的変化が、記憶部１５に記憶した閾値を最初に越えた場合に、衝撃を検出したと判断する。なお、この時間的変化はジャイロセンサ１０３の３軸のジャイロセンサ全てを用いても良いし、１つまたは２つだけを用いても良い。本実施形態では３軸のジャイロセンサの全てを用い、３軸の時間的変化量の絶対値の合計値を用いるものとする。その後、ＣＰＵ１１は時間的変化が所定置まで減少した時点を検出する。具体的には、ＣＰＵ１１は３軸の時間的変化量の絶対値が、記憶部１５に記憶した閾値以下となったか否かを判断する。ＣＰＵ１１は閾値以下となった場合、衝撃による加速度の変化が減少したと判断する。以下では、角速度の変化が閾値以下まで減少した時点を減少時という。
【００５８】
ＣＰＵ１１は無線タグ２を認識してから所定時間経過した時点における各軸の角速度ωｘ、ωｙ、ωｚをＲＡＭ１２から読み出す。λ、μ、νで表される転置行列は、角速度ωｘ、ωｙ、ωｚを用いて式（５）のように表すことができる。
【００５９】
【数５】
0005729199.tif 000006
【００６０】
また姿勢行列Ｅｎと角速度ωｘ、ωｙ、ωｚとを用いて角速度ωは式（６）のように表すことができる。なお角速度ωｘ、ωｙ、ωｚは３軸のジャイロセンサ１０３で検出される角速度のベクトルである。
【００６１】
【数６】
0005729199.tif 000007
【００６２】
これにより回転する角度θは、ωのノルム（角速度ωｘの２乗とωｙの２乗とωｚの２乗とを加算した値の平方根）と、ジャイロセンサ１０３のサンプリング間隔であるΔｔとを用いて、式（７）のように表すことができる。
【００６３】
【数７】
0005729199.tif 000008
【００６４】
式（７）の角度θと、式（５）のλ、μ、νを用いて、回転行列は式（８）で求めることができる。
【００６５】
【数８】
0005729199.tif 000009
【００６６】
求めた回転行列を左から姿勢行列Ｅｎに式（９）のように乗ずることで、更新後の姿勢行列Ｅｎ＋１を算出することができる。
【００６７】
【数９】
0005729199.tif 000010
【００６８】
上述した処理を減少時までサンプリング毎に、すなわち、角速度ωｘ、ωｙ、ωｚを得る度に実行する。その後、式（１０）のように、実施の形態２で述べた回転行列Ｒαを左から更新後の姿勢行列Ｅｎ＋１に乗ずることで補正を行い、補正後の姿勢行列Ｅｎ＋１’を算出する。この補正後の姿勢行列Ｅｎ＋１’が方位について補正された施設の固有座標系の姿勢行列となる。
【００６９】
【数１０】
0005729199.tif 000011
【００７０】
図１７は衝撃の検出手順を示すフローチャートである。以下では、衝撃開始時の検出及び衝撃による変化の減少を検出する際に、３軸の角速度の分散を用いる例を挙げて説明する。ＣＰＵ１１はステップＳ７２において無線タグ２に対する認識フラグを設定した後の所定時間経過後に以下の処理を行う。ＣＰＵ１１は記憶部１５から衝撃の開始時点を検出するための第１閾値を読み出す（ステップＳ１７１）。ＣＰＵ１１はジャイロセンサ１０３から出力される３軸の角速度の分散を算出する（ステップＳ１７２）。ＣＰＵ１１は算出した分散が、第１閾値以上であるか否かを判断する（ステップＳ１７３）。なお、分散ではなく角速度が閾値以上であるか否かを判断してもよい。ＣＰＵ１１は、分散が第１閾値以上でないと判断した場合（ステップＳ１７３でＮＯ）、処理をステップＳ１７２に戻す。ＣＰＵ１１は分散が第１閾値以上であると判断した場合（ステップＳ１７３でＹＥＳ）、処理をステップＳ１７４へ移行させる。ＣＰＵ１１はＲＡＭ１２に衝撃フラグを設定する（ステップＳ１７４）。
【００７１】
図１８は接触時のイメージを示す説明図である。携帯電話機１のタグリーダ１９が無線タグ２を認識した後、点線で示す携帯電話機１の一部が傾斜面３２に接触し、最初の衝撃を検出する。続いて黒色矢印で示すように携帯電話機１は、接触箇所を起点として携帯電話機１の裏面（表面または側面）が傾斜面３２に接触するまで回転運動を行う。携帯電話機１の裏面が傾斜面３２に接触する際にも衝撃が加わる。その後、携帯電話機１は持ち上げられ、傾斜面３２から離れることとなる。回転運動終了後に携帯電話機１が持ち上げられる際には、上述した２度の衝撃時に比して角速度の変化は比較的少ない。ＣＰＵ１１は以下の処理により、角速度の変化が所定値まで減少したことを判断する。
【００７２】
ＣＰＵ１１は記憶部１５から第２閾値を読み出す（ステップＳ１７５）。なお第２閾値は第１閾値よりも小さい値とすればよい。ＣＰＵ１１はジャイロセンサ１０３から出力される３軸の角速度の分散を算出する（ステップＳ１７６）。ＣＰＵ１１は分散が第２閾値以上であるか否かを判断する（ステップＳ１７７）。ＣＰＵ１１は第２閾値以上であると判断した場合（ステップＳ１７７でＹＥＳ）、処理をステップＳ１７６へ戻す。ＣＰＵ１１は、分散が第２閾値以上でないと判断した場合（ステップＳ１７７でＮＯ）、処理をステップＳ１７８へ移行させる。
【００７３】
ＣＰＵ１１は携帯電話機１の傾斜面３２への接触に伴う衝撃後に、角速度の変化が所定値まで減少したことを示す減少時フラグをＲＡＭ１２に設定する（ステップＳ１７８）。なお、本実施形態では分散を用いる形態を挙げて説明したがこれに限るものではない。例えば、分散に変えて、３軸の加速度のノルム、角速度の平均値の絶対値、合計値の絶対値、または時間的変化量の絶対値等を用いて角速度の変化が所定値まで減少する時点を算出しても良い。
【００７４】
図１９及び図２０は姿勢行列の更新及び補正処理の手順を示すフローチャートである。ＣＰＵ１１はステップＳ７２において認識フラグを設定した後の所定時間経過後から、ステップＳ１７８において減少時フラグを設定するまでの間以下の処理を行う。ＣＰＵ１１はステップＳ７６の処理により、認識フラグ設定時から所定時間を経過した後の姿勢情報を読み出す（ステップＳ１９１）。ＣＰＵ１１は式（２）を記憶部１５から読み出す。ＣＰＵ１１は姿勢情報を式（２）に代入することで姿勢行列Ｅｎを算出する（ステップＳ１９２）。ＣＰＵ１１はジャイロセンサ１０３から出力される３軸の角速度を取得する（ステップＳ１９３）。
【００７５】
ＣＰＵ１１は取得した３軸の角速度をＲＡＭ１２に記憶する（ステップＳ１９４）。ＣＰＵ１１は記憶部１５から式（５）で示す転置行列式を読み出す（ステップＳ１９５）。ＣＰＵ１１は転置行列式に３軸の角速度ωｘ、ωｙ及びωｚを代入することで、λ、μ及びνの転置行列を算出する（ステップＳ１９６）。ＣＰＵ１１はジャイロセンサ１０３から出力される３軸の角速度のベクトルωを算出するための算出式を記憶部１５から読み出す（ステップＳ１９７）。ＣＰＵ１１は式（６）で示される算出式に姿勢行列Ｅｎと、角速度ωｘ、ωｙ及びωｚとを代入することで、ベクトルωを算出する（ステップＳ１９８）。
【００７６】
ＣＰＵ１１は算出したベクトルωのノルムを算出する（ステップＳ１９９）。具体的には、ＣＰＵ１１は角速度ωｘの２乗、ωｙの２乗及びωｚの２乗を、加算した値の平方根をとることで、ノルムを算出する。ＣＰＵ１１は回転角θの算出式を記憶部１５から読み出す（ステップＳ２０１）。ＣＰＵ１１は記憶部１５から予め設定されたジャイロセンサ１０３のサンプリング周期を読み出す（ステップＳ２０２）。ＣＰＵ１１は式（７）で示される回転角θの算出式にサンプリング周期及びノルムを代入することで回転角θを算出する（ステップＳ２０３）。
【００７７】
ＣＰＵ１１は記憶部１５から回転行列の算出式を読み出す（ステップＳ２０４）。ＣＰＵ１１は式（８）で示される回転角θの算出式に、算出したθ、λ、μ及びνを代入することで、回転行列を算出する（ステップＳ２０５）。ＣＰＵ１１は記憶部１５から式（９）を読み出す。ＣＰＵ１１は回転行列を左から姿勢行列Ｅｎに乗算し、姿勢行列Ｅｎを更新する（ステップＳ２０６）。
【００７８】
ＣＰＵ１１は更新後の姿勢行列Ｅｎ＋１をＲＡＭ１２に記憶する（ステップＳ２０７）。ＣＰＵ１１はステップＳ１７８における減少時フラグが設定されているか否かを判断する（ステップＳ２０８）。ＣＰＵ１１は減少時フラグが設定されていないと判断した場合（ステップＳ２０８でＮＯ）、処理をステップＳ１９３へ処理を戻す。以上の処理を繰り返すことにより、姿勢行列Ｅｎ＋１が逐次更新されることになる。ＣＰＵ１１は減少時フラグが設定されていると判断した場合（ステップＳ２０８でＹＥＳ）、衝撃がなくなった、すなわち、接触に伴う回転運動が終了したと判断し、処理をステップＳ２０９へ移行させる。
【００７９】
携帯電話機１のタグリーダ１９は無線タグ２から方位情報及び位置情報を取得する（ステップＳ２０９）。ＣＰＵ１１は記憶部１５から更新後の姿勢行列Ｅｎ＋１を読み出す（ステップＳ２０１０）。ＣＰＵ１１は記憶部１５から式（３）で示す回転行列を読み出す（ステップＳ２０１１）。ＣＰＵ１１は回転行列に方位情報を代入する。ＣＰＵ１１は回転行列の逆行列を算出する（ステップＳ２０１２）。ＣＰＵ１１は回転行列の逆行列を左から更新後の姿勢行列Ｅｎ＋１に乗ずる（ステップＳ２０１３）。
【００８０】
ＣＰＵ１１はステップＳ２０１３で求めた補正後の姿勢行列Ｅｎ＋１’を姿勢情報として記憶部１５に記憶する（ステップＳ２０１４）。ＣＰＵ１１は取得した方位情報及び位置情報を記憶部１５に記憶する（ステップＳ２０１５）。ＣＰＵ１１は、新たに記憶した位置情報、補正後の姿勢情報Ｅｎ＋１’及び方位情報に基づいて、位置情報、補正後の姿勢情報Ｅｎ＋１’または方位情報に対応するアプリケーションを実行する（ステップＳ２０１６）。これにより、施設の固有座標系における携帯電話機１の姿勢、位置及び方位がリセットできるため、屋内等の方位及び位置情報が不正確な状況下においても精度の高いサービスを提供することが可能となる。
【００８１】
本実施の形態４は以上の如きであり、その他は実施の形態１乃至３と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【００８２】
実施の形態５
実施の形態５は水平な面に設置された無線タグ２を認識する形態に関する。図２１は水平面への接触状態を示す説明図である。筐体３の直方体部３１は水平面３４が形成されている。水平面３４の上面または内面には無線タグ２が設置されている。ユーザは携帯電話機１の底面と水平面３４とが当接するよう、携帯電話機１を筐体３へ接触させる。図２１において、ＸＹＺ軸は施設の固有座標系であり、ＸＹ平面におけるＸ軸方向が北方向であることを示している。
【００８３】
ｉ，ｊ，ｋは加速度センサ１０１の座標系における基準単位ベクトルである。図２１の例では携帯電話機１は北に対し時計方向にα回転している。施設の内部においては方位に関し固有の誤差を有することが多い。βは固有の誤差である。この方位の誤差は無線タグ２から無線タグ２の方位を特定するための第１方位情報として取得する。α−βは磁気センサ１０２から出力される無線タグ２の方位を特定するための第２方位情報である。第２方位情報に第１方位情報を加算することで固有の誤差を補正した回転角度αを求めることができる。
【００８４】
ＣＰＵ１１は携帯電話機１が無線タグ２を認識した時点を起点として記憶部１５に記憶した所定期間を経過した後、または、実施の形態４で述べた減少時における姿勢情報として、記憶部１５から式（１１）で示す姿勢行列Ｅｎを読み出す。なお、以降ではＣＰＵ１１は減少時における姿勢情報であるものとして説明する。
【００８５】
【数１１】
0005729199.tif 000012
【００８６】
続いてＣＰＵ１１は式（３）に補正した角度αを代入する。ＣＰＵ１１は式（４）に示すように、回転行列Ｒαの逆行列を姿勢行列Ｅｎに左から乗ずることで、固有座標系における姿勢行列Ｅｎ’を算出する。これにより、補正後の姿勢情報としてＥｎ’を求めることができる。
【００８７】
図２２及び図２３は姿勢情報の補正手順を示すフローチャートである。ＣＰＵ１１は実施の形態１で述べたように認識フラグが設定されているか否かを判断する（ステップＳ２２１）。ＣＰＵ１１は認識フラグが設定されていないと判断した場合（ステップＳ２２１でＮＯ）、認識フラグが設定されるまで待機する。ＣＰＵ１１は認識フラグが設定されたと判断した場合（ステップＳ２２１でＹＥＳ）、ステップＳ２２２へ移行する。無線タグ２のＲＡＭ２２には筐体３が設置された位置情報、筐体３近辺に特有の方位の誤差、及び、筐体３の上部が水平面３４であることを示す水平面３４の情報が記憶されている。無線タグ２のＣＰＵ２１はリーダライタ１９の要求に応じて、位置情報、方位の誤差及び水平面３４の情報を出力する。携帯電話機１のリーダライタ１９は無線タグ２から、水平面３４の情報を取得する。ＣＰＵ１１は水平面３４の情報を取得したか否かを判断する（ステップＳ２２２）。ＣＰＵ１１は水平面３４の情報を取得していないと判断した場合（ステップＳ２２２でＮＯ）、処理を終了する。この場合、実施の形態１乃至４で述べた傾斜面３２であることから、実施の形態１乃至４で述べた処理を行えばよい。
【００８８】
ＣＰＵ１１は水平面３４の情報を取得したと判断した場合（ステップＳ２２２でＹＥＳ）、処理をステップＳ２２３へ移行させる。ＣＰＵ１１は無線タグ２から位置情報及び方位の誤差を取得する（ステップＳ２２３）。ＣＰＵ１１は実施の形態４で述べたように、減少時フラグが設定されているか否かを判断する（ステップＳ２２４）。ＣＰＵ１１は減少時フラグが設定されていないと判断した場合（ステップＳ２２４でＮＯ）、減少時フラグが設定されるまで待機する。ＣＰＵ１１は減少時フラグが設定されたと判断した場合（ステップＳ２２４でＹＥＳ）、記憶部１５から式（１１）で示す姿勢行列を読み出す（ステップＳ２２５）。
【００８９】
ＣＰＵ１１は磁気センサ１０２から方位を取得する（ステップＳ２２６）。ＣＰＵ１１は無線タグ２から取得した方位の誤差と磁気センサ１０２から取得した方位とを加算し、方位の補正を行う（ステップＳ２２７）。ＣＰＵ１１は記憶部１５から式（３）で示す回転行列を読み出す（ステップＳ２２８）。ＣＰＵ１１は補正後の方位を回転行列に代入する（ステップＳ２２９）。ＣＰＵ１１は代入後の回転行列の逆行列を姿勢行列に左から乗じ、姿勢行列を補正する（ステップＳ２３１）。
【００９０】
ＣＰＵ１１は補正後の姿勢行列、補正後の方位を記憶部１５に記憶する（ステップＳ２３２）。ＣＰＵ１１は取得した位置情報を記憶部１５に記憶する（ステップＳ２３３）。ＣＰＵ１１は位置情報、補正後の姿勢行列または補正後の方位に対応するアプリケーションを実行する（ステップＳ２３４）。これにより、傾斜面３２のみならず水平面３４に接触させた場合でも、固有の方位に係る誤差を解消した上で、精度の高いサービスを提供することが可能となる。
【００９１】
本実施の形態５は以上の如きであり、その他は実施の形態１乃至４と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【００９２】
実施の形態６
実施の形態６は位置情報及び第１方位情報としての方位の誤差を外部から取得する形態に関する。実施の形態５においては位置情報及び方位の誤差を無線タグ２から取得したが、記憶部１５またはサーバコンピュータ４のタグ情報テーブル４５１に記憶してもよい。図２４は実施の形態６に係るタグ情報テーブル４５１のレコードレイアウトを示す説明図である。タグ情報テーブル４５１はタグＩＤフィールド、座標値フィールド及び方位の誤差フィールド等を含む。座標値フィールドには無線タグ２の位置を特定するための固有座標系におけるｘｙ座標値が、タグＩＤに対応付けて記憶されている。例えばタグＩＤ「００１」とする無線タグ２は座標値「１０、３０」で特定される位置に設置されている。なお本実施形態においてはｘｙ座標値のみを記憶する例を示すが、高度を示す座標値ｚを含めても良い。
【００９３】
方位の誤差フィールドには、タグＩＤに対応付けて、無線タグ２が配置される領域に固有の方位の誤差が記憶されている。例えばタグＩＤ「００１」で示される無線タグ２が配置される箇所は、北向きに対して時計方向に１０度の誤差を有している。
【００９４】
無線タグ２のＲＡＭ２２にはタグＩＤが記憶されている。携帯電話機１のタグリーダ１９は無線タグ２からタグＩＤを取得する。ＣＰＵ１１は取得したタグＩＤを、通信部１６を介してサーバコンピュータ４へ出力する。サーバコンピュータ４のＣＰＵ４１は通信部４６を介してタグＩＤを受信する。ＣＰＵ４１はタグ情報テーブル４５１からタグＩＤに対応する座標値及び方位の誤差を読み出す。ＣＰＵ４１は通信部４６を介して、座標値及び方位の誤差を携帯電話機１へ送信する。携帯電話機１のＣＰＵ１１は通信部１６を介して、座標値及び方位の誤差を取得する。
【００９５】
なお、本実施形態では、無線タグ２のＲＡＭ２２にタグＩＤを記憶しておき、サーバコンピュータ４のタグ情報テーブル４５１に位置情報及び方位情報を記憶する例を挙げたがこれに限るものではない。無線タグ２のＲＡＭ２２にタグＩＤと座標値または方位の誤差のいずれかを記憶しておき、サーバコンピュータ４のタグ情報テーブル４５１に方位の誤差または座標値のいずれかを記憶しても良い。また、本実施形態ではサーバコンピュータ４のタグ情報テーブル４５１に座標値及び方位の誤差を記憶する例を挙げたが、携帯電話機１の記憶部１５に記憶しておいても良い。この場合、ＣＰＵ１１がタグＩＤに対応する座標値及び方位の誤差を記憶部１５から読み出す。
【００９６】
図２５は座標値及び方位の誤差の取得処理の手順を示すフローチャートである。実施の形態５で述べた取得処理に変えて以下の取得処理を実行する。携帯電話機１のタグリーダ１９は無線タグ２を認識した場合、無線タグ２から出力されるタグＩＤを取得する（ステップＳ２５１）。タグリーダ１９は取得したタグＩＤをＣＰＵ１１へ出力する。ＣＰＵ１１は取得したタグＩＤを、通信部１６を介してサーバコンピュータ４へ送信する（ステップＳ２５２）。サーバコンピュータ４のＣＰＵ４１は通信部４６を介してタグＩＤを受信する（ステップＳ２５３）。
【００９７】
ＣＰＵ４１はタグ情報テーブル４５１からタグＩＤに対応する座標値及び方位の誤差を読み出す（ステップＳ２５４）。ＣＰＵ４１は通信部４６を介して、座標値及び方位の誤差を携帯電話機１へ送信する（ステップＳ２５５）。携帯電話機１のＣＰＵ１１は通信部１６を介して、座標値及び方位の誤差を取得する（ステップＳ２５６）。これにより、無線タグ２自身に座標値及び方位の誤差が記憶されていなくても、これらの情報を取得することが可能となる。
【００９８】
本実施の形態６は以上の如きであり、その他は実施の形態１乃至５と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【００９９】
実施の形態７
図２６は上述した形態の携帯電話機１の動作を示す機能ブロック図である。図２６Ａは実施の形態１乃至４に係る携帯電話機１の動作を示す機能ブロック図である。ＣＰＵ１１が制御プログラム１５Ｐ等を実行することにより、携帯電話機１は以下のように動作する。取得部１１１０はタグリーダ１９を介して無線タグ２から位置を特定するための位置情報を取得する。加速度取得部１１２はタグリーダ１９により無線タグ２を認識した時点から、所定時間内の加速度センサ１０１から出力される加速度を取得する。算出部１１３は加速度取得部１１２により取得した加速度に基づき、姿勢を特定するための姿勢情報を算出する。
【０１００】
図２６Ｂは実施の形態５及び６に係る携帯電話機１の動作を示す機能ブロック図である。取得部１１１０はタグリーダ１９を介して無線タグ２から位置を特定するための位置情報および方位を特定するための第１方位情報を取得する。第２方位情報取得部１１４は磁気センサから方位を特定するための第２方位情報を取得する。補正部１１５は取得部１１１０により取得した第１方位情報および第２方位情報取得部１１４により取得した第２方位情報に基づき方位情報を補正する。読み出し部１１６は予め記憶した姿勢を特定するための姿勢情報を記憶部１５から読み出す。姿勢補正部１１７は読み出し部１１６により読み出した姿勢情報を、補正後の方位情報に基づき補正する。
【０１０１】
図２７は実施の形態７に係る携帯電話機１のハードウェア群を示すブロック図である。携帯電話機１を動作させるためのプログラムは、ディスクドライブ等の読み取り部１０ＡにＣＤ−ＲＯＭ、ＤＶＤ（Digital Versatile Disc）ディスク、メモリーカード、またはＵＳＢ(Universal Serial Bus)メモリ等の可搬型記録媒体１Ａを読み取らせて記憶部１５に記憶しても良い。また当該プログラムを記憶したフラッシュメモリ等の半導体メモリ１Ｂを携帯電話機１内に実装しても良い。さらに、当該プログラムは、インターネット等の通信網を介して接続される他のサーバコンピュータ（図示せず）からダウンロードすることも可能である。以下に、その内容を説明する。
【０１０２】
図２７に示す携帯電話機１は、上述した各種ソフトウェア処理を実行するプログラムを、可搬型記録媒体１Ａまたは半導体メモリ１Ｂから読み取り、或いは、通信網Ｎを介して他のサーバコンピュータ（図示せず）からダウンロードする。当該プログラムは、制御プログラム１５Ｐとしてインストールされ、ＲＡＭ１２にロードして実行される。これにより、上述した携帯電話機１として機能する。
【０１０３】
本実施の形態７は以上の如きであり、その他は実施の形態１乃至６と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【０１０４】
以上の実施の形態１乃至７を含む実施形態に関し、さらに以下の付記を開示する。
【０１０５】
（付記１）
制御部を有するコンピュータにより情報処理を行うプログラムにおいて、
コンピュータに、
近距離無線通信部を介して近距離無線通信装置から位置を特定するための位置情報を取得し、
前記近距離無線通信部により前記近距離無線通信装置を認識した時点から、所定時間内の加速度センサから出力される加速度を前記制御部により取得し、
取得した加速度に基づき、前記制御部により姿勢を特定するための姿勢情報を算出する
処理を実行させるプログラム。
【０１０６】
（付記２）
前記制御部は、前記加速度センサから出力された３軸の加速度と、重力加速度または３軸の加速度のノルムとに基づき、姿勢情報を算出する
付記１に記載のプログラム。
【０１０７】
（付記３）
前記制御部は、前記近距離無線通信部により前記近距離無線通信装置を認識した時点から、記憶部に記憶した所定時間経過後に前記加速度センサから出力される加速度を取得する
付記１または２に記載のプログラム。
【０１０８】
（付記４）
前記近距離無線通信部を介して前記近距離無線通信装置から方位を特定するための方位情報を取得し、
取得した方位情報に基づき、算出した姿勢情報を前記制御部により補正する
付記１から３までのいずれか１項に記載のプログラム。
【０１０９】
（付記５）
取得した位置情報及び方位情報と、補正した姿勢情報とを前記記憶部に記憶する
付記４に記載のプログラム。
【０１１０】
（付記６）
前記近距離無線通信部により前記近距離無線通信装置を認識した時点から、所定時間経過後の角速度センサから出力される角速度を前記制御部により取得し、
取得した角速度に基づき算出した姿勢情報を、前記制御部により更新する
付記１から３のいずれか１項に記載のプログラム。
【０１１１】
（付記７）
前記制御部は、取得した角速度に基づき、衝撃による角速度の変化が減少した時点を検出し、
前記制御部は、前記所定時間経過後から減少した時点までに取得される角速度に基づき算出した姿勢情報を更新する
付記６に記載のプログラム。
【０１１２】
（付記８）
取得した方位情報に基づき、前記更新した姿勢情報を前記制御部により補正する
付記７に記載のプログラム。
【０１１３】
（付記９）
取得した位置情報及び方位情報と、補正した姿勢情報とを前記記憶部に記憶する
付記８に記載のプログラム。
【０１１４】
（付記１０）
制御部を有するコンピュータにより情報処理を行うプログラムにおいて、
コンピュータに、
近距離無線通信部を介して近距離無線通信装置から位置を特定するための位置情報および方位を特定するための第１方位情報を取得し、
磁気センサから方位を特定するための第２方位情報を取得し、
前記第１方位情報および前記第２方位情報に基づき方位情報を補正し、
予め記憶した姿勢を特定するための姿勢情報を記憶部から読み出し、
読み出した姿勢情報を、補正後の方位情報に基づき前記制御部により補正する
処理を実行させるプログラム。
【０１１５】
（付記１１）
取得した位置情報、補正した方位情報、および補正した姿勢情報を前記記憶部に記憶する
付記１０に記載のプログラム。
【０１１６】
（付記１２）
情報処理を行う情報処理装置において、
近距離無線通信部を介して近距離無線通信装置から位置を特定するための位置情報を取得する取得部と、
前記近距離無線通信部により前記近距離無線通信装置を認識した時点から、所定時間内の加速度センサから出力される加速度を取得する加速度取得部と、
該加速度取得部により取得した加速度に基づき、姿勢を特定するための姿勢情報を算出する算出部と
を備える情報処理装置。
【０１１７】
（付記１３）
情報処理を行う情報処理装置において、
近距離無線通信部を介して近距離無線通信装置から位置を特定するための位置情報および方位を特定するための第１方位情報を取得する取得部と、
磁気センサから方位を特定するための第２方位情報を取得する第２方位情報取得部と、
前記取得部により取得した前記第１方位情報および前記第２方位情報取得部により取得した前記第２方位情報に基づき方位情報を補正する補正部と、
予め記憶した姿勢を特定するための姿勢情報を記憶部から読み出す読み出し部と、
該読み出し部により読み出した姿勢情報を、補正後の方位情報に基づき補正する姿勢補正部と
を備える情報処理装置。
【０１１８】
（付記１４）
制御部を有する情報処理装置により情報処理を行う情報処理方法において、
近距離無線通信部を介して近距離無線通信装置から位置を特定するための位置情報を取得し、
前記近距離無線通信部により前記近距離無線通信装置を認識した時点から、所定時間内の加速度センサから出力される加速度を前記制御部により取得し、
取得した加速度に基づき、前記制御部により姿勢を特定するための姿勢情報を算出する
情報処理方法。
【０１１９】
（付記１５）
制御部を有する情報処理装置により情報処理を行う情報処理方法において、
近距離無線通信部を介して近距離無線通信装置から位置を特定するための位置情報および方位を特定するための第１方位情報を取得し、
磁気センサから方位を特定するための第２方位情報を取得し、
前記第１方位情報および前記第２方位情報に基づき方位情報を補正し、
予め記憶した姿勢を特定するための姿勢情報を記憶部から読み出し、
読み出した姿勢情報を、補正後の方位情報に基づき前記制御部により補正する
情報処理方法。
【０１２０】
（付記１６）
情報処理を行う情報処理装置および傾斜面または鉛直面に配置された近距離無線通信装置を用いた通信システムにおいて、
前記情報処理装置は、
近距離無線通信部を介して前記近距離無線通信装置から位置を特定するための位置情報を取得する取得部と、
前記近距離無線通信部により前記近距離無線通信装置を認識した時点から、所定時間内の加速度センサから出力される加速度を取得する加速度取得部と、
該加速度取得部により取得した加速度に基づき、姿勢を特定するための姿勢情報を算出する算出部と
を備える通信システム。
【０１２１】
（付記１７）
情報処理を行う情報処理装置および水平面に配置された近距離無線通信装置を用いた通信システムにおいて、
前記情報処理装置は、
近距離無線通信部を介して前記近距離無線通信装置から位置を特定するための位置情報および方位を特定するための第１方位情報を取得する取得部と、
磁気センサから方位を特定するための第２方位情報を取得する第２方位情報取得部と、
前記取得部により取得した前記第１方位情報および前記第２方位情報取得部により取得した前記第２方位情報に基づき方位情報を補正する補正部と、
予め記憶した姿勢を特定するための姿勢情報を記憶部から読み出す読み出し部と、
該読み出し部により読み出した姿勢情報を、補正後の方位情報に基づき補正する姿勢補正部と
を備える通信システム。
【０１２２】
（付記１８）
制御部を有するコンピュータにより情報処理を行うプログラムにおいて、
コンピュータに、
近距離無線通信部を介して近距離無線通信装置から該近距離無線通信装置を特定するための識別情報を取得し、
該取得した識別情報に対応する前記近距離無線通信装置の位置を特定するための位置情報を取得し、
前記近距離無線通信部により前記近距離無線通信装置を認識した時点から、所定時間内の加速度センサから出力される加速度を前記制御部により取得し、
取得した加速度に基づき、前記制御部により姿勢を特定するための姿勢情報を算出する
処理を実行させるプログラム。
【０１２３】
（付記１９）
前記取得した識別情報に対応する前記近距離無線通信装置に対応付けられる方位を特定するための方位情報を取得し、
取得した方位情報に基づき、前記算出した姿勢情報を前記制御部により補正する
付記１８に記載のプログラム。
【０１２４】
（付記２０）
制御部を有するコンピュータにより情報処理を行うプログラムにおいて、
コンピュータに、
近距離無線通信部を介して近距離無線通信装置から該近距離無線通信装置を特定するための識別情報を取得し、
該取得した識別情報に対応する前記近距離無線通信装置の位置を特定するための位置情報および方位を特定するための第１方位情報を取得し、
磁気センサから方位を特定するための第２方位情報を取得し、
前記第１方位情報および前記第２方位情報に基づき方位情報を補正し、
予め記憶した姿勢を特定するための姿勢情報を記憶部から読み出し、
読み出した姿勢情報を、補正後の方位情報に基づき前記制御部により補正する
処理を実行させるプログラム。
【符号の説明】
【０１２５】
１      携帯電話機
１Ａ    可搬型記録媒体
１Ｂ    半導体メモリ
２      無線タグ
３      筐体
１０Ａ  読み取り部
１１    ＣＰＵ
１２    ＲＡＭ
１３    入力部
１４    表示部
１５    記憶部
１５Ｐ  制御プログラム
１６    通信部
１８    時計部
１９    タグリーダ
２１    ＣＰＵ
２２    ＲＡＭ
２３    近距離通信部
２４    電源部
２６    通信部
３１    直方体部
３２    傾斜面
３３    傾斜部
３４    水平面
４１    ＣＰＵ
４２    ＲＡＭ
４５    記憶部
４６    通信部
４５１  タグ情報テーブル
１０１  加速度センサ
１０２  磁気センサ
１０３  ジャイロセンサ
１１０  マイク
１１１  スピーカ
【図１】
0005729199.tif 000013
【図２】
0005729199.tif 000014
【図３】
0005729199.tif 000015
【図４】
0005729199.tif 000016
【図５】
0005729199.tif 000017
【図６】
0005729199.tif 000018
【図７】
0005729199.tif 000019
【図８】
0005729199.tif 000020
【図９】
0005729199.tif 000021
【図１０】
0005729199.tif 000022
【図１１】
0005729199.tif 000023
【図１２】
0005729199.tif 000024
【図１３】
0005729199.tif 000025
【図１４】
0005729199.tif 000026
【図１５】
0005729199.tif 000027
【図１６】
0005729199.tif 000028
【図１７】
0005729199.tif 000029
【図１８】
0005729199.tif 000030
【図１９】
0005729199.tif 000031
【図２０】
0005729199.tif 000032
【図２１】
0005729199.tif 000033
【図２２】
0005729199.tif 000034
【図２３】
0005729199.tif 000035
【図２４】
0005729199.tif 000036
【図２５】
0005729199.tif 000037
【図２６】
0005729199.tif 000038
【図２７】
0005729199.tif 000039