The built in Roomba distance sensors can´t prevent damage when driving around because Roobert is larger than the original vacuum cleaner. My first idea was to use an old Microsoft Kinect sensor. This worked very well – even the usage in python.
But the battery power went low very quick when driving around the first times. So I needed a solution without such high power consumption.
For this I used an ultrasonic distance sensor and two mini servos.
The servos can move the sensor on x- and y- axis – like a 2 dimensional radar system.
The detection speed is slower than the Kinect version and depends on the chosen resolution: It can reach 2 FSP when using 4x3 measure points.
Just for fun I tried a resolution of 30x20 points. That takes 10 seconds for a frame but I was impressed how well you can “see” the shapes of obstacle objects.