Maté: a tiny virtual machine for sensor networks
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
Run-time dynamic linking for reprogramming wireless sensor networks
Proceedings of the 4th international conference on Embedded networked sensor systems
Distributed control diffusion: towards a flexible programming paradigm for modular robots
Proceedings of the 1st international conference on Robot communication and coordination
Robust and reversible self-reconfiguration
IROS'09 Proceedings of the 2009 IEEE/RSJ international conference on Intelligent robots and systems
Model-based kinematics generation for modular mechatronic toolkits
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Programming language abstractions for self-reconfigurable robots
Proceedings of the 3rd annual conference on Systems, programming, and applications: software for humanity
Hi-index | 0.00 |
Modular robot programming spans a number of issues ranging from high-level coordination to controller distribution and update in individual modules. The latter issue has received little attention from the research community though in our experience it is one of the main factors hindering agile development and experimentation with physical robots: reprogramming tens or hundreds of modules can be a major overhead in the development process and cannot be done with traditional approaches without restarting the robot, which impedes updating a running system. We propose a solution based on a virtual machine design shaped around three core concepts: the context of a module and its role in the ensemble, the reactive nature of robot controllers, and control programs decomposable into subparts that can be dynamically and separately redefined. We show that by incorporating those concepts into the design we are able to both achieve program conciseness (thus providing fast and efficient code distribution) and program expressiveness (thus providing versatility to represent diverse control algorithms). The virtual machine is programmed in a high-level role-oriented language that allows the programmer to declaratively specify how programs are deployed in the modular robot. Our approach enables fast and incremental on-line updates, allowing the programmer to interactively experiment with the physical robots. We show how this design lends itself to an efficient implementation targeting typical resource-constrained modular robotic hardware by illustrating our prototype implementation for the ATRON self-reconfigurable robot.