XGRIDS文档
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • 灵视 P1

    • 产品概述
    • 设备基本操作
    • 使用 LCC Scan App
    • 维护及保养
    • 常见问题
  • 灵光 K 系列

    • 灵光 K1

      • 产品概述
      • 设备基本操作
      • 设备激活与连接
      • 设备采集
      • 获取绝对坐标点云数据
      • 地图融合
      • 典型场景路线规划建议
      • 注意事项
      • 常见问题
    • 灵光 K2

      • 产品概述
      • 设备基本操作
      • 设备激活与连接
      • 设备采集
      • 获取绝对坐标点云数据
      • 地图融合
      • 典型场景路线规划建议
      • 注意事项
      • 常见问题
  • 灵光 L 系列

    • 灵光 L2 Pro

      • 产品概述
      • 设备基本操作
      • 设备激活与连接
      • 设备采集
      • 获取绝对坐标点云数据
      • 实时测量功能
      • 附录
      • 常见问题
    • 灵光 L3

      • 产品概述
      • 设备基本功能
      • 设备激活与连接
      • 设备采集
      • 获取绝对坐标点云数据操作流程
      • 附录
  • 配件

    • 补光灯

      • 安装指导
      • 基本操作
      • 常见问题
  • Lixel Studio

    • 版权
    • 安装与激活
    • 界面说明
    • 文件
    • 工程处理
    • 工具
    • 平面绘制
    • 行业应用
    • 设置
    • 设备感知
    • 常见问题 / FAQ
  • Lixel CyberColor

    • LCC Studio

      • 入门
      • 版本与更新
      • 下载与安装
      • 界面概览与导航
      • 重建前工作
      • 模型重建
      • 单模型重建
      • 地图融合
      • 空地融合
      • 航拍重建
      • 我的模型
      • 其他功能
      • 设置与账号
      • 转换工具
      • 视频重建
      • 常见问题 / FAQ
    • LCC Scene Editor

      • 版本与更新
      • 账号与登录
      • 产品概览与主页
      • 编辑器界面介绍
      • 三种场景漫游快捷操作
      • 文件
      • 设置
      • 编辑操作
      • 窗口
      • 视图工具栏
      • 资产与属性
      • 左侧工具栏
      • 视点
      • 跳转点
      • 天空盒
      • 标注
      • 测量
      • 场景漫游
      • 场景报告
      • 智能户型图(3D Layout)
      • 小地图
      • 预览模式(Viewer)
      • 帮助
      • 常见问题 / FAQ
      • 出生点
    • LCC Model Editor

      • 版本与更新
      • 新手指引
      • 概览与界面
      • 文件操作
      • 选择器
      • 编辑操作
      • 测量
      • 调色
      • 资产管理
      • 设置与帮助
      • 常见问题 / FAQ
    • 采集指南

      • 概述
      • 采集设备总览
      • 通用采集原则
      • 室内场景采集
      • 室外场景采集
      • 大场景采集(地图融合)
      • 空地融合采集
      • 物体采集
      • 人物采集
      • 视频重建采集
      • 高清补拍
      • 控制点(灵视 P1)
      • 常见问题与排查
    • LCC Studio Linux

      • 产品概要说明
      • 基本架构说明书
      • 安装部署说明书
      • 容器启动参数说明书
      • CodeMeter离线授权部署说明书
      • API指令集说明书
      • 附录-开发者数据说明书
      • 附录-错误码列表
      • 单机多卡集群部署QuickStart
    • 使用技巧

      • 多个大型 3DGS 模型融合工作流
    • 历史版本
  • Plugin & SDK

    • Unreal

      • 介绍
      • 快速入门 - Windows
      • 快速入门 - Linux
      • 快速入门 - Quest3
      • 版本与授权
      • 渲染
      • Tiled 光栅化(实验性)
      • 画面调节
      • 法线与光照
      • 场景编辑
      • 性能参数说明
      • 性能优化指南
      • 第三方与引擎插件集成
      • 代理网格
      • 加载动画
      • 碰撞
      • 寻路系统支持
      • 单层水支持
      • 本地化
      • 常见问题
      • 故障排查
      • 日志与诊断
      • 联系我们
      • 最佳实践

        • 用 LixelStudio 网格为 3DGS 重打光
      • API 参考

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • SOG / SPZ / PLY Actors
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ALCCLoadVolume
        • ULCCUtilLibrary
        • Enums
        • Structs
      • 更新日志

        • v3.4.0
        • v3.3.1
        • v3.0.0
        • v2.2.1
        • v1.0.0
        • v0.9.0
        • v0.8.0
        • v0.7.1
        • v0.6.1
        • v0.5.2
        • v0.4.1
        • v0.4.0
        • v0.3.0
        • v0.0.5
        • v0.0.4
        • v0.0.3
        • v0.0.2
        • v0.0.1
    • X-Brain

      • 产品概述
      • 硬件接口
      • 快速开始
      • 核心概念
      • 集成指南
      • API 参考
      • 数据类型
      • ROS2 桥接
      • 示例程序
      • 部署与网络
      • 排障与 FAQ
      • 版本与发布
    • Web

      • 介绍
      • 渲染性能优化指南
      • 显卡配置
      • 常见开发问题
      • API参考

        • LCCRender::clearIndexDB
        • LCCRender::dispose
        • LCCRender::load
        • LCCRender::setCamera
        • LCCRender::unload
        • LCCRender::update
        • LCCObject::checkRenderNextFrame
        • LCCObject::clearRenderNextFrame
        • LCCObject::ecef2Prj
        • LCCObject::getBounds
        • LCCObject::getEnvInstancedMesh
        • LCCObject::getInstancedMesh
        • LCCObject::getLodInfos
        • LCCObject::getOriginPosition
        • LCCObject::getProjectionCoordinateSystemInfos
        • LCCObject::hasCollision
        • LCCObject::hasEnvironment
        • LCCObject::hasShcoef
        • LCCObject::intersectsCapsule
        • LCCObject::intersectsRayExt
        • LCCObject::intersectsRayFromOriginExt
        • LCCObject::intersectsSphere
        • LCCObject::lowerToBottom
        • LCCObject::prj2Ecef
        • LCCObject::raiseToTop
        • LCCObject::raycast
        • LCCObject::raycastFromOrigin
        • LCCObject::setAlpha
        • LCCObject::setClipBox
        • LCCObject::setClipPlane
        • LCCObject::setEndLod
        • LCCObject::setLodAutoLevelUp
        • LCCObject::setMaxDistance
        • LCCObject::setMaxNodeSplats
        • LCCObject::setMaxSplats
        • LCCObject::setOriginPosition
        • LCCObject::setPointsColor
        • LCCObject::setRenderState
        • LCCObject::setRotation
        • LCCObject::setScale
        • LCCObject::setSemantic
        • LCCObject::setSemanticColor
        • LCCObject::setSmooth
        • LCCObject::setStartLod
        • LCCObject::setTranslation
        • LCCObject::setVisible
        • LCCObject::togglePointsDisplayMode
        • LCCObject::useEnvironment
        • LCCObject::useShcoef
      • 更新日志

        • v0.6.3
        • v0.6.2
        • v0.6.1
        • v0.6.0
        • v0.5.5
        • v0.5.4
        • v0.5.3
        • v0.5.2
        • v0.5.1
        • v0.5.0
        • v0.4.1
        • v0.4.0
        • v0.3.1
        • v0.3.0
        • v0.2.0
    • Lixel OpenAPI

      • 概述
      • 连接与鉴权
      • 消息模型与编解码
      • 接口清单
      • 实时数据
      • 项目文件访问
      • 错误码
      • Python

        • 快速开始
        • 客户端封装与工具
        • 常见问题
      • C++

        • 快速开始
        • 客户端与示例
        • 常见问题

