# Revision history [back]

If you are not using any exteroceptive sensors such as camera / laser/ sonar etc, then the conventional mapping solutions won't work for you.

Based on your comments, what I understood is that you need to understand where in the environment you can navigate without collisions. This information constitutes a map for you. To create that map you will navigate the robot in a pattern in the open space.

Assuming I have understood your problem correctly, I can see a couple of problems in this approach.

1. You are entirely dependent on odometry, which will definitely drift while the robot moves
2. You need to fix your odometry coordinate system's origin somewhere and keep track of it

If your odometry drift is tolerable and you can always initialize the robot accurately in the same place, I propose the following mapping approach.

Initialize map MxN 2D matrix to occupied everywhere

while navigating
get position x,y from odometry
convert x,y to corresponding i,j indices of the map (based on map resolution and map origin)
set map(i,j) free