1.3. 【拡張仕様】ペイロードフォーマット¶
時系列データポイントが格納するペイロードのフォーマットを定義します。 また、ペイロードの解釈方法を拡張するプラグインであるカスタムパーサーについて定義します。
コンテンツ
1.3.1. データ型¶
各データバイナリには、ペイロードのフォーマットを示すデータ型が付与されます。 各データ型には、型を識別するための型名が割り当てられます。
1.3.1.1. 基本データ型¶
単一のデータを格納するデータ型です。
名称 |
型名 |
バイト長 |
説明 |
---|---|---|---|
|
可変 |
フォーマットなしバイナリ |
|
|
可変 |
フォーマットなし文字列 |
|
|
8 |
IEEE754 64ビット浮動小数点数 |
|
|
8 |
符号付き 64ビット整数 |
|
|
1 |
真偽値 |
|
|
可変 |
浮動小数点数配列 |
|
|
可変 |
整数配列 |
|
|
固定 |
2次元ベクトル |
|
|
固定 |
3次元ベクトル |
|
|
固定 |
4次元ベクトル |
1.3.1.2. フォーマット付き文字列型¶
フォーマット付きの文字列データを格納するデータ型です。
名称 |
型名 |
バイト長 |
説明 |
---|---|---|---|
|
可変 |
||
|
可変 |
||
|
可変 |
NMEA 0183 フォーマット |
1.3.1.3. フォーマット付きバイナリ型¶
フォーマット付きのバイナリデータを格納するデータ型です。
名称 |
型名 |
バイト長 |
説明 |
---|---|---|---|
|
可変 |
||
|
可変 |
||
|
可変 |
||
|
可変 |
MessagePack フォーマット で格納されたROSトピック |
1.3.1.4. メディアデータ型¶
映像や音声などのメディアデータを格納するデータ型です。
名称 |
型名 |
バイト長 |
説明 |
---|---|---|---|
|
可変 |
JPEG(JFIF)形式の画像データ |
|
|
可変 |
H.264/AVC バイトストリーム(Annex B 形式)の映像フレームデータ |
|
|
可変 |
H.265/HEVC バイトストリーム(Annex B 形式)の映像フレームデータ |
|
|
可変 |
IVFコンテナに格納した VP8, VP9, AV1 などの映像フレームデータ |
|
|
可変 |
H.264/AVC NAL Unit を格納したデータ |
|
|
可変 |
PCM(WAVE) 形式の音声データ |
|
|
可変 |
AAC(ADTS) 形式の音声データ |
|
Opus |
|
可変 |
Opus 形式の音声データ |
|
可変 |
H.264/AVC バイトストリーム(Annex B 形式)の映像データ(非推奨) |
|
|
可変 |
H.265/HEVC バイトストリーム(Annex B 形式)の映像データ(非推奨) |
|
|
可変 |
IVFコンテナに格納した VP8, VP9, AV1 などの映像データ(非推奨) |
1.3.1.5. 産業プロトコル型¶
各種産業プロトコルのデータを格納するデータ型です。
名称 |
型名 |
バイト長 |
説明 |
---|---|---|---|
|
可変 |
CAN フレーム フォーマット |
|
|
可変 |
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. エクストラクタの種類¶
名称 |
処理コード |
説明 |
---|---|---|
|
CAN データフィールドのフォーマットに従って、値データを抽出します |
|
|
BSON フォーマットのバイト列からフィールドを抽出します |
|
CBOR Parser |
|
TODO: CBOR フォーマットのバイト列からフィールドを抽出します |
|
JSON フォーマットの文字列からフィールドを抽出します |
|
|
CSV フォーマットの文字列からフィールドを抽出します |
|
|
浮動小数点数配列から1つの値を抽出します |
|
|
整数配列から1つの値を抽出します |
1.3.3. データ格納ガイドライン¶
9軸センサー値やGNSSによる位置座標など、様々なアプリケーションで共通して使用される値を格納する際には、 以下のガイドラインに従うことを推奨します。
1.3.3.1. 位置、速度、加速度¶
加速度センサー値などを格納する場合に使用します。
なお、座標系は左手系の使用を推奨します。 スマートフォンに対してローカル座標を設定する場合は、 画面に正対して右方向をX座標の正方向、 上方向をY座標の正方向、 手前方向をZ座標の正方向とすることを推奨します。
- 推奨データ型
- データの格納方法
X=X成分
Y=Y成分
Z=Z成分
- 単位
m、m/s、m/s2
1.3.3.2. 角度、角速度¶
ジャイロセンサーや傾きセンサー値を格納する場合に使用します。
なお、X軸の正方向向きに右ねじが回る方向をPitchの正方向、 Y軸の正方向に右ねじが回る方向をRollの正方向、 Z軸の正方向に右ねじが回る方向をYawの正方向とすることを推奨します。
- 推奨データ型
- データの格納方法
X=X軸/Pitch軸周りの成分
Y=Y軸/Roll軸周りの成分
Z=Z軸/Yaw軸周りの成分
- 単位
度、度/s