gps-sdr-simを使ってUSRPを使用したGPSシミュレータを構築した

gps-sdr-sim

SDRの進化はとどまるところを知りません。
手軽に利用できることもあって、様々なアプリケーションが出ています。
中部大学 海老沼拓史先生がリリースしているSDRを使用したGPSシミュレータ「gps-sdr-sim」は、世界中の各方面で話題をさらっている一品です。
(海老沼先生は覚えてらっしゃらないと思いますが、東京大学時代に一度研究室にお伺いしたことがあります。)

こちらのgithubで公開されています
C言語で実装されていて、USRPやBladeRFなどからGPS信号を送信できます。
u-blox GPSモジュールで見てみるとちゃんと衛星を補足し、ユーザの動きにも対応できます。

このgps-sdr-sim。
とても便利なのですが、gps-sdr-sim自体の機能は「パラメータに従いGPS信号が含まれたIQバイナリファイルを生成する」ソフトです。gps-sdr-simでIQファイルを生成して、それを送信ソフトなどでSDRデバイスで送信します。
USRPだったらUHDで送信します。
事前にファイルを生成しなければならないので、時間と手間とディスクスペースが必要です。
リアルタイムにGPS信号を生成するbladeGPSもありますが、送信先デバイスがbladeRFにしか対応していません。

USRPでリアルタイム送信できるように移植

そこでUSRPからリアルタイムに送信できるようにLabVIEWに移植しました。
gps-sdr-simのGPS信号を生成する部分をDLL化し、パラメータを与える部分とUI、USRP送信部分をLabVIEWで実装しました。
(bladeGPSをベースにUSRPにも対応できるように移植する選択肢もありましたが、今回は習作と言うことで・・・)

USRPとGPS間は、60dB ATTを間に追加してSMAケーブルで接続する。
u-bloxとPCをUSBシリアルケーブルで接続。

image

こちらがLabVIEWで作成したUI。以下のように、gps-sdr-simと同じパラメータで同じように動作します。
ユーザーモーションも同じように動作します。

clip_image001[4]


USRPから送信した信号を受けているGPSの様子。
ちゃんと衛星を捕捉しています。

clip_image001[6]


LabVIEWならNI GPSツールキットを使用することでGPS信号を生成することも出来ますが、サポートが必要なかったりライセンス料なしで手軽に実行したい場合はgps-sdr-simの方が便利ですね。

このようなときに使える

無線システムの中にはGPS信号が必要なシステムがありますが、屋内で実験する場合に動作しない場合があります。
このようなときにはUSRPやUSRP-RIO、NI VSTなどで簡単にGPS信号が出せるので便利です。
ドルフィンシステムでもGPS信号に同期した収録システムなどを構築する場合がよくありますので、このようなときに活用していきたいと思います。

USRPやナショナルインスツルメンツ製品でGPSシミュレータを動作したい、などご興味のある方は、ドルフィンシステムのメンバーに問い合わせをして頂くか、こちらのフォームからお問い合わせください。

以上

ドルフィンシステムでは、空いている時間を利用して新しいSDR活用方法や新製品開発など、様々な実験に取り組んでいます。
ドルフィンシステムに「取り組んでみて欲しい!」アイデアがありましたら、是非ご一報ください。

コメント