想象你第一次去一座陌生城市出差。你不需要背下每条街道的宽度,只需要一张地铁路线图:站点连成线,换乘站一目了然。你会先在图上规划“坐几站、在哪换乘”,到了站再抬头找出口。拓扑地图,就是机器人的地铁路线图——把走廊拐角、房间门口、电梯口这些关键位置变成“站点”(节点),把可以通行的关系变成“线路”(边)。它不执着于记录每堵墙的精确厘米坐标,却能让机器人在整个园区、楼层甚至城市级别的空间里高效导航。本文将带你从零认识拓扑地图的构建、图上的导航策略、层级化规划,再到工程落地和投资风险。你会发现,真正让机器人聪明的,不是背下整个世界,而是学会看那张“地铁图”。

岗位关联

掌握拓扑地图与图导航策略,是理解空间智能的钥匙:让你具备设计大场景机器人导航系统的全局视野,也能在技术热浪中做出清醒的工程与投资判断。

目录
  1. 可视化演示
  2. 拓扑地图基础:机器人的地铁线路图
  3. 地图构建方法:边走边画地铁图
  4. 图导航策略:在地铁图上找路
  5. 层级化规划:先坐地铁,再走路
  6. 空间泛化能力:换一座城市也会坐地铁
  7. 工程落地协作:算法与工程的双人舞
  8. 投资热度与风险:别把地铁图当成藏宝图
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示拓扑地图与度量地图的对比、A*算法在拓扑图上的路径规划过程以及强化学习图导航的MDP建模与Q值更新,帮助理解大规模环境中机器人导航的紧凑图表示方法。

本节配有交互动效(进入视口后自动加载,约 3KB)。

'+captions.topo+'

拓扑地图基础:机器人的地铁线路图

打开任何一座城市的地铁线路图,你会看到不同颜色的线条串起一个个站名。你不会在意两站之间的隧道到底歪了多少度、距离精确到几米;你只关心有哪些站、能不能换乘、坐几站能到。拓扑地图就是把这套“站点—线路”思维搬到机器人身上:把环境中值得记住的位置抽象成节点,把机器人能从一个位置走到另一个位置的通行关系抽象成边。

与一张一比一记录每个障碍轮廓的度量地图相比,拓扑地图像简笔画,度量地图像高清航拍图。高清图信息丰富,但在大规模园区或楼层里,存储、更新和搜索代价都很高;简笔画牺牲了精度,换来了紧凑和高效。导航时,问题从“我是谁、我在哪、我的下一个坐标是多少”变成“我在哪个站附近、下一站去哪、坐哪条线”。

在数学上,拓扑地图就是一张无向或有向图 \(G=(V,E)\)。\(V\) 是节点集合,例如门口、电梯口、岔路口;\(E\) 是边集合,表示两个节点之间可通行。每条边还可以附带通行代价,比如时间、距离或能耗,从而变成一张加权图。

所以,当你再看到一张拓扑地图时,把它想象成一张被擦掉街道细节的地铁路线图。它没有告诉你某个房间的墙有多厚,却告诉你从 A 站到 B 站有一条通路。这份“骨架级”的抽象,正是大场景导航的起点。

G=(V,E),V={v1,v2,…,vn},E⊆V×V\displaystyle G=(V,E),\quad V=\{v_1,v_2,\dots,v_n\},\quad E\subseteq V\times V
这张公式是说:机器人手里那张“地铁图 = 一堆站点 + 一堆线路”。
  1. 站点集合 \(V\)节点代表走廊拐角、门口、电梯口等“值得记住的位置”,机器人在这些地方可以停下、转向或换乘。
    V={v1,v2,…,vn}\displaystyle V=\{v_1,v_2,\dots,v_n\}
  2. 边集合 \(E\)表示两个站点之间的可通行关系,可以带距离或时间权重;若两个站点不能直达,就不会有一条边。
    E⊆V×V\displaystyle E\subseteq V\times V
  3. 整张图 \(G\)把站点和线路合在一起,就是机器人导航时使用的拓扑地图;它不强制保存精确经纬度,只保存“谁和谁相连”。
    G=(V,E)\displaystyle G=(V,E)

地图构建方法:边走边画地铁图

机器人第一次进入陌生环境,就像你拿到一张空白地铁图。它得一边走一边画站牌:看到分岔口,画一个节点;走通一条走廊,连一条边。更关键的是,它要学会“认出老地方”——否则它会像路痴一样,把同一个十字路口当成两个新站,画出一张自相矛盾的地图。

机器人的眼睛通常是摄像头或激光雷达。它会把每个位置“拍”成一张特征名片,也就是特征向量。当新位置的特征名片和记忆中的某张名片足够像,它就会认为“我来过这里”,这在 SLAM 里叫回环检测。回环检测是拓扑建图最重要的一环:它能把重复的节点合并,修正机器人长期行走累积下来的定位漂移。

假设机器人当前位置的特征向量是 \(\mathbf{f}_i\),记忆中的某个位置是 \(\mathbf{f}_j\),那么两者的相似度可以用余弦相似度来衡量:

建图不是一次性的。机器人每发现一个从未见过的关键位置,就新增节点;每走通一条新路,就新增边;每次回环成功,就修正整张图的“漂移”。这个过程像地铁公司不断根据新开通的隧道更新线路图,让图越来越接近真实世界。

sij=fi⋅fj∥fi∥ ∥fj∥\displaystyle s_{ij}=\frac{\mathbf{f}_i\cdot\mathbf{f}_j}{\lVert\mathbf{f}_i\rVert\,\lVert\mathbf{f}_j\rVert}
它像在问:这两张“地点名片”的朝向和内容是否一致?越接近 1,越像同一个站。
  1. 特征点积把两个向量的每一维逐项相乘再相加,得到“方向一致程度”的原始分数;相似的内容会让点积变大。
    fi⋅fj=∑kfi,k fj,k\displaystyle \mathbf{f}_i\cdot\mathbf{f}_j=\sum_k f_{i,k}\,f_{j,k}
  2. 模长归一化分别除以两个向量的长度,消除画面亮度、尺度变化带来的干扰,只保留“形状与内容”的相似性。
    ∥fi∥ ∥fj∥\displaystyle \lVert\mathbf{f}_i\rVert\,\lVert\mathbf{f}_j\rVert
  3. 相似度阈值当 \(s_{ij}\) 超过一个阈值 \(\theta\),机器人就认为两个节点其实是同一个地点,从而触发回环合并。
    sij>θ\displaystyle s_{ij}>\theta

图导航策略:在地铁图上找路

有了拓扑地图后,机器人面临一个经典问题:从当前所在站出发,要去目标站,走哪条线路最划算?这和人类看地铁图规划换乘一模一样:先找起点和终点,再比较几条候选路线,挑一条站点最少、换乘最方便或时间最短的。

最经典的图搜索算法是 A*。它给每个候选站点打一个分:

其中 \(g(n)\) 是已经从起点走到当前站点 \(n\) 花掉的代价,\(h(n)\) 是估算从当前站点到终点还要花多少代价。A* 总是优先扩展 \(f(n)\) 最小的站点,像一个熟悉城市的老乘客,既不会漫无目的地乱逛,也不会一条路走到黑。

除了手写的 A*,机器人还可以用图神经网络学习导航策略:把“这个站点有哪些邻居、邻居的邻居在哪”输入网络,直接输出下一步该往哪走。更极端的情况是目标站还没出现在地图上,此时机器人要采用探索策略,沿着未知边界前进,发现新区域再补进拓扑图。这就好比地铁图还没画完,你得先下车走走,把新站画上去。

f(n)=g(n)+h(n)\displaystyle f(n)=g(n)+h(n)
如果 \(g(n)\) 是“已经走完的路”,\(h(n)\) 是“目测还剩多远”,那么 \(f(n)\) 就是“这个方向值不值得继续走”。
  1. 实际代价 \(g(n)\)把从起点到当前站点之间所有边的代价加起来,代表已经付出的时间、距离或能耗。
    g(n)=∑e∈pathstart→nw(e)\displaystyle g(n)=\sum_{e\in \text{path}_{\text{start}\to n}} w(e)
  2. 启发代价 \(h(n)\)用当前站点到目标站点的直线距离作为估计,它不精确,但能帮搜索排除明显绕远的方向。
    h(n)=∥pos(n)−pos(goal)∥\displaystyle h(n)=\lVert \text{pos}(n)-\text{pos}(\text{goal})\rVert
  3. 综合优先级 \(f(n)\)每次从优先队列中弹出 \(f(n)\) 最小的节点来扩展,最终找到一条既保证最优性又足够高效的路径。
    f(n)=g(n)+h(n)\displaystyle f(n)=g(n)+h(n)

