研究尝试用强化学习训练小模型为机器人规划路径
来源标题:From Words to Waypoints: Teaching a Small LLM to Plan for Robots
一项研究探索小型开源模型能否学会为机器人做高层路径规划。研究者以 Qwen3.5-9B 为基础,用强化学习进行训练,目标是根据自然语言或时序逻辑任务直接给出行动顺序与路径。作者强调这只是展示可行性,尚无证据表明 LLM 规划优于传统 MILP 求解器。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
大型语言模型越来越多地被要求充当机器人的高层规划器:给定一个用自然语言或形式语言描述的任务,它需要决定去哪里、以什么顺序去、以及何时去。对于用时序逻辑写成的任务,经典做法是把整个问题编码成一个混合整数线性规划(MILP)并交给求解器。这样做确实可行,但可能耗时极长,而且成本会随着任务长度和条件数量的增加而迅速增长。MILP 求解器是一种强大但盲目的搜索:每一个操作符、每一个时间步都会变成一组二元变量和约束,而求解器并不理解它们意味着什么。语言模型则能理解时序操作符的语义,例如“在到达 K 之前一直待在 D 之外”意味着要先访问 K 再进入 D,并能借助常识直接给出一个规划。本文并不对这两种方法做严格比较,我们也没有证据表明 LLM 规划器优于 MILP 求解器;我们只是展示 LLM 这条路线是可行的。
我们想知道,一个小型开源模型能否学会把这件事做好。具体来说,目标是拿 Qwen3.5-9B,用强化学习训练它,直到它在求解用时序逻辑写成的机器人规划任务时,可靠程度大致接近一个大得多的模型 DeepSeek-V4.1-Flash-1017——我们把它作为参照(“教师”)。
本文按事情发生的顺序讲述我们是如何走到这一步的:第一次尝试什么也没学到,一个让学习成为可能的修复,以及一个让它变快的步骤。
机器人在一个带有矩形障碍物和命名区域的 2D 工作空间中移动。它的任务是用信号时序逻辑(STL)写成的规约,这是一种描述轨迹随时间变化性质的语言。该设定沿用 Multi-agent Motion Planning from Signal Temporal Logic Specifications,限制为单个机器人并带有速度上限。任何可行路径都被接受;我们不要求最优路径。一个规约由两类部分组成。原子命题说明机器人在哪里:当机器人位于区域 B 内部时 in(B) 成立,当它位于区域 A 外部时 out(A) 成立,其中 A、B、K、D 和 Goal 是地图上区域的名称。时序操作符说明原子命题必须在何时成立。它们写成单个大写字母后跟一个以秒为单位的时间窗口:F 表示“最终”(在窗口内的某个时刻),G 表示“始终”(在窗口内的每个时刻),p U q 表示“p 一直成立,直到 q 成立”。操作符可以嵌套,如最后一个例子所示。下面是一些 STL 规约的示例:
模型读取地图和这样一组子句,并且必须用一个带时间的路径来回答,即一组路径点 [[t, x, y], ...]。机器人是一个小正方形,绝不能碰到障碍物,速度也不能超过它的速度上限。
模型对任务所知道的一切都来自它的 prompt。系统 prompt 解释机器人和路径模型,用几个例子定义 STL 原子命题和操作符,并固定答案格式;用户消息列出工作空间、每个障碍物和区域以坐标表示、机器人的尺寸、速度上限和起点,以及规约子句。prompt 中没有已求解的示例,本文中的每个模型(包括教师)都得到相同的 prompt。
你是一个 2D 工作空间中单个移动机器人的高层运动规划器。你的工作是生成一条满足信号时序逻辑(STL)规约的带时间路径。任何可行路径都被接受;它不需要是最优的。
机器人和路径模型
- 机器人是一个轴对齐的正方形,半宽为 r:在位置 (x, y) 处,它的身体占据 [x-r, x+r] x [y-r, y+r]。它只平移(不旋转)。
- 路径是一组路径点 [[t0, x0, y0], [t1, x1, y1], ...],其中 t0 = 0 且 (x0, y0) = 起始位置。时间必须非递减。
- 在相邻路径点之间,机器人以恒定速度沿直线移动。每一段上的速度,即距离 / (t_{k+1} - t_k),不得超过 v_max。若要等待,就在更晚的时间重复同一位置。
- 在最后一个路径点之后,机器人永远停留在那里。
- 机器人身体必须始终位于工作空间内,且绝不能与任何障碍物重叠(接触边界没问题)。
STL 规约
所有区域都是轴对齐的矩形。原子命题:
- in(R):机器人身体完全位于区域 R 内部(等价地,x 在 [xmin+r, xmax-r] 内,y 在 [ymin+r, ymax-r] 内)。
- out(R):机器人身体完全位于区域 R 外部(它不与 R 重叠)。 操作符(a、b 是以秒为单位的绝对时长,从公式被求值的时刻起算):
- p & q:两者都成立。p | q:至少一个成立。
- F[a,b] p(“最终”):p 在 [t+a, t+b] 内的某个时刻成立。
- G[a,b] p(“始终”):p 在 [t+a, t+b] 内的每个时刻都成立。
- p U[a,b] q(“直到”):q 在 [t+a, t+b] 内的某个时刻 t' 成立,且 p 在 [t, t'] 内的每个时刻都成立。 公式可以嵌套,例如 F[0,30] G[0,5] in(A) 表示“在 [0,30] 内的某个时刻 t 进入 A,并在 A 中停留 5 秒(在 [t, t+5] 期间)”;G[0,50] F[0,20] in(B) 表示“在 [0,50] 期间,B 总是在 20 秒内被再次访问”。 整个规约在时刻 t = 0 求值,列出的每一项(phi1, phi2, ...)都必须成立。
规划
你没有工具。仔细推理几何(避开障碍物,使用距离障碍物至少 r 的角点)和时序(遵守 v_max),然后给出最终答案。
最终答案
完成后,在 <answer></answer> 标签内写出最终路径,格式为 [t, x, y] 路径点的 JSON 列表,例如 <answer>[[0, 1.0, 1.0], [5.2, 4.0, 3.5], [9, 4.0, 3.5]]</answer> 只有你最终消息中最后一个 <answer> 块会被评分。只有当路径可行且满足每一条规约项时,答案才算正确。
(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。