8章 GPS機能
著者:梅谷 武
語句:ToposNote, GPS, NMEA, GPX, 運動軌跡, アニメーション
ToposNoteはNMEAプロトコルでシリアル接続されたGPSと連動し、ナビゲーションを行なうことができる。ToposNoteにおけるGPSデータの取り扱いには線画として扱う方法と運動軌跡として扱う方法の二種類ある。後者は剛体の運動軌跡を表現するためのデータ構造の枠組みでGPSデータを扱うものである。
作成:2010-03-15
更新:2011-05-17
 ToposNoteはNMEAプロトコルでシリアル接続されたGPSとの通信機能を持っています。GPSとの接続は次の手順で行なってください。
 まず利用するGPSのマニュアルに説明されている手順により、PC本体にGPSを接続してください。GPSをシリアル接続するには次の三つの形態が考えられます。
  1. シリアルケーブルによりシリアルポートに接続する。
  2. USBケーブルによりUSBポートに接続し、シリアルUSB変換ドライバを使う。
  3. Bluetoothにより無線で接続する。
いずれの場合においても、[コントロールパネル]→[デバイスマネージャ]で接続されたポート番号を確認することができます。このポート番号と各デバイスに固有なボーレートを事前に確認してください。
 ToposNoteを起動し、[メニュー]→[場所]→[GPS]でGPSモニタダイアログが表示されます。
 この状態で通信ポートとボーレートを設定し、[接続]ボタンを押すと接続を試みます。接続できない場合は、接続エラーを示すメッセージボックスが表示されます。接続された場合は、GPSモニタの表示が次のように更新されます。
 衛星受信状態図において天空内の○は各GPS衛星の位置(方位・仰角)を表し、その中の数字は衛星番号、右下の数字はSN比を意味しています。○の色は、赤が無効、青が有効、緑が補正衛星を意味しています。
 接続状態において、GPS測位が有効になった時点(GGA受信により判断)でToposNoteと連動します。すなわち、測位により得られた緯度・経度・高度とカーソル位置が連動します。受信条件が悪化し、GPS測位が無効になった時点(GGA受信により判断)で連動は解除されます。
 接続状態において[閉じる]ボタンを押すとGPSモニタダイアログが閉じますが、 接続は維持されます。接続状態において[切断]ボタンを押すと接続が切られます。
 [データ初期化]ボタンは、接続状態の場合はデータ領域を初期化して、表示を更新し、切断状態の場合は表示をクリアします。
 接続と切断は何度でも繰り返すことができ、複数のGPSを切り替えながら使うこともできますが、一度に接続できるGPSは1台だけです。
 接続時にエラーが発生した場合、次のようなエラーダイアログが出ます。
 GPSの回線が正しく接続されている場合においても、通信ポートがエラー状態であればこの接続エラーが出ますが、このダイアログが出た時点で通信ポートのエラーがクリアされますので、再度[接続]ボタンを押せば接続されます。
 デバイスマネージャー等でGPSが正しく接続されていることが確認できていて、さらにポート番号とボーレートの選択も正しいときに接続エラーが出た場合は、2、3回リトライしてください。
  • Holux M-241 (Bluetooth, 4800bps)
ポート番号 1~49
ボーレート 1200~115200
処理構文 GGA, GSA, GSV, RMC
 1秒毎に受信データの状態変化を調べ、以下の対応する部分を更新する。
GGA 緯度・経度・標高・測位状態
GSA 測位モード
GSV 衛星状態
RMC 日時
 GPSが接続された状態で、5秒毎に測位状態を調べ測位可能状態であればカーソル座標をGPSの現在位置に設定し、メモリ上に位置・時刻情報を保存する。
 ToposNoteはGPSデータの標準の入出力形式として、GPX形式を採用しています。GPSが接続され、正しく測位できている状態では、5秒毎の軌跡がGPX形式で記録され、画面上に紫色の線画として表示されます。この軌跡は切断時あるいはプログラム終了時に、プログラム実行ディレクトリのLOG下に接続時の時刻を名前とするGPX形式ファイルとして保存されます。
 GPSが出力するNMEA形式のログを保存したい場合は、GPSモニタダイアログの左下にあるNMEAログチェックボックスをチェックしてください。この状態で接続した場合、ログは切断時あるいはプログラム終了時に、プログラム実行ディレクトリのLOG下に接続時の時刻を名前とするNMEA形式ファイルとして保存されます。
 プログラムは接続時にのみ、このチェックボックスを反映させますので、接続状態でチェックしてもNMEA形式ログは作成されません。接続する前にチェックするようにしてください。
 運動軌跡は、物体座標系で定義された剛体の運動を世界座標系から見た物体座標系の位置・姿勢・時刻データ列として表現するものです。ある時刻のデータは
