Hi, I’m new on Collaborizm, but I ave some experience in this type of bot movement(covering a large area in spiral or snake like motion.)
One way can be, to know the length-breadth of the room* and going right each time a wall comes. After 3 right turns, the bot needs to move smaller distance, depending upon the size it covers in previous turn. This can be repeated as long as the next distance to be covered gets very small (That is, the bot arrives at the center).
*To know such parameters in advance, will need either hard coding, or serious use of your distance sensors. Also, if some object comes in at any time, the bot might think of it as a wall.
Another path( in my humble opinion) is to go like a snake moves(up-down-up… or left-right-left…) . Here, each movement can be a row (or column) in a matrix. Any obstacle can be non movable point and arriving on the rows avoided by these obstacles can be done later.
Hope this helps.