The old adage ?the soft stuff is the hard stuff?, often attributed as originating from former General Electric CEO Jack Welsh, has been employed very liberally when discussing politics, business management, self improvement and many other areas. For those with a technical bent, myself included, the soft stuff implies software.
Robotics development has a well earned reputation as being especially difficult, requiring as it does the mastery of multiple disciplines ?software, mechanical and electrical engineering. Most in the robotics community would argue, and I would agree, that the software component of robotics development is the hardest of the three. I would go further and say ?doubly so?. Here again, I would be in agreement with most of the robotics community.
A number of technologies, tools and techniques have been developed to reduce the complexity of engineering robotics systems. These include a whole host of robotics design and development tools, as well as ready-made robotic ?platforms?, that dramatically simplify the job of designing, developing, and testing robotic systems. Other methods for reducing the complexity of robotics systems development include the employment of standards and the use of open source software. It is the latter that concerns us here.
Open Source and Standards
Open source is a software development and distribution model where the source code is made freely available subject to the terms of a licensing agreement that guides the use, modification, and redistribution of the software. Strictly speaking, ?open source? does not equate to ?standard?.
However, open source accords better with de jure standards, those standards that are defined and ratified by official committees or governing bodies, than with de facto standards, which are standard by virtue of common usage. Unlike de facto standards, open source software (OSS) is not specific to a given product or company, cannot interfere with other software and must be technology neutral. Open source software that is not based on open standards (de jure standards), is not ?open? in the strictest sense, you just have the ability to view and modify the code. Happily, most open source software does make use of open standards.
Open Source Robotics Players
Regardless of standards support, OSS has many advantages particularly suited for robotics development, the least of which is the number of tools, libraries, frameworks, and system software currently available that are based on open source software. Examples include:
- Robot Operating System (ROS)—ROS is a framework of libraries and tools for mobile robots that was originally developed at the Stanford Artificial Intelligence Laboratory, but is now being advanced by Willow Garage, a robotics research incubator developing open source software and hardware for personal robots.
- Open Computer Vision Library (OpenCV)—OpenCV is a cross platform, open source computer vision library offered free for commercial and research use under a BSD license. The OpenCV library, consisting of over 500 algorithms and sample code for real time computer vision, was first developed by Intel. OpenCV comes with the content packages for ROS.
- Player/Stage (Player)—Player/Stage is a popular TCP/IP based middleware for robot device control offered under GNU General Public License.
- Gazebo—Gazebo is a simulation environment that employs OpenGL for rendering and the ODE physics engine. It models robots, objects and sensors in a dynamic 3D environment.
- Eclipse—Eclipse is an open development platform consisting of extensible frameworks, tools and runtimes for building, deploying and managing software. It is available royalty-free via the Eclipse Public License.
- Carmen—Carmen, Carnegie Mellon University?s Robot Navigation Toolkit, is an open-source collection of navigation software implemented in C.
- OpenSlam–The OpenSlam libraries from OpenSlam.org solve simultaneous localization and mapping problems (SLAM).
- OpenJAUS—OpenJAUS is an open source implementation of the Joint Architecture for Unmanned Systems (JAUS), an SAE International standard for messaging between and within unmanned systems. OpenJAUS consists of a software library and Software Development Kit (SDK) for developing JAUS compliant software.
Open Source Usage and Support
Usage varies among the open source solutions described above. OpenJAUS has been utilized for some defense systems. Eclipse has not found wide acceptance among robotics developers, while Carmen has fallen out of favor. OpenCV, Player/Stage, Gazebo and ROS are widely used, OpenSlam less so. Almost all are exclusively employed for use on research robotics systems.
This is changing, however. Consider ROS-Industrial, a joint effort between Southwest Research Institute, Motoman and Willow Garage. This past January, Southwest Research Institute announced the establishment of the ROS-Industrial Software Repository, a BSD-licensed ROS stack optimized for industrial automation systems.
Most complex mobile robotics systems are still in the research phase, an environment that is particularly emendable to an open source approach to software development and deployment.
Open source will also play a role in the DARPA Robotics Challenge. The program, which was announced April 10th and will formally launch in October 2012, will provide millions of dollars in funding to teams that can advance the development of robotics technology that can work cooperatively with humans in disaster response.
Following the Robotics Challenge announcement, DARPA declared that it was awarding a sole source contract to the Open Source Robotics Foundation to develop open-source robotics simulation and modeling software for the Robotics Challenge (based on the Gazebo simulator by the way).
At the time of this column, little was known about the plans for the recently announced Open Source Robotics Foundation (OSRF). The mission of OSRF is to support the development, distribution, and adoption of open source software for use in robotics research, education, and product development.
See companion article: Open Source Movement Powers Up Robotics Foundation
Open Source For Commercial Systems
It was noted earlier that the vast majority of open source robotics software is utilized for research robotics systems. But the mission of the OSRF, as well as ROS-Industrial and OpenJAUS, is to incorporate open source software in commercial robotics systems. But can open source robotics software succeed in the commercial sphere? Fortunately, precedent provides a partial answer.
Enterprise information technology (IT) systems have utilized open source software such as databases, web servers and operation systems for well over a decade. During that time it has been found that open source delivers considerable cost savings compared to proprietary technology, although total cost of ownership (TCO) metrics continue to be debated, along with return on investment (ROI) calculations.
What is not debatable is that that open source software has met or exceeded the technical expectations of those using it, particularly the rapid rate of discovery and elimination of bugs. Also, the initial acquisition costs for open source software is less than that for comparable proprietary solutions, an important consideration when initiating pilot projects. The best evidence for open source success in the enterprise IT space does not involve TCO or ROI comparisons, but instead is given by the following:
- Increased Use–The amount of whole cloth open source solutions used in enterprises is increasing.
- Open Source in Commercial Products–A large percentage of commercial software now includes some open source elements.
- SAS and Open Source–Most of the software-as-service (SAS) offerings targeted to the enterprise incorporate open source software.
Exceeding Enterprise IT Benefits
Many of the benefits of open source solutions for enterprise IT systems can be applied to robotics development, if not now, then in the future as the market matures. The primary benefit, particularly given the nascent state of the non-industrial robotics sector, is that robotics development will be opened up to large numbers of interested parties working cooperatively.
In fact, an open source approach might have a comparatively greater impact on the robotics market than the enterprise IT space a decade ago. Consider:
- Lack of Commercial Solutions–In the enterprise, mature commercial software alternatives to open source solutions existed long before open source solutions became available. That is not the case for robotics systems, especially for the new generation of mobile service robots and vision based industrial systems that offer complex manipulation and high levels of dexterity.
- Largely Research–Robots have been in commercial use since the 1960s. However, mobile, intelligent systems are in the earliest of the early adopter phase. Most complex mobile robotics systems are still in the research phase, an environment that is particularly emendable to an open source approach to software development and deployment.
Commercial Open Source
For all of their advantages for enterprise IT, early open source solutions often suffered from a lack of professional development and support. While the source code was free, version control, software incompatibility and lack of support plagued early efforts.
These problems were addressed by commercial companies such as Red Hat, Suse (acquired by Novell), and MySQL (acquired by Sun and then acquired by Oracle). These companies were joined by enterprise IT stalwarts like IBM, Hewlett-Packard and Oracle, that sold distribution versions of open source software, combining the free source code with professional quality assurance, proprietary utilities and subscription-based technical support packages. Training and integration services were also made available.
Not So Fast
Early problems associated with the use of OSS notwithstanding, in general the open source approach has proven itself in the enterprise IT space. Open source software is now widely incorporated into enterprise IT software infrastructure. But IT systems and robotics technology differ greatly in terms of complexity of development, hardware-software integration, real-time constraints and so on.
A better comparative would be embedded development of complex, hardware centric systems in the medical, automotive and aeronautic markets, particularly those systems considered safety-critical due to their ability to physically interact with humans.
Many open source solutions for embedded systems development are available including libraries, version control systems, middleware, build tools and many other solutions. They have found wide usage as tools for developing embed systems and in the products themselves. However, while some markets have openly embraced hardware systems incorporating open source software, other markets have not.
For example, US Food and Drug Administration (FDA) approval of OSS in medical devices has been lagging. This is not to say that the FDA opposes open source solutions, only that no formal proclamations for the use and control of open source software have been made.
Companies have come to market with devices incorporating OSS, while those who are less risk tolerant have shied away due to questions concerning ownership, licensing and culpability in case of product failure.
While open source support in the medical device industry has faltered, governmental entities have now embraced OSS, including defense agencies. Numerous governments have embraced open source software, going so far as to work with private companies to develop software. The US government provides many examples of agencies using OSS, including the Department of Energy, NASA, the Department of Homeland Security, the Defense Advanced Research Projects Agency (DARPA) and others (see here, and here for examples).
For its part, the US Department of Defense has addressed the open source issue first by studying the phenomenon and then in 2009 giving open source software status equal to commercial software. It has also published a listing of accepted open source packages for its many programs.
One issue that is raised when discussing the use of open source software in commercial robotics systems is that of competitive advantage. This is an issue that rarely applies when developing research robotics systems. Commercial entities must protect their assets? assets developed over time and at much expense.
If software is shared, then commercial robotics products compete only on the basis of hardware costs, which is a poor business proposition. Software is not only the hard stuff, it is the valuable stuff, the source of competitive differentiation and high margin sales.
If a robotics provider has developed a unique solution to a problem, the software component of that system provides that company with a significant competitive advantage. The vendor would have little reason to share code (and cede intellectual property). It is for this reason it is argued that proprietary software (closed software) is required to achieve commercial success.
In the robotics market, as elsewhere, the debate continues. Many groups are finding a middle ground where open source is used for common architectures and proprietary code for value added features. Open source licensing that protects intellectual property rights would also go a long way toward solving the problem.
Problems Solved, But Time Will Tell
I suspect that initially open source robotics solutions will suffer from some of the same issues that affected early IT open source software. Clearly the enterprise IT market was able to overcome the difficulties. At this time the use of open source software is expanding across all areas of IT in both the public and private sectors.
For the robotics community, the diffusion of open source software into commercial systems has begun. Software originally designed for research robotics platforms will be increasingly applied to commercial products. The launch of governing bodies such as the Open Source Robotics Foundation is positive step.
Eventually companies will come forward offering commercial class open source software and associated services. I also believe that approval processes from governing bodies like the FDA will be forthcoming, if only because open source software has become so prevalent. So too, the competitive advantage issue will be addressed by companies using combinations of open source and proprietary software in their designs. However, the rate and degree at which open source robotics issues are addressed is still an open question.
Dan Kara is analyst-at-large for Robotics Business Review. He can be reached at [email protected].