2014-11-07 10 views
0

Я пытаюсь сохранить кадры цвета и глубины из XTION на BeagleBone Black (BBB) ​​для дальнейшего анализа.OpenNI2, BeagleBone Black, камера ASUS XTION: проблемы с цветовым потоком на 640x480

Я скомпилировал и установил OpenNI2 как для BBB, так и для моего компьютера разработки (MacAir с Kubuntu 14.04). SimpleRead работает правильно на обеих платформах.

Я правильно выполнил свою программу на MacAir со скоростью 30 кадров в секунду. Как цветные, так и глубинные кадры успешно возвращаются из openni :: OpenNI :: waitForAnyStream (...)

(Я проверяю waitForAnyStream внутри нити производителя, которая бесконечно ждет бесконечного нового кадра. Затем кадр копируется в буфер и помещать в boost spsc_queue для анализа и сохранения по потребительскому потоку.)

Затем я портировал программу на BBB с помощью кросс-компилятора g ++. Когда я бегу на BBB на 640x480, openni :: OpenNI :: waitForAnyStream (...) никогда не возвращается. Если я уменьшу разрешение до 320x240 и измените формат пикселя для потока цвета на openni :: PIXEL_FORMAT_YUYV, он вернется правильно. Я могу жить с форматом YUYV, но мне нужно работать 640x480.

Вопрос в том, что вы уже видели эту проблему с каркасом OpenNI2? Если да, то как вы это исправили?

Спасибо за ваше время, Бен

PS. Я не мог заставить Kinect вообще узнавать на BBB. Когда я подключаю его к MacAir, загорается зеленый светодиод, и он работает правильно. На BBB он остается темным, и я не могу заставить OpenNI2 его найти. Любые мысли по этому поводу?

+0

Только некоторые вопросы, которые могут помочь найти ошибку. Вы скомпилировали openni2 с флагом процессора ARM? is 'openni :: OpenNI :: waitForAnyStream (...)' возвращает ошибку или что-то еще? для kinect, какие драйверы вы установили? что я могу думать, это то, что не получает достаточную мощность или у нее нет правильных драйверов. – api55

+0

Hi @ api55, я использую адаптер переменного тока для Kinect, поэтому я думаю, что он получает достаточную мощность. Просто, чтобы быть уверенным, что я также подключил адаптер питания BBB вместе с мини-USB-кабелем к концентратору с питанием (я читал, что это может вызвать проблемы с превышением тока ...) openni :: OpenNI :: waitForAnyStream не возвращает никаких ошибок, он никогда не возвращается! Я использую драйвер libfreenect для OpenNI2. Теперь я использую ту же установку на ODROID-XU3, и все работает нормально. (ODROID-XU3 - одна черта мощного SoC) – bensch128

ответ

0

Проблема с Kinect заключается в том, что kinect требуется больше тока, чем ASUS, поэтому, возможно, вам нужно использовать концентратор, а затем подключить концентратор к BBB.

И что касается ASUS, (я не знаю, как быстро он может обрабатывать кадры), но, вероятно, вы пытаетесь заставить BBB работать быстрее, чем может.

+0

Спасибо за ответ @tonytr. Я сейчас разрабатываю ODROID-XU3 и 'openni :: OpenNI :: waitForAnyStream (...)' работает правильно сейчас – bensch128

 Смежные вопросы

  • Нет связанных вопросов^_^