Skip to content

Resolve "videoOpenni and videoOrbbec SScan don't take into account the selected device"

What does this MR do?

  1. Strongly identify camera when using Qt Selector, and add better support of multiple same model cameras
  • Refactor CameraDeviceDlg to keep usb order in comboBox
  • Uniquely identify cameras using a prefix pushed in description.
  1. Grab Webcam with OpenCV is now multiplatform.

  2. Enhance the video support when using OpenNI grabbers.

  • Add support of multiple connected astra (videoOrbbec)
  • Use Opencv instead of Qt to grab RGB frame
  • Grab RGB & Depth frame in same thread (synchronized on depth)
  • Remove Qt in videoOrbbec
  1. Add Astra utility program to replace over-complicated SScanIR
  • astraViewer: to view Color/IR and Depth stream
  • astraRecord3Streams: to display Color + IR + Depth and take a snapshot (! FPS will be very very slow ! ).

Note: Since eSense is not recognized as a webcam, ::videoOpenNi::SScan has not been updated to take account of ::arData::Camera. See here for details.

How to test it?

  1. Compile ExRGBDStream, ExVideoTracking, astraViewer & astraRecord3Streams

  2. Using ExRGBDStream check that you can correctly grab Astras using Orbbec Astra Pro camera grabber.

    2.1. Test also with multiple Astra connected.

  3. Using ExVideoTracking confirm that you can grab any webcam with OpenCV grabber (check also that Qt grabber still work)

  4. With astraViewer (and only one astra plugged) you will be able to display Color/IR & depth map from Astra camera (see README )

  5. With astraRecord3Streams you will see the 3 streams (IR, Color, Depth) with very slow FPS, and you can take snapshots (see README )

  6. Test any of your application involving Astra, OpenNI or OpenCV grabbers

Some Results

Selector

  • Red: unique deviceID of cameras
  • Blue: Identify multiple cameras with the same name. (Used to identify which astra to open)

Additional tests to run

  • Tested on windows
  • Tested on macos
  • Tested on Linux

Troubleshooting

  • I get the Depth from one Astra and the Color from another.

It may be possible that the usb device manager of your system remap for some reasons internally usb ports. If it does so, hypothesis that the order given by Qt is the same than the one given by OpenNI becames wrong...

You can try to unplugged Astras, and re-plugged it one after other.

  • On linux I've got this message when launching astraViewer & astraRecord3Streams:
qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

This is because qt.conf file has been removed on latest Qt in our binpkgs.

Try to launch utilities like this:

QT_PLUGIN_PATH=/Path/BinPkgs/Release/lib/qt5/plugins/ ./bin/astraViewer

QT_PLUGIN_PATH=/Your/home/.conan/data/qt/5.11.2/sight/stable/package/hash/lib/qt5/plugins/

Closes #23 (closed)

Edited by Emilie WERNERT

Merge request reports