aptpod Tech Blog

株式会社アプトポッドのテクノロジーブログです

超小型受信端末を活用した高精度位置情報測位サービス「Mobile GNSS」をintdash Edge Agent2 に接続して、試してみた

はじめに

aptpod Advent Calendar 2023 12月4日の記事です。

パートナー&サポート推進Grの松下です。弊社では、様々なパートナー様との連携を強化し、新規事業創出・支援を行っています。

弊社のパートナーシップに関するニュースはこちら

先日、パートナーのNTTコミュニケーションズ株式会社様より、超小型受信端末を活用した高精度位置情報測位サービス「Mobile GNSS」の提供がアナウンスされました。

NTTコミュニケーションズ様のプレスリリースはこちら

今回、この Mobile GNSS を実際にintdashにつなぐ事でレビューしたいと思います。

Mobile GNSS

こちらのサービスは、超小型のGNSS受信端末、通信サービス、GNSS位置補正情報サービスをワンパッケージで提供しています。これにより、従来のGNSS受信端末の使用開始時と比べ、煩雑な設定を必要とせず、すぐに利用開始することができます。

プレスリリースからポイントをまとめると、RTK測位を用いたcm級の高精度な位置測位が、小型で軽量な端末で行える点にあります。

通常、RTK測位を行う場合は基準点(固定局)を設置する必要がありますが、国土地理院が提供する電子基準点に加えてドコモが独自で設置する基準点(固定局)が設置されているため、利用者はこの受信端末だけで、LTE(インターネット)経由でRTK測位に利用する補正情報を受け取る事ができます。(※ネットワークやオープンスカイ条件による) このRTK測位の恩恵を受けられる小型で軽量なGNSS受信端末はヘルメットなどにも装着可能です。

詳細な仕様に目を向けると、以下の機能を備えています:

  • GNSSチップには、高精度2周波に対応しているubloxのZED-F9Pを搭載
  • LTE-CAT Cat.1のモバイル通信に対応しており、eSIMも内蔵しているため、すぐに通信が可能です
  • LTEの代わりにWi-Fiで通信することで、モバイル通信環境が悪い環境にも対応できそうです
  • BluetoothのSPP (Serial Port Profile)に対応しているので、無線で位置情報等を取得できます
  • 電池を内蔵しており、USB Type-C または無線充電にも対応しています
  • 防塵防水にも対応しています(IPx6相当)

これほどの機能が、この小型筐体に収められていることには驚きますね!

この製品自体は端末単体で利用する事を想定しており、測定結果はクラウドを経由して、Webブラウザ上で位置情報を確認する事ができます。また、CSVやNMEA形式でのダウンロードも可能です。

Linux につないでみる

端末単体で利用する想定の製品ですが、USBケーブルで直接接続する事でより高精度なデータにアクセスできます。 実際に受信端末とWindow PCを接続して、 u-center 等のアプリケーションでより詳細な計測データにアクセスする事が可能です。

一方で、Aptpodのintdashで使われる Edge コンピュータは Linux を使用しています。デバイスドライバの仕様を見ると CDC-ACM 形式との事なので、デバイスドライバのインストール無しに接続できそうです。 試しに、 Raspbian OS に接続したところ、 /dev/ttyACM0 のシリアルデバイスとして認識されました。

[  801.743542] usb 1-1.2: new full-speed USB device number 7 using xhci_hcd
[  801.882330] usb 1-1.2: New USB device found, idVendor=0483, idProduct=5740, bcdDevice= 2.00
[  801.882349] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  801.882365] usb 1-1.2: Product: STM32 Virtual ComPort
[  801.882380] usb 1-1.2: Manufacturer: STMicroelectronics
[  801.882394] usb 1-1.2: SerialNumber: 205A336F3130
[  801.897274] cdc_acm 1-1.2:1.0: ttyACM0: USB ACM device

デバイスファイルの出力を確認すると、NMEA のデータが出力されています。

$ sudo cat /dev/ttyACM0 | head
$GNRMC,044500.30,A,3542.74010540,N,13954.78959519,E,000.0,000.0,301123,000.0,,R*77

$GNGGA,044500.30,3542.74010540,N,13954.78959519,E,4,12,1.0,0,M,1.0,M,1.3,0000*7E

$GNGSA,A,3,27,16,04,09,08,31,,,,,,,2.16,1.13,1.85,1*0E

$GNGSA,A,3,,,,,,,,,,,,,2.16,1.13,1.85,2*08

$GNGSA,A,3,24,26,,,,,,,,,,,2.16,1.13,1.85,3*0B

一般的なNMEAデバイスとして扱えそうなので、intdash Edge Agentに接続できそうです。

