задача не достаточно формализованна.
Я не понял про стены. Что значит, они отражают свет? Т.е. зеркала? тогда почему простое движение на свет.... будет их избегать? Или они все-таки поглощают свет? т.е. черные?
Так же не понятно как именно заданна цель? Когда вы говорили про движение на свет, это было понятно, т.е. двигаться на светлое пятно. Но в другом случае я так и не понял, что вы от него хотите.
Робот видит какой-то знак? Это какой-то объект? он имеет размер? Если да, то зачем надо заниматься расчетом одометрии (это то что вы пытаетесь делать, опираясь на данные с оборотов колеса, кстати для этого уже
существуют формулы, и не очень сложные), когда расстояние можно определять по размеру объекта (если знать его реальный размер. В прочем, я вообще не понимаю, зачем надо знать расстояние? Все что нужно знать, это направление и двигаться на предмет.
Если предмета как такового нет, то необходимо каким-то образом формализовать термин "проход" и дать способность роботу выделять его в окружающем пространстве (т.е. искать
блоб идентифицируемый с проходом). Это можно сделать в ручную (на черно белом снимке это совсем не сложно, просто надо выделить самую узкую белую полосу на панорамном снимке, или просто задать примерный размер) либо используя какой-то способ обучения, научить робота делать это самостоятельно.
П.С.
Аааа... только сейчас понял. Вся ваша проблема сводится к следующему:
У робота нет сенсора Глобальной Позиции, а цель задана именно Глобальной Позицией (ну или локально относительно робота, что не сильно отличается). И вы хотите использовать одометрию на основе вращения колеса, что бы компенсировать отсутствие GPS (Сенсора Глобального Позиционирования).
Ну тогда используйте те формулы что я дал и Б-г в помощь.
Но это кстати не решит задачу "избегать препятствия", если у вас нет точной карты стен или сенсора который может вам сообщить о расстоянии до препятствия (сонар, лазер, и т.д.).
В общем, не до конца понятно, чего он может, а чего не может.