Основной принцип (возвращаясь к прополке) я вижу таким. На корпусе робота жестко крепится три камеры (напр. web), сориентированные таким образом, чтобы их обзор охватывал рабочую область (скажем 40х40х40 см).
Цикл обработки одного рабочего сектора будет примерно такой:
1) снятие "картинок" - короткая вспышка подсветки - 3 файла JPG записывается в память процессора.
2) Начальная сегментация. Программа отделяет растения от земли - по цвету (задается диапазон цветов, в который любая растительность заведомо попадет, а почва - отсеется). Области снимка, определенные, как растительность, записываются в отдельный регистр.
3) Основная сегментация. Специальный алгоритм сверяет имеющиеся в памяти очертания листьев, стеблей всех возможных в этой широте растений с записанными и выделенными в предыдущем шаге снимками растений.
4) В случае совпадения, трехмерные координаты идентифицированного растения (после вычислений) заносятся в регистр кординат сорняков или полезных растений - в зависимости от результатов идентификации.
5) Сравниваются координаты полезных растений и сорняков и если между первыми и вторыми расстояние меньше ширины захватов манипуляторов, то такие координаты сорняков из регистра стираются (дабы не выдернуть сорняк вместе с полезным овощем).
6) По окончании сканирования снимков, данные из регистра местоположения сорняков подаются на контроллер манипуляторов, подающий манипуляторы в указанную точку.
7) После достижения манипуляторами указанных координат происходит процедура захвата сорняка, после которой манипулятор выводится за пределы рабочей зоны и отпускает сорняк (в междугрядное пространство).
8 ) Манипулятор возвращается в исходное положение.
9) на контроллер посылаются новые координаты сорняка и повторяются пункты 7 и 8.
10) После отправки последних координат из регистра местоположения сорняков, повторяем пункты 1, 2, 3, 4. Если регистр местоположения сорняков оказывается пуст, робот перемещается на ширину рабочей зоны вперед.
Примечания: Больше всего проблем (для меня) составляет пункт 3 - я пока ясно не представляю, как этот алгоритм должен работать (сигнатуры, дескрипторы?).
Кстати, указанный цикл (в упрощенном виде) можно использовать для сбора колорадских жуков и рыхления почвы.
Как вернусь домой - нарисую блок-схему. В общем, жду критики!
