Книга: Изучение робототехники с использованием Python

Изучение робототехники с использованием PythonКнига «Изучение робототехники с использованием Python», автор Джозеф Лентин, предназначена для инженеров-робототехников, желающих углубить свои знания в этой области и усовершенствовать созданные ранее роботы, студентов, изучающих робототехнику, и людей, увлеченных созданием роботов. Книга содержит легковыполнимые пошаговые инструкции.

Книга «Изучение робототехники с использованием Python» содержит подробную информацию, позволяющую создать робот. Для этого вам понадобятся электронные компоненты и материалы (пластик, металл, фанера). Робот может быть построен с нуля, или вы можете купить готовое устройство, оснащенное дифференциальным приводом и энкодером. Для управления роботом вам понадобится плата контроллера, например Texas instruments LaunchPad. Для разработки, моделирования и программирования робота необходим ноутбук/нетбук. В этой книге в качестве бортового компьютера используется высокопроизводительный мини-компьютер Intel NUC. Это очень эффективный высокопроизводительный ПК размером 10×10 см. Для компьютерного 3D-зрения используется 3D-датчик, например лазерный сканер Kinect или Orbbec Astra. Что касается программного обеспечения, вам понадобится знание команд GNU/Linux и Python. Для работы с примерами понадобится операционная система Ubuntu 16.04 LTS. Быстрее создать робот вам поможет хорошее знание ROS, OpenCV, OpenNI и PCL. Кроме того, вам потребуется установить Ros Kinect Melodic с примерами.

Скачать книгу

Что вы узнаете и запомните из книги:

Глава 1 «Начало работы с операционной системой робота ROS»

1. Три главные функции ROS:

  • интерфейс передачи данных между разными программами;
  • стандартный алгоритм для быстрой разработки роботов;
  • программные инструменты для визуализации и отладки данных.

2. Различные уровни концепций в ROS – это уровень файловой системы ROS, уровень графа вычислений ROS и уровень сообщества ROS.

3. Система сборки Catkin построена с использованием сценариев CMake и Python. Этот инструмент помогает создавать пакеты ROS.

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

5. Различное понятие графа вычисления ROS – узлы ROS, ROS-темы, сообщения ROS, ROS Master, ROS Services и ROS Bags.

6. Ros Master действует как программа-посредник для соединения двух узлов ROS для начала взаимодействия друг с другом.

Читать также:  Рекурсия в С++

7. Важные особенности Gazebo:

  • динамическое моделирование: включает движок, такой как ODE, Bullet, Simbody и Dart;
  • улучшенная 3D-графика: для создания высококачественного освещения, теней и структур используется структура OGRE;
  • поддержка плагинов: данная возможность позволяет добавлять роботу новые функции и датчики, контролирующие состояние окружающей среды;
  • протокол TCP/IP: управление Gazebo с помощью пользовательского интерфейса передачи данных.

Глава 2 «Основные понятия о роботах с дифференциальным приводом»

1. Голономные роботы могут свободно перемещаться в любом направлении, а управляемые степени свободы равны суммарным степеням свободы. Колесные роботы Omni являются примером голономных роботов. Голономные роботы ограничены в движении. Поэтому количество управляемых степеней свободы не будет равно количеству полных степеней свобод. Дифференциальный привод является примером неголономной конфигурации.

2. Кинематика робота рассматривает движение робота без учета массы и инерции, тогда как динамика робота – отношения между массой и инерцией.

3. ICC – это мгновенный центр искривления, воображаемая точка на оси вращения колеса робота. Вокруг этой точки поворачивается робот.

4. Процесс нахождения текущего положения робота от скорости колеса.

5. Нахождение скорости колеса для достижения цели.

Глава 3 «Моделирование робота с дифференциальным приводом»

1. Моделирование робота – процесс создания 2D- и 3D-модели робота с наличием всех параметров, в которые входят кинематические и динамические параметры.

2. В двухмерной модели учитываются точные геометрические размеры всех деталей, из которых состоит робот. Эти данные позволяют вычислить кинематику робота и изготовить все необходимые детали.

3. 3D-модель робота – точная копия аппаратных средств робота, со всеми физическими параметрами робота, разработанного с использованием программного обеспечения CAD.

4. Если вы знаете API-сценарии Blender, создать 3D-модель с помощью сценариев Python намного проще и точнее, чем ручное моделирование.

5. URDF является 3D-модель робота в ROS. Модель имеет кинематические и динамические параметры робота.

Глава 4 «Моделирование дифференциального привода робота, управляемого операционной системой ROS»

1. Модель датчика может быть создана в Gazebo с помощью плагинов Gazebo. Модель датчика может быть написана на языке программирования C++, который интегрирован в симулятор.

