Файл: Ros для программирования робототехники.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 29.11.2023

Просмотров: 39

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Практика

ROS для программирования робототехники

Программируйте высокоавтономных мобильных роботов с поддержкой искусственного интеллекта, работающих на ROS

Бернардо Ронкильо Джапóн

Все права защищены. Никакая часть этой книги не может быть воспроизведена, сохранена в поисковой системе или передана в любой форме или любыми средствами без предварительного письменного разрешения издателя, за исключением кратких цитат, включенных в критические статьи или обзоры.

При подготовке этой книги были приложены все усилия, чтобы обеспечить точность представленной информации. Однако информация, содержащаяся в этой книге, продается без гарантий, явных или подразумеваемых. Ни автор, ни издательство Packt Publishing, ни его дилеры и дистрибьюторы не несут ответственности за любой ущерб, причиненный или предположительно, если будет причинен прямо или косвенно этой книгой.

Издательство Packt Publishing постаралось предоставить информацию о товарных знаках всех компаний и продуктов, упомянутых в этой книге, с надлежащим использованием заглавных букв. Однако Packt Publishing не может гарантировать точность этой информации.

Подпишитесь на нашу цифровую онлайн-библиотеку, чтобы получить полный доступ к более чем 7000 книгам и видеороликам, а также к ведущим в отрасли инструментам, которые помогут вам спланировать свое личное развитие и продвинуться по карьерной лестнице. Для получения дополнительной информации, пожалуйста, посетите наш веб-сайт.

Packt.com

Зачем подписываться?

- Тратьте меньше времени на обучение и больше на кодирование с практическими электронными книгами и видеороликами от более чем 4000 профессионалов отрасли.

- Улучшайте свое обучение с помощью планов повышения квалификации, разработанных специально для вас.

- Получайте бесплатную электронную книгу или видео каждый месяц.

- Полная возможность поиска для легкого доступа к жизненно важной информации.

- Копирование и вставка содержимого, печать и создание закладок.

Знаете ли вы, что Packt предлагает электронные версии каждой опубликованной книги с доступными файлами PDF и ePub? Вы можете перейти на электронную версию по адресу www.packt.com и как покупатель печатной книги, вы имеете право на скидку на электронную копию. Свяжитесь с нами по адресу customercare@packtpub.com для получения более подробной информации.

В www.packt.com вы также можете ознакомиться с подборкой бесплатных технических статей, подписаться на ряд бесплатных информационных рассылок и получать эксклюзивные скидки и предложения на Packt books и электронные книги.


Об авторе

Бернардо Ронкильо Япон - эксперт по Интернету вещей (IoT) и робототехнике, который с 1995 года работает в ведущих технологических компаниях, включая Институт астрофизики в Канариас, Gran Telescopio Canarias, Altran и Alestis Aerospace.

Используя свои навыки и опыт, он основал Robot Academy, где разрабатывает аппаратные и программные решения с открытым исходным кодом для инженеров и производителей: Social Robot IO (2015), для стимуляции детей с расстройствами аутистического спектра; Robot JUS (2016), который помогает инженерам получить более глубокое техническое представление о работе робота. Система (ROS) при использовании оборудования низкой сложности; и Iot All-in-One (2018) в качестве учебного пакета по промышленному интернету вещей для оказания помощи компаниям в процессе их цифровой трансформации.

Особая благодарность Николь Пэррот, инженерному директору ModularRobotics, компании, производящей GoPiGo3. Они предоставили аппаратное обеспечение, библиотеки программного обеспечения и быстрые ответы на все технические вопросы, которые возникали у меня при написании и тестировании практических примеров. Также я выражаю благодарность OpenRobotics и сообществу ROS с открытым исходным кодом, которые поддерживают все пакеты ROS, на основе которых написаны ROS-оболочки для GoPiGo.

О рецензентах

Лентин Джозеф - автор, специалист по робототехнике и предприниматель в области робототехники из Индии. Он руководит компанией по разработке программного обеспечения для робототехники Qbotics Labs в Кочи, штат Керала. Он имеет 8-летний опыт работы в области робототехники, в основном в ROS, OpenCV и PCL.

Он автор нескольких книг по ROS, в том числе "Обучение робототехнике с использованием Python – First". Издание и второе издание, Освоение ROS для программирования робототехники – Первое издание и второе издание, проекты ROS Robotics и операционная система робота для абсолютных новичков, опубликованные Packt.

Он получил степень магистра в области робототехники и автоматизации в Индии и работал в компании Robotics Институт, CMU, США. Он также является спикером TEDx.

Я посвящаю эту книгу своим родителям, К. Дж. Джозефу и Янси Джозеф, за то, что они оказали мне решительную поддержку в реализации этого проекта.

Рамкумар Гандинатан - робототехник и исследователь по профессии. Он начал создавать роботов в шестом классе и работает в области робототехники уже более 15 лет. Он лично сконструировал более 80 роботов различных типов. Имея 7-летний профессиональный опыт (4 года полной занятости и 3 года неполной занятости / стажировки) в индустрии робототехники, он имеет 5-летний опыт работы, в частности, в ROS. За свою карьеру он создал более 15 решений для промышленных роботов с использованием ROS. Он также увлечен созданием беспилотных летательных аппаратов и сам пилотирует их. Его исследование интересы включают одновременную локализацию и картографирование (SLAM), планирование движения, объединение датчиков, коммуникацию с несколькими роботами и системную интеграцию.



Packt ищет таких авторов, как вы

Если вы заинтересованы в том, чтобы стать автором Packt, пожалуйста, посетите authors.packtpub.com и подайте заявку сегодня. Мы работали с тысячами разработчиков и технических специалистов, таких же, как вы, чтобы помочь им поделиться своими знаниями с мировым техническим сообществом. Вы можете подать общую заявку, подать заявку на конкретную актуальную тему, для которой мы набираем авторов, или представить свою собственную идею.

Предисловие

Зачем нужна новая книга об изучении робототехники с ROS? Что ж, программирование - это лишь малая часть того, что требуется для работы с роботами. Если вы хотите по-настоящему преуспеть в робототехнике, вам понадобятся навыки и в других областях: электромеханике, моделировании роботов, автономной навигации и машинном обучении с подкреплением. Каждая из этих четырех тем является строительным блоком, который вам необходимо освоить на пути к приобретению полноценных навыков робототехники. Эта книга разделена на четыре части, каждая из которых посвящена каждому из этих строительных блоков.

Часть 1, Физическая сборка и тестирование робота, посвящена электромеханике и описывает каждую аппаратную часть робота, предоставляя практические демонстрации того, как тестировать каждый датчик и исполнительный механизм, которыми он оснащен. Эта часть книги должна дать вам хорошее представление о том, как работает мобильный робот.

Часть 2, Моделирование робота с помощью Gazebo, посвящена моделированию робота. Именно здесь мы представляем ROS и разрабатываем симулятор двухколесного робота, который имитирует как физические аспекты, так и поведение реального робота. Мы рассмотрим концепцию цифрового двойника, виртуального робота, который является двойником физического. Это фундаментальная часть разработки роботизированных приложений, поскольку она сокращает затраты, связанные с тестированием реального оборудования. Цифровой двойник позволяет нам ускорить процесс разработки и сохранить тестирование с помощью физического робота для продвинутых стадий разработки.

Часть 3, Автономная навигация с использованием SLAM, посвящена навигации роботов, наиболее распространенной задаче для мобильных роботов. Современные алгоритмы и методы объясняются на практике, сначала в симуляторе, а затем с помощью физического робота.


Часть 4, "Адаптивное поведение роботов с использованием машинного обучения", посвящена машинному обучению и обучению с подкреплением - наиболее активным областям исследований роботов и их применению в реальном мире. Используя эту технологию, робот способен перейти от чистого автоматизма – где каждое возможное поведение или ответ закодированы – чтобы стать машиной с гибким поведением, где робот способен разумно реагировать на требования окружающей среды, обучаясь на основе данных. Эти данные могут быть получены из предыдущего опыта робота или собраны из опыта аналогичных роботов.

Чтобы создать современное приложение для роботов, вам сначала нужно освоить, а затем объединить эти четыре строительных блока. Результатом будет то, что обычно называют умным роботом. Это ваша задача – это ваш вызов.

Для кого предназначена эта книга

