Делали в кладовой ремонт, из-за этого немного поменялось местоположение базы робота-пылесоса. Обычной функции "задать точку новой базы на карте" в приложении нет. Робот после включения отображал сам себя в старой точке. Я в режиме ручного управления привёл его в нужную комнату (так и знал, что годы обучения поездкам на радиоуправляемой машинке не зря!). Так вот он мне, пока ехал, стал лидаром рисовать новую квартиру поверх старой со смещением.
Тогда я нагуглил алгоритм обновления базы, он довольно забавный:
1. Привести робота в комнату, которую он знает, и дать ему убрать. Тогда он себя верно определит в этой комнате (кстати круто работает, неужели по форме стен и стоящих у стен предметов?)
2. Привести его в точку новой базы вручную или с помощью команды "ехать в заданную точку на карте". Он не знает пока ещё, что там база, но положение своё уже понимает.
3. Отправить его на базу. Он поедет в точку старой базы, где она когда-то была. И начнёт её искать, очень мило выглядит :)
4. Не найдя базу, станет спрашивать по своим датчикам, а где же всё-таки база, и, наконец, увидит новую и поедет к ней. Профит. Малютка-робот нашёл свой дом.
#gadgets
#go#docker#golang#media_streaming#remote_control#remote_desktop#self_hosted#virtual_browser#vue#webrtc
Neko is a self-hosted virtual browser that runs inside a Docker container and streams via WebRTC, letting you securely and privately access a full browser or desktop environment from anywhere. It supports multiple users at once, making it great for team collaboration, shared browsing, watch parties, and interactive presentations. You can run various browsers like Firefox, Chrome, or Tor, and even other Linux apps. Neko keeps your data safe by isolating the browser environment, avoids leaving traces on your device, and supports smooth video and audio streaming. This gives you flexible, secure, and private web access with easy sharing and real-time interaction.
https://github.com/m1k1o/neko
#cplusplus#c_plus_plus#cpp#datachannel#libdatachannel#libnice#p2p#peer_to_peer#peerconnection#rfc_8831#rfc_8834#rtcdatachannel#rtcpeerconnection#sctp#webrtc#webrtc_datachannel#webrtc_video#websocket
libdatachannel is a lightweight, easy-to-use C/C++ library that lets you add real-time peer-to-peer data, media, and WebSocket communication to your apps across many platforms like Linux, Windows, macOS, Android, and iOS. It simplifies WebRTC by providing a smaller, simpler alternative to Google's library, with compatibility for browsers like Firefox and Chrome. You can use it to connect native apps directly to web browsers with minimal dependencies, supporting secure connections via GnuTLS, Mbed TLS, or OpenSSL. It also supports compiling to WebAssembly for browser use, making it flexible for cross-platform real-time communication development[1][4]. This helps you build fast, efficient apps for video, audio, or data sharing without heavy libraries.
https://github.com/paullouisageneau/libdatachannel