In the software world, the open source movement consists of a relatively small but passionate community of developers. Though open source operating systems, such as the various Linux distributions, have not achieved high rates of adoption on desktop platforms, a variety of libraries, tools, and embedded Linux systems have become essential elements of software development on all platforms—from personal computers to mobile phones to robots. Because open source technology has grown so integral to research and development, many robot developers, both commercial and academic, are turning to open source models for their software and even hardware.
Open Source—An Overview
“Open source” generally means that a product—often a piece of software—is released in full, including source code or other fundamental design elements, under a license that enables anyone to use, change, and share it. The types of licenses vary in the end user’s obligation to the open source community; under a GNU General Public License (GPL), for example, a piece of software that a developer changes or adds to for a project must be released under an identical license—meaning that if the software was originally free and all source code was available, so must all the new work be free and available for use. Licenses such as this can limit proprietary usage. On the other hand, under a BSD license (originally for the Berkeley Software Distribution of Unix), software that is developed using open source code can be released under a more restrictive license, allowing newly developed code to be kept proprietary.
Open source does not necessarily mean free. Though there is a widespread free software movement, a variety of revenue models are in place for open source products. One example is selling licenses for commercial versions of an open source software product that allows end users to develop under a BSD-like license, rather than using the free GPL version of the code. Other companies may charge for development support for an open source system they have created.
One of the major benefits of open source products is that permissive licenses and low-cost barriers to entry help to create a dynamic network of developers and end users who work together to improve the product offering. Many open source aficionados point to Linux as an example of this success: Linux distributions (all based on the same kernel) are generally considered to be much more stable as personal computer operating systems compared with big players such as Microsoft Windows. Open source communities also help bring new users into the fold, acting as an approachable method for learning about and building skills in development.
Indeed, there are many advantages to the open source philosophy, and in software especially it has become a critical part of the development ecosystem. There are, of course, advantages to the conventional proprietary development philosophy. From a developer standpoint, it provides better intellectual property protection, and from an end user standpoint, it comes with a better guarantee of support. But open source products serve many important needs for developers, and the timing is right for robotics companies to take advantage of this.
Hardware and Software
Both hardware and software can be open sourced. Though open source software is the best-known embodiment, recent hardware products have become very popular in hobbyist and research communities. Actual open source robots—that is, robots whose mechanical and electrical design documentation is freely available—are not widespread, but do exist, primarily for the hobbyist and educational markets.
Open source software is a much bigger field, with products that range from libraries and plug-ins to entire operating systems. In robotics, embedded Linux distributions are extremely common as operating systems—far more so than embedded Windows systems. Computer vision libraries like OpenCV, 3D graphics like OpenGL, and other tools are frequently used in both research and commercial systems. In addition to already-available tools, robotics companies are developing their own operating systems, frameworks, and modules designed for specific hardware platforms. These companies hope to advance innovation in robot applications by reducing developer time on basic software systems.
It is also important to consider enabling technologies that are open source. Though these products may not be integral to a robot themselves, they help lower barriers to entry for researchers and developers—especially newcomers to the field—and bring more people into the development community.
One very successful example is the Arduino board. This small circuit board uses an Atmel ATmega series microcontroller with basic circuitry—and add-ons like Bluetooth—to provide users with all the basic functionality of a microcontroller without expert knowledge of electronics. The circuit board design is open source, and can either be downloaded and manufactured by a user, purchased in a kit, or preassembled. A set of open source software tools complements the hardware and lets new users learn the basics of microcontrollers that lead to motor control, sensor input handling, and other essentials of robotics. Arduino boards have become the de facto introduction to robotics for myriad hobbyists and students.
Another is the MakerBot, and similar products like the [email protected] printer, which are open source 3D printers used for rapid prototyping. Traditionally, 3D printers have cost tens of thousands of dollars, well out of the reach of hobbyists and some researchers. The open source designs allow people to build their own desktop-size 3D printers for the cost of materials only, enabling them to quickly produce small pieces and parts for mechanical designs. Suddenly, armatures, camera mounts, and other pieces can be produced quickly without interfacing with professional machine shops, complex drawing packages, or long lead times. Again, minimizing the barrier to entry is critical, and open source hardware has provided a way to do that.
Major Players in Open Source Robotics
The best-known pioneer in open source robotics is Willow Garage Inc., the Silicon Valley start-up that pulled in former Google alumnus Scott Hassan and a number of researchers from Stanford University’s AI Lab. Willow Garage’s primary product is the Robot Operating System (ROS), which the company likes to advertise also stands for “Robot Open Source.” ROS is a BSD-licensed software platform that can be compiled for various hardware systems and a number of different robots. The idea is that this basic software system handles the fundamental operations needed to run a robot—processing, motor control, navigation, sensor drivers—so that users can have a platform up and running quickly, allowing them to focus almost immediately on robot behaviors and applications. Because ROS is released under a BSD license, it could be used in commercial applications, but it is currently used almost exclusively by academic researchers.
Gostai, a France-based robotics software company, has released a version of its Urbi platform under a GNU GPL. Gostai previously had some open source libraries and other modules, but just made the Urbi kernel available in the past year. Gostai has also made Urbi compatible with modules developed for Willow Garage’s ROS—a move that benefits Gostai by opening its platform to a wider audience—and that would have been impossible without both companies being committed to open sourcing their products.
A variety of other software products have also been developed under open source licenses, though Urbi and ROS are probably the best known in the research world.
Another key player in open source software, but from an entirely different market, is OpenJAUS, the open source version of the Joint Architecture for Unmanned Systems (JAUS). JAUS was originally developed under U.S. government funding for unmanned systems like aerial drones, autonomous underwater vehicles, and ground vehicles such as the PackBot.
JAUS describes a messaging architecture that is designed to provide commonality in control and autonomy among unmanned systems from different companies. The OpenJAUS project is designed with two goals in mind: to provide an easy way for unmanned system providers to learn about JAUS and start offering systems with the JAUS architecture; and to allow newcomers to the unmanned systems field an inexpensive and community-support-oriented way to be introduced to a common architecture. Though JAUS is still not widely used in the defense industry, OpenJAUS has been adopted on high-profile projects such as DARPA Grand Challenge vehicles.
Another open source framework called MOOS (Mission-Oriented Operating Suite), developed by MIT, is being adopted by researchers on unmanned systems—in particular, underwater systems—for commonality in behavioral control, and tested in government-funded exercises for use in situations like multivehicle operations.
Commercial Systems—Pros and Cons
As with most technology in robotics, newly released open source hardware and software products have seen growth primarily in the academic research world. Commercial use of open source software is often limited to standard embedded systems tools, like embedded Linux, and common libraries like OpenGL, which have been used in commercial applications for years. The newer robot frameworks have a lot of potential, but would require commercial users to rewrite their own frameworks—code that has often been in development for many years within a company—and are therefore not as easy to “try out.” This is true of any new framework, but despite the (often) low costs and support of a developer network, open source software still faces this barrier to adoption. However, as new robotics companies are founded, the open source systems have a higher likelihood of being adopted for commercial products.
When the issue of open source software use is raised, many skeptics often question its security, since the source code is all freely available and could reveal security holes that could be exploited. However, this is where the open source community excels. Because of the scrutiny the source code is under, the developers in the community are likely to find, fix, and release patches for any potential issues before they are widely known or exploited. In this respect, security should not be a major concern for many commercial or even some government users.
A major concern, however, is licensing. Users of open source software in commercial and especially government applications must be cautious in utilizing open source code that may require the publishing of any modified or derivative works. Paying close attention to the type of open source license under which code is released is critical.
Generally speaking, the biggest advantage of open source development is the network of developers that can support newcomers to open source and entirely new applications of the software. By releasing a product under an open source license, providers of hardware and software products can leverage these communities to improve their offerings, provide support to other users, and increase awareness and use of their products. These developers are also most likely to find and share new applications as they work together in ad-hoc teams.
The Future of Open Source Robotics
The state of robotics is often compared to the state of the personal computer industry in the 1980s. A wide number of hardware and software offerings are available, and many well-funded companies and organizations are focusing on finding the “killer apps” for robotics. But many experts believe that, much like during the PC revolution, the “hackers”—people doing development work in their free time as a hobby—will be the ones to find the exciting new applications in robotics. This is a primary motivation for robotics companies hoping to be a part of the robotics revolution by providing the open source software or hardware that enables rapid and innovative development by a large community.
When considering open source software from the user’s perspective, the attraction is clear. Noncommercial users can usually acquire source code or drawings for free, making the experience very low cost, and even commercial users who have to pay for a license can gain the benefits of the work done by the developer community. As developer communities improve upon the source and re-release their work under open source licenses, users gain the benefit of more stable or robust products as well as a wider range of modifications, plug-ins, and customizations than would otherwise be available.
Will open source hardware and software be the enabling technologies that bring about exponentially accelerated development in robotics applications? It is too soon to tell, but the philosophy of open source has successful precedents in other industries. However, so do closed architectures—as demonstrated by Apple’s iPhone and App Store, which today are far outselling the open source Android mobile operating system and equivalent application market. But open source technology has historically been a fundamental tool of hobbyists and researchers, and has always had success in attracting newcomers to the field with approachable introductions to the technology. Indeed, there is high potential for open source hardware and software to spur growth in robotics.
|The Bottom Line
With so many experts comparing the state of the robotics industry to the state of the PC industry in the 1980s, it is inevitable that open source hardware and software would be considered an important element of robotics development. A variety of software tools for robots—from libraries to behavioral modules to entire operating system-like frameworks—have been developed and released under open source licenses for researchers to use. In addition, several open source hardware projects have become important players in introducing hardware concepts to aspiring roboticists and bringing mechanical and electrical design out of labs and into the hands of the “hackers” who were so critical to the PC revolution.
These technologies provide a low barrier to entry for newcomers and experienced developers alike, and foster communities of researchers improving upon each other’s releases and accelerating development efforts. Though open source is not always the answer for commercially released applications, it is still likely to be a key part of the innovations in robotics for years to come.