A computer-assisted medical device comprising: an articulated arm comprising a plurality of joints; and a control unit coupled to the articulated arm and comprising one or more processors , wherein the control unit is configured to: operate at least one joint in a locked state and a float state, wherein movement of the at least one joint is restricted in the locked state, and wherein movement of the at least one joint is permitted in the float state; switch the at least one joint from the locked state to the float state when a stimulus on a first subset of the plurality of joints exceeds an unlock threshold; switch the at least one joint from the float state to the locked state when a velocity of a second subset of the plurality of joints is below a lock threshold; and on a condition that the at least one joint is in the float state, command the at least one joint to a commanded position or a commanded velocity, wherein the commanded position is based on an actual position of the at least one joint , and wherein the commanded velocity is based on an actual velocity of the at least one joint ; wherein each joint of the plurality of joints has a respective lock threshold and a respective unlock threshold, and wherein: each of the unlock thresholds is determined based on the respective joint , or each of the lock thresholds is determined based on the respective joint . an articulated arm comprising a plurality of joints; and a control unit coupled to the articulated arm and comprising one or more processors , wherein the control unit is configured to: operate at least one joint in a locked state and a float state, wherein movement of the at least one joint is restricted in the locked state, and wherein movement of the at least one joint is permitted in the float state; switch the at least one joint from the locked state to the float state when a stimulus on a first subset of the plurality of joints exceeds an unlock threshold; switch the at least one joint from the float state to the locked state when a velocity of a second subset of the plurality of joints is below a lock threshold; and operate at least one joint in a locked state and a float state, wherein movement of the at least one joint is restricted in the locked state, and wherein movement of the at least one joint is permitted in the float state; switch the at least one joint from the locked state to the float state when a stimulus on a first subset of the plurality of joints exceeds an unlock threshold; switch the at least one joint from the float state to the locked state when a velocity of a second subset of the plurality of joints is below a lock threshold; and on a condition that the at least one joint is in the float state, command the at least one joint to a commanded position or a commanded velocity, wherein the commanded position is based on an actual position of the at least one joint , and wherein the commanded velocity is based on an actual velocity of the at least one joint ; wherein each joint of the plurality of joints has a respective lock threshold and a respective unlock threshold, and wherein: each of the unlock thresholds is determined based on the respective joint , or each of the lock thresholds is determined based on the respective joint . each of the unlock thresholds is determined based on the respective joint , or each of the lock thresholds is determined based on the respective joint . <EOS>