Robot projects are often evolutionary dead ends, with the software and hardware they produce disappearing without trace afterwards. In humanoid robotics, a small field with an avid appetite for novel devices, we experience a great deal of “churn” of this nature. In this paper, we explore how best to make our projects stable and long-lasting, without compromising our ability to constantly change our sensors, actuators, processors and networks. We also look at how to encourage the propagation and evolution of hardware designs, so that we can start to build up a “gene-pool” of material to draw upon for new projects. We advance on two fronts, software and hardware. For some time, we have been developing and using the YARP robot software architecture [Giorgio Metta, Paul Fitzpatrick, Lorenzo Natale, YARP: Yet another robot platform, International Journal on Advanced Robotics Systems 3 (2006) 43–48], which helps organize communication between sensors, processors, and actuators so that loose coupling is encouraged, making gradual system evolution much easier. YARP includes a model of communication that is transport-neutral, so that data flow is decoupled from the details of the underlying networks and protocols in use. Importantly for the long term, YARP is designed to play well with other architectures. Device drivers written for YARP can be ripped out and used without any “middleware”. On the network, basic interoperation is possible with a few lines of code in any language with a socket library, and maximally efficient interoperation can be achieved by following documented protocols. These features are not normally the first things that end-users look for when starting a project, but they are crucial for longevity. We emphasize the strategic utility of the Free Software social contract [B. Perens, The open source definition, in: Chris DiBona, Sam Ockman, Mark Stone (Eds.), Open Sources: Voices from the Open Source Revolution, O’Reilly and Associates, Cambridge, MA, 1999] to software development for small communities with idiosyncratic requirements. We also work to expand our community by releasing the design of our ICub humanoid [N.G. Tsagarakis, G. Metta, G. Sandini, D. Vernon, R. Beira, F. Becchi, L. Righetti, J. Santos-Victor, A.J. Ijspeert, M.C. Carrozza, D.G. Caldwell, iCub — The design and realization of an open humanoid platform for cognitive and neuroscience research, Journal of Advanced Robotics 21 (10) (2007) 1151–1175] under a free and open licence, and funding development using this platform.
Read full abstract