Всем привет, Столкнулся с такой задачей: Необходимо повернуть робота в направлении определенного объекта (например другой робот). Но важно, чтобы поворот был сделан по минимальной траектории. Насколько я понимаю задача сводится к определению в какую сторону начинать поворот, но не могу понять какими датчиками можно получить необходимую для этого информацию. Возможно ли решение этой задачи или стоит отказаться от затеи? Спасибо
В данном случае если я вас правильно понял, то очень важный фактор будет то в каком окружении находится робот и на каком расстоянии он должен определять другого робота. Если к примеру на чистой площадке только 2 работа и на сравнительно не большом расстоянии, то найти второго робота можно фактически покрутив на 360 градусов датчиком препятствия. Но тут есть и проблемы, все что угодно может быть воспринято роботом как другой робот, так что датчик не идентифицирует робота а лишь некое препятствие, если вам надо идентифицировать робота среди препятствий то тут уже все становится намнооооооого сложнееееее. А определить в какую сторону повернуть робота проще некуда, если другой робот обнаружен в диапазон 1-180 градусов (правая полусфера) - поворачиваться вправо, 181 -359 градусов (левая полусфера) - поворачиваться влево. 0/360 - ехать прямо Причем значения около 180 градусов могут быть обработаны иначе, например просто ехать задом ну если такой вариант приемлем В то же время поворота датчик препятствия будет постоянно корректировать информацию о расположение другого робота, таким образом поворот может быть окончен когда работ окажется в районе 360/0 градусов. Даже если другой робот будет шустрым и обкатит быстро сзади и окажется уже в другой полусфере, алгоритм тут же сменит вправление поворота на противоположно, то есть на кратчайшие. В идеале датчик препятствия найдя другого робота может вовсе постоянно "смотреть" на него .. и в случае "потери" из вида проводить либо "покачивание влево-вправо" на десяток другой градусов чтобы найти сместившегося противника либо делать стандартный поисковый обход на 360 градусов. Таким образом во время поворота, работ должен постоянно проверять в каком направлении находится другой робот и при выходе другого робота в противоположную полусферу - изменить направление поворота. Хотя в место датчика препятствия наверное лучше использовать например инфракрасный дальномер, он и робота "увидит" и расстояние до него определить сможет А еще при использовании дальномера можно сделать доп фитчу, искать только движущиеся препятствия, то есть робот будет "бегать" только за тем что шевелится В общем все зависит от того что, где и ка вы желаете вообще сделать
Спасибо за развернутый ответ. Проблема как раз состоит в том чтобы идентифицировать робота среди препятствий на расстоянии в несколько метров, при этом достаточно быстро, чтобы не получилось что поворачивать в произвольную сторону быстрее Как я себе это вижу: Робот2 посылает некий широковещательный сигнал, а робот1 принимает его определяет приблизительно направление откуда пришел сигнал и разворачивается. Возможно ли это реализовать при помощи УЗ-дальномера или ИК-дальномера? Т.е. использовать его не как дальномер а именно как приемник внешнего сигнала? Или тут требуется нечто принципиально другое?
ИК-диоды были первой идеей, но мне кажется на расстоянии несколько метров они будут незаметны для второго робота. Или я ошибаюсь?
Логично, что-то я не сообразил сразу Буду пробовать этот путь решения. Я так понимаю единственной помехой будут углы обзора приемника в данном случае. Всем спасибо за помощь