Приложение для сортировки лего

Обновлено: 02.05.2024

Изобретатель Дэниел Вест (Daniel West) собрал универсальный LEGO-сортировщик: с помощью подключенного алгоритма компьютерного зрения он может распознать и отсортировать любую когда-либо созданную для конструктора деталь. Сам сортировщик состоит из более десяти тысяч LEGO-деталей, а скорость его работы — примерно полдетали в секунду. Подробности о работе устройства сообщает Engadget.

Из-за обилия самых разных деталей и простоты сборки конструктор LEGO используется для создания многих полезных устройств. Например, из LEGO уже делали принтер, который сканирует изображение и собирает его опять же из LEGO, а также кубики конструктора использовали для создания модульной микрофлюидной установки.

Разумеется, машины для сортировки деталей LEGO (очень полезное приспособление для тех, у кого очень много разных конструкторов в разобранном виде) делают из них же, а первое подобное устройство представили еще в 2012 году: для определения детали в нем используется открытый алгоритм для распознавания изображения, сравнивающий снимок одной детали с существующей у сортировщика базой данных.

Свой сортировщик инженер и изобретатель Дэниел Вест решил сделать чуть умнее и технологически современнее. Вся конструкция состоит из примерно десяти тысяч деталей, снабжена шестью LEGO-моторами и девятью сервоприводами. Детали загружаются на сортирующую ленту, которая затем выбрасывает их на трясущийся желоб: из-за тряски детали не попадают друг на друга и на следующий шаг сортировки попадают по одной.

На следующем шаге сортировки снимается видео деталей — его обрабатывает Raspberry Pi и отправляет далее для анализа на другой компьютер по беспроводной связи. На компьютере заснятые на видео детали анализируются с помощью алгоритма, в основе которого лежит сверточная нейросеть, обученная на трехмерных моделей всех существующих LEGO-деталей. Каждой детали присваивается вероятность принадлежности к какой-либо категории, после чего результат отправляется на сортировочную станцию устройства. Наконец, система, состоящая из нескольких двигающих ворот, направляет деталь в необходимую коробочку. Всего коробочек 18: это больше, чем количество возможных деталей, но для каждой коробочки можно выбрать набор попадающих в нее деталей. Одну деталь устройство может отсортировать примерно за две секунды.

Последние несколько лет я занимался проектированием и изготовлением машины, которая сможет распознавать и сортировать детали LEGO. Важнейшая часть машины — это Capture Unit, небольшое, почти полностью закрытое отделение, в котором есть конвейерная лента, освещение и камера.


Освещение вы увидите чуть ниже.

Камера делает фотографии поступающих по конвейеру деталей LEGO, а затем передаёт изображения по беспроводному каналу на сервер, выполняющий алгоритм искусственного интеллекта для распознавания детали среди тысяч возможных элементов LEGO. Подробнее об ИИ-алгоритме я расскажу в будущих статьях, а эта статья будет посвящена обработке, которая выполняется между «сырым» выводом видео камеры и входом в нейросеть.

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

Конечная цель: перейти от «сырого» видео (слева) к набору изображений одинакового размера (справа) для их передачи в нейросеть. (по сравнению с реальной работой gif замедлен примерно вдвое)

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

Извлечение нужных частей изображения таким образом часто называют распознаванием объектов (object detection). Именно это мне и нужно сделать: распознать наличие объектов, их расположение и размер, чтобы можно было сгенерировать ограничивающие прямоугольники для каждой детали на каждом кадре.

Самое важное — найти хорошие ограничивающие прямоугольники (выше показаны зелёным цветом)

Я рассмотрю три аспекта решения задачи:

  • Подготовка с устранением лишних переменных
  • Создание процесса из простых операций машинного зрения
  • Поддержание достаточной производительности на платформе Raspberry Pi, имеющей ограниченные ресурсы

Устранение лишних переменных

