От тепер прям можна їздити (гоняти собак)
Переніс керування з веб сокета (і релея на cloudflare) на WebRTC Data Channel.
Команди керування з браузеру приходять на raspberry на машині, звідти по UDP на esp32 і далі на пульт.
Це сильно зрізало пінг, бо релей + websocket давали оверхед.
Тепер на 4g маю пінг на керування у ~200мс, що дає можливість їхати спокійно, не зупиняючись.
Якщо браузер у одній мережі з машиною, то пінг взагалі 2-4мс бо по WebRTC вони комунікують напряму в межах локальної мережі.
Але все одно пакети можуть приходити з затримкою, тому щоб не було запинок, додав згладжування керування експоненційним згладжуванням та обмежувач швидкості зміни сигналу щоб не було стрибків. І фейл сейф щоб машина їхала навіть коли розрив між пакетами більший ніж очікується, але коли значно більший по часу, то переключається на нейтралку.
Також допомогло рознести задачі між ядрами esp: зчитування udp сокету на одному ядрі, цикл керування на іншому.
Post #1197
1.37K
- 🔥 38
- ❤ 5
- 😁 2
- 😍 1