mickryley commited on
Commit
0dffc17
·
1 Parent(s): 72a72c0

feat: nero simple pick devpack

Browse files
ApiTests/ApiTests.zip CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:8624a70dacfa32e7ee6a4c5ea1f7996f782e7629c72a8bf88f152f51a95a78c7
3
- size 73110815
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:17a8254b0f2d496e9ffaae83d842650193c6330edcf90183a3e68c60ab24bfd8
3
+ size 73116576
ApiTests/metadata.yaml CHANGED
@@ -1,6 +1,6 @@
1
  Name: "API Tests"
2
  Type: Project
3
- Version: "1.7"
4
  EngineVersion:
5
  Min: "2026.2"
6
  Behaviour: Hide
@@ -31,6 +31,9 @@ Description: >
31
  range-calibrated reflectivity, and pass-through secondary returns off the wall behind.
32
  run_all_tests.py sweeps every scene and reports pass/fail, installing requirements.txt into
33
  its test interpreter first.
 
 
 
34
  Tags:
35
  - tests
36
  - determinism
 
1
  Name: "API Tests"
2
  Type: Project
3
+ Version: "1.8"
4
  EngineVersion:
5
  Min: "2026.2"
6
  Behaviour: Hide
 
31
  range-calibrated reflectivity, and pass-through secondary returns off the wall behind.
32
  run_all_tests.py sweeps every scene and reports pass/fail, installing requirements.txt into
33
  its test interpreter first.
34
+ 1.8 replaces the embedded Nero with the Nero pack's own 1.3 files (arm turned to face +X, nero_-prefixed
35
+ joint and actuator names, gripper_joint1 actuator, retuned gains, reaching home keyframe, box finger pads)
36
+ and renames the Nero agents' joints to match; all four Nero scenes pass against it.
37
  Tags:
38
  - tests
39
  - determinism
Nero/Nero.zip CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:04df0e234b18e184ae01f4115b840cbb01a4afee37512aa3417f92144fc33c62
3
- size 14412942
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:237e95ec68e605f89c4148c327434880b00988c1cfae5a530577333b4e9056ff
3
+ size 14413103
Nero/metadata.yaml CHANGED
@@ -1,6 +1,6 @@
1
  Name: "Nero"
2
  Category: Robots
3
- Version: "1.2"
4
  Description: >
5
  A detailed robotic arm asset pack for the AgileX Nero 7-DoF manipulator with parallel
6
  gripper, including OBJ visual and STL collision assets for individual links, a grasp_site
@@ -18,6 +18,9 @@ Description: >
18
  joint-to-actuator lookup requires, and gives the finger pads hard, high-priority contact
19
  parameters so a gripped object does not creep down the pads under the engine's soft-friction
20
  MuJoCo settings (see README.md).
 
 
 
21
  Tags:
22
  - robot
23
  - manipulator
 
1
  Name: "Nero"
2
  Category: Robots
3
+ Version: "1.3"
4
  Description: >
5
  A detailed robotic arm asset pack for the AgileX Nero 7-DoF manipulator with parallel
6
  gripper, including OBJ visual and STL collision assets for individual links, a grasp_site
 
18
  joint-to-actuator lookup requires, and gives the finger pads hard, high-priority contact
19
  parameters so a gripped object does not creep down the pads under the engine's soft-friction
20
  MuJoCo settings (see README.md).
21
+ Pack 1.3 gives nero_arm.xml the same nero_ joint and actuator prefix as nero.xml, so neither
22
+ file can match the engine's Piper-specific overrides on any build, and the ApiTests project (1.8)
23
+ now embeds these exact files, so the Nero its four scenes test is the Nero this pack ships.
24
  Tags:
25
  - robot
26
  - manipulator
