Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

GPSモジュールの測定周期を10Hzに変更できたが gpsdを起動すると1Hzに戻される

引き続きGPSの測定周期を10Hz化しようとしています。
とりあえずシリアル通信で10Hz化することはできました。

以下のようなコマンドでGPSの10Hz化とシリアル通信速度の115200bps化ができます。USBでGPSモジュールを接続している場合はttyS0をttyUSB0等に置き換えます。
なお、PMTKコマンドについて詳しくはこちら等に書いてあります。チェックサムは計算してくれるサイトがあるので、そこで算出できます。

$ echo -e "\$PMTK220,100*2F\r\n" > /dev/ttyS0
$ echo -e "\$PMTK300,100,0,0,0,0*2C\r\n" > /dev/ttyS0
$ echo -e "\$PMTK251,115200*1F\r\n" > /dev/ttyS0

本体側の通信速度も115200bps化します。

$ stty -F /dev/ttyS0 115200

上記を/etc/rc.localに記載すると起動時に自動で10Hzで立ち上げることができます。

$ cat /dev/ttyS0

とすると、0.1秒周期で位置情報がだーっと流れるのを見ることができます。プログラムからは標準ストリームとして開けば良いでしょう。

ここまでは良いのですが、ntp同期なども考えてgpsdを起動したところ、周期が1Hzに戻ってしまいました。下記コマンドで5Hzに再設定できましたが、10Hzには設定できません。

$ gpsctl -c 0.2

現在drivers.cにおいて5Hz以上をはじく処理を見つけておりますが、良い感じに修正できるか検討中です。
また、できればgpsdの起動時に10Hzで起動したいところです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
3
Help us understand the problem. What are the problem?