Distributed Control Diffusion: Towards a Flexible Programming Paradigm for Modular Robots

Ulrik P. Schultz
2007 The Proceedings of First International Conference on Robot Communication and Coordination  
A self-reconfigurable robot is a robotic device that can change its own shape. Self-reconfigurable robots are commonly built from multiple identical modules that can manipulate each other to change the shape of the robot. The robot can also perform tasks such as locomotion without changing shape. Programming a modular, self-reconfigurable robot is however a complicated task: the robot is essentially a real-time, distributed embedded system, where control and communication paths often are
more » ... coupled to the current physical configuration of the robot. To facilitate the task of programming modular, selfreconfigurable robots, we present the concept of distributed control diffusion: distributed queries are used to identify modules that play a specific role in the robot, and behaviors that implement specific control strategies are diffused throughout the robot based on these role assignments. This approach allows the programmer to dynamically distribute behaviors throughout a robot and moreover provides a partial abstraction over the concrete physical shape of the robot. We have implemented a prototype of a distributed control diffusion system for the ATRON modular, self-reconfigurable robot. The prototype relies on a simple virtual machine with a dedicated instruction set, allowing mobile programs to migrate between the modules that constitute a robot. Through a number of simulated experiments, we should how a single rule-based controller program implemented using distributed control diffusion can perform simple obstacle avoidance in a wide range of different car-like robots constructed using ATRON modules. We have implemented a prototype of distributed control diffusion for the ATRON modular, self-reconfigurable robot [10], [11] . Our implementation is based on a simple virtual machine, which includes a bytecode interpreter as well as a simple network stack, memory manager, and task scheduler. The network stack provides compass and spatial coordinate information throughout the robot and implements broadcast communication for arbitrary module configurations without the assumption of having a unique identifier for each module. The virtual machine runs on the physical ATRON modules, the complete controller program (including hardware interface libraries and infrared communication stacks etc.) consumes less than 2K of RAM and less than 20K of program memory. Complete experiments with locomotion, obstacle avoidance, and basic self-reconfiguration have been performed in simulation.
doi:10.4108/icst.robocomm2007.2197 dblp:conf/robocomm/Schultz07 fatcat:se4qnbrchfafhmsl23wykex47y