Изучение робототехники с помощью Python
Покупка
Тематика:
Программирование и алгоритмизация
Издательство:
ДМК Пресс
Автор:
Лентин Джозеф
Перевод:
Корягин А. В.
Год издания: 2019
Кол-во страниц: 250
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-97060-749-7
Артикул: 767882.01.99
В данной книге рассказывается, как с нуля построить автономный мобильный обслуживающий робот, с помощью которого можно подавать еду в квартире, гостинице и ресторане. Благодаря подробным пошаговым инструкциям читатель узнает весь процесс разработки робота - начиная с теоретической части (принципы дифференциального привода, кинематики и обратной кинематики) и заканчивая практической реализацией (сборка отдельных компонентов, согласование приводов и датчиков с контроллерами). Много внимания уделено программной части - использованию метаоперационной системы ROS, моделированию в Gazebo, обработке изображений в OpenCV, разработке GUI робота на Qt и Python. Издание предназначено для широкого круга читателей, увлеченных робототехникой, программированием и самостоятельной сборкой различных DIY-устройств.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.04: Программная инженерия
- 15.03.06: Мехатроника и роботехника
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Лентин Джозеф Изучение робототехники с помощью Python
Lentin Joseph Learning Robotics using Python Second Edition Design, simulate, program, and prototype an autonomous mobile robot using ROS, OpenCV, PCL, and Python BIRMINGHAM – MUMBAI
Лентин Джозеф Изучение робототехники с помощью Python Проектирование, моделирование, программирование и прототипирование интерактивного автономного мобильного робота с нуля с помощью Python, ROS, Open-CV Москва, 2019
УДК 004.43, 59.30 ББК 32.81 Д42 Джозеф Л. Д42 Изучение робототехники с помощью Python / пер. с анг. А. В. Корягина. – М.: ДМК Пресс, 2019. – 250 с.: ил. ISBN 978-5-97060-749-7 В данной книге рассказывается, как с нуля построить автономный мобильный обслуживающий робот, с помощью которого можно подавать еду в квартире, гостинице и ресторане. Благодаря подробным пошаговым инструкциям читатель узнает весь процесс разработки робота – начиная с теоретической части (принципы дифференциального привода, кинематики и обратной кинематики) и заканчивая практической реализацией (сборка отдельных компонентов, согласование приводов и датчиков с контроллерами). Много внимания уделено программной части – использованию метаоперационной системы ROS, моделированию в Gazebo, обработке изображений в OpenCV, разработке GUI робота на Qt и Python. Издание предназначено для широкого круга читателей, увлеченных робототехникой, программированием и самостоятельной сборкой различных DIY-устройств. УДК 004.43, 59.30 ББК 32.81 Authorized Russian translation of the English edition of Learning Robotics using Python, Second Edition ISBN 9781788623315 © 2018 Packt Publishing. This translation is published and sold by permission of Packt Publishing, which owns or controls all rights to publish and sell the same. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN 978-1-78862-331-5 (анг.) © 2018 Packt Publishing ISBN 978-5-97060-749-7 (рус.) © Оформление, издание, перевод, ДМК Пресс, 2019
Посвящается моей матери, Jancy Joseph и моему отцу C. G. Joseph которые поддержали меня в создании этой книги
Содержание Составители ......................................................................................................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 в отеле с использованием Gazebo ............114 Итоги ...................................................................................................................115 Вопросы ...............................................................................................................115 Дополнительная информация ...........................................................................115
Содержание Глава 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 в ROS ..................................220
Содержание 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