2. ROS соединяется с Gazebo с использованием плагина ROS. Когда мы загружаем этот плагин в Gazebo, мы можем управлять Gazebo через интерфейс ROS.

Читать также:  Функции даты и времени в C++ с примерами

3. Важные признаки , и .

4. Пакет Gmapping в ROS – это реализация алгоритма Fast SLAM, который можно использовать в роботе для отображения среды и локализации. Использование Gmapping в ROS – это простой процесс, включающий узел отображения с необходимыми параметрами и такими темами, как одометрия и лазерное сканирование.

5. Узел Move_base предназначен для работы с различными подсистемами навигации в роботе. Он получает координаты для обработки глобального и локального планировщиков и карты робота. Как только узел получает целевую позицию, эти данные подаются в навигационную подсистему для достижения данной целевой позиции.

6. AMCL означает адаптивную локализацию по методу Монте-Карло, которая представляет собой алгоритм локализации робота на заданной карте. В ROS есть пакет ROS для развертывания AMCL в нашем роботе. Мы можем запустить узел amcl с правильным вводом и необходимыми параметрами.

Глава 5 «Проектирование оборудования и схем ChefBot»

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

2. Коммутационная цепь для управления скоростью вращения и направления вращения ведущих валов двигателей.

3. Главные компоненты – энкодер колеса, позволяющий вычислять скорость вращения и направление вращения колеса и датчики для обнаружения препятствий. Это такие датчики, как лазерный сканер и датчик глубины.

4. Необходимо проверить, соответствует ли он спецификации робота.

5. Картографирование, обнаружение и отслеживание препятствий.

Глава 6 «Согласование приводов и датчиков с контроллером робота»

1. Коммутационная схема для контроля скорости и направления вращения ведущих валов двигателей.

2. Энкодер, позволяющий отслеживать скорость вращения и направление вращения колеса.

3. 4X-кодирование сигналов энкодера для получения максимального количества импульсов на один оборот.

4. Зная полученное количество импульсов от энкодера, мы легко можем вычислить смещение колеса.

5. Умный привод с обратной связью между двигателем и микроконтроллером, который взаимодействует с бортовым ПК и всеми датчиками.

6. Ультразвуковой датчик с ультразвуковым излучателем и приемником эхосигнала. Расстояние до препятствия рассчитывается по разнице времени между излученным и принятым сигналами.

Читать также:  Сортировка слиянием в C++

7. Диапазон = Время между моментом излучения ультразвукового сигнала и приемом эхо-сигнала * Скорость (340 м/с) / 2.

8. Излучается ультразвуковой импульс, и принимается эхо-сигнал. Расстояние высчитывается с использованием следующего уравнения: Range = (6787 / (Volt – 3)) – 4.

Глава 7 «Согласование датчиков зрения с ROS»

1. У большинства 3D-датчиков глубины есть дополнительные датчики зрения для обнаружения глубины. Работа этих датчиков основана на стереоскопическом зрении.

2. Интерфейс передачи сообщений, инструменты для визуализации и отладки всех систем робота, стандартные алгоритмы робота.

3. OpenCV обладает алгоритмом машинного зрения, алгоритмы OpenNI реализуют приложения NI и PCL для обработки облака точек.

4. Одновременная локализация и отображение. Данный алгоритм используется для отображения окружающей среды и одновременной локализации в реальном времени.

5. Это алгоритм для нанесения окружающей среды в 3D-карту робота.

Глава 8 «Сборка робота ChefBot и интеграция программного обеспечения»

1. Преобразователь уровня напряжений между драйвером двигателя, датчиками, микроконтроллером и бортовым ПК. Он преобразует низкоуровневые данные в эквивалентные данные ROS.

2. PID-механизм обратной связи в управлении для достижения целевого положения робота.

3. Используя данные энкодера, мы, применяя кинематические уравнения робота, можем вычислить пройденное роботом расстояние. Это данные одометра.

4. В основном используется составленная карта окружающей среды.

5. Чаще всего используется для локализации робота на статической карте.

Глава 9 «Разработка графического интерфейса для робота с использованием Qt и Python»

1. QT и GTK.

2. Обе привязки почти одинаковы, разница только в названии. PyQt имеет лицензию GPL и PySide, поставляемую с LGPL. Кроме того, имеется большое количество документации PySide о своих API.

3. Использование компилятора Py UI с названием pyuic.

4. Слоты Qt – это функции в программе, которые могут быть вызваны сигналом Qt. Например, clicked – это сигнал, который может вызвать функцию с именем hello.

5. Rqt является одним из полезных инструментов GUI в ROS. Мы можем создавать плагины rqt и вставлять их в графический интерфейс rqt. Существуют
плагины для визуализации, отладки и т. д. в rqt.

Скачать книгу бесплатно

С Уважением, МониторБанк

Добавить комментарий