Ллойд Бромбах | Практическая робототехника. C++ и Raspberry Pi (2023) [PDF]
Автор: Ллойд Бромбах
Перевод: Владимир Мелькин
Издательство: БХВ-Петербург
ISBN: 978-5-9775-1200-8
Жанр: Raspberry Pi, Кибернетика, Микроконтроллеры, Программирование, Робототехника, С++
Формат: PDF
Качество: Изначально электронное (ebook)
Иллюстрации: Цветные и черно-белые
Описание:Рассказано о технологии создания автономных роботов на базе одноплатного компьютера Raspberry Pi и о разработке программ для них на языке С++. Показаны принципы написания и даны примеры кода для контроллера привода двигателя, продемонстрированы способы использования датчиков для обнаружения препятствий и построения карт на основе данных лидара. Описаны методы разработки собственных алгоритмов автономного планирования траектории движения, приведен код для автоматической отправки путевых точек контроллеру привода. Рассмотрены библиотеки С++ для написания программ картографии и навигации автономных роботов, даны сведения об использовании контактов аппаратного интерфейса Raspberry Pi GPIO.
Электронный архив на сайте издательства содержит код описанных в книге программ.
Оглавление:
Об авторе ....................................................................................................................... 16
Благодарности ................................................................................................................ 17
Предисловие ................................................................................................................... 18
Вступительное слово ........................................................................................................ 21
Введение ......................................................................................................................... 23
ЧАСТЬ I. ВВЕДЕНИЕ В КОМПЬЮТЕРЫ ДЛЯ РОБОТОТЕХНИКИ ................................................ 25
Глава 1. Выбор и настройка компьютера для робота ........................................................... 27
Что такое Raspberry Pi? ..................................................................................................... 27
В чем же разница? ............................................................................................................ 28
Значит, Raspberry Pi — единственный вариант контроллера для управления
роботом? ........................................................................................................................ 28
Разве Raspberry Pi не предназначен для школ, энтузиастов-электронщиков
и игрушек? Я хотел узнать о настоящей робототехнике. ..................................................... 29
Какие модели Raspberry Pi существуют и почему не все из них подходят
для наших целей?............................................................................................................. 29
Raspberry Pi Zero и Raspberry Pi ZeroW ............................................................................... 31
Raspberry Pi 2B ................................................................................................................. 31
Raspberry Pi 3B — лучший выбор! ....................................................................................... 32
Raspberry Pi 3B+ ................................................................................................................ 32
Новая модель Raspberry Pi 4 ................................................................................................ 33
Выбор операционной системы ............................................................................................. 33
Raspbian ............................................................................................................................ 34
Ubuntu .............................................................................................................................. 34
Установка и настройка операционной системы ..................................................................... 35
Установка полной Ubuntu Desktop на ноутбук или настольный ПК ......................................... 36
Установка Lubuntu на Raspberry Pi ...................................................................................... 36
Установка и настройка интегрированной среды разработки (IDE) .......................................... 40
Visual studio Code для ноутбука или настольного ПК ............................................................. 40
Code Blocks для Raspberry Pi ................................................................................................ 41
Заключение..................................................................................................................................... 42
Вопросы .......................................................................................................................................... 42
Глава 2. Назначение и использование контактов интерфейса GPIO ...................................... 43
Общие сведения о GPIO ................................................................................................................ 43
Что такое интерфейс GPIO ........................................................................................................... 43
Какие же именно функции выполняет GPIO? ..................................................................... 45
Электроника для программистов ................................................................................ 45
Типы выходных данных ............................................................................................... 50
Типы входных данных ................................................................................................. 52
Некоторые распространенные радиодетали ............................................................... 53
Контакты GPIO в качестве выходов ........................................................................... 57
Две системы нумерации контактов GPIO................................................................... 58
Контакты GPIO в качестве входов .............................................................................. 59
Как получить доступ к контактам GPIO Raspberry Pi с помощью программ на C++ ............. 61
Библиотека PIGPIO ....................................................................................................................... 62
Установка и настройка библиотеки PIGPIO ....................................................................... 62
Удостоверимся, что Code::Blocks может обращаться к PIGPIO .............................................. 63
Запуск программ PIGPIO ................................................................................................... 64
Наш первый проект — hello_blink ...................................................................................... 64
Цифровой вход, управляющий цифровым выходом — hello_button ....................................... 67
Функции обратного вызова для обработки событий GPIO .................................................... 68
Заключение..................................................................................................................................... 71
ЧАСТЬ II. НАЧИНАЕМ ПРОЕКТИРОВАТЬ РОБОТА .................................................................. 73
Глава 3. Платформа для робота......................................................................................... 75
Общие сведения ............................................................................................................................. 75
Габаритные размеры и режим эксплуатации .............................................................................. 76
Что лучше — дифференциальный рулевой привод или привод Аккермана? .......................... 78
Дифференциальный рулевой привод ................................................................................... 78
Рулевой привод Аккермана .................................................................................................. 79
Готовые платформы для роботов ................................................................................................. 79
Большие готовые платформы ............................................................................................... 79
Маленькие готовые роботы .................................................................................................. 80
Советы по созданию собственного робота .................................................................................. 82
Материалы для конструирования ......................................................................................... 82
Аккумуляторы ............................................................................................................... 83
Ходовая часть ................................................................................................................ 83
Где найти детали для роботов ..................................................................................... 84
Перепрофилирование роботов-пылесосов или автомобилей с дистанционным
управлением ................................................................................................................................... 85
Роботы-пылесосы с интерфейсом ........................................................................................ 86
Взаимодействие с Roomba ........................................................................................... 87
"Разморозка" Roomba ................................................................................................... 90
Роботы-пылесосы без интерфейса ....................................................................................... 91
Перепрофилирование автомобилей и грузовиков с дистанционным управлением ................ 92
Заключение..................................................................................................................................... 94
Вопросы .......................................................................................................................................... 94
Глава 4. Типы двигателей для роботов и управление двигателями ....................................... 95
Общие сведения ............................................................................................................................. 95
Типы двигателей ............................................................................................................................ 95
Сравнение двигателей переменного (AC) и постоянного (DC) токов ..................................... 96
Щеточные двигатели постоянного тока .............................................................................. 97
Сервоприводы ........................................................................................................................ 98
Шаговые двигатели ............................................................................................................... 99
Бесщеточные двигатели постоянного тока (BLDC) ......................................................... 100
Принципы работы транзистора и контроллеры двигателей .................................................... 100
Простейший способ управления: включено/выключено ................................................. 101
Транзисторы ......................................................................................................................... 102
Широтно-импульсная модуляция (ШИМ) ........................................................................ 105
ШИМ для создания аналоговых напряжений .......................................................... 105
ШИМ в качестве управляющего сигнала ................................................................. 106
Драйверы и контроллеры двигателей ................................................................................ 107
Драйверы двигателей ................................................................................................. 108
Управление двигателями с помощью драйвера двигателя на основе
двойного Н-моста L298N ........................................................................................... 109
Контроллеры двигателей ........................................................................................... 112
Заключение................................................................................................................................... 113
Вопросы ........................................................................................................................................ 114
Бонусное задание ......................................................................................................................... 114
Глава 5. Связь с датчиками и другими устройствами ................................................................ 115
Общие сведения ........................................................................................................................... 115
Двоичные (логические) сигналы ................................................................................................ 115
Выключатели с защитой от дребезга контактов ....................................................................... 116
Колесные энкодеры ..................................................................................................................... 117
Двоичные сигналы от аналоговых датчиков ............................................................................. 118
Сводная информация о передаче данных с помощью двоичных сигналов ............................ 119
Передача данных через последовательный интерфейс ............................................................ 119
Последовательная передача данных с помощью UART .......................................................... 119
Настройка Raspberry Pi и тестирование последовательной передачи данных
через UART .................................................................................................................................. 121
Устранение ошибки при открытии последовательного порта.................................................... 124
Передача данных через последовательную шину I2C ............................................................. 124
Настройка и использование устройства I2C с Raspberry Pi ....................................................... 126
Пример и тестовая программа: hello_i2c_lsm303 ...................................................................... 127
Заключение................................................................................................................................... 130
Вопросы ........................................................................................................................................ 131
Глава 6. Дополнительное оборудование ......................................................................................... 132
Общие сведения ........................................................................................................................... 132
Источники питания ..................................................................................................................... 132
Источники питания напряжением 5 В ......................................................................................... 133
Регулируемые источники питания ............................................................................................. 133
Релейные блоки ........................................................................................................................... 134
Преобразователи логических уровней ....................................................................................... 135
Преобразователи интерфейса (FTDI) ......................................................................................... 136
Микроконтроллеры Arduino ....................................................................................................... 137
Микроконтроллеры Digispark ..................................................................................................... 137
Заключение................................................................................................................................... 138
Вопросы ........................................................................................................................................ 138
Глава 7. Установка компьютера, управляющего роботом .................................................................. 139
Общие сведения ........................................................................................................................... 139
Последовательность шагов ......................................................................................................... 140
Установка компьютера и подача питания на него .................................................................... 140
Соединение компьютера с остальными частями робота .......................................................... 141
Заключение................................................................................................................................... 143
Вопросы ........................................................................................................................................ 144
ЧАСТЬ III. ЛОГИКА ФУНКЦИОНИРОВАНИЯ РОБОТА .................................................................. 145
Глава 8. Стратегия управления роботом ................................................................................. 147
Общие сведения ........................................................................................................................... 147
Управление роботом: верхний и нижний уровни ..................................................................... 147
Основной контур управления ..................................................................................................... 149
Наблюдение и сравнение ............................................................................................................ 149
Реагирование ........................................................................................................................ 150
Воздействие .......................................................................................................................... 150
Контроллеры с разомкнутым и замкнутым контуром управления ......................................... 153
Разработка контроллеров верхнего уровня (главных контроллеров) ..................................... 154
Разработка контроллеров нижнего уровня (технологических контроллеров) ....................... 156
Двухпозиционные контроллеры (регуляторы типа включено-выключено) ....................... 157
Пропорциональные контроллеры ....................................................................................... 157
Проектирование контроллеров, допускающих некоторую погрешность ........................... 161
Установка минимального значения выходного сигнала .................................................. 161
За рамками пропорциональных контроллеров .................................................................. 162
Заключение................................................................................................................................... 163
Вопросы ........................................................................................................................................ 163
Глава 9. Организация совместной работы компонентов ....................................................... 164
Общие сведения ........................................................................................................................... 164
Что такое операционная система для роботов? ........................................................................ 165
ROS или создание собственного ПО для управления роботами? ........................................... 165
ROS и область коммерческой робототехники .......................................................................... 166
Установка ROS ............................................................................................................................ 167
Установка ROS Melodic на ноутбуке или настольном компьютере ...................................... 167
Установка ROS Kinetic на Raspberry Pi 3B ........................................................................ 168
Быстрое тестирование ROS ................................................................................................ 170
Краткий экскурс в ROS ............................................................................................................... 171
Пакеты, узлы, издатели, подписчики, топики и сообщения ................................................... 171
Полезные приемы ........................................................................................................................ 177
Создание и написание пакетов и узлов ROS ............................................................................. 178
Файловая система ROS ....................................................................................................... 178
Создание пакетов ROS ........................................................................................................ 178
Написание программ ROS (узлов) ..................................................................................... 180
Загрузка, просмотр и запуск программ, скачанных для этой главы ....................................... 186
Как облегчить жизнь с помощью файлов roslaunch и .launch ................................................. 187
Заключение................................................................................................................................... 188
Вопросы ........................................................................................................................................ 189
Глава 10. Карты для определения местоположения робота ...................................................... 190
Общие сведения ........................................................................................................................... 190
Угол, курс, расстояние: общепринятые соглашения ................................................................ 191
Получение данных с датчиков ................................................................................................... 193
Сетчатая карта занятости ............................................................................................................ 194
Построение сетчатых карт занятости (OGM) с помощью данных, получаемых
с датчиков ..................................................................................................................................... 196
Маркировка занятых ячеек ......................................................................................................... 199
Маркировка свободных ячеек .................................................................................................... 202
Заключительные шаги при составлении карты......................................................................... 202
Публикация карты в виде сообщения ROS ............................................................................... 203
Преобразования в ROS ................................................................................................................ 204
Для чего нужны преобразования ........................................................................................ 205
Использование преобразований в ROS .............................................................................. 206
Публикация преобразований с помощью static transform publisher ....................................... 207
Публикация сообщений от узлов с помощью транслятора преобразований
(transform broadcaster) ......................................................................................................... 208
Получение данных о преобразованиях в узлах ................................................................. 209
Просмотр данных о преобразовании из командной строки .................................................. 211
Упрощение картографирования с помощью Gmapping ........................................................... 211
Общие сведения о Gmapping .............................................................................................. 212
Установка Gmapping ............................................................................................................ 212
Запуск Gmapping и задание параметров в файлах запуска ...................................................... 212
Этапы создания карты ................................................................................................................. 214
Визуализация создания карты в реальном времени ................................................................. 214
Сохранение карты и ее последующее использование .............................................................. 216
Сохранение карт .................................................................................................................. 216
Загрузка ранее сохраненной карты .................................................................................... 217
Заключение................................................................................................................................... 217
Вопросы ........................................................................................................................................ 217
Глава 11. Отслеживание перемещений и локализация робота ............................................... 219
Общие сведения ........................................................................................................................... 219
Поза робота .................................................................................................................................. 220
Преобразование углов Эйлера в кватернионы .................................................................. 221
Преобразование кватернионов в углы Эйлера .................................................................. 223
Одометрия и точный расчет траектории ................................................................................... 223
Колесная одометрия ............................................................................................................ 224
Расчет расстояния, пройденного каждым колесом ........................................................... 227
Расчет общего расстояния, пройденного роботом.............................................................. 228
Расчет изменения угла поворота тета ................................................................................ 228
Сложение величины изменения угла поворота с предыдущим значением угла
поворота тета ........................................................................................................................ 229
Расчет расстояния, пройденного по осям x и y (преобразование координат) ............................... 229
Прибавление полученных расстояний к соответствующим значениям предыдущей
оценки позы .......................................................................................................................... 230
Публикация сообщения одометрии о новой позе для других узлов .......................................... 230
Сохранение данных новой позы для использования в следующем цикле .................................. 230
Точный расчет траектории .................................................................................................. 230
Публикация данных одометрии в ROS ...................................................................................... 232
Издатель сообщений о преобразованиях одометрии ........................................................ 234
Дальнейшее отслеживание перемещений робота и его локализация в пространстве ........... 236
Инструмент для коррекции позы вручную ....................................................................... 236
Фидуциальные маркеры .............................................................................................................. 237
Локализация с помощью лазерного сканера ............................................................................. 238
GPS и GNSS ................................................................................................................................. 239
Системы локализации на основе радиомаяков ......................................................................... 239
Заключение................................................................................................................................... 240
Вопросы ........................................................................................................................................ 240
Глава 12. Автономное движение ............................................................................................ 241
Общие сведения ........................................................................................................................... 241
Обзор движения роботов в ROS ................................................................................................. 241
Контроллер двигателя — simple_diff_drive.cpp ........................................................................ 242
Шаги по созданию контроллера двигателя simple_diff_drive ................................................. 243
Код контроллера двигателя дифференциального рулевого привода
представленный в общем виде ........................................................................................... 244
Код контроллера двигателя дифференциального рулевого привода ....................................... 245
Контроллер привода — simple_drive_controller.cpp ................................................................. 251
Шаги по созданию контроллера привода ............................................................................... 251
Заключение................................................................................................................................... 256
Вопросы ........................................................................................................................................ 256
Глава 13. Автономное планирование маршрута .................................................................... 257
Общие сведения ........................................................................................................................... 257
Методы планирования маршрута и сопутствующие проблемы .............................................. 257
Проблемы ............................................................................................................................. 258
Методы планирования маршрута ....................................................................................... 258
Увеличение границ вокруг препятствий ........................................................................... 259
Карты затрат (costmap) ........................................................................................................ 260
Пакет costmap_2d ................................................................................................................. 260
Планирование маршрута с помощью алгоритма A* .............................................................. 263
Как работает алгоритм А* .................................................................................................. 264
Пошаговый разбор алгоритма A*....................................................................................... 266
Разбор процедуры А* .......................................................................................................... 268
Написание программы A* как узла ROS ................................................................................... 273
Стандартные вещи, вспомогательные функции и main() ...................................................... 274
Сердце узла A*: функция find_path() ................................................................................. 284
Заключение................................................................................................................................... 289
Вопросы ........................................................................................................................................ 289
ЧАСТЬ IV. ИНТЕРПРЕТАЦИЯ ДАННЫХ
ПОСТУПАЮЩИХ С ДАТЧИКОВ ........................................................................................................ 291
Глава 14. Колесные энкодеры для одометрии ................................................................................. 293
Общие сведения ........................................................................................................................... 293
Колесные энкодеры ..................................................................................................................... 293
Оптические энкодеры .................................................................................................................. 294
Энкодеры на датчиках Холла ..................................................................................................... 294
Подключение энкодеров ............................................................................................................. 295
Издатель сообщений об импульсах: tick_publisher.cpp ............................................................ 297
Код издателя сообщений об импульсах энкодера .................................................................... 298
Заключение................................................................................................................................... 302
Вопросы ........................................................................................................................................ 302
Глава 15. Ультразвуковые датчики расстояния .................................................................. 303
Общие сведения ........................................................................................................................... 303
Основная информация об ультразвуковом дальномере HC-SR04 .......................................... 304
Считывание показаний HC-SR04 ....................................................................................... 304
Подключение HC-SR04 ............................................................................................................... 304
Издатель данных ультразвукового измерения расстояния: ultrasonic_publisher.cpp ................ 305
Издатель сообщений об ультразвуковом измерении расстояния:
пошаговый разбор ................................................................................................................ 305
Обзор кода издателя сообщений об ультразвуковом измерении расстояния ............................... 306
Использование данных ультразвукового измерения расстояния при обнаружении
объектов ........................................................................................................................................ 309
Заключение................................................................................................................................... 310
Вопросы ........................................................................................................................................ 311
Глава 16. Инерциальные измерительные блоки (IMU) — акселерометры
гироскопы и магнитометры .................................................................................................. 312
Общие сведения ........................................................................................................................... 312
Акселерометры ............................................................................................................................ 313
Недостатки акселерометра .................................................................................................. 314
Публикация данных IMU в ROS ........................................................................................ 314
Тип данных sensor_msgs::Imu в ROS ................................................................................. 315
Код издателя сообщений IMU ............................................................................................ 316
Гироскопы .................................................................................................................................... 320
Недостатки гироскопа ......................................................................................................... 321
Добавление данных гироскопа в узел IMU ....................................................................... 321
Магнитометры ............................................................................................................................. 322
Недостатки магнитометра ................................................................................................... 322
Добавление данных магнитометра ..................................................................................... 323
Установка IMU ............................................................................................................................ 325
Заключение................................................................................................................................... 325
Вопросы ........................................................................................................................................ 326
Глава 17. GPS и системы на основе внешних радиомаяков ....................................................... 327
Общие сведения ........................................................................................................................... 327
Как работают системы на основе радиомаяков ........................................................................ 327
Основные сведения о GPS и GNSS ............................................................................................ 329
Точность GPS/GNSS ............................................................................................................ 329
Определение местоположения с помощью GPS/GNSS-RTK с точностью до 2 см ...................... 330
Ограничения GPS/GNSS ..................................................................................................... 331
Данные GPS/GNSS .............................................................................................................. 332
Строки с данными NMEA ................................................................................................... 332
Некоторые основные представления данных о широте и долготе ......................................... 334
Публикация данных GPS/GNSS в ROS ..................................................................................... 335
Пакет ROS: nmea_navsat_driver .......................................................................................... 335
Установка пакета nmea_navsat_driver ................................................................................ 336
Изучение документации к пакетам ROS ........................................................................... 337
Запуск узла nmea_serial_driver с параметрами ................................................................. 338
Заключение................................................................................................................................... 339
Вопросы ........................................................................................................................................ 339
Глава 18. Устройства LIDAR и данные, которые они предоставляют .......................................... 340
Общие сведения ........................................................................................................................... 340
Основные сведения об устройствах LIDAR .............................................................................. 340
Ограничения LIDAR ................................................................................................................... 341
Типы LIDAR ................................................................................................................................ 342
Однонаправленный (одноточечный) LIDAR .................................................................... 342
2D-LIDAR ............................................................................................................................. 343
3D-LIDAR ............................................................................................................................. 344
LIDAR, установленный на роботе-пылесосе .................................................................... 344
Критерии выбора LIDAR ............................................................................................................ 346
Данные LIDAR: сообщение sensor_msgs::LaserScan ............................................................... 347
Факторы, которые необходимо учитывать при монтаже устройств LIDAR .......................... 349
Установка, запуск и испытание распространенной модели LIDAR ....................................... 350
Действия по настройке RPLIDAR ...................................................................................... 351
Визуализация сообщения LaserScan .......................................................................................... 353
Заключение................................................................................................................................... 356
Вопросы ........................................................................................................................................ 356
Глава 19. Реальное зрение с помощью видеокамер .......................................................................... 357
Общие сведения ........................................................................................................................... 357
Что такое изображение? .............................................................................................................. 358
Атрибуты изображения ....................................................................................................... 359
Координаты пиксела ............................................................................................................ 359
Проверка наличия или установка необходимого программного обеспечения ...................... 360
ROS Kinetic ........................................................................................................................... 360
ROS Melodic ......................................................................................................................... 361
Тестирование OpenCV в ROS ..................................................................................................... 362
Программное обеспечение для обработки изображений (OpenCV) и ROS ........................... 363
Шаг 1. Публикация изображений в ROS ................................................................................... 364
Установка usb_cam_node..................................................................................................... 364
Запуск usb_cam_node ........................................................................................................... 364
Тестирование выходного сигнала камеры ......................................................................... 366
Шаг 2. Подпишитесь на сообщение об изображении в другом узле ...................................... 367
Создайте свой пакет ROS для видеонаблюдения ................................................................. 367
Написание кода для подписчика на сообщения с изображением ........................................... 368
Шаг 3. С помощью cv-bridge преобразуйте изображение RGB, которое использует ROS
в изображение BGR, с которым может работать OpenCV ....................................................... 369
Шаг 4. Выполните необходимые операции с изображением .................................................. 369
Шаг 5. Публикуйте любые данные, не относящиеся к изображению
в виде отдельного сообщения ROS ............................................................................................ 370
Шаг 6. Преобразуйте измененное изображение обратно в формат RGB ............................... 370
Шаг 7. Опубликуйте итоговое изображение в отдельном топике .......................................... 371
Еще немного про обработку изображений ................................................................................ 371
Ядра, диафрагмы и блоки ................................................................................................... 371
Важность работы с копиями вместо оригинальных изображений ............................................ 372
Несколько слов об освещении ............................................................................................ 373
Ревизия шага 4 с включением большего количества операций OpenCV ............................... 373
Преобразование цветового формата: cvtColor() ................................................................ 374
Размытие изображений: blur(), medianBlur(), GaussianBlur() .......................................... 374
Выделение краев: Canny() ................................................................................................... 375
От определения краев на изображении к числовым значениям: HoughLinesP() ..................... 376
Маскирование изображения: bitwise_and() ....................................................................... 380
Фильтрация по цвету: cvtColor() и inRange() ............................................................................ 383
Полезные инструменты ROS ...................................................................................................... 387
Расширенные функции OpenCV и не только ............................................................................ 387
Распознавание изображений с помощью облачных технологий............................................. 388
Заключение................................................................................................................................... 389
Вопросы ........................................................................................................................................ 389
Глава 20. Совместное использование различных датчиков ...................................................... 390
Общие сведения ........................................................................................................................... 390
Доступно о совместном использовании датчиков .................................................................... 391
Датчик абсолютной ориентации Bosch BN0055 ....................................................................... 391
Предоставляемые данные ................................................................................................... 392
Улучшенная одометрия ....................................................................................................... 392
Интеграция BN0055: оборудование и издатель ROS ....................................................... 393
Интеграция BN0055: узел одометрии ................................................................................ 394
Шаг 1. Подписаться на сообщение IMU ............................................................................ 395
Шаг 2. Проверить, что поле ориентации не помечено как "do not use"
(не использовать) ................................................................................................................. 395
Шаг 3. Преобразовать кватернионы в углы Эйлера ............................................................. 396
Шаг 4. Сохранить информацию о смещении, если это первое сообщение IMU ....................... 396
Шаг 5.1. Если это НЕ первое сообщение IMU, сохранить курс IMU ........................................ 397
Шаг 5.2. Передать новое значение курса IMU в функцию расчета параметров
одометрии ............................................................................................................................. 397
Комплексный подход к совместному использованию датчиков ............................................. 398
Фильтр Калмана ................................................................................................................... 398
Ковариационная матрица .................................................................................................... 401
Ковариационные матрицы в сообщениях ROS ................................................................. 402
Узел robot_pose_ekf node ............................................................................................................. 403
Установка robot_pose_ekf .................................................................................................... 404
Запуск robot_pose_ekf .......................................................................................................... 404
Последнее замечание о преобразованиях и roslaunch ...................................................... 405
Заключение................................................................................................................................... 406
Вопросы ........................................................................................................................................ 406
ЧАСТЬ V. РАЗРАБОТКА АВТОНОМНОГО РОБОТА ....................................................................... 407
Глава 21. Сборка и программирование автономного робота ..................................................... 409
Общие сведения ........................................................................................................................... 409
Раздел 1. Создание физической платформы для робота .......................................................... 410
Платформа для робота: общий обзор и список деталей ........................................................... 411
Модули, объединяющие в себе колесо и двигатель ................................................................. 413
Драйвер(ы) двигателя .......................................................................................................... 414
Ролик (третье колесо робота).............................................................................................. 414
Аккумуляторы и зарядное устройство ............................................................................... 414
Шасси/основание ................................................................................................................. 415
Компьютеры ......................................................................................................................... 416
LIDAR или другой датчик расстояния ............................................................................... 416
Колесные энкодеры ............................................................................................................. 417
IMU (инерциальный измерительный блок) ....................................................................... 417
Преобразователь напряжения для компьютера ................................................................ 417
Коммутационная плата для колодки GPIO ....................................................................... 418
Видеокамера ......................................................................................................................... 418
Вольтметр для контроля напряжения аккумулятора ........................................................ 419
Различные материалы .......................................................................................................... 420
Сборка платформы для робота ................................................................................................... 420
Подготовьте компьютер ...................................................................................................... 421
Подготовьте колесные модули ........................................................................................... 421
Продумайте схему расположения компонентов ............................................................... 422
Подготовьте шасси .............................................................................................................. 422
Установите колесные модули и ролик ............................................................................... 422
Установите драйвер двигателя, клеммные колодки и источник питания
для компьютера .................................................................................................................... 424
Подготовьте коммутационную плату для колодки GPIO ................................................ 424
Установите компьютер, коммутационную плату для колодки GPIO и IMU ....................... 424
Соедините все блоки проводами и установите аккумулятор .......................................... 425
Установите LIDAR и видеокамеру .................................................................................... 425
Еще несколько советов ............................................................................................................... 427
Раздел 2. Программирование робота ......................................................................................... 428
Программирование: общие замечания ............................................................................... 428
Программирование робота: подробная инструкция ......................................................... 429
1. Создать папку проекта ............................................................................................ 430
2. Получить данные датчиков для публикации .............................................................. 430
3. Настроить управление платформой с помощью пульта ДУ ........................................... 432
4. Отслеживать перемещение робота и публиковать данные о местоположении ................ 435
5. Обеспечить перемещение робота по путевым точкам
(без обхода препятствий) ............................................................................................. 436
6. Составьте карту окружения робота ............................................................................ 438
7. Загрузить сохраненную карту с помощью файлов запуска ........................................... 439
8. Добиться автономной навигации робота в пределах карты ........................................... 440
Запуск автономного робота! ....................................................................................................... 441
Некоторые советы по устранению неполадок................................................................... 441
Что дальше? ................................................................................................................................. 442
Обход динамических препятствий ..................................................................................... 442
ПИД-регуляторы .................................................................................................................. 443
Главный контроллер, который управляет различными процедурами или задачами ............... 443
Реализация преобразования map в odom (полная локализация) ......................................... 443
Следите за новостями в Интернете .................................................................................... 443
Заключение................................................................................................................................... 444
Приложение. Описание электронного архива ...................................................................... 445
Предметный указатель ...................................................................................................... 446
Скриншоты:
Время раздачи: с 10 до 20 (минимум до появления первых 3-5 скачавших)