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, 异常检测, 数控加工, 运动分析, 逆向工具, 音频化