I’ve often thought that exotic programming tasks – at least, those that are genuinely useful – just pass into the toolboxes of everyday programming and are then forgotten. Remember when there were books on multimedia programming? Or when networking and databases were considered exotic? If you go back far enough, splitting up records out of disk (or tape or drum) sector was fair game for an application programmer, but when’s the last time you did that on Windows or Linux?
My prediction is that robotics will eventually fade away and become just programming. Already, we see a variety of embedded systems that have some sort of moving component. By robot, of course, I don’t necessarily mean android (human robot, not a phone OS). But some autonomous moving computer.
Robotics are a good educational vehicle (no pun intended) and I often talk about robots when I talk to high school students. A robot is an amalgam of many different kinds of engineering, and kids like robots. I’ve taught some classes using Parallax robot kits and with the ubiquitous Lego Mindstorms. The Lego robots are fun, but out of the box I fear they don’t give you the real programming experience. You can get tools that do, of course, and I prefer to teach BASIC or C even if I have to hide some more complex things in a library to make them accessible to the kids.
There are some robot libraries out there. Someone recently pointed out Robot Operating System (ROS) to me (see http://www.ros.org). This is mostly built for Linux (which suits me), although there is some version of it for Windows and FreeBSD. It supports several hardware platforms out of the box, including Lego. ROS implements a service-oriented system with publishers and subscribers. You can use C++ or Python.
Another well-developed robotics library is RL. This is just for C++ but works on many platforms including Linux and Windows. You can find links to several projects that use RL on their homepage.
There was a time when doing sound, graphics, or fonts took some specialized library and someone who was an expert in that area. But now they are all commonplace. How long do you think it will be before traditionally robotic features – motion and vision, for example – become as common place as fonts? Leave a comment and share your thoughts.