Замер сложных помещений, если нет миллиона на тахеометр

77a99737614d444e092278846060094b.jpg

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

84abb0a0eb9caccb2a386489727a63ce.png

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

83580b0ee08e3cfbc145b76ed9af1c1c.jpg

Чтобы этого избежать, нужна независимая система отчёта, подумалось мне, и что можно в центр (не обязательно) комнаты поставить обычную электронную рулетку и лучами измерить расстояния до всех точек по кругу. В теории, такое множество точек неизбежно сложится в единственно возможный замкнутый контур. Чтобы это проверить, я сделал модель в Blender и через Cura напечатал на домашнем 3D-принтере поворотную платформу, в которой зажатая обычная электронная рулетка (точка замера совпадает с осью вращения, конечно) поворачивается с шагом в 5 градусов (в среднем слое подпружиненный стопор и звезда с зубьями на 5 градусов) и замеряет расстояние до стены. Снизу три стальные опоры (акустические виброразвязки), чтобы можно было скорректировать уровень наклона платформы.

e2862636366ea130404936fe8791987e.jpg256dc9313bc5f05d2895dbc9b3f11753.jpg

Из этих измерений по блютуз получается текстовый файл такого вида — 0.205m 0.311m 0.389m и так далее (71 число на полный оборот платформы).

Дело оставалось за малым — в Python я написал, как смог, код, который читает такой ряд, игнорируя буквы и пробелы и строит в 2D пространстве весь контур помещения. Пришлось немного поплясать с тригонометрией, т.к. каждый следующий отрезок должен откладываться от центра с поворотом на +5 градусов, поэтому координаты второй точки пришлось выразить через коррекцию измерения по Х (косинус 5*i градусов в радианах), и по Y, соответственно через синус.

3f35f1ab8ea32b12e9868fe0a5f751dc.jpg

Главное, что это сработало и теперь можно было увидеть реальное расположение стен, их кривизну, направление. Углы срезаны из-за шага в 5 градусов.

7f38af0c13494da312a1438d63f2c1b4.jpg

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

cc0c85daa8838b6dcf3f8c72a9297a2a.png

Нам это важно, чтобы правильно вписать конструкцию, зависящую от всех стен, пола, подоконников и окон.

6d74d69ad3e99b6b5d5e3c15b7045308.jpg

В идеале, ещё бы научиться портовать данные сразу в чертёжную программу, но мне не хватает ума или времени для такой фичи. А ещё, конечно, мне хочется сделать такую платформу из алюминия с дорогим приводом и очень точным поворотом на 1 градус и…, но я понимаю, что простые задачи должны решаться простыми, достаточными средствами, поэтому дальнейшей модернизации не предвидится. Есть, конечно, специальные измерительные комплексы для 3D-сканирования, но во-первых, смотри пункт выше, во-вторых, они стоят по 1–5 млн и в ритме нашей мастерской это никогда не окупится. Да и было интересно это сделать своими силами.

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

© Habrahabr.ru