Первое тестирование вращающегося датчика расстояния
Для проверки работоспособности вращающегося датчика расстояния пришлось повозиться и существенно переработать систему классов в программе управления роботом. Первоначальный вариант классов позволял задавать непосредственно команды инициализации датчика, получение значения, его преобразования и т.д.. И для малого количества вполне годился. Когда количество датчиков выросло, достаточно сложно помнить все команды для их управления, поэтому пришлось создать наследуемые классы датчиков, каждый из которых отвечает за свою группу датчиков. Программировать и управлять датчиками стало гораздо проще. Так же пришлось потратить немного времени на обеспечение вращения датчика расстояния. То провода лезли в шестерни, то болты задевали за провода в самых неожиданных местах. Как я уже говорил, конструкция головы робота оказалась не очень удачной, поэтому проблемы с механикой полезли одна за другой.
Вот какую картинку показали первые удачные замеры:
Для измерений использовался датчик Sharp GP2Y0A02YK0F 20-150см. Датчик вращался сначала в одну сторону (зеленая линия), затем обратно (красная линия), точки соответственно сами замеры. Там где линия прерывается, расстояние больше предельного расстояния датчика. Судя по полученной картине, датчик достаточно точно описал кухню, на которой я все это делал. Слева на картине видно препятствия, которыми были холодильник и стол, слева снизу проход в коридор, там же видна ножка стола, вверху достаточно четко видна стена кухни, справа кухонная мебель, справа снизу ножки стула и мои ноги. По разнице прямого и обратного хода датчика (зеленая и красная линия) сразу же видны недостатки механики датчика, она позиционирует его не одинаково при прямом и обратном движении. Видимо это связано с тем, что механика жидковата и ей приходится закручивать провода поэтому усилия поворота вправо и влево разные.
Результат: Измерения оказались достаточно достоверными, но механику нужно серьезно переделывать.
Голова робота с датчиком расстояния и видеокамерой Вращающийся датчик расстояния в движении