A system, comprising: (a) a robotic arm comprising: at least two linkages, at least one joint connecting the at least two linkages, at least one torque sensor configured to detect torque between the at least two linkages, and at least one motor configured to adjust the position of the at least two linkages, (b) one or more processors; and (c) memory storing computer-executable instructions configured to cause the one or more processors to: determine a direction of movement of a reference point on the robotic arm based on a joint position or a cartesian position of the robotic arm; determine a force at a reference point on the robotic arm based on an output of the at least one torque sensor, determine that a component of the force is in the same direction as the direction of movement of the reference point, generate, based on the determination that the component of the force is in the same direction as the direction of movement of the reference point, at least one parameter indicative of a target resistance to movement of the robotic arm, and control the at least one motor, based on the at least one parameter, to move the robotic arm in accordance with the target resistance. (a) a robotic arm comprising: at least two linkages, at least one joint connecting the at least two linkages, at least one torque sensor configured to detect torque between the at least two linkages, and at least one motor configured to adjust the position of the at least two linkages, at least two linkages, at least one joint connecting the at least two linkages, at least one torque sensor configured to detect torque between the at least two linkages, and at least one motor configured to adjust the position of the at least two linkages, (b) one or more processors; and (c) memory storing computer-executable instructions configured to cause the one or more processors to: determine a direction of movement of a reference point on the robotic arm based on a joint position or a cartesian position of the robotic arm; determine a force at a reference point on the robotic arm based on an output of the at least one torque sensor, determine that a component of the force is in the same direction as the direction of movement of the reference point, generate, based on the determination that the component of the force is in the same direction as the direction of movement of the reference point, at least one parameter indicative of a target resistance to movement of the robotic arm, and control the at least one motor, based on the at least one parameter, to move the robotic arm in accordance with the target resistance. determine a direction of movement of a reference point on the robotic arm based on a joint position or a cartesian position of the robotic arm; determine a force at a reference point on the robotic arm based on an output of the at least one torque sensor, determine that a component of the force is in the same direction as the direction of movement of the reference point, generate, based on the determination that the component of the force is in the same direction as the direction of movement of the reference point, at least one parameter indicative of a target resistance to movement of the robotic arm, and control the at least one motor, based on the at least one parameter, to move the robotic arm in accordance with the target resistance.