Так уж вышло, что в доме, где я сейчас проживаю, пол кафельный. Т.е. не то, что в ванной или на кухне, а прям везде одинаковый такой кафель 25х25. Пятки не мерзнут, т.к. за окном меньше +25 никогда не бывает. Было бы неразумно не попытаться использовать это обстоятельство (в смысле кафель а не пятки) в качестве готовой координатной сетки помещения. Т.е. использовать межкафельные линии в качестве направляющих для робота. Вот так выглядит пол в статике:
Cafel 1.jpg (58.28 КиБ) Просмотров: 2924
А так при движении робота:
Линия хорошо различима глазом и я не думал, что возникнут проблемы при определении ее координат при движении. Попробовал в RoboRealm, макрос вот:
Макрос пытается выделить формы близкие к линейным, похожей ориентации и передает их координаты пользовательской программе для корректировки курса. Однако линия периодически теряется, возникают паразитные линии и т.д. Понимаю, что задача специфичная и врядли у кого возникнет. Но, может чего посоветуете?
Скорее всего есть смысл использовать информацию с предыдущих кадров + команды шасси, тогда будет примерно известно где примерно в следующем кадре искать линии. Только я не в курсе как это в RoboRealm можно ли реализовать, но вообще должна быть возможность, только может свой плагин придется писать.
И фильтрацию надо сделать: 1. Нормировать изображение к чернобелому, чтобы устранить эффекты освещения 2. Примерно по ширине линии в стиле 1 0 1 сделать корреляционный фильтр под углами -67,5°, -45°, -22.5°, 0°, 22.5°, 45°, 67.5°, 90°. Какой то из них даст хорошую картинку вертикальных прямых, а какой-то горизонтальных.
Столько всего нового по зрению для роботов уже люди освоили за зиму, я прям счастлив ))
Оффтоп, мой любимый раздел форума )) где всегда можно найти собеседника и плавно перейти с темы зрения робота на тему ИИ робота, а потом выслушивать от всех пользователей что мы не в той теме обсуждения на пару страниц развели ))
Ага, я уже думаю линейку ярких светиков поставить. На статическом изображении нужная прямая выделяется легко. Чем больше скорость, тем хуже. Может камера не успевает перестроится под изменения освещения. С подсветкой д.б. лучше. Хорошо бы, чтобы знатоки обработки изображения попробовали бы на "реалме" выделить линию на моем видео. Может я не те фильтры применяю. Там их великое множество. Чтобы знать, что применить надо иметь большой опыт работы с изображениями. А я тыкаю без понятия. Пробный RR месяц работает в полном объеме.
Добавлено спустя 2 часа 43 минуты 21 секунду: Вот для затравки, как сейчас сделано:
После преобразования к градациям серого и нормализации контраста
Scorpio писал(а):Например, какой-нибудь датчик неровностей пола в местах стыка кафелин?
угу сваргань оптопару так чтобы угол между лучами был больше 90 градусов и лучик совсем узенький сделай, шириной с канавку кафеля на стыках будет как раз пропадание отражения. они там кроме того что другого цвета так ещё и наверняка рельефные, ниже общего уровня плитки
Канавка конечно не равномерной глубины и сами кафелины, естественно, слегка гуляют по высоте. Больно уж прецезионный датчик нужен. Да и по полу его тащить не хочется. Там все-таки попадается и мусор и всякие предметы. Вот и получается, что глазом видишь - отличная координатная сетка, а на практике не так легко применить. Разве что черными полосками все кафелины разделить.
Идея: При движении ролика по кафелю на желобках будет характерный подскок. Если слушать пару-тройку роликов пьезами, можно вычислять ориентацию тележки. Ну, или не роликов, а упругих усов.