A computer-assisted medical system comprising: a manipulator arm ; and a controller comprising a computer processor, the controller configured with at least a non-clutch mode and a clutch mode, wherein when in the non-clutch mode, the controller is configured to servo at least one joint (11, J2, J3, J4, J5, J6) associated with at least one manipulator arm segment of the manipulator arm , the servoing comprising executing a servo loop comprising: obtaining an actual state of the manipulator arm , computing a difference between a commanded state and the actual state, the commanded state used for the servoing the at least one joint (J1, J2, J3, J4, J5, J6), determining whether the difference exceeds an error threshold, based on determining that the difference does exceed the error threshold: updating the commanded state using an offset to reduce the difference, and applying the commanded state to control the actual state, and based on determining that the difference does not exceed the error threshold: not updating the commanded state, and applying the commanded state to control the actual state, and wherein when in the clutch mode, the controller is configured to float the at least one joint (11, J2, J3, J4, J5, J6). a manipulator arm ; and a controller comprising a computer processor, the controller configured with at least a non-clutch mode and a clutch mode, wherein when in the non-clutch mode, the controller is configured to servo at least one joint (11, J2, J3, J4, J5, J6) associated with at least one manipulator arm segment of the manipulator arm , the servoing comprising executing a servo loop comprising: obtaining an actual state of the manipulator arm , computing a difference between a commanded state and the actual state, the commanded state used for the servoing the at least one joint (J1, J2, J3, J4, J5, J6), determining whether the difference exceeds an error threshold, based on determining that the difference does exceed the error threshold: updating the commanded state using an offset to reduce the difference, and applying the commanded state to control the actual state, and based on determining that the difference does not exceed the error threshold: not updating the commanded state, and applying the commanded state to control the actual state, and obtaining an actual state of the manipulator arm , computing a difference between a commanded state and the actual state, the commanded state used for the servoing the at least one joint (J1, J2, J3, J4, J5, J6), determining whether the difference exceeds an error threshold, based on determining that the difference does exceed the error threshold: updating the commanded state using an offset to reduce the difference, and applying the commanded state to control the actual state, and based on determining that the difference does not exceed the error threshold: not updating the commanded state, and applying the commanded state to control the actual state, and updating the commanded state using an offset to reduce the difference, and applying the commanded state to control the actual state, and based on determining that the difference does not exceed the error threshold: not updating the commanded state, and applying the commanded state to control the actual state, and not updating the commanded state, and applying the commanded state to control the actual state, and wherein when in the clutch mode, the controller is configured to float the at least one joint (11, J2, J3, J4, J5, J6). <EOS>