相比普通 SACAgent 的关键差异
普通 SACAgent 的 actor 输出完整动作critic 接收完整动作。但 SACAgentHybridSingleArm 做了三层动作拆分第一层连续动作由 SAC actor 输出初始化 policy 时action_dim 被设为环境动作维度减 1policy_def Policy(…action_dimactions.shape[-1]-1, # 7 - 1 6)如果环境 action 是 7 维actor 只输出前 6 维——末端执行器的连续控制量。第二层普通 critic 也只评估连续动作Critic 初始化时只用去掉夹爪的动作critic [observations, actions[…, :-1]]训练 critic 时也只取前 6 维actions batch[“actions”][…, :-1]这意味着普通 SAC critic 学习的是Qee(s,aee)而不是Q(s,aee,agripper)。它专注于连续末端执行器动作的价值估计。第三层夹爪动作由 GraspCritic 单独学习SACAgentHybridSingleArm 在网络集合里额外注册了 “grasp_critic”并给它单独配置 optimizernetworks {“actor”: actor_def,“critic”: critic_def,“grasp_critic”: grasp_critic_def,“temperature”: temperature_def,}“grasp_critic”: make_optimizer(**grasp_critic_optimizer_kwargs)在 create_pixels 中GraspCritic 的构造方式如下grasp_critic_def partial(GraspCritic, encoderencoders[“grasp_critic”], networkgrasp_critic_backbone)(name“grasp_critic”)6.3 动作执行流程Rolloutsample_actions 是 SAC actor 和 GraspCritic 配合最直观的接口。执行流程分为四步第一步actor 采样连续末端执行器动作dist self.forward_policy(observations, rngseed, trainFalse)ee_actions dist.sample(seedseed)这里得到前 6 维动作[x, y, z, roll, pitch, yaw]。第二步GraspCritic 输出 3 个夹爪 Q 值grasp_q_values self.forward_grasp_critic(observations, rnggrasp_key, trainFalse)输出类似Q(close) 1.2Q(keep) 0.7Q(open) 0.1第三步argmax 选择夹爪动作grasp_action grasp_q_values.argmax(axis-1)grasp_action grasp_action - 1 # {0,1,2} → {-1,0,1}映射关系argmax0 → 环境动作 -1关argmax1 → 环境动作 0保持argmax2 → 环境动作 1开。第四步拼接成完整动作return jnp.concatenate([ee_actions, grasp_action[…, None]], axis-1)最终输出[continuous_0, continuous_1, continuous_2,continuous_3, continuous_4, continuous_5,discrete_gripper_action] ← 环境真正需要的完整 7 维动作连续控制分支的 Rollout 符合经典 SAC 范式——只依赖 Actor 网络Critic 不参与推理。离散控制分支则不同——由于没有独立的 Actor 网络GraspCritic 在推理时直接充当决策者通过 argmax 选出最优离散动作。6.4 训练流程SACAgentHybridSingleArm.loss_fns 返回四个独立的 lossreturn {“critic”: self.critic_loss_fn,“grasp_critic”: self.grasp_critic_loss_fn,“actor”: self.policy_loss_fn,“temperature”: self.temperature_loss_fn,}训练脚本中hybrid agent 的更新分为两个阶段Critic 训练阶段同时更新 critic 和 grasp_critictrain_critic_networks_to_update frozenset({“critic”, “grasp_critic”})完整训练阶段更新全部四个网络train_networks_to_update frozenset({“critic”, “grasp_critic”, “actor”, “temperature”})Critic Loss连续动作 SAC目标 Q 采用 Clipped Double-Qyrγ⋅miniQ¯θi(s′,a′)代码实现target_next_qs self.forward_target_critic(…)target_next_min_q target_next_qs.min(axis0)target_q rewards discount * masks * target_next_min_qpredicted_qs self.forward_critic(batch[“observations”], actions, …)critic_loss jnp.mean((predicted_qs - target_qs) ** 2)GraspCritic LossDQN 风格GraspCritic 采用 Double DQN 风格——用 online 网络选动作用 target 网络评估next_grasp_qs self.forward_grasp_critic(batch[“next_observations”], rngrng)best_next_grasp_action next_grasp_qs.argmax(axis-1)target_next_grasp_qs self.forward_target_grasp_critic(…)target_next_grasp_q target_next_grasp_qs[jnp.arange(batch_size), best_next_grasp_action]grasp_rewards batch[“rewards”] batch[“grasp_penalty”]target_grasp_q grasp_rewards discount * masks * target_next_grasp_qpredicted_grasp_q predicted_grasp_qs[jnp.arange(batch_size), grasp_action]grasp_critic_loss jnp.mean((predicted_grasp_q - target_grasp_q) ** 2)Actor Loss标准 SACActor 采样连续动作最大化objectiveQ(s,a)−αlogπ(a|s)actor_objective predicted_q - temperature * log_probsactor_loss -jnp.mean(actor_objective)Temperature Loss自动调温温度参数α自动调节保证策略熵不低于目标值——策略熵低于 target 则α增大并增加探索高于 target 则α减小并减少探索。6.5 Reward 的分工设计这是混合 agent 中最精妙的工程细节之一。普通 SAC critic 的目标使用batch[“rewards”]GraspCritic 的目标使用grasp_rewards batch[“rewards”] batch[“grasp_penalty”]设计者的意图很明确夹爪网络不仅要学习任务成功奖励还要特别学习不要做无意义夹爪动作。例如 USB pickup insertion 任务中grasp_penalty 的计算逻辑是if (action[-1] -0.5 and self.last_gripper_pos 0.9) or (action[-1] 0.5 and self.last_gripper_pos 0.9):info[“grasp_penalty”] self.penaltyelse:info[“grasp_penalty”] 0.0通俗理解夹爪已经开得很大还继续开或者已经关得很紧还继续关——这种动作没有实际意义甚至可能损坏硬件或扰乱任务。这类惩罚不适合影响机械臂连续运动的 SAC critic——因为 SAC critic 评估的是 6 维连续动作的价值加上夹爪惩罚会混淆它对末端执行器动作质量的判断。但 GraspCritic 专门学习夹爪的离散决策加上 grasp_penalty 可以更精准地训练什么时候该夹、什么时候该放的策略。6.7 配合全景图

相关新闻

深入解析SoC调试子系统:从JTAG接口到交叉触发与片上追踪技术

深入解析SoC调试子系统:从JTAG接口到交叉触发与片上追踪技术

1. 调试子系统:嵌入式开发的“听诊器”与“手术刀”在嵌入式系统开发的世界里,调试的难度常常与系统的复杂性成正比。当你的代码在由多核处理器、复杂总线、专用加速器和实时外设构成的片上系统(SoC)中运行时,传统的“…

2026/10/17 21:56:38 阅读更多 →
AM263P外设DMA与中断集成解析:MCAN、LIN、RTI、WWDT、DCC实战

AM263P外设DMA与中断集成解析:MCAN、LIN、RTI、WWDT、DCC实战

1. 项目概述与核心价值在嵌入式系统,尤其是汽车电子和工业控制这类对实时性、可靠性要求极高的领域,芯片内部外设模块的协同工作能力直接决定了整个系统的性能上限。我们常常会面临这样的挑战:一个核心处理器(比如R5F)…

2026/10/18 2:23:36 阅读更多 →
深入解析TMS320F28P65x系统控制寄存器:从时钟门控到低功耗管理实战

深入解析TMS320F28P65x系统控制寄存器:从时钟门控到低功耗管理实战

1. 项目概述在嵌入式系统开发,尤其是基于德州仪器(TI)C2000系列微控制器的项目中,系统控制寄存器(System Control Registers)是连接软件与硬件的关键桥梁。它们就像是微控制器内部的“控制面板”&#xff0…

2026/10/18 2:23:37 阅读更多 →

最新新闻

多模态图像分类案例

多模态图像分类案例

当然可以!以下是使用CIFAR-10数据集进行多模态图像识别分类的完整代码。由于CIFAR-10只有图像没有文本描述,我会模拟生成对应的文本描述来实现多模态实验:import torch import torch.nn as nn import torch.optim as optim from torch.utils.…

2026/10/18 23:10:18 阅读更多 →
Ashampoo Photo Commander:海量本地照片的管理与批处理利器

Ashampoo Photo Commander:海量本地照片的管理与批处理利器

管理照片这件事,我从还在用光盘版图片库软件的时代就开始折腾,十几年换过不少工具。Ashampoo Photo Commander 在国内算不上一线网红软件,但每次有人问我"本地图片管理到底该用什么",它基本都排在我推荐清单的前三名。说…

2026/10/18 23:10:18 阅读更多 →
根治你的健忘虾!全网最全!23款Agent记忆架构大横评:从向量数据库到TaoToken统一通道

根治你的健忘虾!全网最全!23款Agent记忆架构大横评:从向量数据库到TaoToken统一通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 23:10:18 阅读更多 →
C#显示设置实战:设置缩放比例后,鼠标光标位置与屏幕大小如何精准换算(TaoToken统一Key/API通道)

C#显示设置实战:设置缩放比例后,鼠标光标位置与屏幕大小如何精准换算(TaoToken统一Key/API通道)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 23:10:18 阅读更多 →
2026年AI Agent面试通关秘籍:用TaoToken统一Key打通MCP与Function Call实战

2026年AI Agent面试通关秘籍:用TaoToken统一Key打通MCP与Function Call实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 23:10:18 阅读更多 →
水文站点实时数据爬虫:Selenium+Requests混合方案实战

水文站点实时数据爬虫:Selenium+Requests混合方案实战

简介:本资源是一套面向Python初学者与数据爱好者设计的水文实时数据采集与可视化实践项目,聚焦网络爬虫与基础数据分析能力训练,适用于环境监测、水利信息化等场景的入门级技术验证。压缩包共9个文件,含3个核心Python脚本&#xf…

2026/10/18 23:09:18 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →