Patchwork++:基于点云的快速、稳健的地面分割方法

news2024/11/20 0:14:41

1. 背景

论文发表在2022IROS,是Patchwork的改进版本。算法通过数学方法进行快速而鲁棒性很强的地面分割,在智能机器人上的可操作性非常强。通过微调算法,可以应用于16-beams等多种规格的激光雷达。由于激光雷达点云数据标注的难度非常大,生产中自制数据集的成本很高,我做了一些对比实验,和RandLA-Net,Cylinder3D,GndNet,PVKD等机器学习模型进行比较,在分割地面这一任务上,用自制数据集测试,Patchwork++的表现远好于其他。

本文对 Patchwork 和 Patchwork++ 两篇论文作分析和介绍,简单讲述论文作者的思路和数学原理,最后展示根据需求修改后的算法表现效果——在不同设备上表现依然迅速稳健。

2. 摘要

传统数学方法,采用求反射梯度与地面对比的思路,对于高度有差别的平面难以识别(如低矮路沿),分割出的地面不是很合适。论文提出一种鲁棒性很强的分割方法,基于 Patchwork 的思路进行改进,自适应地调整参数,效果提升明显,运行速度极快。

3. 理论

Patchwork++ 的基本理论思路和 Patchwork 类似,下面将结合两篇论文,对方法中的每个步骤进行说明和讲解。

图 3-1:Patchwork++理论架构对比

3.1. Problem Definition 问题定义

对地面分割做数学建模:对于所有的点云表示为P=\left\{​{\bf p}_{1},{\bf p}_{2},\ldots,{\bf p}_{k},\ldots,{\bf p}_{n}\right\},对点集进行二分类,分为G地面和N非地面,其中包括车辆,行人,植被,墙体等。其研究目标是最大化TP,最小化FN和FP,对于点集P可以有以下表示:

P=\bigcup_i p_i=G \cup N=\hat{G} \cup \hat{N}

3.2. RNR: Reflected Noise Removal 反射噪声去除

思路:取出距离传感器较近的、高度小于某阈值,强度小于某阈值的数据点,这些点被认为是噪声点。实际情况下,由于激光雷达穿透效应,在地面以下偶尔也会产生噪声点,将其称为虚拟噪声,用一个自动更新的高度阈值,认为该阈值以下的点都为噪声,将其去除。

图 3.2-1:地面以下的虚拟噪声点的产生

实现:维护两个阈值,高度阈值h_{noise}和强度阈值I_{noise},高度阈值在 A-GLE 环节自动更新。h_{noise}需要自动更新,其原因在于如果采用固定值z_{min},在向下陡坡的场景中,就会去除真实的地面点,造成数据缺失。如下图所示,(a) 表示GT,红色点表示为高度较低的地面;(b) 表示用定值 基于直接高度去除了真值(Patchwork方法);(c) 表示在 Patchwork 算法下造成了比较严重的欠分割情况;(d) 表示 Patchwork++ 算法维护一个自动更新的h_{noise},成功识别到了高度较低/下降坡度的地面。

图 3.2-2 RNR实现效果

3.3. CZM: Concentric Zone Model 同心区域模型

思路:用设计的扇区分割路面,用扇区拟合路面几何形态。基于路面非平坦假设,不应直接估计地面,而是通过假设非平坦地面有多个小块bin,在小块之内地面是平坦的。以往的方法用统一的极坐标系表示扇区S,再将扇区S划分为规则间隔的BIN。范用性不强,有以下两个缺陷:

  • 稀疏问题:随距离增长,点云越发稀疏,难以找到正确的平面。
  • 代表性问题:靠近原点的bin太小,难以表示扇区的空间特征,有时会导致扇区内地面法向量估计失败。
图 3.3-1 两种不同的扇区分割方式

实现:以一种不增加计算复杂度的方式在bin之间分配适当的密度,数学模型如下:

全点集P被分为多个zone,每个zone由不同面积大小的bin组成,定义为:

其中,Z_m表示为zone,N_z表示zone的个数,那么Z_m表示为:

L_{min, m}L_{max, m}表示Z_m的最小和最大向径边界;同样被划分为多个N_{r, m} \times N_{\theta, m}个bins,对于不同的zone,bin的大小也不同。在这里,S_{i,j,m}的定义为:

