Блог‎ > ‎

Как определить положение и направление движения объекта

Отправлено 17 мар. 2014 г., 03:44 пользователем Константин Ханкин
Задача: 2 одинаковых объекта движутся по направляющей. Направляющая имеет датчики, объекты - соответствующие датчикам метки. Как определить, куда движется объект и с какой скоростью? Объекты не считаются материальными точками.

С первого взгляда задача кажется простой и понятной: над каким датчиком метка проехала, там и объект. Скорость и направление движения мы ему задали, так что вроде как и думать не над чем. Проблема появляется тогда, когда становится понятным, что:
  • объект может двигаться вперёд и назад;
  • объект может быть установлен на направляющую двумя разными способами;
  • объект может изменять направление движения в процессе этого самого движения.
Разобъём задачу на пункты:
  1. определить, где находится объект;
  2. определить, какой именно объект находится в опеределённой точке;
  3. определить, в какую сторону движется объект.
Первые два пункта изящно решаются установкой двух датчиков по диагонали: как бы ни был установлен объект на направляющую, диагональ не изменит своего направления, а, значит, мы можем надёжно определить, что над точкой проехал определённый объект.

Но как быть с третьим пунктом? Давайте формализуем ещё больше. Нам требуется определить вектор (даже не его модуль, а только лишь направление) скорости объекта. Вектор можно определить либо линейной зависимостью с указанием направления движения аргумента, либо набором из двух последовательных точек, через которые проходит вектор. Значит, с помощью одного набора датчиков невозможно определить вектор скорости. Отсюда вывод: для определения вектора требуется либо группа из двух наборов датчиков в каждой точке съёма, либо требуется анализировать проезд двух последовательных точек. Решение с двумя наборами датчиков аппаратно неэффективно. Решение с анализом двух точек плохо тем, что сводит на нет всю суть задачи: знать, где находится объект и куда он движется - не самоцель.

Сделаем промежуточные выводы:
  • определить направление движения по сигналам одного набора датчиков невозможно;
  • устанавливать группу наборов дорого и не всегда возможно;
  • анализировать два последовательных сигнала бессмысленно.
Напрашивается общий вывод: без дополнительных ограничений задача в такой постановке эффективного решения не имеет.

Самым мягким ограничением, которое напрашивается само собой, является запрет на смену положения объекта в процессе движения. Тогда направление можно определить, сделав пробный прогон объекта по двум точкам перед началом реальной работы.

Итак, к каким результатам мы пришли:
  1. положение объекта и его идентификатор можно определить, установив метки по диагонали в начале и в конце объекта;
  2. направление движения определить без дополнительных ограничений нельзя;
  3. запрет изменения положения объекта после начала движения позволяет определить направление движения с помощью тестового прогона объекта над двумя точками съёма.
Жду ваших комментариев
Comments