Complex robot applications or the cooperation of multiple mobile robots are use cases of increasing popularity where software distribution becomes important. When developing mobile robot systems and applications, software structure and distribution has to be considered on various levels, with effects on the organization and exchange of data. With respect to structure and distribution, this work proposes to distinguish between real-time level, system level and application level. Ways of structuring the software, as well as advantages and disadvantages of distribution on each level are analyzed. Moreover, examples are given how this structure and distribution can be realized in the robotics frameworks OROCOS, ROS and the Robotics API. The results are demonstrated using a case study of two cooperating KUKA youBots handing over a work-piece while in motion, which is shown both in simulation and in a real world setup.