An Open Source Platform for Personal Robots - Willow Garage
Personal Robots move about in human environments and perform useful tasks on behalf of people. Building the software to make personal robots a reality is an unsolved problem that will require the combined efforts of many organizations to solve. The best way to approach this problem is by making the core software open source and available through an unrestrictive license. (At Willow Garage we prefer licenses like BSD or Apache that are free for both non-commercial and commercial use.) An open source approach will enable people to build on the platform and make fixes and modifications to the low-level components as required. An open software approach will accelerate the growth of the personal robotics industry.
Willow Garage is a robotics research company committed to creating and extending open source platforms that can be a solid foundation for robotics research. We support open source because our goal is to have the maximum positive impact we can with our investment. Individually, we have all benefited from open source efforts in the past and, altruistically, would like to give back to the community. In addition, our commitment to open source simply makes broad collaborations with universities and companies much easier to initiate. We would prefer to spend our time developing code to contribute, rather than negotiating with various technology licensing offices at other institutions. We are fortunate in that we are funded to have impact first, and make money second – a unique position. As a result, our open source projects have a higher likelihood of success.
We believe that researchers at universities and other laboratories should develop code within open source frameworks and release their work under unrestrictive licenses. From a social point of view, it's simply the right thing to do with the fruits of government-funded research. Releasing source code also supports better science: other scientists can more easily replicate results because when source code is released, the implementation details are more fully documented. We believe the government should require the projects it funds to make their code available -- and scientific journals should require working implementations of results to be submitted along with papers.
In addition, researchers have selfish (or parochial) reasons for supporting open source. Making source code available makes their work more valuable to business, which creates more funding and collaboration opportunities. Other scientists can more easily build on open source code, giving it much higher visibility and enhancing the reputation of the author. And open source allows each researcher to focus on the components that are his or her specialty, while also building on others' work for components that are not an area of core competence or expertise.
An open source approach lets students get further in a shorter period of time, which enhances the reputation of the students, the professors, and the institutions themselves. We believe application developers should develop on top of open source frameworks, even if they're not releasing their applications as open source. By doing so, developers can benefit from improvements by the community to infrastructure and new components. They can be more responsive to customer requests if they can fix bugs in core modules or adapt drivers to new devices, instead of having to wait for the owner of modules they depend on to respond. Applications built on open source infrastructures are not locked in, and can adapt their systems to new environments over time (especially important in robotics.) This is particularly important because many of the abstractions in robotics are not yet well understood, and may need to be refined over time. Working with an established open source framework assures standards compliance, and open source examples provide a starting point for development of new components.
Companies developing applications should contribute to open-source frameworks and tools. IBM, for example, used to own the operating systems for its mainframe and server computers. As a result, it was responsible for developing and maintaining all of the operating system code, including many aspects that were not its core business. IBM concluded that it made better business sense to build on top of Linux and to support the Linux platform than to continue to own its own operating system. As a result, IBM customers have less operating systems to deal with, and IBM gets free updates, debugging, and support for code that's not directly related to its computers. IBM continues to make money, however, through its core competencies of hardware sales, services, middleware and applications.
In fact, a whole ecosystem of companies has grown up to support Linux. Companies make money by providing support, packaging distributions, running server hosting companies, building embedded devices, writing proprietary applications on top of Linux, and building web applications running on Linux servers. There are many aspects to software, and even if selling the code doesn't make money directly, there are lots of other business models that do. In short, companies selling code are compatible with the Willow Garage vision, although they are not a core part of it. If, in fact, the robotics business ecosystem explodes the way we expect, we will have a number of spin-out companies that can explore different business models on top of -- and around the core of -- the open source software layer we are helping to create. A number of people have argued that a monopolist is required for robust standards. This is simply not true.
First of all, having a single company defining a standard file format or operating method does not guarantee future compatibility. Even software as ubiquitous as Microsoft Office has gone through periods of version incompatibility. And the IETF and other standards bodies have demonstrated widespread and long-lived standardization of formats. An open model simply makes maintaining adherence to standards easier, since whoever needs an incompatibility fixed is empowered to fix it.
People have also argued that an open source approach rewards application developers more than tool builders. But so does the rest of the world. Good sales people are paid more than good engineers! Sometimes life just isn't fair. We believe that companies that have tools expertise in house have a strong engineering advantage, even if the fruits of those labors (the tools) are contributed to open source. If a tool is 'that good', people or companies should go ahead and sell it, or sell support for it. The system we are proposing can have heterogeneous licensing for components, but a generally open-source environment provides the most value.
In summary, achieving the potential of Personal Robots requires the combined skills of mechanical engineers, electrical engineers and software engineers. Of these, software has the most unsolved problems, problems that are too difficult to be solved by a single organization. Tools and infrastructures need to be flexible, and open-source works best. Sharing technologies that are not a company's core competency benefits everyone.