Вопрос или проблема
Предположим, робот начинает с известной позиции, и у меня есть данные, получаемые от робота, когда он перемещается по сетке. Используя нюансы, зафиксированные в данных, например, намек на неравную скорость вращения колёс, указывающий на то, что робот поворачивает в сторону более медленно вращающихся колёс, я хотел бы динамически определять местоположение робота относительно его начальной позиции.
Идеальное решение заключалось бы в том, чтобы, в то время как данные поступают в потоковом режиме, моя модель динамически определяла положение на основании данных. Хотелось бы узнать, существуют ли уже готовые решения для этой задачи, или буду признателен за любые идеи, которые помогут мне начать.
Я вижу два класса решений вашей проблемы:
Решения без машинного обучения
Когда я изучал системы реального времени, мы анализировали данные, поступающие от датчиков колёс, вручную:
Сначала постройте график скорости вращения робота относительно скоростей колёс. Является ли скорость вращения линейной по отношению к разнице скоростей двух колёс? Соотношению скоростей? Попробуйте найти связь между этими переменными, чтобы позже можно было рассчитать изменение ориентации робота из скоростей колёс в течение некоторого времени.
Во-вторых, также проанализируйте движение вперед и назад: когда колёса вращаются с частотой X об/мин, насколько быстро движется робот? Является ли это линейной зависимостью? Найдите уравнение для этого.
Как только вы определите эти две зависимости, вы сможете динамически обновлять положение робота, определяя его направление (на основе предыдущего направления и текущей скорости вращения) и скорость (на основе частоты вращения колёс), и добавляя их к предыдущему положению.
Этот подход требует много работы, но он поможет вам понять, как скорости колёс влияют на движение робота.
Решения с машинным обучением
Учитывая популярность машинного обучения в науке о данных, я предполагаю, что именно этого вы, возможно, ожидали, когда задавали свой вопрос здесь.
У вас имеются временные ряды данных с двумя переменными: скорости для двух колёс.
Вы могли бы прокатить своего робота по сетке какое-то время, разгоняясь, замедляясь, поворачивая, останавливаясь и т. д., записывая положение робота, а также скорости его колёс через регулярные короткие интервалы. Так вы создадите обучающий набор данных. Вам нужно будет найти способ записывать позицию: возможно, вы сможете использовать триангуляцию, чтобы определить местоположение робота в сетке, или использовать камеру сверху. В итоге у вас получится последовательность данных (или несколько последовательностей), каждое из которых содержит две скорости колёс (входные переменные) и две координаты позиции (выходные переменные).
Затем вам нужно обучить модель на временных рядах данных, с позицией на каждом шаге временного ряда в качестве выхода модели (регрессия с двумя выходными переменными).
Какой тип модели подходит для этой задачи? Было бы очень интересно посмотреть, что могла бы сделать РНС с блоками LSTM или GRU в этой ситуации. Единственный способ узнать, будет ли это работать, — попробовать.
Этот подход также требует немало работы, и он не сильно поможет вам понять влияние скоростей колёс на движение (потому что модель, скорее всего, не будет интерпретируемой).
Ответ или решение
Определение позиции движущегося робота на основе данных с сенсоров и известной начальной точки является классической задачей в робототехнике и навигации. Рассмотрим детально два подхода к решению этой задачи: без использования машинного обучения и с его применением.
Решения без применения машинного обучения
В первой категории решений, вам потребуется тщательно анализировать данные, поступающие от сенсоров на колесах робота. Основной задачей является установить взаимосвязь между скоростью колес и изменением позиции робота.
-
Анализ данных о скорости колес: Начните с построения графиков скорости вращения робота относительно скорости колес. Определяется линейная ли эта зависимость или есть зависимость от разницы (или от отношения) скоростей двух колес. Это позволит вам вычислить угол поворота робота на основе разницы в скоростях колес.
-
Изучение движения вперед и назад: Определите, насколько быстро перемещается робот при определенной скорости вращения колес. Определите, является ли эта зависимость линейной, и сформулируйте уравнение.
-
Динамическое обновление позиции: Зная направления движения (основанные на предыдущем и текущем углах поворота) и скорости (основанные на RPM колес), можно постоянно обновлять позицию робота.
Этот подход, хотя и требует значительных усилий, позволяет детально понять, как именно скорости колес влияют на движение робота.
Решения с использованием машинного обучения
Альтернативный подход предполагает применение методов машинного обучения, в частности моделей работы с временными рядами.
-
Сбор обучающего набора данных: Запишите траекторию движения робота, включая информацию о скорости каждого колеса и фактической позиции робота. Для записи фактической позиции можно использовать систему триангуляции или видеозапись с камеры сверху.
-
Создание обучающего набора: В результате, вы получите последовательности данных, где каждое наблюдение будет содержать скорости колес (входные переменные) и координаты позиции (выходные переменные).
-
Обучение модели: Для этой задачи хорошо подойдет рекуррентная нейронная сеть (RNN), возможно, с использованием модулей LSTM или GRU. Они могут быть весьма эффективны в обработке подобных временных рядов.
-
Проверка и оптимизация: После обучения модели необходимо провести тестирования, чтобы убедиться в точности определения позиции робота.
Этот подход сложен в реализации, но может дать хорошие результаты в условиях неопределенности и шумных данных.
Заключение
Каждый из подходов имеет свои преимущества и недостатки. Если ваша цель – детально разобраться в физике движения, используйте более традиционную методику анализа данных. Если же главный приоритет – точность и автоматизация, особенно в условиях изменяющихся внешних факторов, вложение времени в разработку модели машинного обучения может быть оправдано. Выбор подхода зависит от ваших специфических требований и условий работы.