У меня есть робот, который использует оптическую мышь в качестве дорожки положения. В принципе, по мере перемещения робота он может отслеживать изменение в направлениях X и Y с помощью мыши. Мышь также отслеживает, какое направление вы двигаетесь, то есть отрицательное X или положительное X. Эти значения суммируются в отдельные регистры X и Y.
Алгоритм Pathfinding для робота
Теперь робот вращается на месте и движется только вперед. Таким образом, движение робота идеально по прямой линии (хотя отслеживание мыши может отклоняться от отклонения, если вы отклоняетесь) под конкретными углами. Конкретный набор движений робота будет, как:
A: Поворот на 45 градусов, двигаться 3 дюйма
Б: Поворот на 90 градусов, двигаться 10 дюймов
C: Поворот -110 градусов, двигаться 5 дюймов
D : Поворот на 10 градусов, перемещение 1 дюйм
Но каждый раз, когда мыши X и мыши Y регистры дают реальные расстояния, которые вы перемещали в каждом направлении.
Теперь, если я хочу повторить набор движения, идущий только от А до D, как я могу это сделать, используя информацию, которую я уже собрал. Я знаю, что могу в принципе суммировать все углы и расстояния, которые я им кормлю, но это оказалось бы неточным, если бы были большие ошибки в каждом заказе движения. Как я могу использовать исходную информацию с помощью мыши? Друг привёл идею о том, что я могу постоянно синировать и косинировать значения мыши и вычислять конечный вектор, но я не уверен, как это будет работать.
Проблема заключается в том, что мышь дает только относительные показания, вращающиеся или движущиеся назад, вы потенциально удаляете информацию. Так что да, мне интересно, как вы можете реализовать алгоритм, чтобы он мог постоянно отслеживать изменения, чтобы дать вам кратчайший путь, если вы переместились в зигзагах, чтобы добраться туда изначально.
перемещается ...? что? – dmeister
... отсоединяет сетевые кабели ... –
После удара «submit» – tstenner