Is there a reason to use IR over ultrasonic?
My experience: Ultrasonic is great when it works.

Drawbacks of Ultrasonic:
- Higher latency when measuring far away.
- Sensitive to wind, and certain kinds of environmental noise.
- If you want multiple separate readings, you have to time-slice (running many at once can see crosstalk).
- The MCU reading code is slightly more complicated, because measuring the duration of a pulse required a controlled "start pulse" and then two interrupts to time the interval. This is more cumbersome than reading an ADC.