Software Continuum : Robots !

Avengers - Cybernauts

As member of the Software Academic team @Intel, I am trying to understand how we could translate all the wonderful things we see in the industry into great university courses. And today's topic : robots ! I love robots and you should too because they'll rule the world a few decades from now. (If you want to amaze your friends, remember that the word robot come from the play R.U.R. (Rossum's Universal Robots), published in 1920, by Karel Čapek).

We've seen great productivity improvements and a new potential unleashed by the information revolution, but internet is just the beginning. The next step could be the invasion of our physical world. First by sensors (and tablets are in fact just sensor enabled computers) then by physical interaction : robots. That's why they are so strategic. But robots are still in a rather basic state, executing simple or deterministic tasks. They are not able to cook my breakfast yet.

Of course robots have been present in universities and engineering schools for some time, like this very interesting engineering specialization from PIerre et Marie Curie University in Paris. This course like many others are focusing on electronics and low level signal processing with a little software. But, if I had to guess, I would say the robotics field will follow the path of mobile, consumer electronics, and embedded computing in general : from low level to software. You may say I am trying to software everywhere, and you could be right, but I think it's an ineluctable path : industry needs a steady basis to develop products, the era where each company could afford to develop their stack from scratch is long gone. For set-top-boxes, the shift to intel based solutions and a ready to use linux solution allows inventors to develop solutions quickly, focusing innovation on the middleware and UI as low level problems are solved once and for all. Set-top-boxes developers were electronicians, they are now software guys. Plus, a robot should be able to interact with other robots on the same networks or process info from the cloud : more software tasks. So let's talk software !

For robots, solutions like Robot Operating System - ROS already exists With ROS, you have a ready to use and highly modular operating system for robotics. You don't have to reinvent the wheel, the low level aspects of the hardware interaction are managed by ROS or third party libraries. The good thing about ROS is that people from all over the world took ROS as a base for their developments, so you can take advantage of their work.
It works with several operating systems like Ubuntu, and is ready to use with popular robot kits, from Lego NXT to huge and expensive PR2s.

As an example of what Intel is doing in the Academic field regarding robotics with ROS, you can read this article from Carnegie Mellon. or watch all the videos of HERB trying to do stuff. They use HERB, a basic butler robot use for R&D in robotics. Also interesting : the intel research page.

So I'm trying to take interesting projects from the ROS community and integrate them. Your advice and opinion is welcome !

For a fun demo of ROS from a software point of vue, see Google IO Cloud Robotics team presentation.

For more complete information about compiler optimizations, see our Optimization Notice.