Using The PrimeSense 3D Sensor With ROS

PrimeSense is the company that provided the technology behind Microsoft's Kinect Anyone can buy a Kinect and it has become a popular research platform because it delivers a 3D image to a host processor. Some systems utilize webcams to generate 3D info but this can be very processor intensive (see Webcams For Gesture Recognition And More Vision Tricks). PrimseSense has its sensor (Fig. 1) available for developers.

 


74697_fig1sm

Figure 1. The PrimeSense sensor looks very similar to the Microsoft Kinect as one might expect but it only requires a USB connection to operate.

I have written about how the PrimeSense technology works (see How Microsoft's PrimeSense-based Kinect Really Works). Essentially the system projects an infrared pattern using an infrared emitter. It has a color video camera and a matching infrared sensor. The image from the latter is given to the PrimeSense system-on-a-chip (SoC) that analyzes the changes of the image to determine the 3D image.

The sensor can provide a 3D depth image to the host. It can also combine that information with the video frame. The SoC can perform additional functions as well. All this is available via a USB 2.0 connection. The Kinect requires an additional power supply. The PrimeSense sensor is preferred by roboticists for this reason.

The PrimeSense sensor has the same functionality as the Microsoft Kinect except that it only needs a USB connection for power. It also has a higher frame rate, 60 frames/s versus 30 frames/s, for the video feed. The PrimeSense sensor was available as the ASUS Xtion but that has been discontinued although some are still available via newegg.com.

The big difference between the Kinect and the PrimeSense sensor is the software support. PrimeSense targets OEMs while the Kinect is for gamers and hobbyists. If you plan on turning out a product then you want to talk with Primesense.

Since our readers tend to fall into the OEM category I took a look at PrimeSense's offering in the contect of robotics. In particular, I made use of it with the Robot Operating System (ROS). I have written about ROS (see Frameworks Make Robotics Development Easy—Or Easier, At Least). It is used on robots like Willow Garage's PR2 (see Personal Robots May Be Knocking At Your Door In The Near Future). Even the PR2 is showing up with Primesense technology atop the robot.

It turns out that ROS has support for both the Primesense sensor as well as Microsoft's Kinect. Just the drivers are changed. That is not much of a surprise since functionally the two are essentially the same.

I had originally planned on getting the PrimeSense sensor to work with iRobot Create (see Real Robots: iRobot Create) that I was controlling via the Overo Air COM and Turtlecore from Gumstix (see TurtleCore Tacks Cortex-A8 On To iRobot Create). The system is running ROS and Ubuntu Linux.

The problem is that getting ROS running on the Gumstix and iRobot platform is a work in progress. I still plan on doing that but I decided to turn to a standard x86 PC running Ubuntu for the initial test because installation is a matter of installing the proper packages. It actually took longer to install Ubuntu and ROS than getting it to work with the PrimeSense sensor.

Controlling the iRobot Create via an x86-based laptop is also a common configuration. It was the one I used and I have been happy with the functionality although I do not have a platform for the laptop. That makes the Turtlecore support important to me when I get the time to do that.

The other way to utilize the sensor is to use software from the OpenNI (Open Natural Interaction) organization. OpenNI provides and API and supports platforms with open source OpenNI software (hosted on Github). This includes support for the PrimeSense sensor.

The OpenNI and Primesense support is C code so it should be easy to incorporate to many embedded applications. The OpenNI provides a higher level interface that supports gestures.

I did not do much with the C support because of time constraints. Plus I am more interested in robotics at this point and the work has been done to get the sensor to work with ROS.

Microsoft has proven the PrimeSense technology within the game industry. It has also been providing support for the developer community but the question for OEMs is whether buying a bunch of Kinects makes sense or whether dealing directly with PrimeSense is a better approach. I suspect that the latter will be preferred if designers are expecting to make more than a couple hundred units or want long term support.

Discuss this Article 6

przemek
on Dec 4, 2012
Kinect units are widely available on ebay and in thrift stores (I got mine for less than $30). Be sure to get one with the power supply and Xbox-USB adapter. The Free software that works with the unit is provided by the libfreenect library, and the OpenCV API. libfreenect comes with several example programs to read, display and dump image and depth data, and to manipulate the pan/tilt and LED resources on the sensor. It even includes the program freenect-glpclview, which displays a manipulable 3D scene reconstructed from the kinect data.
josefclare (not verified)
on Apr 26, 2013

Hey there, I see you have a pretty good site right now! I appreciate so much a truly well written stuff.
annuity

Victor1122
on May 15, 2013

Thanks for sharing the info, keep up the good work going.... I really enjoyed exploring your site. good resource...
Bocagenewyork

roger1122
on May 18, 2013

Thanks for taking the time to discuss this, I feel strongly about it and love learning more on this topic. If possible, as you gain expertise, would you mind updating your blog with extra information? It is extremely helpful for me.
mobile advertising pricing

roger1122
on May 18, 2013

I wanted to thank you for this excellent read!! I definitely loved every little bit of it. I have you bookmarked your site to check out the new stuff you post.
cost of mobile advertising

Victor1122
on May 21, 2013

Hi! Thanks for the great information you havr provided! You have touched on crucuial points!
Relationship Advice by CN Tanks

Please or Register to post comments.

Search Parts

 

powered by:

 

 

Newsletter Signup

Forums

Pick Your Components With Confidence:
"Here are the procedures can help you
make the right choice..."

Search Parts

 

powered by:

 

 

Newsletter Signup

Connect With Us