XVIZ - Autonomy数据的实时传输和可视化协议


 XVIZ是AVS的数据层。

主要特点


XVIZ允许您描述:

  • 视觉元素

    • 几何
    • 点云
    • 图片
    • 文本
    • 指标
  • 样式表
  • 具有数据绑定的声明性用户界面
  • @xviz/schema包中的一个机器可读JSON模式

XVIZ协议规范


  • XVIZ协议涵盖了重要的概念和数据类型。

XVIZ Javascript库


  • XVIZ Javascript库是一组用于验证、构建和解析XVIZ数据的模块。这些库使使用XVIZ变得更容易,并为验证任何其他语言实现提供了支持。

XVIZ服务


  • XVIZ的设计重点是分布式系统和团队。这意味着要考虑数据的大小和处理方法和速度,并优化网络基础设施上的数据传输。
  • XVIZ服务器简单演示了如何将XVIZ数据传递到应用程序。按照快速启动步骤开始向应用程序发送XVIZ数据。

最新动态


v1.0.0发布


  • 我们完成了测试,并于2019年8月发布了v1.0.0。在测试期间,我们增加了额外的模块并且修复了一些问题。最新的文档可以在AVS找到。

新特性

@xviz / io模块

  • 我们最初的beta版提供了构建XVIZ数据的模块和streetscape.gl使用的解析器。在测试期间,我们主要关注于围绕XVIZ添加工具支持。XVIZ支持JSON和基于GLB的格式并且在测试期间我们添加了初始的protobuf支持。为了制作检查和修改XVIZ数据的编写工具,我们创建了@xviz/io模块来处理各种格式的解码。

@xviz /server模块

  • 我们在beta中包含了一个特别的测试服务器,它需要被替换。官方的@xviz/server是可用的,并且支持跨多个数据源的多个并发连接。该服务器还支持数据源的动态XVIZ转换,这可以从我们的ROS示例中看到。

@xviz / ros模块

  • 由于许多人帮助我们建立了对ROS的支持,我们终于能够使用@xviz/ ROS模块。该模块目前仅支持少量消息,但总体结构以及对简单自定义消息处理的支持已经就位,为我们继续扩展支持提供了良好的基础。

常规改进

  • 将数据插入回放缓冲区的性能改进
  • 支持展平阵列,以便更好地向WebGL传输数据
  • 新的state_update模式:COMPLETE_STATE 和 INCREMENTAL

版本控制和支持


XVIZ协议的版本尽可能和版本控制一致。

  • 只要API发生了变化,就会发布主要版本。
  • 当一个变更包含了对API的添加,例如附加原语,或者现有原语的附加字段时,就会发布次要版本。
  • 补丁版本将在不改变的API的情况下发布。

XVIZ概念解释


XVIZ协议的描述基于这里介绍的一些概念

Datum

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

Stream

流是datum数据带有时间戳的顺序序列。不同类型的datums组织在不同的流中。

  • Stream Name ——每个流必须有一个唯一的名称。应用程序定义了这些名称,XVIZ要求名称遵循由’/‘分隔的类似路径的结构,如’/vehicle/velocity’。
  • Stream Type ——流的类型由它所包含的数据类型来定义。

协议预定义了以下流类型,XVIZ客户端库支持解析和显示它们:

  • Pose Stream —— 一组描述角色的位置和方向及其定义的任何相关坐标系统的位置。
  • Geometry Types —— 几何原语
  • Variables —— 数据数组
  • Time series —— 较大序列的单个样本
  • Tree Table —— 层次数据结构,用于传递密集的记录类型数据
  • Image Stream —— 二进制格式的图像数据

Source

XVIZ流的一个源。一个源可以是一个从URL或文件加载的预先生成的日志,它也可以是一个通过套接字提供的实时数据。
每个源包含一个或多个流,以及关于流的元数据(metadata)。

Metadata

包含有关数据源及其流的描述性信息的特殊XVIZ消息。

Primitive

XVIZ Primitive 是一个需要可视化的几何对象,例如点、线、多边形等。它可以被标记,并给予特殊的样式(颜色等)。

Style

XVIZ支持允许基于流和类指定对象属性的一种样式表形式。

Object

可以通过将标识符附加到Primitive、变量和时间序列来定义对象。该标识符允许跨流和时间片链接信息。

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

时间戳值可以包含在流中。每次流更新时,您都会得到一个新的时间戳和值对。

Declarative UI

将映射UI元素(如绘图、控件、表和视频面板)和流名称数据绑定的结构化数据模式。此数据与元数据一起发送,以使其与数据源紧密耦合。

Video

XVIZ可以与外部视频源同步,前提是它们已经以合适的方式进行了编码。

Encoding

XVIZ协议规范没有规定编码方式,但是XVIZ库支持JSON编码和解析。

XVIZ 规则约定


Stream Naming

Streams 的命名遵循一些简单的规则。
使用类似文件系统的层次结构名称。
必须
—— 使用路径分隔符

/system/object/bounds
/system/object/velocity

Stream names 不应该包含 ids.
Good
—— 一个stream对应一组对象

所有对象都在同一个流中,使用 id字段来区分他们。

/object

Bad - 每个对象一个stream
这将忽略XVIZ中元素的“id”支持,并且不提供交叉流对象链接。

/object/123

Stream Structure

可选或可单独显示的数据应放入自己的流中:
Good - 每一块数据都是分开的

/raw_points
/object/bounds
/object/velocity
/object/points

Bad - 整个系统只有复杂的单一流

/object

RoadMap


性能

  • 数据优化
  • 异步处理

详述

  • 点云压缩
  • 持久性数据
  • 数据生命周期管理
  • 先进的映射支持
  • 模块化支持

