想象你请了一位装修师傅到新家画户型图。房子空空如也,没有现成图纸,师傅只能自己一边走一边量,同时时刻确认自己站在哪个位置——不然画着画着就错位。更麻烦的是,家人还在屋里来回走动、搬东西。这些移动的人和物,能不能画进图纸?聪明的师傅会先分清:墙、柱、门窗是固定的,必须精确记下;走动的人是临时的,画进去会让图纸彻底失真。他还会在图上标注“这是承重墙”“这是飘窗”,让一张普通线条图变成业主看得懂的装修蓝图。这就是语义SLAM的故事:让机器人像这位师傅一样,在陌生环境里一边确认自己站在哪,一边画出带语义标签的地图,同时机智地把动态目标从地图中剔除出去。这篇文章将从核心概念、定位建图、语义识别、动态剔除、数学基础、系统架构与挑战应用七个维度,带你完整理解这项让机器人“既看得懂又分得清”的关键技术。
掌握语义SLAM,是进入空间智能与具身智能领域的关键一步。理解了它,你就理解了机器人如何在真实、动态的世界里稳稳地认识自己所在的环境——这几乎是所有自主移动系统的必修课。
可视化演示
展示语义SLAM系统架构流水线、动态物体检测与特征剔除、几何前端关键帧轨迹追踪及NeRF语义场景表示。
本节配有交互动效(进入视口后自动加载,约 3KB)。
系统架构:语义SLAM全流水线 传感器采集→语义分割→特征提取→后端优化→语义地图构建 同时输出几何结构地图和语义标注地图 SLAM_sem = f(Geometry, Semantics) 语义SLAM将几何建图与语义理解统一为完整系统
核心概念
装修师傅拿着卷尺和本子走进一套毛坯房,他要画一份精确的户型图,但房子里没有现成图纸,只有光秃秃的墙面。他只能一边走一边量:这面墙多长、那个转角多大。更棘手的是,他每走一步都得知道自己在房子的哪个位置,不然画着画着图就错位了。这就是“同时定位与建图”最朴素的画面——机器人和装修师傅面临同样的难题。
智能机器人进入陌生环境时没有GPS,也没有地图,必须靠自己的传感器一边感知、一边定位,同时把环境结构记下来。这个“边探索边画图”的过程,在领域里叫SLAM(Simultaneous Localization and Mapping,同时定位与建图)。早期的SLAM画的是“纯几何图”,只有点、线、面的位置;语义SLAM更进一步,在每块区域上贴上“这是什么”的标签,让地图从单纯的线条升级为“带注释的说明图”。
语义SLAM把两个世界缝在了一起:一边是几何测量(从哪里到哪里),一边是语义理解(这是什么)。它需要同时估计机器人的运动轨迹X和带有语义标签的地图M。可以用联合概率描述这个“总账本”:
其中,X是轨迹,M是语义地图,Z是传感器观测(图像、深度),U是控制指令。
就像师傅把“看到的墙角”和“走过的步数”不断合并进本子,SLAM也是把观测证据与运动估计持续相乘,推理出位置与地图。有了语义标签,这本图就不再是冰冷的线条,而是一本“看得懂”的房屋说明书。
- 联合后验这是SLAM要估计的核心概率分布,表示在已知观测与控制下轨迹和地图的联合状态。
- 观测模型给定轨迹和地图,传感器产生当前观测的概率,刻画“看见什么”的物理过程。
- 运动模型给定控制指令,轨迹发生转移的概率,刻画“走一步会到哪”的推断依据。
- 地图先验关于地图结构的事先假设,例如稀疏或稠密、静态或动态的分布偏好。
- 比例符号省略归一化常数后两边仍成正比,方便只比较相对大小而不是精确概率值。
定位建图
装修师傅每走几步就会停下来看看:门框在哪个方向?踢脚线直不直?这些固定的参照物帮他确认自己没有走偏。如果他绕着客厅走一圈回到原点,发现首尾的墙角对不上,说明刚才哪里量错了,得回头修正。这种“找参照、纠偏差”的本能,正是机器人定位建图的核心动作。
机器人通过摄像头捕捉环境特征(角点、边缘),计算两帧之间的相对运动,这叫视觉里程计。它一边走一边把特征点加入地图,形成点云或网格。但里程计有累积误差:走一小段偏一点,走一大段就偏很多。这时需要回环检测——当机器人认出“这个地方我来过”,就把整条轨迹和地图重新对齐,消除漂移。
定位建图的关键是估计相机位姿。三维世界中的一点p,通过旋转R和平移t变换到相机坐标系,再投影到图像上的像素位置z:
回环检测就像师傅绕客厅走一圈后惊呼“这个门框我见过!”——一旦认出旧地标,就能把偏离的图纸整体掰正,消除累积误差。这正是定位建图中最关键的一步“漂移消除”。
- 世界点地图中某个三维点的坐标,是世界坐标系下的基准位置。
- 旋转矩阵描述相机看世界的姿态朝向,由绕三个坐标轴的旋转组合而成。
- 平移向量描述相机在世界中的位置偏移量,与旋转一起构成完整位姿。
- 内参矩阵相机的焦距、主点等固有参数,决定投影时的缩放与偏移。
- 投影公式世界点先旋转平移到相机系,再经内参投影,得到图像上的像素位置。
语义识别
光画线条还不够,业主想要一份能看懂的设计图。装修师傅会主动标注:“此处是承重墙,不能拆”“这个是飘窗”“这里预留冰箱位”。这份标注来自他多年的专业经验,扫一眼就知道是什么。电脑也能练出这种“火眼金睛”——这就是语义识别。
语义识别就是把图像中的每个像素分类成对应类别:墙、地板、桌子、椅子、行人。按粒度可以分三个层次。物体检测:在图上框出“哪里有物体”;语义分割:判断每个像素属于哪一类;实例分割:进一步区分同类中的每一个个体,比如三个人分别是谁。这些标签最终要和三维地图点“绑定”起来,形成语义关联。
语义分割是语义SLAM最常用的模块,它通过深度神经网络对图像逐像素预测类别概率,用交叉熵损失训练:
语义识别完成后,地图从“线条图”升级为“标注图”——哪是门、哪是桌、哪是人,一目了然。更重要的是,机器人从此知道哪个物体“可能会动”,这为接下来的动态剔除打下了基础。
- 类别总数参与分类的语义类别集合大小,如墙、地板、桌子、行人等。
- 真实标签训练时给出的标准答案,通常采用one-hot编码表示唯一类别。
- 预测概率神经网络对每个类别输出的概率值,所有类别概率之和为1。
- 对数惩罚对低置信度的预测施加更强的惩罚,促使模型“宁可存疑、不要瞎猜”。
- 总和损失逐类别累加得到该样本的交叉熵损失,训练过程就是最小化这个值。
动态剔除
装修师傅绘图时最头疼的不是墙有多难画,而是家里总有家人走来走去。他绝不会把走动的人画进墙体图——哪怕人站的位置正好挡住一面墙。他会等那个人走开,再画出背后的真实结构。这种“滤掉活动物”的直觉,就是动态剔除。
现实环境里,行人、车辆、宠物都在移动。如果把动态点直接加入地图,地图上会出现“幽灵墙”和“鬼影”,造成定位漂移。语义SLAM用两步判断:先用语义信息(这是“行人”类别)与帧间运动(位置变化大)算出动态概率,再把动态区域从建图集合中剔除,只保留静态背景。运动检测负责“发现动没动”,动态分类负责“判断是什么在动”,静态更新则保证“只有可靠背景入图”。
一种简洁的过滤策略是给每个地图点计算运动概率,超过阈值的点不进入地图:
被剔除的动态目标并没有消失,只是被从“固定图纸”中划掉。等它走开,背景显露出来,系统还能通过遮挡恢复机制补全被遮挡的结构——就像师傅等人走开后,补画那块被挡住的墙角。
- 候选集合所有进入判断的地图点集合,同时包含静态与动态两类候选者。
- 动态概率每个点被判定为移动物体的置信度,由运动信息与语义类别综合给出。
- 阈值预先设定的剔除界限,动态概率一旦超过就被视为动态目标。
- 过滤结果剔除动态点后保留下来的静态地图点集合,构成最终可用地图。
- 条件与属于集合描述中的符号,表示“所有满足动态概率低于阈值条件的地图点”。
数学基础
师傅画完一圈回到起点,发现首尾差了5厘米。他不会重画整张图,而是把这5厘米“分摊”到每一段测量里——每段微调一点点,让整圈闭合。这种“分摊误差”的智慧,本质上就是优化。SLAM内部的数学工具,和师傅这套方法如出一辙。
SLAM系统内部有一个“总账本”,记录所有位姿和路标点之间的关系。每次观测都是一条“约束”,但约束之间互相矛盾(因为测量有噪声)。图优化就是调整所有节点,使所有约束的误差总和最小。其中还涉及坐标变换(在世界坐标系与相机坐标系之间来回换算)、状态估计(用贝叶斯滤波递归更新位置)、概率模型(把不确定性数字化)。这套数学工具构成了SLAM的地基。
图优化把位姿和路标视为节点,观测视为边。每条边的误差项e_ij带权重(信息矩阵Ω_ij),总误差是各边误差的加权平方和:
就像师傅把5厘米误差均匀消化掉,图优化把无数条有矛盾的“测量意见”加权调和,最终得到一张自洽的地图。数学基础越扎实,地图的“接缝”就越少,机器人在其中行走就越自信。
- 边约束图中连接两个节点的观测约束,代表一次具体的空间关系测量。
- 误差向量该约束与当前估计值之间的偏差,优化目标就是尽量减小它。
- 信息矩阵表示对该约束置信度大小的权重矩阵,通常取测量噪声协方差的逆。
- 加权二次型将误差按权重组合成单个标量误差项,权重越大影响越大。
- 总误差对所有边约束求和,得到全局优化目标函数,求解使总误差最小的位姿与地图。
系统架构
一位专业的装修师傅有套成熟流程:白天边量边画草图,快速记录关键尺寸;晚上回办公室把碎片拼成完整户型图,整体校核;最后拿着材料清单逐项核对,给每个区域贴上用途标签。这套流程环环相扣,缺一不可。语义SLAM的系统架构,也是如此。
语义SLAM通常分为几个模块。前端负责“快速看”:提取特征、估计相邻帧间的运动,保证实时性。后端负责“整体调”:把一段时间甚至全局的轨迹和地图放在一起优化,“慢工出细活”。语义融合做“贴标签”:把语义分割结果与几何地图对齐,标注每个区域的语义。最后是全局一致性维护——闭环之后让地图不撕裂、不重影。
语义融合把几何与语义两类信息拧成一股绳。一个典型的语义SLAM总损失同时包含几何误差和语义一致性误差:
前端保证“跟得上”,后端保证“算得准”,语义保证“看得懂”,三者协同才构成完整的语义SLAM系统。这种模块化设计,就像装修流程一样各司其职,任何一环缺失,最终图纸都不完整。
- 几何误差重投影对应的几何不一致误差,约束位姿与路标点的绝对位置。
- 语义误差语义标签不一致带来的代价,约束同类物体的标签保持一致。
- 权重系数平衡几何与语义两类误差对总误差贡献大小的比例参数。
- 相加组合最终总损失由几何误差与语义误差加权求和得到,共同参与优化。
挑战应用
装修师傅接手的房子千奇百怪:有的层高3米有的2.4米,有的墙是歪的,有的采光极差。一个没见过世面的师傅换个户型就手足无措;老练的师傅则能随机应变。语义SLAM也面临同样的考验——训练时见过的是家里的客厅,到了菜市场、地下车库还能不能稳住?这就是开放环境泛化能力。
当前语义SLAM落地的核心瓶颈集中在三个“敞口”。第一,开放泛化:训练数据里没有的新物体、新场景出现时,语义识别可能失灵。第二,鲁棒性能:光照突变、高速运动、强烈遮挡都会让几何估计和语义识别双双打折。第三,算力与数据:实时性要求高,而语义模型通常很重;高质量带标注的动静态数据又稀缺,数据供给跟不上算法野心。
评估语义SLAM系统定位精度,常用绝对轨迹误差ATE。它计算估计轨迹与真值的差异:
ATE_RMSE就像检验“图纸与实房”的偏差。只有那些能在各种户型的真实场景中都交出准确、干净图纸的师傅,才配得上“高级”二字。这正是语义SLAM能否从实验室走进真实世界的关键门槛。
- 估计位姿系统输出的相机轨迹中,某一帧的位姿估计结果。
- 真值位姿由运动捕捉设备或高精度传感器提供的真实位姿基准。
- Frobenius范数矩阵版本的“长度”,用于衡量两个位姿矩阵之间的差异大小。
- 均方根求和对全部帧的误差平方求平均后再开根号,得到整体轨迹误差指标。
- 帧数参与评估的轨迹帧总数,决定了统计样本的规模与可靠性。
AI 应用场景
服务机器人动态建图
阶段:感知与环境建模
解决的问题:餐厅、商场里顾客来回走动,传统SLAM会把移动的人当成静态障碍物建图,导致地图反复崩溃、导航路径被“鬼影”堵死。语义SLAM识别出“人”这一动态类别并剔除,只让桌椅、墙壁等静态结构进入地图,地图稳定性大幅提升。
具体案例:某餐厅送餐机器人在用餐高峰时段工作,过去每走几步就会因为“前方突然出现障碍”急停。换用语义SLAM后,系统实时标记并忽略移动顾客,只更新餐桌和隔断等静态结构。机器人路径规划平稳流畅,送餐效率提升了近一倍。
自动驾驶众包高精地图
阶段:离线地图构建与在线更新
解决的问题:道路上行驶的车辆和行人若直接进入建图流程,地图上会出现大量“幽灵车辆”,定位系统匹配时会误把动态车当静态地标,造成厘米级定位错误。语义SLAM区分车道标线、护栏与动态车辆,只把静态元素写入地图。
具体案例:某车企的量产车每天回传大量传感器数据。云端处理系统用语义SLAM自动过滤掉画面中穿梭的车辆,只提取道路边缘、标线和固定建筑特征,众包地图每周更新一次。后续车辆下载到的是干净、稳定的地图,定位可靠性显著提高。
AR空间锚定
阶段:感知与空间注册
解决的问题:AR眼镜需要把虚拟物体“钉”在现实空间里,但房间内有人走动、窗帘飘动,这些动态部分容易让虚拟物体跟着“漂移”。语义SLAM识别出沙发、墙壁等静态锚点,将走动的人标记为动态并排除在锚点计算之外。
具体案例:在室内AR家装应用中,用户戴着AR眼镜在房间里走动,虚拟沙发需要稳稳“坐”在真实地面上。系统实时识别出用户家人从镜头前走过,动态区域被临时屏蔽,虚拟物体纹丝不动;等人走开后,被遮挡的地面纹理又自动补全,虚拟沙发依然牢靠。
Python 演示
import mathimport random class SimpleSemanticSLAM: """极简语义SLAM模拟:语义识别 + 动态剔除 + 静态建图""" def __init__(self, num_static=20, num_dyn=5): self.static_map = [] # 静态地图 self.removed_count = 0 # 剔除计数 self.update_count = 0 # 地图更新计数 self.waypoints = [] # 机器人途经点 self.static_objects = [] for _ in range(num_static): self.static_objects.append({ 'x': random.uniform(1, 9), 'y': random.uniform(1, 9), 'label': random.choice(['桌子', '椅子', '门', '墙']) }) seeds = [(2.0, 5.0), (7.0, 3.0), (5.0, 8.0), (8.0, 6.5), (1.5, 2.0)] self.dyn_base = [] for i in range(min(num_dyn, len(seeds))): self.dyn_base.append({'bx': seeds[i][0], 'by': seeds[i][1], 'label': '行人'}) def observe(self, t): """生成第 t 帧观测:静态点不动,动态点绕圈运动""" obs = [] for obj in self.static_objects: obs.append({'x': obj['x'], 'y': obj['y'], 'label': obj['label'], 'dynamic': False}) for d in self.dyn_base: px = d['bx'] + 0.5 * math.sin(t * 0.3 + d['by']) py = d['by'] + 0.5 * math.cos(t * 0.2 + d['bx']) obs.append({'x': px, 'y': py, 'label': d['label'], 'dynamic': True}) return obs def update_map(self, obs): """按语义标签剔除动态类别,静态点融合进地图""" for p in obs: if p['dynamic']: self.removed_count += 1 continue key = (round(p['x'], 1), round(p['y'], 1)) if key not in self.static_map: self.static_map.append({'x': p['x'], 'y': p['y'], 'label': p['label']}) def run(self, frames=100): """连续运行 frames 帧""" for t in range(frames): obs = self.observe(t) self.update_map(obs) self.waypoints.append({'t': t, 'num_obs': len(obs)}) self.update_count += 1 return len(self.static_map), self.removed_count if __name__ == '__main__': random.seed(42) slam = SimpleSemanticSLAM(num_static=20, num_dyn=5) map_size, removed = slam.run(100) print('静态地图规模:', map_size) print('被剔除的动态观测:', removed)
self.static_map = []初始化静态地图列表,只存放最终保留下来的静态特征点obs.append({'x': px, 'y': py, 'label': d['label'], 'dynamic': True})模拟语义分割给出的“行人”标签,附带动态标记if p['dynamic']: self.removed_count += 1; continue看到动态标签直接跳过,不加入地图key = (round(p['x'], 1), round(p['y'], 1))坐标量化后去重,避免重复特征堆积self.update_count += 1统计累计融合的观测帧数,便于评估系统运行规模
常见误区
误区SLAM不就是拿相机扫一圈,输出一个三维模型吗?我用手机AR就能扫,没什么神秘的。
正解SLAM的核心是“同时”——在没有任何外部定位信号的前提下,机器人必须靠自己估计运动来确定“我在哪”,同时建出“环境什么样”。3D扫描通常有固定位姿或已知轨迹,而SLAM的难点是位姿和地图互为因果。就像装修师傅既没有户型图也没有GPS,只能靠边走边量的信息同时推算“我在哪”和“墙在哪”,这比用已知位置扫描难得多。
为何常见:很多演示视频只展示了扫描建模的结果,没有展示机器人在未知环境中自主定位的困难,导致大家误以为SLAM只是建图。
误区既然行人会动,那把检测到的行人像素直接从图像里删掉不就行了?地图就很干净了。
正解简单删除会带来两个问题:一是地图出现空洞,被遮挡的背景永远缺失,机器人下次经过时无特征可匹配;二是“动态”是相对的——停着的车是静态的,突然启动就变动态了。语义SLAM的做法是:先标记动态候选,用多帧观察确认状态,只把确认静止的区域融合进地图,被遮挡的旧特征等背景重现后再补全。就像师傅不会因为有人挡在墙前就把墙抹掉,而是等人走开再补画。
为何常见:多数教程用“行人检测”举例,让人误以为只要检测到“人”就一刀切删除,忽略了真实场景中“动态”是连续状态、遮挡普遍存在。
误区在传统SLAM前面加一个YOLO目标检测,把检测框内的特征点删掉,不就是语义SLAM了吗?
正解语义SLAM的关键是语义与几何的深度耦合:语义结果能约束几何优化(例如“车不可能悬浮在地面上方”),几何信息也能改进语义识别(利用三维形状确认类别)。检测框删除只是最简单的应用。更重要的是语义标签与地图点终身绑定——同一个物体被多次观测后,标签要一致地融合进地图,而不是逐帧独立检测就完事。
为何常见:目标检测API太容易调用了,初学者容易天真地认为“拼接”就是“融合”,没看到背后耦合优化与长期关联的复杂度。
误区模型在数据集上识别准确率95%以上,拿到真实场景肯定没问题。
正解开放环境充满长尾问题:未知设备、极端光照、罕见视角、分布外物体。语义分割模型在一个场景的像素准确率很高,换到另一个风格差异大的场景可能急剧下降。语义SLAM系统还必须处理“模型置信度低时如何决策”——宁可把不确定区域标为未知,也不要错标进地图。就像老师傅看到从没见过的异形结构,不会贸然画上去,而是先标注“待确认”。
为何常见:测试集通常和训练集同分布,指标虚高;真实世界没有“同分布”这回事,数据集再大也覆盖不了开放世界的多样性。
面试题
Q1. SLAM中的“同时”具体指的是什么?
- A.同时处理图像和激光雷达数据
- B.同时估计轨迹和构建环境地图← 正确答案
- C.同时识别物体和实现避障导航
- D.同时保存点云和图像传感器数据
答案:B。SLAM(同时定位与建图)的“同时”指的是定位与建图互为条件、并行求解:机器人需要地图来确定自己位置,又需要位置来构建地图。就像装修师傅必须同时知道自己站在哪和画出墙在哪。其他选项描述的都不是SLAM的核心定义。
Q2. 在动态环境建图中,动态物体应如何处理?
- A.全部保留并加入最终地图
- B.全部删除不留任何痕迹
- C.识别并剔除只保留静态← 正确答案
- D.随机采样部分参与建图
答案:C。动态物体会造成“幽灵墙”和定位漂移,正确做法是先识别、再剔除,只让静态特征进入地图。全保留会导致地图污染,全删除会造成空洞,随机采样则毫无依据。这就像装修师傅不会把走动的人画进墙体图。
Q3. 以下哪些是动态环境建图面临的典型挑战?
- A.遮挡导致特征点大量丢失← 正确答案
- B.动态物体干扰位姿估计精度← 正确答案
- C.地图中出现“幽灵”伪物体← 正确答案
- D.设备散热与电池续航问题
答案:ABC。动态环境中人车穿行会遮挡背景导致特征丢失,运动物体干扰帧间匹配拉低位姿精度,误建图的“幽灵物体”会让地图不可用。设备散热与电池续航是硬件工程问题,不属于动态建图方法本身的挑战。
Q4. 语义SLAM相比传统几何SLAM的核心改进是什么?
- A.运行速度比传统方法快一倍
- B.只建图不需要依赖定位信息
- C.为地图赋予语义并处理动态目标← 正确答案
- D.用深度学习替代全部数学建模
答案:C。语义SLAM的本质是为地图补充语义标签,并利用语义信息辅助处理动态目标、约束优化等。它不会放弃定位,也不会用深度网络完全替代几何数学,速度也不一定更快。核心是让地图从“线条图”变成“标注图”。
Q5. 在SLAM图优化中,节点与边分别代表什么?
- A.节点是图像像素边是颜色差值
- B.节点是位姿路标边是约束关系← 正确答案
- C.节点是神经网络层边是权重值
- D.节点是各类传感器边是数据线
答案:B。图优化把相机位姿和三维路标点作为节点,把观测关系(如“看到同一特征”)作为边,每条边是一个约束。优化目标是调整节点让所有约束的误差总和最小。就像师傅把所有测量矛盾放在一张总图上统一“摊平”。
Q6. 语义分割与实例分割的主要区别是什么?
- A.两者本质上没有任何区别
- B.实例分割区分每个独立物体个体← 正确答案
- C.语义分割精度高所以优先选它
- D.实例分割不需要使用深度学习
答案:B。语义分割只回答“这个像素属于哪一类”,实例分割进一步回答“它属于这一类中的哪一个个体”。例如三个人站在一起,语义分割把所有“人”像素归为一类,实例分割则把三个人分别切开。两者都需要深度学习,也不存在谁绝对更优。
Q7. 哪些信息可以用于判断一个物体是动态的?
- A.帧间位移大小差异← 正确答案
- B.语义类别如行人车辆← 正确答案
- C.物体的颜色与亮度
- D.物体的纹理复杂度
答案:AB。帧间位移大说明物体在运动,语义类别(行人、车辆)天然属于可移动物体,两者是动态判断的主要依据。颜色、亮度、纹理复杂度与“是否移动”没有直接因果关系,不能作为可靠依据。
Q8. 回环检测在SLAM中的主要作用是什么?
- A.检测环绕在周围的障碍墙
- B.识别到过的地方修正漂移← 正确答案
- C.计算相机的内参与畸变系数
- D.对动态物体进行语义分类
答案:B。回环检测让机器人识别“我已经来过这里”,从而把当前位姿与历史轨迹对齐,整体修正累积漂移。它不负责障碍物检测、相机标定或语义分类。就像师傅绕一圈后发现“这个墙角我量过”,把首尾接上。
Q9. 语义信息可以参与SLAM的哪些环节?
- A.可以辅助回环检测与闭环修正← 正确答案
- B.可以约束几何优化误差大小← 正确答案
- C.可以预先剔除动态区域物体← 正确答案
- D.可以提升无线信号定位鲁棒性
答案:ABC。同一个桌子的语义特征可以辅助回环识别;“车不会悬浮”的语义常识能约束几何优化的解空间;预先识别行人并剔除能保护建图质量。语义信息与无线信号定位无关,那属于另一套定位技术体系。
Q10. 图优化中,若某条观测的噪声协方差Σ很大,其信息矩阵Ω = Σ⁻¹会如何影响优化?
- A.观测的权重降低更不信任它← 正确答案
- B.观测的权重提升更加强信任
- C.该观测对估计结果没有任何影响
- D.会导致状态估计直接发散失败
答案:A。信息矩阵是协方差的逆,协方差越大、信息矩阵越小、该观测在总误差中的权重就越低。这符合直觉:越吵的测量越不值得信。优化器自动给“可信”的观测更大话语权,给“吵闹”的观测更小话语权,就像师傅更信任精确的激光尺而不太信手感估算。