Академический Документы
Профессиональный Документы
Культура Документы
Выполнил
студент гр. 3341506/10401 __________ И. С. Паньков
(подпись)
Научный руководитель
доцент ВШАиР, к.ф.-м.н. __________ А. А. Семакова
(подпись)
Консультант
по нормоконтролю __________ А. С. Габриель
(подпись)
Санкт-Петербург
2023
Министерство науки и высшего образования Российской Федерации
Санкт-Петербургский политехнический университет Петра Великого
Институт машиностроения, материалов и транспорта
Высшая школа автоматизации и робототехники
УТВЕРЖДАЮ
Директор ВШАиР
О. Н. Мацко
« 01 » декабря 2022 г.
ЗАДАНИЕ
на выполнение выпускной квалификационной работы
6. Консультанты по работе:
Студент И. С. Паньков
(подпись) (инициалы, фамилия)
РЕФЕРАТ
78 страниц, 41 рисунок, 1 таблица, 33 источника, 3 приложения
КЛЮЧЕВЫЕ СЛОВА: ПРОМЫШЛЕННЫЙ РОБОТ, ПЛАНИРОВАНИЕ
ТРАЕКТОРИИ ДВИЖЕНИЯ, КООПЕРАЦИЯ РОБОТОВ, ROS, GAZEBO
Объектом исследования являются алгоритмы планирования траектории
движения, которые применяются в современных робототехнических системах
при координации движений нескольких промышленных роботов.
Целью работы является разработка алгоритма планирования движения,
способного работать в системах с двумя манипуляторами в присутствии стати-
ческих и динамических препятствий.
Рассмотрены существующие методы планирования движения, приведены
особенности их работы, а также преимущества и недостатки. На основании срав-
нения методов выбран метод эластичных лент для дальнейшей реализации в
среде ROS.
Осуществлена настройка окружения ROS для проведения моделирования.
Для проведения экспериментов выбран манипулятор KUKA KR 150 R3100-2 и
настроен пакет ROS для поддержки работы фреймворка MoveIt. Создан пакет
ROS для возможности запуска моделирования с несколькими роботами в симу-
ляторе Gazebo и отладки в средстве визуализации RViz.
Проанализированы существующие программные реализации алгоритмов
планирования движения в MoveIt, а также изучены реализации метода эластич-
ных лент для многоподвижных роботов. Написана собственная реализация алго-
ритма планирования движения по методу эластичных лент на языке C++ с ис-
пользованием среды ROS. Протестирована работа алгоритма в нескольких сце-
нариях.
ABSTRACT
78 pages, 41 figures, 1 table, 33 sources, 3 appendices
KEY-WORDS: INDUSTRIAL ROBOT, TRAJECTORY PLANNING,
ROBOT COOPERATION, ROS, GAZEBO
The object of the research is the motion planning algorithms, which are used in
modern robotic systems for the motion coordination of several industrial robots.
The aim of the work is to develop a motion planning algorithm that is capable of
work in systems with two manipulators in the presence of static and dynamic obstacles.
The existing methods of motion planning are considered, the features of their
work, as well as their advantages and disadvantages are given. Based on the compari-
son of the methods, the elastic band method was selected for further implementation in
the ROS environment.
The setup of ROS environment for the simulation is done. KUKA KR 150
R3100-2 manipulator was selected for the experiments and ROS package was config-
ured to support the MoveIt framework. Created ROS package to be able to run multi-
robot simulation in the Gazebo simulator and debugging in the RViz visualization tool.
Existing software implementations of motion planning algorithms in MoveIt
have been analyzed and implementations of the elastic band method for multi-degree-
of-freedom robots have been studied. Novel realization of motion planning algorithm
based on elastic band method using C++ programming language and ROS environment
is written. The algorithm is tested in several scenarios.
СОДЕРЖАНИЕ
Введение ....................................................................................................................... 6
1 Обзор алгоритмов планирования движения ........................................................ 8
1.1 Метод эластичных лент ................................................................................... 9
1.2 Метод потенциальных полей ........................................................................ 13
1.3 Метод на основе стратегии ........................................................................... 16
1.4 Ориентированный на задачу метод.............................................................. 19
1.5 Сравнение методов планирования движения ............................................. 21
2 Настройка рабочего окружения ROS ................................................................. 23
2.1 Средство настройки манипулятора MoveIt Setup Assistant ....................... 24
2.2 Средство визуализации RViz ........................................................................ 30
2.3 Симулятор Gazebo ......................................................................................... 31
3 Разработка алгоритма планирования движения................................................ 40
3.1 Существующие реализации алгоритмов планирования движения .......... 40
3.2 Существующие реализации метода эластичных лент ............................... 41
3.3 Особенности программной реализации метода эластичных лент ............ 42
3.4 Эксперименты и отладка в MATLAB .......................................................... 44
4 Реализация алгоритма в ROS и моделирование в Gazebo ............................... 49
4.1 Обнаружение препятствий ............................................................................ 50
4.2 Планирование движения ............................................................................... 52
4.3 Управление движением по траектории ....................................................... 56
4.4 Движение по пересекающимся траекториям .............................................. 60
4.5 Движение по параллельным траекториям................................................... 62
4.6 Движение по траекториям в среде с препятствиями ................................. 64
4.7 Анализ результатов моделирования ............................................................ 66
Заключение ................................................................................................................ 67
Список использованных источников ...................................................................... 69
Приложение А Файл загрузки модели робота ....................................................... 73
Приложение Б Файл загрузки параметров и узлов робота ................................... 74
Приложение В Файл конфигурации регуляторов приводов ................................ 77
5
ВВЕДЕНИЕ
а) б)
6
посвященных таким алгоритмам планирования движения (в большинстве своем
для мобильных роботов).
При этом алгоритмам планирования движения и взаимной координации
«классических» промышленных манипуляторов отводится куда меньше внима-
ния, и потому частым явлением оказывается их «ручное» программирование. Та-
кой подход нельзя назвать гибким, поскольку он требует модернизации последо-
вательности команд даже при незначительных изменениях в постановке задачи,
и потому необходим метод, позволяющий автоматизировать процесс планирова-
ния движения при взаимодействии нескольких манипуляторов.
Целью данной работы является разработка алгоритма планирования траек-
тории движения для работы в робототехнических системе с двумя манипулято-
рами в присутствии статических и динамических препятствий.
Для достижения поставленной цели требуется решить следующие задачи:
− проанализировать научно-техническую литературу, посвященную ал-
горитмам планирования движения в среде с несколькими промышленными
роботами,
− классифицировать основные подходы для решения задачи планирова-
ния движения, выделить их преимущества и недостатки,
− определить перспективные методы планирования движения для даль-
нейшего исследования и реализации,
− программно реализовать собственный алгоритм в среде ROS и осуще-
ствить моделирование в симуляторе Gazebo.
7
1 Обзор алгоритмов планирования движения
8
1.1 Метод эластичных лент
а) б)
в) г)
k r ( 0 − ) T , 0
fr = bi , (1.3)
0, 0
где kr — коэффициент усиления растягивающей силы,
0 — максимальный радиус действия силы,
(q − hq 0 ) − (q + hq 0 )
1 q ij = qi , i = j
, q q i = 0, i j , i = 0, N .
i
(1.4)
qT 2h N j
(q − hq ) − (q + hq )
N
11
Mitsubishi PA-10. Эластичная лента из пузырей строилась не только вдоль траек-
тории рабочего органа, но и вдоль траектории каждого шарнира, образуя «эла-
стичный туннель», как это показано на рисунке 1.3.
а) б)
в) г)
13
где U xd ( x ) — притягивающее поле,
U O ( x) — отталкивающее поле,
U G ( x) — гравитационное поле.
сложным образом:
1
( )
2
1 Oi − 1 0 , Oi 0
U Oi = 2 , (1.12)
0, Oi 0
где — коэффициент усиления отталкивающего поля,
Oi — расстояние до i -го препятствия,
17
На онлайн-стадии метода на основе стратегии управление передается ло-
кальному планировщику, работающему в реальном времени. Благодаря тому,
что пространство является двумерным, поиск пути и генерация траектории про-
исходят с высокой скоростью даже для робототехнических систем с несколь-
кими манипуляторами [9]. Примеры работы планировщика движения с разными
выбранными стратегиями движения представлены на рисунке 1.7.
а) б)
а) б)
20
1.5 Сравнение методов планирования движения
21
Недостаток в виде высокой вычислительной сложности метода эластич-
ных лент можно устранить или частично компенсировать, если принять некото-
рые упрощения, касающиеся представления звеньев робота и препятствий, а
также если осуществлять планирование движения в операционном пространстве
робота (декартовом пространстве), а не в конфигурационном пространстве шар-
ниров.
Недостаток в виде отказа метода потенциальных полей в локальных мини-
мумах результирующего потенциального поля устранить сложнее, что может по-
требовать введения дополнительных эвристик. Кроме того, наличие, помимо ди-
намических препятствий, других роботов в рабочем пространстве робота может
приводить к их взаимной блокировке.
Таким образом, на основе анализа методов планирования движения для ре-
ализации алгоритма планирования траектории движения в среде ROS решено
выбрать метод эластичных лент.
22
2 Настройка рабочего окружения ROS
23
2.1 Средство настройки манипулятора MoveIt Setup Assistant
24
Создадим с помощью MoveIt Setup Assistant конфигурационный ROS-па-
кет kuka_kr150r3100_2_moveit_config, в котором осуществим настройку мани-
пулятора KUKA KR 150 R3100-2 на основе его URDF-описания (англ. Universal
Robot Description Format), представленного в пакете KUKA Experimental.
2.1.1 Матрица коллизий
Сгенерируем матрицу коллизий. Данная матрица определяет взаимосвязи
между подвижными звеньями манипулятора и позволяет осуществлять планиро-
вание движения, исключающее столкновение звеньев друг с другом. Фрагмент
матрицы коллизий представлен на рисунке 2.2.
25
понадобится для интеграции манипулятора в симулятор. Создание виртуального
шарнира показано на рисунке 2.3.
26
манипулятора (англ. Arm) и отвечают за его позиционирование, а последние три
шарнира — к его «кисти» (англ. Wrist) и отвечают за ориентацию рабочего ин-
струмента. В качестве решателя обратной задачи кинематики укажем алгоритм
из библиотеки KDL, а в качестве планировщика пути — алгоритм на основе ран-
домизированных быстрорастущих деревьев RRTstar, модернизированный алго-
ритмом поиска A*. Параметры планирования оставим по умолчанию. Настройка
кинематической группы представлена на рисунке 2.4.
27
Рисунок 2.5 — Создание «домашнего» положения
28
2.1.6 Регуляторы приводов шарниров
Управление приводами манипулятора осуществляется с помощью различ-
ных регуляторов системы ROS (англ. ROS Controllers): регуляторов положения
(англ. Position Controller), скорости (англ. Velocity Controller), траектории (англ.
Trajectory Controller). Данные регуляторы могут быть разного типа и управлять
положениями приводов, их скоростями, ускорениями и/или моментами.
Создадим регулятор траектории arm_controller, который управляет поло-
жениями (углами поворота) шарниров кинематической группы arm манипуля-
тора при движении по траектории. Параметры регулятора настроим позднее. Со-
здание регулятора траектории представлено на рисунке 2.7.
29
регуляторов (ros_controllers.yaml) и некоторые другие, а также SRDF-описа-
ние манипулятора (англ. Semantic Robot Description Format). В поддиректории
launch будут созданы launch-файлы для запуска узлов ROS, необходимых для
функционирования фреймворка MoveIt и осуществления планирования движе-
ния. В том числе будет создан файл demo.launch для запуска демонстрационного
проекта в средстве визуализации RViz.
30
2.3 Симулятор Gazebo
31
Несмотря на то, что при создании конфигурационного пакета были со-
зданы launch-файлы, предназначенные для осуществления симуляции в Gazebo
(в частности, demo_gazebo.launch), при попытке их запуска произойдет ошибка,
и моделирование не сможет быть запущено. Это связано с тем, что URDF-
описание манипулятора, предоставляемое набором пакетов KUKA Experimental,
не содержит достаточной для симулятора информации о динамических, инерци-
онных и некоторых других характеристиках робота.
Кроме того, сгенерированные файлы предназначены для запуска симуля-
ции лишь с одним роботом. Для поддержки работы Gazebo с несколькими робо-
тами необходимо не только дополнить URDF-описание манипулятора, но еще и
должным образом сконфигурировать ROS-узлы, отвечающие за планирование и
управление движением.
Для этого создадим новый пакет moveit_gazebo: в директории urdf будут
находиться копии URDF-описаний роботов, чтобы не приходилось вносить
правки в оригинальные пакеты, и дополнительные настройки, специфичные для
Gazebo, а в директории launch — launch-файлы для запуска необходимых узлов
с нужными параметрами в правильном порядке.
2.3.1 Загрузка модели робота в симулятор
За загрузку URDF-описания манипулятора на сервер параметров ROS и по-
следующее добавление модели в симулятор Gazebo отвечает launch-файл
spawn_robot.launch. Данный файл принимает в качестве параметров модель ро-
32
2.3.2.1 Массовые характеристики звеньев
Для поддержки моделирования движения манипулятора физическим
движком симулятора его звенья должны обладать массовыми, или инерцион-
ными (англ. Inertial), характеристиками — массами, центрами масс, тензорами
инерции. Изначально URDF-описание манипулятора из пакета KUKA Experi-
mental этой информации не содержит. В открытых источниках эту информацию
также невозможно найти.
В URDF-описании манипулятора геометрические характеристики звеньев
описываются полигональными сетками (англ. Mesh) в stl-файлах, а их визуаль-
ная составляющая — текстурами в dae-файлах. Современные CAD-системы спо-
собны преобразовывать замкнутые поверхности в твердые тела, а для твердых
тел доступен расчет всех необходимых массовых характеристик. Таким образом
можно сделать грубую оценку масс и тензоров инерции звеньев с помощью твер-
дых тел, полученных из stl-файлов, задав им необходимую плотность.
Исходя из технических характеристик манипулятора KUKA KR 150
R3100-2 QUANTEC [17], его масса составляет m = 1105 кг , что при объеме по-
лученных твердых тел V = 0,85 м 3 дает плотность порядка = 1300 кг м3 . Тогда
для звеньев манипулятора получаем следующие массовые характеристики:
−0,12 11,18 −0,65 −0,65
mbase = 219,90 кг, pC base = 0,00 м, I C base = −0,65 13,58 0,00 кг м 2 , (2.1)
0,14 −0,65 0,00 21,80
0,01 12,01 1,90 0,26
mlink1 = 283,29 кг, pC link1 = −0,04 м, I C link1 = 1,90 21,27 0,06 кг м 2 , (2.2)
−0,12 0,26 0,06 21,84
0,66 10,07 2,15 −1,16
mlink2 = 348,84 кг, pC link2 = −0,14 м, I C link2 = 2,15 72,10 −0,31 кг м 2 , (2.3)
0,01 −1,16 −0,31 21,84
0,10 4,58 −0,28 0,09
mlink3 = 188,32 кг, pC link3 = −0,02 м, I C link3 = −0,28 17,31 0,03 кг м 2 , (2.4)
−0,04 0,09 0,03 16,81
33
0,98 0,35 0,03 0,00
mlink4 = 32,36 кг, pC link4 = 0,00 м, I C link4 = 0,03 0,56 0,00 кг м 2 , (2.5)
0,00 0,00 0,72
0,00
34
2.3.2.2 Динамические характеристики шарниров
Для корректного моделирования работы приводов манипулятора симуля-
тору необходима информация о типе шарнира (поворотный или призматиче-
ский), его кинематических ограничениях (минимальном qmin и максимальном
qmax значении обобщенной координаты, максимальной обобщенной скорости
qmax ), а также динамических характеристиках и ограничениях. Информацию о
последних необходимо добавить в URDF-описание манипулятора.
Динамическим ограничением, которое необходимо указать для шарниров,
является предельная обобщенная движущая сила Qmax (англ. Effort). Для пово-
ротных шарниров она соответствует предельному моменту Tmax , Н м , который
способен развивать привод.
Техническая документация манипулятора KUKA KR 150 R3100-2 QUAN-
TEC не содержит информацию о характеристиках приводов, однако грубую
оценку для моментов можно сделать, анализируя длины звеньев и величину пре-
дельно допустимой нагрузки: привод каждого звена должен выдерживать эту
нагрузку, а также нагрузку, которую создают последующие звенья.
Также для шарниров можно указать коэффициент вязкого трения (англ.
Damping) kdamping , Н м с и момент трения покоя (англ. Friction) M friction , Н м . По-
35
Дополним описание шарниров в Xacro-макросе этими характеристиками.
Фрагмент обновленного URDF-описания шарниров на примере шарнира первого
звена представлен в листинге 2.2.
Листинг 2.2 — URDF-описание шарнира первого звена
001 <joint name="joint_a1" type="revolute">
002 <origin xyz="0 0 0.645" rpy="0 0 0"/>
003 <parent link="base_link"/>
004 <child link="link_1"/>
005 <axis xyz="0 0 -1"/>
006 <limit effort="1350" lower="${radians(-185)}" upper="${radians(185)}"
velocity="${radians(105)}"/>
007 <dynamics damping="1.0" friction="0.0"/>
008 </joint>
37
Данный файл настраивает пространство имен робота: все параметры и все
узлы будут запущены не в глобальном пространстве /, а в пространстве
/robot_ns, что позволяет загружать в симуляцию произвольное количество раз-
личных манипуляторов при условии, что они имеют разные пространства имен.
Кроме того, robot_ns используется в качестве префикса для систем коор-
динат в ROS-пакете TF, отвечающем за публикацию преобразований координат
между звеньями робота и глобальной системой координат. Для этих же целей
запускаются узлы static_transform_publisher, публикующий преобразование
координат для базового звена робота, и robot_state_publisher, публикующий
преобразования координат между остальными звеньями робота.
Далее на сервер параметров ROS загружаются различные параметры ро-
бота: универсальное (URDF) и семантическое (SRDF) описание робота, пара-
метры регуляторов и решателя обратной задачи кинематики, кинематические
ограничения и настройки для алгоритмов планирования движения. Также узел
controller_manager загрузит существующие регуляторы приводов шарниров.
а)
б)
39
3 Разработка алгоритма планирования движения
40
3.2 Существующие реализации метода эластичных лент
а) б)
а) б)
42
( p, L) — расстояние от точки p до поверхности области L .
В свою очередь препятствия представляются в виде множества вокселей
вычисляется как
p − pk p − pk pk −1 − pk pk +1 − pk
f c k = kc k −1 + k +1 +
c
d + , (3.4)
p
k −1 − pk pk +1 − pk p
k −1 − pk pk +1 − pk
Для каждого вокселя pojk определяется ближайшая сфера pil k для вычисле-
(
iolj k = min poj k − pilk − il ,
i
) (3.5)
poj k − pil k
kr ( 0 − i j k ) o , io jl k 0 ,
ol
fr i j k = p j k − pi k
l
(3.6)
0, io jl k 0 ,
fr i k =
j
fr i j k 1, x 0,
, H ( x) =
( )
(3.7)
jH fr i j k 0, x 0.
fk = ( fr k + fc k ) ,
1 1
pe k = m 1. (3.8)
m m
Благодаря этому эластичная лента, описывающая путь для манипулятора, про-
должает двигаться до тех пор, пока не перейдет в состояние покоя.
Траектория манипулятора вычисляется за счет параметризации получен-
ного пути по времени. Определение положений, скоростей и ускорений шарни-
ров между узловыми точками пути осуществляется с помощью кусочно-линей-
ной интерполяции.
а) б)
в) г)
45
Рисунок 3.5 — Траектория движения промышленного
робота в среде с горизонтально движущимся препятствием
а) б)
в) г)
46
Рисунок 3.7 — Траектория движения промышленного
робота в среде с вертикально движущимся препятствием
а) б)
в) г)
47
Рисунок 3.9 — Траектория движения промышленного робота
в среде с вертикально движущимся и статическим препятствиями
а) б)
в) г)
48
4 Реализация алгоритма в ROS и моделирование в Gazebo
лака точек для каждой модели кэшируются, а координаты точек хранятся в ло-
кальных системах координат моделей. Перед отправкой сообщений с результи-
рующим облаком точек над облаками каждой модели производятся необходи-
мые геометрические преобразования в глобальную систему координат.
Полученные сообщения поступают на вход фильтру препятствий (англ.
Obstacle Filter). Данный узел ROS осуществляет предварительную обработку об-
лаков точек. Облака точек, которые строит наблюдатель препятствий, имеют су-
щественно более высокую плотность по сравнению с разрешением карты заня-
тости, которую строит OctoMap. Поэтому фильтр должен разрядить облако то-
чек, осуществив их выравнивание по регулярной воксельной сетке, и отбросить
точки, слишком сильно удаленные от робота. Фильтр публикует отфильтрован-
ные точки в тему /robot_ns/filter/points, откуда те поступают на вход фрейм-
ворку MoveIt. На основании этой информации OctoMap строит трехмерную
карту занятости.
Пример работы системы обнаружения препятствий представлен на ри-
сунке 4.2. На виртуальной сцене расположен манипулятор (в целях демонстра-
ции работы также рассматривается как препятствие) и несколько простейших
геометрических форм: куб, сфера и цилиндр, что показано на рисунке 4.2, а).
Наблюдатель препятствий строит плотное облако точек с шагом 50 миллимет-
ров, повторяющее форму моделей, что можно видеть на рисунке 4.2, б). Стоит
отметить, что в силу ограничений возможностей плагина звенья робота (как и
прочие модели, которые описываются полигональными сетками) представля-
ются в виде ограничивающих параллелепипедов. Фильтр препятствий умень-
шает количество точек, выравнивая их по регулярной воксельной сетке с разме-
ров вокселя 100 миллиметров как представлено на рисунке 4.2, в). Наконец на
рисунке 4.2, г) по полученному облаку точек строится карта занятости.
51
а) б)
в) г)
52
Также незначительные изменения претерпела виртуальная растягивающая
сила j -го вокселя в k -ой точке f r i j k , действующая на i -е звено, при вычислении
53
а)
б)
в)
г)
б)
в)
T = qk = ( q1
qN ) : qk = f −1 ( xe k ) ,
T
(4.5)
57
скорости рабочего органа с постоянными значениями ускорения при разгоне и
торможении робота. В этом случае скорость рабочего органа манипулятора опи-
сывается следующим законом:
2 s (t )a , s (t ) d acc. ,
acc.
58
Рисунок 4.5 — Пример работы регулятора траектории при движении
по траектории с плавно меняющейся ориентацией рабочего органа
а) б)
в) г)
59
4.4 Движение по пересекающимся траекториям
60
а) д)
б) е)
в) ж)
г) з)
61
4.5 Движение по параллельным траекториям
62
а) д)
б) е)
в) ж)
г) з)
63
4.6 Движение по траекториям в среде с препятствиями
64
а) д)
б) е)
в) ж)
г) з)
65
4.7 Анализ результатов моделирования
66
ЗАКЛЮЧЕНИЕ
67
фреймворком MoveIt. Описаны некоторые детали реализации алгоритма в ROS,
касающиеся обнаружения препятствий, планирования движения и работы регу-
лятора траектории.
Проведены эксперименты по моделированию движения манипуляторов в
симуляторе Gazebo. Представлены результаты моделирования движения по па-
раллельным и пересекающимся траекториям, а также в среде с препятствиями.
Осуществлен анализ результатов моделирования. На основании анализа
сделаны выводы о работоспособности алгоритма. Приведены основные направ-
ления для дальнейшего усовершенствования алгоритма.
68
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
69
— Текст : электронный // Proceedings of the 1999 IEEE International Symposium on
Assembly and Task Planning. — 1999. — Vol. 1. — P. 274–279.
9 Comparative Analysis of Collision-Free Path-Planning Methods for Multi-
Manipulator Systems / J.C. Fraile, J. Perez-Turiel, J.L. Gonzales-Snachez [et al.]. —
DOI 10.1017/S0263574706002888. — Текст : электронный // Robotica. — 2006. —
Vol. 24. — P. 711–726.
10 Khatib, O. Real-Time Obstacle Avoidance for Manipulators and Mobile Ro-
bots / O. Khatib. — DOI 10.1109/ROBOT.1985.1087247. — Текст : электронный //
Proceedings of the 1985 IEEE International Conference on Robotics and Automation.
— 1996. — Vol. 1. — P. 500–505.
11 Rimon, E. Exact Robot Navigation Using Artificial Potential Functions /
E. Rimon, D.E. Koditschek. — DOI 10.1109/70.163777. — Текст : электронный //
IEEE Transactions on Robotics and Automation. — 1992. — Vol. 8. — P. 501–518.
12 Reactive Approach to On-Line Path Planning for Robot Manipulators in Dy-
namic Environment / M. Mediavilla, J.L. Gonzalez, J.C. Fraile, J.R. Peran. — DOI
10.1017/S0263574702004071. — Текст : электронный // Robotica. — 2002. —
Vol. 20. — P. 375–384.
13 Selection of Strategies for Collision-Free Motion in Multi-Manipulator
Systems / M. Mediavilla, J.L. Fraile, I.J. Galindo, M.T. Gonzalez. — DOI
10.1023/A:1026248112092. — Текст : электронный // Journal of Intelligent and Ro-
botic Systems. — 2003. — Vol. 38. — P. 85–104.
14 Task-Oriented Motion Planning for Multi-Arm Robotic Systems / F. Basile,
F. Caccavale, P. Chiacchio [et al.]. — DOI 10.1016/j.rcim.2012.02.007. — Текст :
электронный // Robotics and Computer-Integrated Manufacturing. — 2012. —
Vol. 28. — P. 569–582.
15 A Decentralized Kinematic Control Architecture for Collaborative and Co-
operative Multi-Arm Systems / F. Basile, F. Caccavale, P. Chiacchio [et al.]. — DOI
10.1016/j.mechatronics.2013.08.008. — Текст : электронный // Mechatronics. —
2013. — Vol. 23. — P. 1100–1112.
70
16 Gan, Y. Off-Line Programming Techniques for Multirobot Cooperation Sys-
tem / Y. Gan, X. Dai, D. Li. — DOI 10.5772/56506. — Текст : электронный // Inter-
national Journal of Advanced Robotic Systems. — 2013. — Vol. 10. — P. 1–17.
17 KR QUANTEC: Industrial Robots : [сайт] / разработчик: KUKA Roboter.
— Augsburg, Bavaria, 2023. — URL: https://www.kuka.com/en-de/products/robot-
systems/industrial-robots/kr-quantec (дата обращения: 01.05.2023).
18 KUKA Experimental : [сайт]. — URL: http://wiki.ros.org/kuka_experi-
mental (дата обращения: 01.05.2023). — Электронная программа : электронная.
19 MoveIt Tutorials: MoveIt Setup Assistant : [сайт] — URL: https://ros-plan-
ning.github.io/moveit_tutorials/doc/setup_assistant/setup_assistant_tutorial.html (дата
обращения: 01.05.2023). — Электронная программа : электронная.
20 RViz : [сайт]. — URL: http://wiki.ros.org/rviz (дата обращения:
01.05.2023). — Электронная программа : электронная.
21 Gazebo : [сайт]. — URL: https://gazebosim.org/home (дата обращения:
01.05.2023). — Электронная программа : электронная.
22 ROS Control: A Generic and Simple Control Framework for ROS / S. Chitta,
E. Marder-Eppstein, W. Meeussen [et al.] — DOI 10.21105/joss.00456. — Текст :
электронный // The Journal of Open Source Software. — 2017. — Vol. 2. — P. 1–5.
23 ROS Control : [сайт]. — URL: http://wiki.ros.org/ros_control (дата обра-
щения: 01.05.2023). — Электронная программа : электронная.
24 Tutorial: ROS Control. — Текст : электронный // Gazebo : официальный
сайт. — URL: https://classic.gazebosim.org/tutorials?tut=ros_control (дата обраще-
ния: 01.05.2023).
25 Sucan, A.I. The Open Motion Planning Library / I.A. Sucan, M. Moll,
L.E. Kavraki. — DOI 10.1109/MRA.2012.2205651. — Текст : электронный // IEEE
Robotics & Automation Magazine. — 2012. — Vol. 19. — P. 72–82.
26 CHOMP: Covariant Hamiltonian Optimization for Motion Planning /
M. Zucker, N. Ratliff, A.D. Dragan [et al.]. — DOI 10.1177/0278364913488805. —
Текст : электронный // The International Journal of Robotics Research. — 2013. —
Vol. 32. — P. 1–45.
71
27 STOMP: Stochastic Trajectory Optimization for Motion Planning / M. Kala-
krishnan, S. Chitta, E. Theodorou [et al.]. — DOI 10.1109/ICRA.2011.5980280. —
Текст : электронный. — // IEEE International Conference on Robotics and Automa-
tion. — 2011. — Vol. 1. — P. 4569–4574.
28 Finding Locally Optimal, Collision Free Trajectories with Sequential Convex
Optimization / J. Schulman, J. Ho, A. Lee [et al.]. — DOI 10.15607/RSS.2013.IX.031.
— Текст : электронный // Robotics: Science and Systems. —2013. — Vol. 9. —
P. 1–10.
29 Brock, O. Executing Motion Plans for Robots with Many Degrees of
Freedom in Dynamic Environment / O. Brock, O. Khatib. — DOI 10.1109/RO-
BOT.1998.676237. — Текст : электронный // IEEE International Conference on Ro-
botics and Automation. — 1998. — Vol. 1. — P. 1–6.
30 Using Elastic Bands for Collision Avoidance in Collaborative Robotics /
T. Kot, R. Wierbica, P. Oscadal [et al.]. — DOI 10.1109/ACCESS.2022.3212407. —
Текст : электронный // IEEE Access. — 2022. — Vol. 9. — P. 106972–106987.
31 MoveIt Docs: Plugin Interface. — Текст : электронный // MoveIt : офици-
альный сайт. — URL: https://moveit.ros.org/documentation/plugins/ (дата обраще-
ния: 01.05.2023).
32 OctoMap: An Efficient Probabilistic 3D Mapping Framework Based on Oc-
trees / A. Hornung, K.M. Wurm, M. Bennewitz [et al.]. — DOI 10.1007/s10514-012-
9321-0. — Текст : электронный // Autonomous Robots. — 2013. — Vol. 34. —
P. 189–206.
33 MoveIt Tutorials: Perception Pipeline Tutorial : [сайт] — URL: https://ros-
planning.github.io/moveit_tutorials/doc/perception_pipeline/perception_pipeline_tuto-
rial.html (дата обращения: 01.05.2023). — Электронная программа : электронная.
72
ПРИЛОЖЕНИЕ А
Файл загрузки модели робота
73
ПРИЛОЖЕНИЕ Б
Файл загрузки параметров и узлов робота
74
Продолжение листинга Б.1
051 <!-- Fix for error with RobotModel in RViz -->
052 <node pkg="tf" type="static_transform_publisher" name="world_publisher"
args="0 0 0 0 0 0 world $(arg robot_ns)/world 100"/>
053
054 <!-- Load joint controller parameters for Gazebo -->
055 <rosparam command="load" file="$(arg robot_moveit_config_path)/config/-
ros_controllers.yaml"/>
056 <rosparam command="load" file="$(arg robot_moveit_config_path)/config/-
gazebo_controllers.yaml"/>
057
058 <!-- Load kinematics parameters for MoveIt -->
059 <group ns="robot_description_kinematics">
060 <rosparam command="load" file="$(arg robot_moveit_config_path)/config/-
kinematics.yaml"/>
061 </group>
062
063 <!-- Load limit kinematic constraints for MoveIt -->
064 <group ns="robot_description_planning">
065 <rosparam command="load" file="$(arg robot_moveit_config_path)/config/-
joint_limits.yaml"/>
066 <rosparam command="load" file="$(arg robot_moveit_config_path)/config/-
cartesian_limits.yaml"/>
067 </group>
068
069 <!-- Load SRDF for MoveIt -->
070 <param name="robot_description_semantic" textfile="$(arg robot_moveit_con-
fig_path)/config/$(arg robot_name).srdf"/>
071
072 <!-- Load MoveIt Planners -->
073 <group ns="move_group/planning_pipelines">
074 <!-- OMPL -->
075 <include file="$(arg robot_moveit_config_path)/launch/planning_pipeline.
launch.xml">
076 <arg name="pipeline" value="ompl"/>
077 </include>
078
079 <!-- CHOMP -->
080 <include file="$(arg robot_moveit_config_path)/launch/planning_pipeline.
launch.xml">
081 <arg name="pipeline" value="chomp"/>
082 </include>
083
084 <!-- STOMP -->
085 <include file="$(arg robot_moveit_config_path)/launch/planning_pipeline.
launch.xml">
086 <arg name="pipeline" value="stomp"/>
087 </include>
088
089 <!-- Pilz Industrial Motion -->
090 <include file="$(arg robot_moveit_config_path)/launch/planning_pipeline.
launch.xml">
091 <arg name="pipeline" value="pilz_industrial_motion_planner"/>
092 </include>
093
094 <!-- Elastic Band Planner -->
095 <include file="$(arg robot_moveit_config_path)/launch/planning_pipeline.
launch.xml">
096 <arg name="pipeline" value="eband"/>
097 </include>
098 </group>
75
Продолжение листинга Б.1
099
100 <!-- Spawn Gazebo ROS controllers -->
101 <node pkg="controller_manager" type="spawner" name="gazebo_control-
ler_spawner" respawn="false" output="screen" args="joint_state_controller
arm_controller"/>
102
103 <!-- Trajectory Execution Functionality -->
104 <group ns="move_group">
105 <param name="ros_control_namespace" value="/$(arg robot_ns)/"/>
106 <include file="$(arg robot_moveit_config_path)/launch/trajectory_execu-
tion.launch.xml">
107 <arg name="moveit_manage_controllers" value="true"/>
108 <arg name="moveit_controller_manager" value="ros_control"/>
109 <arg name="fake_execution_type" value="interpolate"/>
110 </include>
111 </group>
112
113 <!-- Load move_group node for planning and trajectory execution -->
114 <node pkg="moveit_ros_move_group" type="move_group" name="move_group" res-
115 pawn="false" output="screen">
<env name="DISPLAY" value="$(optenv DISPLAY :0)"/>
116
117 <param name="capabilities" value=""/>
118 <param name="disable_capabilities" value=""/>
119 <param name="allow_trajectory_execution" value="true"/>
120 <param name="default_planning_pipeline" value="ompl"/>
121 <param name="monitor_dynamics" value="false"/>
122 <param name="sense_for_plan/max_safe_path_cost" value="1"/>
123
124 <param name="planning_scene_monitor/publish_state_updates"
value="true"/>
125 <param name="planning_scene_monitor/publish_planning_scene"
value="true"/>
126 <param name="planning_scene_monitor/publish_geometry_updates"
value="true"/>
127 <param name="planning_scene_monitor/publish_transforms_updates"
value="true"/>
128 </node>
129 </group>
130 </launch>
131
76
ПРИЛОЖЕНИЕ В
Файл конфигурации регуляторов приводов
77
Продолжение листинга В.1
056 gains:
057 joint_a1:
058 p: 10000
059 d: 100
060 i: 0.01
061 i_clamp: 1
062 joint_a2:
063 p: 10000
064 d: 100
065 i: 0.01
066 i_clamp: 1
067 joint_a3:
068 p: 10000
069 d: 100
070 i: 0.01
071 i_clamp: 1
072 joint_a4:
073 p: 10000
074 d: 100
075 i: 0.01
076 i_clamp: 1
077 joint_a5:
078 p: 10000
079 d: 100
080 i: 0.01
081 i_clamp: 1
082 joint_a6:
083 p: 10000
084 d: 100
085 i: 0.01
086 i_clamp: 1
087
088 controller_list:
089 - name: arm_controller
090 action_ns: follow_joint_trajectory
091 default: true
092 type: FollowJointTrajectory
093 joints:
094 - joint_a1
095 - joint_a2
096 - joint_a3
097 - joint_a4
098 - joint_a5
099 - joint_a6
100
78