Mobile robot control architectures are gradually shifting from hierarchical towards behaviour-based. Hierarchical controllers lack flexibility; behaviour-based architectures, on the contrary, enable rapid response to environment changes and, moreover, they feature robustness in industrial environments. A behaviour-based mobile robot system is described enabling task execution in unstructured real-world environments. The behaviour model consists of a number of motion behaviours, including reflexes and voluntary motion behaviours, and knowledge acquisition modules providing task-oriented information about the robot environment. A blackboard model is introduced to overcome some shortcomings of existing systems, especially concerning modularity and task execution capabilities. Some realistic scenarios are described to show the versatility of the system