Создание большой плоскости обнаружения движения

Я хочу попытаться создать «плоскость обнаружения движения», в которой пользователи могут обнаруживать точки контакта (свои руки), когда они проходят через невидимую плоскость. Думайте об этом как о гигантском сенсорном экране планшета, за исключением того, что вы можете пройти сквозь него, а настоящего экрана нет. Важно то, что я могу определить не только место обнаружения движения, но и ГДЕ на невидимом плане.

Я пытался понять это и думал об использовании пары ИК-датчиков для этой задачи, но я не совсем уверен, что это сработает. Я приложил грубый набросок того, что я рассматриваю, но я открыт для предложений. Бюджет у меня примерно 200-300$.

Эскиз:

введите описание изображения здесь

Вот мои требования:

  • Самолет примерно 8 футов в высоту и 10 футов в ширину и неподвижен во время использования.
  • Самолету не требуется точное определение движения по краям плоскости (примерно 1 фут от краев плоскости не важен)
  • Информация должна иметь возможность передаваться на ПК для обработки, в идеале через USB, но допустимы и другие методы.
  • В идеале я хочу уметь распознавать движения «толкать»/«тянуть». Я подумывал о втором слое ИК-датчиков, чтобы у вас был набор «спереди» и «сзади», которые обеспечивали бы элементарное определение глубины. На самом деле мне не нужно что-то более точное, просто «мелкое» и «глубокое» осязание.
  • Я также хочу позволить любому просто подойти и использовать самолет без подготовки. Например, другой альтернативой, которую я рассматривал, была установка Wii Remote со светоотражающими перчатками или что-то похожее на образцы Johnny Lee, выпущенные много лет назад, но, если возможно, я хотел бы избежать необходимости в оборудовании на стороне пользователя.

Всем спасибо! Я ценю любые идеи по этой теме.

Пара дополнительных вопросов, которые могут помочь получить ответы, которые помогут: Какая точность вам нужна для позиции? Сколько одновременных проникновений вам нужно иметь возможность обнаружить? Можете ли вы допустить требование освещенности наряду с датчиками и, возможно, требование определенной обработки (цвет, отражательная способность) границы плоскости?
См. также: Kinect, его меньший родственник Leap Motion и оптический сенсорный экран FlatFrog.
@RBerteig Точность, которую я ищу, довольно грубая, например, разрешение в дюймах или что-то в этом роде. Что касается одновременных проникновений, необходимо 2, а больше всегда полезно, но не обязательно. О каком просветлении вы говорите? Цвет/отражательная способность физической структуры, окружающей плоскость, в полном порядке.
@ pjc50 Да, я возился с Kinect, мне просто было интересно, есть ли что-то более специализированное и не требующее от меня анализа полных данных камеры. Хотя это все равно может быть лучшим вариантом.
@bearcano Наличие источников света как части общего дизайна может быть полезным. Существует древняя (1980-е годы или около того) технология сенсорного экрана, основанная на выровненных парах светодиодов и фотодиодов, образующих сетку на экране. Прикосновение наблюдается, когда палец прерывает как горизонтальный, так и вертикальный луч, и работает, потому что пальцы непрозрачны. Это требует механического выравнивания, некоторой оптики на обоих концах каждого луча и, вероятно, будет суетливым. Но он может обнаруживать множественные проникновения, а глубина может обрабатываться несколькими плоскостями, сложенными друг на друга.
@bearcano Даже решение для камеры может выиграть от предоставления источников света. Если окружающий каркас покрыт световозвращателями (для этого есть лента , а также ткани и краски), а ИК-осветитель фактически коаксиален объективу камеры, то проникающий в плоскость объект должен иметь высокую контрастность, пока он не также рефлекторный. Системы захвата движения используют обратный прием: конечности актера отмечаются шариками, покрытыми световозвращателями, а камеры видят шарики в темном поле.
@RBerteig Настройка сетки звучит так, как будто она может работать идеально, если она может работать на требуемых мне расстояниях. Если у вас есть дополнительная информация об этом методе (ссылки и т. д.), я хотел бы прочитать об этом. У меня возникли проблемы с тем, как можно «выровнять» пары, чтобы каждый фотодиод не видел несколько источников ИК-светодиодов и т. Д.
@RBerteig Спасибо за ссылку на световозвращающую ленту. Это должно пригодиться, если мне обязательно нужно использовать решение на основе камеры.