实时数据

扫描过程中,设备会主动上报实时点云与位姿,并通过 RTSP 推送相机视频流。本篇讲清楚怎么拿到并解码这些数据。

实时点云

实时点云通过 lixel/application/report/lio_pcl 上报,消息类型为 MqttCompressMsg。为减小传输体积,点云数据经过压缩封装。

message LioPclReport {
    message Point {
        sint64 x = 1;    // val = raw value * header.scaler
        sint64 y = 2;    // val = raw value * header.scaler
        sint64 z = 3;    // val = raw value * header.scaler
        uint32 rgbi = 4; // R + G + B + Intensity
    }
    Header header = 1;
    repeated Point points = 2; // 点云数据
}

message MqttCompressMsg {
    enum CompressionType {
        CompressionLz4 = 0;
        CompressionZstd = 1;
    }
    Header header = 1;
    CompressionType compression = 2; // 压缩类型
    uint32 compressed_size = 3;      // 压缩前大小(序列化后的 LioPclReport 大小)
    bytes compressed_data = 4;       // 压缩数据(压缩后的序列化 LioPclReport)
}

解码步骤

收到 MqttCompressMsg 后,需要二次解压解码:

  1. 反序列化 MqttCompressMsg,得到 compression(Lz4 / Zstd)与 compressed_data。
  2. 按压缩类型解压 compressed_data。CompressionLz4 是 LZ4 block 格式,不是 LZ4 frame 格式;解压时必须给出解压后的长度,即 compressed_size(压缩前大小)。Python 写法:lz4.block.decompress(data, uncompressed_size=compressed_size)。用 lz4.frame.decompress 会报 ERROR_frameType_unknown。
  3. 将解压结果按 LioPclReport 反序列化,得到点云数组。

