yuncheol-ncdtech commited on
Commit
47eb4a9
ยท
verified ยท
1 Parent(s): 556b89c

Upload README.md

Browse files
Files changed (1) hide show
  1. README.md +45 -33
README.md CHANGED
@@ -6,16 +6,26 @@ tags:
6
  - numpy
7
  - obstacle-avoidance
8
  - simulation
 
 
 
 
9
  pretty_name: Sim Driving MLP (NumPy)
10
  ---
11
 
12
- # Sim Driving MLP โ€” 279-parameter obstacle-avoidance policy (NumPy)
13
 
14
- A deliberately tiny neural network: **4 ultrasonic distances in, one driving command
15
- out.** 279 parameters, float32, trained and verified entirely inside our robot
16
- simulation studio. Small enough to read, small enough to run on an MCU-class device.
17
 
18
- **Trained on simulation data from a virtual map โ€” no real-world or customer data.**
 
 
 
 
 
 
 
 
19
 
20
  ## Architecture
21
 
@@ -24,7 +34,7 @@ simulation studio. Small enough to read, small enough to run on an MCU-class dev
24
  | part | meaning |
25
  |------|---------|
26
  | input (4) | ultrasonic distances: **F**ront, **L**eft, **R**ight, **B**ack (normalized with the included `norm_mean` / `norm_std`) |
27
- | output (5 + 1) | 5 command logits โ€” `FWD / LEFT / RIGHT / STOP / BACK` โ€” plus 1 turning-angle regression head |
28
 
29
  ## Metrics (validation, virtual map)
30
 
@@ -33,8 +43,8 @@ simulation studio. Small enough to read, small enough to run on an MCU-class dev
33
  | command accuracy | **97.2 %** (best epoch 529 / 572) |
34
  | turning-angle MAE | ~6.9ยฐ |
35
 
36
- The `.npz` also embeds `meta_json`: the full 572-epoch training history
37
- (per-class accuracy, loss, angle MAE per epoch), so the training curve is inspectable.
38
  The plot below is drawn directly from that embedded history:
39
 
40
  ![Training history](assets/02_training_curve.png)
@@ -59,27 +69,25 @@ print(cmd, angle)
59
 
60
  ## The simulator and the target robot
61
 
