Try the SLAM (
Simultaneous localization and mapping) method in its very basic form. I am not sure how thats possible, its just an idea. Choose a landmark and according to its possition move to another. Choose 2nd landmark and calculate your possition. An important part can be a collision detection system.
Another idea is that it remembers its initial position. As akg said about becon, (i guess?) For example you place it in front of you (set the point in robo memorie as 0,0) and you comand it to move a little ffw and turn right and a little more ffw again. Mark this (-2,2). This was the calibration part. Now if you command it to move to (2,2) it should calculate its moves (since it knows how it moved from 00 to -2,2 ). This might be complicated, but again, just an idea
Have fun!