C++ OpenNI2,BeagleBone Black,华硕XTION摄像头:在640x480处获取彩色流时出现问题

C++ OpenNI2,BeagleBone Black,华硕XTION摄像头:在640x480处获取彩色流时出现问题,c++,openni,beagleboneblack,openkinect,C++,Openni,Beagleboneblack,Openkinect,我试图将XTION中的颜色和深度帧保存到BeagleBone Black(BBB)上,以供进一步分析 我为BBB和我的开发计算机(MacAir with Kubuntu 14.04)编译并安装了OpenNI2。SimpleRead在两种平台上都能正确运行 我让我的程序以每秒30帧的速度在MacAir上正确运行。颜色和深度帧都从openni::openni::waitForAnyStream(…)成功返回 (我正在一个生产者线程内轮询waitForAnyStream,该线程无限期地等待一个新帧。

我试图将XTION中的颜色和深度帧保存到BeagleBone Black(BBB)上,以供进一步分析

我为BBB和我的开发计算机(MacAir with Kubuntu 14.04)编译并安装了OpenNI2。SimpleRead在两种平台上都能正确运行

我让我的程序以每秒30帧的速度在MacAir上正确运行。颜色和深度帧都从openni::openni::waitForAnyStream(…)成功返回

(我正在一个生产者线程内轮询waitForAnyStream,该线程无限期地等待一个新帧。 然后将帧复制到缓冲区并放入boost spsc_队列中,由使用者线程进行分析和保存。)

然后,我使用g++交叉编译器将程序移植到BBB。当我以640x480的速度在BBB上运行时,openni::openni::waitForAnyStream(…)永远不会返回。如果我将分辨率降低到320x240,并将颜色流的像素格式更改为openni::pixel_format_YUYV,它将正常返回。我可以使用YUYV格式,但我需要让640x480工作

我的问题是,您以前是否在OpenNI2框架中见过这个问题? 如果是,您是如何修复的

谢谢你抽出时间, 本


另外,我根本无法在BBB上识别Kinect。当我将其插入MacAir时,绿色led亮起,并且工作正常。在BBB上,天黑了,我找不到OpenNI2。对此有何想法?

Kinect的问题可能是Kinect需要比ASU更多的电流,因此您可能需要使用集线器,然后将集线器连接到BBB


关于华硕(我不知道它处理帧的速度有多快),但您可能正试图让BBB比它工作得更快。

只是一些可能有助于发现错误的问题。您是否使用ARM处理器标志编译openni2?
openni::openni::waitForAnyStream(…)
是否返回错误或任何东西?对于kinect,您安装了哪些驱动程序?我能想到的是,它没有接收到足够的电源,或者没有正确的驱动器。hi@api55,我正在使用Kinect的交流适配器,因此我认为它获得了足够的电源。为了确保我还将BBB的电源适配器连同迷你USB电缆插入了电源集线器(我读到这可能会导致过流问题…)openni::openni::waitForAnyStream不会返回任何错误,它永远不会返回!!我正在使用OpenNI2的libfreenect驱动程序。现在我在ODROID-XU3上使用相同的设置,一切正常。(ODROID-XU3是一款功能强大的SoC)感谢您的回答@tonytr。我现在正在使用ODROID-XU3进行开发,
openni::openni::waitForAnyStream(…)
现在可以正常工作了