Docsify/gis/xviz.md
2023-06-13 16:37:18 +08:00

5.5 KiB
Raw Blame History

Xviz协议

说明
本文是参考Xviz翻译的学习笔记英文功底好的同学可以直接去官网学习

介绍

20220715165825.png

Xviz概念


XVIZ 协议的描述基于此处介绍的许多概念。

Datum(数据资料)


一个我们希望可视化的数据对象(通常来自机器人系统)。

Stream(数据流)


流是相同类型的时间戳数据序列Datum。不同类型的基准被组织在不同的流中。

  • 流名称(Stream Name) - 每个流必须有一个唯一的名称。应用程序定义了这些名称XVIZ 要求名称遵循以“/”分隔的类路径结构,例如“/vehicle/velocity”。
  • 流类型(Stream Type) - 流的类型由它包含的数据(Datum)类型定义。

下面的流类型是Xviz协议预定义的一些类型Xviz提供了工具包以支持这些类型数据的解析、显示

  • 姿态流(Pose Stream) - 描述一个角色在它定义的相对坐标系统下的位置和方向的数据集。
  • 坐标类型(Geometry Types) - 原始的经纬度坐标。
  • 变量(Variables) - 数据组
  • 时间序列(Time series) - 一个大序列的独立样本individual samples of a larger series
  • 树形结构表 - 树形数据结构,用来记录密集的数据记录类型(hierarchical data structure, use to convey dense record type data)
  • 照片流(Image Stream) - 二进制格式的图片数据(Binary format image data)

数据源(Source)


一个数据源Source是一个Xviz流数据产生的源。它可以是从Url或者一个文件加载的预生成的Log数据也可以对应一个从数据服务器(例如socket)产生的实时数据。A source of XVIZ streams. A source can be a pre-generated log loaded from a URL or a file, but it can also be a live data served over e.g. a socket.

一个Source包含一个或者多个Stream流以及关于流的元数据metadata描述。Each source contains one or more streams, as well as a metadata about the streams.

元数据(Metadata)


一个特殊的Xviz消息它包含了关于Source以及Source包含的Stream的描述信息。(A special XVIZ message that contains descriptive information about the data source and its streams.)。

原始坐标(Primitive)


Xviz的原始坐标是指诸如点、线、面这样的可视化几何对象这些对象可以被标记为特定的样式(例如颜色)。

样式(Style)


Xviz支持样式表允许对基于流和类的对象属性做特殊的样式声明。XVIZ support a form of stylesheets, allowing object properties to be specified based stream and class.

对象(Object)


对象(Object)是一个被原始坐标、变量和时间序列标记的主体,这些标记可以跨流或者跨时间片段。

变量(Variable)

一个值序列在单一时刻下发生的值,例如一辆行驶在特定路径上汽车的速度值,每次从流中获取的数据就是值序列在此时刻改变的更新值。 (A sequences of values the occur at a one time. Like the speed of travel over a planned path for a vehicle. Each time you get an update to a variable stream, the full list of values changes.)

时间序列(Time Series)

时间戳值可以包含在流中。每次流更新时,您都会得到一个新的时间戳的名值对。(Time stamped values can be included in streams. Each time the stream updates you get a new timestamp, value pair.)

声明式UI(Declarative UI)

结构化数据格式可以映射为UI组件如线形图、控制面板、表格以及视频面板都与流中指定的数据名绑定。这些数据会和元数据一起发送以使其与数据源紧密耦合。 (A structured data schema that will map UI elements, such as plots, controls, tables, and video panels along with the stream name data bindings. This data is sent with the metadata to keep it closely coupled to the data source.)

视频(Video)

XVIZ可以同步外部视频源数据前提是该数据已经被提前按照指定方式编码过。(XVIZ can sync with external video sources provided that they have been encoded in a suitable way.)

编码(Encoding)

XVIZ协议规范没有规定任何给定的编码但是XVIZ库支持JSON中的编码和解析。(The XVIZ protocol specification does not prescribe any given encoding, however the XVIZ libraries come with support for encoding and parsing in JSON.)

用户引导

Xviz提供了多种工具以帮助你生成、验证、解析和格式化Xviz数据。(XVIZ comes with a number of tools to help you generated, validate, parse and style XVIZ.)

这个引导将向你演示如何使用提供的工具将你的数据转换为Xviz协议的数据。(This guide will show you how to use these tools to convert your data into XVIZ.)

它包含下面几个方面:

  • 解释Xviz必须的数据
  • 在Xviz中如何管理流(stream)、对象(object)和时间(time)
  • 解释帧概念(fram)以及与之相关的时间(time)和流(stream)
  • 如何在Xviz中创建UI对象

安装

根据你需要对Xviz所做的操作(生成、解析、验证),可以单独安装其中的某些组件。

NPM moudule名 描述
@xviz/builder 帮助构建和生成Xviz数据
@xviz/parser 帮助解析和处理Xviz数据
@xviz/schema 用于验证 XVIZ JSON 数据的 JSON 结构

例如如果需要生成Xviz数据可以引入builder Api

npm install @xviz/builder
# or
yarn add @xviz/builder