Вздохнул свежим воздухом и перешел полностью на nats. Это мне дало:
выкинул webrtc (это прям гигантский кусок)
сигналинг сервер для webrtc
ros2 (куча кода)
странные билд скрипты для того чтобы запускать ros2 в докере и локально
на клиенте теперь websocket и nats
доступ ко всем топикам на клиенте
отсутствие сборки кастомных сообщений
видео передаются как кадры отдельными сообщениями
все отлично работает в докере и мониторится стандартными средствами типо prometheus и influxdb
узлы робота на любом языке в том числе typescript
кода стало в разы меньше, нет непонятных автосгенерированных файлов, все чистенько и аккуратно
выкинуть ros2 стало лучшим решением
почти все библиотеки обработки изображений, slam и навигации доступны как библиотеки и не привязаны к ros2 что не будет блогером их использования
из минусов пришлось отказаться от foxglove, но я думаю что попробу написать для него bridge