Robotics
ESP32 + zenoh-pico で基板の遠隔デバッグプローブを作る
CAN バスタップ・UART タップ・リセット線制御を ESP32 に載せ、zenoh-pico で無線公開する。対象基板の FW を変更せずにバス健全性・hardfault ログ・遠隔再起動が手に入る
要点: ESP32 (TWAI ペリフェラル + WiFi) に zenoh-pico を載せると、対象基板の FW 無改修で CAN バス監視・UART ログ回収・遠隔リセットができるデバッグプローブになる。
zenoh-pico
- MCU 向けの軽量 zenoh クライアント (C 実装)
- ESP-IDF / FreeRTOS / Zephyr / Arduino で動く
- pub / sub / queryable が使える。router 機能は無い (クライアント専用)
- WiFi / Ethernet で zenoh router に接続する
プローブが FW 無改修で取れるもの
| 機能 | 実装 | zenoh 上の公開 |
|---|---|---|
| CAN バスタップ | TWAI を listen-only モード | probe/{board}/can/frames |
| バスエラー計数 | TWAI のエラーカウンタ読み出し | probe/{board}/can/errors |
| UART ログ回収 | 基板のデバッグ UART を RX | probe/{board}/uart (hardfault 時の printf がそのまま出る) |
| リブート検出 | 特定 ID の CAN 沈黙 + 復帰パターン | probe/{board}/alive |
| 遠隔リセット / 焼き直し | GPIO でリセット線・BOOT 線を制御 | queryable probe/{board}/reset |
| 電源計測 | INA226 (I2C) を追加 | probe/{board}/power (電圧・電流) |
ゲートウェイ構成
CAN しか持たない基板群を zenoh 面に出す:
基板 (CAN) ──CAN──┐
基板 UART ────────┤── ESP32 プローブ (zenoh-pico, WiFi)
リセット線 ────────┘ │
▼
zenoh router (ホスト PC)
│
zenoh-bridge-ros2dds ───┤ (ROS 2 グラフを同じ面に)
▼
観測系 (watchdog / エージェント / WebUI)基板 FW を後から拡張する場合も、診断フレームを CAN に足すだけでプローブが zenoh に中継する。FW 側に netifaces は要らない。
制約
- WiFi のジッタがあるためデバッグ・観測用途限定。制御ループには使わない
- zenoh-pico は router を持たないので、ホスト側に zenoh router (zenohd) が必要
- TWAI は CAN 2.0 まで。CAN-FD バスのタップには外付けコントローラ (MCP2518FD 等) が要る
関連
- [[runtime-verification-layers]] — プローブの情報を食わせる監視の設計
最終更新: