мне кажется что скорость, все же, является основным параметром в класическом кегельринге, т.к. основной задачей остается посещение 8-и точек (кеглей), и чем быстрее это сделать, тем лучше.
Долго думал, как наиболее эффективно вытолкнуть кегли из ринга, и вот что пришло в голову:
Если посмотреть сверху на ринг, и провести линии через две соседние кегли, то получим квадрат. Впринципе, рисунок SMT вполне описывает алгоритм, по которому двигался мой робот, только линии прямолинейны.
Сам алгоритм выглядит вот так:
1) устанавливаем робота, так, что бы направление его движения лежало между кеглями
2) Прямолинейное движение, до пересечения с ограничительной линией
3) Разворот, до тех пор, пока дальномер не обнаружит кеглю, таким образом мы попадаем на линию по которой стоят сразу две гегли
4) возвращаемся к п.2, т.о. выносим сразу 2 кегли, переходим к п.3.
Для того, чтобы дальномер не засек кеглю, которую мы уже выкинули вводится задержка, т.е. робот поворачивается на определенный угол, заведомо меньший чем требуется для обнаружения новой кегли, но при этом достаточный, чтобы вытолкнутая кегля не попала в зону видимости и после этого начинаем "смотреть" за появлением кегли.
Т.к. дальномер достаточно "медленный" датчик, то пришлось ограничить скорость при поворотах и ввести угол упреждения (если я правильно помню название)
Так же столкнулся с такой проблемой, что ринг желательно распечатать на как можно меньшем кол-ве листов, т.к. коэфф. скольжения по бумаге и по скотчу разный
(особенно критично для гусеничной платформы)