Unsupervised Learning using Dimensionality Reduction of Data Points

Caveat: All images were generated using FOV=120, creating images of size ~600X30, and resized to 1800 for manifold detection

Part A - Rotation about fixed points

Rotation-Isomap from 360 images Isomap from 360 images Isomap from 360 images
Three circular isomaps for rotation about three different (x,y) positions (0,0), (100,150) and (60,-70) respectively

Part B - Movement along a Random Trajectory

This manifold was generateg by making the bot move vertically from -199 to 199 followed by one step in the positive x direction. At each integral coordiate the bot covered it increased theta by 1 and took an image.

Isomap from 360 images Isomap from 360 images
3D isomap generated from 5000 images on a deterministic trajectory
Isomap from 360 images
3D isomap generated from 5000 images selected totally randomly

Part C - Localization of a Test Image

Using the nearest neighbors graph generated by the manifold.isomap function, the coordinates for a given image can be inferred by comparing it with the graph, finding it's closest neighbor and approximating the coordinates for the given image by that of it's closest neighbor.

Using a manifold generated from 5000 images (training set) and using it to predict the coordinates for 1000 random test images (test set) I obtained a mean localization error of 98.61 where localization error was calculated using Euclidean distance between the actual coordinate and inferred coordinate.

Part D - Reconstruction Error

Reconstruction error from the similarly named attribute of the manifold.isomap function in scikit-learn, plotted by changing the value of the n_components parameter from 1 through 10.

Isomap from 360 images Isomap from 360 images
Reconstruction Error

Questions

Q1.) Is it necessary to have gradient or texture on the walls? What would happen if we don't?
Ans.) If there was no texture on the walls a lot on the images from various positions would be similar. The bot will not be able to distinguish between them and they would lie on the same point in the manifold . This will result in a much different manifold and unsupervised learning will be next to useless.

Q2.) 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?
Ans.) The type of manifold we have is essentially a surface with degrees of freedom x,y and theta. Upon introducing a DOF z instead of theta our manifold will not be a surface and will be a solid shape in the coordinate space.

Q3.) What might be the limitations of such an approach in space discovery?
Ans.) Such an approach would increase the complexity in movements of the bot, as more energy will be required to lift the bot. It is of lesser practical significance as most of our uses require bots moving on a plane avoiding obstacles. Having the same theta for all points will hamper its location complexity on a plane.

source codes: