code: def clear_tips(self):
          
          for instrument in self._instruments.values():
              if instrument.tip_attached:
                  instrument._remove_tip(instrument._tip_length)
docs: 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.