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