坐标还原:设备把真实坐标乘以 header.scaler 后向零截断取整(不是四舍五入),再以 sint64 发送,还原后的误差小于 1/scaler。还原时用线上整数除以 header.scaler,即 x_真实 = int(x) / int(header.scaler),y、z 同理。设备实测发送的 scaler 为 1000,线上整数 2921 对应 2.921。按 protobuf 的 JSON 映射,sint64 解码成字典后是字符串,做运算前先转成整数。上方 proto 注释里的 raw value 指真实坐标,不是线上整数,也就是线上整数 = 真实坐标 × header.scaler。设备端代码把 scaler 固定设为 1000;做除法前先确认 scaler 不为 0。

rgbi 是 32 位无符号整数,从高位到低位依次为 R、G、B、强度,每项 8 位(依据设备端打包代码和 proto 注释的顺序,未对照实际颜色逐点核对)。

注:解压需要额外依赖。使用项目用例脚本时,安装 pip install lz4 zstandard 后才能解码点云;未安装时脚本会提示并跳过。示例脚本 example/usage/lio_pcl.py 从 1.0.1 起使用 LZ4 block 解压;1.0.0 的该脚本按 frame 解压,在真机上收到的点云帧全部解码失败,且不输出错误信息。

实时位姿

实时位姿通过 lixel/application/report/lio_pose 上报,消息类型为 LioPoseReport:

message LioPoseReport {
    Header header = 1;
    PoseStamped pose = 2;
    float distance = 3;      // 距离(米)
    float pose_accuracy = 4; // 暂未使用
}

位姿结构 PoseStamped 包含时间戳与位姿,位姿由位置(Point)和姿态(Quaternion)组成:

message PoseStamped {
    sint64 stamp = 1;
    Pose pose = 2;
}

message Pose {
    Point position = 1;        // x / y / z
    Quaternion orientation = 2; // x / y / z / w
}

RTSP 视频流

设备内置 RTSP 服务器。成功开始扫描后,设备会实时推送相机视频流,同一时刻最多推送一路。视频流地址格式:

rtsp://<lixel_device_ipaddr>:8554/live/chn_<camera_name>

示例:

  • rtsp://192.168.55.1:8554/live/chn_left
  • rtsp://192.168.55.1:8554/live/chn_right
参数说明
lixel_device_ipaddr设备 IP:有线固定为 192.168.55.1;无线需通过蓝牙获取 Wi-Fi 地址;快连模式固定为 192.168.56.1
camera_name相机名称,需通过设备信息请求获取(DeviceInfoResponse.device_info.camera_info.camera_list)。列表中可能含空字符串(例如 ["left", "", "right"]),设备端在该槽位的相机不存在或未启用预览时放入空字符串,不要用它拼 RTSP 地址,构造地址时跳过