Make Cool Stuff: Robots
By Mindy Holahan on May 23, 2011
Exciting things are happening in robots, my friends! Meet ROS, the Robot Operating System. ROS is an open source platform for robotics development that originated at Stanford. The awesome folks at Willow Garage are carrying the project forward with the dream that some day we will have robots that can fetch us a beverage and fold our laundry.
Oh, wait! That day is today:
Fetching a beer
Matching your socks
Anything you can think of…
There’s the obvious cool factor of the action in those videos, but the true excitement lives within the operating system itself. Robotics research is so widely varied that before ROS came along, it was very difficult and time consuming for a researcher to make use of work developed at other universities.
Let’s pretend you’re a robotics researcher in Minnesota and your specialty is path planning. You’ve written a module of code that teaches a robot to plan out a route to get from the living room to the kitchen, dodging any unexpected obstacles like chairs and sleeping kittens. Now you’ve heard that Perry in Los Angeles has developed a module of code that would allow your robot to grasp a handle with just enough force to open the door without crushing the handle. Before ROS came along, if you wanted to use Perry’s code, you would need to spend many hours of your valuable research time writing a custom piece of code to get your path planning to interact with Perry’s grasping code. Those are hours not spent creating new, exciting modules that get you valuable grant dollars from DARPA or evil Bond villains.
If both you and Perry wrote your modules using ROS, you could connect your path planning module to Perry’s grasping module with very little custom code, leaving you with more time to figure out how to get your robot to use a bottle opener without breaking the bottle or spilling the contents – and now we have wonderful robots that can fetch us a beer.
Here’s another video with good explanation of the challenges involved in tackling a task:
But wait, there’s more! The best part about ROS is that you, the at-home robot enthusiast, can help. ROS interfaces with a variety of robots, including the Lego NXT and the iRobot Roomba. If you’ve got a lot of cash and time to spare, you can build your own large-scale robot with this Instructable. Win the lottery and spend $400,000 on your own PR2 (and then invite me over to play; I’ll bring the pizza and beer).
If you know Python or C++, you can write code and run it in the visualization tools. The download packages for the different robots include a visualizer for 3D simulation of the robot. Even if you don’t have a robot, you can write your own routines and test them out in the visualizer. Once you’ve perfected your routine (I would like a robot that empties my dishwasher, please), upload it into the development repository. Other scientists can use your code in their routines, thus completing the beautiful circle of robot life.