*3.1. Framework Requirements*

The key to developing a generic framework for mobile robotics is to identify precisely which parts of the software are common to different applications and design neat interfaces that permit sufficient modularity without adding unnecessary complexity to the system design. Therefore our framework requires the formalization of different software modules with standardized inputs and outputs to ease the test and comparison of different algorithms. Any algorithm change in any of its modules must be carried out in a simple way, requiring minimal changes in the rest of the system. Moreover, in order to be useful in the long term, we need to keep the framework as independent of the robot and the environment as possible.
