7.9 Навигация по квадрату с помощью одометрии

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

7.9.4 Проблемы с Dead Reckoning

Обработка навигации по курсу, основанная только на внутренних данных движения и без ссылки на внешние ориентиры, называется мертвым расчетом. Любой робот, который полностью полагается на безрассудную расплату за любой промежуток времени, в конечном итоге полностью потеряется. Корень проблемы в том, что даже небольшие ошибки в одометрии накапливаются со временем. Представьте, например, ошибку в 1 градус в предполагаемом направлении движения робота непосредственно перед тем, как он двинется прямо на 3 метра. В конце пробега робот будет иметь ошибку более 5 см в своем положении. Поскольку робот не знает, что он находится на расстоянии 5 см от предполагаемого пункта назначения, расчет следующего движения будет отключен на эту величину еще до того, как он начнется.

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

Last updated