Управление реальным роботом c обратной связью в ROS (часть 5): различия между версиями

Материал из RoboWiki
Перейти к навигации Перейти к поиску
Строка 37: Строка 37:
 
И опять, у нас есть хост-машина и робот, подключенный через WiFi. Как показано ниже, мы добавляем два узла ROS. gopigo_state_updater запускается на роботе и преобразует данные энкодера колеса в оценки угловой скорости колеса. Мы расширяем gopigo_controller, чтобы использовать эти показания с энкодера для управления с помощью PID. diffdrive_odom запускается на хост-машине и использует оценки энкодера для проведения точного расчета.
 
И опять, у нас есть хост-машина и робот, подключенный через WiFi. Как показано ниже, мы добавляем два узла ROS. gopigo_state_updater запускается на роботе и преобразует данные энкодера колеса в оценки угловой скорости колеса. Мы расширяем gopigo_controller, чтобы использовать эти показания с энкодера для управления с помощью PID. diffdrive_odom запускается на хост-машине и использует оценки энкодера для проведения точного расчета.
  
[[Файл:Architecture-1.png|1494px|thumb|center|Показания энкодера колеса преобразуются в угловые скорости вращения колеса, которые используются как для ПИД-регулирования, так и для точных расчетов.]]
+
[[Файл:Architecture-1.png|800px|thumb|center|Показания энкодера колеса преобразуются в угловые скорости вращения колеса, которые используются как для ПИД-регулирования, так и для точных расчетов.]]

Версия 15:09, 17 июля 2019

В этом разделе мы сосредоточимся на использовании данных, поступающих с колесных энкодеров, с двумя целями:

1. Создание замкнутой системы управления с использованием ПИД-регулятора

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

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

2. Одометрия с точным расчетом

Одометрия ценна тем, что она:

1) является необходимой информацией для использования стека навигации ROS в будущем

2) позволяет нам видеть траекторию робота

Мы объединим показания энкодеров с обоих колес (точный расчет), чтобы оценить положение робота во времени (одометрия).

Обзор: Управление роботом c обратной связью

Цели: 1. Использование данных колесного энкодера для управления с обратной связью и ПИД-регулятором, и для оценки одометрии робота

2. Обучение использованию обратной связи с данными датчиков для усовершенствования управления роботом и для оценки состояния

План:

  1. Прочитать данные с колесных энкодеров
  2. Ввести ПИД-регулирование в управление на обоих колесах
  3. Организовать точный расчет для оценки одометрии робота

Код репозитория (хранилища):

git clone -b closedloop https://github.com/richardw05/gopigo_ws.git

Видео-мануал

Архитектура

И опять, у нас есть хост-машина и робот, подключенный через WiFi. Как показано ниже, мы добавляем два узла ROS. gopigo_state_updater запускается на роботе и преобразует данные энкодера колеса в оценки угловой скорости колеса. Мы расширяем gopigo_controller, чтобы использовать эти показания с энкодера для управления с помощью PID. diffdrive_odom запускается на хост-машине и использует оценки энкодера для проведения точного расчета.

Показания энкодера колеса преобразуются в угловые скорости вращения колеса, которые используются как для ПИД-регулирования, так и для точных расчетов.