【问题标题】:Using Orbbec Embedded S camera from ARM with OpenNI将 ARM 的 Orbbec Embedded S 摄像头与 OpenNI 结合使用
【发布时间】:2019-11-25 01:09:23
【问题描述】:

我有一个已连接嵌​​入式 S 相机的 ARM SoC。我可以看到相机已连接:

$ lsusb
Bus 001 Device 006: ID 2bc5:050b
Bus 001 Device 007: ID 2bc5:060b

我从https://orbbec3d.com/develop/ 下载了OpenNI_2.3.0.63.zip,然后将 OpenNI-Linux-Arm64-2.3.0.63 目录复制到我的设备并运行 install.sh。现在,当我插入相机时,我得到:

[ 5887.390778] hub 1-1:1.0: 2 ports detected
[ 5887.879656] usb 1-1.1: New USB device found, idVendor=2bc5, idProduct=050b
[ 5887.886538] usb 1-1.1: New USB device strings: Mfr=2, Product=1, SerialNumber=3
[ 5887.894193] usb 1-1.1: Product: USB 2.0 Camera
[ 5887.898757] usb 1-1.1: Manufacturer: Sonix Technology Co., Ltd.
[ 5887.904814] usb 1-1.1: SerialNumber: SN0001
[ 5888.232284] usb 1-1.2: New USB device found, idVendor=2bc5, idProduct=060b
[ 5888.239161] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 5888.246856] usb 1-1.2: Product: ORBBEC Depth Sensor
[ 5888.251853] usb 1-1.2: Manufacturer: Orbbec(R)

我交叉编译了一个简单的应用程序:

int main(int argc, char** argv)
{
    const char* deviceURI = openni::ANY_DEVICE;
    Status result = STATUS_OK;
    result = OpenNI::initialize();
    cout << "OpenNI::initialize() = " << result << endl;
    openni::Array<openni::DeviceInfo> deviceList;
    openni::OpenNI::enumerateDevices(&deviceList);
    cout << "OpenNI::enumerateDevices() = " << deviceList.getSize() << endl;
    for (int i = 0; i < deviceList.getSize(); ++i)
    {
        cout << "Device " << deviceList[i].getUri() << " already connected" << endl;
    }

当我第一次运行它时,我得到了:

error while loading shared libraries: libOpenNI2.so: cannot open shared object file: No such file or director

所以我将 libOpenNI2.so 复制到 /usr/lib。现在当我运行它时,我得到:

OpenNI::initialize() = 1
OpenNI::enumerateDevices() = 0

为什么没有看到摄像头?我还需要做些什么才能让它工作吗?

【问题讨论】:

    标签: arm openni orbbec depth-camera


    【解决方案1】:

    我使用以下方式打开了日志记录:

    OpenNI::setLogMinSeverity(0);
    OpenNI::setLogConsoleOutput(true);
    

    看到了:

     3774       INFO            Log     XnLog.cpp       349     New log started on 2019-11-25 09:57:11
     3864       INFO            Log     XnLog.cpp       322     --- Filter Info --- Minimum Severity: VERBOSE
     4044       VERBOSE         OniContext      OniContext.cpp  165     OpenNI 2.3.0 (Build 63)-Linux-Arm (May 13 2019 17:45:57)
     4089       VERBOSE         OniContext      OniContext.cpp  259     Using '/usr/lib/OpenNI2/Drivers' as driver path
     4112       VERBOSE         OniContext      OniContext.cpp  267     Looking for drivers at '/usr/lib/OpenNI2/Drivers'
     4167       ERROR           OniContext      OniContext.cpp  279     Found no drivers matching '/usr/lib/OpenNI2/Drivers/lib*.so'
    

    所以我将文件从 OpenNI-Linux-Arm64-2.3.0.63/Redist/OpenNI2/Drivers/ 复制到 /usr/lib/OpenNI2/Drivers/。自述文件还说:

    *for using with Astra Embedded S/Stereo S, please change the resolution in 'orbbec.ini' to 'Resolution=17' for Depth and IR streams
    

    所以我在 /usr/lib/OpenNI2/Drivers/orbbec.ini 中编辑了这个。现在我明白了:

     3924       INFO            Log     XnLog.cpp       349     New log started on 2019-11-25 10:23:55
     4010       INFO            Log     XnLog.cpp       322     --- Filter Info --- Minimum Severity: VERBOSE
     4185       VERBOSE         OniContext      OniContext.cpp  165     OpenNI 2.3.0 (Build 63)-Linux-Arm (May 13 2019 17:45:57)
     4230       VERBOSE         OniContext      OniContext.cpp  259     Using '/usr/lib/OpenNI2/Drivers' as driver path
     4254       VERBOSE         OniContext      OniContext.cpp  267     Looking for drivers at '/usr/lib/OpenNI2/Drivers'
     4547       VERBOSE         OniContext      OniContext.cpp  309     Loading device driver 'libOniFile.so'...
     4588       WARNING         xnOS    XnLinuxSharedLibs.cpp   107     loading lib from: /usr/lib/OpenNI2/Drivers/libOniFile.so
    
     6199       VERBOSE         OniContext      OniContext.cpp  309     Loading device driver 'libPSLink.so'...
     6240       WARNING         xnOS    XnLinuxSharedLibs.cpp   107     loading lib from: /usr/lib/OpenNI2/Drivers/libPSLink.so
    
    11412       WARNING         DriverHandler   OniDriverHandler.cpp    85      LibraryHandler: Couldn't find function oniDriverStreamConvertC2DCoordinates in libPSLink.so. Stopping
    11539       WARNING         OniContext      OniContext.cpp  313     Couldn't use file 'libPSLink.so' as a device driver
    11626       VERBOSE         OniContext      OniContext.cpp  309     Loading device driver 'liborbbec.so'...
    11675       WARNING         xnOS    XnLinuxSharedLibs.cpp   107     loading lib from: /usr/lib/OpenNI2/Drivers/liborbbec.so
    
    15571       INFO            Log     XnLog.cpp       349     New log started on 2019-11-25 10:23:55
    15615       INFO            Log     XnLog.cpp       322     --- Filter Info --- Minimum Severity: VERBOSE
    15645       VERBOSE         xnUSB   XnLinuxUSB.cpp  383     Initializing USB...
    19162       INFO            xnUSB   XnLinuxUSB.cpp  412     USB is initialized.
    OpenNI::initialize() = 0
    OpenNI::enumerateDevices() = 0
    

    哪个更好,但仍然没有成功。然后我意识到我在复制驱动程序文件后没有重新连接相机,所以我这样做了,它成功了。

    【讨论】:

      猜你喜欢
      • 2014-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-19
      • 2021-11-05
      • 2011-05-13
      相关资源
      最近更新 更多