Натолкнули на мысль...
Допустим, есть робот с дальномером. Как он может ориентироваться в
"лабиринте" (допустим найти "базу" в соседней комнате)?...
Для этого можно построить скелетную схему помещения:
Типа такого:
- map_skeleton.GIF (7.2 КиБ) Просмотров: 4937
На картинке показаны ключевые точки помещения,
которые робот может найти только по показаниям "радара".
Например, это
- точки, гда радиус вписанной окружности максимален -
смещение в любую сторону уменьшит радиус (назовем их "перекрестки")
- точки, где вместо двух радиусов - в углу или между параллельными стенками
появляется три ("тупик") или радиус уменьшается меньше порога ("угол")
В таких точках можно снимать "слепок показаний радара", по которому
(с некоторой вероятностью, конечно) их можно идентифицировать.
Таким образом получаем некий граф-скелет помещения.
Понятно, что можно разбить его на уровни детализации, переходя от грубых больших
расстояний (комната, коридор) к более мелким (заехал между холодильником и стеной)
Позицию интересующего объекта можно задавать
как направление на него из ближайших ключевых точек.
Локально позиционироваться на объект (взять яблоко или подключиться к базе)
- это уже другой вопрос. Пока не рассматриваем.
Задачи.
1. Критерий для выбора узлов (максимум вписанной окружности???)
должен быть таким, чтобы, во-первых, достаточно надежно выезжать на точку
(то есть из любого места найти путь, не сильно кривой, до ближайшего узла),
во-вторых, чтобы быть устойчивым к "помехам" типа передвинутой табуретки.
2. Выбор направления, куда ехать при поиске узла
3. Идентификация узлов должна быть устойчивой к помехам и допускать неоднозначности,
(неоднозначности можно корректировать при движении к соседним узлам)
4. Построение скелета помещения должно допускать замкнутые кольца,
тут нужно каким-то образом понять, что мы ездим по кругу...
Например, можно использовать инерционную систему позиционирования,
которую корректировать по показаниям дальномера
(при езде по кольцу не должны накапливаться ошибки сравнимые с "шириной проезда")
Или для пробы можно просто не допускать "похожих" снимков дальностей...
5. В общем случае нужно как-то обрабатывать ситуации типа "стадион",
(когда дальномер не может физически увидеть противоположные стены одновременно)
"трубопровод" (когда параметры не меняются на протяжении всего помещения) итд.
В общем, можно подумать...
- Расстояние до ближайшей стены
- MIN.JPG (15.72 КиБ) Просмотров: 4891