🌙
Translate_book_Part7
  • Титульный лист
  • 7 КОНТРОЛЬ МОБИЛЬНОЙ БАЗЫ
  • 7.1 Единицы и системы координат
  • 7.2 Уровни управления движением
  • 7.2.1 Моторы, Колеса и Кодеры
  • 7.2.2 Контроллеры и драйверы двигателей
  • 7.2.3 Базовый контроллер ROS
  • 7.2.4 Кадровое движение с использованием пакета ROS move_base
  • 7.2.5 SLAM с использованием пакетов gmapping и amcl ROS
  • 7.2.6 Семантические цели
  • 7.2.7 Сводка
  • 7.3 Скручивание и поворот с помощью ROS
  • 7.3.1 Пример твист-сообщений
  • 7.4 Калибровка одометрии вашего робота
  • 7.4.2 Угловая калибровка
  • 7.5 Отправка твист-сообщений реальному роботу
  • 7.6 Публикация твист-сообщений от узла ROS
  • 7.6.1 Оценка расстояния и поворота с использованием времени и скорости
  • 7.6.2. Время и время в симуляторе ArbotiX
  • 7.6.3. Скрипт с выдержкой времени и обратно
  • 7.6.4 Тайм-аут и обратно с использованием реального робота
  • 7.7 "Мы уже приехали?" Подойдя на расстояние с одометра
  • 7.8 Туда и обратно, используя одометрию
  • 7.8.1 Одометрия на выходе и обратно в симуляторе ArbotiX
  • 7.8.2. На основе одометрии и обратно с использованием реального робота
  • 7.8.4 The/odom Topic versus the/odom Frame
  • 7.9 Навигация по квадрату с помощью одометрии
  • 7.9.1 Навигация по квадрату в симуляторе ArbotiX
  • 7.9.2 Навигация по квадрату с использованием реального робота
  • 7.9.3 nav_square.pyScript
  • 7.10 Телеоперация вашего робота
  • 7.10.1 Использование клавиатуры
  • 7.10.2 Использование игровой площадки Logitech
  • 7.10.3 Использование графического интерфейса контроллера ArbotiX
  • 7.10.4 Телеоперация TurtleBot с использованием интерактивных маркеров
Powered by GitBook
On this page

Was this helpful?

7.2.3 Базовый контроллер ROS

Previous7.2.2 Контроллеры и драйверы двигателейNext7.2.4 Кадровое движение с использованием пакета ROS move_base

Last updated 5 years ago

Was this helpful?

На следующем уровне абстракции желаемая скорость робота указывается в реальных единицах измерения, таких как метры и радианы в секунду. Также распространено использовать некоторую форму контроля PID. PID расшифровывается как «Пропорционально-интегральная производная» и носит так называемое название, поскольку алгоритм управления корректирует скорости вращения колес, основываясь не только на разнице (пропорциональной) погрешности между фактической и требуемой скоростью, но также на производной и интегральной по времени. Вы можете узнать больше о PID-контроле в . Для наших целей нам просто нужно знать, что контроллер сделает все возможное, чтобы переместить робота так, как мы просили.

Драйвер и PID-контроллер обычно объединяются в одном узле ROS, называемом базовым контроллером. Базовый контроллер всегда должен работать на компьютере, подключенном непосредственно к контроллеру двигателя, и обычно является одним из первых узлов, запускаемых при запуске робота. В Gazebo также можно смоделировать ряд базовых контроллеров, включая , и .

Узел базового контроллера обычно публикует данные одометрии в теме / odom и прослушивает команды движения в теме / cmd_vel. В то же время узел контроллера обычно (но не всегда) публикует преобразование из кадра / odom в базовый кадр - либо / base_linkor / base_footprint. В основном «не всегда», потому что некоторые роботы, такие как TurtleBot, используют пакет , чтобы объединить одометрию колеса и данные гироскопа, чтобы получить более точную оценку положения и ориентации робота. В этом случае это узел robot_pose_ekf, который публикует преобразование из / odomto / base_footprint. (Therobot_pose_ekfpackageimplementsan Расширенный фильтр Калмана, о котором вы можете прочитать на вики-странице, на которую ссылается выше.)

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

Википедии
TurtleBot
PR2
Erratic
robot_pose_ekf