Kinect services for Microsoft Robotics Developer Studio

The Microsoft Robotics Developer Studio (RDS) team have released Kinect Services for robots! The potential of the Kinect just continues to amaze. The latest free download from the RDS team, has effectively provided robotics geeks all over the world with an inexpensive ‘Laser Range Finder’ using the Kinect technology.

Robotics is slowly becoming a key part of our everyday lives – do you still vacuum your house? We don’t, we have a Roomba to do it. But cost and capability continue to be key issues for the robotics world. While the RDS burst into the robotic world a number of years ago, things have been quite recently while the team address some of the key challenges. The first instalment of their work is the Kinect Services for RDS 2008 R3.

RDS is a fabulous example of the Microsoft technology stack. It utilises a broad range of MS tech to deliver a powerful solution. This is best demonstrated by the RDS Simulator – you don’t need a real robot to play with RDS, you just need a Windows PC with a good graphics card!

The Kinect Services upgrade your RDS installation with additional simulation solutions. Below you can see the ‘Apartment’ simulation with an iRobot Create enhanced with the addition of a Kinect and eBox computer. The robot can successfully navigate around the apartment avoiding the furniture using the capabilities of the Kinect to detect obstacles within the range of 80cm to 4m. The solution implements a simple wanderer algorithm to keep the robot moving without banging into stuff.

clip_image002

The simulator also provides simulated depth and rgb video streams so you can see what the Kinect is seeing.

clip_image003

These differ from the live Kinect streams because the two camera devices, depth and rgb, are perfectly aligned in the simulator. In the real world, both cameras have varying offsets so alignment is always out by an amount – you can see this from the live Kinect service pictures I took from my den. The Kinect services provide functionality to address this issue and tie areas of the images from the camera together more accurately.

clip_image005

Depth and RGB Camera – camera alignment presents an interesting view!

clip_image007

Depth view

clip_image009

RGB view – A1-DW and RS Media Robosapien pose for the Kinect.

The Kinect services provide the robotics programmer with access to the video and depth in the application architecture of the RDS. This app architecture is radically different to the programming model used more generally today. Using an execution runtime called the Concurrency and Coordination Runtime (CCR) it provides the underlying message-passing system which allows RDS services to scale efficiently across computing cores and execute code in a timely manner (i.e.. As required). RDS services are built on using an app architecture called Decentralised Software Services. This is a REST based architecture and allows the computing capability of a solution to be spread across many computing nodes easily. In practice this allows a robot device to have limited computing power on board while more powerful computing devices (e.g. laptops or servers) can readily consume sensor service data from the robot device and process it effectively, returning results or instructions for action back to the remote robot. Think of all those Sci-Fi films where the hero has to take out the central ‘core’ to stop the evil robots and you’ve got the picture. I use an i7 laptop as my ‘core’ remote processing machine, while A1-DW has a dual core AMD motherboard built-in for ‘on-board’ processing.

This is a small but significant delivery from the RDS team with more functionality promised soon!

Download the free Kinect Services for robots

Paul Foster

Paul has been programming computers and building bits of kit for over 27 years, of which 15 have been with Microsoft in a variety of technology evangelist roles. Always looking to build with the latest and greatest technology available, Paul spends his time sharing his activities and creations online via his blog or in person. Paul is a keen dinghy sailor, and for a short time was a member of a circus flying trapeze troupe.

Published by Ubelly

Ubelly is an author for ubelly. We don't have a bio filled out for Ubelly yet, but we'll have that up for you soon - don't worry!

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>