(2)XVIZ Protocol——concept and datatype

前面说到XVIZ协议涉及许多其独有的概念及数据类型,现在我们来探索一下,究竟是怎么回事。

XVIZ Protocol Concept

1.Datum :我们希望可视化的数据对象,一般是自动化驾驶系统数据。

2.Stream:流是同一类型的一系列时序数据,不同类型的数据用不同的流进行组织描述

  • stream name:必须为每个流指定唯一的名称,在应用程序中定义这些名称,XVIZ要求名称遵循由“/”分隔的类路径结构,例如“/vehicle/velocity”
  • stream type:流的类型由它包含的数据类型定义,XVIZ协议预定义了以下流类型,XVIZ客户端库支持解析和显示这些类型

1)Pose Stream:一组位置,用于描述参与者的位置和方向以及它定义的任何相对坐标系的。

2)Geometry Types :primitive几何体,XVIZ的primitive是被可视化的几何对象,如点、线、多边形等,可以被标记,并赋予特殊的样式(颜色等)

3)Variables:数据数组,一组值在同一时间出现。比如车辆在计划好的路径上行驶的速度。每次更新到变量流(variable stream)时,值的完整列表都会发生变化。

4)Time series:时间序列, individual samples of a larger series较大长时间序列的一个样本。时间戳值可以包含在流中。每次流更新时,都会得到一个新的时间戳(timestamp),值对

5)Tree Table:树表(树形结构体?),层次化数据结构,用于传输密集的记录数据

6)Image Stream:图形流,二进制格式图像数据

3.Object:对象可以通过将标识符附加到primitive、variable和time series时间序列来定义对象。标识符支持跨流和时间段链接信息。

4.Source:XVIZ数据流的来源,其数据来源可以是从URL或文件加载的预生成日志,也可以是通过套接字提供的实时数据。每一个数据包含一个或者多个数据流,以及这些数据流的元数据。XVIZ的元数据,是一种描述XVIZ数据源及其数据流属性信息的特殊消息

5.style:XVIZ支持stylessheet样式表格式,允许基于流和类指定对象属性。

6.Declarative UI:声明式UI,一个结构化数据模式(schema),可映射成UI元素,如绘图、控件、表和视频面板以及流名称(stream name)数据绑定。此数据与元数据一起发送,以保持与数据源的紧密耦合。

7.Video:XVIZ可以与外部视频源同步,但外部视频源必须先以合适的方式编码。

8.Encoding:编码,XVIZ协议规范没有规定任何给定的编码,但是XVIZ库支持JSON编码和解析

Stream Naming

XVIZ流的命名遵循以下几个规则:

1.使用类似文件系统的分层名称,必须使用路径分隔符

/system/object/bounds

/system/object/velocity

2.XVIZ流的命名不要包含id,正确的做法应该是一个流描述一组对象,使用id字段将多个对象区分开来,如/object。如果1个对象采用一个流描述,如/object/123这样将忽略XVIZ中元素的“id”支持,并且不提供跨流对象链接(暂时不理解这个意思??)

Stream Structure流结构

可选(option)或可单独可视化的数据应放入其单独的流中,正确的写法是每一部分都分离开来,如下所示

不对的做法是用一个流描述整个复杂的系统

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值