环境地图构建

在这里插入图片描述

地图的构建核心包括:数据结构和融合方法。

地图数据结构

主要用于表示环境,分为两大类:

  1. 度量地图

    • 思想:用精确的坐标来描述环境。
    • 常见类型
      • 栅格地图:将环境划分为均匀的网格(栅格),每个栅格存储一个值(如占用概率、代价)。简单高效,是路径规划最常用的格式。
      • 特征地图:用一系列抽象的特征点(如墙角、门框、线)来表示环境。存储效率高,但不够直观。
      • 点云地图:由大量3D点组成,能非常精细地还原环境外貌,但数据量大,常用于激光SLAM。
  2. 拓扑地图

    • 思想:强调地点之间的连通关系,而非精确的几何位置。像一张,用节点表示重要地点(如房间、路口),用表示连接路径及其代价。
    • 特点:抽象程度高,存储空间小,非常适合于高层任务规划和导航,但缺乏精确的几何信息。

实践中常采用分层融合的策略,例如用精细的栅格地图做局部避障,用拓扑地图做全局路径规划。

地图融合方法

主要指在建图过程中,如何将新的传感器观测数据与现有地图进行融合更新。

  1. 贝叶斯更新(用于栅格地图)

    • 核心:每个栅格都是一个独立的二值贝叶斯滤波器。根据新的观测(激光扫描),使用反观测模型计算当前观测下该栅格被占用的概率,并与先验概率进行融合。
    • 经典算法占据栅格地图 就使用此方法。公式简化为:P_new = ... (基于观测更新概率)。它能有效地处理噪声和多次观测,逐步构建出稳定可靠的地图。
  2. 图优化(用于位姿图与地图)

    • 核心:SLAM不仅建图,还要估计机器人自身轨迹(位姿)。将机器人的位姿和观测到的地标(或约束)作为节点,将观测数据、里程计数据等作为连接节点的(约束),形成一个图。
    • 融合过程:当获得新的约束时(如回环检测),将其加入图中。通过求解一个大规模非线性最小二乘问题,一次性调整所有节点(位姿和地图),使它们最大程度地满足所有约束。这种方法能有效纠正累积误差,是现代SLAM的主流方法。
  3. 表面重建与融合(用于3D点云/体素地图)

    • 核心:在3D SLAM(如KinectFusion)中,常用截断符号距离函数(TSDF)
    • 融合过程:将空间划分为体素网格,每个体素存储到最近物体表面的距离(TSDF值)和权重。新的深度帧数据通过ICP配准后,其TSDF值会与体素中存储的值进行加权平均融合。通过不断融合多帧数据,生成精确、平滑的3D表面模型。

一、地图构建方法分类与演进

环境地图构建方法可通过表示维度核心思想两大维度分类,其演进关系如下,帮助建立宏观认知:

环境地图构建方法

2D表示
Occupancy Grid Map

2.5D表示
Elevation Map

3D表示

显式几何
Point Cloud Map

立体表示

密集存储
Voxel Grid

稀疏存储

层次结构
OctoMap

平面块结构
Voxel Hashing

TSDF
(几何重建)

ESDF
(导航规划)

二、主流地图构建技术详解

按“2D→2.5D→3D”的维度递进顺序,逐一解析各类地图的核心特性:

1. 占据栅格地图(Occupancy Grid Map)- 2D

最经典的基础地图形式,由SLAM奠基人之一Sebastian Thrun普及,适用于二维平面场景。

  • 存储结构:均匀2D网格(矩阵),每个网格单元(cell)存储“占据概率”(0.0~1.0),常用概率对数形式(Log-Odds) 存储,便于贝叶斯公式加法计算。
  • 核心原理
    1. 传感器模型:基于激光雷达等测距设备,射线区域(机器人到测量点)标记为“空闲”,测量点标记为“占据”;
    2. 概率融合:通过贝叶斯公式更新网格概率,多次观测后从“未知(0.5)”收敛到“空闲(0)”或“占据(1)”。
  • 应用场景
    • 室内机器人导航(扫地机器人、服务机器人路径规划);
    • 2D SLAM(定位与建图);
    • 计算资源敏感、环境以二维平面为主的场景。

在这里插入图片描述

2. 2.5D地图(Elevation Map / Height Map)

