A Framework for a Fault Tolerant and Learning Robotic Assembly System