尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

动作后处理揭秘:gr00t17-lerobot-libero_object-640 的夹爪二值化与反归一化是如何工作的

动作后处理揭秘:gr00t17-lerobot-libero_object-640 的夹爪二值化与反归一化是如何工作的 动作后处理揭秘gr00t17-lerobot-libero_object-640 的夹爪二值化与反归一化是如何工作的【免费下载链接】gr00t17-lerobot-libero_object-640项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/gr00t17-lerobot-libero_object-640动作后处理Action Post-processing是机器人策略模型把「预测结果」翻译成「机械臂指令」的最后一公里。本文以 NVIDIA 开源、基于 LeRobot 生态训练的 gr00t17-lerobot-libero_object-640 模型为例用大白话拆解动作后处理中的动作解包、反归一化与夹爪二值化让你彻底看懂模型输出的 7 维动作是如何一步步变成 LIBERO 仿真环境里真实可执行的控制指令的。 为什么机器人模型离不开动作后处理先看这个模型的输入与输出来自 config.json类型特征形状说明输入observation.images.image(256, 256, 3)主相机图像输入observation.images.wrist_image(256, 256, 3)腕部相机图像输入observation.state(8,)机器人本体状态输出action(7,)动作指令模型输出的动作是7 维对应 LIBERO 环境里机械臂的 6 个自由度位置 姿态加 1 个夹爪自由度。但这份输出并不能直接下发给机器人原因有三动作是成块预测的模型一次预测 16 步动作chunk_size: 16需要先「解包」出当前要执行的这一步数值是归一化的训练时动作被压缩到统一量纲输出不是真实物理量需要「反归一化」还原夹爪需要离散化7 维里最后一维是夹爪但模型给的是连续值而 LIBERO 仿真环境只认「开/关」必须「二值化」。 一张图看懂动作后处理流水线模型输出动作块16 步 × 7 维归一化值 │ ▼ ① 动作解包 unpack → 取出当前要执行的 1 步 │ ▼ ② 反归一化 unnormalize → 用 min/max 统计量还原真实物理量 │ ▼ ③ 边界裁剪 clip → 防止异常越界数值 │ ▼ ④ 夹爪二值化 binarize → 最后一维变成 0 / 1 │ ▼ 下发给机器人执行这四步全部由 policy_postprocessor.json 声明式配置文件只有几十行读完这篇文章你就能自己看懂。 第一步动作解包Action Unpack——从 16 步里取出「这一步」GR00T 采用动作分块Action Chunking策略模型一次性预测未来 16 步的动作序列chunk_size: 16、n_action_steps: 16见 config.json而不是只预测一步。这就像 AI 一口气写下未来 16 秒的行动清单但机器人每帧只需要执行「第一秒」的那一步。后处理器中的groot_action_unpack_unnormalize_v2步骤负责把这个 16 步的动作块解开取出当前时刻真正要执行的那一步env_action_dim: 7则告诉它每一步有 7 个维度。 第二步反归一化Denormalization——把抽象刻度换算成真实物理量机器人训练时为了让不同量纲的特征位置、角度、速度在同一尺度下学习数据会先做min-max 归一化把真实值压缩到一个统一范围。因此模型输出的动作数值是「缩放过后的刻度」不能直接当真实指令用。后处理阶段做的是逆运算用训练时保存的最小值/最大值统计量把归一化值还原成真实物理量。这一步就叫做反归一化。这套统计量被保存在一个很小的文件里policy_postprocessor_step_0_groot_action_unpack_unnormalize_v2.safetensors约 4KB。没错它比动辄 12GB 的模型权重小得多因为里面装的就是几十个 min/max 数字而已。同时clip_normalized_action: true还会对还原结果做边界裁剪避免出现明显越界的异常动作——就像温度计读数超出刻度时会主动修正一样。 小知识预处理阶段的反向过程同样存在。policy_preprocessor.json 中的groot_n1_7_pack_inputs_v1步骤负责在喂给模型前做 min-max 归一化normalize_min_max: true它的统计量文件与后处理共用同一份数据两个文件内容完全一致。✋ 第三步夹爪二值化Gripper Binarization——让夹爪只回答「开或关」这是本模型最有意思的设计。LIBERO 仿真环境里的夹爪是离散控制的只有张开和闭合两个状态不接受「半开半闭」这种中间值。如果直接把模型的连续输出比如 0.3、0.7下发夹爪就会在开合之间反复摇摆导致抓取不稳定。因此后处理器里有两个关键开关libero_gripper_action: true告诉后处理器「最后一维是夹爪」只对这一个维度做特殊处理其余 6 维保持连续libero_gripper_binarize: true对该维度做夹爪二值化以 0.5 为界——大于阈值置为 1闭合否则置为 0张开。经过二值化后7 维动作变成「6 个连续自由度 1 个 0/1 离散夹爪」完全符合 LIBERO 环境的控制协议。⚙️ 配置源头policy_postprocessor.json 逐条解读整个动作后处理逻辑就浓缩在 policy_postprocessor.json 的这一个步骤里{ registry_name: groot_action_unpack_unnormalize_v2, config: { env_action_dim: 7, normalize_min_max: true, clip_normalized_action: true, libero_gripper_action: true, libero_gripper_binarize: true }, state_file: policy_postprocessor_step_0_groot_action_unpack_unnormalize_v2.safetensors }逐条翻译成人话配置项含义env_action_dim: 7每个动作是 7 维6 自由度 1 夹爪normalize_min_max: true执行 min-max 反归一化clip_normalized_action: true裁剪越界数值libero_gripper_action: true标记最后一维为夹爪维度libero_gripper_binarize: true对夹爪维度做 0/1 二值化这个步骤之后还有一个device_processor负责把张量从 GPU 挪回 CPU方便机器人控制程序直接消费——后处理流程到此完整收尾。 与动作后处理相关的文件一览policy_postprocessor.json — 后处理流水线配置本文主角policy_postprocessor_step_0_groot_action_unpack_unnormalize_v2.safetensors — 反归一化统计量policy_preprocessor.json — 预处理流水线归一化的「上半场」config.json — 模型结构与推理参数chunk、维度、embodiment 等train_config.json — 训练配置数据集、优化器、批量大小等README.md — 使用说明与 rollout 命令❓ 新手常见问题Q1为什么动作输出是 7 维因为 LIBERO 环境里机械臂末端是 6 自由度x/y/z 平移 roll/pitch/yaw 旋转再加上 1 个夹爪自由度共 7 维。Q2反归一化的统计量存在哪里存在policy_postprocessor_step_0_groot_action_unpack_unnormalize_v2.safetensors里只有约 4KB下载模型时几乎不占流量。Q3夹爪为什么不是 0 就是 1LIBERO 仿真环境的夹爪是离散控制的连续值会导致夹爪抖动。二值化把夹爪输出规整为 0/1 两个稳定状态抓取更可靠。Q4这个模型能直接用在我的真实机器人上吗模型面向 LIBERO 仿真环境训练embodiment_tag: libero_sim、action_decode_transform: libero见 config.json。真实机器人使用需要做硬件适配具体启动方式可以参考 README.md 中的 rollout 示例。✅ 总结gr00t17-lerobot-libero_object-640 的动作后处理并不神秘本质就是四步动作解包 → 反归一化 → 边界裁剪 → 夹爪二值化。整个过程由 policy_postprocessor.json 声明式驱动统计量数据只有 4KB。理解了「6 维连续 1 维离散夹爪」的设计思想你也就掌握了 LeRobot 生态里绝大多数机器人策略模型的输出处理逻辑——下次再看到类似配置一眼就能读懂。【免费下载链接】gr00t17-lerobot-libero_object-640项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/gr00t17-lerobot-libero_object-640创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表