Ответы (2)

Расширение моего предыдущего комментария до ответа...

Механически надежный метод определения положения непрозрачного объекта в 2D-плоскости заключается в соединении источников света с детекторами таким образом, чтобы можно было идентифицировать и измерить тени, отбрасываемые непрозрачным объектом. Этот метод использовался в 70-х и 80-х годах, чтобы обеспечить сенсорную активацию поверх классических тупых терминалов. Я не могу вспомнить производителя, но я помню запасную рамку стороннего производителя, проданную для ADM-3A , например, которая содержала необходимые детали. Быстрый поиск в Google по запросу «фотодиодный сенсорный экран» выдал удивительное количество фотографий, дизайнов и даже продуктов.

Классические ИК-светодиоды

Простой способ добиться этого — использовать сетку световых лучей. Вдоль каждой пары краев вы размещаете светодиоды на одном и фототранзисторы на другом. Пары светодиод/приемник выровнены, а оптика расположена так, что каждый приемник в основном видит один светодиод. Что-то вроде этого грубого эскиза ASCII-арта:

  vvvvvvvvvvvvvvv
  |||||||||||||||
>-+++++++++++++++-> 1
>-++++X|||||||||| > 0
>-++++-++++++++++-> 1
>-++++-++++++++++-> 1
>-++++-++++++++++-> 1
  |||| ||||||||||
  vvvvvvvvvvvvvvv    
  111101111111111   

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

Имея два набора ребер, покрывающих плоскость, вы можете определить местоположение одного проникновения со 100% уверенностью. Второе проникновение может быть идентифицировано, но оно также будет иметь фиктивные местоположения, поэтому, вероятно, потребуется дополнительная эвристика отслеживания, чтобы проверить, какое из двух возможных решений соответствует действительности:

  vvvvvvvvvvvvvvv
  |||||||||||||||
>-+++++++++++++++-> 1
>-++++X|||||O|||| > 0
>-++++-++++++++++-> 1
>-++++O|||||X|||| > 0
>-++++-+++++-++++-> 1
  |||| ||||| ||||
  vvvvvvvvvvvvvvv       
  111101111101111   

Только по теням на одном снимке невозможно сказать, находятся ли кончики пальцев в двух Xили двух Oместах. Однако, если Xпервым был замечен верхний левый контакт, то добавление второго контакта намекало бы на то, что, скорее всего, ВЛ не двигалась и что пальцы находятся на метках X.

Благодаря сканированию и более широким углам обзора как для светодиодов, так и для приемников вы, вероятно, сможете использовать далекие от обычных светодиоды, чтобы увидеть тени, отбрасываемые реальными пальцами, и исключить виртуальные пальцы. Если дойти до логической крайности, вы заново изобретаете компьютерную томографию, и используемые в ней математические расчеты, возможно, действительно заслуживают изучения. Вы можете покрыть обруч подходящего диаметра чередующимися приемниками и светодиодами, и действительно применить алгоритмы компьютерного томографа с низким разрешением.

Чтобы получить глубину проникновения, вы должны использовать более одного 2D-массива.

Самые большие недостатки этого подхода, которые приходят на ум, когда я пишу, — это логистические последствия большого количества точно установленных дискретных компонентов, включая оптику. Даже такую ​​простую оптику, как трубка для уменьшения поля зрения на каждом датчике, все равно нужно изготовить и установить. Кроме того, все аналоговые сигналы обрабатываются, воспринимаются и передаются обратно в ЦП. Но решите эти механические и логистические проблемы, и у вас появится подход к рассмотрению.

Рефлекторы?

Мне пришло в голову, что один из способов улучшить это, чтобы упростить сборку и посадку, — это разместить светодиоды и фототранзисторы попарно в непосредственной близости на одной стене и ретрорефлектор на дальней стене. Каждый луч был бы в два раза длиннее, если бы не прерывался, но оптическое выравнивание было бы намного менее критичным из-за установки излучателя и приемника на одной плате вместе с ретрорефлектором, чтобы возвращать свет от одного излучателя в основном только к его сопряженному приемнику.

Вы можете сделать небольшую печатную плату для каждой пары вместе с небольшим процессором и собирать все данные (и синхронизировать зондирование луча в массиве в целом) с шиной I2C или аналогичной по каждому краю. Это аккуратно содержало бы все интересные аналоговые биты и значительно уменьшало бы требования к интерфейсу для центрального контроллера. Это также сделало бы конструкцию модульной до такой степени, что базовый датчик луча можно построить и полностью протестировать в небольших количествах, прежде чем вы решите построить весь массив.

В духе более раннего искусства ASCII, вот эскиз, показывающий обнаружение одной точки:

     1 0 1 1 1 1 1   
    v^v^v^v^v^v^v^   
    ||| ||||||||||
  >-+++-++++++++++-\ 
1 <-+++-++++++++++-/ 
  >-++X |||||||||| \
0 >-||  |||||||||| /
  >-++--++++++++++-\ 
1 <-++--++++++++++-/ 
  >-++--++++++++++-\ 
1 <-++--++++++++++-/ 
    ||  ||||||||||
    \/\/\/\/\/\/\/
Спасибо за это, я думаю, что это именно то, что я надеялся получить от этого вопроса. Re: логистика - в идеале я бы поместил светодиоды и приемники на «полоски», которые можно было бы прикрепить / снять по бокам панели по мере необходимости, но, очевидно, во время повторной сборки необходимо соблюдать большую осторожность, чтобы быть уверенным, что размеры остались прежними. такой же. Меня больше волнует преобразование аналоговых сигналов в цифровые и передача их процессору. Много, чтобы рассмотреть, но это начинает меня на пути. Если у вас есть что добавить, пожалуйста, дайте мне знать, особенно по поводу передачи информации на ПК.
@bearcano Смотрите мое обновление, чтобы узнать больше о совместном размещении пары излучателя и детектора, чтобы упростить выравнивание и подключение.

В принципе, похоже, что пара довольно дешевых видеокамер справится с этой задачей. С довольно широкоугольными объективами, обеспечивающими поле зрения в 90 градусов, вы также получите достаточно близкое фокусирование, чтобы вы могли находиться достаточно близко к камерам, чтобы соответствовать требованиям 1 фута. Очевидно, вы можете заставить видеокамеры USB отправлять данные на ваш компьютер. Анализ полученных изображений не входит в мою компетенцию. Конечно, вы должны получить достаточно хорошее разрешение, чтобы идентифицировать несколько объектов размером с ладонь.

Существуют линейные камеры, которые дадут вам лучшее разрешение в одной плоскости, но они, как правило, дороже, чем вы готовы потратить.

Обычные 2D-камеры также легко дадут вам информацию об оси Z.
Если вы зайдете, например, на Newegg.com. и поиск веб-камер, там довольно большой ассортимент. Большинство, кажется, не указывают FOV, но один указал 68,5 градусов, что может быть немного меньше. Однако была и широкоугольная камера для видеоконференций с полем зрения 100 градусов. Поскольку большинство из них указаны как HD-камеры, они дают более чем достаточное разрешение для обнаружения рук.
Я подумал об этом и провел несколько ранних экспериментов с Kinect. В основном мне было интересно, существует ли решение, не связанное с камерой/Kinect, которое не требовало бы от меня анализа изображений с камеры, поскольку мне действительно нужны только значения расстояния до объектов (например, рук), ломающих плоскость.