Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Изучение робототехники с помощью Python

Покупка
Артикул: 767882.01.99
Доступ онлайн
590 ₽
В корзину
В данной книге рассказывается, как с нуля построить автономный мобильный обслуживающий робот, с помощью которого можно подавать еду в квартире, гостинице и ресторане. Благодаря подробным пошаговым инструкциям читатель узнает весь процесс разработки робота - начиная с теоретической части (принципы дифференциального привода, кинематики и обратной кинематики) и заканчивая практической реализацией (сборка отдельных компонентов, согласование приводов и датчиков с контроллерами). Много внимания уделено программной части - использованию метаоперационной системы ROS, моделированию в Gazebo, обработке изображений в OpenCV, разработке GUI робота на Qt и Python. Издание предназначено для широкого круга читателей, увлеченных робототехникой, программированием и самостоятельной сборкой различных DIY-устройств.
Лентин, Д. Изучение робототехники с помощью Python : практическое руководство / Д. Лентин ; пер. с анг. А. В. Корягина. - Москва : ДМК Пресс, 2019. - 250 с. - ISBN 978-5-97060-749-7. - Текст : электронный. - URL: https://znanium.com/catalog/product/1840450 (дата обращения: 23.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Лентин Джозеф

Изучение робототехники  
с помощью 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

Доступ онлайн
590 ₽
В корзину