В случае подобных задач перед применением техник машинного зрения лучше всего устранить как можно больше переменных. Например, меня не должны волновать условия окружающей среды, разные положения камеры, потери информации из-за перекрытия одних деталей другими. Конечно, можно (хоть и очень сложно) разрешить все эти переменные программно, но к счастью для меня, эта машина создаётся с нуля. Я сам могу подготовиться к успешному решению, устранив все помехи ещё до того, как начал писать код.

Первый шаг — это жёсткая фиксация положения, угла и фокусировки камеры. С этим всё просто — в системе камера закреплена над конвейером. Не нужно мне волноваться и о помехах от других деталей; нежелательные объекты почти не имеют шанса попасть в capture unit. Немного сложнее, но очень важно обеспечить постоянные условия освещённости. Мне не нужно, чтобы распознаватель объектов ошибочно интерпретировал тень от движущейся по ленте детали как физический объект. К счастью, capture unit очень мал (вся область обзора камеры меньше буханки хлеба), поэтому у меня был более чем достаточный контроль над окружающими условиями.


Capture unit, вид изнутри. Камера находится в верхней трети кадра.

Одно из решений — сделать отсек полностью замкнутым, чтобы никакое освещение снаружи не поступало. Я попробовал такой подход, использовав в качестве источника освещения светодиодные ленты. К сожалению, система оказалась очень капризной — достаточно одной небольшой дырочки в корпусе и свет проникает в отсек, делая невозможным распознавание объектов.

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


Получайте, тени!

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

Распознаватель объектов

YOLO очень крута! Но мне не нужны все её функции.

К счастью, я мог избежать сложного решения на основе ИИ, воспользовавшись «олдскульными» техниками машинного зрения. Первая техника — это вычитание фона (background subtraction), которое пытается выделить все изменившиеся части изображения. В моём случае единственное, что движется в поле зрения камеры — это детали LEGO. (Разумеется, лента тоже движется, но поскольку она имеет однородный цвет, камере она кажется неподвижной). Отделим эти детали LEGO от фона, и половина задачи решена.

Чтобы вычитание фона работало, объекты переднего плана должны значительно отличаться от фона. Детали LEGO имеют широкий диапазон цветов, поэтому мне нужно было очень тщательно выбирать цвет фона, чтобы он был как можно более далёк от цветов LEGO. Именно поэтому лента под камерой изготовлена из бумаги — она не только должна быть очень однородной, но и не может состоять из LEGO, иначе будет иметь цвет одной из деталей, которые мне нужно распознавать! Я выбрал бледно-розовый, но подойдёт и любой другой пастельный цвет, непохожий на обычные цвета LEGO.

В чудесной библиотеке OpenCV уже есть несколько алгоритмов для вычитания фона. Вычитатель фонов MOG2 — самый сложный из них, и при этом он работает невероятно быстро даже на raspberry pi. Однако подача кадров видео напрямую в MOG2 работает не совсем хорошо. Светло-серые и белые фигуры слишком близки к яркости бледного фона и теряются на нём. Мне нужно было придумать способ, чтобы отчётливей отделить ленту от находящихся на ней деталей, приказав вычитателю фона внимательнее смотреть на цвет, а не на яркость. Для этого мне достаточно было увеличить насыщенность изображений перед передачей его в вычитатель фонов. Результаты при этом значительно улучшились.

После вычитания фона мне нужно было использовать морфологические операции, чтобы избавиться от как можно большего количества шума. Для поиска контуров белых областей можно использовать функцию findContours() библиотеки OpenCV. Применив различные эвристики для отклонения контуров, содержащих шум, можно легко преобразовать эти контуры в готовые ограничивающие прямоугольники.

Производительность

Нейронная сеть — прожорливое существо. Для получения наилучших результатов при классификации ей требуются изображения максимального разрешения и в как можно больших количествах. Это значит, что мне нужно снимать их с очень высокой частотой кадров, сохраняя при этом качество и разрешение изображения. Я должен выжать из камеры и GPU Raspberry PI максимум возможного.

