Skip to content

OpenNI2 Stream setProperty(7) - mirroring not implemented? #12363

@starmaid

Description

@starmaid
Required Info
Camera Model D435 specifically but maybe applies to more
Firmware Version 5.15.1
Operating System & Version Win10
Kernel Version (Linux Only) NA
Platform PC
SDK Version 2.54.2
Language NA
Segment OpenNI2 Wrapper

Issue Description

I'm trying to use the realsense OpenNI sdk for 3D scanning with other software that support generic OpenNI sensors. I have compiled the Realsense sdk with OpenNI support, and copied the new dlls to wherever they are needed, but I'm running into issues. For example:

Skanect throws this:

INFO: OpenNI2: Device "043422070239" present.
INFO: OpenNI2: Device info: [PS1080] [7463] [1537].
INFO: OpenNI2: Number of devices: 1
INFO: No support for softkinetic, skipping.
INFO: OpenNI2: Opening: 043422070239
INFO: OpenNI2: Number of devices: 1
WARNING: Could not switch to VGA depth mode.
ERROR: OpenNI2: Couldn't prepare depth stream: 	Stream setProperty(7) failed

And ReconstructMe throws this:

2023-11-06T02:03:54 ; Found 1 OpenNI compatible sensors
2023-11-06T02:03:54 ; PS1080, PrimeSense, 043422070239
2023-11-06T02:03:54 ; Error: ..\..\..\..\source\robvis\lib_rgbdsensor\src\openni2_sensor.cpp(398): Throw in function void __cdecl LibRGBDSensor::openni2_sensor::open(class boost::shared_ptr<class google::protobuf::Message>)
Dynamic exception type: class boost::exception_detail::clone_impl<class LibFundament::robvis_error>
std::exception::what: Check '_data->depth.setMirroringEnabled(cfg->depth_stream().mirror_enabled()) == openni::STATUS_OK' failed [3 != 0] Failed to setMirroringEnabled 	Stream setProperty(7) failed

So I took a look at what properties the Rs2Stream supports, and it looks like setProperty() only has cases for:

	ONI_STREAM_PROPERTY_VIDEO_MODE                    = 3, // OniVideoMode*
       ...
	ONI_STREAM_PROPERTY_AUTO_WHITE_BALANCE     = 100, // OniBool
	ONI_STREAM_PROPERTY_AUTO_EXPOSURE               = 101, // OniBool
	ONI_STREAM_PROPERTY_EXPOSURE                         = 102, // int
	ONI_STREAM_PROPERTY_GAIN                                  = 103, // int

Is there a reason stream mirroring (type 7) and others aren't implemented? Is this some hardware limitation? Could it be done in the driver? I'm not an OpenNI expert, but if this makes realsense 2 cameras work with more software, I'd dive into this.

Or, to address the real issue I'm having, does anyone know a free 3D scanning software (not Dot3D free trial) that doesn't crash when these features aren't supported?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions