The Walk-Man Robot Software Architecture - Ferrati, Mirko; Settimi, Alessandro; Muratore, Luca; Cardellino, Alberto; Rocchi, Alessio; Mingo Hoffman, Enrico; Pavan, Corrado; Kanoulas, Dimitrios; Tsagarakis, Nikos G.; Natale, Lorenzo; Pallottino, Lucia (Frontiers in Robotics and AI, 2016)
A software and control architecture for a humanoid robot is a complex and large project, that involves a team of developers/researchers to be coordinated and requires many hard design choices. If such project has to be done in a very limited time, i.e. less than one year, more constraints are added and concepts such as modular design, code reusability and API definition need to be used as much as possible. In this work we describe the software architecture developed for Walk-Man, a robot participant at the Darpa Robotics Challenge. The challenge required the robot to execute many different tasks such as walking, driving a car, and manipulating objects.These tasks need to be solved by robotics specialists in their corresponding research field, such as humanoid walking, motion planning or object manipulation. The proposed architecture was developed in 10 months, provided boilerplate code for most of the functionalities required to control a humanoid robot and allowed robotics researchers to produce their control modules for DRC tasks in a short time. Additional capabilities of the architecture include firmware and hardware management, mixing of different middlewares, unreliable network management,operator control station GUI. All the source code related to the architecture and some control modules have been released as open source projects.