В очень подробной документации к picamera написано, что чип камеры V2 может выдавать изображения размером 1280x720 пикселей с максимальной частотой 90 кадров в секунду. Это невероятный объём данных, и хотя камера может его генерировать, это не означает, что с ним справится компьютер. Если бы я обрабатывал сырые 24-битные RGB-изображения, то мне пришлось бы передавать данные со скоростью примерно 237 МБ/с, а это слишком много и для бедного GPU компьютера Pi, и для SDRAM. Даже при использовании ускоренной с помощью GPU компрессии в JPEG частоты 90fps достичь невозможно.

Камера Raspberry Pi способна выводить сырое неотфильтрованное YUV-изображение. Хотя с ним работать сложнее, чем с RGB, у YUV на самом деле есть множество удобных свойств. Самое важное из них заключается в том, что оно хранит всего 12 бит на пиксель (у RGB это 24 бита).


Каждые четыре байта Y имеют один байт U и один байт V, то есть на пиксель приходится 1,5 байта.

Это означает, что по сравнению с RGB-кадрами я могу обрабатывать в два раза больше YUV-кадров, и это ещё не считая дополнительного времени, которое GPU экономит на преобразовании в RGB-изображение.

Однако такой подход накладывает уникальные ограничения на процесс обработки. На большинство операций с полноразмерным кадром видео будет тратиться чрезвычайно много памяти и ресурсов ЦП. В пределах моих строгих временных ограничений невозможно даже декодировать полноэкранный YUV-кадр.

К счастью, мне и не нужно обрабатывать кадр целиком! Для распознавания объектов ограничивающие прямоугольники не обязаны быть точными, достаточно приблизительной точности, поэтому весь процесс распознавания объектов можно выполнять с гораздо меньшим кадром. Операция уменьшения масштаба не обязана учитывать все пиксели полноразмерного кадра, поэтому кадры можно уменьшать очень быстро и без затрат. Затем масштаб получившихся ограничивающих прямоугольников снова увеличивается и используется для вырезания объектов из полноразмерного YUV-кадра. Благодаря этому мне не нужно декодировать или иным образом обрабатывать весь кадр высокого разрешения.


К счастью, благодаря способу хранения этого формата YUV (см. выше) очень легко реализовать быстрые операции обрезки и уменьшения масштаба, работающие непосредственно с форматом YUV. Кроме того, весь процесс без особых проблем можно распараллелить на четыре ядра Pi. Однако я выяснил, что не все ядра используются в полную силу, и это говорит нам, что «бутылочным горлышком» по-прежнему остаётся пропускная способность памяти. Но даже при этом мне удалось на практике достичь 70-80FPS. Более глубокий анализ использования памяти возможно помог бы ещё больше ускорить работу.


Если вам хочется узнать больше о проекте, то прочитайте мою предыдущую статью «Как я создал более 100 тысяч размеченных изображений LEGO для обучения».

Моё детство примерно на 20% состояло из Dungeons & Dragons (D&D) и на 80% — из LEGO. Эти два занятия очень сильно пересекались. Мне, по разным причинам, не разрешали всё время играть в D&D. Но я, привлекая на помощь воображение, и достигнув в этом деле успехов, достойных плута 15 уровня, понял, что создание персонажей AD&D игрой не считается. Воссоздание вселенной DragonLance средствами LEGO очень хорошо помогало мне быть ближе к игре, которая мне очень нравилась.

Поэтому одним из моих любимых направлений в LEGO были замки. Я тратил многие часы, выдумывая подземелья для моих героев. Для того чтобы не терять свои находки, и из-за того, что я видел, как мои друзья в школе чертят карты подземелий, я составлял планы своих LEGO-моделей на миллиметровке. Кроме того, я пытался сохранить и сведения о том, как именно были устроены модели. Использование миллиметровки казалось логичным для изображения того, что, в основном, состояло из прямоугольных блоков. Но меня, в итоге, сгубило недостаточно хорошее понимание правил изометрической проекции.


