I've been doing a lot of thinking lately about the applicability of message-based systems and process calculii to robot programming. It seems that message-passing and process calculii (like the Pi-Calculus) would be extremely useful in implementing behavioral and subsumption programming for robots.
Forget the definition of 'process' that you know now and consider every behavior - in fact you could even consider every component of a behavior - to be a process. Consider that all processes run asynchronously and in parallel. Each process exposes a contract and the communication between processes is by messages.
Now, if your drivers and behaviors are processes and each exposes a contract and each communicates with each other via messages, you have
I'm currently trying to work up a framework that would allow for familiar C/C++ programming within a process- oriented-programming messaging-bus framework. Modules would be coded in C or C++ and described by contracts in an xml document. The modules could communicate to other modules only through messages and the framework would match messages to contracts (a key component here is that modules should not know about each other a-priori, but should be paired up solely because a message that was sent by one module matches the contract exposed by another.
In any case, that's the path I am taking with my current work. Watch here or on the Scarab Robotics web site for more info.