中心座標 (Cx, Cy, Cz):世界座標系における座標
姿勢 (Yaw, Pitch, Roll):世界座標系におけるオイラー角[度]
時刻 t:1985年1月1日0時0分0秒からのミリ秒数(0はデータ無効の意味)
という7つの実数値の組で表現されます。但し、この時刻表現の換算においてはうるう秒が考慮されていませんので注意してください。
 ToposNoteにおいては任意のトポスオブジェクトに対して次のようにして、運動軌跡を設定することができます。
算譜8.4.3 運動軌跡の設定
tnLoadObject( "a001", "obj/cone.obj",
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
1.0
)
tnSetTrajectory( "a001", 21, {
0.00, 0.00, 0.00, 0.0,  0.0, 0.0, 0.0,
0.05, 0.05, 0.05, 0.0,  1.0, 0.0, 0.0,
0.10, 0.10, 0.10, 0.0,  2.0, 0.0, 0.0,
0.15, 0.15, 0.15, 0.0,  3.0, 0.0, 0.0,
0.20, 0.20, 0.20, 0.0,  4.0, 0.0, 0.0,
0.25, 0.25, 0.25, 0.0,  5.0, 0.0, 0.0,
0.30, 0.30, 0.30, 0.0,  6.0, 0.0, 0.0,
0.35, 0.35, 0.35, 0.0,  7.0, 0.0, 0.0,
0.40, 0.40, 0.40, 0.0,  8.0, 0.0, 0.0,
0.45, 0.45, 0.45, 0.0,  9.0, 0.0, 0.0,
0.50, 0.50, 0.50, 0.0, 11.0, 0.0, 0.0,
0.55, 0.55, 0.55, 0.0, 12.0, 0.0, 0.0,
0.60, 0.60, 0.60, 0.0, 13.0, 0.0, 0.0,
0.65, 0.65, 0.65, 0.0, 14.0, 0.0, 0.0,
0.70, 0.70, 0.70, 0.0, 15.0, 0.0, 0.0,
0.75, 0.75, 0.75, 0.0, 16.0, 0.0, 0.0,
0.80, 0.80, 0.80, 0.0, 17.0, 0.0, 0.0,
0.85, 0.85, 0.85, 0.0, 18.0, 0.0, 0.0,
0.90, 0.90, 0.90, 0.0, 19.0, 0.0, 0.0,
0.95, 0.95, 0.95, 0.0, 20.0, 0.0, 0.0,
1.00, 1.00, 1.00, 0.0, 21.0, 0.0, 0.0,
} )
 物体が選択されていない状態で、GPX形式のGPS軌跡データファイルをToposNoteへドラッグ&ドロップすると、GPS軌跡が線画として表現され、さらにカーソルの運動軌跡として設定されます。
 GPS軌跡データファイルを複数ドラッグ&ドロップした場合、各GPS軌跡に対応する線画が図形オブジェクトとして連想際列に登録されますが、カーソルは唯一つしかありませんから、最後にドラッグ&ドロップしたGPS軌跡がカーソルの運動軌跡として設定されます。
 tnLoadObject()を使うと線の色や線幅を指定することが出来ます。

(国土地理院発行1/25000地形図及び10mメッシュ使用。利用規約より一部隠蔽)
 物体が選択された状態で、GPX形式のGPS軌跡データファイルをToposNoteへドラッグ&ドロップすると、その物体の運動軌跡として設定されます。

(国土地理院発行1/25000地形図及び10mメッシュ使用。利用規約より一部隠蔽)
 運動軌跡が付けられたカーソルあるいは物体は、アニメーション機能により運動させることができます。

静止モード

 通常の状態です。

ステップモード

 ステップモードでは、マウススクロールで運動軌跡を1ステップずつ前進・後退させることができます。このモードでは下部中央に日時が表示されます。

アニメーションモード

 アニメーションモードにおいては、運動軌跡の最初のデータから最後のデータまで、50msec単位で動かし、データがなくなると最初に戻り、これを無限に繰り返します。

倍速指定

 1倍速では時刻データと同じ時間間隔で再生します。早送りしたいときに倍速指定します。
Published by SANENSYA Co.,Ltd.