Merancang Arsitektur Telekontrol IoT Berlatensi Rendah
Catatan teknis seputar pertimbangan protokol biner, WebSocket backpressure, dan optimasi buffer frame pada telecontrol sistem robotika.
Dalam sistem telekontrol robotika jarak jauh, latensi bukan sekadar angka performa, melainkan batas antara kendali yang presisi dan tabrakan fisik.
Mengapa JSON Kurang Cocok untuk Stream Telemetri Tinggi?
Pada sistem monitoring biasa, payload JSON berukuran beberapa kilobyte dapat diterima. Namun ketika aktuator membutuhkan 50–100 paket status per detik, overhead serialisasi string JSON dan parsing UTF-8 di CPU mikrokontroler mulai menjadi bottleneck signifikan.
// Contoh perbandingan packing payload biner vs JSON
// JSON (~128 bytes)
{"dev_id": 42, "ts": 1740000000, "axes": [12.4, -4.2, 98.1], "status": 1}
// Protocol Buffers / Packed Binary (24 bytes)
// 0x2A 0x67 0x7E 0x90 0x00 ... (81% reduksi bandwidth)
Menangani Backpressure pada Jaringan Seluler
Koneksi seluler di lapangan kerap mengalami jitter. Ketika bandwidth tiba-tiba turun, buffer WebSocket di client tidak boleh menumpuk frame lama (stale frames).
Strategi yang kami terapkan pada Tesseract:
- Drop stale control signals: Jika perintah kemudi tertunda >150ms di queue pengirim, drop dan gantikan dengan state terbaru.
- Heartbeat Fail-safe: Bila paket telemetri terputus selama >500ms, firmware edge otomatis masuk ke safe-idle mode.
- Decoupled Render Loop: Rendering canvas pada browser dijalankan pada
requestAnimationFrameterpisah dari event stream WebSocket.
Desain yang tenang dan minim kompromi adalah kunci keandalan instrumen kritis.