层级化规划:先坐地铁,再走路

任何一座大城市的地铁都不是“门到门”的。你坐地铁从 A 站到 B 站,出站后还要走几百米才到目的地。机器人也一样:全局拓扑地图负责“坐地铁”,局部度量感知负责“出站后走路”。两者叠加,就是层级化规划。

高层规划器在拓扑图上工作,它不需要关心某个走廊里有没有临时堆放的纸箱,只需要选出一个站点序列:从当前站点出发,先到换乘站,再到目标站点。低层规划器则负责把每一段“站点到站点”的任务翻译成具体的速度指令,用激光雷达或视觉实时避开行人、路障。

如果高层选出的站点序列是 \(v_0,v_1,\dots,v_m\),那么整条路径的总代价可以写成:

在强化学习版本里,这种分工变成了“层级强化学习”:高层策略输出子目标,低层策略根据子目标输出动作。换乘站就是天然的“子目标”,它可以切换,可以重新规划,还能在遇到突发路况时局部调整,而不必推翻整张地铁图。

C(P)=∑k=0m−1w(vk,vk+1)\displaystyle C(P)=\sum_{k=0}^{m-1} w(v_k,v_{k+1})
这像你在计算“坐 1 号线三站 + 换乘 2 号线五站”的总耗时,只不过这里的代价还可以是能耗或风险。
  1. 路径序列 \(P\)高层规划器输出一串有序站点,代表“下一站去哪、再下一站去哪”,而不是每个瞬间的方向盘转角。
    P=(v0,v1,…,vm)\displaystyle P=(v_0,v_1,\dots,v_m)
  2. 单段代价每一段线路都有通行代价,可能是距离、预计时间或能耗;权重越大,代表这段路越“难走”。
    w(vk,vk+1)\displaystyle w(v_k,v_{k+1})
  3. 总代价累加把所有段代价加起来,高层就可以比较“换乘两次”和“绕远直达”哪个更划算。
    C(P)=∑k=0m−1w(vk,vk+1)\displaystyle C(P)=\sum_{k=0}^{m-1} w(v_k,v_{k+1})

空间泛化能力:换一座城市也会坐地铁

你学会看北京地铁图后,到了上海也能很快看懂上海地铁图,因为你不靠死记“国贸站在哪里”,而是理解“圆圈是站、线是线路、换乘站连接多条线”的规则。机器人如果只背下单个环境的地图,换个园区就失效;真正的空间智能,是学会“图的规律”。

图神经网络(GNN)正是为此设计的。它让每个节点不断向邻居“打听消息”,再把消息聚合成自己的新特征。经过若干轮消息传递,每个节点的特征里就包含了附近几站路的拓扑信息,决策器可以根据这些特征选择下一步动作。GNN 的一层消息传递可以写成:

因此,一个在大量地图上训练过的 GNN 策略,面对一张从未见过的拓扑图时,依然能根据节点连接模式给出合理导航方向。工程上还会用“仿真到现实”迁移:先在虚拟世界里随机生成成千上万张“地铁图”训练,再拿到真实机器人上微调,并通过域随机化改变灯光、地面纹理,让策略不至于只会做仿真题。

