Software Archive
Read-only legacy content
17061 Discussions

Accessing Camera Pose during Scene Perception with only IMU (R200)

Duncan_I_
Beginner
223 Views

Hello internet,

I am using the Intel RealSense R200 camera to scan a room with Scene Perception and convert it to a *.obj file for later assessment/viewing. It works wonderfully in rooms with high depth contrast, however, rooms with poor depth contrast (aka... flat white walls) the scene perception fails to localize itself and the camera pose from the sense manager is unavailable. Is there a way to track camera pose for the R200 RealSense camera using only the internal IMU, and disable tracking via pattern recognition?

Problem:
Unable to query camera pose with poor depth contrast.

Language:
C/C++ or C#

Similar Forum Topics:
595012 --> R200 Scene Perception - texture output for the mesh
597120 --> R200 - Does it contain an IMU?

Attempted Solution:
I tried enabling both the inertial and gravity sensor support through the ScenePerception interface before initializing the sense manager. In rooms with high depth contrast I can poll the camera pose in real time without loosing accuracy. However, I have not seen any method allowing more options regarding the on board IMU.

private PXCMSenseManager    _sm;
private PXCMScenePerception _sp;

void main()
{
    _sm. = PXCMSenseManager.CreateInstance();
    
    ...     // skip some code

    // Initialize scene perception
    _sm.EnableScenePerception();
    _sp = _senseManager.QueryScenePerception();
    _sp.EnableInertialSensorSupport(true);
    _sp.EnableGravitySensorSupport(true);

    // Initialize the mananger
    _sm.Init(_handler);

}

I also experimented with covering each of the lenses to determine the behaviour of the camera to find that it can still track the camera pose with either the color camera or the IR projector obstructed, but not both at the same time. From forum topic #597120 it seems that Intel did not provide a method in the SDK to access the IMU directly, so would the next best alternative be to link an external IMU to my system (aka tape it to the R200 camera) and then call the SetCameraPose through the ScenePerception interface to spoof the camera's pose in periods of low depth contrast?

Thank you for your help,

DJI

0 Kudos
0 Replies
Reply