8.1 Планирование пути и избегание препятствий с помощью move_base

В предыдущей главе мы написали сценарий перемещения робота по квадрату. В этом сценарии мы отслеживали преобразование tf между фреймом /odom и фреймом /base_link (или /base_footprint), чтобы отслеживать пройденное расстояние и повернутые углы. ROS предоставляет гораздо более элегантный способ сделать то же самое с помощью move_base. (Пожалуйста, ознакомьтесь с вики-страницей move_base для полного объяснения, включая отличную диаграмму различных компонентов .)

move_base реализует ROS action для достижения заданной цели навигации. Вы должны быть знакомы с основами ROS action из actionlib tutorials на Ros Wiki. Напомним, что ROS action обеспечивают обратную связь по мере продвижения к цели. Это означает, что нам больше не нужно самим запрашивать тему одометрии, чтобы узнать, прибыли ли мы в нужное место.

Пакет move_base включает в себя base_local_planner, который объединяет данные одометрии с глобальными и локальными картами затрат при выборе пути для следования робота. Глобальный план или траектория вычисляется до того, как робот начнет двигаться к следующему пункту назначения, и учитывает известные препятствия или области, отмеченные как "неизвестные". Для фактического перемещения робота, местный планировщик отслеживает поступающие данные датчиков и выбирает соответствующие линейные и угловые скорости для прохождения роботом текущего сегмента глобальной территории.

Last updated