intdash に接続する

今回は、Raspbian OS上に intdash Edge Agent 2をインストールし、Mobile GNSS の位置情報をintdash Serverにアップロードしようと思います。

確認環境

  • Raspberry Pi 4B+
  • Raspbian GNU/Linux 10 (buster)
  • LTE通信は Green HouseのLTE USBドングル (GH-UDG-MCLTEC)
  • モバイルバッテリーで Raspberry Piに給電

インストールと設定

インストールはこちらの手順で簡単にできました。${DISTRIBUTION}debian を選択しています。

NMEAデータの送信は、こちらのレシピがそのまま使えました。ただし、デバイスパスは /dev/ttyACM0 に変更しています。

sudo intdash-agentctl config up --create '
    id: recoverable
  '

sudo intdash-agentctl config device-connector up --create '
    id: up-nmea
    data_name_prefix: v1/0/
    dest_ids:
      - recoverable
    format: iscp-v2-compat
    ipc:
      type: fifo
      path: /var/run/intdash/nmea.fifo
    launch:
      cmd: device-connector-intdash
      args:
      - --config
      - /etc/dc_conf/nmea.yml
      environment:
      - DC_NMEA_PACKET_SRC_CONF_PATH=/dev/ttyACM0
      - DC_NMEA_PACKET_SRC_CONF_BAUDRATE=57600
      - DC_PRINT_LOG_FILTER_CONF_TAG=nmea
      - DC_FILE_SINK_CONF_PATH=/var/run/intdash/nmea.fifo
'

検証

RTK測位を行うには、オープンエアな環境が必要です。今回は、江戸川の河川敷で実験してみました。

試験経路

位置情報の評価の場合、基準となる地点が無いと難しいのですが、今回の河川敷には排水溝が設置されていたので、この上を歩いてみました。

また、水飲み場があったので、その周りを円形に一周してみます。

最後に、垣根を越えて川沿いを歩くルートとします。

試験結果

Mobile GNSS単体での動作と、Raspberry Piに繋いで intdashサーバーに送った結果を紹介します。

Mobine GNSS 単体

まずは、Mobile GNSS が LTE Cat.1 を使ってサーバーに送信しているデータを、端末デモ・検証用として運用しているクラウドシステムで確認しました。

結果を見ると、捕捉状態が Fixed になっていることから、RTCM を受信して 正確な位置情報が得られている事がわかります。 また、排水溝の上を綺麗にトレースできている事がわかります。通常のGNSSチップだと結構位置がずれるのですが、これはなかなかいい結果です。

ただし、水飲み場を周りを一周した軌跡は綺麗な円形になっていません。これは、クラウドにアップロードされたデータのサンプリングレートが低く設定されている為です。

intdash と連携

次に、Raspberry Piの LTE ドングルを使って、intdsah サーバーに送信しているデータを、 Data Visualizer で位置情報を可視化した図がこちらになります。

位置情報は 100 ms (10 Hz) 周期で取れていました。 水飲み場のまわりを一周できている様子もトレースできています。

考察

実際に使ってみて、よかった点と、intdash と連携する場合の課題について考察します。

Good Point

  • RTKの基地局を用意せずに、RTK測位の恩恵を受けられます
  • 位置情報の取得周期も標準で10Hzという点も評価できます(他社製品だと、1Hzや、よくても5Hzが多い印象です)
  • 軽量・小型でUSB接続するだけで、面倒な設定も不要で、簡単に位置情報を取得できます

intdash 連携時の課題

  • 一般的なGNSS受信端末はUSB給電のものが多いのですが、本製品は電池を内蔵しているため、電源のON/OFFのためにスイッチを手動で押す必要があります。例えば人ではなく建築機器等に常設する場合は、運用等を考える必要がありそうです。
  • 防塵防水加工されていますが、これは単体利用での想定です。USB端子にキャップを付ける形になります。USB接続する場合はコネクタ部分の防水加工が追加で必要そうです。データ量が少なくても問題ないのであれば、Bluetoothを使った無線接続を検討したいところです。
  • 他の類似製品も同じですが、基本的に屋内では使えません。屋外でも、周辺に高いマンションやビルがある場合は、周辺環境の影響を受けRTK測位が難しいことがあります。基本的に、屋外での利用を前提とした製品となります。

まとめ

小型・軽量な端末で、簡単にRTK測位による高精度な位置情報を計測できるMobile GNSSは、単体でも十分な機能を提供する製品だと感じました。 更に話を発展させると、例えば制御情報(CAN等)や生体情報(心拍数等)と高精度な位置情報を同時に取りたい、といった要望になった場合は、intdashをデータハブにした方式も提案できそうだと感じました。