Информатика, вычислительная техника и управление
УДК 531.1, 519.168
РАЗРАБОТКА МЕТОДА ОПРЕДЕЛЕНИЯ ПРИСОЕДИНЕННЫХ ПАРАМЕТРОВ МАНИПУЛЯТОРА С ВРАЩАЮЩИМИСЯ ЗВЕНЬЯМИ НА ОСНОВЕ ГЕНЕТИЧЕСКИХ
АЛГОРИТМОВ
Аннотация: рассматривается проблема выбора оптимального или близкого к оптимальному положения четы-рехзвенного манипулятора на плоскости. Вначале обратная задача кинематики формулируется в виде задачи нелинейной оптимизации. Отдельное внимание в математической модели уделено целевой функции. Далее для решения поставленной задачи предлагается генетический алгоритм выбора оптимального положения четырехзвенного манипулятора на плоскости. В соответствии с логикой генетических алгоритмов разработаны оригинальные операторы скрещивания и мутации. Каждый из них основывается на решении геометрической задачи пересечения двух окружностей. Предложенные операторы рассматриваются для представления особи в виде набора координат вершин манипулятора, однако также даны указания по созданию подобных операторов для представления особи в виде набора углов. Для апробации алгоритма был разработан программный комплекс, а также сконструирован мини-манипулятор. Программный комплекс включает в себя программную реализацию для настройки параметров алгоритма на стационарном компьютере и реализацию для микроконтроллера с управлением сервоприводами реального мини-манипулятора. Представлены результаты вычислительного эксперимента по настройке параметров, а также показана работа алгоритма на микроконтроллере с выводом результатов на дисплей. Показано построение оптимального решения на мини-манипуляторе. Сделаны выводы по работе, а также указаны возможные дальнейшие исследования в данной области
Ключевые слова: обратная задача кинематики, представление Денавита - Хартенберга, генетический алгоритм, скрещивание, мутация, манипулятор, вычислительный эксперимент, управление, мехатронные устройства
С.Н. Медведев, А.Ю. Яковлев, О.Г. Корольков
Воронежский государственный университет, г. Воронеж, Россия
Введение
Постановка задачи
Рассматривается четырехзвенный манипулятор на плоскости. Для описания связей между звеньями используется представление Денавита - Хартенберга [7]. Необходимо для него решить обратную задачу кинематики (ОЗК) с нахождением оптимального или близкого к оптимальному расположения звеньев манипулятора согласно выбранному критерию. Под оптимальным положением манипулятора будем понимать достижение одного из различных критериев: минимальная сумма присоединенных параметров манипулятора - углы поворотов звеньев в сочленениях (аг, ...,а4), тт-тах критерий, минимальный суммарный момент, минимальная или максимальная высота и др. Заметим, что задача динамики в данной работе не рассматривается, а масса звеньев будет выступать как заданный параметр оптимизационной задачи для определения текущего расположения звеньев.
Сформулируем ОЗК для четырехзвенного манипулятора на плоскости в виде задачи оптимизации. Пусть заданы координаты двух точек фиксации манипулятора (х0,у0), (х4, у4) (рис. 1) и известны длины четырех звеньев /¿, г = 1. .4. Необходимо найти координаты трех оставшихся вершин манипулятора (х1,у1), (х2,у2), (х3,у3).
У
(А.Уч)
(-гО'Уо)
Рис. 1. Четырехзвенный манипулятор
© Медведев С.Н., Яковлев А.Ю., Корольков О.Г., 2018
Известно, что данная задача имеет множество решений [1, 7].
Заметим, что в классической постановке необходимо найти углы поворотов звеньев в сочленениях, однако в данной работе искомые углы будут найдены после нахождения координат вершин путем несложных математических операций. Целесообразность работы с координатами будет объяснена позднее.
Математическую модель ОЗК в виде задачи оптимизации можно представить следующим образом:
F(x,y)^opt, (1)
(xt — xi_1)2 + (yi - yi_1)2 = Z?,
i = 1. .4. (2)
В качестве целевой функции, как уже было сказано ранее, можно рассматривать минимизацию суммы углов поворотов звеньев в сочленениях:
F(x,y) = £?=1аг(хг,уг), (3)
или минимизацию суммарных моментов в вершинах манипулятора (будем считать, что на манипулятор действует только сила тяжести звеньев и схват манипулятора не нагружен)
F(x,y) = Zf=1M; = Tl=1mighi, (4) где mi - масса /-го сегмента, hi - расстояние от вершины до линии действия силы.
Далее сосредоточимся на работе с целевой функцией вида (4).
Распишем её подробнее. Центром масс одного звена является его середина с координатами
^ц = = У1-1+У1 ¿ = 14
i 2 ' 2 ' . . '
Координаты центра масс механической системы определяются по формулам
гцм = £f=imt xi _цм = ^1=\т1Уц
Тогда для системы, состоящей только из четвертого звена, имеем
X
цм ц цм ц
, У4 = У А ,
для системы, состоящей из третьего и четвертого звеньев,
Ц , Ц Ц , Ц цм _ т3х3+т4х4 цМ _ т3у3+т4у4
Х^ — , У? — ,
-3 т3+т4 -3 т3+т4
для системы, состоящей из второго, третьего и четвертого звеньев,
цм Ш2 Хц "Н7ИХц
х2 — ■
цм
у2ц =
т2+т3+т4 т2уц+т3уц+т4уЦ т2+т3+т4 '
и для всего манипулятора
X.
цм ^^^Хц Хц Хц
т1+т2+т3+т4 '
цм
У1 =
т1уц+т2уц+т3уц+т4уц
т1+т2+т3+т4
Тогда расстояние ^ будет высчитываться по формуле
— |х[цм-хг_1|, 1 — 1. .4.
В результате формула суммарных моментов примет вид
Я*,у) —2Г=1Мг—£?=1тг^г — д ( — + 2т2 + 2т3 + 2т4) + х1(т1 +
т2) + х2(т2 + m3) + x3(m3 + m4) + х4т4 ■ Y (т2 + 2m3 + 2m4) + (т2 + т3) +
+
■f (m3 + 2m4) +
.
— Ym4 +
х3 (m3 + m4) + x4m4 +
x3 (m3 + m4) + x4m4 +
Заметим, что она не зависит от координат Уг, i = 1..4.
Таким образом, ОЗК с целевой функцией будет выглядеть следующим образом
Ях) = |(|—x0(m1 + 2m2 + 2m3 + 2m4) + хх(тх + m2) + x2(m2 + m3) + x3(m3+m4)+ x4m4| + — |-(m2 + 2m3 + 2m4) + x2(m2 + m3) + x3(m3 + m4) +
X2
x4m4
+
x4m4
■ -f (m3 + 2m4) + x3 (m3 + m4) +
+
— + x4m4
^ min,
(5)
(хг -хг_!)2 + (у; — Уг-1)2 — 1\,
1 — 1. .4. (6)
Если считать, что массы звеньев одинаковые т1 — т2 — т3 — т4 — т, то формула (5) преобразуется следующим образом
2
+ —3^ + х3 + ^ +
2 л 2
(7)
F(x) = тд ( + xt + х2 + х3 + ^
+
—5^ + х2 +х3 2 z л 2
+
+ х4 2 2
Заметим, что в (5)-(7) х0,х4, т., д - являются заданными константами.
Таким образом, рассматривается оптимизационная задача (5)-(6) (или (5), (7)).
Обзор известных методов решения
Основные исследования в данной области связаны с нахождением аналитических, геометрических или численных методов решения ОЗК [1, 7]. К таким методам относятся: методы обратных преобразований, винтовой алгебры, двойственных матриц, двойственных кватернионов, итераций, геометрический подход. При этом исследователю приходится полагаться на собственную интуицию [7] в зависи-
мости от конфигурации конкретного манипулятора. Поэтому большинство промышленных роботов удовлетворяют одному из следующих условий: оси трех смежных сочленений пересекаются в одной точке, оси трех смежных сочленений параллельны между собой [7].
Данная работа направлена, прежде всего, на отыскание оптимального (в силу выбранного критерия) положения манипулятора. Однако в ней также затрагивается получение новых решений ОЗК на основе уже найденных, что обуславливается идеей генетических алгоритмов [2, 4], которые выбраны в качестве базового оптимизационного метода. Одним из главных преимуществ генетических алгоритмов является то, что они дают возможность уйти от громоздких формул и вычислений за счёт применения механизмов скрещивания и мутации. Но определенной платой за это является отсутствие гарантии оптимальности полученного решения.
Метод решения
Итак, основным инструментом для решения оптимизационной задачи (5)-(6) в работе выбраны генетические алгоритмы. Кратко приведем общую схему генетического алгоритма.
Алгоритм 1. Общая схема генетического алгоритма [3, 4].
1. Формирование начальной популяции.
2. Оценка особей популяции.
3. Отбор (селекция).
4. Скрещивание (кроссовер).
5. Мутация.
6. Формирование новой популяции.
7. Проверка на останов. Если останов не выполнен, то переход на шаг 2, иначе - алгоритм заканчивает свою работу.
Для начала определим, что будет представлять собой особь в нашей задаче. Здесь возможны два варианта: набор координат
(хо,Уо), (*1,У1), (х2,Уг), (*з,Уз), (*4,У4) или набор углов а1, а2, а3, а4.
Конкретизируем каждый из шагов алгоритма.
1. Формирование начальной популяции. На данном этапе может быть использован любой из известных методов решения ОЗК, который позволяет получить заданное наперед количество решений [1, 7].
2. Оценка особей популяции. Так как решается задача минимизации, то в качестве
функции приспособленности особи можно взять функцию — Р(х,у). То есть, чем лучше решение (меньше суммарный момент), тем больше функция приспособленности.
3. Отбор (селекция). Можно использовать любой из известных операторов селекции [3]. В эксперименте, представленном в данной работе, был выбран пропорциональный отбор.
4. Скрещивание (кроссовер). Оператор скрещивания чаще всего уникален для каждой конкретной задачи. Прежде чем перейти к его описанию, напомним, что ОЗК для двухзвен-ного манипулятора на плоскости имеет ровно два решения, которые можно найти, решив геометрическую задачу с пересечением двух окружностей (рис. 2) [5].
Рис. 2. Двухзвенный манипулятор
Предлагается следующий вариант оператора скрещивания. Пусть выбраны два манипулятора-родителя (рис. 3). Тогда, чтобы получить первую группу потомков, необходимо у первого родителя задать некоторое допустимое смещение первого звена, а у второго родителя - четвертого звена (сплошные линии на рис. 3).
Рис. 3. Оператор скрещивания. Два манипулятора-родителя
Получатся две новые точки с координатами (х?еш,уГш),(Х:Гш,уГш). Для них решается задача нахождения координат (хГ^уГ"'), (х2—",уГ-") (рис. 2). Таким образом, получаем два новых манипулятора-потомка: (х0,у0), (х^у?^), (х?™'.уГ"'),
(Х4,у4) и (Хо,Уо), (х«-уп^),
(Хпеы''1упеы»), (х"-уп^), (Х4,У4) (рис. 4).
Можно увидеть, что потомки «наследуют» информацию от родителей. Например, первый потомок первыми двумя звеньями «похож» на первого родителя, а третьим и четвертым - на второго. Второй потомок первым звеном «похож» на первого родителя, а последним - на второго, т.е. он «унаследовал» меньше информации от родительских особей, тем самым разнообразив генотип популяции.
Рис. 4. Оператор скрещивания.
Два манипулятора-потомка
Чтобы получить вторую группу потомков, необходимо произвести противоположные действия с манипуляторами-родителями: у первого родителя задать допустимое смещение четвертого звена, а у второго родителя - первого (пунктирные линии на рис. 3).
Таким образом, получаем оператор скрещивания со схемой «2 - 4»: из двух родителей формируются четыре потомка.
Заметим, что для предложенного оператора кроссовера выгоднее использовать представление особи в виде набора координат, а не углов. Это обусловлено тем, что для решения геометрической задачи с пересечением двух окружностей необходимо знать координаты центров окружностей. Если бы изначально были заданы углы, то пришлось бы сначала пересчитывать по ним координаты, а после уже решать саму задачу, т.е. необходимо произво-
дить лишние вычисления. С другой стороны, смещение первого и четвертого звеньев удобнее задавать через углы, нежели высчитывать допустимые координаты по уравнению окружности. Например, при задании углов можно использовать, так называемый, непрерывный арифметический кроссовер [3]: alnew = 0al + (1 - 0)а|, a|"ew = (1 -fl)ai +flaf, где ■в е (0,1),
«1, «I - первый и четвертый углы соответственно первого и второго родителя,
-tnew nnew
a1 , а4 - новые первый и четвертый углы соответственно первого и второго родителя.
5. Мутация. Оператор мутации также требует отдельного рассмотрения в каждой конкретной задаче. Предлагается следующий вариант: для заданного манипулятора необходимо задать допустимое смещение координат второй точки
х2—=х2 + Дх,уГ-=у2+Ду, далее необходимо решить две ОЗК для двух двухзвенных манипуляторов с фиксированными точками (х0,Уо), (х£еш,уГш) и (x2ew,y2ew), (х4,у4) соответственно (рис. 5). Из полученных новых четырех манипуляторов каким-либо образом выбирается один, например, с лучшим значением функции приспособленности.
Рис. 5. Оператор мутации
Заметим, что данный вариант оператора мутации удобно использовать для особей, представленных набором координат.
Для представления через набор углов лучше использовать другой вариант оператора мутации. Например, можно задать допустимое
изменение второго угла: a"ew = а2 + Дя. Далее, пересчитать новые координаты (x"ew,y2ew) через углы а1 и a£ew и решить ОЗК для двухзвенного манипулятора с фиксированными точками (х™ew,y"ew), (^4,У4).
6. Формирование новой популяции. На данном этапе может быть использован любой из известных способов формирования популяции: механизм замещения, вытеснения, принцип элитизма и т.д. [3, 4]. В эксперименте, представленном в данной работе, был выбран вариант, в котором из шестерки особей (2 родителя, 4 потомка) в новое поколение выбирались две лучшие особи в смысле значения функции приспособленности с заменой двух худших особей в популяции.
7. Проверка на останов. На данном этапе может быть использован любой из известных остановов: ограничение по количеству поколений, длительное отсутствие прогресса, малая разница между лучшим и худшим решениями и т.д.
В конце работы алгоритма для оптимального (с точки зрения генетического алгоритма) манипулятора в случае координатного представления высчитываются необходимые углы поворота сочленений.
Эксперимент
Для проверки работоспособности предложенного генетического алгоритма оптимального решения ОЗК для четырехзвенного манипулятора была разработана и написана его программная реализация в среде Visual Studio 2010 на языке С++.
Особенности алгоритма:
- использовалось координатное представление особи;
- для создания начальной популяции использовались случайно сгенерированные манипуляторы;
- использовался пропорциональный отбор;
- использовались предложенные выше операторы скрещивания и мутации для координатного представления;
- скрещивание производилось всегда, т.е. вероятность применения оператора скрещивания рс = 1;
- вероятность мутации рм = 0,1;
- из шести манипуляторов (2 родителя, 4 потомка) выбирались два с лучшим значением функции приспособленности;
- использовался стандартный останов по количеству итераций.
Входные данные эксперимента:
- (*о,Уо) — (0,0), (х4,у4) — (4,4);
- длина всех звеньев манипулятора равна 2;
- масса всех звеньев манипулятора равна 1.
Настраиваемые параметры:
- количество особей в популяции;
- максимальное количество итераций.
Лучшая особь оценивалась по суммарному минимальному моменту (7).
Далее представлена таблица, в которой приведены значения целевой функции (7) задачи в зависимости от числа особей в популяции и количества итераций.
Из таблицы видно, что большое увеличение числа особей в популяции или количества итераций алгоритма не приводит к существенному улучшению решения. Это может привести и к обратному эффекту, например, в последней строке (при 100 особях) значения целевой функции не лучше, чем в других строках в соответствующих столбцах.
Значение целевой функции
\ Кол-во Нач. 1 10 20 50 100 1000
итер-й Числоч особей в\ попул.
попул. \
5 119,685 116,134 80,584 80,251 80,251 80,182 80,182
10 98,688 82,742 74,935 74,661 74,582 74,582 74,582
20 82,742 82,742 75,131 74,886 74,886 74,886 74,739
50 82,742 82,742 74,592 74,543 74,543 74,543 74,543
100 82,742 82,742 81,212 81,212 81,212 81,212 76,642
Из данной таблицы можно сделать вывод о том, что значения параметров генетического алгоритма для данной задачи можно выбирать следующим образом: п £ [10,20], Ы_Мах £ [10, 20]. Можно предложить эвристическое правило определения параметров п — _М_Мах.
На рис. 6 показана поэтапная работа программы (с отображением лучшего манипулятора утолщенной линией) для пяти особей в популяции.
■ PtotiO Viewer ■ MntWÏ ^Ê
M
нипулятора (5). Значения параметров алгоритма п = 20, NMax = 20.
a) 6)
■ ! Plot2D Viewer L Hot2D Viewer ЛМ loitfj-g&l
< ф
в) r)
• Wntm Viewer Î21 Plot2D Viewer
| < <
д)
е)
Рис. 6. Работа программы. Лучший манипулятор а) в начальной популяции (F = 12.204); б) после 1 итерации (F = 11.842); в) после 2 итераций
(F = 10.064); г) после 4 итераций (F = 8.437);
д) после 10 итераций (F = 8.217);
е) после 50 итераций (F = 8.183)
Как видно, уже после четвертой итерации алгоритм получает «хорошее» решение, которое в дальнейшем улучшается в результате работы алгоритма.
Время работы алгоритма при 100 особях и 100 итерациях 2,81с (Intel Core i3-2120, CRU 3.30 GHz, RAM 8 Gb).
Различные целевые функции
Генетические алгоритмы позволяют легко менять целевую функцию задачи. На рис. 7 показаны результаты работы программы с тремя различными целевыми функциями: 1) минимальная сумма углов поворота в сочленениях (3) F(x,у) = 2f=iЯг(хг,Уг); 2) min-max критерий для углов
F(x,y) = minmaxi ai(xi,yi); 3) минимальная сумма моментов сил тяжести сочленений ма-
■ P<oi2Ct Vie*
M !Ploi2DVie- [■J Plot2D Vie
В)
Г)
Рис. 7. Работа программы. Лучший манипулятор а) начальная популяция; б) целевая функция (3); в) min-max критерий; г) целевая функция (5)
Применение алгоритма к физической модели микроманипулятора
Для апробирования работы описанного алгоритма был создан реальный мини-манипулятор. Звенья манипулятора напечатаны на 3D-принтере по модели из открытого проекта [8]. Подвижность звеньев обеспечивается девятиграммовыми сервоприводами. Для их управления применяется микроконтроллер STM32F746IGT6. Среда разработки для микроконтроллера - Keil5 c библиотекой HAL.
На рис. 8 показана физическая модель мини-манипулятора, управляемая с использованием представленного алгоритма.
Рис. 8. Работа программы с физической моделью мини-манипулятора
Перспективы исследований
Предложенный подход можно развивать далее для применения к определению оптимального положения манипулятора в пространстве. Также интересно исследовать возможность применения эволюционного подхода к построению оптимального пути перемещения хвата манипулятора, например, используя в качестве начальной популяции набор примитивных траекторий.
Литература
1. Булгаков А.Г., Воробьев В.А. Промышленные роботы. Кинематика, динамика, контроль и управление. М.: Солон-Пресс, 2007. 488 с.
2. Гладков Л.А., Курейчик В.В., Курейчик В.М. Генетические алгоритмы. М.: Физматлит, 2006. 402 с.
3. Каширина И.Л. Введение в эволюционное моделирование: учеб. пособие. Воронеж: ВГУ, 2007. 39 с.
4. Основы генетических алгоритмов. URL: https://www.intuit.ru/studies/courses/14227/1284/lecture/241 68 (дата обращения: 23.05.2018).
5. Пересечение: Две окружности. URL: http://algolist.manual.ru/maths/geom/intersect/cirdecirde2d. php (дата обращения: 25.04.2018).
6. Рутковская Д., Пилиньский М., Рутковский Л. Нейронные сети, генетические алгоритмы и нечеткие системы; пер. с пол. И.Д. Рудинского. М.: Горячая линия-Телеком, 2004. 383 с.
7. Юревич Е. Основы робототехники: учеб. пособие. 3-е изд., перераб. и доп. СПб.: БХВ-Петербург, 2010. 368 с.
8. Thingverse URL: https://www.thingiverse.com (дата обращения: 15.02.2018).
Поступила 26.09.2018; принята к публикации 13.11.2018
Информация об авторах
Медведев Сергей Николаевич - канд. физ.-мат. наук, доцент кафедры вычислительной математики и прикладных информационных технологий, Воронежский государственный университет (394018, Россия, г. Воронеж, Университетская площадь, 1), e-mail: [email protected], тел. 8-906-671-62-05
Яковлев Александр Юрьевич - канд. физ.-мат. наук, доцент, доцент кафедры математического и компьютерного моделирования, Воронежский государственный университет (394018, Россия, г. Воронеж, Университетская площадь, 1), e-mail: [email protected], тел. (473)2-20-82-66
Корольков Олег Геннадьевич - канд. физ.-мат. наук, доцент кафедры вычислительной математики и прикладных информационных технологий, Воронежский государственный университет (394018, Россия, г. Воронеж, Университетская площадь, 1), e-mail: [email protected], тел. (473)2-20-82-66
DEVELOPMENT OF THE METHOD FOR DETERMINING THE ASSOCIATED PARAMETERS OF THE MANIPULATOR WITH ROTATING LINKS BASED
ON GENETIC ALGORITHMS
На экране можно увидеть лучшую особь (из 25 в популяции) после 25 итераций работы алгоритма. Заметим, что популяция «сошлась», т.е. практически все особи-манипуляторы стали похожи друг на друга, кроме одной. Данная особь отвечает за одного из двух лучших потомков и, в силу решения геометрической задачи, всегда будет присутствовать в популяции.
Выводы
1. Разработан генетический алгоритм для выбора оптимального положения манипулятора при решении ОЗК для четырехзвенного манипулятора на плоскости.
2. Разработана программная реализация алгоритма на языке С++ и проведена оценка его параметров.
3. Разработана программная реализация на языке С для микроконтроллера STM32F746IGT6, которая включает в себя: визуализацию работы алгоритма на подключаемом к микроконтроллеру сенсорном дисплее; управление сервоприводами с частотой обновления сигнала 50 Гц.
Алгоритм применен к физической модели манипулятора.
S.N. Medvedev, A.Yu. Yakovlev, O.G. Korol'kov Voronezh State University, Voronezh, Russia
Abstract: the problem of choosing the optimal or close to optimal position of a four-link manipulator on a plane is considered. First, the inverse kinematics problem is formulated as a nonlinear optimization problem. Special attention in the mathematical model is given to the objective function. Next, to solve the problem, we propose a genetic algorithm for choosing the optimal position of a four-link manipulator on a plane. In accordance with the logic of genetic algorithms, original crossing and mutation operators were developed. Each of them is based on solving a geometric problem of intersection of two circles. The proposed operators are considered to represent the individual in the form of a set of coordinates of the vertices of the manipulator; however, instructions are also given to create such operators to represent the individual as a set of angles. To test the algorithm, a software package was developed, and a mini-manipulator was designed. The software package includes a software implementation for setting the algorithm parameters on a stationary computer and an implementation for a microcontroller with servo control of a real mini-manipulator. The article presents the results of a computational experiment for setting parameters, and also shows the operation of the algorithm on the microcontroller with the output of the results on the display. The construction of the optimal solution on a mini-manipulator is shown. Conclusions on work are made, and also possible further researches in the field are specified
Key words: inverse kinematics problem, Denavit - Hartenberg representation, genetic algorithm, crossing, mutation, manipulator, computational experiment, control, mechatronic devices
References
1. Bulgakov A.G., Vorob'ev V.A., "Industrial robots. Kinematics, dynamics, control and management" ("Promyshlennye ro-boty. Kinematika, dinamika, kontrol' i upravlenie"), Moscow, Solon-Press, 2007, 488 p.
2. Gladkov L.A., Kureychik V.M. "Genetic algorithms" ("Geneticheskie algoritmy"), Fismatlit, 2006, 402 p.
3. Kashirina I.L. "Introduction to evolutionary modeling" ("Vvedenie v evolyutsionnoe modelirovanie"), VSU, Voronezh, 2007, 39 p.
4. "Fundamentals of genetic algorithms" ("Osnovy geneticheskih algoritmov"), available at: https://www.intuit.ru/studies/courses/14227/1284/lecture/24168 (accessed: 23.05.2018).
5. "Intersection: two circles" ("Peresechenie: dve okryznosti"), available at: http://algolist.manual.ru/maths/geom/intersect/circlecircle2d.php (accessed: 25.04.2018).
6. Rutkovskaya D., Pilin'skiy L., Rutkovskiy L. "Neural networks, genetic algorithms and fuzzy systems" ("Neyronnye seti, geneticheskie algoritmy i nechetkie sistemy"), Goryachaya liniya Telecom, 2004, 383 p.
7. Yurevich E., "Basics of robotics: manual" ("Osnovy robototekhniki: ucheb. posobie"), St. Petersburg, BHV-Peterburg, 2010, 368 p.
8. "Thingverse", available at: https://www.thingiverse.com (accessed: 15.02.2018).
Submitted 26.09.2018; revised 13.11.2018 Information about the authors
Sergey N. Medvedev, Cand. Sc. (Physics and Mathematics), Associate Professor, Voronezh State University (1 Universitetskaya sq., Voronezh 394018, Russia), e-mail: [email protected], tel. 8-906-671-62-05
Aleksandr Yu. Yakovlev, Cand. Sc. (Physics and Mathematics), Associate Professor, Voronezh State University (1 Universitetskaya sq., Voronezh 394018, Russia), e-mail: [email protected], tel. (473)2-20-82-66
Oleg G. Korolkov, Cand. Sc. (Physics and Mathematics), Associate Professor, Voronezh State University (1 Universitetskaya sq., Voronezh 394018, Russia), e-mail: [email protected], tel. (473)2-20-82-66