Теперь, хоть я и стал старше, моя любовь к LEGO не угасла. И хотя я и не могу сказать, что очень уж горжусь своими моделями (их называют MOC-моделями), я почувствовал, что просто должен разобраться с тем, как мне документировать то, что создаю. Я никогда не умел очень уж хорошо рисовать. Поэтому я решил обратиться к компьютеру.

CAD для LEGO

Несколько лет я работал в сфере виртуального 3D-моделирования (а в сфере обычного 3D — и того больше). Я хорошо владею 3D-приложениями, но всё, чем я пользовался, заточено под анимированную графику и под производство фильмов. Все эти программы, как, собственно, и фильмы, рассчитаны на то, чтобы создать красивую картинку. Как именно что-то сделано, до тех пор, пока всё выглядит хорошо, не так уж и важно. Если, ради того, чтобы что-то выглядело бы очень хорошо, нужно «обмануть» законы физики, то это вполне приемлемо, так как это будет существовать только в виртуальном пространстве.

А вот системы автоматизированного проектирования (Computer-Aided Design, CAD), это уже нечто другое. CAD-приложения пришли на смену обычным чертежам. В них создают спецификации, иллюстрирующие то, как нечто может быть создано в реальном мире. От этих программ ждут точности и реализма.

Так как невероятно много людей увлечено LEGO, существует активное сообщество тех, кто создаёт LEGO-модели, используя CAD-программы. Преимущества такого подхода очевидны: можно задокументировать подробные сведения о модели, описать то, какие детали нужны для её создания, и то, как именно их нужно соединить друг с другом. Это, конечно, не замена реальному конструктору LEGO (ну, разве что для тех, кто любит CAD больше, чем LEGO), но это — отличное дополнение к хобби.

Для того чтобы построить виртуальную модель LEGO, нужны две вещи:

  • Виртуальные детали LEGO.
  • CAD-приложение.

Виртуальные детали LEGO

Для того чтобы раздобыть виртуальное представление практически любого из когда-либо созданных строительных блоков для LEGO-моделей, можете воспользоваться опенсорсным ресурсом LDraw. LDraw — это открытый стандарт для цифровых моделей LEGO, который включает в себя возможности по описанию размеров и ориентации элементов. В дополнение к работе по описанию деталей средствами LDraw, силами сообщества подготовлены 3D-модели для каждой детали. Это значит, что все желающие могут загрузить тысячи определений деталей, истратив на это не особенно много трафика.

Установка набора деталей

Виртуальные детали очень похожи на изображения, которые используются на сайтах, или на шрифты, применяемые на компьютере. Собственно говоря, соответствующие файлы можно хранить где угодно. Главное, чтобы приложение, в котором планируется работать с деталями, знало о том, где эти файлы находятся. В Linux LDraw-файлы обычно размещают в папке /usr/share/LDRAW . В Windows это обычно C:\Users\Public\Documents\LDraw .

LDraw даёт в наше распоряжение лишь спецификации для каждой детали. Вот, например, как выглядит код описания кубика 1x1:


Для того чтобы увидеть детали в более привычном облике, понадобится программа для их визуализации.

Приложение LDView для визуализации деталей

LDView — это среда для 3D-рендеринга, напоминающая POV-Ray или Cycles из Blender. Это приложение создано специально для рендеринга .ldr-файлов, то есть — CAD-файлов, содержащих данные в формате LDraw.

Если вы работаете на Linux, то, возможно, вы найдёте LDView в своём репозитории ПО. Если в репозитории этой программы не окажется — вы можете скачать установщик с сайта проекта. Если вы пользуетесь macOS или Windows, то вам, опять же, нужно будет воспользоваться сайтом LDView.

Просмотр отдельной детали