SimplePick/SimplePick.zip ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b07611cb81374b73408d574b23b60f5b57567a92b4947ed23bbcd1d1852df45a
3
+ size 31724173
SimplePick/metadata.yaml ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Name: "SimplePick"
2
+ Type: Project
3
+ Version: "1.0"
4
+ EngineVersion:
5
+ Min: "2026.2"
6
+ Behaviour: Hide
7
+ Category: Examples
8
+ Description: >
9
+ A scripted pick-and-place data generator and policy-evaluation rig, built twice: once for the
10
+ AgileX Piper (6-DoF) and once for the AgileX Nero (7-DoF). A block spawns at a random position
11
+ and yaw inside a fan in front of the arm, a bin spawns elsewhere in it, and an engine-side C#
12
+ controller drives the arm through the scene's LimbIK motion graph to pick the block up and drop
13
+ it in. Every episode is recorded to a LeRobot v3.0 dataset (per-joint state, velocity and action
14
+ columns, end-effector and object poses, wrist and front cameras at 256x256, 50 Hz) and judged by
15
+ the same success test the policy rig uses, so generator and evaluator always agree.
16
+ Four scenes. Main (Piper) and Main-Nero record data. PolicyEval and PolicyEval-Nero run the
17
+ identical task with the arm driven by a trained policy over the External Action Gate instead of
18
+ by the script, on a seeded spawn sequence so two policies meet identical layouts;
19
+ PolicyEval-Nero-Holdout is the same on a second seed for confirming a winner. Tools/ holds the
20
+ session-to-LeRobot exporter (streams, detects the joint list, hardlinks video), the evaluation
21
+ client and runner (which read the robot off a checkpoint's action width and pick the scene), and
22
+ a training-strategy comparison harness.
23
+ The Nero port is the interesting half and its findings are written up in the project README and
24
+ in NeroArm.cs: the arm is turned to face +X because its elbow bends 123 degrees one way and 58
25
+ the other; the jaws slide along the grasp site's X axis where the Piper's slide along Y, a 90
26
+ degree difference in the commanded wrist yaw; LimbIK's Tracking Mode must be on or a redundant
27
+ 7-DoF arm comes back on a different branch and the graph lerps every joint there; a vertical
28
+ tool is only reachable outside r = 0.31 m and below a height that falls with radius; and the
29
+ gripper actuator is named after its joint, because the engine resolves an agent's JointSpec
30
+ entry to an actuator by exact joint name and silently falls back to actuator 0 on a miss.
31
+ NOT INCLUDED, deliberately: the trained policies (198 MB each) and the recorded datasets (a
32
+ single 80k-episode session is 64 GB). Tools/lerobot_export.py plus lerobot-train regenerate a
33
+ policy from a fresh recording; the project README carries the exact commands and the measured
34
+ results (Piper 27/35, Nero 46/49 on 49 seeded layouts).
35
+ ONE THING TO FIX PER MACHINE: ObserverConfig.ColumnSchemaPath is an absolute path stored in the
36
+ recording scenes and will point at someone else's drive. The engine resolves it with a bare
37
+ filesystem check and refuses to record if it is missing, loudly, so it cannot corrupt a dataset -
38
+ but repoint it before recording. Evaluation does not record and needs no change.
39
+ Tags:
40
+ - example
41
+ - robotics
42
+ - pick-and-place
43
+ - data-generation
44
+ - imitation-learning
45
+ - lerobot
46
+ - policy-evaluation
47
+ - external-action-gate
48
+ - piper
49
+ - nero
50
+ - limbik
51
+ Files:
52
+ - 'SimplePick.hproj'
53
+ - 'README.md'
54
+ - 'Assets/Scenes/'
55
+ - 'Assets/Schemas/'
56
+ - 'Assets/Scripts/Client/Source/'
57
+ - 'Assets/ContentVault/'
58
+ - 'Assets/Materials/'
59
+ - 'Assets/Meshes/'
60
+ - 'Assets/EnvMap/'
61
+ - 'Tools/'
SimplePick/thumbnail.png ADDED

Git LFS Details

  • SHA256: 9b4082c8e5a77abca5612cc9f3313199578d32c3e500c11d5eeab36d195c4bdf
  • Pointer size: 130 Bytes
  • Size of remote file: 69.2 kB
index.json CHANGED
@@ -30,6 +30,7 @@
30
  "UnitreeG1FiveFingersHrobot",
31
  "UnitreeG1ThreeFingersHrobot",
32
  "CoffeeMachine",
33
- "Nero"
 
34
  ]
35
  }
 
30
  "UnitreeG1FiveFingersHrobot",
31
  "UnitreeG1ThreeFingersHrobot",
32
  "CoffeeMachine",
33
+ "Nero",
34
+ "SimplePick"
35
  ]
36
  }