hv(k+1)=ReLU ⁣(W∑u∈N(v)hu(k))\displaystyle h_v^{(k+1)}=\mathrm{ReLU}\!\left(W\sum_{u\in\mathcal{N}(v)}h_u^{(k)}\right)
这像每个地铁站把自己的人流量告诉相邻站,隔壁站再结合这些消息决定要不要限流;信息在图上流动,站点因此理解“周围发生了什么”。
  1. 邻居特征聚合把当前站点 \(v\) 的所有邻居 \(u\) 的特征向量相加,让信息沿着边流动到中心节点。
    ∑u∈N(v)hu(k)\displaystyle \sum_{u\in\mathcal{N}(v)}h_u^{(k)}
  2. 线性变换用权重矩阵 \(W\) 对聚合结果做投影,相当于把“邻居消息”翻译成对决策更有用的高维特征。
    W∑u∈N(v)hu(k)\displaystyle W\sum_{u\in\mathcal{N}(v)}h_u^{(k)}
  3. 非线性激活ReLU 把负数归零、正数保留,使网络能表达复杂的非线性策略,同时避免梯度消失。
    ReLU(x)=max⁡(0,x)\displaystyle \mathrm{ReLU}(x)=\max(0,x)

工程落地协作:算法与工程的双人舞

论文里的拓扑导航系统跑通一个 demo 很容易,真正让它每天在园区里稳定跑满八小时却很难。算法团队负责把“认路”模型训练好,工程团队负责把模型装进机器人、接好传感器、处理异常重启、记录日志。两者不是接力赛,而是双人舞:算法需要工程反馈真实数据,工程需要算法解释模型行为。

如果缺少数据闭环,算法团队只能对着仿真数据自嗨;如果缺少统一评价指标,工程团队说“机器人今天没撞”,算法团队却不知道“绕路多不多、卡住几次”。一个健康的技术转化流程,应当让每次部署都变成一次可量化的实验。技术转化效率可以用一个简单公式来描述:

工程与算法配合得越好,数据回流得越快,模型就越能适应真实场景的“脏乱差”。就像地铁线路图需要运营方根据客流不断调整发车方案一样,机器人的拓扑地图和导航策略也需要在真实环境中反复打磨,才能真正从论文走进产品。

η=VlandedCtotal\displaystyle \eta=\frac{V_{\text{landed}}}{C_{\text{total}}}
这是机器人版的“投入产出比”:分母是研发、集成、数据标注和调试的总成本,分子是真正落地后产生的价值。
  1. 落地价值 \(V_{\text{landed}}\)机器人真正代替人完成巡检、搬运后节省的人力,以及多出的作业量,都算作落地价值。
    Vlanded=∑tbenefitt−costt\displaystyle V_{\text{landed}}=\sum_{t}\text{benefit}_{t}-\text{cost}_{t}
  2. 总投入 \(C_{\text{total}}\)算法研发、硬件集成、数据采集、现场调试等所有成本都要算进去,缺一项都会高估效率。
    Ctotal=Cresearch+Cengineer+Cdata+Cdeploy\displaystyle C_{\text{total}}=C_{\text{research}}+C_{\text{engineer}}+C_{\text{data}}+C_{\text{deploy}}
  3. 转化效率 \(\eta\)当 \(\eta>1\) 时值得扩大投入;当 \(\eta<1\) 时,与其继续烧钱,不如收缩场景或降低需求复杂度。
    η=VlandedCtotal\displaystyle \eta=\frac{V_{\text{landed}}}{C_{\text{total}}}

投资热度与风险:别把地铁图当成藏宝图

空间智能赛道如今很热,拓扑导航也经常出现在融资 PPT 里。但一张漂亮的地铁图并不等于宝藏地图:热炒的概念可能只是把简单的路径规划包装成“通用世界模型”,距离稳定量产还有很远的距离。对创业公司和投资人来说,最重要的不是故事多性感,而是期望价值是否为正。

我们可以把技术落地的未来拆成几个情景:乐观情景、中性情景、悲观情景。每个情景有一个价值 \(v_k\) 和一个大致概率 \(p_k\),那么这项投资的期望价值就是加权平均:

投资热度高不代表技术已经成熟,融资多也不代表产品一定赚钱。真正稳健的推进策略是:先用一个小场景验证价值闭环,再逐步向相邻场景扩展;同时保持长期主义,不被短期泡沫裹挟,也不因为一次失败就否定整个方向。毕竟,地铁图的价值不在于它画得多漂亮,而在于它真的能带人到达目的地。

