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. ajax文字上下滚动,ajax页面底部 滚动加载效果 实例
  2. javaSE各阶段练习题--初识Java章节
  3. css中图片有缩放和转动效果
  4. 谈一谈Http Request 与 Http Response
  5. TFS创建登录用户并连接TFS
  6. (10)verilog语言编写SPI发送
  7. Xshell 鼠标选中 中断ctrl+c 问题
  8. (一)概率论基础教程-基本概念
  9. Java单例模式简单代码
  10. js:获取年龄的函数
  11. 脸部各部位长痘痘的原因
  12. force transducer and acceleration transducer
  13. 技术牛人博客整理汇总
  14. window下nginx实现图片缩放实操
  15. 云计算--day07
  16. Bootstrap4表单验证(纯JavaScript方法)
  17. Xilinx Zynq实现任意波形发生器仿真
  18. Android 实现openGL录像添加静态图片水印
  19. MATLAB中对矩阵的变换
  20. 20 21九死一生、22上半年读20本书(含15本管理书单/笔记):继续百年征程

热门文章

  1. 和数集团布局“和数链课堂”,人才培养才是区块链之本
  2. Netty序列化协议Protocol buff
  3. 网络7层架构+TCP/IP原理
  4. bzoj1070: [SCOI2007]修车-费用流
  5. Java_Session
  6. 《论文阅读》CARE: Commonsense-Aware Emotional Response Generation with Latent Concepts
  7. 数字化下,机械工程师如何适应和继续发展
  8. 精湛的WinXP优化技术:10招
  9. 链表基础操作 / 循环链表约瑟夫环/STL链表基本操作
  10. 2023年Digitalocean权威评测,Digitalocean注册购买使用指南