Decoupling between layers will be essential ! You will have high level commands sent from a distant server to a local gateway, middleware running on the gateway, and very low level tasks delivered directly on the roadmap (like stabilizing loops to make sure your robot never falls apart)