E[V]=∑k=1mpk vk\displaystyle E[V]=\sum_{k=1}^{m}p_k\,v_k
这像在买彩票前先算期望收益:不能只看头奖五百万,还要乘上中奖概率和研究“不中奖会亏多少”。
  1. 情景价值 \(v_k\)例如“巡检机器人三年内大规模铺开”是一个情景,“始终停留在 demo 阶段”是另一个情景;每个情景的回报不同。
    vk(k=1,…,m)\displaystyle v_k\quad(k=1,\dots,m)
  2. 情景概率 \(p_k\)根据现有技术成熟度、团队执行力和市场需求估计概率,所有情景概率之和为 1,避免过度乐观。
    pk∈[0,1],∑k=1mpk=1\displaystyle p_k\in[0,1],\quad \sum_{k=1}^{m}p_k=1
  3. 概率加权求和把每个情景的价值乘以对应概率再相加,得到更接近真实回报的期望值,而不是被“最亮眼的故事”带走。
    E[V]=∑k=1mpk vk\displaystyle E[V]=\sum_{k=1}^{m}p_k\,v_k

AI 应用场景

园区巡检机器人

阶段:地图构建与全局路径规划

解决的问题:园区范围大、道路结构相对稳定,若用厘米级度量地图做全局规划,内存消耗大,且行人、临时堆料经常让地图失效。用拓扑地图把主干道、拐角、充电桩、卸货点抽象为节点和边,构建和更新成本低。

具体案例:某园区巡检机器人团队先用视觉特征给主要路径建拓扑图,再用 A* 规划出“充电点→巡检点1→巡检点2→充电点”的全局路径,局部用激光雷达避障,单次全局规划从原来秒级降到毫秒级。

仓储搬运机器人集群

阶段:层级化规划与多机调度

解决的问题:多楼层仓储场景中,机器人要跨区域搬运,直接在一个全局坐标地图上规划会因为环境太大、动态障碍多而频繁重规划。高层用拓扑图选“出货区→电梯口→缓存区”的站点序列,低层用局部代价地图完成每段执行。

具体案例:电商仓库的 AMR 接到订单后,先查拓扑层找到最近的电梯节点,再切成子目标导航;遇到临时推车,低层重新规划本段路径,不会推翻全局换乘方案。

空间智能项目投资评估

阶段:产品战略与投资评估

解决的问题:技术热浪下,“通用空间智能”常被过度包装,团队容易投入大量资源做炫酷 demo 却无法量产。用期望价值公式把不同落地场景的概率和收益量化,能帮决策者保持清醒。

具体案例:一家机器人公司评估巡检、配送、通用平台三个方向。通过历史数据估计各场景三年落地概率和毛利,发现巡检场景投入产出比最高,于是集中资源先把巡检闭环做透,再向相邻场景扩展。

Python 演示

python54 行
import heapqimport math class TopoMap:    def __init__(self):        self.nodes = {}        self.edges = {}     def add_node(self, nid, x, y):        self.nodes[nid] = (x, y)        self.edges.setdefault(nid, [])     def add_edge(self, a, b, cost=None):        if cost is None:            cost = self.distance(a, b)        self.edges[a].append((b, cost))        self.edges[b].append((a, cost))     def distance(self, a, b):        x1, y1 = self.nodes[a]        x2, y2 = self.nodes[b]        return math.hypot(x2 - x1, y2 - y1)     def astar(self, start, goal):        frontier = [(0, start)]        came_from = {start: None}        g_score = {start: 0}        while frontier:            _, cur = heapq.heappop(frontier)            if cur == goal:                path = []                while cur is not None:                    path.append(cur)                    cur = came_from[cur]                return path[::-1]            for nxt, cost in self.edges[cur]:                tentative = g_score[cur] + cost                if tentative < g_score.get(nxt, float('inf')):                    g_score[nxt] = tentative                    came_from[nxt] = cur                    f_score = tentative + self.distance(nxt, goal)                    heapq.heappush(frontier, (f_score, nxt))        return [] if __name__ == "__main__":    topo = TopoMap()    for nid, x, y in [("A", 0, 0), ("B", 1, 0), ("C", 1, 1), ("D", 2, 1), ("E", 3, 0)]:        topo.add_node(nid, x, y)    topo.add_edge("A", "B")    topo.add_edge("B", "C")    topo.add_edge("C", "D")    topo.add_edge("B", "E")    topo.add_edge("E", "D")    print(topo.astar("A", "D"))
目的:用 A* 在拓扑地图上搜索最短路径,演示把“站点—线路”图变成可执行导航计划的过程。
  1. self.edges.setdefault(nid, [])每个新站点都要先初始化一个空的邻居表,避免后续加边时报错。
  2. frontier = [(0, start)]把起点放进按估计总代价排序的优先队列,A* 会优先走更有希望的方向。
  3. tentative = g_score[cur] + cost计算通过当前站点到达邻居的新实际代价,只有比已记录代价更小才更新。
  4. f_score = tentative + self.distance(nxt, goal)用直线距离作为启发值,让搜索既保证最优性又加速收敛。
  5. return path[::-1]从终点沿着记录的上一步回溯到起点,再反转得到从起点出发的正序路径。

