组内分享 · 张健强 · 第二部分

事件描述 · 情绪评估 · 地图更新

Event Descriptor、Emotion Evaluator 的详细设计,E2Map 的 Weber-Fechner 更新机制,以及实验验证

📅 2026-06 🧠 情绪评估 📐 Weber-Fechner 🔬 实验验证

🎯 学完本节,你应能

理解 Event Descriptor 和 Emotion Evaluator 的设计细节,掌握 E2Map 基于 Weber-Fechner 定律的更新机制,了解仿真与真实世界实验结果

📖 前置知识

建议先完成 0025(E2Map 架构与经验场),了解 E2Map 的张量定义和高斯混合情绪模型。

📖 目录

1. 事件描述器(Event Descriptor)

机器人导航过程中,当发生一个"事件"(event)时——例如突然出现障碍物、门打开、有人走出——系统需要先将这个事件转化为语言描述,才能进行后续的情绪评估。这就是 Event Descriptor 的任务。

📸 输入输出

输入:事件发生前、发生时、发生后 3 张连续图像 $I_{t_{\\text{evt}}-h}$, $I_{t_{\\text{evt}}}$, $I_{t_{\\text{evt}}+h}$

输出:事件的语言描述 $l_{\\text{evt}}$

方法:LMM Zero-Shot Step-by-Step Reasoning

Event Descriptor 使用一个多模态大模型(LMM,类似 GPT-4o),以 zero-shot step-by-step reasoning 的方式生成事件描述。其流程是:

  1. 逐图描述:先分别描述每张图像中的场景和变化
  2. 组合推理:将三个时间点的描述组合起来,推理出完整的事件过程
$$ l_{\\text{evt}} = \\mathcal{F}_{\\text{ed}}(I_{t_{\\text{evt}}-h}, I_{t_{\\text{evt}}}, I_{t_{\\text{evt}}+h}, p_{\\text{ed}}) \\tag{3} $$

其中 $p_{\\text{ed}}$ 是 zero-shot prompt 参数。模型不需要针对导航任务做微调或 few-shot 示例,仅凭预训练的能力和对三张图像的对比推理,就能生成准确的事件描述。

📷 图像 $I_{t_{\\text{evt}}-h}$

事件发生前一帧。提供事件的"背景"或"前因",例如门还是关着的、墙后还没有人出现。

📷 图像 $I_{t_{\\text{evt}}+h}$

事件发生后一帧。提供事件的"后果"或持续影响,例如机器人与障碍物的相对位置变化。

💡 为什么要用三张图而非单张?

单张图像只能捕捉静态场景,无法表达"发生了什么变化"。三张连续图像让 LMM 能通过对比感知到运动、出现、消失等动态事件,从而生成更准确的事件描述。

2. 情绪评估器(Emotion Evaluator)

得到事件的语言描述 $l_{\\text{evt}}$ 后,Emotion Evaluator 负责评估该事件对机器人的情绪影响,输出一个量化的情绪分数。

❤️ 输入输出

输入:事件描述文本 $l_{\\text{evt}}$

输出:二维情绪评分 → 总分 $s_{\\text{emo}}$

方法:LLM Few-Shot Prompting

Emotion Evaluator 使用 LLM(大语言模型)配合 few-shot prompting,根据事件描述评价两个维度的情绪:

😰 Upsetness(0–3)

评价 agent(机器人)在给定情境中感受到的影响程度。例如突然出现障碍物使机器人受到惊吓,upsetness 较高。

灵感:驱动"回避行为"的情绪

😔 Guiltiness(0–3)

评价 agent 的行为对环境造成的影响程度。例如机器人撞倒了物体,guiltiness 较高。

灵感:驱动"修复行为"的情绪

$$ s_{\\text{emo}} = upsetness + guiltiness \\quad (0 \\leq s_{\\text{emo}} \\leq 6) \\tag{4} $$
$$ s_{\\text{emo}} = \\mathcal{F}_{\\text{ee}}(l_{\\text{evt}}, p_{\\text{ee}}) \\tag{4} $$

其中 $p_{\\text{ee}}$ 是 few-shot prompt 参数(包含评分示例)。

设计灵感

论文指出,这两个维度的设计灵感来源于人类情感:

二者结合形成的总分数 $s_{\\text{emo}}$ 决定了 E2Map 更新的方向和幅度。

⚡ Key Insight

人类情绪并非一个单一维度。论文将情绪分解为"对自身的影响"(upsetness)和"对环境的影响"(guiltiness),使得机器人既能避开危险,又能主动修复自身行为带来的问题。

3. E2Map 更新:Weber-Fechner 定律

得到情绪分数 $s_{\\text{emo}}$ 后,系统需要将其编码到 E2Map 中,使得未来的路径规划能"记住"这次情绪体验。更新机制的核心是心理物理学中的 Weber-Fechner 定律。