Легче всего начать цифровое конструирование моделей LEGO, попытавшись визуализировать отдельную деталь.

Сначала откройте ваш любимый текстовый редактор. Это может быть любая программа. Главное — чтобы она могла сохранять документы в виде обычного текста. Некоторые текстовые редакторы, в стремлении оказать пользователям добрую услугу, пытаются сохранять текстовые материалы в файлах, в которых, помимо текстов, есть ещё масса служебной информации (вроде .rtf и .doc). Существует множество хороших кросс-платформенных текстовых редакторов. Я, для наших дел, могу порекомендовать довольно-таки минималистичный редактор Geany.

Создадим новый файл с именем 1brick.ldr и введём в него следующий текст:


А теперь взглянем на наше скромное творение:


Только что вы создали простой CAD-файл, описывающий один кубик (а именно — модель номер 3001), цветовой индекс которого равняется 1 (это синий цвет), расположенный в позиции (0, 0, 0) по осям X, Y и Z. Поворот кубика регулируется с использованием средств матричного преобразования. Их применение, надо признать, не относится к простым математическим вычислениям. Правда, при конструировании LEGO-моделей произвольное вращение деталей требуется сравнительно редко, так как большинство деталей стыкуются друг с другом с использованием шипов.

Любая строка в файле, начинающаяся с 0, содержит либо комментарий, либо метаданные. Строка, начинающаяся с 1, содержит описание детали.

Вы можете попрактиковаться в перемещении и вращении деталей, внося изменения в свой CAD-файл. Обычный кубик имеет в высоту 24 LDU (LDraw Units). Это значит, что ставить детали друг на друга можно, меняя их координату Y с шагом в 24 единицы. Поворачивать детали можно, выполняя матричные преобразования.

Взгляните на этот код:


Вот результат его визуализации.


Конечно, перемещать детали можно вдоль любой из трёх осей. В спецификации LDraw сказано, что кубик 1x1 имеет 20 LDU в ширину и 20 LDU в длину. А это значит, что расставлять такие кубики вдоль оси X можно, меняя их позиции с шагом в 20 LDU.


Ещё два кубика

Порядок сборки модели

Чаще всего формат LDraw используется для того чтобы продемонстрировать порядок сборки модели. А это значит, что нужно описать последовательность шагов сборки. В LDraw это делается с использованием метакоманды STEP .

Для того чтобы испытать эту метакоманду, добавьте в свой файл, между описаниями деталей, следующее:


Готовый файл будет выглядеть так:


Теперь в вашем проекте описано два шага. На первом выводится первый кубик, на втором — второй. Можно пошагово просматривать .ldr-файлы, пользуясь клавишами-стрелками в верхней панели инструментов LDView, находящимися около подписи Steps .


Панель инструментов для пошаговой визуализации моделей

На одном шаге необязательно должен выводиться лишь один кубик. Как и в случае с инструкциями к наборам LEGO, установку нескольких деталей можно объединить в один шаг. Главное, чтобы это не повредило понятности инструкции.

В LDraw есть и другие команды. Например — тут можно рисовать линии, поясняющие расположение деталей, и делать прочие подобные вещи. Соответствующие сведения можно найти в спецификации.

Выяснение кодов деталей

Я хранил свою коллекцию LEGO в ящиках для рыболовных принадлежностей. Поэтому я мог быстро найти любую деталь из любого набора. Правда, по мере того, как росла коллекция, мне было нужно всё больше и больше ящиков. А в результате у меня стало уходить больше времени на поиск нужной детали.

Если учесть то, что в LEGO имеется более 11000 уникальных деталей, искать цифровые детали так же сложно, как и обычные. У каждой официальной детали LEGO есть собственный код. Например, тот кубик 2x4, который мы использовали в примере, имеет код 3001. Если вам известен код детали, вы можете просто использовать его в CAD-файле, и соответствующая деталь появится в вашей модели.

