HW1 : Learning manifolds through Isomap


OBJECTIVE: To simulate the motion of a robot in a room and infer the structure of the room from images captured by the robot



Click here for the code to generate the images for part 1

Click here for the code to generate the images for part 2

Click here for the code to resize the images
Click here for the isomap code for both PART 1 and PART 2

PART 1: Three distinct points {(0,0);(50,50);(-25,-25)} were chosen. The robot was fixed at each point and 10k images were taken for each point
Following are the diagrams showing the two components of the manifold in each of the cases:

Mountain View
Fig 1: Showing the two components of the manifold for x=0, y=0

Mountain View
Fig 2: Showing the two components of the manifold for x=50, y=50

Mountain View
Fig 3: Showing the two components of the manifold for x=-25, y=-25



Following are the diagrams showing the three components of the manifold in each of the cases:

Mountain View
Fig 1: Showing the three components of the manifold for x=0, y=0

Mountain View
Fig 2: Showing the two components of the manifold for x=50, y=50

Mountain View
Fig 3: Showing the three components of the manifold for x=-25, y=-25


Following is the plot showing the reconstruction error vs the number of components for the x=-25, y=-25
Mountain View
PART 2:

The robot was made to move randomly in the (x,y,theta) space. 10k images were considered
Following are the diagrams showing the three components and two components of the manifold

Mountain View
Fig 4

Mountain View
Fig 5

Following is the plot showing the reconstruction error vs the number of components for Part 2
Mountain View


PART 3:
Click here for the code
For the images collected in Part 2, we also noted down the corresponding (x,y,theta) points. To get the value of (x,y,theta) from the manifold space, we use the Nearest Neighbour Regressor (NNR). 10k images. Here is the code for generating the corresponding Isomap
Click here for the code
The Root Mean Sqaure Error (RMSE) value, is found to be equal to [61.31758224 57.01884297 53.59441449]. This means the average localization error is equal approximately equal to 83 units. The localization error is large because we have used relatively less number of samples as compared to the dimension of the data.



Is it necessary to have gradient or texture on the walls? What would happen if we don't?
Makes the images more informative.

What would be the manifold generated if instead of theta as the third variable, we had z-coordinate as the third degree of freedom in a 3-d space?
more degrees of freedom. the manifold may be torus.
What might be the limitations of such an approach in space discovery?
computationally expensive