The improvements in computational performance provided by multiprocessor systems holds great potential for advanced robotics. The need for fast, tight control loops and the desire to avoid communications bottlenecks encourages the use of hierarchical processor architectures. In practice, however, hierarchical robot systems are often built as inflexible, bottom-up systems with limited flexibility in low level control. This situation is driven by engineering issues concerning modularity and performance. Advanced techniques such as cooperative multi-arm control have special requirements for both high and low level control. The challenge is to achieve the desired flexibility at a software level without sacrificing performance or engineering features. The approach described here uses data flow graphs to represent the interaction of software modules that perform computation or control tasks. The modules are written in conventional high level programming languages and then exploited for different control tasks by providing different flow graphs. Compressed representations of the flow graphs are distributed among the available processors in the hierarchy to permit optimal routing of data among the modules. This approach is being applied to the development of a two armed robot that performs cooperative control.