В дистрибутиве LDraw имеется файл parts.lst , в котором, с помощью grep, можно найти нужную деталь. Но детали там не всегда описаны по одной и той же схеме. Работая с этим файлом не всегда легко предугадать то, какие именно ключевые слова соответствуют тем или иным деталям. Например — как понять, какое слово, «curved» «sloped» или «angled», лучше всего характеризует некую деталь сложной формы?

Хотя искать детали можно и в parts.lst , в этом деле нам могут помочь некоторые специальные интернет-ресурсы:

    — это пользовательская группа, в которой есть база данных со сведениями о кодах деталей LEGO, построенная на основе сведений, взятых из LDraw. — хороший каталог деталей. — ещё один ресурс, на котором есть каталог деталей.

Другие средства для рендеринга моделей

После того, как вы создали свой шедевр, LDView может экспортировать вашу модель, что позволит вам отрендерить её в высоком качестве. Для этого можно воспользоваться POV-Ray — опенсорсной программой для фотореалистичного рендеринга трёхмерных моделей. В результате плоды ваших трудов можно будет представить в весьма привлекательном виде. Найти POV-Ray можно или в репозитории программ вашего дистрибутива Linux, или на сайте проекта.

Вот пример команды рендеринга:


Ниже показан результат визуализации.


Высококачественная визуализация модели

Если вам нужна программа для формирования инструкций по сборке моделей — попробуйте опенсорсную LPub3D. Эта программа выводит пошаговые инструкции и список деталей, необходимых на каждом шаге.


Исследование мира LEGO

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

Мир любителей LEGO — это приятное и креативное место, которое стоит посетить всем тем, кому нравится создавать цифровые модели, разрабатывать собственные детали, или делать с кубиками LEGO что-то такое, чего никто больше с ними не делает. Если вам нравится LEGO, то сегодня — самый лучший день для того чтобы стать частью LEGO-сообщества!

На детей почему-то в очередной раз нашла волна "собирательства" известного конструктора, и я понял, что пора задуматься о сортировке. Ибо заметил, что метод "вывалил все на пол и ройся, как диснеевский селезень-скупердяй в своем банке", хоть и представляет определенный интерес для маленьких искателей сокровищ, но частично убивает процесс реализации задумки: ребенок долго-долго ищет нужную деталь, в итоге быстрее устает и забывает о первоначальном замысле. К тому же в ящике с Лего нашли свое пристанище и другие подобные конструкторы, не всегда совместимые, а также куча других мелких игрушек и просто мусора.

Итак, изучен интернет, определены основные народные способы сортировки (фотки из интернета):

Бюджетная сортировка Lego LEGO, Сортировка, Длиннопост

В принципе, можно было бы и остановиться, т.к. это один из лучших и самых популярных способов, имеющей кучу плюсов. Главный минус - дорого. Одна такая брендовая штука, как на картинке выше, стоит порядка 4 тысяч рублей. Кроме того, для детей, как кажется, это не оптимальный вариант - ведь им хочется видеть все, т.е. все ячейки кассетницы будут при каждой игре выниматься. Как кажется, это больше вариант уже детей постарше (годков по 30), коллекционеров и вообще увлекающихся этим делом.

2. Ящики с отсеками: боксы для крепежа и бытовые коробочки для мелочевки.

Бюджетная сортировка Lego LEGO, Сортировка, Длиннопост

Бюджетная сортировка Lego LEGO, Сортировка, Длиннопост

Ящики для инструментов хороши, но все еще дороговаты: штука-другая за хороший. Плюс у них нужно откидывать крышку, что будет занимать место в небольшой детской, а нужно нам таких штуки четыре-пять. Бытовые коробочки отмел сразу - маленький объем, неодинаковые и фиксированные размеры отсеков. Ну и крышки открывать нужно у всех.

3. Контейнеры для еды

Бюджетная сортировка Lego LEGO, Сортировка, Длиннопост