Weber-Fechner 定律

📐 心理学背景

Weber-Fechner 定律描述了物理刺激强度与主观感知强度之间的对数关系:感知强度随刺激呈对数增长。例如,一个物体重量翻倍,人感受到的重量变化并不是翻倍,而是按对数比例增加。

E2Map 借用这一思想:情绪强度($s_{\\text{emo}}$)作为"刺激",对高斯分布协方差的调整幅度作为"感知",两者通过对数函数关联。

更新公式

当事件发生时,系统首先识别与事件相关的 $n$ 个栅格单元格 $p_{\\text{update}}$(基于 agent 事件发生时的位姿),然后更新这些栅格中高斯分布的标准差:

$$ \\sigma_{\\text{new}, k} = \\sigma_{k} \\cdot v_{k} \\cdot \\log\\left(\\frac{s_{\\text{emo}}}{T}\\right), \\quad k \\in \\{x, y\\} \\tag{5} $$

其中各符号的含义:

符号含义说明
$\\sigma_{k}$当前标准差更新前高斯分布在 $k$ 方向的标准差
$\\sigma_{\\text{new}, k}$更新后的标准差新值替代旧值,传播范围改变
$v_{k}$方向分量事件发生时机器人朝向的单位方向向量 $\\mathbf{v} = (v_x, v_y)$ 在 $k$ 方向的分量
$s_{\\text{emo}}$情绪总分$upsetness + guiltiness$,范围 $[0, 6]$
$T$Temperature 参数控制更新敏感度的温度参数
$\\log(\\cdot)$对数函数Weber-Fechner 定律的核心——非线性映射

更新效果分析

😱 负面情绪($s_{\\text{emo}}$ 大)

$\\log(s_{\\text{emo}} / T) > 0$,高斯分布标准差增大。情绪影响范围扩展,机器人从更远的距离就能感知到该区域的负面情绪并提前避让。

😊 正面情绪($s_{\\text{emo}}$ 小)

$\\log(s_{\\text{emo}} / T) < 0$,高斯分布标准差减小(即可压缩)。情绪影响范围收缩,机器人对该区域的回避程度降低。

🧭 方向性编码

$v_k$ 的存在使得更新具有方向性:机器人朝向的方向($\\mathbf{v}$)上的标准差更新幅度更大。这意味着 E2Map 能记住"从哪个方向接近该区域时发生了事件",从而实现方向感知的情绪场更新。例如,从东侧接近时发生了碰撞,则向东方向的情绪影响范围扩展更明显。

4. One-Shot Behavior Adjustment

E2Map 更新后,导航系统如何利用新的地图调整行为?核心机制是以情绪为代价的 D* 路径重规划。

D* Algorithm with Emotion Cost

论文使用 D* algorithm 进行路径规划,其中规划代价包含情绪信息。E2Map 的高斯情绪场直接影响 D* 的代价函数:高斯分布越高的区域(负面情绪越强),代价越高,D* 会倾向于规划绕行路径。

🔄 类似势场法(Potential Field),但有本质区别

传统的势场法(PFM)将障碍物产生的排斥力叠加到运动控制中,但容易陷入局部最小值(如 U 形障碍物)。E2Map 使用的是独立的规划器(D*),以情绪作为全局代价进行规划,天然避免了局部最小值问题。

One-Shot 能力

E2Map 的一个关键优势是 one-shot behavior adjustment——只需一次事件经历就能调整后续行为:

  1. 机器人执行任务过程中遇到事件
  2. Event Descriptor 描述事件 → Emotion Evaluator 评分 → E2Map 更新
  3. D* 立即重新计算最小代价路径
  4. 机器人沿新路径行动,主动避开负面情绪区域

⚡ 与统计学习方法的对比

传统方法需要多次统计(如数十次重复试验)才能学会避开某个区域。E2Map 借助 LLM/LMM 对事件的语义理解和情绪评估,单次事件就能改变导航行为偏好。这正是"经验-情绪"映射的威力所在。

5. 导航算法(Algorithm 1)

论文给出了完整的导航算法流程(Algorithm 1),将上述所有模块整合为统一的运行循环:

Algorithm 1 Navigation with E2Map

  goal_list ← GoalSelector(l_inst)

  for each goal in goal_list do
    τ ← D*_planning(p_agent, goal, M)
    while not reached(goal) do
      MPPI_control(τ)
      if event then
        l_evt ← F_ed(I_{prev}, I_{evt}, I_{next}, p_ed)
        s_emo ← F_ee(l_evt, p_ee)
        p_update ← pose at event occurrence
        M.update(s_emo, p_update)
        τ ← D*_planning(p_agent, goal, M)   // replan
      end if
    end while
  end for

算法步骤详解

步骤操作说明
1Goal SelectorLLM code generation 将语言指令分解为目标列表
2–3D* 初始规划在当前 E2Map $M$ 上规划到目标的最小代价路径 $\\tau$
4MPPI 控制Model Predictive Path Integral 沿路径 $\\tau$ 执行底层运动控制
5–9事件处理检测到事件时:Event Descriptor 描述 → Emotion Evaluator 评分 → 记录位姿 → E2Map 更新 → D* 重规划
10循环重复控制-事件检测直到到达目标

🔁 闭环反馈

Algorithm 1 的核心特征是事件驱动的闭环反馈:事件 → 情绪评估 → 地图更新 → 路径重规划。这个循环使得机器人能实时根据新体验调整行为,而不是等待整个任务完成后再更新策略。

6. 实验验证

实验场景

论文设计了三种典型场景来验证 E2Map 的自反导航能力:

⚠️ danger sign

环境中出现新的危险标志。机器人经过时 Event Descriptor 识别 → 产生负面情绪 → E2Map 更新 → 后续路径避开该区域。

🧍 human-wall

一个人从墙后走出。机器人经历该事件后产生负面情绪 → 更新地图 → 后续任务中与墙保持安全距离。

🚪 dynamic door

门突然打开。机器人经历后更新 E2Map → 调整后续路线,提前绕开该门或预留更多安全空间。

🧪 实验协议

每个场景中,机器人首先在静环境中完成一次导航(记入 static 结果),然后经历事件(一次体验),最后重新执行导航任务观察行为变化(计入各场景结果)。共测试 10 次(10 trials)取成功/失败计数。

仿真实验结果

论文将 E2Map 与 LM-Nav 和 VLMaps 两种基线方法进行了对比:

方法 static danger sign human-wall dynamic door
LM-Nav 5/10 1/10 0/10 1/10
VLMaps 10/10 0/10 0/10 0/10
E2Map 10/10 9/10 9/10 9/10

结果分析

📊 LM-Nav

静态场景仅 5/10 成功;动态场景几乎全部失败(0–1/10)。说明纯视觉-语言导航在面对动态变化时缺乏适应性。

📊 VLMaps

静态场景 10/10 完美表现,但动态场景全部 0/10。VLMaps 的语义地图缺少情绪记忆,事件发生后无法调整行为。

📊 E2Map

静态 10/10 保持完美,三个动态场景均达到 9/10 的成功率。一次事件经历就足以让 E2Map 学会避开或适应新出现的变化。

真实世界实验

论文还在首尔大学会议室进行了真实环境验证。环境配置包括:沙发、桌椅、冰箱、微波炉等日常物品。

方法 static danger sign human-wall
E2Map 10/10 9/10 9/10

✅ 结论

E2Map 在仿真和真实世界中均表现出色:静态场景 100% 成功,动态场景(一次经历后)达到 90% 成功率。相比之下,LM-Nav 和 VLMaps 在动态场景中几乎完全失效。E2Map 的 one-shot 行为调整能力是其核心优势。

📝 自测题

问题 1

Event Descriptor 的输入是什么?它采用什么推理方式?

点击查看答案

输入是事件发生前、发生时、发生后三张连续图像 $I_{t_{\\text{evt}}-h}$, $I_{t_{\\text{evt}}}$, $I_{t_{\\text{evt}}+h}$。采用 LMM zero-shot step-by-step reasoning:先分别描述每张图像,再组合推理出完整事件描述 $l_{\\text{evt}} = \\mathcal{F}_{\\text{ed}}(I_{t_{\\text{evt}}-h}, I_{t_{\\text{evt}}}, I_{t_{\\text{evt}}+h}, p_{\\text{ed}})$。

问题 2

Emotion Evaluator 评估哪两个维度?总分范围是多少?分别受什么人类情绪启发?

点击查看答案

两个维度:Upsetness(0–3,agent 感受到的影响程度,驱动"回避行为")和 Guiltiness(0–3,agent 行为对环境的影响程度,驱动"修复行为")。总分 $s_{\\text{emo}} = upsetness + guiltiness \\in [0, 6]$。

问题 3

E2Map 更新基于什么心理学定律?写出更新公式并解释各符号含义。

问题 4

仿真实验中,E2Map 在 danger sign、human-wall、dynamic door 三个动态场景中各成功几次(共 10 次)?

点击查看答案

三个动态场景各 9/10 次成功。相比之下,LM-Nav 最高仅 1/10,VLMaps 全部 0/10。

施老师大课堂 · 组内分享 · 张健强 · E2Map:事件描述 · 情绪评估 · 地图更新 · 内容基于 E2Map 论文 (Kim et al., SNU & Stanford, 2024/2025)