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

Создание программного робота художник с использованием lego mindstorms nxt

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

Аннотация

Удовика Ю.Д., Бутенко Д.А., Тарасов Н.Ю., Колесников В.Ю., Лѐвкин А.В., Елисеев В.И. Создание программного робота Художника с использованием Lego Mindstorms. В результате проделанной работы был спроектирован, собран и запрограммирован робот-художник, работающий с использованием таких программ как: МАТЛАБ, Visual Studio 2015 и NXT Program 2.0.

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

Требуется разработать роботизированную руку, способную рисовать заданное ей графическое изображение при помощи набора Lego Mindstorms NXT. Для реализации этого следует выполнить следующие пункты:

– спроектировать виртуальную модель робота;

– выбрать программы для дальнейшей работы;

– решить основную задачу движения робота.

Цель статьи

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

Проектирование виртуальной модели робота

Для проектирования виртуальной 3D модели была использована программа LEGO Digital Designer. В программе предусмотрено создание моделей версии Mindstorms NXT. На рисунке 1 представлена полученная модель робота-художника.

pic1

Рисунок 1 – 3D модель робота художника

Выбор программ для дальнейшей работы

Под дальнейшей работой подразумевается создание программного обеспечения робота. Основной программной средой был выбран продукт MathWorks – МАТЛАБ R2009b, но для создания данного ПО подойдут и более ранние и более поздние версии данного продукта. Для проектирования роботизированных рук была создана программа SCARA, являющаяся производной составляющей Simulink МАТЛАБ, позволяющая спроектировать не только самого робота, но и траекторию движения его конкретных деталей, что позволяет воспроизвести движение шариковой ручки по бумаге и запрограммировать его. Для работы используются *.m файлы с указанной траекторией, математически рассчитанной в МАТЛАБ. Далее был использован уже готовый продукт, в результате работы которого были получены файлы формата cpp, написанные на языке программирования С. Данный файл требуется скомпилировать в Visual Studio 2015. К сожалению, для данных программ не предусмотрена возможность экспорта или импорта ПО в Lego Mindstorms NXT или конвертации исходных файлов в формат, понимающийся роботом, поэтому полученный файл после компиляции требуется передать через подключенный процесс, выбрав NXT Program 2.0. Среда NXT Program 2.0. является основным официальным продуктом для работы с конструктором Lego, он предусматривает возможность создания, изменения и передачи готового файла контроллеру. Все программы находятся в открытом доступе и наиболее часто используются для создания подобного ПО.

Основная задача движения робота.

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

pic1

Рисунок 2 – Расчет углов поворота роботизированной руки

Внешний вид программы SCARA для данного робота представлен на рисунке 3.

pic1

Рисунок 3 – Модель NXT контроллера

Выводы.

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

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

  1. Программирование на LEGO Mindstorms [электронный ресурс] // Alexey Kletsel Design: [сайт]. [1994-2013]. URL: https://habrahabr.ru/post/274519/
  2. Методические указания к лабораторным занятиям Программирование Lego Mindstorm NXT // Томский государственный университет систем управления и радиотехники: [Томск]. [2012].
  3. Работа в NXT Programming [электронный ресурс] University of Zurich, Department of Informatics, Artificial Intelligence Laboratory 3442 VU Introduction to Artificial Intelligence 06/07, Rolf Pfeifer, Prof., Dr. sc. techn. URL: https://docviewer.yandex.ua/view/
  4. SCARA [электронный ресурс] // Википедия – свободная энциклопедия: [сайт] [2017] URL: https://en.wikipedia.org/wiki/SCARA