\mathcal{S}_{i, j, m}=\left\{\mathbf{p}_k \in Z_m \left\lvert\, \frac{(i-1) \cdot \Delta L_m}{N_{r, m}} \leq \rho_k-L_{\min }<\frac{i \cdot \Delta L_m}{N_{r, m}}\right., \frac{(j-1) \cdot 2 \pi}{N_{\theta, m}}-\pi \leq \theta_k<\frac{j \cdot 2 \pi}{N_{\theta, m}}-\pi\right\}

其中,\rho_k=\sqrt{x_k^2+y_k^2}, \theta_k=\arctan 2\left(y_k, x_k\right), \Delta L_m=L_{\max , m}-L_{\text {min }, m},且L_{max, m} = L_{min, m+1},对于全局最小边界L_{min},其用于考虑移动平台或车辆附近的空旷情况。

实际实现,对于Z_{1},Z_{2},Z_{3},Z_{4}分别被称为中心区、四分之一区、半区和外区,统称为一个central zone,其中Z_1, Z_4的bin大小被设置的更大,以解决稀疏性问题和表示性问题。其计算方法为:

3.4. R-VPF: Region-wise Vertical Plane Fitting 区域垂直平面拟合

思路:由于路面可能存在一些高低差,在拟合时认为高程差不多的平面为同一个路面。拟合平面前,找到每个bin中的垂直点子集,将bin内的垂直平面找到并作过滤掉,拟合出更准确的平面。由于 PCA(点云主成分析)对于异常点敏感,经过这一步骤处理后可适用范围更广。

图 3.4-1 可视化描述区域垂直平面拟合

实现:利用 CMZ 分割得到的bin,设第n个bin为P_n,通过以下4个步骤得到估计出的垂直点\hat{V}_n

以如下操作对bin进行k次迭代,挑选出足够的种子点集。

  • 预选种子点集

进行k次迭代,每次迭代选取”一些”(论文原句)高度最低的点,求这些点的平均值\mathbf{m}_{n}^{k}\in\mathbb{R}^{3}\;,以及该子集的单位法向量v^k_{3, n},代表 PCA 后最小特征值对应的归一化后的单位特征向量。

  • 潜在垂直平面点集

对第k次迭代的种子点集\hat{P}_{n}^{k},挑选出潜在的垂直平面点集\hat{W}_{n,k},公式如下:

其中,k = 1时\hat{P}_{n}^{k}\leftarrow P_{n},即种子点集为第n个bin的全部点。每次迭代时\hat{P}_{n}^{k}\leftarrow P_{n}-\bigcup_{i=1}^{k-1}\hat{V}_{n}^{i},即上一次的种子点集减去之前迭代出的所有垂直点;d_v表示估计的垂直平面的距离阈值。

  • 二值化验证点集

对第k次迭代的潜在垂直平面点集{\hat{W}}_{n,k},二值验证出认为真正垂直的点集$\hat{V}_n^k$,公式如下:

其中,u_z表示z轴方向的单位法向量[0, 0, 1]^T\theta_v是估计平面的单位法向量的阈值(点的法向量和

z轴法向量做点乘,两个单位向量的点乘结果就是夹角的cos值,判断该值与90度的相近程度。在范围内,由这次迭代的潜在点找到的垂直点集,可以被认为是垂直点集;否则,这次的垂直点集,不能认为是垂直的)。

最后,累积所有的垂直点得到总的垂直点集\hat{V}_nK_v表示总的迭代次数,公式如下:

3.5. R-GPF: Region-wise Ground Plane Fitting 区域地面拟合

思路:估计局部地面,将局部地面合并。对 R-VPF 处理后的各个bin进行PCA,取第三个特征代表高度特征。采用 PCA 在速度上至少比 RANSAC 快两倍,进行预处理后,效果类似。通俗来讲,设置一个阈值,每次迭代更新阈值,3次迭代后挑选出合适的地面种子点。

实现:对以上操作得到的bin进行计算,数学模型如下:

对zone内n个bin内的点集命名为S_n,共计有$\mathcal{N}_c=\Sigma_{m=1}^{N_z} N_{r, m} \times N_{\theta, m}$个这样的集合。如果一个 zone内有足够多的bin,即可以认为足够拟合平面,选取z最低的点作为种子点。令$\bar{z}_{i n i t}$作为N_{seed}个种子点的z的平均值,则初始的地面的估计如下:

