No, we intentionally designed the robosub structure to be very modularized. In order to facilitate this, all modules are really separate programs that listen to each other over through the grapevine. The path ends up being a bit vague, and quite difficult to discern without any design docs... (we've scratched this out on the white board, but I don't believe anyone has drawn up any design docs... hmm)

The path is roughly this:

decision -> movement/directive -> movement/stabalization -> movement/physical -> microcontroller

All arrows (except the last one) are communications over ZMQ. The last arrow is a communication over the serial interface with the microcontroller.