How could robot find the right room and then dock itself?\
How does your robot currently navigate.
Find a room with the IR signal, and dock in the usual way.Consider putting a charger in every room. The robot might run out of power searching.
For such projects, you have to use localization by storing map in your robot, a little AI is required for that. You can make something like The robot save all the path(covering) in its memory and the starting point of the robot is its charging unit. So, when it gets a signal of low power then it simply move back to its home position.Now its up to you how efficient you could make the code, like instead of moving back the exact path, it should take the shortest distance approach with obstacle avoidance.
It might not get any IR signal if they are far from each other.
Yeah that's what I want to do with that stepper system in my mind. But it can make mistakes and moreover there is a problem when the robot does not start working from the dock. I want to make sure that robot will find its dock somehow.I might give up with this feature, this is becoming confusing. Starting from the dock may be a necessity.
Yeah it's best to start from the docking station. Without it, that's almost impossible. You could easily place some check in your code, that will let you know whether robot has started or not. Like place an IR sensor on the dock, to tell you know whether robot has left it or not. It will be helpful in returning as well i.e. robot has reached at the dock.
I had to find very cheap way. So I didn't get any LIDAR or camera to navigate. I have simply two steppers which are attached on wheels. So when it start from dock, it can count the number of turns and calculate the distance traveled.