レースとレールと、車に乗って

アクセスカウンタ

zoom RSS GPSログから曲線半径を計算する(1)

<<   作成日時 : 2009/12/05 09:14   >>

トラックバック 0 / コメント 0

GPSログに記録されるデータには、進行方向というものがあります。速度と同様に2点間の測位座標から計算しているのだと思います。データは北を基準に時計周りに0〜360°という値になっています。

隣接点間の角度差をΔθ(deg)、速度をv(km/h)、曲線半径をR(m)とすると、1秒間隔でログが記録されている場合には
RΔθ=v*50/π
で曲線半径が計算できることになります。実際には速度は隣接点間を直線で結んだ長さから計算されているので、円弧長でなければならない右辺は過小評価にはなりますが、GPS測位誤差の範囲とみなせますので補正は特に考えません。

しかし、ログデータから機械的に計算しようとすると、おおむね北に向かって走る場合には進行方向が0°強と360°弱の間でふらつくことになるので角度変化がまともに計算できません。と言って、機械的に北を0°として-180〜180°になるように変換すると、今度は南に向かう場合に同じ不都合が生じる。ということで南に向かう場合にも問題が無いようにエクセルのマクロを修正しました。

プログラムの方針は

・180〜360度の間は360度を引いて、南から時計周りに-180〜180度に変換する
・一つ前の進行方向と現在の進行方向の積が負になる場合が進行方向が南北軸をまたがる移動になる。
・一つ前の進行方向と現在の進行方向の絶対値の和を取り、180以上になる場合を南に向かっていると判断する。
・進行方向が南東よりから南西よりに変る場合は360度を足し、南西よりから南東よりに変る場合は360度を引く。

としています。ぐるぐる回っていると、角度が-∞〜∞になります。

以前取ったソニック40号の大分→博多の進行方向のデータの例です。線が水平な場所が直線、傾いているところが曲線です。

画像


おおむね北西方向に向かうので0°を中心にマイナス側で推移していますが、国東半島の付け根付近では北東方向に走っています。元の0〜360°データだとここが途切れるわけです。130km付近でデータがぶっ飛んでいるのは小倉駅で進行方向が変わる為です。本来ならば-100°あたりになるはずですが、上に書いた処理の為に180°を越えています。


なお、時々グラフが切れているのは、停止時にはGPSの測位誤差の影響が大きくなって、進行方向角度がランダムにばらつくので、ある速度(この場合は20km/h)以下のデータはプロットしていないためです。

テーマ

関連テーマ 一覧


月別リンク

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
GPSログから曲線半径を計算する(1) レースとレールと、車に乗って/BIGLOBEウェブリブログ
文字サイズ:       閉じる