
Taking the Kinect apart is a challenge in itself, and is described in detail here. Initially I thought that the tilt motor might be useful, but since this isn't a servo and the mechanism is quite flimsy I removed the stand and (carefully) sawed through the section connecting the base to the sensor (it looks like metal, but is actually plastic with a thin metal covering.
I had been expecting to find that the Kinect is mostly an empty plastic box with a small amount of electronics inside - as is often the case for webcams - but actually this isn't the case and there is a surprisingly dense set of three circuit boards. This sensor seems to be a computer in its own right, and also has an internal cooling fan.
A nice feature of the Kinect is that it has a metal chassis with two large holes at opposite ends sufficiently large for 5mm bolts. This makes it easy to securely fasten the sensor down onto a surface. In this case I used a long strip of aluminium for a base, with each end bent upward by 90 degrees. I also trimmed off some excess plastic, but otherwise retained the front cover, which provides protection for the camera lenses.

Tilt control was implemented in a simple way by directly fixing the sensor to a servo. This has the disadvantage of making the mechanism heavy on one side, so after some failed experiments with counterweights I added an aluminium sheet collar which allows the pan axis to rest on it. This eliminates any wobbly motions which can occur if the pan axis were connected only to the servo.

Another issue with this design for a pan and tilt mechanism is that the sensor cannot look directly downwards. To increase the field of view when the sensor is tilted down towards the floor I removed some of the upper section of the "neck", and replaced it with some flat aluminium sheet.

Robotics now looks as if it's at a point where the depth sensing problem - something which I've struggled with for many years - can be considered to have been solved, and that RGBD sensors like the Kinect will probably become common and further reduce in size and cost over time. It's my guess that other games console manufacturers will develop their own equivalent sensors, and that webcam manufacturers will also get in on the act due to the now elevated consumer expectations of performance.
So over the course of this year I'll be mainly investigating the next stages in the spatial awareness pipeline, such as SLAM, surface detection and object recognition. Another advantage of using the Kinect is that other developers will be doing similar things using ROS, so any successes can be shared and improved upon according to the open source methodology.
It's also worth remembering that this device wasn't released with open source drivers, and that in the space of a couple of months much software has been written for it by volunteers. This should be a lesson to hardware manufacturers, that it's probably more advantageous to work in collaboration with the software developer community at large, rather than to keep the drivers proprietary. Volunteers may fix a lot of your problems for you and allow you to reduce your support and development costs.
3 comments:
It's a fantastic sensor. Great price/performance specs. Anxiously waiting to see what can be done with SLAM and the Kinect.
Although I'm not usually much of a Microsoft fan, they deserve some credit for being the first to bring devices like this to the consumer market. Without the economies of scale of production for the games console market, sensors like these would have remained at the multiple thousands of dollars price point.
http://www.primesense.com/ are the people behind the sensor. They claim to be working on a consumer PC version.
Post a Comment