pick-laptop-charger-franka
收藏数据集概述
- 数据集名称:pick-laptop-charger-franka
- 许可协议:Apache-2.0
- 任务类型:机器人学(Robotics)
- 标签:robotics, manipulation, pinch-grasp, imitation-learning, lerobot, humxai, v0.3
- 数据规模:1K < n < 10K
数据集内容
该数据集包含人类演示的捏合抓取并提起笔记本电脑电源适配器的动作,并使用LeRobot v3.0格式重定向至Franka Emika Panda + Franka Hand平行夹爪。
- 83 个片段:执行“捏合 + 提起”动作
- 总计 8537 帧,约 285 秒
- 30 FPS RGB 视频(720×1280)及每帧的状态、动作、接触、压力信息
- LeRobot v3.0 格式,可直接用于 ACT / Diffusion Policy 训练
数据结构
| 特征 | 形状 | 描述 |
|---|---|---|
observation.images.front |
视频 (720×1280×3) | Mac 摄像头正面视角 |
observation.state |
(7,) | [相对末端执行器x, y, z, 滚转角, 俯仰角, 偏航角, 夹爪力] |
action |
(7,) | [Δx, Δy, Δz, Δ滚转角, Δ俯仰角, Δ偏航角, 夹爪力目标] |
observation.contact |
(1,) | 二进制:1 表示任一活动手指接触,0 表示未接触 |
observation.contact_per_finger |
(4,) | 四根手指(拇指、食指、中指、无名指)的二进制接触状态 |
observation.pressure_per_finger |
(4,) | 原始 FSR 压力归一化值 [0, 1],供分析用 |
observation.object_id |
(1,) | 分类值(0 = 笔记本电脑充电器) |
- 状态细节:
rel_ee_x/y/z:末端执行器相对于物体中心的相对位置(物体中心系),跟踪器使用CSRT,物体边界框每个片段手动绘制。roll/pitch/yaw:基于MPU6050的Madgwick AHRS融合得出的手腕姿态(重力校正,运动下鲁棒)。gripper_force:理论值,非实测值。计算公式为:contact_smoothed × 14 N / 70 N = contact_smoothed × 0.200,其中14 N为笔记本电脑充电器安全抓取范围[8, 20] N的均值,70 N为Franka Hand最大力。
力语义(v0.3)
该数据集不使用FSR导出的力作为夹爪信号,而是采用理论力值:
gripper_force(t) = smoothed_contact(t) × theoretical_normalized = smoothed_contact(t) × (mean_n / max_robot_force_N) = smoothed_contact(t) × (14 / 70) = smoothed_contact(t) × 0.200
其中 smoothed_contact 是经过5帧中心箱形滤波器处理的二进制接触信号。
部署时:通过 commanded_N = policy_output × max_robot_force_N 转换为牛顿。(Franka Hand最大70 N,策略输出0.200 → 14 N)
每个物体的理论力范围保存在 meta/info.json::humxai.theoretical_force 中:
json { "max_robot_force_N": 70.0, "per_object_N": { "laptop_charger": {"min_n": 8.0, "max_n": 20.0, "mean_n": 14.0} } }
数据来源
- 手套录制:105个原始片段(humxai手套 MVP)
- 接触质量门控:校准工具验证FSR能否产生可靠接触事件
- 质量控制:
recalibrate_episodes.py对每个片段评分(绿色/黄色/灰色/红色) - 筛选:
cull_episodes.py将20个黄色(单指)片段移至_rejected/ - 计算机视觉管线:MediaPipe Hands + CSRT物体跟踪器
- 验证器:2个片段因时间戳抖动超过100ms被丢弃
- 重定向:
retarget_for_robot.py --skill-yaml skills/pick_laptop_charger.yaml --robot franka_panda - 格式转换:LeRobot v2.1 → v3.0
共计:105个原始 → 83个可训练片段(保留率79%)。
已训练模型
andresceballosm/pick-laptop-charger-act-v0:ACT 20k步,训练于全部83个片段。分布内评估:位置平均绝对误差2.8 mm,夹爪平均绝对误差0.040。andresceballosm/pick-laptop-charger-act-ood:ACT 20k步,训练于59个片段(排除右侧桌面集群)。用于以下OOD泛化验证。
分布外泛化验证(Tier 4验证)
通过保留位置集群实验验证了空间分布外泛化能力。将83个片段按物体位置(第一帧边界框中心)聚类(KMeans,k=4)。空间最孤立的集群(24个片段,桌面右侧区域)作为OOD测试集。在剩余59个片段上训练ACT 20k步,并在24个保留片段上以回放风格评估。
结果:
| 指标 | 分布内(10个随机,全83模型) | OOD(24个保留,59训练模型) | 比值 |
|---|---|---|---|
pos_mae |
2.8 mm | 2.7 mm | 0.96× |
rot_mae |
0.009 rad | 0.009 rad | 1.07× |
gripper_mae |
0.040 | 0.047 | 1.18× |
gripper_timing_delta |
不适用 | -13帧(约提前430 ms) | 已知特征 |
解读:
- 位置泛化极佳:在空间上新颖的物体放置位置下,位置精度与训练分布内的片段基本一致。模型学到了(图像,状态)→ 动作的函数,而非记忆轨迹。
- 夹爪调制泛化良好:OOD夹爪平均绝对误差仅增加18%。
- 已知特征——夹爪提前闭合:策略比人类演示提前约13帧(约430 ms)闭合夹爪。对于控制延迟小于100 ms的部署,通常不是问题。
使用的阈值(OOD ≤ 2× 分布内 = 可销售)对于MVP阶段数据集是保守的。该数据集在所有指标上均轻松达标。
使用LeRobot
bash python -m lerobot.scripts.lerobot_train --dataset.repo_id=andresceballosm/pick-laptop-charger-franka --dataset.revision=main --policy.type=act --batch_size=16 --steps=20000 --output_dir=outputs/act_charger_v1 --policy.device=cuda --policy.use_amp=true --dataset.video_backend=pyav --tolerance_s=0.1
重要标志(不可省略):
--tolerance_s=0.1:默认0.0001对人工录制时间戳过于严格--dataset.video_backend=pyav:默认ffmpeg可能静默返回None
局限性
- 单一物体(一个特定的笔记本电脑充电器)。训练的策略可能无法泛化到其他形状的充电器。
- 单摄像头,无深度信息——
rel_ee_z基于IMU(近似值)。 - 仅进行了分布内验证——发布时未进行分布外/仿真到现实评估。
- 单一演示者——全部83个片段由一位操作员完成,未涵盖操作员间差异。
- 物体中心状态假设物体在帧1中可见——CSRT边界框每个片段手动绘制;跟踪器在长序列上可能漂移。
引用
源代码:https://github.com/andresceballosm/humxai-glove-dataset
bibtex @misc{ceballos2026humxai_charger_dataset, author = {Ceballos, Andrés Felipe}, title = {pick-laptop-charger-franka: human glove demos for Franka pinch-grasp}, year = {2026}, url = {https://huggingface.co/datasets/andresceballosm/pick-laptop-charger-franka} }




