ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

UBER-AVS-XVIZ-OverView

2020-02-26 10:41:49  阅读:587  来源: 互联网

标签:UBER Stream XVIZ OverView object 支持 数据 3D


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公司使用和开发。
Goto_404 发布了11 篇原创文章 · 获赞 5 · 访问量 6955 私信 关注

标签:UBER,Stream,XVIZ,OverView,object,支持,数据,3D
来源: https://blog.csdn.net/qq_29285195/article/details/104478143

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有