1.3. 【拡張仕様】ペイロードフォーマット

時系列データポイントが格納するペイロードのフォーマットを定義します。 また、ペイロードの解釈方法を拡張するプラグインであるカスタムパーサーについて定義します。

1.3.1. データ型

各データバイナリには、ペイロードのフォーマットを示すデータ型が付与されます。 各データ型には、型を識別するための型名が割り当てられます。

1.3.1.1. 基本データ型

単一のデータを格納するデータ型です。

表 80 基本データ型

名称

型名

バイト長

説明

Bytes

bytes

可変

フォーマットなしバイナリ

String

string

可変

フォーマットなし文字列

Float64

float64

8

IEEE754 64ビット浮動小数点数

Int64

int64

8

符号付き 64ビット整数

Bool

bool

1

真偽値

Float64 Array

float64_array

可変

浮動小数点数配列

Int64 Array

int64_array

可変

整数配列

2D Vector

vector_2d

固定

2次元ベクトル

3D Vector

vector_3d

固定

3次元ベクトル

4D Vector

vector_4d

固定

4次元ベクトル

1.3.1.2. フォーマット付き文字列型

フォーマット付きの文字列データを格納するデータ型です。

表 81 フォーマット付き文字列型

名称

型名

バイト長

説明

JSON

string/json

可変

JSON フォーマット

CSV

string/csv

可変

CSV フォーマット

NMEA

string/nmea

可変

NMEA 0183 フォーマット

1.3.1.3. フォーマット付きバイナリ型

フォーマット付きのバイナリデータを格納するデータ型です。

表 82 フォーマット付きバイナリ型

名称

型名

バイト長

説明

BSON

bson

可変

BSON フォーマット

CBOR

cbor

可変

CBOR フォーマット

MessagePack

msgpack

可変

MessagePack フォーマット

ROS Topic

msgpack/ros_topic

可変

MessagePack フォーマット で格納されたROSトピック

1.3.1.4. メディアデータ型

映像や音声などのメディアデータを格納するデータ型です。

表 83 メディアデータ型

名称

型名

バイト長

説明

JPEG

jpeg

可変

JPEG(JFIF)形式の画像データ

H.264 Frame

h264_frame

可変

H.264/AVC バイトストリーム(Annex B 形式)の映像フレームデータ

H.265 Frame

h265_frame

可変

H.265/HEVC バイトストリーム(Annex B 形式)の映像フレームデータ

IVF Frame

ivf_frame

可変

IVFコンテナに格納した VP8, VP9, AV1 などの映像フレームデータ

H.264 NAL Unit

h264_nal_unit

可変

H.264/AVC NAL Unit を格納したデータ

PCM

pcm

可変

PCM(WAVE) 形式の音声データ

AAC

aac

可変

AAC(ADTS) 形式の音声データ

Opus

opus

可変

Opus 形式の音声データ

H.264 Byte Stream

h264_annex_b

可変

H.264/AVC バイトストリーム(Annex B 形式)の映像データ(非推奨)

H.265 Byte Stream

h265_annex_b

可変

H.265/HEVC バイトストリーム(Annex B 形式)の映像データ(非推奨)

IVF

ivf

可変

IVFコンテナに格納した VP8, VP9, AV1 などの映像データ(非推奨)

1.3.1.5. 産業プロトコル型

各種産業プロトコルのデータを格納するデータ型です。

表 84 フォーマット付きバイナリ型

名称

型名

バイト長

説明

CAN Frame

can_frame

可変

CAN フレーム フォーマット

MAVLink1 Packet

mavlink1_packet

可変

MAVLink1 パケット フォーマット

1.3.2. データ抽出

フォーマット付き文字列型やフォーマット付きバイナリ型などのフォーマット付きデータでは、 ある所定のフォーマットに則ってペイロードに複数のデータが格納されている場合があります。 このような場合に、ペイロードからデータを抽出する方法を定義します。

フォーマット付きデータのパースが必要な場合は、エクストラクタによりデータの抽出処理を行います。 抽出後のデータも、いずれかのデータ型のデータポイントに格納されます。

1.3.2.1. エクストラクタによるデータポイントの変換処理

1.3.2.1.1. エクストラクタが持つ設定情報

  • 抽出対象とするデータの送信元ノードを表すノードID

  • 抽出対象とするデータを表すデータID

  • 抽出後のデータポイントに付与するデータの名称

  • 抽出に使用するエクストラクタを表す処理コード

  • 抽出に使用するエクストラクタが必要とするオプション情報

1.3.2.1.2. エクストラクタによる変換処理の流れ

エクストラクタによる時系列データポイントの変換処理は、以下の手順で行われます。

  • データポイントの送信元ノード、データIDをもとに、変換対象のデータポイントを選出する

  • 処理コードに対応するエクストラクタとオフション情報を使用して、変換対象となったデータポイントのペイロードからデータを抽出する

  • 抽出されたデータと、設定情報により指定されたデータの名称を使用して、新たなデータポイントを生成する(このとき、ペイロードとデータID以外は元のデータポイントの情報を継承する)

  • 新たに生成されたデータポイントを変換後のデータポイントとする

1.3.2.2. エクストラクタの種類

表 85 エクストラクタ

名称

処理コード

説明

CAN Data Field Parser

can_data_field

CAN データフィールドのフォーマットに従って、値データを抽出します

BSON Parser

bson

BSON フォーマットのバイト列からフィールドを抽出します

CBOR Parser

cbor

TODO: CBOR フォーマットのバイト列からフィールドを抽出します

JSON Parser

json

JSON フォーマットの文字列からフィールドを抽出します

CSV Parser

csv

CSV フォーマットの文字列からフィールドを抽出します

Float64 Array Parser

float64_array

浮動小数点数配列から1つの値を抽出します

Int64 Array Parser

int64_array

整数配列から1つの値を抽出します

1.3.3. データ格納ガイドライン

9軸センサー値やGNSSによる位置座標など、様々なアプリケーションで共通して使用される値を格納する際には、 以下のガイドラインに従うことを推奨します。

1.3.3.1. 位置、速度、加速度

加速度センサー値などを格納する場合に使用します。

なお、座標系は左手系の使用を推奨します。 スマートフォンに対してローカル座標を設定する場合は、 画面に正対して右方向をX座標の正方向、 上方向をY座標の正方向、 手前方向をZ座標の正方向とすることを推奨します。

推奨データ型

3D Vector

データの格納方法
  • X=X成分

  • Y=Y成分

  • Z=Z成分

単位

m、m/s、m/s2

1.3.3.2. 角度、角速度

ジャイロセンサーや傾きセンサー値を格納する場合に使用します。

なお、X軸の正方向向きに右ねじが回る方向をPitchの正方向、 Y軸の正方向に右ねじが回る方向をRollの正方向、 Z軸の正方向に右ねじが回る方向をYawの正方向とすることを推奨します。

推奨データ型

3D Vector

データの格納方法
  • X=X軸/Pitch軸周りの成分

  • Y=Y軸/Roll軸周りの成分

  • Z=Z軸/Yaw軸周りの成分

単位

度、度/s

1.3.3.3. 位置座標

GNSS等によって取得した地球上の位置座標を格納する場合に使用します。

推奨データ型

2D Vector

データの格納方法
  • X=緯度

  • Y=経度

単位