I have used the PING))) ultrasonic sensors in the past, but found them a bit pricey at $30/each, and other vendors seem to have similar price points. Today however I found one by SeeedStudio that is only $15:http://www.seeedstudio.com/wiki/index.php?title=Ultra_Sonic_range_measurement_module
Half-price is pretty compelling of course. It looks identical to the PING, the code to control it is exactly the same, and the only difference I could find (in the admittedly sparse wiki) were minor differences in effective range, and that SeeedStudio recommends allowing 50 ms between measurements while PING))) states that the next measurement can be made after only 0.2 ms. Though in the PING))) manual -- and my own experience -- failure to detect an object means the return pulse lasts 18.5ms so I don't know if that 0.2 ms number makes any sense.
Would welcome any comments on this. I may end up buying 3 of these for my next robot, so it's a noticeable expense.