2D与3D的折中方案,记录二维坐标(x,y)对应的高度(z),但单个(x,y)仅对应一个z值,无法表示悬空物(如吊灯)或多层结构(如桥梁)。

  • 存储结构:2D网格,每个cell存储高度值(或高度统计信息,如均值、方差),而非占据概率。
  • 核心原理:通过RGB-D相机、3D激光雷达等设备采集点云,统计每个(x,y)网格内点的高度(取最高点或平均值)。
  • 应用场景
    • 野外/崎岖地形导航(无人车、救援机器人,判断地面可通行性);
    • 无人机复杂表面降落。
      在这里插入图片描述

3. 占用地图 3D

如下图所示,占用内存,3D推荐使用Octomap、(Voxel Hashing)
在这里插入图片描述

3. 点云地图(Point Cloud Map)- 3D

最直接的3D地图表示,仅记录传感器采集的3D点坐标集合。

  • 存储结构:点列表(格式如.pcd.ply),每个点含(x,y,z)坐标,可附加颜色(r,g,b)或反射强度。
  • 核心原理:无需复杂概率推理,仅通过SLAM估计的机器人位姿,将不同时刻的点云转换到全局坐标系后拼接。
  • 优缺点
    • 优点:构建简单,保留原始几何与外观细节;
    • 缺点:数据量大(稠密/RGB-D或稀疏/LiDAR)、无拓扑结构、无法直接判断空间占据状态,不适合实时导航。
  • 应用场景
    • 离线建图与重建(建筑扫描、考古测量、高精度环境档案);
    • 环境可视化(为人类提供直观展示);
    • 作为TSDF等高级地图的输入数据。

在这里插入图片描述

4. 八叉树地图(OctoMap)- 3D

解决点云地图“无结构、数据量大”的问题,结合2D占据栅格思想与八叉树(Octree)层次化结构

  • 存储结构:八叉树,每个节点代表立方体体素(Voxel):
    • 全空闲/全占据的节点无需展开
    • 含“占据-空闲”边界的节点,递归细分为8个子节点,直至最高分辨率。
  • 核心原理
    1. 继承Occupancy Grid的概率更新模型,体素存储占据概率;
    2. 利用树形结构的“层次性”与“稀疏性”压缩存储空间,避免为空白区域分配内存。
  • 应用场景
    • 无人机导航与避障(3D路径规划);
    • 机械臂抓取(感知工作区域障碍物3D位置);
    • 需高效3D占据概率信息的机器人应用。
      在这里插入图片描述

5. 体素哈希地图- 3D

(Voxel Hashing)由NIESSNER et al. 提出,专为高效、稠密的实时3D重建设计,解决均匀体素网格内存消耗大、八叉树稠密场景访问效率低的问题。

  • 存储结构
    1. 稀疏体素块:仅存储靠近物体表面的体素块(如8×8×8),而非整个空间或单个体素;
    2. 哈希表:键(Key)为体素块空间坐标(x,y,z),值(Value)为体素块数据指针。

在三维重建中,一种常见的方法是将空间划分为无数个小立方体(称为 体素,Voxel),每个体素存储一个信息(如是否被表面占据、到表面的距离等)。这就是所谓的 TSDF(Truncated Signed Distance Function,截断符号距离函数) 体积表示法。

  • 传统方法(密集存储):为整个感兴趣的空间预先分配一个巨大的、均匀的三维数组。缺点是内存消耗巨大,且大部分内存被空的或未观察到的区域浪费了。无法用于大规模场景。
  • 需求:我们希望在消费级GPU上,实时重建一个房间甚至一栋大楼,但GPU内存是有限的(通常几个GB到几十个GB)。

Voxel Hashing 就是为了解决这个“有限内存 vs. 无限空间”的矛盾而诞生的。

核心思想:稀疏化与哈希索引
  • 哈希表实现O(1)访问效率,快速定位体素块;
  • 内存仅与重建表面积成正比,大幅节省资源。

