移動体の位置および姿勢を記憶する記憶部と、前記移動体のオドメトリを計算する計算部から、前記オドメトリを第1の間隔で取得する第1の取得部と、前記計算部によって計算されたオドメトリおよび前記オドメトリ以外の情報を用いて前記移動体の位置および姿勢を推定する推定部から、前記移動体の位置および姿勢の推定結果を前記第1の間隔よりも長い第2の時間間隔で取得する第2の取得部と、前記第2の取得部によって前記推定結果が取得された場合に、更新後の移動体の位置および姿勢の値が、前記記憶部に記憶された移動体の位置および姿勢に前記推定部によって今回の推定に用いられたオドメトリおよび今回以前の推定に用いられたオドメトリの差分を加算することにより得られるオドメトリの差分に基づく位置および姿勢と、前記推定部による移動体の位置および姿勢の推定結果との間に遷移するように、前記記憶部に記憶された移動体の位置および姿勢を更新する更新部と、前記第1の取得部によってオドメトリが前記第1の間隔で取得される度に、当該オドメトリと前記推定部によって今回の推定に用いられたオドメトリとの差分を前記記憶部に記憶された移動体の位置および姿勢に足し合わせた上で出力する出力部とを有することを特徴とする位置姿勢出力装置。前記オドメトリの差分に基づく位置および姿勢から前記推定部による移動体の位置および姿勢の推定結果へ前記更新後の移動体の位置および姿勢を遷移させる度合いを定める定数を算出する算出部をさらに有し、前記更新部は、前記オドメトリの差分に基づく位置および姿勢と前記推定部による移動体の位置および姿勢の推定結果との差分に前記算出部によって算出された定数を乗算した乗算値を用いて、前記記憶部に記憶された移動体の位置および姿勢を更新することを特徴とする請求項1に記載の位置姿勢出力装置。前記記憶部は、前記第2の取得部によって前記推定結果が取得された場合に更新される移動体の位置および姿勢とともに、前記第1の取得部によってオドメトリが取得された場合に更新される移動体の位置および姿勢をさらに記憶するものであって、前記更新部は、前記第1の取得部によってオドメトリが前記第1の間隔で取得される度に、前記第1の間隔と前記第2の間隔との比に基づいて、前記オドメトリの差分に基づく位置および姿勢と前記推定部による移動体の位置および姿勢の推定結果との差分を平滑化した上で、前記記憶部に記憶された移動体の位置および姿勢のうち前記第1の取得部によってオドメトリが取得された場合に更新される移動体の位置および姿勢に足し合わせる更新をさらに実行することを特徴とする請求項1または2に記載の位置姿勢出力装置。コンピュータに、前記移動体のオドメトリを計算する計算部から、前記オドメトリを第1の間隔で取得し、前記計算部によって計算されたオドメトリおよび前記オドメトリ以外の情報を用いて前記移動体の位置および姿勢を推定する推定部から、前記移動体の位置および姿勢の推定結果を前記第1の間隔よりも長い第2の時間間隔で取得し、前記移動体の位置および姿勢の推定結果が取得された場合に、更新後の移動体の位置および姿勢の値が、移動体の位置および姿勢を記憶する記憶部に記憶された移動体の位置および姿勢に前記推定部によって今回の推定に用いられたオドメトリおよび今回以前の推定に用いられたオドメトリの差分を加算することにより得られるオドメトリの差分に基づく位置および姿勢と、前記推定部による移動体の位置および姿勢の推定結果との間に遷移するように、前記記憶部に記憶された移動体の位置および姿勢を更新し、前記オドメトリが前記第1の間隔で取得される度に、当該オドメトリと前記推定部によって今回の推定に用いられたオドメトリとの差分を前記記憶部に記憶された移動体の位置および姿勢に足し合わせた上で出力する各処理を実行させることを特徴とする位置姿勢出力プログラム。コンピュータが、前記移動体のオドメトリを計算する計算部から、前記オドメトリを第1の間隔で取得し、前記計算部によって計算されたオドメトリおよび前記オドメトリ以外の情報を用いて前記移動体の位置および姿勢を推定する推定部から、前記移動体の位置および姿勢の推定結果を前記第1の間隔よりも長い第2の時間間隔で取得し、前記移動体の位置および姿勢の推定結果が取得された場合に、更新後の移動体の位置および姿勢の値が、移動体の位置および姿勢を記憶する記憶部に記憶された移動体の位置および姿勢に前記推定部によって今回の推定に用いられたオドメトリおよび今回以前の推定に用いられたオドメトリの差分を加算することにより得られるオドメトリの差分に基づく位置および姿勢と、前記推定部による移動体の位置および姿勢の推定結果との間に遷移するように、前記記憶部に記憶された移動体の位置および姿勢を更新し、前記オドメトリが前記第1の間隔で取得される度に、当該オドメトリと前記推定部によって今回の推定に用いられたオドメトリとの差分を前記記憶部に記憶された移動体の位置および姿勢に足し合わせた上で出力する各処理を実行することを特徴とする位置姿勢出力方法。しかしながら、上記の従来技術では、以下に説明するように、移動体の正確な位置および姿勢を時間遅れなく出力することができないという問題がある。すなわち、上記の位置推定装置および標定装置では、オドメトリとともに画像等の他の情報を用いて移動体の位置および姿勢を推定するので、画像処理を実行するためにオドメトリの計算に比べて長い処理時間が必要となる。このため、上記の位置推定装置および標定装置では、移動体の位置および姿勢を推定し始めてからその推定結果が出力されるまでのタイムラグが大きくなる。よって、上記の位置推定装置および標定装置では、推定結果に対応する位置および姿勢が移動体によって実際に取られていた時点から遅れて位置および姿勢の推定結果が出力されてしまう。また、上記の位置推定装置および標定装置では、画像等の他の情報を用いて移動体の位置および姿勢を推定する場合に、移動体の位置および姿勢の推定精度にばらつきが生じてしまう。なぜなら、上記の位置推定装置では、画像から目印やランドマークなどの特徴点を追跡し、また、上記の標定装置では、画像から白線の消失点を検出するが、画像には実際の特徴点や実際の白線の消失点と混同されやすいノイズが含まれる場合があるからである。かかるノイズが画像に含まれる場合には、ノイズを特徴点や白線の消失点と誤認し、移動体の位置および姿勢の推定結果に誤りが生じてしまう。開示の技術は、上記に鑑みてなされたものであって、移動体の正確な位置および姿勢を時間遅れなく出力できる位置姿勢出力装置、位置姿勢出力プログラム及び位置姿勢出力方法を提供することを目的とする。本願の開示する位置姿勢出力装置は、移動体の位置および姿勢を記憶する記憶部を有する。前記位置姿勢出力装置は、前記移動体のオドメトリを計算する計算部から、前記オドメトリを第1の間隔で取得する第1の取得部を有する。前記位置姿勢出力装置は、前記オドメトリおよび前記オドメトリ以外の情報を用いて前記移動体の位置および姿勢を推定する推定部から、前記移動体の位置および姿勢の推定結果を前記第1の間隔よりも長い第2の時間間隔で取得する第2の取得部を有する。さらに、前記位置姿勢出力装置は、前記第2の取得部によって前記推定結果が取得された場合に、前記記憶部に記憶された移動体の位置および姿勢を更新する更新部を有する。前記更新部は、更新後の移動体の位置および姿勢の値が、オドメトリの差分に基づく位置および姿勢と、前記推定部による移動体の位置および姿勢の推定結果との間に遷移するように、前記記憶部に記憶された移動体の位置および姿勢を更新する。前記オドメトリの差分に基づく位置および姿勢は、前記記憶部に記憶された移動体の位置および姿勢に前記推定部によって今回の推定に用いられたオドメトリおよび今回以前の推定に用いられたオドメトリの差分を加算することにより得られる。前記位置姿勢出力装置は、前記オドメトリが前記第1の間隔で取得される度に、当該オドメトリと前記推定部によって今回の推定に用いられたオドメトリとの差分を前記記憶部に記憶された移動体の位置および姿勢に足し合わせた上で出力する出力部を有する。本願の開示する位置姿勢出力装置の一つの態様によれば、移動体の正確な位置および姿勢を時間遅れなく出力できるという効果を奏する。以下に、本願の開示する位置姿勢出力装置、位置姿勢出力プログラム及び位置姿勢出力方法の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。[ロボットの構成]まず、本実施例に係る位置姿勢出力装置を含むロボットの機能的構成について説明する。図1は、実施例1に係るロボットの機能的構成を示すブロック図である。図1に示すロボット1は、オフィス、廊下やショッピングモール等の空間において所定の目標の位置、例えば予め定められた位置や外部から指示入力された位置に向かって自律走行する装置である。図1に示すように、ロボット1は、計算部3と、センサ5aと、推定部5と、経路計画部7と、移動制御部9と、位置姿勢出力装置10とを有する。なお、ロボット1は、図1に示した機能部以外にも既知のロボットが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの他、車軸や車輪、これらを駆動する駆動部などの機能を有するものとする。計算部3は、ロボット1のオドメトリを計算する処理部である。一態様としては、計算部3は、ロボット1の車輪の回転角度から位置および姿勢の変化量を計算した上でそれまでに求めていた位置および姿勢に累積して足し合わせることによってオドメトリを計算する。このように、計算部3によって計算されたオドメトリは、後述の位置姿勢出力装置10へ出力される。推定部5は、撮像センサやLRFLaserRangeFinderなどのセンサ5aによって採取されるセンサ情報を用いて、ロボット1の位置および姿勢を推定する処理部である。一態様としては、推定部5は、センサ5aによって出力されたセンサ情報を予め作成された地図情報との間でマップマッチングすることにより、ロボット1の位置および姿勢を推定する。かかる位置および姿勢の推定には、上述したマップマッチングの他にも公知の任意の手法を採用することができる。このように、推定部5によって推定された位置および姿勢の推定結果は、後述の位置姿勢出力装置10へ出力される。なお、以下では、位置および姿勢のことを位置姿勢と記載する場合がある。経路計画部7は、ロボット1が移動する経路を計画する処理部である。一態様としては、経路計画部7は、ロボット1が目標の位置に到達または通過できるように、後述の位置姿勢出力装置10によって出力されたロボット1の位置姿勢から、ロボット1を移動させる速度や角速度などの移動制御用のパラメータを決定する。このように、経路計画部7によって決定された移動制御用のパラメータは、後述の移動制御部9へ出力される。移動制御部9は、ロボット1の移動を制御する処理部である。一態様としては、移動制御部9は、経路計画部7によって出力された移動制御用のパラメータにしたがってロボット1の車輪を駆動させたり、車輪の回転に制動を掛けたり、あるいはロボット1本体の向きを回転させたりする。位置姿勢出力装置10は、計算部3および推定部5によって互いに異なる周期で出力されるロボット1のオドメトリおよび位置姿勢をフィルタリングした上で経路計画部7へ出力する装置である。一態様としては、位置姿勢出力装置10は、計算部3によって計算されたオドメトリおよび推定部5によって推定された位置姿勢をもとに、内部状態量を更新しつつ、内部状態量を参照してロボット1の位置姿勢を出力する。ここで言う内部状態量とは、位置姿勢出力装置10によって内部的に管理されるロボット1の状態量を指す。なお、以下では、位置姿勢出力装置10が出力する位置姿勢のことをフィルタリング結果と記載する場合がある。[位置姿勢出力装置の構成]続いて、本実施例に係る位置姿勢出力装置の機能的構成について説明する。図2は、実施例1に係る位置姿勢出力装置の機能的構成を示すブロック図である。図2に示すように、位置姿勢出力装置10は、第1の取得部11と、第2の取得部12と、記憶部13と、更新部14と、算出部15と、出力部16とを有する。このうち、第1の取得部11は、計算部3によって出力されるロボット1のオドメトリを取得する処理部である。また、第2の取得部12は、推定部5によって出力されるロボット1の位置姿勢の推定結果を取得する処理部である。さらに、第2の取得部12は、ロボット1の位置姿勢の推定結果とともに、その推定に用いられたオドメトリの値も併せて取得する。ここで、図3を用いて、オドメトリおよび位置姿勢の推定結果が入力される周期の違いについて説明する。図3は、オドメトリおよび位置姿勢の推定結果が入力される周期の一例を示す図である。図3に示すtは、時刻を指し、t_newは、計算部3によって最新のオドメトリが入力された時刻を指す。また、図3に示すt’は、推定部5によって位置姿勢が推定された時刻を指し、図3に示すt’1は、前回に推定部5によって位置姿勢が推定された時刻を指す。なお、図3の例では、オドメトリおよび位置姿勢の推定結果の両者がともに一定の間隔で入力される場合を想定する。図3に示すように、計算部3によって計算されたオドメトリが50msecの間隔で入力される一方で、推定部5によって推定された位置姿勢の推定結果が300msecの間隔で入力される。このように、オドメトリが入力される周期が位置姿勢の推定結果が入力される周期よりも短いのは、オドメトリが移動速度の時間積分という簡易な演算によって算出できるからである。また、位置姿勢の推定結果が入力される周期がオドメトリが入力される周期よりも長いのは、画像やレーザー光の反射光などを解析する処理にオドメトリの計算に比べて長い処理時間を要するからである。なお、ここでは、オドメトリの入力周期が50msecであり、位置姿勢の推定結果が300msecである場合を例示したが、これらの入力周期はあくまでも一例である。各々の入力周期は、任意の値であってかまわないが、オドメトリの入力周期は位置姿勢の推定結果の入力周期よりも短いことが好ましい。記憶部13は、ロボット1の内部状態量を記憶するものである。かかる内部状態量の一態様としては、浮動小数点型のx座標位置m、y座標位置mおよび姿勢θradが対応付けられたデータが採用される。一例としては、第2の取得部12によって位置姿勢の推定結果が取得される度に、後述の更新部14によって内部状態量が更新される。他の一例としては、第1の取得部11によってオドメトリが取得される度に、後述の出力部16によって内部状態量が参照される。なお、内部状態量の初期状態には、ローカル座標系の原点として位置姿勢xyθ=000を設定することもできるし、グローバル座標系におけるロボット1の所在位置およびその姿勢を設定することもできる。この記憶部13には、半導体メモリ素子や記憶装置を採用できる。例えば、半導体メモリ素子の一例としては、VRAMVideoRandomAccessMemory、RAMRandomAccessMemory、ROMReadOnlyMemoryやフラッシュメモリflashmemoryなどが挙げられる。また、記憶装置の一例としては、ハードディスク、光ディスクなどの記憶装置が挙げられる。更新部14は、内部状態量を更新する処理部である。一態様としては、更新部14は、第2の取得部12によって位置姿勢の推定結果が取得された場合に、処理を起動する。このとき、更新部14は、更新後の内部状態量が、更新前の内部状態量に今回の推定に用いられたオドメトリおよび前回の推定に用いられたオドメトリの差分が加算された値と、今回の位置姿勢の推定結果との間に遷移するように、内部状態量を更新する。ここで、図4を用いて、内部状態量の更新方法について説明する。図4は、内部状態量の更新方法の一例を示す図である。図4に示すEは、位置姿勢の推定結果を指し、例えば、Eと表記された場合には今回推定された位置姿勢の推定結果を表し、Eと表記された場合には前回推定された位置姿勢の推定結果を表す。また、図4に示すzは、内部状態量を指し、例えば、zと表記された場合には更新後の内部状態量を表し、zと表記された場合には更新前の内部状態量を表す。また、図4に示すE_odoは、位置姿勢の推定に用いられたオドメトリを指し、例えば、E_odoと表記された場合には今回の推定に用いられたオドメトリを表し、E_odoと表記された場合には前回の推定に用いられたオドメトリを表す。図4に示すように、更新部14は、推定部5によって推定された位置姿勢の推定結果Eをそのまま内部状態量zと同定する更新を必ずしも実行しない。その理由の一因としては、推定部5による位置姿勢の推定結果にはセンサ5aによって採取されたセンサ情報に含まれるノイズが原因となって推定精度にばらつきが生じるからである。それゆえ、更新部14は、位置姿勢の推定結果Eだけに依存せずに内部状態量zを更新するために、今回の推定に用いられたオドメトリと前回の推定に用いられたオドメトリとの差分E_odoE_odoを使用する。なぜなら、オドメトリの値は、ロボット1の移動量が大きくなるに伴って実際の位置姿勢との間で誤差も大きくなるが、オドメトリの差分は位置姿勢の推定結果が出力される周期という局所的な範囲で見れば誤差は小さく、実値と近い値と推定できるからである。このため、更新部14は、更新前の内部状態量zに上記のオドメトリの差分E_odoE_odoを加算することによってオドメトリの差分に基づく内部状態量、すなわち図中の白丸の位置姿勢を算出する。そして、更新部14は、今回の位置姿勢の推定結果Eから上記のオドメトリの差分に基づく内部状態量zE_odoE_odoを減算した上でその減算値Dに後述の定数ω0<ω≦1を乗算する。これによって、オドメトリの差分に基づく内部状態量zE_odoE_odoから今回の位置姿勢の推定結果Eへ、更新後の内部状態量zをどれだけシフトさせるかを表すシフト値dsを導出する。その上で、更新部14は、オドメトリの差分に基づく内部状態量zE_odoE_odoにシフト値dsを足し合わせることによって、更新後の内部状態量zを算出する。なお、上記の定数ωは、ωの値が1に近づくほど、内部状態量zは位置姿勢の推定結果に近づく。また、ωの値が0に近づくほど、内部状態量zは更新前の内部状態量zにオドメトリの差分を加えた値に近づく。より詳細には、更新部14は、推定部5によって位置姿勢の推定結果Eが出力さると、下記の式1に次の値を代入することによってシフト値dsを算出する。すなわち、更新部14は、更新前の内部状態量z、今回の位置姿勢の推定結果E、今回の推定に用いられたオドメトリE_odoおよび前回の推定に用いられたオドメトリE_odoを下記の式1に代入する。その上で、更新部14は、式1を用いて算出したシフト値dsを下記の式2に代入することによって更新後の内部状態量zを算出した上でその更新後の内部状態量zを記憶部13に上書きして更新する。このように、オドメトリの差分に基づく内部状態量zE_odoE_odoから今回の位置姿勢の推定結果Eへシフト値dsの分、シフトさせる内部状態量zの更新を実行する。これによって、位置姿勢の推定結果がばらつくという弱点をオドメトリの差分によって補完することができる結果、内部状態量zを実際の位置姿勢と近い値に保つことができる。さらに、内部状態量zを更新する方式としてKalmanFilterを使用する方法も考えられるが、上記の更新方法では、KalmanFilterを使用する場合のように、入力の共分散行列を受け取る必要がなく、KalmanFilterを使用する場合よりも効率的に更新できる。算出部15は、シフト値dsに乗ずる定数ωを算出する処理部である。ここでは、一例として、ロボット1を予め計画された走行経路で自律走行された場合における位置姿勢の出力結果のログを用いて定数ωを算出する場合を例示する。なお、上記のログとして、後述の出力部16によって出力されたロボット1のフィルタリング結果のログを用いることとしてもよいし、また、外部装置から供給されたロボット1または他のロボットの位置姿勢のログを用いることとしてもかまわない。これを説明すると、まず、算出部15は、算出対象とする定数ωを1とし、後述の自乗和Sの1回前の計算結果S_preを0とするパラメータの初期化を実行する。その後、算出部15は、ロボット1の位置姿勢の出力結果のログを取得する。そして、算出部15は、ログ取得したロボット1の位置の推移、すなわち位置の点列に含まれる位置と、予め計画された移動軌跡のうち最も近い位置との距離の自乗和Sを計算する。続いて、算出部15は、自乗和Sの1回前の計算結果S_preがゼロでなく、かつ今回計算した自乗和Sが1回前の計算結果S_preよりも大きいか否かを判定する。なお、自乗和Sの計算が始めて実行された場合には、パラメータの初期化によって1回前の計算結果S_preが0に設定されている。このとき、算出部15は、自乗和Sの1回前の計算結果S_preがゼロであるか、もしくは今回計算した自乗和Sが1回前の計算結果S_pre以下である場合には、次のように、定数ωおよび1回前の計算結果S_preを変更して自乗和Sの計算を繰り返す。すなわち、算出部15は、定数ωをω/2に変更するとともに1回前の計算結果S_preを今回計算したSに変更した上で、変更後の定数ωを用いて出力された位置姿勢のログを改めて取得し、自乗和Sを再び計算する。その後、算出部15は、自乗和Sの1回前の計算結果S_preがゼロでなく、かつ今回計算した自乗和Sが1回前の計算結果S_preよりも大きい場合には、今回計算したωの2倍の2ωを定数ωとして決定する。このように定数ωを算出することによって、オドメトリの差分に基づく内部状態量zE_odoE_odoから今回の位置姿勢の推定結果Eへシフトさせる重みを適切に決定できる結果、内部状態量zを正確に算出できる。なお、ここでは、ロボット1を実際に自律走行させた位置姿勢のログを用いて定数ωを算出する場合を例示したが、ロボット1の管理者から定数ωとして経験的に得られる理想値を受け付け、その理想値を採用することとしてもよい。一例としては、今回の位置姿勢の推定結果Eよりもオドメトリの差分に基づく内部状態量zE_odoE_odo寄りへシフトさせる値、例えば03を定数ωとして採用するのが好ましい。出力部16は、記憶部13に記憶された内部状態量zを用いて、フィルタリング結果を算出した上で経路計画部7へ出力する処理部である。一態様としては、出力部16は、最新のオドメトリと今回の推定に用いられたオドメトリとのオドメトリの差分を内部状態量に足し合わせることによってフィルタリング結果を算出する。図5は、フィルタリング結果の算出方法を示す図である。図5に示すように、出力部16は、第1の取得部11によってオドメトリが取得される度に、次のようにして、フィルタリング結果を算出する。すなわち、出力部16は、下記の式3のように、内部状態量zに最新のオドメトリodoと今回の推定に用いられたオドメトリE_odoとのオドメトリの差分を足し合わせることによってフィルタリング結果fを算出する。そして、出力部16は、フィルタリング結果fを経路計画部7へ出力する。このように、上記のオドメトリの差分odoE_odoを用いてフィルタリング結果を算出することにより、位置姿勢の推定結果が入力されずともロボット1の位置姿勢を導出できる。このため、位置姿勢の推定結果が入力されるのを待機せずに、位置姿勢の推定結果が入力されるよりも短い周期、すなわちオドメトリが入力される周期でフィルタリング結果を出力できる。したがって、フィルタリング結果に対応する位置姿勢がロボット1によって実際に取られていた時点からフィルタリング結果を出力するまでの遅れを低減できる結果、時間遅れを抑制できる。なお、第1の取得部11、第2の取得部12、更新部14、算出部15及び出力部16には、各種の集積回路や電子回路を採用できる。例えば、集積回路の一例としては、ASICApplicationSpecificIntegratedCircuitが挙げられる。また、電子回路の一例としては、CPUCentralProcessingUnitやMPUMicroProcessingUnitなどが挙げられる。[計算例]次に、内部状態量の更新およびフィルタリング結果の算出に関する計算例を説明する。なお、E、E_odo、f、odo、z、dsのデータ型は、それぞれ浮動小数点型のx座標位置m、y座標位置m、姿勢θradを含んで構成されるものとする。さらに、ここでは、内部状態量として初期の位置姿勢xyθとして000が設定される場合を想定して以下の説明を行う。加えて、以下では、これらデータの要素を区別して説明する場合には、Ex、EyEθのように記載する場合がある。また、本計算例では、一例として、オドメトリの座標系における姿勢がθ=πであり、位置姿勢の推定に用いられる座標系における姿勢がθ=0である場合を想定する。以下では、オドメトリの座標系のことをオドメトリ座標系と記載し、位置姿勢の推定に用いられる座標系のことを位置姿勢推定座標系と記載する場合がある。なお、内部状態量は、位置姿勢推定座標系と同様の座標系が採用されているものとする。このとき、内部状態量zの位置姿勢xyθが5050157であり、前回の推定に用いられたオドメトリE_odoが1010312であったものとする。さらに、時刻tにおいて今回の位置姿勢の推定結果Eが6060144であり、今回の推定に用いられたオドメトリE_odoが202030であったものとする。このような前提の下、更新部14は、上記の式1にしたがってシフト値dsのxyθを算出する。まず、更新部14は、位置姿勢の推定計算に用いられたオドメトリの差分E_odoE_odoを1010012と算出する。さらに、更新部14は、zE_odoE_odoを算出するが、前述のように、オドメトリ座標系における姿勢と位置姿勢推定座標系における姿勢は異なるので、オドメトリ座標系から位置姿勢推定座標系へと座標変換する。座標変換式を以下に記す。θEθE_odoθdxxE_odoxcosθyE_odoysinθdyxE_odoxsinθyE_odoycosθ上記の座標変換式をE_odoE_odoに適用することにより、更新部14は、zE_odoE_odoを計算する。すなわち、zxdx5010cos10sin50001100601zydy5010sin10cos50100001401zθE_odoθE_odoθ145となる。したがって、更新部14は、EE_odoE_odoにより計算されるを001199001と算出する。ここで定数ωの値が03であったとすると、更新部14は、上記の式1により、シフト値dsを00030660003と算出する。さらに、更新部14は、上記の式2にしたがって内部状態量zを計算する。すなわち、zx60100036007zy401066467zθ14500031497と算出する。その後、出力部16は、時刻t_newにおいて最新のオドメトリが入力された場合に、上記の式3を用いてフィルタリング結果を計算する。この場合も、出力部16は、内部状態量zとオドメトリの差分odoE_odoの座標系は異なるので、座標変換を実行する。すなわち、出力部16は、上記の同様に、θEθE_odoθdxxE_odoxcosθyE_odoysinθdyxE_odoxsinθyE_odoycosθの座標変換式を適用する。そして、出力部16は、最新のオドメトリodoが252528であるとしたとき、下記のように、フィルタリング結果を計算する。fx600705cos05sin6507fy46705cos05sin417fθ1497021297[処理の流れ]次に、本実施例に係る位置姿勢出力装置の処理の流れについて説明する。なお、ここでは、位置姿勢出力装置が実行する1出力処理を説明した後に、2算出処理を説明することとする。1出力処理図6は、実施例1に係る出力処理の手順を示すフローチャートである。この出力処理は、ロボット1の電源が作動した場合に起動する処理であり、電源がOFF状態になるまで繰り返し実行される。図6に示すように、更新部14は、内部状態量の初期の位置姿勢xyθとして000を設定するステップS101。そして、位置姿勢の推定結果が取得された場合ステップS102肯定には、更新部14は、次のような処理を実行するステップS103。すなわち、更新部14は、更新前の内部状態量z、今回の位置姿勢の推定結果E、今回の推定に用いられたオドメトリE_odoおよび前回の推定に用いられたオドメトリE_odoを上記の式1に代入してシフト値dsを算出する。なお、位置姿勢の推定結果が取得されていない場合ステップS102否定には、下記のステップS105の処理に移行する。その後、更新部14は、式1を用いて算出したシフト値dsを下記の式2に代入することによって更新後の内部状態量zを算出した上でその更新後の内部状態量zを記憶部13に上書きして更新するステップS104。そして、最新のオドメトリが取得されるのを待機しステップS105、最新のオドメトリが取得されると、出力部16は、次のような処理を実行するステップS106。すなわち、出力部16は、下記の式3のように、内部状態量zに最新のオドメトリodoと今回の推定に用いられたオドメトリE_odoとの差分を足し合わせることによってフィルタリング結果fを算出して経路計画部7へ出力する。その後、上記のステップS102の処理に戻り、位置姿勢出力装置10は、ロボット1の電源がOFF状態になるまで、上記のステップS102~ステップS106までの処理を繰り返し実行する。2算出処理図7は、実施例1に係る算出処理の手順を示すフローチャートである。この算出処理は、ロボット1の管理者によって定数ωの算出が指示された場合等に処理が起動する。図7に示すように、算出部15は、算出対象とする定数ωを1とし、自乗和Sの1回前の計算結果S_preを0とするパラメータの初期化を実行するステップS301。その後、算出部15は、ロボット1の位置姿勢の出力結果のログを取得するステップS302。そして、算出部15は、ログ取得したロボット1の位置の推移、すなわち位置の点列に含まれる位置と、予め計画された移動軌跡のうち最も近い位置との距離の自乗和Sを計算するステップS303。続いて、算出部15は、自乗和Sの1回前の計算結果S_preがゼロでなく、かつ今回計算した自乗和Sが1回前の計算結果S_preよりも大きいか否かを判定するステップS304。なお、自乗和Sの計算が始めて実行された場合には、パラメータの初期化によって1回前の計算結果S_preが0に設定されている。このとき、自乗和Sの1回前の計算結果S_preがゼロであるか、もしくは今回計算した自乗和Sが1回前の計算結果S_pre以下である場合ステップS304否定には、次のような処理を実行するステップS305。すなわち、算出部15は、定数ωをω/2に変更するとともに1回前の計算結果S_preを今回計算したSに変更する。その上で、算出部15は、変更後の定数ωを用いて出力された位置姿勢のログを改めて取得しステップS302、自乗和Sを再び計算するステップS303。その後、自乗和Sの1回前の計算結果S_preがゼロでなく、かつ今回計算した自乗和Sが1回前の計算結果S_preよりも大きい場合ステップS304肯定には、算出部15は、次のような処理を実行する。すなわち、算出部15は、今回計算したωの2倍の2ωを定数ωとして決定しステップS306、処理を終了する。[実施例1の効果]上述してきたように、本実施例に係る位置姿勢出力装置10は、オドメトリの差分に基づく内部状態量zE_odoE_odoから今回の位置姿勢の推定結果Eへシフト値dsの分、シフトさせる内部状態量zの更新を実行する。これによって、位置姿勢の推定結果がばらつくという弱点をオドメトリの差分によって補完することができる結果、内部状態量zを実際の位置姿勢と近い値に保つことができる。また、本実施例に係る位置姿勢出力装置10は、オドメトリの差分odoE_odoを用いてフィルタリング結果を算出することにより、位置姿勢の推定結果が入力されずともロボット1の位置姿勢を導出できる。このため、位置姿勢の推定結果が入力されるのを待機せずに、位置姿勢の推定結果が入力されるよりも短い周期、すなわちオドメトリが入力される周期でフィルタリング結果を出力できる。したがって、本実施例に係る位置姿勢出力装置10によれば、ロボット1の正確な位置および姿勢を時間遅れなく出力することが可能になる。ここで、本実施例に係る位置姿勢出力装置10を用いた実験結果を引用して位置姿勢の精度を検証する。図8及び図9は、位置姿勢の推定結果とフィルタリング結果に関する実験結果の一例を示す図である。このうち、図8の例では、ロボット1をY軸と平行に直線移動させた場合の実験結果を示す。また、図9の例では、ロボット1をX軸と平行に直線移動させた場合の実験結果を示す。なお、図8及び図9のグラフでは、点線が推定部5による位置姿勢の推定結果を示し、実線が出力部16によるフィルタリング結果を示す。図8及び図9に示すように、推定部5によって推定された位置姿勢の推定結果の位置は、数十cmのオーダーでばらついている。その一方で、出力部16によって出力されたフィルタリング結果の位置のばらつきは十cm程度である。このため、推定部5によって推定された位置姿勢の推定結果よりも出力部16によって出力されたフィルタリング結果の方がロボット1の実際の挙動に近いことがわかる。それゆえ、本実施例に係る位置姿勢出力装置10がロボット1の正確な位置および姿勢を出力できることが検証できたと言える。さらに、図10を用いて、時間遅れの低減について検証する。図10は、位置姿勢の推定結果、内部状態量およびフィルタリング結果のX座標値の一例を示す図である。この図10の例では、ロボット1をX座標値が増加するように移動物体を移動させた場合を想定する。図10に示すブラフの横軸は、ロボット1が移動を開始してからの経過時間を示し、縦軸は、位置姿勢の推定結果、内部状態量およびフィルタリング結果のX座標値を示す。なお、図10に示すグラフでは、点線が推定部5による位置姿勢の推定結果を示し、実線が出力部16によるフィルタリング結果を示し、一点鎖線が内部状態量を示す。図10に示すように、位置姿勢の推定結果のX座標値のばらつきに対し、内部状態量のばらつきは小さい。また、フィルタリング結果は、最新のオドメトリを反映した値となっているので、内部状態量のX座標値よりもX座標値が大きい。さらに、内部状態量が長い周期、本例では約300msで更新されているのに対し、フィルタリング結果は短い周期、本例では約50msで更新されている。このように、出力部16によって出力されたフィルタリング結果は、X座標値のばらつきが小さく、さらに、フィルタリング結果が出力された時点とロボット1がその位置に所在した時点とのライムラグも小さいことがわかる。それゆえ、本実施例に係る位置姿勢出力装置10がロボット1の位置および姿勢を時間遅れなく出力できることが検証できたと言える。さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。[内部状態量の更新契機]上記の実施例1では、第2の取得部12によって位置姿勢の推定結果が取得される周期で内部状態量zを更新する場合を説明したが、開示の装置は先の例に限定されない。他の一例としては、第1の取得部11によってオドメトリが取得される周期で更新する内部状態量z’を新たに使用することもできる。これによって、フィルタリング結果が前回に得られたフィルタリング結果との間で極端に大きな変化をとる場合に、フィルタリング結果を時間的に滑らかに変化させることができる。なお、内部状態量z’のデータ型についても、内部状態量zと同様に、浮動小数点型のx座標位置m、y座標位置m、姿勢θradを含んで構成されるものとする。これを説明すると、開示の装置は、上記の実施例1と同様に、第2の取得部12によって位置姿勢の推定結果が取得され場合に、内部状態量zを更新する。このとき、開示の装置は、上記の式1および式2の代わりに、下記の式4及び式5を用いて、シフト値dsの値を更新するとともに、内部状態量zを更新する。なお、下記の式に示すNは、位置姿勢の推定結果の平均入力周期をオドメトリの平均入力周期で除算した値を指す。また、下記の式に示すnは、最新のオドメトリが入ってくるときに1つインクリメントさせるカウンタであり、dsの値を更新した後で0にリセットされる。また、下記の式に示すdsは、上記の実施例1におけるシフト値dsに対応する。図11は、内部状態量の更新方法の応用例を示す図である。図11に示すように、オドメトリの入力周期と位置姿勢の推定結果の入力周期が一定であると仮定した場合には、オドメトリが入力されるタイミングでdsNずつ内部状態量zを内部状態量zへ近づける方式を採用することができる。なぜなら、オドメトリが入力されるステップを1ステップとしたとき、Nステップ後には内部状態量z’が内部状態量zにdsだけ近付くからである。ところが、オドメトリの入力周期と位置姿勢の推定結果の入力周期が必ずしも一定であるとは限らない。この場合には、開示の装置は、位置姿勢の推定結果が入力された時点からオドメトリの入力回数を数えるカウンタnを用意することで内部状態量z’の更新の過不足を補正する。これを説明すると、開示の装置は、位置姿勢の推定結果が入力される間隔に比べ、オドメトリの入力回数が多いか否か、すなわちカウンタnの値がN以上であるか否かを判定する。図12及び図13は、オドメトリおよび位置姿勢の推定結果が入力される周期の一例を示す図である。これら図12及び図13の例では、位置姿勢の推定結果の平均入力周期を300ms、オドメトリの平均入力周期を50msと仮定し、Nを6としている。このとき、nの値がN以上である場合には、図12に示すように、位置姿勢の推定結果が入力される間隔に比べ、オドメトリの入力回数が多いと推定できる。この場合には、開示の装置は、内部状態量z’がdsだけ内部状態量zに近付いたとみなし、下記の式6用いて、内部状態量z’を更新する。この式6を適用した場合には、内部状態量z’の更新時にdsNが足し合わせられないので、dsNの項を足しすぎるのを防止できる。一方、nの値がN未満である場合には、図13に示すように、位置姿勢の推定結果が入力される間隔に比べ、オドメトリの入力回数が少ないと推定できる。この場合には、開示の装置は、下記の式7を適用し、内部状態量z’を内部状態量zに近づける。なお、図13の例のように、位置姿勢の推定結果の入力間隔に比べ、オドメトリの入力回数が小さい場合に対応するために、dsの値を計算する際には上記の式4の第二項dsNを加える。このように内部状態量zおよび内部状態量zを更新しつつ、開示の装置は、最新のオドメトリが入力されると、下記の式8を用いて、フィルタリング結果を算出する。すなわち、開示の装置は、下記の式8を用いて、前回にフィルタリング結果として出力した内部状態量zに最新のオドメトリとその1つ前のオドメトリの差分odoodoを足し合わせる。これによって、開示の装置は、最新のオドメトリの入力に対応して出力する今回のフィルタリング結果を算出する。図14は、応用例に係る出力処理の手順を示すフローチャートである。この出力処理は、上記の実施例1に示した出力処理と同様に、ロボット1の電源が作動した場合に起動する処理であり、電源がOFF状態になるまで繰り返し実行される。図14に示すように、開示の装置は、内部状態量zおよび内部状態量z’の初期の位置姿勢xyθとして000を設定するステップS501。続いて、開示の装置は、シフト値dsに初期値{000}を設定するステップS502。そして、位置姿勢の推定結果が取得された場合ステップS503肯定には、開示の装置は、上記の式4を用いて、シフト値dsを更新するステップS504。さらに、開示の装置は、上記の式5を用いて、内部状態量zを更新しステップS505、最新のオドメトリが取得されるのを待機するステップS506。なお、シフト値dsおよび内部状態量zの更新後には、カウンタnが0に初期化される。一方、位置姿勢の推定結果が取得されていない場合ステップS503否定には、ステップS504及びステップSステップS505の処理を実行せずに、下記のステップS506の処理に移行する。ここで、開示の装置は、カウンタnの値がN以上であるか否かを判定するステップS507。このとき、nの値がN未満である場合ステップS507否定には、位置姿勢の推定結果が入力される間隔に比べ、オドメトリの入力回数が少ないと推定できる。この場合には、開示の装置は、下記の式7を適用し、内部状態量z’を内部状態量zに近づけステップS508、カウンタnをインクリメントしステップS509、上記のステップS503の処理に戻る。一方、nの値がN以上である場合ステップS507肯定には、位置姿勢の推定結果が入力される間隔に比べ、オドメトリの入力回数が多いと推定できる。この場合には、開示の装置は、内部状態量z’がdsだけ内部状態量zに近付いたとみなし、下記の式6用いて、内部状態量z’を更新しステップS510、上記のステップS503の処理に戻る。このように、図14に示した出力処理を実行することによって、フィルタリング結果が前回に得られたフィルタリング結果との間で極端に大きな変化をとる場合に、フィルタリング結果を時間的に滑らかに変化させることができる。[分散および統合]また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散統合して構成することができる。例えば、センサ5a、計算部3、推定部5、経路計画部7または移動制御部9をロボット1の外部装置としてネットワーク経由で接続するようにしてもよい。また、センサ5a、計算部3、推定部5、経路計画部7または移動制御部9を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記のロボット1の機能を実現するようにしてもよい。[位置姿勢出力プログラム]また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図15を用いて、上記の実施例と同様の機能を有する位置姿勢出力プログラムを実行するコンピュータの一例について説明する。図15は、実施例1及び実施例2に係る位置姿勢出力プログラムを実行するコンピュータの一例について説明するための図である。図15に示すように、コンピュータ100は、操作部110aと、スピーカ110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180と有する。これら110~180の各部はバス140を介して接続される。HDD170には、図15に示すように、上記の実施例1で示した第1の取得部11と、第2の取得部12と、更新部14と、算出部15と、出力部16と同様の機能を発揮する位置姿勢出力プログラム170aが予め記憶される。この位置姿勢出力プログラム170aについては、図2に示した各々の第1の取得部11、第2の取得部12、更新部14、算出部15及び出力部16の各構成要素と同様、適宜統合又は分離しても良い。すなわち、HDD170に格納される各データは、常に全てのデータがHDD170に格納される必要はなく、処理に必要なデータのみがHDD170に格納されれば良い。そして、CPU150が、位置姿勢出力プログラム170aをHDD170から読み出してRAM180に展開する。これによって、図15に示すように、位置姿勢出力プログラム170aは、位置姿勢出力プロセス180aとして機能する。この位置姿勢出力プロセス180aは、HDD170から読み出した各種データを適宜RAM180上の自身に割り当てられた領域に展開し、この展開した各種データに基づいて各種処理を実行する。なお、位置姿勢出力プロセス180aは、図2に示した第1の取得部11、第2の取得部12、更新部14、算出部15及び出力部16にて実行される処理、例えば図6、図7や図14に示す処理を含む。また、CPU150上で仮想的に実現される各処理部は、常に全ての処理部がCPU150上で動作する必要はなく、処理に必要な処理部のみが仮想的に実現されれば良い。なお、上記の位置姿勢出力プログラム170aについては、必ずしも最初からHDD170やROM160に記憶させておく必要はない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの可搬用の物理媒体に各プログラムを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ100がこれらから各プログラムを取得して実行するようにしてもよい。