Cleanup: Group position and grid size
Introduce planet class
(partially as cleanup and as preparation for obstacles)
Stop the rover in front of obstacles.
Make the rover know, that it was stopped by an obstacle.
Interrupt the movement, if the rover hits an obstacle.

(Spec seemed unclear to me, whether the rover should still try to perform later commands—and report the failure afterwards—or whether it should interrupt the movement. I decided for the latter, because it seemed more sensible to me.)