Делали в кладовой ремонт, из-за этого немного поменялось местоположение базы робота-пылесоса. Обычной функции "задать точку новой базы на карте" в приложении нет. Робот после включения отображал сам себя в старой точке. Я в режиме ручного управления привёл его в нужную комнату (так и знал, что годы обучения поездкам на радиоуправляемой машинке не зря!). Так вот он мне, пока ехал, стал лидаром рисовать новую квартиру поверх старой со смещением.
Тогда я нагуглил алгоритм обновления базы, он довольно забавный:
1. Привести робота в комнату, которую он знает, и дать ему убрать. Тогда он себя верно определит в этой комнате (кстати круто работает, неужели по форме стен и стоящих у стен предметов?)
2. Привести его в точку новой базы вручную или с помощью команды "ехать в заданную точку на карте". Он не знает пока ещё, что там база, но положение своё уже понимает.
3. Отправить его на базу. Он поедет в точку старой базы, где она когда-то была. И начнёт её искать, очень мило выглядит :)
4. Не найдя базу, станет спрашивать по своим датчикам, а где же всё-таки база, и, наконец, увидит новую и поедет к ней. Профит. Малютка-робот нашёл свой дом.
#gadgets
#go#blob_storage#cloud_drive#distributed_file_system#distributed_storage#distributed_systems#erasure_coding#fuse#hadoop_hdfs#hdfs#kubernetes#object_storage#posix#replication#s3#s3_storage#seaweedfs#tiered_file_system
SeaweedFS is a fast, simple, and highly scalable distributed file system designed to store billions of files and serve them quickly, especially small files. It uses a master server to manage volumes on volume servers, which handle file data and metadata, enabling very fast file access with minimal disk reads. It supports features like replication, erasure coding, cloud integration for elastic storage, and compatibility with many metadata stores and APIs including Amazon S3. This means you get efficient, cost-effective storage with fast access, easy scaling, and flexible deployment options for large-scale file storage needs.
https://github.com/seaweedfs/seaweedfs