7.4 Калибровка одометрии вашего робота

Если у вас нет робота, вы можете вообще пропустить этот раздел. Если у вас есть оригинальный TurtleBot (с использованием iRobot Create в качестве базы), обязательно используйте автоматическую процедуру калибровки, чтобы установить угловые поправочные коэффициенты для вашего робота. Вы все еще можете использовать первую часть этого раздела, чтобы установить коэффициент линейной коррекции. Обратите внимание, что во всех случаях вам может потребоваться использовать разные параметры калибровки для разных типов поверхностей пола; например ковер против лиственных пород. Самый простой способ управлять различными параметрами - это использовать разные файлы запуска для каждой поверхности.

Если вы используете свой собственный робот, у вас уже есть собственный метод калибровки. Если это так, вы можете спокойно пропустить этот раздел. В противном случае читайте дальше.

Перед запуском процедур калибровки обязательно получите пакеты кинематики Orocos с помощью команды:

$ sudo apt-get install ros-indigo-orocos-kdl \ ros-indigo-python-orocos-kdl

В пакет rbx1_nav входят два сценария калибровки: calibrate_linear.py и calibrate_angular.py. Первая попытка переместить робота на 1 метр вперед, отслеживая тему / odom и останавливаясь, когда сообщаемое расстояние находится в пределах 1 см от цели. Вы можете отрегулировать расстояние до цели и скорость движения, отредактировав скрипт или используя rqt_reconfigure. Второй скрипт поворачивает робота на 360 градусов, опять же, следя за темой / odom. Мы опишем, как настроить параметры PID на основе результатов в следующих двух разделах.

Прежде всего убедитесь, что у вас достаточно места перед роботом - не менее 2 метров при стандартном испытательном расстоянии 1,0 метра. Используя рулетку, выложите не менее 1 метра ленты на пол и совместите начальный конец ленты с какой-нибудь опознаваемой отметкой на вашем роботе. Поверните робот так, чтобы он был направлен параллельно ленте.

Затем откройте базовый контроллер вашего робота с соответствующим файлом запуска. Для TurtleBot, основанного на iRobot Create, вставьте ssh в ноутбук робота и запустите:

$ roslaunch rbx1_bringup turtlebot_minimal_create.launch

Далее запустите узел линейной калибровки:

$ rosrun rbx1_nav calibrate_linear.py

Наконец, запустите rqt_reconfigure:

$ rosrun rqt_reconfigure rqt_reconfigure

Выберите узел calibrate_linear в окне rqt_reconfigure. Чтобы запустить тест, поставьте галочку напротив start_test. (Если робот не начинает двигаться, снимите флажок и установите его снова.) Ваш робот должен двигаться вперед примерно на 1,0 метра. Чтобы получить поправочный коэффициент, выполните следующие действия:

  • Измерьте фактическое расстояние с помощью ленты и запишите это.

  • Разделите фактическое расстояние на целевое расстояние и запишите соотношение.

  • Вернитесь в графический интерфейс rqt_reconfigure и умножьте значение odom_linear_scale_correction на коэффициент, который вы только что вычислили. Установите для параметра новое значение.

  • Повторите тест, переместив робота обратно к началу ленты, затем отметив флажок start_test в окне rqt_reconfigure.

  • Продолжайте повторять тест, пока не будете удовлетворены результатом. Точность 1 см на 1 метр, вероятно, достаточно хороша.

Имея окончательный поправочный коэффициент, вы должны применить его к параметрам базового контроллера вашего робота, используя соответствующий файл запуска. Для TurtleBot добавьте следующую строку в файл turtlebot.launch:

<param name="turtlebot_node/odom_linear_scale_correction" value="X"/>

где X - ваш поправочный коэффициент.

Если ваш робот использует базовый контроллер ArbotiX, отредактируйте файл конфигурации YAML и измените параметр ticks_meter, разделив его на свой поправочный коэффициент.

В качестве последней проверки запустите файл запуска вашего робота с новым поправочным коэффициентом. Затем запустите сценарий calib_linear.py, но с параметром odom_linear_scale_correction, равным 1.0. Теперь ваш робот должен пройти 1,0 метра без дальнейшей коррекции.

Last updated