Отмел сразу, т.к. никакой оперативности - это чисто хранилище, на мой взгляд.

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

Бюджетная сортировка Lego LEGO, Сортировка, Длиннопост

Достаточно большие ящики, при этом неглубокие. Но без разделителей. Можно, конечно, разделить детальки на пять больших групп, но этого недостаточно. Поэтому в ближайшем магазе типа "все для дома" покупаются дешевые контейнеры (мелкие по 8 руб., покрупнее - по 30 руб.).

Бюджетная сортировка Lego LEGO, Сортировка, Длиннопост

. и запихиваются внутрь выдвижных ящиков. Получается вот так:

Бюджетная сортировка Lego LEGO, Сортировка, Длиннопост

Бюджетная сортировка Lego LEGO, Сортировка, Длиннопост

(тут примерно половина деталек, но все должно влезть)

Итак, задача выполнена:

1. Отсортированы по размерным группам основные классические блоки и типовые мелкие детальки - теперь не надо рыться во всей куче в поисках детальки 2х1, пластины 1х8 или колеса - достаточно заглянуть в коробочку соответствующей группы. Специально не стали сортировать совсем на мелкие группы - ибо у нас не так много деталек, и детям обратно было бы лениво сортировать детальки на кучу отсеков. А так вроде норм. Без сортировки в одном ящике лежит "все остальное", нестандартные детали от наборов: ройся - не хочу, как говорится.

2. Для игры ящики вытаскиваются на пол, в принципе все получается в пределах видимости ребенка. Потом также оперативно убираются обратно - не надо закрывать никакие крышечки.

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

4. На контейнеры потрачено рублей 400. Да, тут я немного схитрил, ибо комод уже был в наличии. А без него ничего бы не получилось.

5. При пополнении коллекции контейнеры перекомпоновать, добавив больших или, наоборот, маленьких.

Дискляймер. В данном случае ключевыми пунктами стали экономия средств и уже имеющийся комод. Многое мне тут не нравится, например, болтающиеся контейнеры в ящичках (неплотно, конечно, сидят), но, в целом, все ключевые моменты были реализованы более-менее успешно, как по мне. Учитывая бюджет, перфекционизму придется потерпеть)). Ну и если деталей больше - такой метод уже может быть неоптимальным.

LEGO Инструкции по сборке 2.4.4. Скриншот 2
LEGO Инструкции по сборке 2.4.4. Скриншот 3
LEGO Инструкции по сборке 2.4.4. Скриншот 4
LEGO Инструкции по сборке 2.4.4. Скриншот 5
LEGO Инструкции по сборке 2.4.4. Скриншот 6
LEGO Инструкции по сборке 2.4.4. Скриншот 7
LEGO Инструкции по сборке 2.4.4. Скриншот 8
LEGO Инструкции по сборке 2.4.4. Скриншот 9

LEGO Инструкции по сборке — это центр для поиска и сохранения электронных инструкций по сборке ваших наборов LEGO.

С инструкциями по сборке LEGO и взрослые, и юные любители сборки смогут:

  • Собирать ряд новых наборов при помощи Instructions PLUS — интерактивного руководства со сборке в 3D.
  • Загрузить инструкции в формате PDF для любого набора начиная с 2015 года.
  • Искать и просматривать наборы LEGO.
  • Сохранять наборы в учетной записи LEGO.

Начните со сканирования QR-кода, который вы найдете на обложке буклета с инструкциями, или найдите свой набор в поиске.

Попробуйте нашу новинку: Instructions PLUS — интерактивное руководство по сборке в 3D, которое проведет вас по всему процессу сборки модели.

Здесь во время сборки вы можете взаимодействовать с моделью, увеличивая ее, поворачивая или делая полупрозрачной.

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

Приложение инструкции по сборке LEGO® пока совсем новое — со временем мы будем добавлять в него наборы, чтобы вы могли расширять свою цифровую коллекцию.

Читайте также: