ledrone_pybullet_hover
收藏资源简介:
这是一个基于目标条件、状态驱动的模仿学习数据集,专注于四旋翼无人机在PyBullet刚体物理模拟中执行悬停任务(即到达固定目标位置并保持稳定)。数据集包含200个episode,共40,000帧数据(每个episode 200帧,以30 Hz频率采集,相当于6.7秒)。数据由特权解析专家(基于PD位置控制器和参考速度前馈)生成,每帧配对无人机的全本体感知状态和相对目标,以及专家的速度加偏航率控制命令,适用于训练目标条件控制策略(如Diffusion Policy、ACT等)。数据集提供第一人称视角(FPV)相机流作为可选的辅助输入(任务仅从状态即可解决)。数据集采用LeRobot v3.0格式,动作空间为NED速度加偏航率,状态包括位置、速度、姿态四元数和体速率等13维特征。数据集仅包含训练分割,适用于模拟环境中的策略训练和基准测试,但存在模拟到现实的差距,且不包含失败或恢复演示。
This is a goal-conditioned, state-driven imitation learning dataset focusing on quadrotor drones performing a hovering task (i.e., reaching and maintaining a fixed target position) in PyBullet rigid-body physics simulation. The dataset contains 200 episodes, totaling 40,000 frames (each episode has 200 frames collected at 30 Hz, equivalent to 6.7 seconds). Data is generated by a privileged parsing expert (based on a PD position controller with reference velocity feedforward), with each frame pairing the drones full proprioceptive state and relative goal, along with expert velocity and yaw rate control commands, suitable for training goal-conditioned control policies (e.g., Diffusion Policy, ACT). The dataset provides a first-person view (FPV) camera stream as an optional auxiliary input (the task can be solved solely from state). It uses the LeRobot v3.0 format, with action space as NED velocity plus yaw rate, and state includes 13-dimensional features such as position, velocity, attitude quaternion, and body rates. The dataset only includes a training split, intended for policy training and benchmarking in simulation environments, but has a simulation-to-reality gap and does not contain failure or recovery demonstrations.
数据集总览
- 任务:
hover(悬停)—— 使四旋翼飞行器到达固定目标位置并保持悬停。 - 类型:基于状态的目标条件模仿学习数据集(第一人称视角图像为可选辅助信息)。
- 生成环境:PyBullet 刚体物理引擎(通过 gym-pybullet-drones 实现)。
- 专家策略:基于解析的 PD + 前馈参考速度 + 航向角控制(仅依赖状态信息)。
- 数据集格式:LeRobot
v3.0。
规模与构成
- 回合数:300 个回合。
- 帧数:60,000 帧(每回合 200 帧,对应 6.7 秒,采样率 30 Hz)。
- 机器人类型:
ledrone(四旋翼飞行器)。 - 动作空间:北东地(NED)坐标下的速度 + 偏航角速率,共 4 维。
- 状态空间:13 维,包括位置、速度、姿态四元数、体坐标系角速率。
- 环境状态:3 维,表示当前与目标的相对位置误差(北、东、地方向)。
- 辅助图像:96×96 像素的 RGB 前视摄像头图像(AV1 编码)。
数据生成方法
- DART 风格覆盖:通过向速度通道注入噪声(标准差 0.15 m/s)生成偏离分布的状态,同时使用无噪声的专家命令作为标签,以缓解行为克隆中的协变量偏移。
- 启动瞬态抑制:使用斜率限制的设定值,从静止状态平滑过渡,避免低层控制器在回合初期产生剧烈倾斜/角速率。
- 航向控制:采用朝向目标点的航向角控制。
- 随机初始化:每回合随机化起始位置和目标位置。
- 收敛验证:仅当专家成功到达并跟踪目标时,该回合才会被纳入数据集。
主要特征与使用说明
- 核心输入:
observation.state(13 维)与observation.environment_state(3 维)足以完成悬停任务。 - 动作输出:NED 速度与偏航角速率,限幅范围:水平速度 ≤ 2 m/s,爬升速度 ≤ 1 m/s,偏航角速率 ≤ 45 °/s。
- 加载方式(需 LeRobot 库): python from lerobot.datasets.lerobot_dataset import LeRobotDataset ds = LeRobotDataset("ahive/ledrone_pybullet_hover") frame = ds[0] # 返回 state (13,)、environment_state (3,)、action (4,)
预期用途与限制
- 预期用途:基于状态的目标条件模仿学习,用于四旋翼飞行器的悬停控制。
- 限制:
- 该任务可通过状态信息解决,图像为可选辅助,且仅约 7% 的帧中包含目标标记。
- DART 噪声提供了偏离分布状态的恢复标签,但数据中不包含坠毁、大扰动或失败示例。
- 该数据集仅在仿真环境(PyBullet / gym-pybullet-drones,基于 Crazyflie 2.x)中生成,不包含真实世界迁移所需的照片级渲染场景。
数据洞察
- 所有 300 个回合的收敛误差均接近零,飞行器倾斜角度中位数约为 10 度,95% 的倾斜角度 ≤ 35 度。
- 悬停阶段速度命令约为 0.1 m/s,偏航角速率指向目标方位。
许可证与引用
- 许可证:Apache-2.0。
- 引用:请引用 ledrone 项目。



