Commit ·
8e12b97
0
Parent(s):
Initial commit
Browse files- .gitattributes +35 -0
- README.md +48 -0
- actor.pt +3 -0
- config.yaml +147 -0
- normalizer.pt +3 -0
.gitattributes
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
| 2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
| 3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
| 4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
| 5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
| 6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
| 7 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
| 8 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
| 9 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
| 10 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
| 11 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
| 12 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
| 13 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
| 14 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
| 15 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
| 16 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
| 17 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
| 18 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
| 19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
| 20 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
| 21 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
| 22 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
| 23 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
| 24 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
| 25 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
| 26 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
| 27 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
| 28 |
+
*.tar filter=lfs diff=lfs merge=lfs -text
|
| 29 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
| 30 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
| 31 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
| 32 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
| 33 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
README.md
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
tags:
|
| 4 |
+
- robotics
|
| 5 |
+
- reinforcement-learning
|
| 6 |
+
- discodemo
|
| 7 |
+
- franka
|
| 8 |
+
---
|
| 9 |
+
|
| 10 |
+
# DiscoDemo-Stage1_RL-PnP_Banana
|
| 11 |
+
|
| 12 |
+
The **data generator** of [DiscoDemo](https://davian-robotics.github.io/DiscoDemo/) for the **PnP-Banana** task (pick up a banana and place it in a bowl): a state-based
|
| 13 |
+
reinforcement-learning policy trained in simulation — the DiscoDemo generator (diversity weight α = 0.3).
|
| 14 |
+
Rolling it out generates demonstrations such as those in the Stage2 dataset below.
|
| 15 |
+
|
| 16 |
+
| Stage | Repository |
|
| 17 |
+
|---|---|
|
| 18 |
+
| Generator (RL policy) | [`DAVIAN-Robotics/DiscoDemo-Stage1_RL-PnP_Banana`](https://huggingface.co/DAVIAN-Robotics/DiscoDemo-Stage1_RL-PnP_Banana) (this repository) |
|
| 19 |
+
| Generated dataset | [`DAVIAN-Robotics/DiscoDemo-Stage2_GenData-PnP_Banana`](https://huggingface.co/datasets/DAVIAN-Robotics/DiscoDemo-Stage2_GenData-PnP_Banana) |
|
| 20 |
+
| Imitation policy (π0.5) | [`DAVIAN-Robotics/DiscoDemo-Stage3_SFT-PnP_Banana`](https://huggingface.co/DAVIAN-Robotics/DiscoDemo-Stage3_SFT-PnP_Banana) |
|
| 21 |
+
|
| 22 |
+
## Files
|
| 23 |
+
|
| 24 |
+
| File | Content |
|
| 25 |
+
|---|---|
|
| 26 |
+
| `actor.pt` | Actor network weights (`network_state_dict`). Optimizer state is not included. |
|
| 27 |
+
| `normalizer.pt` | Observation bounds used to normalize the policy input. |
|
| 28 |
+
| `config.yaml` | Full training configuration (environment, curriculum, agent). |
|
| 29 |
+
|
| 30 |
+
Only what is needed to roll the policy out is released; the critic and other training-only state are omitted.
|
| 31 |
+
The actor is conditioned on a skill vector *z* sampled once per episode from a standard normal distribution.
|
| 32 |
+
|
| 33 |
+
Environment steps at this checkpoint: 50.0 M.
|
| 34 |
+
|
| 35 |
+
## Usage
|
| 36 |
+
|
| 37 |
+
Loading requires the DiscoDemo training code: https://github.com/DAVIAN-Robotics/DiscoDemo.
|
| 38 |
+
|
| 39 |
+
## Citation
|
| 40 |
+
|
| 41 |
+
```bibtex
|
| 42 |
+
@article{park2026discodemo,
|
| 43 |
+
title = {DiscoDemo: Discovering Efficient and Diverse Robot Demonstrations for Imitation Learning},
|
| 44 |
+
author = {Park, Minho and Kim, Kinam and Kim, Donghu and Lee, Byungkun and Hwang, Dongyoon and Shin, Yongjae and Hyung, Junha and Lee, Hojoon and Choo, Jaegul},
|
| 45 |
+
journal = {arXiv preprint},
|
| 46 |
+
year = {2026}
|
| 47 |
+
}
|
| 48 |
+
```
|
actor.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d66e08850b10b0b972918d996c32caebab53133215ef9adb7aab94c56f754da4
|
| 3 |
+
size 1110721
|
config.yaml
ADDED
|
@@ -0,0 +1,147 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
project_name: DiscoDemo
|
| 2 |
+
entity_name: null
|
| 3 |
+
group_name: pnp_banana
|
| 4 |
+
exp_name: discodemo-pnp_banana
|
| 5 |
+
seed: 0
|
| 6 |
+
logger_type: wandb
|
| 7 |
+
save_path: libs/FlashSAC/models/pnp_banana/discodemo-pnp_banana/seed0-TIMESTAMP
|
| 8 |
+
agent_load_path: null
|
| 9 |
+
num_env_steps: 50000000
|
| 10 |
+
num_train_envs: 2048
|
| 11 |
+
updates_per_interaction_step: 64
|
| 12 |
+
gamma: 0.99
|
| 13 |
+
n_step: 8
|
| 14 |
+
env:
|
| 15 |
+
workcell: libs/real2sim/assets/workcell.json
|
| 16 |
+
task: libs/real2sim/real2sim/tasks/pnp_banana.py
|
| 17 |
+
env_version: fr3-pnp_banana
|
| 18 |
+
gripper_lock: null
|
| 19 |
+
success_hold_steps: 20
|
| 20 |
+
agent:
|
| 21 |
+
agent_type: flashSAC
|
| 22 |
+
seed: 0
|
| 23 |
+
device_type: cuda
|
| 24 |
+
buffer_max_length: 100000000
|
| 25 |
+
buffer_min_length: 5000
|
| 26 |
+
buffer_device_type: cuda
|
| 27 |
+
sample_batch_size: 2048
|
| 28 |
+
normalize_reward: true
|
| 29 |
+
normalized_G_max: 5.0
|
| 30 |
+
asymmetric_observation: false
|
| 31 |
+
learning_rate_init: 0.0003
|
| 32 |
+
learning_rate_peak: 0.0003
|
| 33 |
+
learning_rate_end: 0.00015
|
| 34 |
+
learning_rate_warmup_rate: 1.0e-06
|
| 35 |
+
learning_rate_warmup_step: 50
|
| 36 |
+
learning_rate_decay_rate: 1.0
|
| 37 |
+
learning_rate_decay_step: 50000000
|
| 38 |
+
actor_num_blocks: 2
|
| 39 |
+
actor_hidden_dim: 128
|
| 40 |
+
actor_bc_alpha: 0
|
| 41 |
+
actor_noise_zeta_mu: 2.0
|
| 42 |
+
actor_noise_zeta_max: 16
|
| 43 |
+
actor_update_period: 2
|
| 44 |
+
critic_num_blocks: 2
|
| 45 |
+
critic_hidden_dim: 256
|
| 46 |
+
critic_num_bins: 101
|
| 47 |
+
critic_min_v: -5
|
| 48 |
+
critic_max_v: 5
|
| 49 |
+
critic_target_update_tau: 0.01
|
| 50 |
+
temp_initial_value: 0.01
|
| 51 |
+
temp_target_sigma: 0.15
|
| 52 |
+
temp_target_entropy: null
|
| 53 |
+
gamma: 0.99
|
| 54 |
+
n_step: 8
|
| 55 |
+
use_compile: true
|
| 56 |
+
compile_mode: auto
|
| 57 |
+
use_amp: true
|
| 58 |
+
load_optimizer: true
|
| 59 |
+
load_reward_normalizer: true
|
| 60 |
+
rfcl:
|
| 61 |
+
demo_ratio: 0.5
|
| 62 |
+
truncate_after_success: 50
|
| 63 |
+
reverse:
|
| 64 |
+
reverse_step_size: 16
|
| 65 |
+
advance_threshold: 0.9
|
| 66 |
+
frontier_window: 10
|
| 67 |
+
minimum_episode_steps: 30
|
| 68 |
+
solved_frac_threshold: 0.5
|
| 69 |
+
demo_path: data/demo_banks/pnp_banana/human_demos.h5
|
| 70 |
+
init_pose: box:0.4125,0.6375,-0.15,0.15,180,0.20
|
| 71 |
+
eval_worker:
|
| 72 |
+
num_envs: 50
|
| 73 |
+
skill:
|
| 74 |
+
phi_hidden:
|
| 75 |
+
- 256
|
| 76 |
+
- 256
|
| 77 |
+
phi_lr: 0.0001
|
| 78 |
+
dual_slack: 0.001
|
| 79 |
+
lam_init: 1.0
|
| 80 |
+
alpha: 0.3
|
| 81 |
+
z_dim: 3
|
| 82 |
+
safety_penalty:
|
| 83 |
+
illegal_contact:
|
| 84 |
+
weight: 0.0001
|
| 85 |
+
sat: 100
|
| 86 |
+
robot_bodies:
|
| 87 |
+
- panda_link5
|
| 88 |
+
- panda_link6
|
| 89 |
+
- panda_link7
|
| 90 |
+
- panda_hand
|
| 91 |
+
- panda_leftfinger
|
| 92 |
+
- panda_rightfinger
|
| 93 |
+
scene_bodies:
|
| 94 |
+
- table
|
| 95 |
+
- bowl
|
| 96 |
+
- banana
|
| 97 |
+
allowed_pairs:
|
| 98 |
+
- - panda_leftfinger
|
| 99 |
+
- banana
|
| 100 |
+
- - panda_rightfinger
|
| 101 |
+
- banana
|
| 102 |
+
obs_bounds:
|
| 103 |
+
object_z_m:
|
| 104 |
+
- 0.0
|
| 105 |
+
- 0.6
|
| 106 |
+
eef_box_m:
|
| 107 |
+
x:
|
| 108 |
+
- 0.2
|
| 109 |
+
- 0.85
|
| 110 |
+
'y':
|
| 111 |
+
- -0.45
|
| 112 |
+
- 0.45
|
| 113 |
+
z:
|
| 114 |
+
- 0.0
|
| 115 |
+
- 0.7
|
| 116 |
+
object_xy:
|
| 117 |
+
- - 0.2
|
| 118 |
+
- 0.85
|
| 119 |
+
- - -0.4
|
| 120 |
+
- 0.4
|
| 121 |
+
task_name: pnp_banana
|
| 122 |
+
jerk_limited_action:
|
| 123 |
+
max_joint_velocity:
|
| 124 |
+
- 0.140158
|
| 125 |
+
- 0.371417
|
| 126 |
+
- 0.120833
|
| 127 |
+
- 0.401634
|
| 128 |
+
- 0.158933
|
| 129 |
+
- 0.283217
|
| 130 |
+
- 0.239493
|
| 131 |
+
max_joint_acceleration:
|
| 132 |
+
- 0.270445
|
| 133 |
+
- 0.596802
|
| 134 |
+
- 0.280726
|
| 135 |
+
- 0.625579
|
| 136 |
+
- 0.64258
|
| 137 |
+
- 0.654981
|
| 138 |
+
- 0.774423
|
| 139 |
+
max_joint_jerk:
|
| 140 |
+
- 1.706102
|
| 141 |
+
- 2.779986
|
| 142 |
+
- 1.697314
|
| 143 |
+
- 2.944153
|
| 144 |
+
- 4.787226
|
| 145 |
+
- 4.222746
|
| 146 |
+
- 5.887756
|
| 147 |
+
method_name: discodemo
|
normalizer.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:797bdde550c0940effb74946a53223a6a23eef20e99c3a84b075d9409b3e5167
|
| 3 |
+
size 2492
|