Навигационные алгоритмы позволяют шагающим роботам уверенно перемещаться по сложной среде. В прошлых статьях мы рассмотрели основы сенсорных технологий, таких как камеры и LiDAR, а также механику четвероногих и человекоподобных роботов. Теперь наше внимание переключится на алгоритмы, которые используют эти данные для решения одной из самых важных задач в робототехнике — определения того, где находится робот и как он должен двигаться.
Сегодня мы поговорим о проблемах, характерных для навигации шагающих роботов, углубимся в одометрию и вероятностные методы локализации, включая фильтры Калмана и фильтры частиц, а также рассмотрим SLAM, или одновременную локализацию и картографирование, наряду с различными методами картографирования.
Навигационные задачи для шагающих роботов
Шагающие роботы — будь то гуманоиды или четвероногие — сталкиваются с навигационными проблемами, которые отличаются от тех, что есть у колесных роботов.
Динамическая устойчивость и координация походки — одна из таких проблем. Шагающие роботы нуждаются в постоянных динамических корректировках для поддержания равновесия, особенно на неровной местности. В отличие от колесных роботов, их центр масс постоянно смещается. Например, робот Atlas от Boston Dynamics должен координировать сложные циклы походки и корректировать позу тела в режиме реального времени, чтобы ходить по неровной местности. Даже небольшой просчет в балансе может привести к падению, поэтому алгоритмы навигации в реальном времени имеют решающее значение.
Неопределенность окружающей среды — другая проблема. Природная среда непредсказуема. Поверхности могут быть скользкими, препятствия — перемещаться, а местность редко бывает ровной. Например, четвероногий робот, движущийся по лесной тропе, должен не только точно определять свое местоположение, но и использовать адаптивную стратегию картографирования, которая может обновляться в режиме реального времени.
Эти задачи заставляют нас разрабатывать навигационные алгоритмы, устойчивые к шумам датчиков и способные интегрировать частые динамические обновления. Алгоритмы должны компенсировать ошибки в оценке движения (одометрии) и быстро адаптироваться к новой сенсорной информации.
Для навигации используется двухуровневый сценарий. На высоком уровне генерируется общая команда, например, «пройти 1 метр вперед». Эта команда затем разбивается на последовательность шагов, и каждый шаг становится отдельной командой для низкоуровневого контроллера, который отвечает за конкретное движение суставов и поддержание баланса.
Логика работы системы делится на два уровня. Высокий уровень отвечает за планирование и генерацию команд. Он получает задачу, например, от пользователя — «пройти 1 метр вперед» — и определяет, что для этого потребуется, скажем, пять шагов. Затем формируются команды для каждого шага с указанием его номера, целевой позиции и времени выполнения. После этого команда передается на низкоуровневый контроллер по коммуникационному каналу, такому как CAN-шина или Ethernet.
Низкий уровень отвечает за обработку и управление аппаратной частью. Контроллер получает команду и с помощью алгоритмов обратной кинематики вычисляет углы и траектории для каждого сустава, необходимые для выполнения шага. Затем низкоуровневый модуль запускает цикл управления, который считывает данные с гироскопов, акселерометров и энкодеров. Для корректировки движения в реальном времени используются ПИД-контроллеры или другие алгоритмы, что позволяет соблюдать заданную траекторию и поддерживать равновесие. После этого рассчитанные сигналы отправляются на моторы и сервоприводы, а после завершения шага низкий уровень сообщает о выполнении команды на верхний уровень, что позволяет начать формирование следующего шага.
Одометрия и нулевая точка отсчета
Одометрия — это метод оценки положения и ориентации робота в пространстве, основанный на измерении пройденного расстояния и изменений направления. Для измерения перемещений используются датчики, такие как энкодеры на колесах или сервоприводах, которые фиксируют число оборотов или угол поворота. Измеренные изменения интегрируются во времени для расчета текущего положения и ориентации робота относительно начальной, или «нулевой», точки. Одометрия работает в выбранной системе координат, где начальное положение робота, как правило, считается (0, 0).
Однако у одометрии есть свои недостатки. Малейшие погрешности измерений суммируются с каждым шагом, что может привести к значительному отклонению от реального положения. Пробуксовка и скольжение на неровной или скользкой поверхности также приводят к ошибкам в оценке перемещения. Именно поэтому современные системы навигации часто интегрируют одометрию с другими источниками информации, такими как IMU, лазерные сканеры или камеры, для повышения надежности локализации.
Шагающие роботы используют данные с датчиков, таких как энкодеры суставов и инерционные датчики, чтобы отслеживать, как далеко и в каком направлении они двигались. Это похоже на то, как человек считает шаги, чтобы определить, как далеко он прошел.
Нулевая (мертвая) точка отсчета в робототехнике — это заранее определенное эталонное положение или конфигурация робота, от которой измеряются все остальные координаты, углы и состояния системы. Эталонная позиция задается в процессе калибровки и служит базовым ориентиром. Нулевая точка часто служит началом системы координат, относительно которого рассчитываются положения, траектории и ориентация робота. Определив нулевую точку, система может регулярно проводить калибровку, что позволяет компенсировать накопленные ошибки и обеспечивать точность движений. Нулевая точка — это фундаментальный элемент в робототехнике, который позволяет задать общую систему координат и реализовать точное управление движением.
Вероятностная локализация и фильтры
Даже крошечные ошибки могут накапливаться со временем. Если робот слегка ошибается при каждом шаге, эти ошибки могут привести к значительному отклонению от фактического положения. Представьте себе человекоподобного робота, перемещающегося в помещении — к концу долгой прогулки он может оказаться совсем не там, где думает.
Для борьбы с этими ошибками используются методы фильтрации, которые сглаживают данные датчиков. Чтобы уточнить оценку положения робота, применяются вероятностные методы, учитывающие неопределенность.
Фильтр Калмана — это алгоритм, который постоянно обновляет свою оценку положения робота, комбинируя то, что он ожидает от своего движения, с тем, что он чувствует на самом деле. Это похоже на то, как человек в тумане делает обоснованную догадку о том, где он находится, а когда видит ориентир, корректирует свою догадку.
Расширенный фильтр Калмана (EKF) — это расширение классического фильтра Калмана, разработанное для работы с нелинейными моделями. Он помогает аппроксимировать нелинейные траектории более простыми прямолинейными сегментами, корректируя направление ходьбы небольшими частыми шагами. EKF оптимален для нелинейных систем с гауссовскими шумами.
SLAM и картографирование
SLAM, или одновременная локализация и построение карты, открывает возможность действовать в незнакомых условиях без готовых карт. Эта технология позволяет роботу определять свое местоположение и одновременно создавать карту окружающей среды.
Существует два основных типа карт:
- Метрические карты — это подробные карты, где объекты и окружающая среда представлены в точных геометрических координатах. Они полезны для точной навигации и движения в ограниченном пространстве. Однако они требуют больших вычислительных ресурсов и подвержены ошибкам.
- Топологические карты — это более абстрактные карты, представляющие окружение в виде узлов и связей между ними. Узлы могут быть значимыми местами, например, «кухня», а связи — проходами между ними, например, «коридор». Топологические карты просты и требуют меньше ресурсов, что делает их идеальными для навигации на больших территориях.
Все эти аспекты помогают роботам адаптироваться к сложным условиям, удерживать равновесие и двигаться.
В каталоге Robort — больше 50 бионических и колесно-гусеничных платформ, рук-манипуляторов и антропоморфных роботов. Вы можете связаться с сотрудниками на нашем сайте по вопросам аренды или покупки.
Реклама. ООО «Новый Ай Ти Проект», ИНН 7724338125
erid:2SDnjcHom8t