Содержание
Составители ......................................................................................................11
Введение............................................................................................................12
Глава 1. Начало работы с операционной системой
для робота (ROS)............................................................................................17
Технические условия ............................................................................................17
Введение в ROS .....................................................................................................18
Концепции ROS.................................................................................................20
Установка ROS на Ubuntu .................................................................................23
Введение в catkin ..............................................................................................28
Создание пакета ROS........................................................................................29
Введение в Gazebo ............................................................................................36
Итоги .....................................................................................................................39
Вопросы.................................................................................................................39
Глава 2. Основные понятия роботов
с дифференциальным приводом............................................................40
Математическое моделирование робота............................................................40
Введение в систему дифференциального привода и кинематику
робота ................................................................................................................41
Прямая кинематика дифференциального робота .............................................43
Объяснение уравнений прямой кинематики.................................................43
Обратная кинематика ..........................................................................................48
Итоги .....................................................................................................................49
Вопросы.................................................................................................................49
Дополнительная информация.............................................................................49
Глава 3. Моделирование робота с дифференциальным
приводом...........................................................................................................50
Технические требования......................................................................................51
Требования к сервисному роботу........................................................................51
Приводной механизм ходовой части робота......................................................51
Выбор двигателей и колес................................................................................52
Результаты проектирования............................................................................53
Содержание  7
Конструкция шасси робота ..............................................................................53
Установка LibreCAD, Blender и MeshLab..............................................................55
Установка LibreCAD ..........................................................................................56
Установка Blender .............................................................................................56
Установка MeshLab ...........................................................................................56
Создание 2D CAD-чертежа робота с помощью LibreCAD...................................56
Конструкция опорной плиты робота ..............................................................59
Конструкция нижней и верхней стоек ...........................................................61
Конструкция колеса и крепления для колеса и мотора .................................62
Конструкция опорного колеса .........................................................................65
Конструкция средней плиты ...........................................................................66
Конструкция верхней плиты ...........................................................................67
Работа с 3D-моделью робота с использованием Blender...................................68
Скрипты Python в Blender................................................................................69
Введение в API Blender Python.........................................................................70
Скрипт Python модели робота .........................................................................72
Создание модели URDF-робота .......................................................................79
Создание пакета описания ChefBot в ROS ......................................................80
Итоги .....................................................................................................................84
Вопросы.................................................................................................................85
Дополнительная информация.............................................................................85
Глава 4. Моделирование дифференциального привода
робота, управляемого операционной системой ROS......................86
Технические условия ............................................................................................87
Начало работы с симулятором Gazebo................................................................87
Графический интерфейс пользователя Gazebo ..............................................88
Работа с симулятором TurtleBot 2 .......................................................................92
Перемещение робота .......................................................................................97
Создание симуляции в Chefbot............................................................................99
Преобразование глубины изображения с помощью лазерного сканера....100
Теги и плагины URDF для моделирования Gazebo.......................................101
Визуализация данных датчика робота..............................................................106
Начало работы с одновременной локализацией
и картографированием ..................................................................................108
Создание карты с помощью SLAM ................................................................109
Начало работы с адаптивным методом локализации
Монте-Карло ..................................................................................................110
Реализация AMCL в среде Gazebo..................................................................112
Автономная навигация Chefbot в отеле с испол
8  Содержание
Глава 5. Проектирование оборудования и схем ChefBot............116
Технические условия ..........................................................................................117
Спецификации оборудования Chefbot..............................................................117
Структурная схема робота .................................................................................117
Двигатель и энкодер.......................................................................................118
Драйвер двигателя..........................................................................................120
Встроенный контроллер ................................................................................123
Ультразвуковые датчики................................................................................124
Инерциальный блок измерения (акселерометр и гироскоп)......................126
Kinect/Orbbec Astra .........................................................................................127
Центральный процессор ................................................................................128
Динамики/микрофон .....................................................................................129
Источник питания/аккумулятор ...................................................................130
Как работает оборудование ChefBot?................................................................131
Итоги ...................................................................................................................132
Вопросы...............................................................................................................133
Дополнительная информация...........................................................................133
Глава 6. Согласование приводов и датчиков
с контроллером робота..............................................................................134
Технические условия ..........................................................................................135
Согласование редукторного двигателя постоянного тока с Tiva C
LaunchPad............................................................................................................135
Дифференциальный привод колесного робота............................................137
Установка Energia IDE.....................................................................................139
Код взаимодействия с двигателями..............................................................143
Интерфейс квадратурного энкодера с Tiva C Launchpad.................................146
Обработка данных энкодера..........................................................................147
Код согласования квадратурного энкодера ..................................................150
Работа с приводом Dynamixel............................................................................154
Работа с ультразвуковыми датчиками расстояния..........................................157
Согласование HC-SR04 с Tiva C LaunchPad ...................................................157
Работа с ИК-датчиком расстояния ....................................................................163
Работа с инерционным измерительным модулем...........................................166
Инерциальная навигация ..............................................................................166
Взаимодействие MPU 6050 с Tiva C LaunchPad.............................................167
Код согласования в Energia ............................................................................170
Итоги ...................................................................................................................173
Вопросы...............................................................................................................173
Дополнительная информация...........................................................................173
Содержание  9
Глава 7. Согласование датчиков зрения с ROS ................................174
Технические требования....................................................................................174
Список робототехнических датчиков зрения и библиотек для работы
с изображением ..................................................................................................175
Pixy2/CMUcam5 ...............................................................................................175
Веб-камера Logitech C920 ..............................................................................176
Kinect 360.........................................................................................................176
Intel RealSense серии D400 .............................................................................177
Датчик глубины изображения Orbbec Astra .................................................179
Введение в OpenCV, OpenNI и PCL.....................................................................180
Что такое OpenCV?..........................................................................................180
Что такое OpenNI? ..........................................................................................184
Что такое PCL? ................................................................................................185
Программирование Kinect с использованием Python ROS, OpenCV
и OpenNI..............................................................................................................186
Как запустить драйвер OpenNI......................................................................186
Интерфейс ROS в формате OpenCV...............................................................187
Согласование Orbbec Astra с ROS.......................................................................191
Установка драйвера Astra-ROS ......................................................................191
Работа с облаками точек с помощью Kinect, ROS, OpenNI и PCL ....................192
Открытие устройства и создание облака точек............................................192
Преобразование данных облака точек в данные лазерного
сканирования......................................................................................................193
Работа в SLAM с помощью ROS и Kinect ...........................................................195
Итоги ...................................................................................................................196
Вопросы...............................................................................................................196
Дополнительная информация...........................................................................196
Глава 8. Создание аппаратного обеспечения ChefBot
и интеграция ПО программного обеспечения........................................197
Технические требования....................................................................................197
Сборка ChefBot из ранее изготовленных деталей и комплектующих............198
Конфигурирование бортового компьютера ChefBot и установка
пакетов ChefBot ROS...........................................................................................203
Согласование датчиков ChefBot с Tiva C LaunchPad ........................................204
Встроенный код для ChefBot..........................................................................206
Написание драйвера Ros Python для ChefBot...................................................208
Функции исполняемого файла ChefBot ROS.....................................................212
Элементы Python ChefBot и запуск файлов ......................................................213
Построение карты комнаты с помощью SLAM
10  Содержание
ROS: локализация и навигация .....................................................................221
Итоги ...................................................................................................................223
Вопросы...............................................................................................................224
Дополнительная информация...........................................................................224
Глава 9. Разработка графического интерфейса
для робота с использованием Qt и Python........................................225
Технические требования....................................................................................226
Установка Qt на Ubuntu 16.04 LTS......................................................................226
Взаимодействие Python и Qt .............................................................................227
PyQt..................................................................................................................227
PySide...............................................................................................................227
Работа с PyQt и PySide ........................................................................................228
Представляем Qt Designer..............................................................................228
Сигналы и слоты Qt........................................................................................230
Преобразование UI-файла в код Python .......................................................232
Определение и добавление слота в код PyQt ...............................................232
Работа с приложением Hello World GUI ........................................................234
ChefBot – управление с помощью графического интерфейса.........................235
Установка и работа с rqt в Ubuntu 16.04 LTS......................................................240
Итоги ...................................................................................................................242
Вопросы...............................................................................................................243
Дополнительная литература..............................................................................243
Подводим итоги............................................................................................244
Предметный указатель ..............................................................................248
С