LLQuad面 「#!QC1.0」がQCデータ 構造物の情報。移動体のマシンの定義情報。
LLSoda面 「#!SD1.0」がSDデータ Sodaコースの情報。LLQuad面とおなじ動作です。
MMデータ 「#!MM1.0」がMMデータ 全マシンの現在位置と1つ前の位置情報
LVデータ 「#!LV1.0」がLVデータ 1移動体の3D視角(mofe)を2D座標にした線画
CFデータ 「#!CF1.0」がCFデータ 本コマンドで用いられる形状を変更できる定義値
YXデータ 「#!YX1.0」がYXデータ ylat, xlon の順のデータ。逆に置き換えのため。
XYデータ 「#!XY1.0」がXYデータ xlon, ylat の順のデータ。逆に置き換え後の出力。
1 QCデータの定義
- QCデータの概要
QCデータは、LLQuad面として装着する、デ変研QCライブラリが使用するフォルダmapの下の kcやtc2017 としているフォルダの下に設置されている、xxx.qc というサフィックスのファイルです。ここには、構造物の情報をクアッドキューブのデータにして格納しています。
QCデータは、次のデータを扱います。
- 構造物をLLQuadで表現したもの(Q1からQ7)。
- 構造物をxyzが可変長の構造物(B5)にて表現したもの。
- 移動体オブジェクトの定義。
「#」以降はコメントとして取り扱います。
(2) QCデータの詳細
次にQCデータをCSVの行頭ヘッダ文字ごとに示します。
Q4: シンプルなクアッドキューブ 例) Q4,135.759227,35.004831,0,0,100
行頭ヘッダ文字はQ4(Q1からQ7)で、1バイト目のQはシンプルなクアッドキューブを示し2バイト目の数字はLLQuadのタイプ、位置情報(xlon, ylat)、高さ(地表高・立方体底面高・立方体高)を指定します。位置情報はインデックスに追加され、全位置検索の対象となります。この例の0,0,100は高さの指定です。
B5: 少し複雑なクアッドキューブ 例) B5, 135.759227,35.004831,0,0,100,2,4,6,90
行頭ヘッダ文字B5は、少し複雑なクアッドキューブです。LLQuadのタイプは5で、位置情報(xlon, ylat)と高さ(地表高・立方体底面高・立方体高)が続き、クアッドキューブのxyzの大きさを単位m(メートル)で指定、クアッドキューブの向き(回転軸はxyが0の点)を指定します。この例では、0,0,100が高さ、2,4,6がxyzの大きさ、向きは90°です。
MO: 移動体オブジェクト定義 例)MO,135.760300,35.003100,0.40,0.85,1.00,
M,4,270,1100,Dhk univ. No.1100
行頭ヘッダ文字MO(Mobile Object)は、xyzの大きさ(単位m)を指定し移動体オブジェクトの形状を指定します。次に1char、初期の初期方位(移動体オブジェクトの回転軸はxyが0の点でyの方向を指定します)。その次に、移動体の登録番号、詳細名称と続きます。
2 SDデータ定義
(1) SDデータの概要
SDデータは、LLSoda面としてデ変研QCライブラリに装着するCSVフォーマットで、mapフォルダの下の kc , tc2017 などに入れられた xxx.sd というサフィックスのファイルをいいます。移動体のオブジェクト情報と、その移動体の走行進路を表すSDデータが格納されています。
SDデータは、次のことを表現できます。
- SD点(S6)の情報により、Soda情報とします。
「#」以降はコメントとして取り扱います。
(2) SDデータの定義の詳細
次にSDデータをCSVの行頭ヘッダ文字ごとに示します。
S6: Soda点 例) S6,135.759227,35.004831,0
行頭ヘッダ文字はS6 で、1つのSoda点を指定します。位置情報(xlon, ylat)、地表高、移動体コマンドからなります。地表高はレーシングカーの8の字コースを設定するときに、地上高の高さを8の字の交差部に与え、オーバーパスとして上を走らせるように調節するためのものです。
3 MMデータ
(1) MMデータの概要
MMデータは、つくばチャレンジのような移動体がひとつの地域に沢山競技し、ロボットの進行方向に他の移動体が写り込むさまを表示するために考案された、出場全マシンの位置情報リストを表現するためのものです。
本CSVは、マシン車両番号、マシンに設置された緯度経度の情報をクラウドサーバに上げるための端末のユニークID(UUID)、現在位置(xlon, ylat)、1秒前の現在位置(xlon, ylat)、行末は改行(0x0d,0x0a もしくは 0x0a)となります。
現在動作中の全移動体分をリストにします。
1つのフレームの区切りとなる最終行を必要とする場合、1行の文字列を「1_frame_end(改行)」とします。
「#」以降はコメントとして取り扱います。
- MMデータの例
2台分の移動体を例に示します。
170100, 075-254-8780-170100, 135.1, 35.1, 135.2, 35.2(改行)
170200, 075-254-8780-170200, 135.2, 35.2, 135.3, 35.3(改行)
4 LVデータ
- LVデータの概要
LVデータは、さまざまな言語で、格子視角座標(LVA)にクアッドキューブのモニタリング風景を描画するための用いる、カンマ区切りのテキストデータです。
本CSVは、線画の場合、ヘッダ2文字(点と線の数定義)、カラー(RGB24BIT16進表記)、xlva、ylvaでこれが点の数繰り返します。
文字の場合、ヘッダ2文字(文字指定2種類と装飾情報)、カラー(RGB24BIT16進表記)、xlva、ylvaが1回、UTF-8の文字列となります。
行末は改行(0x0d,0x0a もしくは 0x0a)となります。
「#」以降はコメントとして取り扱います。
1つのフレームの区切りとなる最終行は、1行の文字列が「1_frame_end(改行)」とします。
- ヘッダ概要
ヘッダは2文字のキャラクタ文字から構成されます。
線の場合
1字目は点(ポイント)の数を示す数値の文字です。10進数の10の位に表記します。
2字目は線(ライン)の数を示す数値の文字です。1は1本の線を示します。クアッドキューブのデータの場合、12本の線が必要で、16進数の12の意味の ‘C’ という文字を使用します。
文字の場合
1字目はC(カラムライン指定)、F(フォント指定(lva位置指定))のいずれかです。
2字目はフォントの装飾を示す数値の文字です。0は標準より小さい、1は標準、2は標準の4倍、3は標準の9倍です。4は太字(ゴシック)、8はイタリックです。0からFまでの表現があります。
- ヘッダ文字の一覧
2バイトのキャラクタ、ヘッダ文字は点と線の組み合わせを意味し、次のものが存在します。
21 2つの点とそれらを結ぶ1つの線。
33 3つの点とそれらを結ぶ3つの線で構成される、三角形。
44 4つの点とそれらを結ぶ4つの線で構成される、四角形。
58 5つの点とそれらを結ぶ8つの線で構成される、四角錘。ピラミッド。
88 8つの点と、前4つと後4つの線で構成される、2つの四角形。ダイアスクエア。
8C 8つの点とそれらを結ぶ12の線で構成される、立方体。クアッドキューブ。
ヘッダ文字がフォントと大きさの組み合わせを意味し、次のものが存在します。
C1 カラムラインの指定で文字列を出力します。±20の視角でxlvaは20行、ylvaは40カラムとし、ylvaの1カラムは半角とします。全角文字は2カラムを消費します。文字はUTF-8です。
0は標準の1より小さい、1は標準、2は縦横2倍の4倍角、3は縦横3倍の9倍角です。
さらに4は太字(ゴシック)、8はイタリックで、4567は太字、89ABは明朝体イタリック、CDEFは太字イタリックとなり、文字の大きさはそれぞれ0123のちがいとなります。
F1 Lvaの指定の位置に先頭文字の1文字目を中心とする文字列を出力します。文字間隔はカラムライン指定と同じです。文字はUTF-8です。0からFの添え字が付き、Cの場合と同様です。
先頭の文字の位置が決まれば、後続する文字は、文字列として連続表示しますが、自動改行という概念はありませんので、はみ出た文字は、出力しません。
(4) LVデータのオブジェクトの例
5 CFデータ
(1) CFデータの概要
CFデータは、デ変研QCライブラリを使用するときのパラメータを、コマンド側を使用する立場で修正し、補助情報の形状にコマンドレベルで変更を加えてカスタマイズに用いるファイルです。
(2)定義値概要
定義値は、ASCII文字と数字文字から構成されます。定義値と値はカンマで区切られ、行末は改行(0x0d,0x0a もしくは 0x0a)となります。「#」以降はコメントとして取り扱います。
(3)定義値一覧
(4)CFデータのオブジェクトの例