For our Masters project in University myself and 2 of my colleagues are working on an autonomous robot capable of 3d object recognition. We study a mix of Electronic and Electrical Engineering and Computer Science.
Our project is making use of the LEGO NXT kit, a MIcrosoft Kinect camera and a BeagleBoard. The idea is that the Beagleboard is the brains of the operation and is able to obtain depth images from the Kinect camera and use them to do some simple object recognition. It can also control the NXT robot over USB to explore areas.
The software we are using comprises of LEJOS, OpenKinect and OpenCV. OpenCV (Computer Vision) is a framework which will allow us to perform transforms on images taken by the Kinect to hopefully do some object recognition. All of this is run on the Beagleboard which uses Ubuntu. The code for OpenKinect and OpenCV is in C/C++ and we're using a JNI wrapper to control the robot over USB with a simple send/receive protocol.
I'll add more information as the project progresses including images, videos and source code. We're currently at the point of configuring everything on the Beagleboard after doing proof of concepts on more powerful machines. This can be quite slow because of the large amount of dependencies we are working with and the slow processor on the board.
Would love to hear any questions/suggestions, we're quite excited about this!
EDIT: Here are a few pictures of the initial attempt to attach the Kinect to a robot, if you peel off the padded part on the bottom you can get access to the screw holes - normal LEGO plugs kind of
fit into these - will drill into the Kinect later on to get a better fit. However this is fairly sturdy for now and the robot can handle the weight without any issues.
Apologies for the poor quality, one of my colleagues has a DSLR so we'll get some better ones when we've made more progress.
An example of the images we're capturing
Looks like we're also going to get the chance to write a paper on this for an upcoming conference if things go well, here's hoping!