论文解读与源码复现|R2C:把房间映射成棋盘,让 LLM 成为低层动作规划器(CVPR 2025)
论文首页题目与摘要截图
一、前言
LLM 做机器人"大脑"做高层规划没问题,但让它直接控制"身体"(生成精确的低层动作)一直做不到——LLM 缺空间感知,规划-执行的割裂导致频繁重规划。中科院计算所的这篇论文给出的"通用语言"极其聪明:Room to Chessboard(R2C)——把环境状态映射到网格棋盘上(格长=机器人步长),LLM 像下棋一样在棋盘上逐格"走子",直接输出机器人下一步位置(式 2 的策略 π)。配套CoT-D微调范式(关键信息提取→方向判断→目标预测→选项分析四段链式决策)强化 LLM 的空间推理。ALFRED 上 LLM 系方法 SOTA:GPT-4 零样本 SR 24.0(unseen)、微调 Mistral-7B 22.35,且在开放词汇任务与真实机器人上验证泛化。
二、方法解析
2.1 R2C 框架:HLP + LLP 统一
图片源自论文 Figure 2:R2C 总览。LLM 先做高层规划(指令→子目标序列);每个子目标由环境滤波器把 RGB-D 观测转成棋盘;LLM 以 CoT-D 分析棋盘并预测下一位置;位置转换为 (MoveForward 0.25m, TurnLeft 90°) 等可执行动作。
- HLP(式 2 前置):指令LLL→ 子目标序列G=[G1,...,GK]G=[G_1,...,G_K]G=[G1,...,GK],每个Gk=(Action,Object)G_k = (\text{Action}, \text{Object})Gk=(Action,Object);
- 环境滤波器 F(ot, Gk):RGB-D + 实例分割 → 点云 → 体素化 → 沿 Z 轴展平成 (C+2)×M×M 语义地图(M=320)→M2C:膨胀核(防碰撞)→ max-pooling 降采样到 W=64(ω=0.25m=步长)→Goal-aware 聚合(多物体重叠同一格时,优先当前子目标相关且小的物体置顶层);
- LLP:棋盘文本化为物体占据坐标集(如
microwave: [[18,31],...]),加上当前子目标、动作历史 Q(长度 τ)、游戏规则 R(四方向移动 1 格/碰撞非法),LLM 单步生成下一位置utu_tut,直接映射为可执行动作序列;交互子目标在目标可见后由预定义低层动作完成。
2.2 CoT-D 四段链式决策(式 4)
直接让 LLM 输出坐标p(S∣P)p(\mathcal{S}|\mathcal{P})p(S∣P)太难(LLM 空间推理弱);CoT-D 把决策分解为:
- 关键信息提取:从长棋盘文档中抽出当前坐标与目标位置集;
- 方向判断:目标在 agent 的什么方位——修正 LLM 对棋盘坐标系的频繁误解;
- 目标预测:利用物体共现先验(“沙发可能在电视对面”)预测目标大致区域,减少无效探索;
- 选项分析:对四个候选位置逐一给理由(GPT-4 依据当前位置与正确方位关系生成标注),再选出最佳。
联合微调 HLP(7 万样本)与 CoT-D(19.5 万样本),全参数微调 Mistral-7B 与 Llama-7B 各 1 epoch(4×H100)。
论文 Fig.1 R2C 框架:LLM 与机器人交互,高级任务规划与带坐标路径的详细指令
论文 Fig.3 R2C(Mistral) 成功完成 31 步任务与失败案例的分割地图对比
R2C-GPT-4 两例开放词汇导航(去房间中心、走到离沙发最近的扶手椅)
三、数据集与实验设置
- ALFRED:7 类长时任务、207 环境、115 物体类型;SR 与 GC 指标;GPT-4 零样本测 100 条任务子集;
- 棋盘设置:房间 16m、格长 0.25m → 64×64 棋盘;
- 基线:Specialists(E.T.、FILM、LEBP、M-TRACK 等)与 Generalists(SayCan、LLM-P)。
四、关键实验结果
1. 主结果(Tab. 1):
论文 Tab.1 专家模型与 LLM 通用模型在 ALFRED 上 Val Seen/Unseen 的 SR/GC
| 方法 | Val Seen SR/GC | Val Unseen SR/GC | ΔSR |
|---|---|---|---|
| FILM(from scratch) | 24.63 / 37.20 | 20.10 / 32.45 | −4.53 |
| LEBP | 27.63 / 35.76 | 22.36 / 29.58 | −5.27 |
| SayCan(few-shot) | 12.30 / 24.52 | 9.88 / 22.54 | −2.42 |
| LLM-P (GPT) | 16.45 / 30.11 | 15.36 / 29.88 | −1.09 |
| R2C-GPT-4(零样本) | 20.00 / 28.46 | 24.00 / 28.24 | +4.00 |
| R2C-Mistral-7B | 22.31 / 32.40 | 22.35 / 31.97 | +0.04 |
R2C 是 LLM 系 SOTA;seen→unseen 的退化最小(GPT-4 反而 +4)——棋盘抽象带来强泛化;微调 7B 模型接近 GPT-4(CoT-D 的效率)。
2. 消融(Tab. 3):GT 分割 22.35→35.24(分割是瓶颈);GT 子目标 35.24→53.33(指令歧义影响大);去 CoT 41.96(−13),仅去选择分析 47.45(−5.8)——CoT-D 贡献显著。
GT Seg/GT Goal 及 SA、CoT 组件消融表(补充截图)
3. 开放词汇与真实世界(Tab. 4/Fig. 5):60 个 GPT-4 生成的新任务上 GPT-4 版 R2C 达 68–70% SR(传统封闭域方法无法处理);真实环境三个自由指令任务全部成功。
R2C-Mistral 加 GT 分割/GT 目标及去 SA、去 CoT 的 SR/GC 消融
五、机制解释与讨论
为什么"棋盘"是 LLM 与物理世界的正确接口?关键在于粒度对齐:格长 = 机器人步长,LLM 预测的"相邻格"直接就是一步动作——不需要额外控制器解释语义目标。同时棋盘是有界的离散结构,与 LLM 的 token 处理方式同构;文本化的坐标集保住了语义(物体类别)与空间(占据位置)两类信息且不会 token 爆炸。
具体发现 → 凝练结论:
- 具体发现一:GPT-4 零样本在 unseen 上反超 seen —— 结论:棋盘抽象 + CoT-D 主要依赖可迁移的空间推理而非环境记忆;
- 具体发现二:去 CoT 掉 13 个点 —— 结论:直接输出坐标超出了当前 LLM 的空间推理能力,链式决策是必要的脚手架;
- 具体发现三:分割与子目标的上界分析(GT 版 53.33 SR) —— 结论:LLM 规划器本身已接近可用,瓶颈在感知与指令解析。
六、局限与工程启示
局限:
- 逐格移动策略在开阔空间效率低(需要长序列决策);
- 棋盘 64×64 对复杂大房间可能不够精细;
- 交互子目标仍依赖预定义低层动作,未完全解放。
工程启示:
- "环境→离散游戏棋盘"是 LLM 具身控制的最小可行接口,任何网格化可行的机器人(仓储 AGV、扫地机)都可套用;
- CoT-D 的四段子任务标注格式可直接复用到其他空间推理微调场景;
- goal-aware 聚合(按子目标相关性排序物体层级)解决多物体重叠的地图抽象问题;
- 真实部署验证(Fig. 5)说明该框架不依赖仿真特有信息。
七、源码复现
- 官方仓库:项目页 https://vipl-vsu.github.io/Room2Chessboard 提供代码与演示。
- 本地目录:
复现代码/下无独立仓库目录。
⚠️ 复现路径/未运行:以下为基于论文方法描述整理的参考实现与预期复现路径,非官方代码、非实际运行结果。
参考实现(依据论文式 (1)–(4) 描述整理):
# 参考实现:R2C 环境滤波与 LLP 决策(依据论文描述整理,非官方代码)importnumpyasnpdefm2c(semantic_map,goal_object,omega=0.25,W=64):"""论文式(1):M2C = A ∘ K_dila ∘ K_pool。"""M=semantic_map.shape[-1]dilated=binary_dilation(semantic_map,iterations=int(0.1/omega))# K_dilaW_grid=M//int(0.25*M/W)pooled=max_pool2d(dilated,W_grid)# K_pool# goal-aware 聚合:目标相关且小的物体置顶层layers=sorted(pooled.items(),key=lambdakv:(kv[0]!=goal_object,object_size(kv[0])))board=np.zeros((W,W),dtype=object)forname,layerinreversed(layers):# 自底向上合并board[layer>0]=namereturnboarddefboard_to_coords(board):"""棋盘 → 物体占据坐标集(LLM 输入文本)。"""return{c:np.argwhere(board==c).tolist()forcinnp.unique(board)}defcotd_prompt(coords,subgoal,position,history,rules):returnf"""On a 64x64 chessboard...{rules}### Explored objects:{coords}### Task:{subgoal}### Current Position:{position}Select your next position from{neighbors(position)}. Analyze step by step: 1) key information 2) direction 3) target prediction 4) selection analysis, then output the best position."""defllp_step(llm,obs_rgbd,subgoal,state):board=m2c(semantic_map_update(obs_rgbd),subgoal.object)prompt=cotd_prompt(board_to_coords(board),subgoal,state.position,state.history,RULES)w_next=parse_coords(llm.generate(prompt))# 式(2): u_t = π(P(...))returncoords_to_actions(state.position,w_next)# → (TurnLeft, MoveForward)预期复现路径:
- 环境:ALFRED 官方仿真(AI2-THOR);Grounded-SAM 实例分割 + RGB-D 语义地图。
- 数据:从 ALFRED 训练集轨迹抽取 HLP 与 CoT-D 样本(26.5 万条,选择分析理由由 GPT-4 生成)。
- 训练:全参数微调 Mistral-7B-Instruct / Llama-7B-Chat 各 1 epoch(4×H100)。
- 评测:ALFRED 验证集 SR/GC 对照 Tab. 1;消融(GT Seg./GT Goal/-CoT)对照 Tab. 3;开放词汇 mini 基准复现 Tab. 4。
八、总结
R2C 的核心贡献是一个"接口设计":把部分可观测的连续房间压成步长粒度的棋盘,LLM 的下一格预测就直接是机器人的下一步动作——规划与执行的鸿沟被一个表示选择填平。CoT-D 四段链式决策进一步把 LLM 不擅长的空间推理变成可微调的显式任务。LLM 系 SOTA(unseen SR +4 于 seen)、开放词汇任务 70% SR 与真机验证共同说明:与其训练端到端策略网络,不如给 LLM 一个它玩得转的"游戏"。
延伸阅读建议:SayCan/LLM-P(LLM 高层规划对照)、FILM/LEBP(specialist 模块化基线)、ALFRED 基准、语义地图与导航网格(FILM 的语义搜索)、SayCan 的 affordance 价值函数、ReAct 类推理范式(CoT-D 的思想近亲)。
九、引用信息
论文引用:
Ziyi Bai, Hanxuan Li, Bin Fu, Chuyan Xiong, Ruiping Wang, Xilin Chen. R2C: Mapping Room to Chessboard to Unlock LLM As Low-Level Action Planner. CVPR, 2025.
论文 PDF:https://openaccess.thecvf.com/content/CVPR2025/papers/Bai_R2C_Mapping_Room_to_Chessboard_to_Unlock_LLM_As_Low-Level_Action_CVPR_2025_paper.pdf
项目页:https://vipl-vsu.github.io/Room2Chessboard