Описание проблемы немного расплывчато, но я постараюсь выделить некоторые общие идеи.
Полезным предположением является то, что лабиринт - это 2D-среда, которую вы хотите исследовать. В любой момент вы должны знать, какая часть карты была исследована, какая часть карты все еще нуждается в изучении, и какая часть карты доступна любым способом (другими словами, где находятся стены).
Простая структура исходных данных, которая поможет в этом, - это простая матрица, в которой каждая ячейка представляет квадрат в реальном мире. Каждая ячейка может быть помечена в соответствии с ее состоянием, начиная с неизведанного состояния. Тогда вы начинаете двигаться и исследовать. Основываясь на расстояниях, сообщаемых камерой, вы можете оценить состояние каждой ячейки. Исследованием можно руководствоваться, например, A * или Q-learning.
Теперь довольно тонкая проблема заключается в том, что вам придется иметь дело с неопределенностью и шумом. Иногда вы можете игнорировать это, иногда нет. Чем лучше разрешение, тем больше проблема. Вероятностная структура, скорее всего, является лучшим решением.
Существует целая область исследований так называемых алгоритмов SLAM. SLAM обозначает одновременную локализацию и отображение. Они строят карту, используя какие-то данные от различных типов камер или датчиков, и они строят карту. При построении карты они также решают проблему локализации на карте. Алгоритмы обычно предназначены для трехмерных сред и более требовательны, чем простое решение, указанное выше, но вы можете найти готовые реализации. Для исследования еще нужно использовать что-то вроде Q-learning.