2009年10月24日土曜日

衛星の健康状態

高度約2万キロ上空を周回しているGPSの衛星.
現在31基の衛星が飛んでいる.

突発的な故障・保守などでその衛星が使えなくなる場合がある.
そんなときのための衛星の健康状態を示すデータがヘルス・アンヘルスと呼ばれる.

ヘルス・アンヘルス情報は
・エフェメリス(衛星の位置を知るための情報.まぁケプラーの方程式に代入するパラメータ)
・アルマナック(全衛星のおおよその位置を知るための情報)
に記載されている.

アルマナックは,subframe 4とsubframe 5のpage 25を見るとPRN 1~31の衛星のヘルス情報がわかるような仕組みになっている.

2009年10月21日水曜日

リングバッファ

唐突だけどリングバッファについてのメモ

固定長のリングバッファ(1周したら元のアドレスに戻る)を用意.
書き込みポインタと読み込みポインタを用意.

w_pointer,r_pointerとする.

可変長のデータをリングバッファに書き込む場合を考える.
w_pointerの示すアドレスからデータをバッファに入れる.
w_pointerをデータの末尾に移動する.
r_pointerをw_pointerに移動して読み取る.

このときデータが大きすぎてバッファオーバフローが発生してしまう場合がある.
w_pointerがリングを1周してr_pointerを追い越してしまった場合,そのデータを破棄し,w_pointer,r_pointerともに元の値に戻す.

以上.



2009年10月8日木曜日

度分表記から度表記へ

NMEA0183のGGAセンテンスが出力する緯度・経度は度分表記.

コーディングするときに度表記のほうが都合がよかったので変換方法を残しておく.
意外と忘れやすいので役に立つかも.

【例題】GGAが東経13521.47228(度分表記)を出力した.

135はそのまま.
21.47228を60で割る.
21.47228÷60 = 0.35787133333333333333333333333333・・・・

この答を135に足す.
135.35787133333333333333333333333・・・

以上.

2009年10月6日火曜日

2点間の近似距離計算

緯度,経度が既知である2点間の直線距離を近似計算で求める方法.

A(x0,y0),B(x1,y1)の2点間距離を求める.
x:経度,y:緯度とする.

【前提】
2点間の距離は地球の円周約4万kmに比べ十分に小さいこととする(メートルのオーダ).

【近似計算】
求める直線距離をL
地球の円周をR
経度方向の差をdx
緯度方向の差をdy
とおく.

ここで直線距離は地球の円周に比べ,十分に小さい.したがって,2点を通る経線を平行とみなすことができる.よって平面上の直線距離として求めることができる.同様に,地球を完全な球体とみなすことができる.

経度,緯度1度をメートルに換算するとR/360(m)となる.

経度方向の差をメートルに換算するとdx = R/360 * (x1-x0)
緯度方向の差をメートルに換算するとdy = R/360*(y1-y0)

ここで三平方の定理を利用

L=sqrt((dx*dx)+(dy*dy))

以上で2点間の近似直線距離を求めることができる.

2009年10月5日月曜日

とりあえず再開してみる

いつまで続くかわからないけれどとりあえずブログを再開してみる.

とりあえず
などなどを解説していこうと思います.


2008年11月10日月曜日

行きたかったけど

これ行きたかったけど
http://www.osgi-ufj.org/pdf/OSGi-UFJ_4th-WS-Program.pdf

研究会ともろかぶりだぜ!
http://www.ipsj.or.jp/09sig/kaikoku/2008/EMB10.html

2008年10月25日土曜日

To DO

  • CORBAが流行らなかった理由
  • 論文投稿 -> 郵送