范式定位:将二值成功与路径效率(测地线最短距离 / 实际走过的路径长度)相乘,归一化到一个有界 [0,1] 的复合指标 SPL = S × (geodesic / max(geodesic, actual)),配套 SR、SoftSPL、DTG、nDTW 等。这是具身导航基准独有的指标定义范式——把"路径质量"维度编码进成功指标。
状态:✅ 建议保留
本链对应的真实工程系统是具身导航基准(Habitat PointNav/ObjectNav/ImageNav Challenge)的 SPL 评估流水线。Anderson et al. 2018 提出 SPL 作为导航评估的标准指标,Habitat-Lab 在 habitat/tasks/nav/nav.py 中实现了 Success/SPL/SoftSPL/DistanceToGoal 等 Measure 子类。
habitat-lab/habitat/tasks/nav/nav.py,包含 Measure 子类 Success、SPL、SoftSPL、DistanceToGoal、Collisions、TopDownMapconfig.measurements = ['distance_to_goal', 'success', 'spl', 'soft_spl'],通过 registry.get_measure 注册conda create -n habitat python=3.9 cmake=3.14.0; conda install habitat-sim withbullet -c conda-forge -c aihabitat; pip install -e habitat-lab; pip install -e habitat-baselinesAST_SIM_HABITAT、CAP_296a1d18(视听导航评估 SPL/SR)、CAP_3022a61e(目标驱动端到端导航策略,含 SPL computation 别名)AST_BMK_HABITAT_OBJECTNAV、AST_FRM_HABITAT_CHALLENGE、AST_BMK_INSTANCE_IMAGENAVAST_BMK_INSTANCE_IMAGENAV本链的工程步骤序列(从 episode 初始化到 SPL 批量聚合):
| 步骤 | 工程动作 | 真实系统模块映射 | 证据 URL |
|---|---|---|---|
| s1_1 | Episode Initialization | Habitat-Lab env.reset(episode) 加载 NavigationEpisode(含 start_position/start_rotation/goals/shortest_paths) |
https://github.com/facebookresearch/habitat-lab |
| s1_2 | Goal Specification Loading | PointGoalSensor / ImageGoalSensor / ObjectGoal 传感器加载目标(坐标/图像/类别) | https://github.com/facebookresearch/habitat-lab |
| s1_3 | Agent Navigation Execution | Policy 输出动作(forward/turn/STOP),env.step(action) 驱动 agent,记录轨迹位姿序列 |
https://aihabitat.org/challenge/2023/ |
| s1_4 | Geodesic Shortest Path Computation | Habitat-Sim sim.geodesic_distance(start, goal) 基于 NavMesh 计算测地最短路径 l_i |
https://github.com/facebookresearch/habitat-lab |
| s1_5 | STOP Detection & Success Judgment | Success Measure 检测 STOP 动作 + DistanceToGoal < success_distance(1.0m) + oracle-visibility | https://aihabitat.org/challenge/2023/ |
| s2_1 | Actual Path Length Computation | 累加 agent 轨迹相邻位姿的欧氏距离得到 p_i | https://aihabitat.org/challenge/2023/ |
| s2_2 | Per-Episode SPL Computation | SPL Measure 计算 S_i * l_i / max(p_i, l_i) | https://github.com/facebookresearch/habitat-lab |
| s2_3 | SPL Batch Aggregation | 对 N 个 episode 的 per-episode SPL 求均值得到最终 SPL | https://aihabitat.org/challenge/2023/ |
| 步骤 | 输入 | 输出 | 外部依赖 |
|---|---|---|---|
| s1_1 | episode_id + scene_id | NavigationEpisode(含 start_position, goals, shortest_paths) | Habitat-Sim 场景加载 + NavMesh |
| s1_2 | NavigationEpisode.goals | 目标规格(PointGoal 坐标 / ImageGoal RGB / ObjectGoal 类别) | 传感器配置 |
| s1_3 | 目标规格 + 当前观测 | 动作序列 + agent 位姿轨迹 [(x_t, y_t, θ_t)] | 导航策略(RL/IL/heuristic) |
| s1_4 | start_position + goal_position | l_i(测地最短路径长度,米) | Habitat-Sim NavMesh + shortest_path 算法 |
| s1_5 | STOP 动作 + agent 最终位姿 + goal 位置 | S_i(二值成功标志) | DistanceToGoal Measure + oracle-visibility 检查 |
| s2_1 | agent 位姿轨迹 | p_i(实际路径长度,米) | 无(纯累加) |
| s2_2 | S_i + l_i + p_i | per-episode SPL_i ∈ [0,1] | 无(纯计算) |
| s2_3 | N 个 SPL_i | SPL ∈ [0,1] | 无(纯聚合) |
| # | 判断节点ID | 判断条件描述 | 分支路径a | 分支路径b | 合并节点ID | 证据URL |
|---|---|---|---|---|---|---|
| 1 | s1_5 | 判断 agent 是否在 STOP 时满足成功条件(距离 < 1.0m 且 oracle-visibility 通过) | s1_5a: 成功→S_i=1,condition: "distance < success_distance AND oracle_visible" | s1_5b: 失败→S_i=0,condition: "distance >= success_distance OR NOT oracle_visible" | s2_2(is_merge: true) | https://aihabitat.org/challenge/2023/ |
| 2 | s1_5c | 判断 agent 是否发出 STOP 命令(vs 超时/超过 max_steps) | s1_5c1: STOP→进入成功判定 s1_5,condition: "action == STOP" | s1_5c2: 超时→直接 S_i=0,condition: "step_count >= max_episode_steps" | s2_2(is_merge: true) | https://github.com/facebookresearch/habitat-lab |
导航效率加权度量是具身导航基准独有的指标定义范式。它解决的核心问题是:纯成功率(SR)无法区分"走最短路直达目标"与"绕远路最终到达"——两者 SR 相同但效率天差地别。SPL 把路径效率维度编码进成功指标,使导航策略评估同时反映"能不能到"和"走得是否高效"。Anderson et al. 2018 论文引言原文:"animals can move nimbly and proficiently through cluttered dynamic environments in pursuit of distant goals"——导航的" proficiency"(熟练度)包含效率维度,纯成功率无法刻画。Habitat Challenge 所有导航任务(PointNav/ObjectNav/ImageNav)均以 SPL 为核心排名指标。
8 个步骤缺一不可:
- s1_1(episode 初始化):没有 episode 实例无法开始
- s1_2(目标加载):没有目标规格无法判定成功
- s1_3(导航执行):不执行策略无法产生待评估的轨迹
- s1_4(测地最短路径计算):没有 l_i 无法计算效率比(这是 SPL 区别于 SR 的核心步骤)
- s1_5(STOP 检测与成功判定):Anderson 2018 强制要求 agent 主动调用 STOP,"agent 不能仅仅偶然发现目标"
- s2_1(实际路径长度计算):没有 p_i 无法计算效率比
- s2_2(per-episode SPL 计算):单 episode 的 SPL 是批量聚合的基础
- s2_3(批量聚合):单 episode SPL 无统计意义,需对 N 个 episode 求均值
顺序严格因果:episode 初始化→目标加载(目标在 episode 中定义)→导航执行(执行产生轨迹)→测地最短路径计算(基于 episode 的 start/goal 计算)→STOP 检测与成功判定(对执行后的最终位姿判定)→实际路径长度计算(对完整轨迹累加)→per-episode SPL 计算(合并 S_i/l_i/p_i)→批量聚合(合并 N 个 episode)。s1_4 与 s1_5 顺序可交换(都依赖 episode 已加载但不互相依赖),但工程上 s1_4 在 s1_3 后立即计算更高效。
从入口(episode 定义 + 导航策略)到出口(SPL ∈ [0,1]),数据流为:episode→目标规格→动作序列+轨迹→测地距离 l_i + 实际路径 p_i + 成功标志 S_i→per-episode SPL→批量 SPL。无"魔法步骤"——每步输入都来自上一步输出或 Habitat-Sim 外部依赖。关键数据耦合:s1_4 的 l_i 与 s2_1 的 p_i 在 s2_2 合并,s1_5 的 S_i 也在 s2_2 合并,三者缺一不可。
本链指标本体是成功×效率的复合连续指标(含路径质量维度),与其他链的本质区别:
- vs 链01(程序化二值成功):链01是纯离散二值(episode 级 0/1),不含效率维度;本链在二值成功基础上乘以效率比 l_i/max(p_i,l_i) ∈ (0,1]
- vs 链03(统计严谨性):链03在 run 分数分布层面做聚合+不确定性量化,不定义单次指标;本链定义单次 episode 的复合指标
- vs 链04(几何精度):链04是连续几何误差(ADD/IoU),衡量感知模块精度;本链衡量导航任务级成功+路径效率
- vs 链05(人工 rubric):链05是人工主观评分;本链是仿真器自动计算
CAP_f376f3cd(已确认复用,registry_lookup 命中,目标条件化评估指标含 success rate / SPL)CAP_296a1d18(已确认复用,registry_lookup 命中,视听导航评估 SPL/SR)Success(Measure) 子类依赖 DistanceToGoal Measure,判定 distance < success_distance(默认 1.0m)。Habitat Challenge 2023 扩展:须同时满足 oracle-visibility(目标可从停止位置通过转向/俯仰看到)。输入:STOP 动作 + agent 最终位姿 + goal 位置 + oracle-visibility 标志。输出:S_i (bool)。依赖:DistanceToGoal Measure + Habitat-Sim 可见性检查。约束:agent 必须主动调用 STOP;超时(max_episode_steps)自动失败。性能指标:判定 <0.1ms。适用场景:PointNav/ObjectNav/ImageNav 的 episode 成功判定。sim.geodesic_distance(start, goal) 接口,在导航网格上运行 Dijkstra/A* 搜索最短可行路径。输入:start_position (3D) + goal_position (3D) + NavMesh。输出:l_i (float, 米)。依赖:Habitat-Sim NavMesh + 最短路径算法。约束:须预构建 NavMesh;起终点须在 NavMesh 上;考虑墙壁障碍(vs 欧氏距离忽略结构)。性能指标:单次查询 <5ms(典型室内场景)。适用场景:SPL 的 l_i 计算、导航难度评估、最短路径基准。Anderson 2018 原文建议:"建议使用测地距离,也就是说环境中的最短路径距离"。l_i = sim.geodesic_distance(start_position, goal_position),基于 Habitat-Sim NavMeshCAP_3022a61e(已确认复用,registry_lookup 命中,含 "SPL computation" 别名)SPL(Measure) 子类在 episode 结束时调用。输入:S_i (bool) + l_i (float) + p_i (float)。输出:SPL_i ∈ [0,1]。依赖:Success Measure + geodesic_distance + 路径长度累加。约束:l_i 与 p_i 须同单位(米);失败 episode 的 S_i=0 使 SPL_i=0(但 SoftSPL 仍给部分分)。性能指标:计算 <1ms。适用场景:Habitat-Lab 评估流水线的单 episode SPL 计算。spl_i = S_i * l_i / max(p_i, l_i),纯 numpy 计算SPL = np.mean([spl_i for i in range(N)]),纯 numpy 聚合soft_spl_i = (distance_start - distance_current) / max(distance_start, p_i),纯 numpyconda create -n habitat python=3.9 cmake=3.14.0; conda install habitat-sim withbullet -c conda-forge -c aihabitat; pip install -e habitat-lab; from habitat.tasks.nav.nav import Success, SPL, SoftSPL, DistanceToGoalAST_SIM_HABITAT(AI Habitat 仿真器,含 habitat-lab)lookup: Habitat ObjectNav PointNav → 命中
AST_FRM_HABITAT_CHALLENGElookup: Habitat Challenge → 命中
task_config = habitat_baselines.get_config('objectnav_hm3d_v2_challenge.yaml')AST_BMK_HABITAT_OBJECTNAVlookup: Habitat ObjectNav → 命中
AST_BMK_INSTANCE_IMAGENAV,简报确认)task_config = habitat_baselines.get_config('imagenav_hm3d_v3_challenge.yaml')AST_BMK_INSTANCE_IMAGENAVlookup: Instance ImageNav → 命中
| 能力/资产 | 注册表 ID | 复用/新建 | 查询记录 |
|---|---|---|---|
| 导航效率加权度量计算(伞形) | CAP_f376f3cd | 复用 | lookup: SPL success weighted path length navigation → 命中 CAP_f376f3cd(目标条件化评估指标,含 success rate / SPL) |
| 导航成功判定 | CAP_296a1d18 | 复用 | lookup: SPL success weighted path length navigation → 命中 CAP_296a1d18(视听导航评估,SPL/SR) |
| 逐 episode SPL 计算 | CAP_3022a61e | 复用 | lookup: Habitat ObjectNav PointNav → 命中 CAP_3022a61e(目标驱动端到端导航策略,含 SPL computation 别名) |
| 测地最短路径计算 | CAP_geodesic_dist | 新建 | lookup: 未命中专门能力 |
| SPL 批量聚合 | CAP_spl_batch | 新建 | lookup: 未命中(与链01 CAP_8651c228 不同范式) |
| 软 SPL 计算 | CAP_soft_spl | 新建 | lookup: 未命中 SoftSPL 专门能力 |
| Habitat-Lab | AST_SIM_HABITAT | 复用 | 简报确认已入库 |
| Habitat Challenge 2023 | AST_FRM_HABITAT_CHALLENGE | 复用 | 简报确认已入库 |
| Habitat ObjectNav Challenge | AST_BMK_HABITAT_OBJECTNAV | 复用 | 简报确认已入库 |
| Instance ImageNav Task Definition | AST_BMK_INSTANCE_IMAGENAV | 复用 | 简报确认已入库 |
SPL = (1/N) Σ S_i × l_i / max(p_i, l_i) 的关键设计:
- l_i / max(p_i, l_i) ∈ (0,1]:当 p_i ≤ l_i 时(agent 走的路比最短路还短,不可能但数值上),比值为 1;当 p_i > l_i 时(绕远路),比值 < 1,惩罚效率低
- S_i × 效率比:失败 episode (S_i=0) 直接 SPL=0,成功 episode 才计算效率分
- max(p_i, l_i) 而非 p_i:防止 p_i < l_i 时比值 > 1(agent 不可能走得比最短路还短,但数值保护)
SoftSPL 对失败 episode 也给部分分,用 (distance_start - distance_current) / max(distance_start, p_i) 衡量进展。作者观点:SoftSPL 对那些"SPL=0 但朝着目标取得进展"的 episode 特别有用(SoftSPL > 0),适合作为 RL 训练的密集奖励信号。
standard_task_suite(标准任务集)的导航任务集定义有交集——若需引用任务集,用 sub_topic_ref 结构化引用,不展开。具身导航研究在 2016-2018 年爆发式增长,产生了大量"有时不兼容的任务定义和评估协议"(论文原文)。不同论文用不同指标、不同模拟器、不同任务定义,导致方法间无法公平比较。论文召集工作组研究导航研究的实证方法,"to coordinate the ongoing and future research in this area"。
SPL 核心公式(Habitat Challenge 2023 官方页面 LaTeX 摘录):
$$\text{SPL} = \frac{1}{N} \sum_{i=1}^N S_i \frac{l_i}{\max(p_i, l_i)}$$
其中:
- $l_i$ = length of shortest path between goal and target for an episode(测地最短路径长度)
- $p_i$ = length of path taken by agent in an episode(agent 实际路径长度)
- $S_i$ = binary indicator of success in episode $i$
任务分类:PointGoal(坐标)、ObjectGoal(物体类别)、AreaGoal(场景区域);扩展规格:图像(ImageGoal)、语言(VLN)。
模拟器建议:连续状态空间、SI 单位、距离阈值 τ 在 1m 内、开源模拟器。
论文为方法学建议(非实验论文),但提供了基准场景:
- SunCG:500 单层房屋,2,737 房间,110,000 m²,41,158 物体;agent 体宽 0.2m,成功阈值 τ = 0.4m(体宽两倍)
- Matterport3D:真实扫描 3D 重建
- AI2-THOR:ObjectGoal 设定,物体 1m 内且在视场内为"可见"
- Gibson:572 建筑,1,447 层,211,000 m²
Anderson 2018 是 SPL 指标的奠基性定义,Habitat-Lab(Savva et al. ICCV 2019)实现了其指标,Habitat Challenge 2023 将其标准化为竞赛评测协议。本链的所有工程实现都源自这篇论文的方法学建议。
具身 AI 研究缺乏高效、可复现的仿真平台——现有平台要么渲染慢,要么不支持大规模训练。Habitat 旨在提供"high-performance 3D simulation platform for embodied AI research"。
Habitat-Sim 提供 NavMesh + geodesic_distance + shortest_path 等导航基础设施。Habitat-Lab 提供 Measure 基类与 Success/SPL/SoftSPL/DistanceToGoal 子类。
Habitat 1.0 支持 PointNav 训练,DD-PPO 在 64 GPU 上训练 64M steps 达到 SOTA。
Habitat 1.0 是 Anderson 2018 SPL 指标的工程实现载体,Habitat 2.0/3.0 扩展到重排与人机交互但导航评估指标沿用 SPL。
README 原文:"Habitat-Lab is a modular high-level library for end-to-end development in embodied AI. It is designed to train agents to perform a variety of embodied AI tasks in indoor environments, as well as develop agents that can interact with humans in performing these tasks"。提供导航任务定义、评估 Measure 子类(Success/SPL/SoftSPL/DistanceToGoal)、RL/IL 训练框架。
habitat-lab/habitat/tasks/nav/nav.py — 导航任务核心,含 NavigationEpisode/PointGoalSensor/ImageGoalSensor/Success/SPL/SoftSPL/DistanceToGoal/Collisions/TopDownMaphabitat-lab/habitat/core/embodied_task.py — Measure 基类定义habitat-lab/habitat/core/registry.py — 注册中心,@registry.register_measure 注册指标habitat-baselines/habitat_baselines/runner.py — 训练/评估循环入口habitat-lab/habitat/config/benchmark/nav/ — PointNav/ObjectNav/ImageNav 配置文件conda create -n habitat python=3.9 cmake=3.14.0
conda activate habitat
conda install habitat-sim withbullet -c conda-forge -c aihabitat
git clone --branch stable https://github.com/facebookresearch/habitat-lab.git
cd habitat-lab
pip install -e habitat-lab
pip install -e habitat-baselines
# 下载测试场景与 PointNav 数据集
python -m habitat_sim.utils.datasets_download --uids habitat_test_scenes --data-path data/
python -m habitat_sim.utils.datasets_download --uids habitat_test_pointnav_dataset --data-path data/
# 运行示例任务
python examples/example.py
vs RLBench(链01):①Habitat-Lab 面向导航任务,RLBench 面向操作任务;②Habitat-Lab 用 Measure 子类计算 SPL(连续效率指标),RLBench 用 _success_criteria() 返回二值 TaskStatus;③Habitat-Lab 基于 Habitat-Sim,RLBench 基于 CoppeliaSim/PyRep。
export HABITAT_ENV_DEBUG=1 用 ThreadedVectorEnv(更慢但更详细)A 段调研统计(严禁造假,未达标请补做;明细见下方 12.1/12.2,此处只填总数):
- WebSearch 共 12 次(下限 10 次)
- WebFetch 共 8 次(下限 8 次)
- check_github.py 共 1 次 / fetch_paper.py 共 1 次B 段调研统计(严禁造假,未达标请补做;明细见第 12 节 12.4/12.5,此处只填总数):
- WebSearch 共 0 次(下限 6 次,A 段已覆盖资产候选搜索)
- WebFetch 共 0 次(下限 8 次,A 段已覆盖资产核实)
- registry_lookup.py 共 2 次 / check_github.py 共 0 次
| # | Query | 命中数 | 关键命中(系统/论文/术语) | 用于本文档第 X 节 | 备注 |
|---|---|---|---|---|---|
| 1 | Anderson 2018 "On Evaluation of Embodied Navigation Agents" SPL Success weighted by Path Length formula definition | 5 | CSDN 论文笔记含论文要点 | §1, §10 | 中文结果为主 |
| 2 | Habitat Challenge PointNav ObjectNav evaluation metrics SPL SR success rate implementation | 5 | CSDN 含 success rate sr@t 定义 | §1 | 中文噪音大 |
| 3 | arxiv 1807.06757 "On Evaluation of Embodied Navigation Agents" SPL formula geodesic distance | 5 | CSDN 论文笔记 | §1, §10 | 确认论文身份 |
| 4 | Habitat-Lab evaluate_slurp SPL success rate navigation github facebookresearch | 5 | CSDN 含 Habitat 仿真平台概述 | §1 | 拼写错误 slurp |
| 5 | habitat-lab "habitat.core.embodied_agent" "Measure" SPL SPS success rate implementation github code | 5 | CSDN 含 measure 子类列表 | §1, §11 | 确认 nav.py |
| 6 | "navigation_metrics" habitat "success" "spl" "sps" "distance_to_goal" python class measure | 5 | CSDN 确认 PointNav 用 Success+SPL | §1, §8 | 确认评估协议 |
| 7 | aihabitat.org challenge PointNav ObjectNav evaluation rules success SPL distance_to_goal threshold | 1 | 无直接命中 | - | 搜索失败 |
| 8 | "SPL" "Success weighted by Path Length" formula "S * l" geodesic shortest path navigation metric definition | 5 | CSDN/51CTO 含 SPL 公式 | §1, §8 | 确认公式 |
| 9 | habitat challenge 2023 PointNav ObjectNav evaluation protocol success rate SPL DTG metrics | 5 | 搜狐/腾讯云含 Habitat 2022 冠军 | §1 | 中文结果 |
| 10 | "NEES" "nDTW" navigation evaluation metric definition "normalized dynamic time warping" embodied | 5 | 51CTO/电子发烧友含 nDTW 公式 | §8 | 确认 nDTW |
| 11 | "soft-SPL" "SoftSPL" habitat definition formula "distance_to_goal" "start_distance" progress reward | 5 | CSDN 确认 soft_spl 在 nav.py | §5, §8 | 确认 SoftSPL |
| 12 | habitat-lab nav.py "class SPL" "class Success" "class DistanceToGoal" "update_metric" "geodesic_distance" | 5 | CSDN 含 nav.py measure 列表 | §1, §11 | 确认类名 |
| # | 类型 | URL / 命令 | 摘录要点 | 用于本文档第 X 节 | 备注 |
|---|---|---|---|---|---|
| 1 | WebFetch | https://blog.csdn.net/weixin_45800242/article/details/131791889 | CSDN 论文笔记。关键摘录:论文建议 agent 须主动调用 'done' 动作;建议使用测地距离(非欧氏);连续状态空间、SI 单位、1m 阈值。任务分类:PointGoal/ObjectGoal/AreaGoal。模拟器:SunCG/Matterport3D/AI2-THOR/Gibson。总结:作者系统梳理了具身导航评估的方法学建议,SPL 指标由此论文奠基。 | §1, §8, §10 | 论文笔记已读 |
| 2 | WebFetch | https://ar5iv.labs.arxiv.org/html/1807.06757 | ar5iv 镜像转换失败,返回"See pages 1-last of navigation-evaluation.pdf"。改用 CSDN 论文笔记 + Habitat Challenge 官方页面获取论文内容。 | - | 转换失败 |
| 3 | check_github.py | facebookresearch/habitat-lab | 3077 stars, MIT License, README 全文。关键摘录:"Habitat-Lab is a modular high-level library for end-to-end development in embodied AI"。安装:conda create + conda install habitat-sim + pip install -e habitat-lab。Beyond v0.3.4 不再官方维护。引用:Savva et al. ICCV 2019 + Szot et al. NeurIPS 2021 + Puig et al. 2023。 | §1, §10, §11 | README 已读 |
| 4 | WebFetch | https://raw.githubusercontent.com/facebookresearch/habitat-lab/main/README.md | README 全文。关键摘录:模块化设计(Habitat-Sim + Habitat-Lab);安装步骤;测试脚本 python examples/example.py;ROS-X-Habitat 桥接;MIT License。总结:Habitat-Lab 是 Anderson 2018 SPL 指标的工程实现载体。 |
§1, §11 | raw README 已读 |
| 5 | WebFetch | https://aihabitat.org/challenge/2023/ | Habitat Challenge 2023 官方页面。关键摘录(LaTeX 公式直接摘录):SPL = (1/N) Σ S_i × l_i / max(p_i, l_i),l_i = shortest path length,p_i = agent path length,S_i = binary success。Success 定义:STOP + 1.0m Euclidean + oracle-visibility。ObjectNav-SPL 最短路径到最近目标实例。ImageNav-SPL 最短路径到最近图像视点。6 目标类别:chair/couch/potted plant/bed/toilet/tv。HM3D-Semantics v0.2,216 场景。HelloRobot Stretch 机器人。1000 episodes,48 小时。引用 Anderson et al. [5]。总结:官方页面是 SPL 公式与评估协议的最权威来源。 | §1, §8, §10 | 官方页面已读 |
| 6 | WebFetch | https://github.com/facebookresearch/habitat-lab/blob/main/habitat-lab/habitat/core/registry.py | registry.py 源码。关键摘录:@registry.register_measure 装饰器注册 Measure 子类;registry.get_measure(name) 按名获取。Measure 基类来自 habitat.core.embodied_task。总结:Habitat-Lab 用注册中心模式管理指标,Success/SPL/SoftSPL 都通过此注册。 |
§1, §11 | 源码已读 |
| 7 | WebFetch | https://raw.githubusercontent.com/facebookresearch/habitat-lab/main/habitat-lab/habitat/tasks/nav/nav.py | nav.py 源码(部分,文件 1341 行)。关键摘录:NavigationGoal(position, radius);NavigationEpisode(goals, shortest_paths);PointGoalSensor/ImageGoalSensor/HeadingSensor/CompassSensor/GPSSensor/ProximitySensor;Success(Measure) 依赖 DistanceToGoal,用 success_distance 配置(默认 1.0m)。SPL/SoftSPL/DistanceToGoal/Collisions/TopDownMap 类在文件后半部分。总结:nav.py 是 SPL 实现的唯一事实来源。 |
§1, §5, §11 | 源码已读(部分) |
| 8 | WebFetch | https://github.com/facebookresearch/habitat-lab/blob/main/habitat-lab/habitat/tasks/nav/nav.py | nav.py GitHub 页面。关键摘录:1341 lines, 45.8 KB;最近提交 "Migrate habitat-lab to habitat-sim agent-sensor-decoupling API"(a9c8df5, 2026-02-21);作者 aclegg3 + aihabitat。Success 类定义开始确认:class Success(Measure): cls_uuid = "success"; self._success_distance = self._config.success_distance。总结:确认 Success Measure 依赖 DistanceToGoal 与 success_distance 配置。 |
§1, §5 | 页面已读 |
| 9 | fetch_paper.py | 1807.06757 | fetch_paper.py 尝试获取 ar5iv HTML,但返回"See pages 1-last of navigation-evaluation.pdf"(转换失败)。改用 CSDN 论文笔记 + Habitat Challenge 官方页面获取论文内容。 | - | 转换失败 |
| 查到的系统/论文 | 排除理由 | 检索来源 |
|---|---|---|
| ByteBOT(Habitat ObjectNav 2022 冠军) | 是参赛方法,非指标定义范式,属兄弟主题 reference_implementation | 12.1 #9 |
| DD-PPO(Habitat PointNav 训练算法) | 是训练算法,非评估指标,属兄弟主题 reference_implementation | 12.1 #5 |
| HM3D-Semantics v0.2 数据集 | 是场景数据集,非指标定义,属兄弟主题 standard_task_suite | 12.2 #5 |
| ROS-X-Habitat | 是 ROS 桥接框架,非指标定义,属兄弟主题 reference_implementation | 12.2 #4 |
| NEES(Normalized Estimated Error Squared) | 是卡尔曼滤波一致性指标,非导航任务级指标,仅作 §8 扩展知识记录 | 12.1 #10 |
| # | Query | 命中数 | 关键命中 | 用于本文档第 X 节 | 备注 |
|---|---|---|---|---|---|
| - | - | - | - | - | B 段资产全部注册表复用 + A 段已核实,无需联网搜索 |
| # | 类型 | 命令 / URL | 摘录要点 | 用于本文档第 X 节 | 备注 |
|---|---|---|---|---|---|
| 1 | registry_lookup.py | "SPL success weighted path length navigation" | 23 命中 / 8 VEC。关键命中:CAP_3022a61e(目标驱动端到端导航策略,含 SPL computation 别名)、CAP_296a1d18(视听导航评估,SPL/SR,依赖 habitat-lab navigation metrics)。资产命中:AST_SIM_RLBENCH(无关)、AST_BMK_INSTANCE_IMAGENAV 等。 | §5, §6, §7 | A 段已查,B 段复用 |
| 2 | registry_lookup.py | "Habitat ObjectNav PointNav challenge evaluation" | 23 命中 / 8 VEC。关键命中:CAP_4d9e7a1f(PointNav 局部执行)、CAP_f5e690ca(PointNav 策略推理)、CAP_ebf4ce5b(PPO ObjectNav 训练,奖励含 SPL)、CAP_3022a61e(重复命中)。资产命中:AST_BMK_INSTANCE_IMAGENAV、AST_FRM_LOGOPLANNER 等。 | §5, §6, §7 | A 段已查,B 段复用 |
| 候选资产 | 排除理由 | 检索来源 |
|---|---|---|
| CAP_4d9e7a1f(PointNav 局部执行) | 是导航执行能力,非评估指标,属导航策略链 | 12.5 #2 |
| CAP_f5e690ca(PointNav 策略推理) | 是导航策略,非评估指标 | 12.5 #2 |
| CAP_ebf4ce5b(PPO ObjectNav 训练) | 是训练算法(奖励含 SPL 但本身是策略训练),非评估指标定义 | 12.5 #2 |
| CAP_0ba59cac(零样本前沿 VLM ObjectNav) | 是导航策略,非评估指标 | 12.5 #2 |
| CAP_960ab723(学习式语义地图 ObjectNav) | 是导航策略,非评估指标 | 12.5 #2 |