其中函数z( \cdot )返回点的高度值,z_{seed}表示种子点挑选高度阈值。第一次估计的地面点,是z高度不大于平均高度与高度阈值之和\bar{z}_{i n i t} + z_{seed}的点集。

算法经过l次迭代计算出bin的地面拟合$\hat { G } _ { n } ^ { l }$,第l次迭代的地面法向量为n^l_n。接着计算地面系数$d _ { n } ^ { l }$

其中,\bar{p}^l_n是第l次迭代,所有被分类为地面的点的平均值,用l次迭代得到的地面估计的平均点与法向量点乘,可以反映两个向量之间的投影值。第l+1次迭代的地面估计值计算公式为:

其中,\hat{d}_k=-(\mathbf{n}_n^l)^T\mathbf{p}_kM_d表示平面高度阈值。实验证明,当\hat{G}_n=\hat{G}_n^3即进行3次迭代的效果最好。

3.6. A-GLE: Adaptive Ground Likelihood Estimation 自适应地面似然估计

思路:对上一步处理后得到的bin内种子点做处理,估计一个bin是否为地面。从 Uprightness 垂直度\phi(\cdot)、Elevation 高程差\psi(\cdot)和 Flatness 平整度\varphi(\cdot)三个方向设计。

实现:从Patchwork 的 GLE 步骤讲起,如下设计函数用于评估bin为是否为平面:

Uprightness \phi:为了使\hat{G}_{n}中大部分点都归属于地面(尽可能为TP),对每个zone的法向量\mathbf{v}_{3,n}做如下操作:

其中,z=[0,0,1]^T\theta_{\tau}为设置的角度阈值,这部分实际计算为bin内法向量与X-Y平面的夹角,当夹角趋于90^{\circ}时,意味着bin拟合的区域平面越平整。\theta_{\tau}在论文中被经验化地设置为45^{\circ},即拟合出的区域平面的最大倾斜角度为45^{\circ}

Elevation \psi为了解决高度不同的平面计算得到一样的垂直度,而误把一些建筑物或车辆顶部当作地面的误检,引入高程差计算项,具体如下:

其中\kappa(\cdot)为使r_n呈指数增长的自适应中点函数;如果r_{n}<L_{r},即距离太远,则不予考虑,认为该平面仅由平整度和垂直度考虑。当bin的平均高度\bar{z}_{n}<\kappa(r_{n})时,即认为其为地面的可能性较高,输出值大于0.5;反之,认为其为地面的可能性较低,输出值小于0.5。

Flatness \varphi为增加上坡地面的判断,利用高度判断的结果,对一些坡度较高的上坡地面进行拟合。

\psi \geqslant 0.5时,地面已经足够平整,无需计算该项;当\psi < 0.5时,需要判断其是否是可能的上坡路面。其中,\zeta>1为一个设定的系数,目的是使得函数结果更明显;\sigma_n表示bin的平整度,\sigma_{\tau,m}为设定的平整度阈值,计算方法如下:

\lambda_{1,n},\lambda_{2,n},\lambda_{3,n}为bin的 PCA 特征,按降序排列。

最后,对所有bin统一以上三个方面,计算出整个点云的拟合平面\hat{G},统计\mathcal{L}(\theta,\mathcal{X})>0.5的bin的集合,即为所拟合出的路面。

改进:不难发现,GLE 中设计了许多参数,根据不同环境需要有不同的选择;在选择参数时,尤其是在计算高程差\psi所用的\kappa(r_n)、计算平整度\varphi时所用的\sigma_{\tau,m}非常耗时。Patchwork++论文基于 GLE 提出 A-GLE,为方便描述,将原先的\bar{z}_{n},\sigma_{n},\kappa(r_{n}),\sigma_{\tau,m}更换为e_{n},f_{n},e_{\tau,m},f_{\tau,m},即高程相关用e表示,平整度相关用f表示。

图 3.5-1 U、H、C表示城市、高速公路和乡村,不同场景下e, f 的分布具有,明显差异

为解决该问题,Patchwork++论文基于 GLE 提出 A-GLE,一种自适应的参数调整方法,同时更新 RNR 步骤的高度阈值h_{noise}

Elevation e:用 Definite Ground D_m表示 CZM 步骤中第m个zone,计算\phi(\cdot)\cdot\psi(\cdot)满足平面拟合标准。

E_mD_m中bin的e_n的集合,基于E_m,对高程标准阈值e_{\tau,m}进行更新:

其中,mean(\cdot)表示集合均值,stdev(\cdot)表示集合标准差,a_m为 CZM 中第m个ring的标准差修正增益,是定值。

Flatness f:由于将空间划分为bin,经过 PCA 计算得到的特征值\lambda_{1, n}\lambda_{2, n}是直接基于点云的,拟合出的平面会有坐标系未对齐的问题,导致平面拟合出现错误。这里对原先算法作纠正,直接用

\lambda_{3,n}=f_n平面法向量代替平整度估计。

类似的,令F_mD_mf_n的集合,基于F_m,对平整度标准阈值f_{\tau,m}进行更新:

其中,b_{m}>0表示 CZM 中第m个ring的标准差修正增益,是定值。

Noise Removal Height h:思路类似。

其中,E_1表示距离传感器最近的一环zone中的种子点z的集合,\delta < 0为需要移除的高度边界。

3.7. TGR: Temporal Ground Revert 临时地面还原

思路:对 A-GLE 处理后估计的地面进行纠正,恢复一些被误检的bin。一个bin内可能存在部分异常点使得地面拟合失效(例如崎岖的草地),计算值很可能超过阈值而导致错误估计。这是因为 A-GLE 是随时间推移依据所有的bin更新阈值,在当前时间更新的值会在下次被利用,但当前时间下的估计就会发生偏差;且采用均值加权更新,显然对于一些估计值偏大的bin会出现误检。

其中,c_m为 CZM 第m个ring的标准差,是固定的值;F_m^tD_m^t中平整度f_n的集,对于被拒绝的 f_{n}>f_{\tau,m}的bin,如果其bin满足f_{n}<f_{\tau,m}^{t},则被纠正为地面。

图 3.7-1 A-GLE 和 TGR 的可视化描述。 A-GLE存储估计的地平面的变量,即en和fn,并根据先前的估计结果更新其参数。 TGR 根据时间 t 时估计的地平面的变量来双重检查未分割的地面。

4. 表现

4.1. 论文数据

图 4.2-1: Performance comparison between our proposed method and otherground segmentation methods. Metrics are expressed as (mean)±(stdev).
图 4.2-2: Speed comparison of ground segmentation methods on Se-quence 05 of the SemanticKITTI dataset, using Intel(R) Core(TM) i7-7700K CPU (unit: Hz).

4.2. 自测表现

运行环境:

  • OS: Ubuntu 20.04.6 LTS
  • CPU: 12th Gen Intel® Core™ i7-12700H × 20
  • GPU: NVIDIA GeForce RTX 3060 Laptop GPU
  • Python: 3.6.13
  • Open3D: 0.17.0

运行效果:

  • 数据:Velodyne-Puck(VLP-16)在园区内采集。
  • 速度:1.8ms-5.1ms,平均在2.6ms。
  • 表现:粗略统计,在自制数据集上测试,80%以上的场景在20m半径内正确分割路面,95%以上的场景在10m半径内正确分割路面。
图 4.2-3:算法运行效果对比:微调后算法在真实数据上测试(左上),原始算法在真实数据上测试(右上),微调后算法在SemanticKITTI上测试(左下),RandLA-Net模型在真实数据上测试(右下)

参考文献

Patchwork: Concentric Zone-based Region-wise Ground Segmentation with Ground Likelihood Estimation Using a 3D LiDAR Sensor

Patchwork++: Fast and Robust Ground Segmentation Solving Partial Under-Segmentation Using 3D Point Cloud

论文分享:Patchwork++/Patchwork-基于点云的快速稳健地面分割算法 - 知乎

超详细的激光点云地面分割(可行驶区域提取)方案_激光点云数据的平面分割-CSDN博客

Patchwork++:基于点云的快速、稳健的地面分割方法-腾讯云开发者社区-腾讯云

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1798682.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据泄露防护(DLP)系统有哪些?2024年数据泄露防护系统TOP5排名

