1000 Килоботов делают шаблоны


Самоорганизовываемые стаи завораживают. Если вы устали от просмотра муравьев или термитов делать свое дело, теперь вы можете наблюдать рой 1000 крошечных роботов решений формы без кого-либо, имеющих общий контроль. 

Мы уже покрывали роботов Kilobot и раньше, но это первый раз, когда они достигли цели, подразумеваемой в их имени — т.е. рой 1000 роботов. Килоботы маленькие и очень простые. Они двигаются с помощью вибрации, направляется через три небольшие проволочные ноги. Это дешево, но это означает, что роботы движутся сравнительно медленно, и это объясняет долгое время, необходимое для роя, чтобы построить целевую форму. 

Килоботы могут в основном двигаться в том или иной стороне, общаться с соседями и чувствовать соседей. Именно способность чувствовать соседей дает Килоботу способность самоохохохоняться. 

Взгляните на следующее видео, сделанное Гарвардской самоорганизовывющейся исследовательской группой систем: 

Что более интересно, чем просто видеть роботов форме, как они это делают. 

Наиболее важным моментом является то, что все роботы получают ту же программу, и все же в конечном итоге в разных частях формы. Сначала это кажется довольно волшебным, но когда вы начинаете думать об этом это то, что все клеточные автоматы зависят от. Например, каждая ячейка в игре Life запускает ту же программу, но некоторые клетки включаются, а некоторые выключаются. Если правила связаны с состоянием соседа, то одна и та же программа, работа на всех Килоботах, может производить различное поведение в каждом Килоботе. 

Алгоритм довольно умный. Четыре семенных робота находятся рядом с первоначальным рой. Они служат для создания координируемой системы, что каждый робот может использовать, т.е. роботы позиционируют себя по отношению к семенным роботам. Семенные роботы являются единственными роботами, которые имеют различные программы, и они просто остаются там, где они ставятся.  

Один из семенных роботов также посылает сообщение «градиент» нуля, который используется, чтобы дать всем роботам ощущение того, где они находятся в рое.  Все роботы устанавливают свой градиент на один больше, чем наименьшее значение градиента, что их соседи передают. Например, роботы, близкие к семени, имеют градиент 1, роботы, близкие к градиенту 1, присваивают себе градиент 2 и так далее. 

Все остальные роботы получают ту же программу, которая содержит картину формы роботы пытаются построить как bitmap. Только роботы на краю роя начинают двигаться в новое положение. Роботы знают, что они находятся на краю, потому что они имеют градиент значение больше, чем любой из их соседей. Если у робота есть соседи, которые имеют такое же значение градиента, то локально уникальный идентификационный номер используется, чтобы разорвать связь и один из максимально удаленных роботов начинает двигаться, следуя по краю группы по часовой стрелке.

В конце концов он сталкивается с тремя роботами, которые знают, где они находятся в координируемой системе или семенных роботов. В любом случае он может использовать эту информацию, чтобы выяснить, где она находится в координируемой системе и, следовательно, если она находится внутри желаемой формы или нет. Затем он продолжает следовать за краем, пока либо он не выходит из формы или он сталкивается с роботом, который уже остановился и имеет градиентное значение больше, чем его собственные — в любом случае он останавливается.  

Как весь процесс останавливается зависит от того, сколько роботов Есть и размер формы. Если Есть не хватает роботов, то все они останавливаются, но форма является неполной. Если есть только правильный номер, то все они останавливаются, и форма завершена. Слишком много роботов и форма завершена, но некоторые роботы продолжают кружить края пытаются найти место, а некоторые никогда не двигаться от своего первоначального местоположения.

Есть много мелких деталей, опущенных из этого счета алгоритма, но это необходимый план. В результате того, как градиенты используются в качестве стартовых и останавливаных условий, форма, как правило, строится в слоях постоянного расстояния от семенных роботов.

Теперь еще раз взглянуть на видео и увидеть все это в действии.  

Я надеюсь, что это делает гораздо больше смысла сейчас!

Алгоритм основан на морфогенных градиентах и похож на геометрию «травяного огня», изобретенную Гарри Блюмом в 1967 году. В этом клеточном автомате есть правила, которые зависят от глубинного поля, т.е. их кратчайшее расстояние до края формы.  


Добавить комментарий