A ring of contact-detecting burglar alarm sensing tape (green in the pictures) around Kermit's middle told the software he had hit something and should back off. The ultrasonics provided range to obstacles and to some extent direction as the turret was rotated, so we could go around things.
My pride and joy was the barcode remote scanner which was mounted on the bottom of the robot so its rotating head would be level with the barcodes on the baseboards. It had a vertical telescope tube with a beam splitter between the IR Led and the photodiode sensor and a lens to focus 2-20'away. It aimed down at a front surface mirror at 45 degree to scan horizontally. The mirror was mounted on a motor driven turret so it spun around continuously with a sensor once around to resolve the continuous angular position of the beam horizontally of course with respect to Kermit's rotational position. Unfortunately, this part of the robot did not survive the closing of our group. The barcodes I made for the prototype to detect were about 4" tall made of 3/4" reflective 3m tape on black poster board.
My programming partner on the project was Larry Nicholson, a really bright guy. He made the barcode reading work to detect not only the barcodes, but where they were angularly with respect to the robot and also their subtended angle or apparent size (all from timing of the rotation of the scanner) which was a measure of distance combined with angle from the barcode. We worked out some pretty clever math to resolve that information from two or three of the barcodes into a position and orientation of Kermit in the room.