【问题标题】:Openni "One or more of the following nodes could not be enumerated"Openni“无法枚举以下一个或多个节点”
【发布时间】:2011-11-11 22:37:42
【问题描述】:

我已按以下顺序安装了最新版本的 openni 和 NITE:

Openni 1.3.4.6 不稳定开发版 x64 NITE 1.4.2.5 不稳定开发版 x64 ../platforms/win32 目录中的 Avin2 传感器 kinect x64

我使用的是 64 位 Windows 7,我已连接 Kinect,但未使用模拟节点。当我尝试运行错误时:“无法枚举以下一个或多个节点”

我的 modules.xml 内容是:

<Modules>
    <Module path="C:\OpenNI\Bin64\nimRecorder64.dll" />
    <Module path="C:\OpenNI\Bin64\nimMockNodes64.dll" />
    <Module path="C:\OpenNI\Bin64\nimCodecs64.dll" />
    <Module path="C:\PrimeSense\NITE\Features_1_3_1\Bin64\XnVFeatures64_1_3_1.dll" configDir="C:\PrimeSense\NITE\Features_1_3_1\Data" />
    <Module path="C:\PrimeSense\NITE\Features_1_4_1\Bin64\XnVFeatures64_1_4_1.dll" configDir="C:\PrimeSense\NITE\Features_1_4_1\Data" />
    <Module path="C:\PrimeSense\NITE\Features_1_4_2\Bin64\XnVFeatures64_1_4_2.dll" configDir="C:\PrimeSense\NITE\Features_1_4_2\Data" />
    <Module path="C:\PrimeSense\NITE\Hands_1_3_1\Bin64\XnVHandGenerator64_1_3_1.dll" configDir="C:\PrimeSense\NITE\Hands_1_3_1\Data" />
    <Module path="C:\PrimeSense\NITE\Hands_1_4_1\Bin64\XnVHandGenerator64_1_4_1.dll" configDir="C:\PrimeSense\NITE\Hands_1_4_1\Data" />
    <Module path="C:\PrimeSense\NITE\Hands_1_4_2\Bin64\XnVHandGenerator64_1_4_2.dll" configDir="C:\PrimeSense\NITE\Hands_1_4_2\Data" />
</Modules>

我也尝试使用以前版本的 OpenNI 和 NITE,结果相同。我还在 SamplesConfig.xml 中输入了许可证密钥,它没有其他更改。它有图像和深度的生产节点,仅此而已。

我想知道 Avin2 传感器 kinect 驱动程序是否适用于最新版本的 openni。安装顺序是什么,我要安装什么驱动程序才能使 kinect 与 openni 1.3.4.6 一起工作?

谢谢

-悉达多

【问题讨论】:

    标签: computer-vision kinect motion-detection openni primesense


    【解决方案1】:
    1. 检查所有 dll 是否存在
    2. 检查您的许可证密钥是否正确(某些模块需要有效的许可证密钥)。使用niReg 命令注册它
    3. 检查所有 configDir 是否存在、可读,以及其中的配置文件
    4. context.InitFromXmlFile(strFileName, scriptNode, pErrors) 之后立即停止您的程序(以便您可以执行下一步)
    5. 评论所有Module 节点。错误应该会消失,但现在您有一个无法运行的程序。
    6. 一个一个,解压模块,测试是否出现错误。现在你知道什么是坏模块了。

    【讨论】:

    • 抱歉延迟回复,但这是我调查的内容: 1)所有 dll 确实存在,我用之前的 openni 版本进行了验证。 2)这让我很困惑。我以为我不需要 NITE 的许可证密钥,因为最新版本不需要您输入它。无论如何,我已经使用许可证标签在 sampleConfig.xml 中输入了许可证密钥。 3)如果我在程序文件目录中安装了openni,我之前遇到过这个问题。我通过将它安装在根目录中解决了这个问题,例如 C:\OpenNI 和 C:\Primesense\NITE。所以我这里没有只读问题。
    • 4) 它在 InitFromXmlFile 上失败,但即使从我的系统断开 kinect 也存在错误,使其认为这是驱动程序问题。 5和6)这样做了,我仍然得到没有检测到primesense设备并且没有实例化枚举节点。现在我确实注意到我的笔记本电脑(这是一台 HP Elitebook 8760w)有一个 eSata USB 驱动器、2 个 ss USB 驱动器和另外 2 个我认为是 USB 2.0 的驱动器。经过一番搜索,我发现 kinect 不适用于某些 USB 3.0 端口?
    • 不管怎样,你能告诉我你安装openni、nite和驱动程序的顺序吗?你有传感器 kinect 驱动程序,avin2 驱动程序,openni 在其目录中有一个驱动程序安装程序。应该安装什么以及以什么顺序?谢谢
    • 我使用的是 linux 并安装了:OpenNI 和 Sensor。他们在没有 NITE 的情况下工作,用于深度图和简单的手点。当我想要更高级的功能时,我安装了 NITE。当我安装 NITE 时,它给了我“无法枚举以下一个或多个节点”,因为它需要有效的许可证。即使许可证在 xml 文件中,也需要使用niReg 注册。有没有检查过哪些模块不能枚举?
    • 我有点明白发生了什么。所以我认为我必须安装 Bin 目录中可用的 avin2 驱动程序,而不是 win32\platforms 中的驱动程序。但在那之后我开始收到它无法创建共享内存的错误。我的笔记本电脑是办公室笔记本电脑,当我以系统管理员身份登录时,我终于能够让示例正常工作。但是当我以本地用户身份登录时,它失败并给了我错误。所以看起来我有某种权限问题..
    【解决方案2】:
    1. 卸载所有以前的 kinect 驱动程序(如果有)
    2. https://github.com/avin2/SensorKinect下载avin2驱动
    3. 运行 SensorKinect-unstable\Platform\Win32\Driver\dpinst-amd64.exe(如果您的系统是 32 位,则运行 dpinst-x86.exe)

    然后运行演示程序(NiViewer)测试一切都很好..

    仅此而已..

    【讨论】:

      【解决方案3】:

      此版本的 openni 在 Windows 7 中存在 UAC 设置错误。支持无姿势校准的最新版本 openni 开箱即用。

      【讨论】:

        【解决方案4】:

        我不知道为什么,但出于某种原因,OpenNI 的稳定版本以及中间件和硬件与 avin2 驱动程序不兼容。

        我使用的是 Windows 7 x64,当我卸载所有内容并更改为 OpenNI、Nite 和 PrimeSense 传感器的不稳定版本时,它可以与 64 位 avin2 (SensorKinect093-Bin-Win64-v5.1.2.1.msi) 驱动程序一起使用。

        所以基本上,只使用不稳定的版本。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-11-05
          • 2014-09-21
          • 2010-09-11
          • 1970-01-01
          相关资源
          最近更新 更多