9V battery to Vin - will last a few hours, IF you remove all other loads...
Servo must not be powered from 5V output,
9V battery to Motor driver, again will only last a short while unless the motors are puny
In general, I would suggest:
Get yourself a 5V, 2A DC power supply.
Power the Arduino(only) from your 9V battery
Power the Servo, the IR, and the motor driver from the 5V supply.
Remember to connect the GND of the 5V supply to the GND of the Arduino, the signals to servo and motor driver need that connection.
I totally agree with this, however, this is for a autonomous, line-following robot. I'm not sure if a power supply would work too well because of the size and the robot might be effected by a cord dragging across the ground. Unless you mean a battery, and not the kind of power supply I'm thinking about.
My approach would be different - get the code working while tethered with a power supply; get the programming sorted where you don't have to worry about the power considerations; then, get a device that has working code working on a battery. That's "divide and conquer", and it's always served me well.
As for powering by battery, I've not done it, but I'd look at a battery bank(LiPo, maybe, or other; something around 6V) and a buck converter to give you stable 5v for devices. Quite likely the battery would power the motor and servo directly, though you need to watch the voltage range for the servo, and the detectors and Arduino would be run off the buck converter.
I think there's literally thousands of such arrangements littered around the web, but sorting wheat from chaff is tough if you don't know electronics.
Good luck