A Hierarchical Fault Tolerant Architecture for Component-based Service Robots