takerukondo/robot-sawdust-radio
GitHub: takerukondo/robot-sawdust-radio
该工具离线解析 G-code 程序中的运动特征,通过规则标记进给、加速度和加加速度异常,并将结果映射为音频和带时间戳的 ASCII 条带以辅助直觉判断。
Stars: 0 | Forks: 0
# robot-sawdust-radio
我希望在我知道如何描述刀轨故障之前,就能听出它的不对劲。
`robot-sawdust-radio` 读取一个小型 G-code 程序,推导运动特征,标记明确的进给/加速度/加加速度规则,并将结果映射到 WAV 文件和带有时间戳的 ASCII 条带。它完全离线工作,且绝不假装生成的声音是机器的物理录音。
```
normal: ............................................................
spike: ........................................###.................
3.703 s, line 12
```
[收听这段四秒钟的合成尖峰声](samples/demo_spike.wav) 或重现它:
```
python -m venv .venv
source .venv/bin/activate
python -m pip install -e ".[dev]"
rsr watch fixtures/gcode/demo_spike.gcode \
--out demo.wav \
--json anomalies.json
```
包含了一个阴性对照:
```
rsr watch fixtures/gcode/clean_cut.gcode --ascii-only
pytest -q
```
## 声音的含义
解析器追踪 `G0`/`G1` 移动以及设定的进给速率。通过段时间计算出简单的加速度和加加速度代理指标。规则会标记突变情况,而声音合成器会在这些时间戳周围加入刺耳的高频波段。JSON 输出依然是事实依据;音频只是一种辅助吸引注意力的工具。
这种分离是刻意为之。早期一个更具趣味性的方向有可能会演变成没有故障定义的“G-code 音乐”。而在这里,每一个可听到的警报都可以追溯到一条命名规则、源代码行、时间戳以及数值原因。
## 需要了解的局限性
- 解析器忽略了大多数 G/M 代码字和控制器方言。
- 加速度和加加速度是根据编程的移动推断出来的,而不是由编码器或麦克风测量得到的。
- 默认阈值是针对合成测试夹具调校的。
- 它不对控制器前瞻、机器动力学、碰撞或刀具负载进行建模。
- 这不是一套工业安全系统。
## 研究背景
我于 2024 年 5 月至 2025 年 1 月在 SCI-Arc Research 担任研究助理。这个独立的实现受到了 [Construction Innovation: AI and Robotic Fabrication](http://research.sciarc.edu/projects/10-construction-innovation-ai-and-robotic-fabrication) 中关于材料效率和机器人制造问题的启发,该书归功于 Casey Rehm、Masha Hupalo、Carolina Silva Garcia 和 Julia Pike。此处不包含任何研究图像、合作方刀轨或机器数据。请参阅 [ATTRIBUTION.md](ATTRIBUTION.md) 和 [PROVENANCE.md](PROVENANCE.md)。
MIT — 请参阅 [LICENSE](LICENSE)。
标签:G-code, 异常检测, 数控加工, 运动分析, 逆向工具, 音频化