MENU閉じる

HEXA BLOG

日記

HEXA BLOG日記2011.9.2

グローバル・ポジショニング・システム

暑い夏晴れがぶり返し扇風機だけでは辛くなってきました今日この頃。
ご無沙汰しておりますコンドウです。
今日辺りに関西にも上陸しそうな台風台風が気になっております。
本日はGPSについて紹介したいと思います。
ご存知、GPSとはGPS人工衛星からの情報を基に現在位置を割り出す
システムの事を指しますが、これは割と身近に存在していたりします。
私所有のGPSでは車(RV)カーナビ、ゲームPSP(GPSユニット)、携帯電話ケータイと結構持ってたりします。
GPSってどうやって現在地を求めているのかexclamation&question ちょっと気になりましたので雑学
蓄積がてら調べてみました。
地球上空20000km付近を飛んでいるGPS人工衛星は現在30個ほど存在し
約12時間で地球iモードを1周するゆっくりとした速度で周回してます。
(高度が高いのでゆっくりという訳ではないですが)
因みにスペースシャトル飛行機や国際宇宙ステーションが活動している高度は
400km程度で、約90分で地球1周というスピードダッシュ(走り出すさま)で飛んでいるそうです。
GPS衛星は自身の座標と超正確な時刻(原子時計時計)を電波雷で発信しています。
この情報を頼りに位置を計算します。
まずは受信した人工衛星と受信者との距離を測ります。距離の計測は
電波の進むスピードからどの位の時間時計で到達したかで調べる事が出来ます。
電波の速度は光速ひらめきと同じですので1秒間に299,792,458mです。
上空20000kmの距離でいうと
   20,000,000 ÷ 299,792,458 ≒ 0.0667秒
程度になります。これは上空真上に人工衛星があった場合の話で実際には
丸い地球の球面上を飛んでいるわけですから距離はもっと遠くなります。
距離をr(単位:m)、光速(単位:m/秒)をcとすると以下のような式になります。
   r = 受信者と衛星との時刻の差(単位:秒) * c
距離が分かれば、あとは位置を計算です。人工衛星の座標をX1,Y1,Z1、
受信者の座標をx,y,zとすると、
   r2 = (X1 – x)2 + (Y1 – y)2 + (Z1 – z)2
の関係が成り立ちます。(3Dゲームでもおなじみのピタゴラスの定理ですね)
この場合ですと、変数x,y,zは求まりませんので、他の人工衛星を少なくとも
あと2つ(合計3つ)探してきます。3つ見つかれば連立方程式でx,y,zの
答えを導き出せるという訳です。
しかしここで問題あせあせ(飛び散る汗)があります。
まずは受信者の時刻。人工衛星のような原子時計(30万年に1秒以下の誤差!)
を持っているわけでもなく普通のクォーツ時計時計だったりします。その為、
受信者の誤差を考慮した計算が必要となります。ここでは受信者の正確な
時刻との誤差をeとします。
   (r – c*e)2 = (X1 – x)2 + (Y1 – y)2 + (Z1 – z)2
となります。c*eは誤差時間で進む光の速度です。求める変数はx,y,zと
eの4つになりましたので少なくとも4つの人工衛星を見つける必要があります。
つまり、30個の人工衛星の内4つを見つけられれば位置が計測できると
いう訳ですexclamation×2
実際のGPS測定器は誤差が小さくなるよう違う計算方法で求めていますが、
位置を計算する概要はご理解いただけましたでしょうか。
GPSから位置を計算する方法は他にもあり、方法によって精度が変わって
くるようです。(高精度なものだと誤差1cm以下exclamation)
個人的にGPSロガーなるものを所有しておりまして約4cm x 1cm x 1cmの
サイズでGPSを定期的に受信phone to し、内部に位置を記憶しておき後日自宅家のPCで
データを吸い取りgoogleマップと連動させて移動経路を見るといったものです。
登山経路解析用やアウトドアグッズとして購入したのですが途中で色々な
使い道がある事に気づき、子供や嫁のかばんにこっそり入れて行動範囲目
調べるといった使い方ができるではないかexclamation&questionと思ったのですが
バレたら怖いので実行には移しておりません。(勿論、本当にはやりませんよexclamationわーい(嬉しい顔)

RECRUIT

大阪・東京共にスタッフを募集しています。
特にキャリア採用のプログラマー・アーティストに興味がある方は下のボタンをクリックしてください

RECRUIT SITE