特性

  • 高级XVIZ服务器

    • 支持多日志
  • 支持ROSBAG
  • 多语言支持

相关链接


XVIZ是解决自主系统(机器人,车辆)相关于时间、地理空间和度量的数据可视化的问题。重点是系统的语义视图,其目标是与底层平台解耦。
有一些相关的项目与XVIZ有一些相似之处,但通常针对更通用的问题或与特定的平台耦合。跟踪这些工作以及这些项目的发展是很有价值的,可以从中学习并在XVIZ发展的过程中帮助制定路线图。

可视化工具

  • rviz - ROS 3D 机器人可视化工具
  • webviz - 基于Web的ROS包可视化工具
  • x3dom - WebGL内置的声明式3D内容格式。
  • A-Frame - 3D VR应用的声明式DOM样式系统。
  • VRML 2.0 - 1990’s format for full 3D scene description, in the spirit of a 3D HTML.

数据格式

  • rosbag - ROSBAG 支持 Javascript 解析
  • glTF 2.0 - “JPEG for 3D”, 是3D场景交换的标准格式,针对快速加载和Web进行了优化,具有广泛的导入和导出支持。
  • USD/USDZ - 用于在生产流水线中存储任意3D场景、动画和场景图的可移植格式,由Pixar公司使用和开发。

UBER-AVS-XVIZ-OverView相关推荐

  1. Uber AVS 自动驾驶可视化工具(二)XVIZ之Overview

    Uber AVS 自动驾驶可视化工具 (二)XVIZ之Overview Overview Introduction Main Features XVIZ Protocol Specification ...

  2. Uber AVS 自动驾驶可视化工具(一)

    Uber AVS 自动驾驶可视化工具 (一) Uber AVS 模块组成 `XVIZ` `streetscapec.gl` 注: 引用: Uber AVS 近期,Uber开源了自动驾驶可视化工具AVS ...

  3. Uber开源基于web的自主可视化系统,可共享数据

    研究公司ABI的数据显示,到2025年,将有800多万辆无人驾驶汽车出现在公共道路上,它们都有一些共同点:传感器.功能强大的个人电脑和机器学习算法.Nvidia.英特尔的Mobileye.百度等公司提 ...

  4. Uber及Cruise开发自驾车可视化工具名为Worldview的React函式库

    GM汽车旗下的自驾车子公司Cruise与Uber相继宣布开源自驾车可视化工具,其中,Cruise开源了名为Worldview的React函式库,可用来描绘2D与3D场景,Uber则是开源内部所使用的自 ...

  5. AVS软件解码器的优化

    AVS软件解码器的优化 董斌 , 姜昱明 (西安 电子科技大学计算机学院,陕西 西安,710071)) 摘 要: 主要研究了AVS标准的视频压缩部分,指出了影响解码速度的瓶颈并提出了一种优化方案.使 ...

  6. uber_像Uber这样的Android Google地图样式

    uber Have you ever noticed how Uber and other few popular location-based applications have a differe ...

  7. Uber,Lyft寻求差异化路径以寻求盈利

    在本周的(上市公司)单独财报电话会议上,Lyft的官员强调了自动驾驶车辆(AVs)长期的重要性,而Uber则表示,送货服务将是他们尝试走向盈利的关键. Uber和Lyft都表示,他们将在今年年底之前实 ...

  8. 成都Uber优步司机奖励政策(1月9日)

    1月9日 奖励政策 滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblog ...

  9. Overview of ISA and TMG Networking and ISA Networking Case Study (Part 1)

             老方说:此篇文章摘自ISASERVER.ORG网站,出自Thomas Shinder达人之手.严重建议ISA爱好者看看. Published: Dec 16, 2008 Update ...

  10. uber_这就是我本可以免费骑Uber的方式

    uber by AppSecure 通过AppSecure 这就是我本可以免费骑Uber的方式 (Here's how I could've ridden for free with Uber) 摘要 ...

最新文章

  1. Web/app端自动化测试对比
  2. (chap5 web服务器) 虚拟主机
  3. SAP 电商云 Spartacus 5_0.md 迁移文档的编写格式
  4. Android开发之自定义view进行旋转动画
  5. python变量区变量保存与加载_python – Flask:使用全局变量将数据文件加载到内存中...
  6. 多线程,并发,异步,死锁
  7. java stringbuffer原理_深入理解String, StringBuffer, StringBuilder的区别(基于JDK1.8)
  8. C语言 指针与结构体
  9. 之前跳槽面试时整理的一些知识点
  10. ECshop sina
  11. springmvc工作原理和源码分析
  12. 分享一个好用的图吧电脑工具
  13. 京瓷打印机驱动安装教程,怎么安装方便点?
  14. Fingerprint 解锁流程
  15. 传奇服务器赞助文件夹,传奇服务端每个文件夹的含义
  16. TransMac 下载 win7 win10 U盘启动的制作方法 win7 win10 U盘启动的 transMac制作方法
  17. 苹果开放降级_iPhone 突然开放降级...
  18. Mac 版ps cs6 破解
  19. 跨越华为职业生涯的沟沟坎坎
  20. 网络offload之TSO、GSO、LRO、GRO

热门文章

  1. PI-REC 水记 (线稿+色块→绘画)
  2. 浏览器上不了网但能上QQ
  3. if x 和 if x is not None的区别(python)
  4. 信息安全加密技术--Polybius密码
  5. 从零开始学Android之XML
  6. 指甲与健康状况(Z)
  7. 1.1 Linux发展史、内核版本和发行版本
  8. 灵动微MM32的FSMC接口驱动TFT_LCD屏幕
  9. 阿里云首次年度盈利:阿里单季营收增长9% 用户年度净增1.77亿
  10. Deepin安装过程中无法进入安装引导,求助