第8章 GPS機能
著者:梅谷 武
語句:ToposNote, GPS, 運動軌跡
ToposNoteはNMEAプロトコルでシリアル接続されたGPSと連動し、ナビゲーションを行なうことができる。ToposNoteにおけるGPSデータの取り扱いには線画として扱う方法と運動軌跡として扱う方法の二種類ある。後者は剛体の運動軌跡を表現するためのデータ構造の枠組みでGPSデータを扱うものである。
作成:2010-03-15
更新:2011-03-08
 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形式のログを保存したい場合は、config.iniに次のような制御情報を書き加えてください。
[OpenGL]
Version = 1
TexWidth = 4096
TexHeight = 2048
[Cache]
DEM50 = 25
Map25000 = 9
Map200000 = 9
Topograph50 = 4
[Log]
NMEA = 1 NMEA形式ログ出力:1=ON/0=OFF
 ONの場合、ログは切断時あるいはプログラム終了時に、プログラム実行ディレクトリのLOG下に接続時の時刻を名前とする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軌跡が線画として表現されます。
動画8.5.1.2 線画としてのGPSデータ

(国土地理院発行1/25000地形図及び10mメッシュ標高データ使用)
 tnLoadObject()を使うと線の色や線幅を指定することが出来ます。
 物体が選択された状態で、GPX形式のGPS軌跡データファイルをToposNoteへドラッグ&ドロップすると、その物体の運動軌跡として設定されます。
動画8.5.2.2 運動軌跡としてのGPSデータ

(国土地理院発行1/25000地形図及び10mメッシュ標高データ使用)
 運動軌跡が付けられた物体は、アニメーション機能により運動させることができます。

アニメーションモード

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

ステップモード

 ステップモードでは、マウススクロールで運動軌跡を1ステップずつ前進・後退させることができます。このモードでは物体上部に時刻が表示されます。
Published by SANENSYA Co.,Ltd.