frame policy from strands-arm e6d5d31
Browse files- README.md +4 -4
- config.json +7 -3
- eval.json +14 -14
- exported/contract.json +1 -1
- exported/policy.onnx +1 -1
- media/frame.gif +2 -2
- media/frame.mp4 +2 -2
README.md
CHANGED
|
@@ -34,8 +34,8 @@ detection), right = third person. [MP4](media/frame.mp4).
|
|
| 34 |
|---|---|---|---|---|---|---|
|
| 35 |
| zero action | 0.29 | 0.00 | 0.945 | 0.191 | 0.020 | 0.10 |
|
| 36 |
| head-only P (watch.py) | 0.39 | 0.01 | 0.660 | 0.211 | 0.846 | 2.06 |
|
| 37 |
-
| **this policy** | 0.
|
| 38 |
-
| this policy, arm frozen | 0.
|
| 39 |
|
| 40 |
**PASS: keeps the subject visible more often than the head-only P step.** framed = centre error < 0.15 and size error < 0.1. The arm-frozen row is the same
|
| 41 |
network with servos 1..4 held: the difference is what the arm buys.
|
|
@@ -80,5 +80,5 @@ Input `obs` [1, 30] float32, output `act` [1, 6] float32 = servo deg per 0.1 s s
|
|
| 80 |
Runner: `strands_arm.policy.FramePolicy` (image ey flipped to the sim's up-positive frame, size = box
|
| 81 |
height / half frame, ToF mm -> m, targets clamped through `kine.clamp_pose`). **Never run on the real
|
| 82 |
arm yet**; shadow mode (real pose, detections and ToF, nothing written) is logged in the repo's RL.md.
|
| 83 |
-
Source: github.com/cagataycali/strands-arm `
|
| 84 |
-
Env overrides: {}
|
|
|
|
| 34 |
|---|---|---|---|---|---|---|
|
| 35 |
| zero action | 0.29 | 0.00 | 0.945 | 0.191 | 0.020 | 0.10 |
|
| 36 |
| head-only P (watch.py) | 0.39 | 0.01 | 0.660 | 0.211 | 0.846 | 2.06 |
|
| 37 |
+
| **this policy** | 0.69 | 0.20 | 0.198 | 0.184 | 0.036 | 5.44 |
|
| 38 |
+
| this policy, arm frozen | 0.64 | 0.03 | 0.396 | 0.192 | 1.670 | 1.39 |
|
| 39 |
|
| 40 |
**PASS: keeps the subject visible more often than the head-only P step.** framed = centre error < 0.15 and size error < 0.1. The arm-frozen row is the same
|
| 41 |
network with servos 1..4 held: the difference is what the arm buys.
|
|
|
|
| 80 |
Runner: `strands_arm.policy.FramePolicy` (image ey flipped to the sim's up-positive frame, size = box
|
| 81 |
height / half frame, ToF mm -> m, targets clamped through `kine.clamp_pose`). **Never run on the real
|
| 82 |
arm yet**; shadow mode (real pose, detections and ToF, nothing written) is logged in the repo's RL.md.
|
| 83 |
+
Source: github.com/cagataycali/strands-arm `e6d5d31`, `rl/envs/frame_env.py`, `rl/sim/`. PPO: {"n_envs": 256, "steps_per_env": 50, "epochs": 4, "minibatches": 8, "lr": 0.0003, "gamma": 0.98, "lam": 0.95, "clip": 0.2, "ent_coef": 0.002, "vf_coef": 0.5, "max_grad_norm": 0.5, "hidden": 128, "act_scale": 5.0, "act_dim": 6, "total_updates": 2500, "device": "cpu", "seed": 0}
|
| 84 |
+
Env overrides: {"w_act": 0.1, "w_jerk": 0.1}
|
config.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
{
|
| 2 |
"policy": "frame",
|
| 3 |
"ppo": {
|
| 4 |
-
"n_envs":
|
| 5 |
"steps_per_env": 50,
|
| 6 |
"epochs": 4,
|
| 7 |
"minibatches": 8,
|
|
@@ -9,14 +9,18 @@
|
|
| 9 |
"gamma": 0.98,
|
| 10 |
"lam": 0.95,
|
| 11 |
"clip": 0.2,
|
| 12 |
-
"ent_coef": 0.
|
| 13 |
"vf_coef": 0.5,
|
| 14 |
"max_grad_norm": 0.5,
|
| 15 |
"hidden": 128,
|
| 16 |
"act_scale": 5.0,
|
| 17 |
"act_dim": 6,
|
| 18 |
-
"total_updates":
|
| 19 |
"device": "cpu",
|
| 20 |
"seed": 0
|
|
|
|
|
|
|
|
|
|
|
|
|
| 21 |
}
|
| 22 |
}
|
|
|
|
| 1 |
{
|
| 2 |
"policy": "frame",
|
| 3 |
"ppo": {
|
| 4 |
+
"n_envs": 256,
|
| 5 |
"steps_per_env": 50,
|
| 6 |
"epochs": 4,
|
| 7 |
"minibatches": 8,
|
|
|
|
| 9 |
"gamma": 0.98,
|
| 10 |
"lam": 0.95,
|
| 11 |
"clip": 0.2,
|
| 12 |
+
"ent_coef": 0.002,
|
| 13 |
"vf_coef": 0.5,
|
| 14 |
"max_grad_norm": 0.5,
|
| 15 |
"hidden": 128,
|
| 16 |
"act_scale": 5.0,
|
| 17 |
"act_dim": 6,
|
| 18 |
+
"total_updates": 2500,
|
| 19 |
"device": "cpu",
|
| 20 |
"seed": 0
|
| 21 |
+
},
|
| 22 |
+
"env_kw": {
|
| 23 |
+
"w_act": 0.1,
|
| 24 |
+
"w_jerk": 0.1
|
| 25 |
}
|
| 26 |
}
|
eval.json
CHANGED
|
@@ -20,23 +20,23 @@
|
|
| 20 |
"episodes": 256
|
| 21 |
},
|
| 22 |
"policy": {
|
| 23 |
-
"visible_frac": 0.
|
| 24 |
-
"centre_err": 0.
|
| 25 |
-
"size_err": 0.
|
| 26 |
-
"framed_frac": 0.
|
| 27 |
-
"contacts_per_step": 0.
|
| 28 |
-
"travel_deg_per_step":
|
| 29 |
-
"return": -
|
| 30 |
"episodes": 256
|
| 31 |
},
|
| 32 |
"policy_head_only": {
|
| 33 |
-
"visible_frac": 0.
|
| 34 |
-
"centre_err": 0.
|
| 35 |
-
"size_err": 0.
|
| 36 |
-
"framed_frac": 0.
|
| 37 |
-
"contacts_per_step":
|
| 38 |
-
"travel_deg_per_step": 1.
|
| 39 |
-
"return": -
|
| 40 |
"episodes": 256
|
| 41 |
}
|
| 42 |
}
|
|
|
|
| 20 |
"episodes": 256
|
| 21 |
},
|
| 22 |
"policy": {
|
| 23 |
+
"visible_frac": 0.6905729166666666,
|
| 24 |
+
"centre_err": 0.1983825183106866,
|
| 25 |
+
"size_err": 0.1842055106720862,
|
| 26 |
+
"framed_frac": 0.20065104166666667,
|
| 27 |
+
"contacts_per_step": 0.036041666666666666,
|
| 28 |
+
"travel_deg_per_step": 5.43995060231392,
|
| 29 |
+
"return": -131.71154753941119,
|
| 30 |
"episodes": 256
|
| 31 |
},
|
| 32 |
"policy_head_only": {
|
| 33 |
+
"visible_frac": 0.643828125,
|
| 34 |
+
"centre_err": 0.3961956481892011,
|
| 35 |
+
"size_err": 0.19241690997684427,
|
| 36 |
+
"framed_frac": 0.028697916666666667,
|
| 37 |
+
"contacts_per_step": 1.6695052083333333,
|
| 38 |
+
"travel_deg_per_step": 1.394960471916383,
|
| 39 |
+
"return": -272.8525200909862,
|
| 40 |
"episodes": 256
|
| 41 |
}
|
| 42 |
}
|
exported/contract.json
CHANGED
|
@@ -56,6 +56,6 @@
|
|
| 56 |
],
|
| 57 |
"units": "servo deg per 0.1 s step, ids 1..6"
|
| 58 |
},
|
| 59 |
-
"round_trip_max_abs_err":
|
| 60 |
"size_bytes": 86676
|
| 61 |
}
|
|
|
|
| 56 |
],
|
| 57 |
"units": "servo deg per 0.1 s step, ids 1..6"
|
| 58 |
},
|
| 59 |
+
"round_trip_max_abs_err": 9.5367431640625e-07,
|
| 60 |
"size_bytes": 86676
|
| 61 |
}
|
exported/policy.onnx
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
size 86676
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8d8542c47bfeff6be9a5fcb636cf49d93968aff4976d9f040fa0b3bf97d59ae7
|
| 3 |
size 86676
|
media/frame.gif
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
media/frame.mp4
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:51dfa6dca58a1b7b046b64aef5f7ef3cba380900f5dc8051e93ec631a15e7c2b
|
| 3 |
+
size 145773
|