- discover landmarks and create a map of the robot's environment
- use the map and current sensor readings combined with probability to estimate the position and orientation of the robot on the map.
Turtlebot ready to roam |
I already had a Kinect, so I ordered the Turtlebot platform parts and purchased an iRobot Create separately. The Turtlebot chassis parts are very straightforward to put together; it took me less than an hour to put it all together. It comes with a custom build of ROS (Robot Operating System) to get jump-started. Instead of using ROS, I decided to use Microsoft Robotics Developer Studio because it has a very detailed API to make full use of the Kinect. It also has built-in support for communicating with the Create, so I thought it would go very smoothly. I had some difficulty working with Robotics Studio, but eventually managed to get a Service talking to both the Create and Kinect simultaneously.
For my first goal, I wanted to get skeleton data from the Kinect, find the distance to the hip-center joint of the person data, and then send commands to the Create to rotate so the person was centered. I'm won't post code at this point since the Robotics Studio code is largely throw-away so I can understand the process. I used my kids (Ethan, Zoe, and Phoebe) as subjects for the initial experiment, which you can see from the above video worked pretty well. The USB wires connecting the ICreate and Kinect to my laptop were pretty annoying, but I'll figure out some way to secure my laptop for further testing. On to SLAM mapping!