tennis_gs_transparent_100k
收藏资源简介:
GS Tennis: transparent ring, stratified 100k 是一个用于机器人学任务的数据集,专注于基于视觉-语言-动作(VLA)的网球抓取场景。数据集通过逆运动学(IK)控制收集,模拟机器人从空中捕获网球的过程。透明环的设计使上相机能通过开口观察,保留了原始碰撞几何,未添加网。数据集包含100,000条序列,每条序列有52帧(30 Hz),覆盖从发射到捕获的全过程。采样使用等面积分层策略:将前向捕获盘(半径1.4 m,前向坐标至少0.3 m)划分为100×100个等面积单元,在可行单元内随机采样,确保捕获位置的空间均匀性。发射距离3-5 m,发射高度0.81-1.0 m,目标高度0.9 m,飞行时间1.5-1.6 s,基础着陆比例0.7。数据分为核心(core)和辅助(aux)分片:核心包含每相机的HEVC/H.265压缩RGB视频(yuv420p,CRF 24)、parameters.npz(含52帧的状态、动作、帧索引、时间戳和相机变换)、标签以及相机内参和配置;辅助包含无损压缩的float32深度、分割类别ID和每帧完整仿真参数(命令动作、关节位置/速度、根/底座/环位姿、球位置/速度等)。所有分片经SHA-256校验、帧数和数据对齐审计,确保完整性。模型输入建议解码帧24、27和30作为三观察VLA查询。提供Python加载脚本(load_episode.py)和深度解码函数。相机坐标系使用USD列向量,需转换OpenCV坐标。该数据集适用于机器人操控、视觉抓取、动态环境感知等研究。
GS Tennis: transparent ring, stratified 100k is a dataset for robotics tasks, focusing on vision-language-action (VLA) based tennis ball catching scenarios. The dataset is collected via inverse kinematics (IK) control, simulating a robot catching a tennis ball from the air. The design of the transparent ring allows the top camera to observe through the opening, preserving the original collision geometry without adding a net. The dataset contains 100,000 episodes, each with 52 frames (30 Hz), covering the entire process from launch to catch. Sampling uses an equal-area stratification strategy: the forward capture disk (radius 1.4 m, forward coordinate at least 0.3 m) is divided into 100×100 equal-area cells, with random sampling in feasible cells to ensure spatial uniformity of catch positions. Launch distance 3-5 m, launch height 0.81-1.0 m, target height 0.9 m, flight time 1.5-1.6 s, base landing ratio 0.7. Data is divided into core and aux shards: core includes HEVC/H.265 compressed RGB video (yuv420p, CRF 24) for each camera, parameters.npz (containing states, actions, frame indices, timestamps, and camera transforms for 52 frames), labels, and camera intrinsics and configurations; aux includes lossless compressed float32 depth, segmentation category IDs, and full per-frame simulation parameters (command actions, joint positions/velocities, root/base/ring poses, ball positions/velocities, etc.). All shards undergo SHA-256 checksums, frame count and data alignment audits to ensure integrity. Model input suggests decoding frames 24, 27, and 30 as three-view VLA queries. Python loading script (load_episode.py) and depth decoding functions are provided. Camera coordinate system uses USD column vectors, requiring conversion to OpenCV coordinates. This dataset is suitable for research in robot manipulation, visual grasping, dynamic environment perception, etc.
GS Tennis: Transparent Ring, Stratified 100k
数据集概况
- 任务类别:robotics
- 语言:en、zh
- 标签:isaac-sim、dynamicvla、tennis、hevc
- 采集目标:100,000 条序列。仓库为增量式填充,目标并不意味着所有序列均已上传。
- 归档结构:每个归档包含 200 条序列。
- 序列结构:每条序列包含 52 帧,索引 0–51,频率 30 Hz。
采集控制器
- 保留原始 GS 采集控制器:运动从第 30 帧开始,使用 15 帧 smoothstep 插值。
- 这是 IK 控制的采集数据集,而非 checkpoint 驱动的评估。
- 圆形边框保持可见;其原始填充内部视觉被隐藏,以便上方相机能透过开口观察。
- 保留原始碰撞几何。不添加悬挂网。
- 相机位置保持原始采集命令提供的位置。
采样
- 种子标签 0–9999 在十轮中重复。每条序列使用
SeedSequence([global_episode_id % 10000, global_episode_id // 10000, 20260908]),产生可复现且互不相同的流。 - 前向接球盘(半径 1.4 m,前向坐标至少 0.3 m)映射为 100 × 100 等面积单元格。这不是极径上的均匀采样。
- 原始 IK 检查单元格中心及四个内部点。可行单元格分配均衡的序列数,然后在内部随机采样。每次实际投掷由原始采集控制器再次检查。被排除的单元格及精确的全局 episode/单元格映射位于
metadata/grid_plan.*。 - 发射距离:前向 3–5 m;发射世界 Z:0.81–1.0 m;目标世界 Z:0.9 m;飞行时长:1.5–1.6 s,量化到原始 0.0333333 s 物理步长。基础落地占比:0.7。
- 时间和发射参数在其范围内保持随机。等面积分层应用于接球位置。
优先级层级
core/shard_XXXXXX.tar优先上传。每个包含每相机的 HEVC/H.265 MP4、parameters.npz及 200 条序列的标签。parameters.npz包含全部 52 个状态、动作、帧索引、时间戳和相机变换。状态顺序为 base X/Y/yaw 加六个臂关节。action[t] = state[min(t+1, 51)],与原始 action-lookahead 设置一致。每个 shard 附带相机内参和采集配置。aux/shard_XXXXXX.tar包含无损压缩的 float32 深度、分割类别 ID,以及完整的逐帧实测仿真参数:命令动作、关节位置/速度、根/基座/环位姿、根速度、球位置/速度、环中心/法线及相机变换,加上投掷和 IK 标签。传感器无效的深度值被保留。- 辅助上传仅在 10,000 条核心序列已上传并验证后开始,此后核心数据保持队列优先。缺失的辅助 shard 可能只是仍在排队。
压缩与完整性
- RGB 编码为 HEVC MP4(
yuv420p,CRF 24,medium 预设)。若全图或球区域检查需要,编码重试使用yuv444p在 CRF 20,然后 CRF 12,最后以无损 HEVC 作为最终回退。RGB-to-YUV 转换仍然适用,因此无损 HEVC 在 YUV 空间是位精确的,而非承诺与原始 RGB 字节完全相同。实际像素格式、CRF、解码帧数和采样 PSNR 按 episode 存储,encoding_audit.json记录尝试的设置。录制器在 MP4 被解码和检查前将 RGB 保留在内存中,然后释放;不向磁盘写入原始 RGB 文件。最终状态/动作保持数值数组,而非视频编码值。 - 深度 float32 位模式使用时间 XOR、字节重排和 NPZ DEFLATE 无损压缩。使用
depth_codec.decode(depth_xor_shuffled, depth_shape)恢复精确的原始数组,包括无效值位模式。 - 每个归档包含逐文件
SHA256SUMS。仅在 Hugging Face 确认其精确大小和 SHA-256 后删除本地归档。持久队列保留待处理传输并重试网络错误。采集在消耗配置的磁盘保留量之前暂停。 - 上传前,归档对照每个逐文件校验和、完整的 200-episode ID 范围、必需的相机和参数文件、52 帧数组、有限数值参数、视频质量回执以及下一帧状态/动作对齐进行检查。首个发布的核心 shard 也已从 Hugging Face 下载并通过此内容审计,连同其保留的辅助 shard。
模型输入
- 解码帧
[24,27,30]用于第 30 帧的当前三观测 VLA 查询。由于遵循原始采集时序,第 30 帧已包含第一个小幅运动。全部 52 帧可用于其他查询时间。使用保存的任务字符串、状态向量和相机键顺序left、right、upper;应用你自己 checkpoint 的图像预处理和归一化。 load_episode.py提供 NumPy/PyAV 读取器。MP4 解码的 RGB,而非删除的预编码像素,定义发布数据集的观测图像。保存的归档布局为显式 NPZ/JSON/MP4,不是可直接使用的 LeRobot 文件夹。- 相机外参为列向量 USD camera-to-world 变换。使用
diag(1,-1,-1,1)将 OpenCV 光学坐标转换为 USD 相机坐标。几何使用米;关节角度使用弧度;位姿四元数顺序为 XYZW。理论目标为空中接球位置,而非地面撞击点。