数据泄露防护&#xff08;DLP&#xff09;系统是企业为确保敏感信息不被非法访问、使用或泄露而采用的重要安全策略。以下是一些常见的数据泄露防护系统&#xff0c;以及它们的功能和优点。 1、安企神 DLP 安企神 DLP是一款为企业研发的数据防泄漏系统&#xff0c;以强大的功能…

pxe自动装机

概念 pxe是c/s模式。允许客户端通过网络从远程服务器&#xff08;服务端&#xff09;下载引导镜像&#xff0c;加载安装文件&#xff0c;实现自动化安装操作系统。 无人值守&#xff1a;安装选项不需要人为干预&#xff0c;可以自动化实现。 pxe的优点&#xff1a;1.规模化&…

美琳莱卡:创新消费模式引领新零售时代

公司成立时间与定位 美琳莱卡自创立之初,便以独特的视角和前瞻性的战略定位,立足于消费市场的变革前沿。公司成立于2024年,正值全球数字化浪潮蓬勃兴起,消费升级趋势日益明显之际。美琳莱卡敏锐地捕捉到这一时代机遇,将自身定位为创新消费模式的引领者,致力于通过线上线下高度…

问题:当频点数大于载波数时,() #学习方法#知识分享

问题&#xff1a;当频点数大于载波数时&#xff0c;&#xff08;&#xff09; A.基带跳频可以执行&#xff0c;混合跳频可以执行 B.基带跳频不可以执行&#xff0c;混合跳频可以执行 C.基带跳频可以执行&#xff0c;混合跳频不可以执行 D.基带跳频不可以执行&#xff0c;混…

Windows 搭建C++ 纯开源开发环境 进行 YOLOv8 模型推理的开发测试环境

文章大纲 IDE 选择纯开源首选 Codeblocks 跨平台开发IDE其次选择 visual studio 社区版 or visual studio code包管理MSYS2pacmanconda & mambavcpkgNuGetapt-get其他手动配置 Visual studio 开发环境下载 visual studio基本配置基本测试:打开图片,打开摄像头读取图片读取…

大学信息资源管理试题及答案,分享几个实用搜题和学习工具 #职场发展#微信

人工智能技术的发展正逐渐改变着我们的生活&#xff0c;学习如何运用这些技术将成为大学生的必备素养。 1.彩虹搜题 这是个微信公众号 算法持续优化&#xff0c;提升搜题效果。每一次搜索都更精准&#xff0c;答案更有价值。 下方附上一些测试的试题及答案 1、在SpringMVC配…

C++:Traits编程技法在STL迭代器中的应用

文章目录 迭代器相应型别Traits(特性)编程技法——STL源代码门钥迭代器相应型别一&#xff1a;value_type迭代器相应型别二&#xff1a;difference_type迭代器相应型别三&#xff1a;reference_type迭代器相应型别四&#xff1a;pointer_type迭代器相应型别五&#xff1a;itera…

智能数据分析(1)Lecture 6-8b

Lecture 6: Generative Models 生成模型 vs 判别模型 判别模型&#xff08;Discriminative Models&#xff09; 判别模型的主要任务是直接学习输入 x x x 和类别 y y y 之间的关系。它们不关心数据的生成过程&#xff0c;而是直接估计类别的边界。 定义&#xff1a;判别模…

建筑建筑一建考试试题及答案,分享几个实用搜题和学习工具 #其他#职场发展

收录了大量考试类型的题库&#xff0c;大到考公&#xff0c;小到知识竞赛&#xff0c;题库资源算是比较丰富的了。操作起来也不难&#xff0c;我们只需输入题目内容&#xff0c;即可快速搜索出答案&#xff0c;而且它在给出答案的同时还会附带解析。最重要的是&#xff0c;搜题…

【YOLOv10改进[CONV]】使用DualConv二次创新C2f模块实现轻量化 + 含全部代码和详细修改方式 + 手撕结构图 + 全网首发

本文将使用DualConv二次创新C2f模块实现轻量化,助力YOLOv10目标检测效果的实践,文中含全部代码、详细修改方式以及手撕结构图。助您轻松理解改进的方法。 改进前和改进后的参数对比: 目录 一 DualConv 1 结合33卷积和11卷积核 2 DualConv 3 可视化 二 C2f_DualConv助…