62
- The studio stage where the model's four inputs are defined: ultrasonic sensors
63
- F/L/R/B with datasheet-based noise models, checked by the built-in self QA/QC
64
- checklist. On the right, the local LLM explains a warning from that checklist,
65
- citing the stage report as its basis. This screen is a frame from our
66
- [demo video (22 min, Korean)](https://youtu.be/ftsw_vbfw6E).
67
 
68
  ![Sensor definition stage in the simulation studio](assets/05_sim_studio_sensors.png)
69
 
70
- A driving run on the 8 m ร— 8 m virtual map used for data collection
71
- (green: ultrasonic rays from the robot):
72
 
73
  ![Driving run on the virtual map](assets/06_virtual_map_run.png)
74
 
75
- And this exact model running in the studio's 3D evaluation stage. The left panel
76
- shows the live inference at the current step: the four sensor inputs (F/L/R/B, mm),
77
- the softmax over the five commands with FORWARD selected, and the angle head:
78
 
79
  ![The model driving in the 3D evaluation stage, with live inference panel](assets/07_nn_eval_3d.png)
80
 
81
- The target hardware: a tracked test robot with the ultrasonic sensors mounted on
82
- the hand, the same F-channel placement the simulator reproduces.
83
 
84
  ![Tracked test robot with hand-mounted ultrasonic sensors](assets/04_real_robot.jpg)
85
 
@@ -87,25 +95,29 @@ the hand, the same F-channel placement the simulator reproduces.
87
 
88
  ![NCDTech 4-layer stack](assets/03_four_layer_stack.png)
89
 
90
- *(Diagram is in Korean; it is the same figure used on our website, demo video, and
91
- companion dataset.)*
92
 
93
- This model is a **layer-2 artifact** of our stack โ€” an edge neural network verified
94
- through the 8-stage physics simulation workflow of our robot simulation studio.
95
- Every stage of that workflow runs self QA/QC (layer 3) and reports through an
96
- on-premise conversational LLM (layer 4); the record formats those layers produce
97
- are shown in our companion dataset:
98
  [NCDTech/human-gated-qaqc-knowledge-example](https://huggingface.co/datasets/NCDTech/human-gated-qaqc-knowledge-example)
99
 
100
  ## ํ•œ๊ตญ์–ด
101
 
102
- **์ดˆ์ŒํŒŒ 4๋ฐฉํ–ฅ ๊ฑฐ๋ฆฌ(์ „ยท์ขŒยท์šฐยทํ›„)๋ฅผ ๋„ฃ์œผ๋ฉด ์ฃผํ–‰ ๋ช…๋ น์ด ๋‚˜์˜ค๋Š” 279 ํŒŒ๋ผ๋ฏธํ„ฐ์งœ๋ฆฌ ์ž‘์€
103
- ์‹ ๊ฒฝ๋ง**์ž…๋‹ˆ๋‹ค. ์ €ํฌ ๋กœ๋ด‡ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์ŠคํŠœ๋””์˜ค์˜ 8๋‹จ๊ณ„ ์›Œํฌํ”Œ๋กœ(๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ โ†’ ํ•™์Šต โ†’
104
- ํ‰๊ฐ€ โ†’ ๋ฌผ๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ฒ€์ฆ)๋ฅผ ํ†ต๊ณผํ•œ ๊ณ„์ธต 2(์—ฃ์ง€ ์‹ ๊ฒฝ๋ง) ์‚ฐ์ถœ๋ฌผ์ด๋ฉฐ, **๊ฐ€์ƒ ๋งต
105
- ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ฐ์ดํ„ฐ๋กœ๋งŒ ํ•™์Šต**ํ–ˆ์Šต๋‹ˆ๋‹ค โ€” ์‹ค๋ฐ์ดํ„ฐยท๊ณ ๊ฐ ๋ฐ์ดํ„ฐ ์—†์Œ.
 
 
 
106
 
107
  ์ถœ๋ ฅ์€ ์ฃผํ–‰ ๋ช…๋ น 5ํด๋ž˜์Šค(์ „์ง„/์ขŒํšŒ์ „/์šฐํšŒ์ „/์ •์ง€/ํ›„์ง„) + ํšŒ์ „๊ฐ ํšŒ๊ท€ 1๊ฐœ.
108
- ๊ฒ€์ฆ ์ •ํ™•๋„ 97.2 %, ๊ฐ๋„ ์˜ค์ฐจ ์•ฝ 6.9ยฐ. ํŒŒ์ผ ์•ˆ์— ์ •๊ทœํ™” ํ†ต๊ณ„์™€ 572 ์—ํฌํฌ ํ•™์Šต
109
- ์ด๋ ฅ ์ „์ฒด๊ฐ€ ํ•จ๊ป˜ ๋“ค์–ด ์žˆ์–ด ํ•™์Šต ๊ณก์„ ์„ ๊ทธ๋Œ€๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
 
 
110
 
111
  Learn more: https://huggingface.co/NCDTech ยท https://www.ncdtech.org ยท Demo video: https://youtu.be/ftsw_vbfw6E
 
6
  - numpy
7
  - obstacle-avoidance
8
  - simulation
9
+ - edge
10
+ - embedded
11
+ - industrial
12
+ - sensor-data
13
  pretty_name: Sim Driving MLP (NumPy)
14
  ---
15
 
16
+ # Sim Driving MLP: a 270-parameter obstacle-avoidance policy (NumPy)
17
 
18
+ **270 learnable parameters ยท 1.05 KB of weights ยท 0.0103 ms per inference ยท 1.95 KB peak inference memory ยท numpy only, no framework.**
 
 
19
 
20
+ Inference numbers measured on a 12th-gen i7 laptop CPU, average over 100,000 runs.
21
+
22
+ (An earlier revision of this card said 279 parameters. That count included the file's normalization and metadata arrays. The learnable weight and bias count is 270.)
23
+
24
+ A deliberately tiny neural network: **4 ultrasonic distances in, one driving command out.**
25
+
26
+ Small enough to read, small enough to run on an MCU-class device.
27
+
28
+ **Trained on simulation data from a virtual map. No real-world or customer data.**
29
 
30
  ## Architecture
31
 
 
34
  | part | meaning |
35
  |------|---------|
36
  | input (4) | ultrasonic distances: **F**ront, **L**eft, **R**ight, **B**ack (normalized with the included `norm_mean` / `norm_std`) |
37
+ | output (5 + 1) | 5 command logits (`FWD / LEFT / RIGHT / STOP / BACK`) plus 1 turning-angle regression head |
38
 
39
  ## Metrics (validation, virtual map)
40
 
 
43
  | command accuracy | **97.2 %** (best epoch 529 / 572) |
44
  | turning-angle MAE | ~6.9ยฐ |
45
 
46
+ The `.npz` also embeds `meta_json`: the full 572-epoch training history (per-class accuracy, loss, angle MAE per epoch), so the training curve is inspectable.
47
+
48
  The plot below is drawn directly from that embedded history:
49
 
50
  ![Training history](assets/02_training_curve.png)
 
69
 
70
  ## The simulator and the target robot
71
 
72
+ The studio stage where the model's four inputs are defined: ultrasonic sensors F/L/R/B with datasheet-based noise models, checked by the built-in self QA/QC checklist.
73
+
74
+ On the right, the local LLM explains a warning from that checklist, citing the stage report as its basis.
75
+
76
+ This screen is a frame from our [demo video (22 min, Korean)](https://youtu.be/ftsw_vbfw6E).
77
 
78
  ![Sensor definition stage in the simulation studio](assets/05_sim_studio_sensors.png)
79
 
80
+ A driving run on the 8 m ร— 8 m virtual map used for data collection (green: ultrasonic rays from the robot):
 
81
 
82
  ![Driving run on the virtual map](assets/06_virtual_map_run.png)
83
 
84
+ And this exact model running in the studio's 3D evaluation stage.
85
+
86
+ The left panel shows the live inference at the current step: the four sensor inputs (F/L/R/B, mm), the softmax over the five commands with FORWARD selected, and the angle head:
87
 
88
  ![The model driving in the 3D evaluation stage, with live inference panel](assets/07_nn_eval_3d.png)
89
 
90
+ The target hardware: a tracked test robot with the ultrasonic sensors mounted on the hand, the same F-channel placement the simulator reproduces.
 
91
 
92
  ![Tracked test robot with hand-mounted ultrasonic sensors](assets/04_real_robot.jpg)
93
 
 
95
 
96
  ![NCDTech 4-layer stack](assets/03_four_layer_stack.png)
97
 
98
+ *(Diagram is in Korean; it is the same figure used on our website, demo video, and companion dataset.)*
 
99
 
100
+ This model is a **layer-2 artifact** of our stack: an edge neural network verified through the 8-stage physics simulation workflow of our robot simulation studio.
101
+
102
+ Every stage of that workflow runs self QA/QC (layer 3) and reports through an on-premise conversational LLM (layer 4).
103
+
104
+ The record formats those layers produce are shown in our companion dataset:
105
  [NCDTech/human-gated-qaqc-knowledge-example](https://huggingface.co/datasets/NCDTech/human-gated-qaqc-knowledge-example)
106
 
107
  ## ํ•œ๊ตญ์–ด
108
 
109
+ **์ดˆ์ŒํŒŒ 4๋ฐฉํ–ฅ ๊ฑฐ๋ฆฌ(์ „ยท์ขŒยท์šฐยทํ›„)๋ฅผ ๋„ฃ์œผ๋ฉด ์ฃผํ–‰ ๋ช…๋ น์ด ๋‚˜์˜ค๋Š” 270 ํŒŒ๋ผ๋ฏธํ„ฐ์งœ๋ฆฌ ์ž‘์€ ์‹ ๊ฒฝ๋ง**์ž…๋‹ˆ๋‹ค.
110
+
111
+ ์ถ”๋ก  1ํšŒ 0.0103 ms, ์ถ”๋ก  ๋ฉ”๋ชจ๋ฆฌ 1.95 KB, ์˜์กด์„ฑ์€ numpy ํ•˜๋‚˜ (12์„ธ๋Œ€ i7 ๋…ธํŠธ๋ถ CPU์—์„œ 10๋งŒ ํšŒ ํ‰๊ท  ์‹ค์ธก).
112
+
113
+ (์ด์ „ ํŒ์˜ "279 ํŒŒ๋ผ๋ฏธํ„ฐ"๋Š” ์ •๊ทœํ™”ยท๋ฉ”ํƒ€ ๋ฐฐ์—ด๊นŒ์ง€ ์„ผ ์ˆ˜์น˜์˜€๊ณ , ํ•™์Šต ๊ฐ€์ค‘์น˜ ๊ธฐ์ค€ ์ •ํ™•ํ•œ ์ˆ˜๋Š” 270์ž…๋‹ˆ๋‹ค.)
114
+
115
+ ์ €ํฌ ๋กœ๋ด‡ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์ŠคํŠœ๋””์˜ค์˜ 8๋‹จ๊ณ„ ์›Œํฌํ”Œ๋กœ(๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ โ†’ ํ•™์Šต โ†’ ํ‰๊ฐ€ โ†’ ๋ฌผ๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ฒ€์ฆ)๋ฅผ ํ†ต๊ณผํ•œ ๊ณ„์ธต 2(์—ฃ์ง€ ์‹ ๊ฒฝ๋ง) ์‚ฐ์ถœ๋ฌผ์ด๋ฉฐ, **๊ฐ€์ƒ ๋งต ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ฐ์ดํ„ฐ๋กœ๋งŒ ํ•™์Šต**ํ–ˆ์Šต๋‹ˆ๋‹ค (์‹ค๋ฐ์ดํ„ฐยท๊ณ ๊ฐ ๋ฐ์ดํ„ฐ ์—†์Œ).
116
 
117
  ์ถœ๋ ฅ์€ ์ฃผํ–‰ ๋ช…๋ น 5ํด๋ž˜์Šค(์ „์ง„/์ขŒํšŒ์ „/์šฐํšŒ์ „/์ •์ง€/ํ›„์ง„) + ํšŒ์ „๊ฐ ํšŒ๊ท€ 1๊ฐœ.
118
+
119
+ ๊ฒ€์ฆ ์ •ํ™•๋„ 97.2 %, ๊ฐ๋„ ์˜ค์ฐจ ์•ฝ 6.9ยฐ.
120
+
121
+ ํŒŒ์ผ ์•ˆ์— ์ •๊ทœํ™” ํ†ต๊ณ„์™€ 572 ์—ํฌํฌ ํ•™์Šต ์ด๋ ฅ ์ „์ฒด๊ฐ€ ํ•จ๊ป˜ ๋“ค์–ด ์žˆ์–ด ํ•™์Šต ๊ณก์„ ์„ ๊ทธ๋Œ€๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
122
 
123
  Learn more: https://huggingface.co/NCDTech ยท https://www.ncdtech.org ยท Demo video: https://youtu.be/ftsw_vbfw6E