Voxel Hashing 的解决方案非常巧妙,它借鉴了计算机科学中经典的 哈希表(Hash Table) 概念。

  1. 只分配看到的体素:我们不为整个世界的每一个可能体素都分配内存,而是只为那些被传感器数据(如深度相机)观察到的、靠近物体表面的体素分配内存。这极大地减少了需要管理的数据量,实现了“稀疏存储”。

  2. 用哈希表来索引体素:如何高效地管理和访问这些稀疏分布的体素块呢?答案是使用哈希表。

    • 键(Key):每个体素在世界空间中的三维坐标 (x, y, z) 被转换成一个唯一的哈希键(Hash Key)。通常,这个键是通过一个简单的哈希函数计算得到的(例如,对坐标进行位运算并取模)。
    • 值(Value):哈希表中存储的值是一个指针,指向该体素在GPU内存(显存)中实际存储数据的位置。这个数据就是该体素的TSDF值、权重、颜色等信息。
  3. 体素块(Voxel Blocks):为了进一步提升效率,通常不是对单个体素进行哈希,而是将 8x8x816x16x16 的体素组成一个块(Block)。哈希表索引的是这些块的世界坐标。这样做的优点是:

    • 减少了哈希表的大小(条目数更少)。
    • 提高了内存访问的局部性(Coalesced Memory Access),对GPU并行计算非常友好。
    • 压缩了指针开销。
工作流程(Pipeline)

在一个典型的实时重建循环中(例如处理来自Kinect的每一帧深度图),Voxel Hashing 的工作流程如下:

第一步:数据关联(Data Association) - 当前帧 vs. 全局模型

  1. 从深度相机获取当前帧的深度图 D_t 和颜色图 C_t
  2. 根据相机的位姿 T_t(通过传感器或ICP算法获取),将当前深度图反向投影到世界坐标系中,得到一堆三维点云。
  3. 对于这些三维点,找到它们所对应的体素块(即它们落在哪个 8x8x8 的块里)。
  4. 计算这些体素块的世界坐标,并通过哈希函数快速查找哈希表,看这些块是否已经存在。
    • 如果存在:则取出该块在显存中的指针,准备更新其中的体素数据。
    • 如果不存在:则在哈希表中创建一个新条目,并在显存中为这个新的体素块分配内存,初始化其TSDF值和权重(通常为0),然后将指针存入哈希表。

第二步:TSDF融合(TSDF Fusion)

  1. 对于当前帧观察到的每一个体素 v,计算其TSDF值:
    • 将体素 v 从世界坐标转换到当前相机坐标系。
    • 投影到当前深度图上,找到对应的深度值 d
    • TSDF值 s = d - z (其中 z 是体素在相机坐标系下的Z值)。
    • 如果 |s| 大于一个截断距离 μ,则忽略它(因为它离表面太远或太近,信息不可靠)。
  2. 加权平均融合:将当前帧计算出的TSDF值与全局模型中存储的历史值进行融合。
    • TSDF_new = (W_old * TSDF_old + w * s) / (W_old + w)
    • W_new = W_old + w
    • 其中 w 是当前帧的权重,通常与相机角度、测量噪声等有关,简单情况下可以设为1。

第三步:循环与维护(Looping and Maintenance)

  1. 哈希冲突处理:不同的坐标可能哈希到同一个键上,这就是哈希冲突。Niessner 的方案采用了一种“惰性”策略:在融合时如果发现冲突(两个不同的块争抢同一个哈希桶),则简单地丢弃较旧或不活跃的块,或者将其交换出去。这保证了速度,但牺牲了一点精度。
  2. 内存管理:随着相机移动,会不断分配新的体素块。系统需要一种策略来回收不再被观察到的体素块的内存(例如,基于LRU策略),防止内存被耗尽。
  3. 流程不断重复,新的帧不断被融合到全局的哈希表中,模型也就逐渐被重建出来。

在这里插入图片描述

6. 截断符号距离函数地图(TSDF)- 3D

存储隐式表面的地图形式,是高质量表面重建的核心技术,不直接记录占据信息。

  • 存储结构:3D网格(均匀网格、体素哈希块等),每个体素存储两类信息:
    1. SDF值:体素中心到最近物体表面的“符号距离”(内部负、外部正);
    2. 权重:融合信息的置信度权重。
  • 核心原理
    1. 距离融合:每帧深度图计算射线体素的SDF值(体素到观测表面(障碍物曲面)的距离);
    2. 加权平均:新SDF值与历史值融合,多次观测后物体表面SDF值收敛到0(零等值面即物体精确表面)。
  • 应用场景
    • 高精度3D重建(生成3D打印、影视特效的水密网格模型);
    • RGB-D SLAM(如KinectFusion、ElasticFusion的后端优化与地图表示)。

在这里插入图片描述

7. 欧氏符号距离场地图(ESDF)- 3D

TSDF的“近亲”,专为导航与规划设计,计算“体素到最近障碍物的欧几里得距离”,而非TSDF的“表面重建距离”。

  • 存储结构:3D网格,每个体素存储“距离值(恒正)”与最近障碍物坐标。
  • 核心原理
    1. 构建占据地图:通过Occupancy Grid或OctoMap生成二值化占据地图(空闲/占据);
    2. 距离变换:运行欧几里得距离变换(EDT) 算法,为每个空闲体素计算到最近占据体素的距离。
  • 应用场景
    • 运动规划(无人机、机械臂轨迹优化,如CHOMP、FIESTA算法,利用梯度信息保证轨迹远离障碍物);
    • 实时避障(机器人感知周围障碍物距离并快速反应)。

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7d8edc1d28c448679719a4f22a1f5130.png

  1. Voronoi Diagram Map
    在这里插入图片描述

TSDF vs ESDF

  • TSDF
    核心特点:距离表面超过截断阈值(±2)后,数值固定为截断值(不再随距离变化),表面仍为0。
🔵2  🔵2  🔵2   🔵2  🔵1   🔵1  🔵2  🔵2  🔵2  🔵2
🔵2  🔵2  🔵2   🔵1  🔵1   🔵1  🔵1  🔵2  🔵2  🔵2
🔵2  🔵2  🔴1   🔴1  🔴1   🔴1  🔴1  🔴1  🔵2  🔵2
                 ----------------
🔵2  🔵1  🔴1  |🟠0  🟠0   🟠0| 🔴1  🔵1  🔵2  🔵2
🔵1  🔵1  🔴1  |🟠0  🔴-1  🟠0| 🔴1  🔵1  🔵1  🔵1
🔵1  🔵1  🔴1  |🟠0  🟠0   🟠0| 🔴1  🔵1  🔵1  🔵1
                 ----------------
🔵2  🔵1  🔴1   🔴1  🔴1   🔴1  🔴1  🔵1  🔵2  🔵2
🔵2  🔵2  🔴1   🔴1  🔴1   🔴1  🔴1  🔵2  🔵2  🔵2
🔵2  🔵2  🔵2   🔵1  🔵1   🔵1  🔵1  🔵2  🔵2  🔵2
🔵2  🔵2  🔵2   🔵2  🔵1   🔵1  🔵2  🔵2  🔵2  🔵2
  • ESDF
    核心特点:物体内外均为真实欧氏距离,数值连续变化(无截断),物体内为负、外为正、表面为0。
🔵3  🔵3  🔵2   🔵2  🔵1  🔵1  🔵2  🔵2  🔵3  🔵3
🔵3  🔵2  🔵2   🔵1  🔵1  🔵1  🔵1  🔵2  🔵2  🔵3
🔵2  🔵2  🔴1   🔴1  🔴1  🔴1  🔴1  🔴1  🔵2  🔵2
                 ----------------
🔵2  🔵1  🔴1  |🟠0  🟠0  🟠0|  🔴1  🔵1  🔵2  🔵2
🔵1  🔵1  🔴1  |🟠0  🟠0  🟠0|  🔴1  🔵1  🔵1  🔵1
🔵1  🔵1  🔴1  |🟠0  🟠0  🟠0|  🔴1  🔵1  🔵1  🔵1
                 ----------------
🔵2  🔵1  🔴1   🔴1  🔴1  🔴1  🔴1  🔵1  🔵2  🔵2
🔵2  🔵2  🔴1   🔴1  🔴1  🔴1  🔴1  🔵2  🔵2  🔵2
🔵3  🔵2  🔵2   🔵1  🔵1  🔵1  🔵1  🔵2  🔵2  🔵3
🔵3  🔵3  🔵2   🔵2  🔵1  🔵1  🔵2  🔵2  🔵3  🔵3
对比维度 ESDF(欧氏符号距离场) TSDF(截断符号距离场)
数值本质 真实欧氏距离,连续无截断 截断距离,超出阈值后固定数值
数值范围 无限制(随距离无限递增/递减) 限定在[-截断阈值, 截断阈值](如±2)
存储开销 较大(需存储所有距离值) 较小(仅存储截断范围内的值,其余固定)
表面表示 精确(0值严格对应物体表面) 同样精确(0值对应表面,不受截断影响)
适用场景 需精确距离计算(如路径规划、碰撞检测) 实时建图(如RGB-D相机稠密建图)

三、主流地图技术对比总结

地图类型 维度 存储结构 核心信息 优点 缺点 典型应用
Occupancy Grid 2D 均匀网格 占据概率 简单、成熟、高效 仅限2D平面 室内机器人导航
Elevation Map 2.5D 均匀网格 高度值 比2D多地形信息 无法表示悬空物 无人车、野外机器人
Point Cloud 3D 点列表 3D点坐标 构建简单、信息完整 无结构、数据量大 离线重建、可视化
OctoMap 3D 八叉树 占据概率 稀疏、高效、带概率 分辨率固定、不够精细 无人机避障、机械臂
Voxel Hashing 3D 哈希表+体素块 SDF/颜色 内存效率极高、实时 实现复杂 实时AR/VR重建
TSDF 3D 网格/体素块 截断符号距离 表面重建质量极高 计算量大、需GPU 高精度3D重建
ESDF 3D 网格 欧氏距离场 适合梯度规划 距离变换耗时 无人机/机器人运动规划

四、开源项目与链接验证

以下为各类地图技术对应的代表性开源项目,均已验证GitHub链接可正常访问:

地图类型 代表性开源项目 GitHub链接(已验证) 简介
2D Occupancy Grid Google Cartographer https://github.com/cartographer-project/cartographer Google工业级激光SLAM,支持2D/3D占据栅格地图生成
ROS Navigation Stack https://github.com/ros-planning/navigation ROS标准导航栈,map_server包加载/发布2D地图
Hector SLAM https://github.com/tu-darmstadt-ros-pkg/hector_slam 无需里程计的激光SLAM,适配高速/不平坦地面
2.5D Elevation Map Grid Map https://github.com/anybotics/grid_map 通用网格地图库,支持海拔、方差等多图层,专为2.5D地形设计
ROS Elevation Mapping https://github.com/leggedrobotics/elevation_mapping ETH为四足机器人ANYmal开发的实时高程映射包,基于Grid Map
3D Point Cloud LOAM https://github.com/laboshinl/loam_velodyne 开创性激光里程计与建图方案,直接生成点云地图,效率高
A-LOAM https://github.com/HKUST-Aerial-Robotics/A-LOAM LOAM进阶版,代码清晰,依赖Ceres Solver优化
OctoMap OctoMap(官方库) https://github.com/OctoMap/octomap 完整C++实现,含地图类、概率更新、射线投射等核心功能
OctoMap ROS https://github.com/OctoMap/octomap_mapping OctoMap与ROS的接口包,支持点云转OctoMap
Voxel Hashing Voxblox https://github.com/ethz-asl/voxblox 核心库,基于体素哈希实现TSDF与ESDF增量构建,适配机器人在线应用
Voxel Hashing https://github.com/niessner/VoxelHashing 只分配看到的体素; 用哈希表来索引体素块;
InfiniTAM https://github.com/victorprad/InfiniTAM 跨平台实时TSDF重建库,基于体素哈希
TSDF(Dense) KinectFusion(开源实现) https://github.com/Nerei/kinfu_remake 微软KinectFusion非官方实现,用均匀体素网格,是TSDF领域开创性工作
OpenChisel https://github.com/personalrobotics/OpenChisel 开源TSDF重建系统,实现类似KinectFusion的算法
ElasticFusion https://github.com/mp3guy/ElasticFusion 经典稠密SLAM,用面元(Surfel)表示地图,重建效果极佳
ESDF Voxblox(ESDF模块) https://github.com/ethz-asl/voxblox 从TSDF层增量构建ESDF的高效算法,集成于Voxblox
esdf_server(Voxblox ROS) 含于Voxblox的ROS包中 订阅点云/OctoMap,发布构建好的ESDF
FIESTA https://github.com/hku-mars/FIESTA 港大火星实验室开源,直接从点云构建ESDF,速度快,适配规划场景
其他 Teach-Repeat-Replan https://github.com/HKUST-Aerial-Robotics/Teach-Repeat-Replan TRR’s Local Map
Voronoi Diagram Map https://github.com/ethz-asl/mav_voxblox_planning 拓扑地图; 用节点(关键位置)和边(连通关系)表示环境,适用于大场景路径规划

五、技术选型与实践建议

1. 入门与2D场景验证

  • 优先选择 ROS Navigation Stack + Hector SLAM,仅需一台激光雷达即可快速实现2D建图与导航,降低入门门槛。

2. 3D占据感知(无人机/机械臂)

  • 核心选型 OctoMap:通过SLAM前端(如A-LOAM)生成点云,再用pointcloud_to_octomap节点转换为OctoMap,直接用于3D避障与空间感知。

3. 高质量3D重建

  • 若需精细模型(如3D打印、影视),研究 InfiniTAMOpenChisel,输入设备选择RGB-D相机(如Realsense、Kinect)。

4. 高级导航与运动规划

  • 首选 FIESTA:专为规划设计,直接从点云构建ESDF,速度快,适配无人机高速飞行等场景;
  • 次选 Voxblox:若系统已基于TSDF(需同时实现重建与规划),可一站式解决TSDF与ESDF构建。

5. pcd & ply

  • .pcd(Point Cloud Data)
    是由 PCL(Point Cloud Library,点云处理最主流的库)专门为点云处理量身设计的原生格式,所有设计都围绕点云的特性优化,没有兼顾其他3D数据类型。

    .pcd 结构(点云专属)
    头部会精准定义点云的核心元数据,结构紧凑且针对性强,示例:

# .PCD v0.7 - Point Cloud Data file format
VERSION 0.7          # 格式版本
FIELDS x y z rgb     # 点的字段(坐标+颜色)
SIZE 4 4 4 4         # 每个字段的字节数
TYPE F F F U         # 字段类型(F=浮点型,U=无符号整型)
COUNT 1 1 1 1        # 每个字段的元素数
WIDTH 10000          # 点云宽度(点数量,有序点云为列数)
HEIGHT 1             # 点云高度(1=无序点云,>1=有序点云)
VIEWPOINT 0 0 0 1 0 0 0  # 采集视角(传感器位姿)
POINTS 10000         # 总点数
DATA binary          # 数据存储方式(binary/ascii)
  • .ply(Polygon File Format)
    也叫“斯坦福多边形格式”,最初设计用于存储多边形网格(3D模型),后来扩展支持点云,是通用的3D几何文件格式(可同时存点和面)。

.ply 结构(通用3D)
头部定义“元素类型”(顶点/面),支持同时存储点和网格,示例:

ply
format ascii 1.0     # 格式版本+存储方式
element vertex 10000 # 顶点(点云)数量
property float x     # 顶点字段定义
property float y
property float z
property uchar red   # 颜色字段
property uchar green
property uchar blue
element face 0       # 面(网格)数量(0=无网格)
end_header           # 头部结束

关键能力对比

维度 .pcd .ply
元数据支持 支持点云专属元数据(传感器、视角、时间戳) 通用元数据,无点云专属字段
数据类型 专为点云优化,解析效率高 通用字段定义,需手动映射解析
兼容数据类型 仅点云(支持有序/稀疏点云) 点云 + 网格(多边形)
工具兼容性 仅PCL、CloudCompare等点云工具原生支持 Blender、MeshLab、MATLAB、Python等几乎所有3D工具原生支持
跨平台/跨软件 差(需插件) 优(通用格式)
适用场景 PCL开发、激光雷达点云处理、需传感器元数据 跨工具分享、点云+网格结合、通用3D场景

实用选择建议

  • 如果你用 PCL库做算法开发、处理激光雷达/深度相机的点云(需要记录传感器信息、有序点云)→ 选 .pcd
  • 如果你需要 跨软件分享点云(比如Blender建模、MeshLab可视化)、或点云附带网格信息 → 选 .ply
  • 二进制版本的两者文件大小接近,ASCII版本 .pcd 更紧凑,.ply 可读性更强。

总结

  1. 核心定位:.pcd点云专用格式(PCL生态首选),.ply通用3D格式(支持点+面);
  2. 兼容性:.ply 跨软件/平台兼容性远优于 .pcd.pcd 仅在PCL开发中优势明显;
  3. 场景选择:需传感器元数据/PCL开发选 .pcd,需跨工具分享/含网格选 .ply

主要参考

https://www.bilibili.com/video/BV1uW7DzDERi

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