空想犬猫記

※当日記では、犬も猫も空想も扱っておりません。(旧・エト記)

よなよな GARMIN (4) 〜 GPSBabel を使ってみる

ほぼ一年ぶりの GARMIN ねた。最近の感触では,MacOSX の環境でコマンドラインから geko などの GPS 機器と通信するには GPSBabel が最有力っぽい。私は今のところ,geko 201 のシリアルケーブルに I-O DATA の USB-RSA Q3 をかませて,USB で通信する方式をとっている*1。以下,参考のために手順を載せておく。

  1. gpsbabel のインストール。ただ使いたいだけであれば darwinports を使用してインストールするのが手っ取り早い*2
    % sudo port install gpsbabel
    
  2. ドライバをインストールした後に,変換アダプタを接続すると
    /dev/cu.I-O DATA USB-RSAQ3      /dev/tty.I-O DATA USB-RSAQ3
    という 2 つのデバイスファイルが作成される。
  3. FAQ らしいのだが,通信には tty ではなく cu のデバイスを使用しないと動かない。詳しい所は未調査。
    % gpsbabel -t -D 9 -i garmin -f /dev/cu.I-O\ DATA\ USB-RSAQ3 -o gpx -F ~/Desktop/geko_track.xml
    みたいな感じ。-t オプションは軌跡を書き出すオプション。その他にも -w(waypoint)や -r(route)などがある。 -o オプションで出力するファイルフォーマットを,-F オプションでファイル名を指定する。

gpsbabel のウリは,GPS 機器との通信だけではなく,その名が示唆するように,あらゆる GPS 機器のフォーマットを相互に変換できるところにもある。というわけで,出力ファイル形式はほぼなんでもサポートしている。今回は扱いやすい XML 形式の gpx を選んだ。USB はどーなのか分からないが,USB 変換コネクタを経由したシリアル通信は,デバイスの初期化に失敗したり,パケットの読み込みに失敗したり,しょうしょう難があるようだ。今回,10000 点の track points を読み込んでみたが,途中何度もエラーが起こって,結局 10 回くらいトライしてようやく全て読み込めた。ちょっといじれば治りそうなので,原因を追及してみようと思う。ソースコードはかなりきれいで参考になる。GPL だし,これが私の決定版になりそうな予感*3
ここまでうまくいけば,後は Web 2.0 な人たちが楽しく料理してくれるんじゃないだろうか。たとえばこんな感じで。GPX と写真をアップロードすると,ファイルの作成日時から自動的に位置情報を更新して,google map 上に配置してくれる画像データベースを,誰か作ってくれないかなぁと期待しています。

*1:最近の機器だと直接 USB 接続が可能らしい

*2:私は hack りたかったので CVS から直接 co した。ソースからビルドする場合は,./configure した後に多少 Makefile をいじる必要があった。

*3:Google Earth で十分,という話もなきにしもあらず