HC-SR04 - what surfaces can it reliably detect

I wanted to use the HC-SR04 sonic sensor to detect ranges to obstacles in front of my 4wd robot car.

In breadboard testing it appears that this sensor is fooled by some soft surfaces - such as the sleeve of my sweatshirt, the soft fabric on my couch - it seems blind to them. However, the range to harder surfaces - such as my bare hand, a book, a water bottle, a wall is accurately reported. Nothing in the datasheet on type of surfaces - but I suspect that since this is a ‘sonic’ sensor that some materials may be absorbing the signal (ie not reflecting it).

Any thoughts? I may have to switch sensors… infrared and or LIDAR

Anything that absorbs or muffles sound is going to be a problem for a sensor like this. Infrared and LIDAR can both have issues with ambient light as well so there is no perfect solution.

What you might try is a combination of Infrared/LIDAR and a sonic sensor like the HC-SR04 so that the limitations of one are offset by the abilities of the other.