常见误区

误区我以为拓扑地图就是把高清地图缩小、去掉障碍物细节,本质上还是同一张地图,只是精度低一点,所有门和墙的相对位置都应该保留。

正解拓扑地图不是度量地图的简化版,而是另一种表征。它可以只保存节点和连接,不要求全局一致坐标,节点位置甚至可以是局部的。就像地铁图不是实景航拍图的压缩:它故意不画街道,只画站点关系,因为导航关心的核心是“怎么连通”而不是“墙在哪”。

为何常见:画在屏幕上的拓扑图通常还有坐标和线段长度,容易让人误以为它只是精度较低的度量地图;而且我们习惯用带比例尺的地图理解空间,所以难以接受“没有精确坐标的地图”。

误区我以为机器人只要每到一个新地方就加一个节点、连一条线,走完一圈自然就能得到一张干净拓扑图,不需要专门做回环检测。

正解没有回环检测,机器人会“漂移”:走过一圈回到原点,却把同一个门当成两个不同的站,图里会出现两条互相矛盾的线路。回环检测通过特征相似度认出老地点,把重复节点合并,并修正轨迹累积误差,这是拓扑图保持一致性的关键。

为何常见:我们看静态地铁图觉得天经地义,忽略了机器人是在实时、含噪声的传感器中建图,“同一地点”需要主动认出来。

误区我觉得只要拓扑图规划出站点序列,机器人就能闭着眼睛走完全程,局部避障和细节感知都不重要。

正解拓扑规划告诉你第几站换乘,但没有告诉你下车后怎么绕过施工围栏。每段路径仍然需要局部度量感知完成避障、停靠和微调。二者是“地铁图”与“出站后脚步”的分工,缺一不可。

为何常见:层级化规划容易让人误以为高层决策取代了低层控制,其实高层只负责定方向,低层才负责真正迈开步子。

误区我看到论文里 GNN 能在新图上直接导航,觉得传统图搜索算法可以退休,以后都让神经网络来规划。

正解GNN 策略擅长从数据中学习迁移模式,但它没有 A* 的最优性保证,遇到分布外的地图可能给出激进或不可达的路线。工程上常把两者结合:用 GNN 生成候选,用 A* 或仿真器做校验,安全第一。

为何常见:AI 热潮中,学习型方法常常被过度神化,但工程系统更看重可证明性与可诊断性,不会轻易把控制权完全交给黑盒。

误区看到资本涌入空间智能赛道,我觉得拓扑导航马上就能全场景落地,再不投资就会错过风口。

正解投资热度反映预期,不等于技术成熟度。真正落地要看数据闭环、可靠性、维护成本和投入产出比。用期望价值公式把各情景概率化后,很多“性感”项目的真实回报并不高,应坚持价值导向推进。

为何常见:人容易被融资新闻和龙头故事吸引,忽略幸存者偏差和实验数据不足的现状,再加上技术名词多,外行很难拆穿过度承诺。

面试题

Q1. 拓扑地图中的“节点”最适合类比为地铁线路图中的什么?

单选题 · easy

  • A.地铁站牌← 正确答案
  • B.地铁列车
  • C.运行里程
  • D.售票窗口

