Robot control software endows robots with advanced capabilities for autonomous operation, such as navigation, object recognition or manipulation, in unstructured and dynamic environments. However, there is a steady need for more robust operation, where robots should perform complex tasks by reliably exploiting these novel capabilities. Mission-level resilience is required in the presence of component faults through failure recovery. To address this challenge, a novel self-adaptation framework based on functional knowledge for augmented autonomy is presented. A metacontroller is integrated on top of the robot control system, and it uses an explicit run-time model of the robot's controller and its mission to adapt to operational changes. The model is grounded on a functional ontology that relates the robot's mission with the robot's architecture, and it is generated during the robot's development from its engineering models. Advantages are discussed from both theoretical and practical viewpoints. An application example in a real autonomous mobile robot is provided. In this example, the generic metacontroller uses the robot's functional model to adapt the control architecture to recover from a sensor failure.