Robot Rabbit #119

translated from Russian
#119

Took a deep breath and switched completely to nats. This gave me:

  • ditched webrtc (that was a huge chunk)

  • no more signaling server for webrtc

  • ros2 is gone (lots of code)

  • weird build scripts for running ros2 in docker and locally are gone

  • now the client uses websocket and nats

  • access to all topics on the client

  • no custom message building

  • video is sent as frames in separate messages

  • everything works great in docker and gets monitored with standard tools like prometheus and influxdb

  • robot nodes can be in any language including typescript

  • codebase is much smaller now, no weird autogenerated files, everything is clean and tidy

  • dropping ros2 was the best decision

  • almost all libraries for image processing, slam and navigation are available as libraries and not tied to ros2 so it won't block using them

  • downside — had to drop foxglove, but I think I'll try to write a bridge for it