Question

Is it possible to change the elevation angle of the kinect motor automatically?

I mean, till now I have this code (c#):

private void CameraAngleSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
        {
            int angle = (int)CameraAngleSlider.Value;
            KinectSensorManager.ElevationAngle = angle;
        }

and I change the angle manually using a slider called CameraAngleSlider.

Just an example: I would imagine that when the kinect start session, I place in front of the kinect and the sensor tries to adjust the angle related to my position.

Was it helpful?

Solution

This should be perfectly possible, however you will have to program this manually and take into account that the adjustment is not very fast. Also the kinect sensors don't push any data while it is adjusting its angle.

You have 2 situations:

1) the skeleton is already being tracked

=> move the angle up when the head is too close to the top of the screen

=> move the angle down when the head is under half the screen heigth

2) no skeleton being tracked

=> you will have to guess.. I'd suggest moving the angle up and down untill you get a tracked skeleton (and abort after a few tries so it doens't just keep adjusting)

OTHER TIPS

There is no flag or function you can set on the Kinect to have it seek out the best position for tracking, based on player position. The Kinect does detect clipping and can be queried as to if a portion of the player is out of the FOV.

The two functions that will allow you to detect clipping of the skeleton are:

Depending on how your application is operation you can monitor either one of these and, when clipping of the Skeleton is detected, adjust the KinectSensor.ElevationAngle accordingly.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top