Source: Kamarudin, K., Mamduh, S.M., Shakaff, A.Y.M., Saad, S.M., Zakaria, A., Abdullah, A.H., Kamarudin, L.M., Method to Convert Kinect's 3D Depth Data to a 2D Map for Indoor SLAM. in 9th IEEE Colloquium on Signal Processing and its Applications (CSPA 2013). 2013. Kuala Lumpur. Get 11-bit Raw Data from Kinect
Convert 11-Bit Raw Data to Depth using algorithm (3 algorithms available)
1) Stephane method: Depth(in m) = 0.1236*tan(Raw_data/2842.5 + 1.1863) 2)ROS method (in m): Depth(in m) = 1/(Raw_data*(-0.00307)+3.33) 3)Viager method: Depth(in m)= -0.075/tan(0.0002157*Raw_data - 0.2356)
the most accurate. Unfortunately, Stephane and Viager methods are much slower than ROS method (
Filter Depth data
a. For example, if the range being set is from 0.7 to 4m, the pixels which are out of range will be repla **The implementation of this step has also successfully removed the shadow problem.
Find Real World 3D Coordinates --> (X_Real, Y_Real, Depth)
Y_Real = Depth * (cy_d Y_Pixel) / fy_d _d = 339.307809753, fx_d = 594.2143421192, cy_d = 242.7391376175, fy_d = 59 **I found that SDK Method gives the most accurate and stable data
Filter the Real 3-D Coordinates in X and Y directions.
range for Y is (-1 to 0.5m), the pixels located below 1m and above 0.5m is invalid. They will be replace 1m) so that the robot only sees obstacles that it cant go through. This implementation solves the pro
hat is out of range of the robots height. So, data that correspond to a point that is above or lower than the heigh
Find Obstacle Locations
mn and store the X_Real and Depth value. (Y_Real is no more important as the nearest one in the colu his solution may capture certain noise as obstacle location, it is preferred since the processing time is
Send Obstacle Locations to Base (PC/Notebook)
he obstacle locations are obtained, the data is transferred to PC/Notebook through router using TCP/IP