答案:A。拓扑地图的节点对应地铁图中的站点,代表环境中值得记住的关键位置;边对应线路,代表可通行关系。列车是移动体,里程是度量信息,售票窗口与空间结构无关。

Q2. 与精细度量地图相比,拓扑地图最突出的优势是什么?

单选题 · easy

  • A.厘米级定位精度
  • B.存储紧凑搜索高效← 正确答案
  • C.直接用于车辆控制
  • D.记录所有障碍物轮廓

答案:B。度量地图精度高但存储和计算开销大;拓扑地图只保留节点和边,像地铁图一样省空间、易搜索,更适合大场景导航。

Q3. 机器人建图时识别“我回到了曾经来过的地方”,属于哪个环节?

单选题 · mid

  • A.路网拓扑优化
  • B.回环检测算法← 正确答案
  • C.局部路径平滑
  • D.位姿初始估计

答案:B。回环检测通过特征相似度判断当前地点是否访问过,并把重复节点合并,修正累积漂移。路径平滑和位姿初始估计都不是“认出老地点”的过程。

Q4. 在 A* 算法的公式 \(f(n)=g(n)+h(n)\) 中,\(h(n)\) 表示什么?

单选题 · mid

  • A.起点到当前点的实际代价
  • B.当前点到终点的启发估计← 正确答案
  • C.整条路径的累计代价
  • D.节点编号的哈希数值

答案:B。\(g(n)\) 是已经花掉的实际代价,\(h(n)\) 是到终点还需多少代价的启发式估计,两者相加决定搜索优先级。

Q5. 层级化规划中,高层拓扑规划与低层局部控制的分工是?

多选题 · mid

  • A.高层选择站点序列← 正确答案
  • B.高层控制电机电流
  • C.低层负责动态避障← 正确答案
  • D.低层生成整张地图

答案:AC。高层在拓扑图上选择站点序列,低层在每一段执行具体控制并处理动态障碍。“先坐地铁再走路”正是这种分工的隐喻。

Q6. 图神经网络策略能“换一座城市也会坐地铁”的主要原因是什么?

单选题 · mid

  • A.记住了每个站点图像
  • B.学习图上的决策模式← 正确答案
  • C.存储所有地图坐标
  • D.完全依赖全球定位

答案:B。GNN 学习的是节点之间的信息传递和决策模式,而不是背下坐标或图像。因此面对新拓扑图时,只要结构相似,它就能迁移。

Q7. 从论文到产品,算法团队与工程团队高效协作的关键闭环包括?

多选题 · hard

  • A.真实场景数据回流← 正确答案
  • B.统一评估指标体系← 正确答案
  • C.只在仿真环境验收
  • D.小步快跑持续部署← 正确答案

答案:ABD。真实数据回流让算法感知现场问题,统一指标让双方用同一把尺子说话,持续部署让小问题快速暴露。只在仿真中验收会漏掉真实世界的噪声。

Q8. 技术落地评估时,使用 \(E[V]=\sum p_k v_k\) 的核心思想是什么?

单选题 · hard

  • A.只看最大可能收益
  • B.按概率加权不同情景← 正确答案
  • C.哪个热点概念就追
  • D.收益越高越要重仓

答案:B。期望价值把每个情景的收益和概率相乘,再求和,避免只被最乐观故事吸引,这正是投资评估里的“按概率加权”。

Q9. 机器人刚进入新环境,地图上还没有目标站点,此时图导航策略应优先做什么?

单选题 · easy

  • A.原地等待外部指令
  • B.沿边界探索并建站← 正确答案
  • C.删除已有地图信息
  • D.关闭所有环境感知

答案:B。目标不在图上时,机器人需要探索未知区域、发现新节点并扩展拓扑图。删除地图和关闭感知都无法完成导航。

Q10. 下列关于拓扑地图学习的说法正确的有哪些?

多选题 · hard

  • A.节点代表语义地点← 正确答案
  • B.边表示可通行关系← 正确答案
  • C.建图过程无需感知
  • D.回环能修正累积漂移← 正确答案

答案:ABD。节点可以是房间、电梯口等语义位置,边表示能否通行,回环负责修正漂移。建图依赖视觉或激光感知,不可能“无需感知”。