Назад в библиотеку

Создание программы для фрезерного робота с численным программным управлением и реализация его функционирования

Автор: Удовика Ю.Д., Бутенко Д.А., Тарасов Н.Ю., Колесников В.Ю., Лѐвкин А.В. Научный руководитель ст. пр. Елисеев В.И.
Источник: Материалы студенческой секции VIII Международной научно-технической конференции Информатика, управляющие системы, математическое и компьютерное моделирование (ИУСМКМ – 2017). – Донецк: ДОННТУ, 2017. – С. 749-751.

Аннотация

Тарасов Н.Ю., Удовика Ю.Д., Бутенко Д.А., Лѐвкин А.В., Колесников В.Ю., Елисеев В.И. Создание программы для робота и реализация его функционирования. Выполнен анализ форматов 3D моделей для робота. Определѐн формат для считывания координат точек 3D модели. Определѐн способ считывания координат точек 3D модели. Проведѐн анализ и определѐн способ минимизации количества точек. Определено, в каких программных средствах запрограммирован робот, а также рассмотрены все его функции.

Общая постановка проблемы

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

Цель статьи

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

Выбор формата 3D модели.

Для дальнейшего считывания координат точек 3D модели требуется определиться с форматом 3D модели. Исследование показало, что всего существует очень большое количество форматов для 3D моделей. Самыми распространѐнными являются модели формата DWG, DXF, DNG, STL, OBJ, IGS и MA. В ходе исследования оказалось, что для считывания координат точек подойдѐт 3D модель формата STL, потому что был найден способ с помощью программы Matlab и специальным расширением для неѐ считать координаты точки 3D модели. Если же необходимо считать координаты с 3D модели, например, DWG формата, то необходимо конвертировать 3D модель DWG формата в формат STL, с помощью специальной программы-конвертера. Например, существует программа 3D object converter, которая работает с большинством существующих форматов.

Считывание координат точек 3D модели.

Считывание координат точек 3D модели необходимо для дальнейшего использования в программе, где координаты будет задавать движение моторам робота. Как показала практика, графические редакторы позволяют смотреть и редактировать 3D модель, но не позволяют вывести координаты каждой точки в какой-либо список. Как возможное решение был рассмотрен Matlab. Matlab имеет возможность из массива координат точек показывать 3D или 2D объект. Сами координаты хранятся в определѐнном списке, который потребуется в дальнейшей работе. Программе Matlab необходимо прочитать 3D модель STL формата и вывести массив координат в свой список, благодаря установленному расширению и командам, которые позволяет считывать все координаты точек 3D модели STL формата.

Минимизация количества точек

Как показывает практика точек в 3D модели много и обычно насчитывает более 100 тысяч. Данный робот предусматривает точность 2,5-10 тысяч точек, поэтому необходимо минимизировать количество точек. Так как точек свыше 100 тысяч, то необходимо автоматизировать процесс минимизации точек, создав программу, которая будет осуществлять этот процесс. Программирование будет осуществляться на языке C++, т.к. данный язык программирования имеет все необходимые возможности для осуществления данной задачи. Сам процесс минимизации будет осуществлять пару задач. Первой задачей является то, что необходимо убрать все отрицательные числа с координат, а именно найти минимальный элемент во всех трѐх осях и в каждой оси прибавить минимальное число по модулю. Эта задача необходима для следующей задачи разбиения координат пошагам. Вторая задача разбиения координат по шагам заключается в том, что необходимо найти максимальный элемент на оси, разделить его на количество шагов на каждой оси, найти высоту на положении двух осей максимально схожими по шагам из общего списка координат.

Программирование движения робота

Основным программным обеспечением для программирования робота Lego Mindstorm NXT является NXT programming. Как показало исследование, для программирования робота так же существуют программы RobotC и BrickCC. Был выбран BrickCC потому что он более удобен для программирования, пишется на языке NXС, который очень похож на С++ с возможностью осуществлять те же функции что и в NXT programming, например, задать движение мотора. Существует проблема, которая препятствует передаче координат роботу и заключается она в том, что программы, взаимодействующие с контроллером Lego, не могут из текстового файла считать массив данных для дальнейшей работы. В связи с этим была разработана программа, которая пишет код в текстовый файл, в котором записаны все координаты в программу робота. После работы этой программы необходимо копировать код из текстового файла и вставить его в код программы робота. На вход поступают минимизированные координаты. Фрезерный робот с численным программным управлением произведѐт движение в одну сторону, и в зависимости от высоты точки в 3D модели в данной позиции будет регулировать уровень высоты фрезу. Когда закончится считывание координат по одной стороне, то двигатель возвращается на исходную позицию и другой двигатель делает шаг в сторону относительно другой оси, после чего первый двигатель продолжает движение. Фрезерный робот с численным программным управлением будет работать до тех пор, пока не будут пройдены все заданные координаты.

Вывод

Произведѐн анализ форматов 3D моделей и определѐн формат для считывания координат, для дальнейшего взаимодействия с фрезерным станком с численным программным управлением. Найден способ считать координаты точек 3D модели с помощью программного обеспечения Matlab. Обоснован выбор языка программирования, с помощью которого. Определены задачи, которые выполняет программа для процесса минимизации точек. Обоснован выбор программного обеспечения. Описан способ передачи координат роботу и принцип работы фрезерного робота с численным программным управлением.

Список источников

  1. Matlab [электронный ресурс] // Википедия – свободная энциклопедия : [сайт][2017] URL: https://ru.wikipedia.org/wiki/MATLAB
  2. Методические указания к лабораторным занятиям Программирование LegoMindstormNXT // Томский государственный университет систем управления и радиотехники: [Томск]. [2012].