轻松实现文件随机提取:从众多文件夹中智能筛选指定数量文件,一键移至目标文件夹!

在信息爆炸的时代&#xff0c;电脑中的文件越来越多&#xff0c;整理起来却越来越头疼。你是否也曾在海量的文件夹中迷失&#xff0c;苦苦寻找那个特定的文件&#xff1f;你是否也曾为了将文件从一个文件夹移动到另一个文件夹而耗费大量时间&#xff1f;现在&#xff0c;我们为…

群体优化算法---蜂群优化算法应用于数据挖掘

介绍 蜂群优化算法&#xff08;Bee Algorithm, BA&#xff09;及其变种主要模拟蜜蜂的觅食行为&#xff0c;以解决复杂的优化问题。这类算法通过蜜蜂之间的信息交流和协作来探索解空间&#xff0c;寻找全局最优解。主要应用于参数优化&#xff0c;结构优化&#xff0c;机器学习…

配音方面目前可以用AIGC替代吗?( 计育韬老师高校公益巡讲答疑实录2024)

这是计育韬老师第 8 次开展面向全国高校的新媒体技术公益巡讲活动了。而在每场讲座尾声&#xff0c;互动答疑环节往往反映了高校师生当前最普遍的运营困境&#xff0c;特此计老师在现场即兴答疑之外&#xff0c;会尽量选择有较高价值的提问进行文字答疑梳理。 *本轮巡讲主题除了…

STM32项目分享:智能家居(机智云)系统

目录 一、前言 二、项目简介 1.功能详解 2.主要器件 三、原理图设计 四、PCB硬件设计 1.PCB图 2.PCB板及元器件图 五、程序设计 六、实验效果 七、资料内容 项目分享 一、前言 项目成品图片&#xff1a; 哔哩哔哩视频链接&#xff1a; https://www.bilibili.c…

设计软件有哪些?效果工具篇(2),渲染100邀请码1a12

这次我们继续介绍一些渲染效果和后期处理的工具。 1、Krakatoa Krakatoa是由Thinkbox Software开发的强大的粒子渲染器&#xff0c;可用于Autodesk 3ds Max等软件。它专注于处理大规模粒子数据&#xff0c;提供了高效的渲染解决方案&#xff0c;适用于各种特效、粒子系统和模…

VMware 三种网络模式

目录 一、网卡、路由器、交换机 二、虚拟网络编辑器 三、网络模式 1.桥接模式 通信方式 特点 配置 连通情况 使用场景 2.NAT模式 通信方式 特点 配置 连通情况 使用场景 3.仅主机 通信方式 特点 配置 连通情况 使用场景 一、网卡、路由器、交换机 网卡(Ne…

短视频矩阵源码----如何做正规开发规则分享:

一、什么是SaaS化服务技术开发&#xff1f; &#xff08;短视频矩阵系统是源头开发的应该分为3个端口---- 总后台控制端、总代理端口&#xff0c;总商户后台&#xff09; SaaS是软件即服务&#xff08;Software as a Service&#xff09;的缩写。它是一种通过互联网提供软件应…

小白新手一篇看懂PolarDB-X

小白新手一篇看懂PolarDB-X 什么是PolarDB-X如何安装安装PolarDB-X安装Mysql安装jdk Spring BootPolarDB-X应用测试安装Git及下载模板代码创建数据库业务操作 体验感受 什么是PolarDB-X 在使用一款新的产品之前&#xff0c;首先就是要对这个产品有一个基础的理解&#xff0c;适…

Java17 --- SpringCloud之seate

目录 一、创建seata需要的mysql数据库表 二、修改seata的配置文件 三、启动nacos及seata 四、创建需要的数据库及表 一、创建seata需要的mysql数据库表 CREATE DATABASE seata;CREATE TABLE IF NOT EXISTS global_table(xid VARCHAR(128) NOT NULL,…

RK3568技术笔记之三 SAIL-RK3568开发板板卡功能测试

从这里开始&#xff0c;就是老生常谈系列之一&#xff1a;板卡功能测试。 放一张图镇一下帖 按照我自己顺手的方式&#xff0c;把这板子功能测一下。 先把开发板串口信息打印出来。 工具 功能 备注 电脑&#xff08;必备&#xff09; 提供使用终端软件环境 需要具备至少…