在相当长的一段时间里,我们对激光雷达“技术路线”的讨论,都停留在ToF激光雷达“按扫描架构如何分类”,却忽略了一个更高维度的分类:以测距方式为依据,激光雷达可分为ToF与FMCW两个大类。
除光学镜头有相同之处,这是两个几乎完全不同的品类。可以说,TOF与FMCW的分类,要远比所谓“机械旋转、MEMS、转镜、棱镜、Flash”这样的分类重要得多。
从公开信息看,截止目前,从事FMCW激光雷达公司研发的大致有如下两股力量:
1.从一开始就聚焦于FCMW路线的公司,如Aeva、Mobileye、Blackmore、LightIC、Strobe、Analog Photonics、Baraja、Scantinel Photonics、Bridger Photonics、Insight LiDAR、SiLC、OURS、光勺科技、光珀、洛微、微源光子等;
2.Waymo、禾赛、华为等现阶段以ToF路线为主的公司。
有意思的是,在2017年之后成立的公司,几乎都没有做TOF产品,而是从一开始就走FMCW路线。因为,在这些公司看来,TOF路线已经被先发的公司做得比较成熟了,他们再做机会已经不多了;并且,TOF技术路线固有的局限性,也需要通过一种新的技术路线来“弥补”。
然而,尽管参与者甚众,但据光勺科技CEO姚建在几个月前的一次演讲中说,目前,在全球范围内,能提供FMCW激光雷达样机的就Aeva、Blackmore、光勺等极少数几家。
FMCW这个概念容易给人一种“不明觉厉”的感觉,但除少数从业者外,外界对FMCW激光雷达所知甚少。
9月份,《九章智驾》阅读了超过10万字关于FMCW激光雷达的公开资料,并在这些资料的基础上又梳理出数十个问题,然后,带着这些问题跟光勺科技CEO姚建、洛微CTO Andy.Sun、挚感光子IC设计总监吴雷等6位业内专家做了深入交流,整理出本系列关于FMCW激光雷达的“科普文”。
在采访的过程中,《九章智驾》发现了一个很有意思的现象:对关于FMCW的一些基本问题,从业者们之间尚未完全达成共识。
一.FMCW激光雷达的定义
FMCW的全称是 Frequency Modulated Continuous Wave,翻译成中文为“调频连续波”,它是一种相比于TOF的激光雷达测距原理。因此,在谈FMCW前,我们先简单地介绍一下TOF。
TOF(全称为Time of Flight,中文名为“飞行时间法”)的测距原理是:用光脉冲在目标物与激光雷达间的飞行时间乘以光速来测算距离。TOF激光雷达采用了脉冲振幅调制技术(AM),因而也被称为AM激光雷达。
与ToF路线不同,FMCW主要通过发送和接收连续激光束,把回光和本地光做干涉,并利用混频探测技术来测量发送和接收的频率差异,再通过频率差换算出目标物的距离。
具体地说,激光束击中目标物后被反射,而反射会影响光的频率——如果目标物向车辆走来,频率会升高;如果目标物和车辆同方向行走,则频率会降低。当反射光返回到探测器,与发射时的频率相比,就能测量两种频率之间的差值,从而计算出物体的距离信息。
简言之,ToF使用时间来测量距离,而FMCW使用频率来测量距离。
下图以三角波调频连续波为例来介绍其测距原理:蓝色为发射信号频率,红色为接收信号频率,发射的激光束被反复调制,信号频率不断变化。
图片摘自公众号“美团无人配送”于2021年6月28日发布的《主流激光雷达分类及原理》
此外,据某FMCW激光雷达公司CEO奚先生介绍,FMCW与TOF还有一个很明显的不同:TOF为了减少环境光的干扰,重点在于滤波,即将工作波长以外的光挡在雷达接收器以外;而FMCW只对自身发射的激光产生干涉,不受其他光源的光干扰。简单地说,TOF是“排斥异己”,而FMCW是“吸引同类”。
FMCW激光雷达的核心技术多来自光通信领域,微源光子董事长兼总经理朱晓琪说,FMCW激光雷达收发信号的调制解调算法跟光通信产品的光模块有很大类似之处;用光勺科技CEO姚建的话说,就是“把光通信产品的发射端和接收端放到一起,然后把光纤折起来,就是一个FMCW激光雷达”。
光通信领域中用到大量的硅光技术,而FMCW激光雷达的接收和扫描中也需要用到硅光芯片。所谓硅光芯片,即在CMOS的晶元上做很多光路的控制,包括有源的控制、调制解调这些控制。简单地说,与普通的硅芯片相比,硅光芯片既能导电又能导光。
当然,光通信产品也并非一开始就基于硅光技术。早期的光通信产品,也用到了很多分立器件,其典型特点是体积大、成本高;随着硅光技术成熟并被引入,光通信产品开始朝着集成化方向发展,应用规模也开始大幅度增长。
鉴于FMCW激光雷达高度依赖于硅光的产业链,因此,FCMW激光雷达公司的成长节奏也在很大程度上受制于硅光产业链的成熟度。
某激光雷达公司创始人告诉《九章智驾》:“为什么DARPA系的FMCW激光雷达公司基本上都是在2018年之后才成立?因为,只有这个时候,硅光的工艺才算成熟了。硅光通信也就是最近两三年才火起来的。在此之前,由于没有办法依赖硅光的集成来降低成本,因此,做FMCW的成本一定很高。”
二.FMCW激光雷达的技术路线
1.按相干的方式分类
据光勺科技CEO姚建等介绍,FMCW按光波的相干方式,可分为调频和调相两种。两者在实际上是一样的(调频的导数就是调相,调相的积分就是调频),但实现方法什么不太一样:
调频,类似于把光波的信号加在一根“弹簧”上,弹簧被压缩或拉升;
调相,是给信号加上一个随机的编码调制,本质上一种编码技术。
按洛微CTO Andy Sun的说法,相位和频率是关联的,调相可以看作是一种非线性或编码形式的调频。
线性调频FMCW的优势在于FFT的信号处理技术提供极高的信噪比,且芯片和IP非常成熟,但对激光器的调频线性度要求很高,市面现有的激光器价格较高,但近年来随着采用低成本光通信激光器技术的供应商不断涌入,未来成本会大为降低。线性调频技术的代表公司为Blackmore和SILC。
编码调相或非线性调频,对激光器的调制的要求较低,可以采用更易获得的大出光功率的光纤激光器,但缺点则在于ADC的采样速率要求很高,需要特殊的DSP算法且信噪比相对FFT较低。采用这种技术路线的代表公司为Aeva、光勺科技。
Andy Sun认为,相比于非线性调频或编码调相,线性调频方式可实现更高的信噪比,因此,在做远距离FMCW激光雷达时会是更好的选择。
2.按调频的实现方式分类
某不愿具名的激光雷达厂商负责人称,调频有两种实现方法:
外调,即用光电调制器把射频信号加载上去实现调频;
直调,即直接改变激光器的工作电流,让它的工作波长实现线性调频。
这两种方案在性能上没有什么区别,但集成度和成本很不一样:
外调的集成度很低,成本很高;
直调的方式省掉了调制器和信号源的成本,但实现难度比较大。
按上述人士的说法,目前,在激光雷达厂商中,只有Aeva一家搞定了直调技术。
三.FMCW相比于TOF的优势
与TOF相比,FMCW激光雷达有哪些优势呢?下面,我们结合TOF激光雷达的局限性来一一做对比分享。
1.TOF的光波容易受环境光干扰,而FMCW的抗干扰能力很强
TOF的关键技术在电信号(通过调制电的脉冲让光的脉冲更窄,再把光变成电信号,然后再去操纵电信号来解析出来这个脉冲),而电信号的一大特质是,很容易被环境噪声干扰。
TOF激光雷达因为采用的是直接探测,对所有进入探测器的光都响应,因此,当车上安装的激光雷达比较多或多辆搭载激光雷达的车在同一个区域行驶时,如何避免各激光雷达发出的光波互相干扰就成为一大难题。
为解决这些问题,各激光雷达厂商不得不投入大量资金去研究专门的抗干扰技术。最常见的技术是,对每一束激光脉冲进行单独编码,使其不受其他激光雷达的干扰。不过,编码会导致信噪比下降,进而牺牲测距能力。
此外,TOF激光雷达还很容易受强光的影响。如果在工作时面向阳光,则在阳光太强时,它就很难看清目标了。想象一下,摄像头和激光雷达同时因阳光太强而失灵,会是个什么情况?
Luminar等厂商为了实现更长的探测距离,甚至采用了1550纳米激光器,但姚建等人则认为,1550纳米激光器如果用于TOF,会对阳光比较敏感,因而无法在强光下工作。
当然,这个问题也并非完全无解。比如,可以通过各种滤波片来对抗干扰;也可以把系统的焦距做得更长——焦距长了,单点测试的视场角就更小了,因而,接触到的阳光也会更少。注意,后一种做法的代价是,会牺牲FOV。
不过,对FMCW激光雷达来说,“干扰”就再不是一个问题了。
首先,FMCW基于相干原理(被反射回的光跟本地光干涉),它只能接收到自己发出去的光(频率相同或相近),因而不会受到各种“杂光”的干扰——这里的“杂光”,既包括来自其他激光雷达的光,也包括太阳光等环境光。
其次,按光勺姚建的说法,FMCW激光雷达是单光子,它内置的光源的强度要比反射进来的阳光强度高至少三个数量级,因此,阳光对它的影响基本可以忽略不计。
此外,FMCW激光雷达抗干扰能力强,还有一个原因是:滤波片很小很小。
前面说过,加滤波片是对抗环境光干扰的一种手段,滤波片的带宽越小,抗干扰能力越强。通常,TOF激光雷达的滤波片带宽有20-30纳米,而FMCW激光雷达的滤波片带宽则在0.01纳米以内。
2.TOF的信噪比过低,而FMCW的信噪比很高
信噪比过低,是TOF激光雷达难以摆脱的一个痛点。具体地说,一款激光雷达宣称探测距离达200米,但实践中,它可能无法区分出所谓的目标物究竟是真目标还是伪目标。
原因在于,目标物对阳光等环境光的反射、漫反射等会引起不必要的噪声信号,而在接收端,这些噪声信号又会被转换为电信号,并被放大。
据姚建介绍,TOF激光雷达遇到的噪音在业内被称为“加性噪音”。所谓“加性噪音”,即探测端接收端到了信号,但这有可能是个“伪目标点”。通常,TOF激光雷达需要根据反射率去判断这个点究竟是真目标点还是“伪目标点”。
而FMCW激光雷达就不必担心这个问题。原因有二:
(1).FMCW激光雷达的探测端只能接收到自己发出去的光,因此,如果返回的光不匹配最初传输的时间、频率和波长,FMCW激光雷达知道过滤掉那个数据点,这意味着能够实现更精确的目标检测。
(2).FMCW激光雷达中,除了激光器所发出的信号光外,还有经过光束分束器的本振光,信号光的回波和本振光一同耦合到光探测。除了接收到光信号光功率,外本地震荡光功率也一同与背景噪声相竞争,结果就压抑了噪声。
通常,FMCW激光雷达的信噪比要比TOF高10倍以上。某FMCW激光雷达公司CEO奚先生甚至认为,FMCW激光雷达采用相干的检测方式,其信噪比可以比TOF高3-4个数量级,并且,“随着半导体工艺更加精进,其干涉效率还会进一步提升”,理论上可以实现单光子探测。
用姚建的话来说,FMCW激光雷达的噪音属于“乘性噪音”,即“一旦探测端收到了某个信号,那前方目标就是真实存在的,而不是‘伪目标’”。
远距离激光雷达往往会牺牲FOV来追求更长的探测距离,这其实对信噪比要求比较高,因此,在技术成熟后,FMCW会是远距离感知更好的选择。
3.TOF的速度维数据质量低,而FMCW可获取每个像素点的速度维数据
在FMCW激光雷达厂商的PR中,“速度维数据”是一个无法回避的亮点。那么,TOF激光雷达就不能提供目标物的速度维数据吗?
未必。准确地说,TOF仅通过测量发出的激光脉冲的返回时间计算距离,因而“无法直接获取目标物的速度信息”。在实践中,TOF是根据目标物在激光雷达工作中各帧之间的位移及时间差等,利用深度学习技术测算出其瞬时速度。
然而,按照某FMCW激光雷达公司创始人的说法,在许多情况下,一款号称探测距离达到300米的TOF激光雷达,一旦目标物的距离超过某100米,由于激光雷达打在上面的线数太少,速度就很难被计算出来。
洛微CTO Andy Sun提到另一种原因:速度计算中需要用到2帧之间的距离差对时间差求导数,对噪声的敏感度很高,这会导致计算结果的误差会非常大,甚至根本就不能用。实践中通常需要使用远多于2帧的数据做平滑来降低噪音干扰,算出来的速度会靠谱一些,但这样做又会导致过大的时延。
但FMCW激光雷达就不必担心这个问题。因为,FMCW的反射光频率会因为多普勒效应根据前方移动物体的速度而改变,可直接计算出目标物每个像素点的速度数据。
速度维数据有什么用?
某FMCW激光雷达公司CEO奚先生提到这样两个场景:
(1).一辆自动驾驶车辆正以120公里时速行驶,突然被另一辆以125公里的时速行驶的车辆近距离加塞,会发生什么?
在人开车的情况下,驾驶员通常会敏锐地意识到,另一辆车在加塞成功后跟我的间隙会越来越大,因此,我不必采取任何措施;但对自动驾驶系统来说,这是一件非常难的事情——由于无法获取精确的速度维数据,摄像头及TOF激光雷达均无法帮助决策系统做出“它(加塞车辆)跟我的间隙会越来越大”的判断,事实上,紧急制动才是自动驾驶系统在这种情况下更常见的举措,而这容易引发后方(被)追尾。
但如果将TOF激光雷达换成FMCW,问题便迎刃而解了。因为,FMCW激光雷达不仅可以精确地检测到加塞车辆的位置,而且也会精确地探测到加塞车辆的矢量速度,从而帮助决策系统做出“我只要不加塞,就能避免碰撞”的结论,因此,就避免了不必要的刹车。
(2).下雨天,车辆前轮胎会溅起水雾,TOF激光雷达射到水雾上后,形成的点云也是一团一团的,看起来跟车辆或其他障碍物没什么区别,这种信息,会给决策系统造成很大的困扰——是刹车还是不刹车呢?如果经常因水雾而误刹车,不仅乘坐体验很差,而且还埋下了安全隐患(被追尾)。
但如果将TOF换成FMCW,问题便迎刃而解了。因为,前轮胎溅起的水雾,都有明显的上升和下降的轨迹,而FMCW激光雷达可通过这些矢量速度信息,帮助决策系统判断出它们是“水雾”,因而在决策算法将其过滤掉。
而姚建则举了这样几个例子:
(1).有摩托车被白色汽车遮挡,只漏出一个小角,对这样的目标,TOF是无法识别的,而FMCW则因为可以监测到这一个“小角”的速度信息,就能够识别。
(2).两辆车贴得很近,TOF激光雷达很难分清这究竟是一辆车还是两辆车,但FMCW因为可以获取车辆每个像素点的速度信息,便可以很容易就将两辆车区分开来。
(3).监测行人时,TOF激光雷达只能笼统地判断出“那儿有一个人”,而FMCW则可以清晰地看哪边是这个人的左胳膊、哪边是右胳膊。
姚建解释道:“因为有速度维数据,激光在碰到障碍物后哪怕只返回了一个点(目标物反射率过低、距离过远等原因导致),也不大会影响监测结果。”
按姚建的说法,FMCW激光雷达的探测距离可长达500-600米。这也是Aurora在转向干线物流场景后决定收购FMCW激光雷达厂商Blackmore的关键原因——卡车需要看得很远,而在远处激光雷达的光点就很稀疏了,但如果有了速度维数据,光点稀疏就不是个严重的问题了。
姚建称,除延长了有效探测距离外,速度维数据还可以带来以下两大好处:
1.由于反射率很低的物体也可以被仅凭一个光点就被探测到,因此,反射率是多少就不那么重要了。所以,用户可以不必再专门去测各种目标的反射率。
2.从传感器曾经就输出目标物每个像素点的速度,这便减少了后端处理对算力的要求。并且,传感器融合的算法架构也好做了。
此外,速度维数据,还可以弥补FMCW激光雷达在点频上的劣势。
某TOF激光雷达厂商负责人说,与TOF测距一次需要2微秒不同的是,FMCW测距一次需要20微秒,因此,后者的点频会更少。但总体上,点频低并没有影响到探测效果,原因在于,因为每个像素点都包括了速度维数据,点频不需要做到很高就可以实现对远距离运动物体的感知。
不过,某FMCW激光雷达公司CEO奚先生则认为,在光点很稀疏情况下的探测结果,不仅要看激光雷达本身的能力,还要看下游客户的算法是怎样实现的——如果算法认为,激光雷达的点云太稀疏,打在前方远处车辆上只有三个点,“置信度不够”的话,那这个探测结果就会被“无视”。
现在有种新的说法,AI算法感知周围物体,还需要实时验证感知结果是否正确,离真实值有多少差距,激光雷达的作用将在此体现出来——通常来讲测量是客观的、可参考的,当然前提条件还是需要激光雷达提供的测量结果具有足够的精度、密度及稳定度。
4.TOF很难跟OPA扫描结构兼容,而FMCW天然更适合OPA
前文已经说过,TOF还是FMCW,主要是对收发系统而言的,扫描系统也很关键。TOF激光雷达的扫描方式有机械旋转、转镜、棱镜、MEMS与Flash、OPA等多种,其中,只有Flash和OPA算是纯固态扫描,而OPA扫描的优势更明显。
因为,Flash是面阵扫描,而OPA是点扫描,光功率更集中,理论上,探测距离可以比Flash更长。
但真相是,前面几种扫描方案都有头部激光雷达厂商在做,但OPA虽然也曾火过一阵子,却始终没闹出什么动静。事实上,第一个提出将OPA用于TOF激光雷达的Quanergy公司,已在三年前就从车载激光雷达市场上出局了。
为何? OPA扫描通常基于硅光芯片来做,而TOF的峰值功率过高(通常在40-50瓦,甚至可达100 瓦),硅光芯片“根本扛不住”。
当然,也可以把TOF的功率做低一些,这样OPA芯片就不会受损了。然而,这同时也意味着探测距离的缩短。如Quanergy之前TOF+OPA组合的方案,探测距离就不到100米,这显然无法满足自动驾驶车辆对主激光雷达的要求。
相比之下,FMCW的峰值功率只有“百毫瓦级别”,比TOF“低4个数量级”。原因在于:
TOF的单次测距只需2微秒,而FMCW单次测距需要20微秒,尽管总能量并不少,但由于能量在时间上是平摊的,因而峰值功率会比较低;
TOF的信噪比较低,如果功率太低,就无法获得足够多的“有效信号”,而FMCW的信噪比很高,即便是用很低的功率,也可以获得足够多的“有效信号”。
鉴于此,OPA扫描如果跟FMCW收发搭配,就不必担心峰值功率的问题了。
反过来,也可以说,OPA只有在FMCW成熟之后才可以应用在车载激光雷达上。
5.FMCW 可实现更高程度的“芯片化”
当前,许多TOF激光雷达厂商都在努力通过“芯片化”这一手段来提高产品的集成度、降低成本,不过,能芯片化的模块,顶多只有信号处理、激光器、探测器等,光学镜头和扫描部件(Flash是面阵,没有独立的扫描部件)是暂时无法被芯片化的。
(注:TOF激光雷达中的光学镜头无法集成化,是多数厂商的共识,但奚先生认为,在单晶硅的光学化技术加持下,哪怕在TOF中,光学镜头将来也是可以被集成化。)
然而,在FMCW激光雷达中,在最理想的情况下,连光学镜头和扫描部件也可以被芯片化。
当然,从技术原理上看,FMCW并非天然就是芯片化的。
据洛微CTO Andy Sun介绍,同样基于相干原理的光通信产品,早期都是由一堆分立器件“拼接”起来的。但近几年,有一个新的趋势是包括,思科、华为及中兴这些巨头都开始采用基于硅光子芯片的集成集成方案。
原因在于,由于供应链已经比较成熟,基于分立器件做的光通信产品,尽管性能可以得到保障,但由于组件众多且需要高精度的对准耦合,每套的成本高达数万美金,相比之下,基于硅光的方案,单套成本已可降至一两千美金、甚至几百美金了。
类似的是,早期的FMCW激光雷达(如Blackmore公司之前的产品),还是由光源、分光器、天线、混频、探测器等分立器件堆叠起来的。但这种方案,不仅成本高达数千美金,而且很难过车规,所以,跟光通信产品类似,FMCW激光雷达最终还是要基于硅光技术来做。
(图片版权属于洛微公司)
在TOF激光雷达中,激光器和探测器用的是不同的芯片,而在FMCW中,在最理想的情况下,激光器和探测器可以被集成到同一个soc上。
TOF中的芯片化,不包括光学镜头和扫描部件,而在FMCW中,光学镜头有可能被芯片化,扫描部件直接就是用硅光芯片来做。在最理想的情况下,扫描模块可跟收发模块(激光器+探测器)集成到同一个芯片上(这是英特尔和Mobileye及某位于上海的中国公司正在努力的方向)。
因此,很多厂商都认为,FMCW激光雷达的芯片化程度可以做得更彻底,因而也就更有可能享受到摩尔定律的红利。
、
四.关于FMCW激光雷达的一些争议和误解
1.FCMW的探测距离比TOF长?
许多媒体在关于FMCW激光雷达的报道中都提到了其在探测距离上面的优势,这个观点,不能说完全不对,但也存在争议。
按光勺科技CEO姚建的说法,因为有速度维信息,哪怕在打到目标物上的点数很少,或者返回来的光点很少,FMCW激光雷达仍然可以探测到障碍物。因此,探测到500-600米外的车辆是有可能的。
挚感光子IC设计总监吴雷也持类似观点。
某FMCW激光雷达公司CEO奚先生甚至称,由于对微弱信号的检测能力很强,其应用在航空航天场景中的FMCW激光雷达探测距离可达12公里;而其应用在车载场景的FMCW激光雷达,探测距离也可达2公里。
不过,某TOF激光雷达厂商负责人表示,与TOF相比,FMCW激光雷达在探测距离上确有优势,但并不是“碾压性优势”。
随着单光子探测器的日益普及,TOF激光雷达的测距能力正在不断提升,FMCW胜在直接测速,而其在测距能力上相比TOF的优势则在日益缩小。
并且,探测距离一定要跟点频结合在一起看,只有当分辨率足够高的时候,谈探测距离才有意义,但实际上,FMCW激光雷达的点频要比TOF低,因此,其宣称的探测远探测距离,对于静态物体的识别,实际价值有限。
另一位FMCW激光雷达公司创始人认为,如果TOF也采用1550nm激光器,那FMCW在探测距离上的优势就不存在了,“因为FMCW系统的损耗相对偏高”。
2.FMCW激光雷达存在时延?
网上有一种说法是,FMCW激光类雷达“存在时延”。带着这一问题,笔者特意向一些业内专家求证。
按TOF激光雷达厂商负责人的话来讲,与TOF激光雷达单次测距往往只需要2微秒不同的是,FMCW激光雷达单次测距往往需要20微秒左右。原因在于,FMCW激光雷达发出去的光在返回之后还需要和本身的信号做一个拍频,而拍频时间太短的话会影响功率。
不过,这18微秒的时间差,并不足以影响到行车安全。因为,“即使两辆相向而行的车都开100公里/小时,相对速度也就200公里/小时,在不到20微秒的时间内,两辆车相对位置也只改变了几毫米”。
3.FMCW不能提供横向速度,是个缺点?
前面提到FMCW可提供速度维数据,不过,它也有局限性的——只能提供径向速度(目标物在运动方向与车辆的行驶方向平行时的速度),却不能提供横向速度(目标物在运动方向与车辆的行驶方向垂直时的速度)。这也被一些媒体说成是FMCW激光雷达的“缺点”。
对横向速度的确实被说成FMCW的“缺点”,有厂商是不服气的。比如,某FMCW激光雷达公司创始人反问:“TOF连个径向速度都提供不了,FMCW最起码可以提供径向速度,为何反而成了缺点了?
我多个径向速度,总比什么都没有好吧?”
此外,按照这位创始人的说法,通常,在目标物“有一定体积”的情况下,激光雷达扫到目标物上会有很多个点,在这个点上测一个径向速度,到那个点上再测一个径向速度,是可以利用一些公式把横向速度算出来的。
这位人士还说:“我们用人眼做个类比就知道,横向速度并不需要特别强调,因为,横向运动的目标物很容易被人眼‘检测’到;但径向速度,那个目标物是远离你还是靠近你,速度是多少,其实人眼是很难准确评估的,这就需要FMCW激光雷达来发挥作用了。”
————————————————
版权声明:本文为CSDN博主「九章智驾」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jiuzhang_0402/article/details/121358778