Если вы инженер, который хочет создавать роботов на базе искусственного интеллекта, работающих с использованием ROS, то эта книга для вас. Техники и любители, желающие разработать свои собственные проекты ROS robotics, также найдут эту книгу полезным ресурсом.

О чем рассказывает эта книга

В главе 1 "Сборка робота" приведены ключевые концепции и практические рекомендации по сборке мобильного робота, на которых основано все содержание этой книги. Руководствуясь очень практичным подходом, мы глубоко изучаем характеристики GoPiGo3, которые делают его идеальной и экономически эффективной платформой для изучения робототехники. Завершив сборку GoPiGo3, вы приобретете первые ручные навыки, необходимые для манипулирования типичными компонентами в робототехнике. Чтобы приобрести комплект GoPiGo3, вы можете посетить https://www.dexterindustries.com/gopigo3/ и примените код купона BRJAPON@PACKT, чтобы получить скидку 10%.

Глава 2, Модульное тестирование GoPiGo3, дает вам практическое представление о том, как работает GoPiGo3 работает. Мы делаем это, представляя среду JupyterLab, дружественный интерфейс, который использует структуру записной книжки, состоящей из удобочитаемых абзацев, за которыми следуют фрагменты кода на Python. Вы создадите две версии каждой тестовой программы: записную книжку JupyterLab и скрипт на чистом Python. Используя эти инструменты программирования, вы протестируете каждый датчик / исполнительный механизм по отдельности и убедитесь, что он работает должным образом, а также получите представление о технологии, лежащей в основе.


В главе 3 "Начало работы с ROS" объясняются основные концепции ROS. Он знакомит вас с фреймворком, используя простой для понимания язык, избегая слишком технических описаний. Это связано с тем, что наша основная цель - точно показать вам, что такое ROS в концептуальном смысле. В следующих главах будут даны подробные технические описания, чтобы вы, наконец, смогли интегрировать ROS в свои проекты.

В главе 4 "Создание виртуального двухколесного робота ROS" описано, как создать простого двухколесного робота, цифрового двойника GoPiGo3. Модель написана в унифицированном роботе Формат описания (URDF) и результат проверяются с помощью RViz, инструмента ROS, который предоставляет настраиваемый графический пользовательский интерфейс (GUI), позволяющий пользователю отображать конкретную информацию, которую он ищет. RViz может использоваться как для глобальной визуализации робота, так и для отладки конкретных функций при построении модели.

В главе 5 "Моделирование поведения робота с помощью Gazebo" рассказывается, как подключить цифровое определение вашего робота (файл URDF) к среде моделирования Gazebo, которая оснащена физическим движком, способным имитировать реалистичное поведение. Вы также разовьете свое понимание того, как проверять и тестировать цифрового робота, чтобы убедиться, что его поведение хорошо отражает то, что должно происходить в реальности.

Глава 6 "Программирование в командах и инструментах ROS" знакомит вас с взаимодействием командной строки с ROS и объясняет типы команд ROS. Мы рассмотрим наиболее часто используемые модели коммуникации в ROS, включая модель публикации-подписки. Чтобы разобраться со всеми вашими данными ROS, вы познакомитесь с rqt, который упрощает процесс разработки и отладки приложений. Кроме того, представлены параметры ROS, чтобы дать вам общее представление об их возможностях для управления конфигурацией робота на высоком уровне.

В главе 7 "Управление роботом и моделирование" рассказывается, как настроить среду ROS для реального робота с помощью GoPiGo3. Мы начнем с рассмотрения дистанционного управления с помощью клавиш клавиатуры вашего ноутбука, затем перейдем к более техническому методу использования тем ROS. В этой главе вы начнете свой путь от ручного управления с клавиатуры и на основе тем к внутренней логике программирования, чтобы ваши роботы могли выполнять задачи автономно.

В главе 8 "Виртуальный SLAM и навигация с использованием Gazebo" исследуется техника одновременной локализации и картографирования (SLAM) с использованием практического подхода и цифрового двойника GoPiGo3. Вас научат, почему SLAM необходим для правильной навигации. Моделирование будет выполняться в Gazebo, встроенном в ROS инструменте моделирования с физическим движком, который обеспечивает реалистичные результаты.