<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def clear_tips(self):
 """ If reset is called with a tip attached, the tip must be removed before the poses and _instruments members are cleared. If the tip is not removed, the effective length of the pipette remains increased by the length of the tip, and subsequent `_add_tip` calls will increase the length in addition to this. This should be fixed by changing pose tracking to that it tracks the tip as a separate node rather than adding and subtracting the tip length to the pipette length. """

        for instrument in self._instruments.values():
            if instrument.tip_attached:
                instrument._remove_tip(instrument._tip_length)