时间
GPS时间(GPST)是基于原子时(AT1)的时间系统,
其秒长定义为铯原子(CS133)基态的两个超精细能级间跃迁辐射振荡9192631170周所持续的时间。
GPS时间的起算点定义在1980年1月6日世界协调时(UTC)0时
UTC 时间 UTC 时间:Universal Time Coordinated,中文名称:世界标准时间或世界协调时
协调世界时是以原子时秒长为基础,在时刻上尽量接近于世界时的一种时间计量系统
在误差每相差一秒的时候才会进行校准,即为跳闰秒,UTC时间+1 或者-1秒。
UNIX 时间戳(timestamp):计算机中的 UNIX 时间戳,
是以 GMT/UTC 时间 1970-01-01 00:00:00 为起点,到当前具体时间的秒数(不考虑闰秒)
时间基准+时间尺度
一部分是时间基准,或者叫时间原点,即起始时间,
另一部分是时间尺度,即时间单位
时间基准,两套时间系统从1980年1月6日 开始一样,但是因为两个时间系统的秒长不一样,
也就是我们所说的时间尺度不一样,最终随着时间的累积,两者之间就会差
国际原子时(Temps Atomique International,TAI)
www.timeanddate.com可以查询到,t时刻对应的TAI时间和UTC时间:
在起始时刻,GPS时与UTC时对齐,两种时间系统给出的时间相同。
而UTC时存在跳秒,因而一段时间后,两种时间系统会相差n个整秒。(n为这段时间内UTC积累的跳秒数)
空间
GNSS/INS组合导航-惯性导航系统(INS)。
01.GPS: 时间和空间
GPS测量中,如静态、快速静态、动态测量都需要事后进行解算才能获得厘米级的精度,
而RTK(Real - time kinematic)实时差分定位是一种能够在野外实时得到厘米级定位精度的测量方法
02.IMU全称inertial measurement unit,即惯性测量单元
IMU传感器 由两组不同的传感器组成——加速度计传感器和陀螺仪传感器
6轴,也称作“6DOF” :测量载体的加速度及角速度,
9轴设备能够额外获取载体姿态角,10轴设备还可以获取气压参数。
陀螺仪传感器测量三个正交轴的角速率。
随着时间的推移,沿三个轴的角速率积分将获得滚转、俯仰和偏航的变化,这是物体姿态的变化
IMU提供的是一个相对的定位信息,它的作用是测量相对于起点物体所运动的路线,所以它并不能提供你所在的具体位置的信息,
载体角速度,一次积分可以得到载体的角度,
而加速度计得到的是载体的加速度,需要两次积分才能得到载体的位置,且加速度计还受重力影响,因此载体的位置相对于载体的角度更容易发散
因此,它常常和GPS一起使用
IMU 对于震动\温度非常敏感,如果脱离了标定区间,噪声就会使得推算结果直接飞走
03.轮速: 轮速计根据载体的轮子转动量来得到速度,引入了对载体速度的观测
04.MM(Map matching):指地图匹配。该技术结合用户位置信息和地图数据,推算用户位于地图数据中的哪条道路及道路上的位置
Dead reckoning 航位推算 已知的定点以罗盘及航速推算出所在位置的方法
IMU说明:
坐标系分为
以地心为原点的全局坐标系: 地心惯性坐标系 沿着Z轴旋转即可变为 地心地固坐标系
和以 机器为原点的局部坐标系
1.东北天坐标系(ENU)
2.北东地坐标系(NED)
东北天:
1)x轴指向东, y轴指向北, z轴指向天
2)绕x轴转动,称为pitch角
绕y轴转动,称为roll角
绕z轴转动,成为yaw角
3)IMU载体坐标系是右前上
4)欧拉角旋转顺序:z-x-y
北东地坐标系(NED)
1)x轴指向北, y轴指向东, z轴指向地
2)绕x轴转动,称为roll角
绕y轴转动,称为pitch角
绕z轴转动,成为yaw角
3)对应的IMU载体坐标系是前右下
4)欧拉角旋转顺序:z-y-x
坐标系定义中,可以看出,ENU和NED的坐标变换关系是:
X(ENU) = Y(NED)
Y(ENU) = X(NED)
Z(ENU) = -Z(NED)
Yaw(ENU) = -Yaw(NED)+ 90
注意:虽然ENU和NED旋转顺序不同,但是都是根据yaw-pitch-roll顺序进行旋转的
###东北天ENU和右前上载体坐标系的姿态
参考系(导航系):(ENU)东北天
载体系(机体系):(XYZ)右前上
###NED和前右下载体坐标系的姿态
imu测得的加速度和角度是在imu坐标系下
参考系(导航系):(NED)北东地
载体系(机体系):(XYZ)前右下
旋转顺序:Z-Y-X
姿态顺序:(Yaw-Pitch-Roll)偏航-俯仰-横滚
###
一般来说,这些旋转是按顺序应用的。
Heading - 围绕Z轴的旋转。
Pitch - 围绕X轴旋转
Roll - 绕Y轴旋转
###航迹推算
IMU通过精确校准消除温度和偏差漂移后,结合扩展卡尔曼滤波器算法能在短时间内对车辆进行精准定位。
更先进的系统会融合车轮速度和角度信息,以辅助卡尔曼滤波器定位估计,进一步提高定位精度
大地坐标系给地球上每一个位置都赋予了唯一的坐标(经纬高)。作为与后面坐标转化的重要内容
对GPS/IMU的经纬度进行坐标转换
大地经纬度坐标系是地理坐标系的一种,即经纬度坐标+高度。经纬度的几何意义:
纬度是一种线面角度,是坐标点P的法线与赤道面的夹角(注意这个法线不一定经过球心);
经度是面面角,是坐标点P所在的的子午面与本初子午面的夹角。
这也是为什么经度范围是-180 ~ +180,纬度范围却是-90 ~ +90:
物质状态
参考系:ENU
载体系:右前上或前右下
旋转顺序:(Yaw-Pitch-Roll)Z-X-Y或Z-Y-X
旋转轴:内旋
旋转方向:右手定则
一般默认情况下,我们一般都遵循内旋和右手定则,只是坐标系和旋转顺序会有一些变化。
一般在惯导里用ENU较多,在控制领域里用的NED较多,飞控里也用的NED坐标系
定位+定向+定姿 CORS 网络
1.设计安装点位 : 后轴重心处,IECU处,底盘正中等位置
2. GPS给出了设备所在的经纬高度,经过解算可以转换到站心位置,但其无法很好的给出设备姿态信息
经纬度转直角坐标(LBH to XYZ) 解算
参数:
a:参考椭球的长半轴 b:参考椭球的短半轴 e^2:第一偏心率 e'^2:第二偏心率 N:曲率半径
3.IMU读取到的原始数据是加速度与角速度 、
加速度是一帧帧变化的值,故 应取前后两帧数据的中值来计算,这样比较准确,而
应采用对应两帧的时间戳差值,同样的,角速度 也应该取中值来做积分
多传感器融合定位
激光雷达+GPS+IMU+轮速计的传感器融合的定位系统
里程计的英文单词是Odometry,
轮速编码器也称轮速计,其测量原理是敏感转动信号,转动量通过脉冲数字的方式进行记录。
根据轮胎半径和一个整圈脉冲字累计数量,可以换算出每个脉冲字变化对应的距离。对时间微分可以换算成车速。
Wheel speedometer
场景和要求
泊车: 车位检测
行车: 远近、宽窄、动静、昼夜 --静态环境动态目标 FOV
01.高速: 看的远
02.城区: 看的宽
指标: 精度-分辨率-距离-速度 FOV
目前现状:
环视--鱼眼相机-偏向下安装-语义感知车位检测 视场角30~50
周视:行车辅助-变道
角雷达--毫米波雷达
小米:
1个激光雷达
3个毫米波雷达
11个高清摄像头、
前视摄像头 8MP ×2
环视摄像头 3MP×4
侧视摄像头 3MP×4
后视摄像头 3MP×1
12个超声波雷达、
智能驾驶
芯片领域,我们有地平线 黑芝麻 华为;
在激光雷达领域我们有速腾聚创、禾赛和图达通;
在RTK领域,我们有千寻、六分、和芯、司南和导远
北斗星通、华力创通、广州海格、中海达、华测、合众思壮、泰斗、西安华讯、东方联芯
武汉测绘科技大学- 即现在的 武汉大学
国际上:
海克斯康-- 定位诺瓦泰 NovAtel
特斯拉 Ublox
大疆 人机领域的 RTK 和芯星通
司南、和芯、Ublox 三家则是经受住了小鹏、吉利、上汽、蔚来四家整车厂量产车数年的考验。
如果「估计」不能反映客观环境,那我们还有测量手段
GPS-IMU给的是车身位置姿态信息
数据采集系统
数采功能:
数据采集信号
GNSS以及传感器 摄像头、毫米波雷达、激光雷达、车辆总线、控制器的原始数据
时间同步:
标定:空间同步
采集数据临时存储:
数据传输
数采一般的内容:
4路千兆车载以太网数据采集
1路前雷达原始数据
1路摄像头原始数据
1路摄像头FPD-LinkIII数据
1路GPS/IMU数据
4路参考摄像头数据
8路CAN/CAN FD数据
数采结构:
由数据采集主机、数据采集接口设备、数据采集和分析软件以及传感器附件等四部分
硬件:
工作温度范围 冷却方式:
汽车中的常见控制单元
发动机控制单元(ECU)
变速器控制单元(TCU)
防抱死刹车系统控制单元(ABS)
电子稳定控制系统控制单元(ESC)
安全气囊控制单元(ACU)
车身控制模块(BCM)
空调控制单元(CCU)
动力转向控制单元(PSCU)
轮胎气压监测系统控制单元(TPMS)
车载信息娱乐控制单元(ICU)
具体介绍
1.VCU(Vehicle Control Unit,车辆控制单元)
VCU是汽车中用于整车控制的单元,它集成了多个子系统的控制功能,如底盘控制、车身稳定性控制、制动系统、传动系统等。
VCU能够从各种传感器收集车辆的状态信息,包括车速、转向角度、加速度等,并根据这些信息来做出相应的控制决策
2、ECU(Engine Control Unit,发动机控制单元)
主要负责管理和控制发动机的运行。
它通过传感器获取来自发动机的各种数据,例如转速、温度、氧气含量等,
然后根据这些数据来调整燃油喷射、点火时机、气门开闭等参数,以确保发动机能够高效、稳定地工作
3.MCU(Motor Control Unit,电机控制单元)
MCU是用于电动汽车或混合动力汽车中的关键控制单元,它主要负责电动汽车的电动驱动系统的管理和控制。在电动汽车中,
MCU接收来自电池和电动机的数据,根据车辆的需求和驾驶员的输入,
控制电动机的转速和扭矩输出,从而实现车辆的加速、制动和行驶等功能。
坐标系
1. WGS-84坐标系(the World Geodetic System dating from 1984),如下图所示,注意海拔定义为椭球体高程(the ellipsoidal height)
2.
世界坐标系之 NED 坐标:X轴向北,Y轴向东,Z轴向下
世界坐标系之 ENU 坐标:X轴向东,Y轴向北,Z轴向上
世界坐标系之 NWU 坐标:X轴向北,Y轴向西,Z轴向上(这个坐标系最符合人类想象)
3.
自身坐标系之 FRD 坐标:X轴向前,Y轴向右,Z轴向下。
自身坐标系之 FLU 坐标:X轴向前,Y轴向左,Z轴向上。(这个坐标系最符合人类想象)
FLU, Front(X)-Left(Y)-Up(Z)
RDF, Right(X)-Down(Y)-Front(Z),
ENU (east, north, up).
左乘: 坐标系不动,点动,则左乘。【若绕静坐标系(世界坐标系)旋转,则左乘,也是变换矩阵乘坐标矩阵;】
右乘: 点不动,坐标系动,则右乘。【若是绕动坐标系旋转(自身建立一个坐标系),则右乘,也就是坐标矩阵乘变换矩阵】
其他
Frenet坐标系又称Frenet–Serret公式,
Apollo项目文档未提及,但在规划模块中广泛使用。Frenet–Serret公式用于描述粒子在三维欧氏空间 R3R3内沿一条连续可微曲线的运动学特征
卫星位置计算时,惯性系。
卫地距处理时,惯性系转到地心地固系,不同的系统统一到WGS84下,GPST;
通过gnss解算,得到的结果一般有空间直角坐标系(X,Y,Z),大地坐标系(B,L,H),站心坐标系又叫东北天(E,N,U);
IMU
惯导元器件的自身的坐标系i系 b系是载体系,n系是导航系
组合的时候需要涉及到的计算时的坐标系,叫做导航系(n系
多源融合定位
Global Navigation Satellite System,GNSS
导航卫星系统有GPS(美)、伽利略(欧洲)、北斗(No.1)、GLONASS(俄
坐标系
ECEF:地心地固直角系: WGS-84、CGCS2000. 这两个坐标系参数基本上是一致的,好像是椭球率有 一点点偏差。
LLA:经纬高坐标系,全球地理坐标系,大地坐标系。坐标表现形式:(lon,lat,alt)
ENU:东北天坐标系,导航坐标系,站心坐标系。以当前位置为坐标原点,X轴东向、Y轴北向、Z轴垂直X-Y平面
NEG:北东地坐标系
UTM(Universal Transverse Mercator Grid System,通用横墨卡托格网系统)坐标是一种平面直角坐标
GNSS定位拿到的数据一般是经纬度信息,转换到导航坐标系下的转换顺序是:LLA ---> ECEF ---> ENU
地心坐标系
GeographicLib库的github的地址 /geographiclib
ECEF、ENU、UTM、WGS-84坐标系(LLA)
UTM 坐标系统使用基于网格的方法表示坐标,它将地球分为 60 个经度区,每个区包含6度的经度范围,每个区内的坐标均基于横轴墨卡托投影
常用组合导航系统(GNSS+IMU)
P-box的核心部件
位置的解算
Novatel
SPAN
华测的(板卡PIM222或者成品)
导远
导远 是
基于 MEMS 惯性导航技术、
融合卫星导航(支持 RTK)
和车辆信息(轮速、档位等)、
满足车规级标准设计和制造的高性能组合导航定位产品
数据:外形结构 电气接口和结构尺寸 核心技术参数
独立惯性测量单元(IMU模块)和主控底板+GNSS板三部分组成
GNSS:和芯星通的UM482。
主芯片:由DSP和MCU构成,DSP负责组合导航算法,MCU负责整车通讯和控制,RS232、RS422、CAN接口都有。
“deg”和“rad”分别指代角度和弧度,是两种不同的角度度量单位
degree
DEG:角度制 RAD:弧度制 GRAD:百分度制
ppm:ppm是parts permillion,百万分之(几)的意思。1ppm就代表如果基线距离每增加1公里,增加1mm(百万分之一)的定位误差
heading: 北偏西-逆时针为正 北偏东-顺时针
图所示,其坐标系定义为x朝前,y朝右,z朝下,按照下图的指示,绕三个轴的旋转应该是逆时针为正。
文档中的文字说明,这里却明确说顺时针为正
导远定义的顺时针规则与国际规则是相反的。 右手法则的正方向
国际规则:右手拇手指向坐标轴正向,四指自然弯曲,四指弯曲的方向即为逆时针方向。
导远规则:右手手臂伸直,手里握钟,手臂指向即坐标轴正向,钟的指针旋转方向即顺时针方向
右手定则是用来规定绕某轴旋转的正方向
01.生活中所谓的逆时针方向为正,是由于人们平时的习惯,约定俗成的。如,打牌时是逆时针出牌、坐标系象限是逆时针命名一二三四象限,角度也是。
02.逆时针旋转不一定是正方向,它只是用来描述旋转方向
顺时针逆时针旋转来描述更容易让人明白是怎样旋转的,和顺时针逆时针旋转的正反无关
右手定则是用来规定绕某轴旋转的正方向。
https://gssc.esa.int/navipedia/index.php/Transformations_between_ECEF_and_ENU_coordinates
EPSG负责维护全球的坐标系统。每个坐标系统都有一个EPSG编码
时间
GPS时间到UTC时间戳--GPS时间基于原子时钟,而UTC则考虑了闰秒
GPS时间戳--卫星导航定位中时间区
周内秒(GPS Week Internal Seconds) 周内秒的范围是0到604799
GPS周(GPS Week) 当GPS周计数达到1024时,其导航电文中的周计数会回滚至0并重新开始计数
第一个GPS周循环点为1999年8月22日0时,第二个循环点将发生在2019年4月6日
约19.6年 存储GPS周字段只有10位(bit),10位(bit)字段最大可容纳GPS周计数是1024 GPS接收机和软件做GPS周调整
现代化的信息L2-CNAV、CNAV-2、L5-CNAV和MNAV都用13位字段存储GPS周计数,这意味着GPS周在大约157年内都不需要翻转一次
常规时间: UTC 时间 (Coordinated Universal Time) Unix 时间 (Unix Timestamp)
UTC是全球时区的基础,其他时区都是相对于UTC来定义的
北京时间 : 时区时间 = UTC 时间 + 时区偏移量 (例如,东八区-北京时间是 UTC+8小时) 原则上全球共划分为24个时区
闰秒-跳秒
LabSat Leap Second Guide : 差值(Leap Seconds)
Before the 2016 leap second: GPS-UTC was 17 (GPS ahead of UTC by 17 seconds)
After the 2016 leap second: GPS-UTC became 18 (GPS ahead of UTC by 18 seconds)
2017年1月1日7时59分59秒后面增加1秒
人类对于伴随自我进步的‘时间文化’的一次抛弃” 采用闰分,大约100年调整一次
推迟至2029年。然而,由于国际计量局(BIPM)在2022年通过决议,决定最迟于2035年取消闰秒机制
时间转换
time_second = weeks * 602800 + week_second + 325964800 -18
Ros的时间基准为Unix,起始时间为:1970年1月1日;GPS使用UTC原子钟时间,起始时间为:1980年1月6日;
两者相差:err=315964800秒
GPS时间表示:周数Weeks和周内秒Secs,转成秒:
sec = Weeks *7 * 24 * 3600 +Secs
和ros的时间转为同一时间基准:
s = sec + err - 闰秒次数
空间
位置和位姿
位置
EPSG代号是地球坐标系标准化组织(EPSG)
"EPSG:4326", # WGS84地理坐标系 GPS依赖于WGS84坐标系,是一种地心坐标系
地理坐标系:经纬度坐标系
WGS84:World Geodetic System 1984,是为GPS全球定位系统使用而建立的坐标系统
三次精化:WGS84(G1150),于2002年1月20日启用。世界大地坐标系统
GCJ02经纬度投影 经纬度格式,单位为度
投影坐标系-UTM来描述大地坐标系
EPSG:3857(WGS 84 / Pseudo-Mercator) 代号是 web墨卡托 的正式代号
Web地图几乎都是使用的Web墨卡托,国内地图会有加密要求: “火星坐标系统”
GCJ-02是由中国国家测绘局(G表示Guojia国家,C表示Cehui测绘,J表示Ju局)
GCJ02 Web 墨卡托投影 Web墨卡托格式,单位为米
BD09 Web 墨卡托属于百度坐标系,它是在标准Web墨卡托的基础上进行GCJ-02加偏之后,再加上百度自身的加偏算法,
也就是在Web墨卡托的基础之上进行了两次加偏。
4490 CGCS2000/Gauss-Kruger 国家2000
相互转换:
在 geopandas 中,可以使用 to_crs() 方法将地理数据从一个坐标系转换到另一个坐标系:
中国涉及的 UTM 带号为 43 - 53,并且中国全部位于北半球 北半球为N 每个带宽6度 WGS_1984_UTM_Zone_50N
EPSG代号为32601-32660(北半球UTM投影坐标系)和32701-32760(南半球UTM投影坐标系)
43~53 EPSG:32643 ~ EPSG:32653
UTM坐标系—— Universal Transverse Mercator, 统一横轴墨卡托投影系统,UTM是一种投影坐标
UTM坐标系的坐标原点位于本初子午线与赤道交点,
以正东方向为x轴正方向(UTM Easting),正北方向为y轴正方向(UTM Northing)。
utm坐标系
坐标轴定义:X轴:指向东边、Y轴:指向北边。
UTM本身是平面坐标,没有Z轴,但是附加高程信息且符合右手坐标系的话,Z轴:指向天顶
北半球一般取向 东为X轴,向北为Y轴,向上为Z轴,这样也符合东北天的习惯
位置示例代码
import pyproj
from pyproj import Transformer
# 自动计算UTM带号
utm_zone = (int((longitude + 180) // 6) + 1)
##utm_zone = 31 + int((longitude / 6))
def lonlat_to_utm(lon, lat):
transformer = Transformer.from_crs( crs_from='epsg:4326', crs_to=f'epsg:326'{utm_zone})
x, y = transformer.transform(lat, lon)
return x, y, utm_zone
x, y,_ = lonlat_to_utm(pos_longitude, pos_latitude)
z = pos_height
###参考原点--坐标原点
位姿
坐标系 惯导元器件的自身的坐标系i系 b系是载体系,n系是导航系
导航坐标系: 地理坐标系(Geographic Frame) 当地水平坐标系--坐标系精致不懂
东北天(ENU, East-North-Up) X轴指向东(East),Y轴指向北(North),Z轴垂直向上(Up
北东地(NED, North-East-Down X轴指向北(North),Y轴指向东(East),Z轴垂直向下(Down)
北东地(NED)坐标系,Z轴向下,在无人机领域用的比较多
地心坐标系(ECEF, Earth-Centered Earth-Fixed)) 原点在地球质心,X轴指向本初子午线与赤道交点,Z轴指向北极。
Y轴垂直于XOZ平面(即东经90度与赤道的交点)构成右手笛卡尔坐标系。
全局固定:坐标轴方向不随载体运动改变
载体系(Body Frame)与载具系(Vehicle Frame
车体坐标系(body,b系)
前右下
左前上
右前上坐标系:X轴指向车体右方,Y轴指向车体前方,Z轴垂直XOY平面向上,构成右手笛卡尔坐标
旋转顺序
绕载体坐标轴旋转
绕导航坐标轴旋转
惯性测量单元坐标系(imu系)
imu经常安装在两个车轴中间,后轴的中间 imu坐标系有安装误差,不能保证其坐标轴与车体坐标系坐标轴平行
也可以将imu坐标系与车体坐标系等价
导航解算
旋转顺序:
旋转顺序定义不一样
一般在给出欧拉角参数表示的时候,都要指定欧拉角的定义方式
姿态角 欧拉角
导航系(当地水平坐标系 n系)与载体系(b系)之间的转动关系进行定义的
姿态角就是一组特殊的欧拉角,用来表示导航系与载体系之间的旋转关系,也可以说是载体系在导航系中的姿态
航向角: 也叫做方位角,偏航角, yaw, azimuth, heading.
俯仰角: 也叫做pitch, elevation
横滚角: 也叫做roll
欧拉角的定义不是唯一的,根据旋转方式(内旋、外旋)和旋转顺序的不同存在着多种定
顺时针规则:
载体的xyz三轴指向为前右下,则:
绕x轴的旋转角为翻滚角(roll)
绕y轴的旋转角为俯仰角(pitch)
绕z轴的旋转角为航向角(yaw)
内旋,旋转顺序为*yaw-pitch-roll* zyx 导航领域中讨论的欧拉角默认旋转方式为内旋
姿态顺序:(Yaw-Pitch-Roll)偏航-俯仰-横滚
312旋转顺序(先转Z,然后X, 最后Y)
roll 横滚角 -180 +180
pitch 俯仰角+-90
heading 偏航角 0到359.99
pitch 俯仰角 仰角(Elevation)
yaw heading 偏航角 方位角(Azimuth)
罗盘方位方位按照顺时针角度从北开始
0度方位角表示正北,90度方位角表示正东,180度方位角表示正南,270度方位角表示正西,360度方位角表示角度回归,依然是正北
from scipy.spatial.transform import Rotation as R
T = np.eye(4)
T[:3, :3] = rotation_matrix2
T[:3, 3] = [x, y,z]
euler2 = [roll, -pitch, 90.0 - yaw]
r2 = R.from_euler('xyz', euler2, degrees=True)
参考
自动驾驶高精组合导航设备拆解-导远570D https://www.elecfans.com/d/2299727.html
如何理解导远技术手册 https://blog.csdn.net/xhtchina/article/details/119184216
常用组合导航系统(GNSS+IMU) https://blog.csdn.net/qq_42911741/article/details/126929506
GPS经纬度坐标WGS84到东北天坐标系ENU的转换 https://www.cnblogs.com/long5683/p/13831605.html
ROS系列(四):坐标系转换介绍和对齐 https://blog.csdn.net/ckq707718837/article/details/134145566
GPS转化ECEF坐标系(0) python和c++代码 https://www.cnblogs.com/gooutlook/p/17041240.html
https://blog.51cto.com/u_14457/9575345
【Apollo】感知基础 https://blog.csdn.net/qq_41426807/article/details/128234384