A method for diagnosing and recovering from faults in a robot, the method comprising: providing a plurality of markers (105a - 105t) affixed to a floor surface, each marker having a positional indicia thereon and each marker having a position and angle; navigating, by the robot, from a first marker of the plurality of markers to a second marker of the plurality of markers using a stored position offset and/or angle offset of the second marker and a position and angle of the first marker relative to the robot, the stored offsets including information for the robot to navigate from each marker to a nearest neighbor of each marker; acquiring, using a sensor , the positional indicia on the second marker; processing, using circuitry , the acquired positional indicia to determine a position and angle of the second marker; computing a position offset and angle offset of the second marker with respect to the position and angle of the first marker; adjusting the stored position offset and angle offset of the second marker when the computed position offset and angle offset of the second marker meets a first predetermined criteria; alerting an external entity when the computed position offset and angle offset of the second marker does not meet the first predetermined criteria; and altering one or more operating parameters of the robot when the computed position offset and angle offset of the second marker meets a second predetermined criteria, wherein the first predetermined criteria includes a first predetermined threshold of the computed position offset and angle offset of the second marker and the second predetermined criteria includes a second predetermined threshold of the computed position offset and angle offset of the second marker, wherein the second predetermined threshold is greater than the first predetermined threshold. providing a plurality of markers (105a - 105t) affixed to a floor surface, each marker having a positional indicia thereon and each marker having a position and angle; navigating, by the robot, from a first marker of the plurality of markers to a second marker of the plurality of markers using a stored position offset and/or angle offset of the second marker and a position and angle of the first marker relative to the robot, the stored offsets including information for the robot to navigate from each marker to a nearest neighbor of each marker; acquiring, using a sensor , the positional indicia on the second marker; processing, using circuitry , the acquired positional indicia to determine a position and angle of the second marker; computing a position offset and angle offset of the second marker with respect to the position and angle of the first marker; adjusting the stored position offset and angle offset of the second marker when the computed position offset and angle offset of the second marker meets a first predetermined criteria; alerting an external entity when the computed position offset and angle offset of the second marker does not meet the first predetermined criteria; and altering one or more operating parameters of the robot when the computed position offset and angle offset of the second marker meets a second predetermined criteria, wherein the first predetermined criteria includes a first predetermined threshold of the computed position offset and angle offset of the second marker and the second predetermined criteria includes a second predetermined threshold of the computed position offset and angle offset of the second marker, wherein the second predetermined threshold is greater than the first predetermined threshold. <EOS>