文件技术文档.md配套动态图动态展示图.gif主题具身智能Embodied AI、感知-行动循环Perception-Action Loop、大语言模型规划LLM Planning1. 核心结论具身智能不是“先看懂再一次性执行”而是一个持续闭环系统环境变化 ↓ 多模态感知 ↓ 状态估计 / 世界模型 ↓ 任务规划 / 技能选择 ↓ 运动规划 / 低层控制 ↓ 机器人行动 ↓ 传感器反馈 ↺ 重新感知、修正计划、继续执行大语言模型的主要价值不在于直接控制电机而在于提升高层认知能力把自然语言目标拆成可执行子任务利用常识判断任务顺序、对象关系和隐含约束根据场景状态选择合适的技能在执行失败时解释原因并重新规划作为调度器调用视觉模型、导航模块、抓取模块、知识库和安全检查器。2. 感知-行动循环如何实现2.1 总体架构典型具身智能系统可以拆成四层┌────────────────────────────────────────────┐ │ 用户目标层自然语言指令 / 任务目标 │ └────────────────────────────────────────────┘ ↓ ┌────────────────────────────────────────────┐ │ 认知规划层LLM / VLM / 世界模型 / 记忆 │ └────────────────────────────────────────────┘ ↓ ┌────────────────────────────────────────────┐ │ 技能执行层导航、抓取、放置、搜索、避障 │ └────────────────────────────────────────────┘ ↓ ┌────────────────────────────────────────────┐ │ 控制反馈层传感器、控制器、执行监测 │ └────────────────────────────────────────────┘在工程上LLM 通常位于“认知规划层”负责产生可解释的任务计划真正的连续控制仍由运动规划器、控制器和安全模块完成。2.2 感知模块把原始传感器变成结构化状态输入可以包括RGB 摄像头深度相机激光雷达IMU触觉传感器麦克风机器人本体状态例如关节角、末端位姿、电池状态。感知模块的目标是把原始数据变成机器人可以使用的状态表示{robot:{base_pose:[1.2,0.4,0.0],arm_pose:[0.35,0.12,0.58],gripper:open},objects:[{id:red_cup_01,class:cup,color:red,position:[0.72,0.31,0.86],state:on_table,affordance:[graspable,movable],confidence:0.92}],scene_graph:[[red_cup_01,on,table_01],[table_01,near,user_01]]}关键处理步骤传感器同步与标定对相机、深度图、激光雷达、机器人关节状态进行时间同步和坐标系统一。目标检测与分割识别物体类别、边界框、实例分割区域。深度估计与三维定位得到物体在机器人坐标系中的三维位置。姿态估计与可操作性分析判断物体是否可抓、从哪个角度抓、是否被遮挡、是否存在碰撞风险。场景图构建将“杯子在桌上”“用户在机器人前方”“门是关闭的”等关系结构化。2.3 状态估计与世界模型感知结果并不等于可靠事实。真实环境中会有遮挡、反光、传感器噪声和动态变化所以需要维护一个带不确定性的内部状态。可以定义BeliefState_t { RobotState_t, ObjectState_t, SceneGraph_t, TaskMemory_t, Affordance_t, Uncertainty_t }其中RobotState_t机器人当前位置、姿态、关节状态ObjectState_t物体类别、位置、状态SceneGraph_t物体之间的空间和语义关系TaskMemory_t当前任务进度和历史动作Affordance_t某个动作在当前状态下是否可行Uncertainty_t状态置信度和风险。世界模型可以进一步预测如果执行 grasp(red_cup_01)可能结果 1. 成功抓取杯子 2. 杯子滑落 3. 抓取路径与桌面碰撞 4. 杯子位置估计错误需要重新观察。2.4 规划模块从目标到动作序列用户指令把桌上的红色杯子拿给我。规划模块需要完成目标理解 → 场景匹配 → 子任务分解 → 技能选择 → 可行性验证 → 执行监控示例计划Plan: 1. locate(objectred cup, regiontable) 2. move_base(targettable) 3. estimate_grasp_pose(objectred_cup_01) 4. pick(objectred_cup_01) 5. move_base(targetuser) 6. handover(objectred_cup_01)注意这里的locate、move_base、pick、handover不是普通文字而是机器人系统中已经注册的技能接口。2.5 行动模块把离散计划变成连续控制LLM 输出的通常是高层动作例如pick(red_cup_01)机器人还需要把它转换成连续控制pick(red_cup_01) ↓ 抓取点估计 ↓ 逆运动学求解 ↓ 轨迹规划 ↓ 碰撞检测 ↓ 控制器执行 ↓ 力控 / 视觉伺服修正低层控制器一般以高频运行负责稳定、实时、安全地控制电机LLM 不适合直接生成每个电机控制周期的命令。2.6 执行监测与反馈重规划执行不是一次性完成的。每个动作后都要检查目标是否达到物体是否仍在预期位置抓取是否成功是否发生碰撞或异常用户意图是否改变。失败示例动作pick(red_cup_01) 结果失败 原因杯子被遮挡抓取点不可达 系统响应 1. 移动视角重新观察 2. 更新杯子位姿 3. 重新生成抓取姿态 4. 再次执行 pick。这就是“感知-行动循环”的核心每次行动都会改变环境环境变化又会触发新的感知和规划。3. 大语言模型如何提升具身智能规划能力3.1 高层任务分解传统机器人系统通常依赖人工规则if task take cup: move_to_table() grasp_cup() deliver_to_user()问题是规则难以覆盖复杂开放场景。LLM 可以把模糊目标拆成结构化步骤用户帮我整理一下桌面。 LLM 输出 1. 检测桌面物体 2. 区分垃圾、文具、餐具和电子设备 3. 将垃圾放入垃圾桶 4. 将文具放入收纳盒 5. 将餐具放入托盘 6. 检查桌面是否仍有散乱物体。优势能处理开放词汇能理解隐含目标能根据上下文调整步骤。3.2 语义 grounding把语言目标绑定到真实物体用户说拿那个可以喝水的东西。机器人不能只做关键词匹配。LLM 可以结合常识推断“可以喝水的东西”大概率是杯子、瓶子或水壶再通过视觉模块确认场景中有哪些候选物体。典型过程语言描述 ↓ 候选类别推理cup / bottle / mug ↓ 视觉检测候选对象 ↓ 结合位置、颜色、关系进行消歧 ↓ 绑定到具体对象 IDred_cup_013.3 技能选择与可行性约束LLM 生成的计划必须受到机器人实际能力约束。例如机器人没有“开冰箱”技能就不能把计划写成open_fridge()工程上应维护一个技能库{skills:[{name:move_base,args:[target],preconditions:[target_reachable],effects:[robot_near_target]},{name:pick,args:[object_id],preconditions:[object_visible,object_graspable,path_collision_free],effects:[object_in_gripper]},{name:place,args:[object_id,target_surface],preconditions:[object_in_gripper,surface_available],effects:[object_on_surface]}]}LLM 的输出要经过技能白名单、前置条件检查和安全验证。3.4 结合 affordance 评分进行规划一个可落地的规划评分方式是Score(skill) LanguageScore(skill | instruction, state) × FeasibilityScore(skill | state) × SafetyScore(skill | constraints)含义LanguageScore这个技能是否符合用户目标FeasibilityScore当前机器人是否真的能执行SafetyScore是否满足安全约束。这样可以避免 LLM 说出“听起来合理但机器人做不到”的动作。3.5 长时序任务规划与异常恢复长时序任务难点步骤多环境动态变化任务中间状态容易丢失单个失败会导致全局失败。LLM 可以维护任务记忆TaskMemory: - 用户目标把红色杯子拿给我 - 已完成定位杯子、移动到桌边 - 当前失败第一次抓取失败 - 失败原因抓取姿态不可达 - 下一步调整视角重新估计抓取点这使机器人可以“接着任务继续做”而不是每次失败都从头开始。4. 三种主流实现范式范式核心思想优点风险LLM 技能库LLM 只做高层规划调用已有机器人技能工程稳定、可解释、安全边界清晰依赖技能库覆盖范围多模态模型 世界模型模型直接处理图像、语言、状态并参与推理grounding 更强能理解复杂场景对数据和算力要求高VLA 模型将视觉、语言和动作统一建模直接输出动作或动作 token泛化能力更强端到端学习安全验证、可解释性和实时性更难建议工程落地优先采用LLM 高层规划 VLM 场景理解 技能库约束 运动规划器 安全监督器 闭环反馈重规划5. 参考系统流程5.1 闭环伪代码defembodied_agent_loop(user_goal):task_memory[]world_stateNonewhilenotgoal_finished(user_goal,world_state):# 1. 感知observationsread_sensors()# 2. 状态估计world_stateupdate_world_model(observations,task_memory)# 3. 生成候选计划candidate_planllm_plan(goaluser_goal,stateworld_state,available_skillsskill_registry,memorytask_memory)# 4. 约束验证safe_planverify_plan(plancandidate_plan,stateworld_state,constraintssafety_rules)# 5. 执行动作forskill_callinsafe_plan:resultexecute_skill(skill_call)# 6. 执行后重新感知observationsread_sensors()world_stateupdate_world_model(observations,task_memory)# 7. 成功检测与失败恢复ifnotsuccess_check(skill_call,world_state):task_memory.append({failed_skill:skill_call,reason:diagnose_failure(skill_call,world_state)})breaktask_memory.append({success_skill:skill_call})returntask_finished5.2 LLM 规划 Prompt 模板你是机器人高层任务规划器。 用户目标 {user_goal} 当前世界状态 {world_state_json} 可用技能 {skill_registry_json} 安全约束 {safety_rules} 请输出 JSON 格式计划 [ { skill: move_base, args: {target: table_01}, reason: 需要靠近杯子所在桌面, precondition_check: [target_reachable] } ] 要求 1. 只能使用可用技能 2. 不确定时先调用 observe 或 ask_user 3. 不允许绕过安全约束 4. 每一步都要写明目的和前置条件。6. 工程实现要点6.1 模块接口设计建议至少拆成以下服务PerceptionService - detect_objects() - estimate_pose() - build_scene_graph() WorldModelService - update_state() - query_object() - predict_effect() PlannerService - parse_goal() - generate_plan() - replan_on_failure() SkillService - list_skills() - check_preconditions() - execute_skill() SafetyService - collision_check() - forbidden_action_check() - human_confirmation()6.2 推荐数据流SensorFrame → PerceptionResult → BeliefState → LLMPlan → VerifiedSkillPlan → MotionTrajectory → ExecutionResult → UpdatedBeliefState6.3 安全策略必须加入以下保护技能白名单LLM 只能调用已注册技能前置条件检查动作执行前检查是否满足条件碰撞检测所有轨迹执行前必须验证不确定性阈值低置信度感知结果不直接执行高风险动作人类确认危险、昂贵、不可逆动作需要确认执行超时动作卡住时停止并重规划日志回放保存感知、计划、动作和结果方便追踪问题。7. 示例服务机器人拿杯子输入用户把桌上的红色杯子拿给我。感知结果{objects:[{id:red_cup_01,class:cup,color:red,position:[0.72,0.31,0.86],relation:on table,affordance:[graspable]}],robot_state:{near:sofa,gripper:empty}}LLM 规划[{skill:move_base,args:{target:table_01},reason:机器人需要先靠近杯子},{skill:pick,args:{object_id:red_cup_01},reason:目标物体可抓取},{skill:move_base,args:{target:user_01},reason:将杯子递给用户},{skill:handover,args:{object_id:red_cup_01},reason:完成递交}]闭环调整如果抓取失败重新观察 → 更新杯子姿态 → 重新计算抓取点 → 再次抓取8. 关键难点8.1 感知不确定性机器人看到的世界并不完整。遮挡、反光、动态移动都会导致误判。解决方向多视角观测主动感知场景记忆不确定性建模失败后重观察。8.2 语言计划与物理可执行性不一致LLM 可能生成语义合理但物理不可执行的计划。解决方向技能库约束affordance 评分运动规划验证仿真预演执行后反馈。8.3 长任务稳定性长任务容易出现“前面步骤成功后面状态变了”的问题。解决方向采用滚动规划每一步后重新感知维护任务记忆失败时局部重规划不把长计划一次性执行到底。9. 推荐落地架构用户自然语言指令 ↓ ┌─────────────────┐ │ LLM 任务规划器 │ └─────────────────┘ ↓ ┌───────────────────────────────────────┐ │ 计划验证器技能白名单 / 安全约束 │ └───────────────────────────────────────┘ ↓ ┌───────────────┬───────────────┬───────────────┐ │ 视觉感知技能 │ 导航技能 │ 操作技能 │ └───────────────┴───────────────┴───────────────┘ ↓ ┌─────────────────┐ │ 控制器 / 执行器 │ └─────────────────┘ ↓ ┌─────────────────┐ │ 传感器反馈更新 │ └─────────────────┘ ↺10. 技术路线总结具身智能中的感知-行动循环本质上是一个持续运行的闭环控制与认知系统。LLM 的增强作用主要体现在高层规划、语义理解、任务分解、工具调用和失败恢复但为了工程可靠性LLM 不应绕过感知、世界模型、技能约束、安全验证和低层控制模块。最终较稳妥的系统设计是多模态感知 世界模型 LLM 高层规划 技能库 控制器 安全监督 闭环重规划11. 参考资料SayCan: Grounding Language in Robotic Affordanceshttps://say-can.github.io/Do As I Can, Not As I Say: Grounding Language in Robotic Affordanceshttps://arxiv.org/abs/2204.01691PaLM-E: An Embodied Multimodal Language Modelhttps://proceedings.mlr.press/v202/driess23a.htmlRT-2: Vision-Language-Action Models Transfer Web Knowledge to Robotic Controlhttps://proceedings.mlr.press/v229/zitkovich23a.htmlGoogle DeepMind RT-2 Bloghttps://deepmind.google/blog/rt-2-new-model-translates-vision-and-language-into-action/Gemini Roboticshttps://deepmind.google/models/gemini-robotics/Gemini Robotics-ER 1.6https://deepmind.google/blog/gemini-robotics-er-1-6/Open X-Embodiment: Robotic Learning Datasets and RT-X Modelshttps://arxiv.org/abs/2310.08864