I recently got a PR blast with a headline that caught my eye: "Big prospects for tiny Linux autopilot."
The blast was from a company called Erle Robotics, which makes inexpensive components for DIY robotics projects and drones. The product in question, the PXFmini, is a shield designed for the $5 Raspberry Pi Zero that includes a suite of sensors that just a few years ago would have cost thousands of dollars, including gravity, gyroscope, compass, pressure, temperature, and battery sensors.
But it was Linux specifically that caught my eye. Linux has emerged as the most exciting robotics platform in use. The systems built using Linux range from bots hacked together in home garages--the kind that might use components from a supplier like Erle Robotics--to the most sophisticated machines coming out of the fastest-growing hardware startups in the Bay Area. Seemingly overnight, our robotic future, which is now quite visible in the near distance, promises to be largely Linux-based.
Naturally, a lot of it has to do with the proliferation of Raspberry Pi micro controllers, which are based on an ARM processor that can run Linux. The ARM architecture means that some portions of Linux haven't been ported to the Rasp Pi, but for basic robotics controls (anything short of 3D mapping and navigation with a Microsoft Kinect, say) the Raspberry Pi with Linux provides the perfect brains for some very capable robots and drones.
And then there's a little thing called the Robotic Operating System (ROS). The name is deceptive because ROS isn't an operating system, per se. Rather, it's an open-source framework originally developed by Willow Garage, released under a free license in 2009, and currently maintained by the Open Source Robotics Foundation. In 2014, OSRF announced plans to add ARM Linux support to the Robot Operating System (ROS).
Using an open-source approach, ROS has consolidated a lot of the advances in robotics controls and operation, giving roboticists access to pre-compiled packages that allow them to build systems using common sensors such as cameras and force sensors. Higher-level services, such as inverse kinematics and speech recognition, are easy to plug in, and when you need to write your own software you can do it in virtually any language. Motor drivers, for example, can be written in a language like C. ROS then allows communication through its network layer with high-level control processes written in a language like Python.
Because of ROS--and, by extension, Linux--startups like Savioke and Fetch Robotics are rapidly iterating new robots without having to reinvent the wheel when it comes to things like motion planning and lower level controls. That shaves years off development and underscores the power of an open source ecosystem when it comes to technology development.
A few months ago I spoke with Open Source Robotics Foundation president Brian Gerkey about ROS. Our conversation veered into a comparison between the future of open source robotics and the PC wars that pitted (and continue to pit) Windows against Linux. Windows took the early lead in the PC race, but the equivalent--a proprietary operating system--will likely never catch on in any significant way in robotics.
"You know, with windows versus Linux, Windows got there first by a long shot. It was the entrenched party. So Linux is the scrappy upstart. In the case of robotics, open source got there first. The community grew up doing things the open source way. There was actually a period in the mid-2000s where Microsoft put a lot of effort into its Windows-based Robotics Developer Studio. It had really good features, but it's never taken off. So yeah, I think robotics are proving to be a different situation than what happened with personal computing."
Long live Linux. Long live ROS. Long live open source.