Технический форум по робототехнике.
Vovan » 21 янв 2006, 14:33
Уважаемый форум, посоветуйте как принципиально осуществить уход робота от движущихся предметов.
Робот - самодвижущаяся платформа с такими составляющими - задний и передний контактные бамперы; ФД реагирующий на свет: света нет - спим, свет есть "гуляем" или ищем источник света при помощи ещё двух ФД; два ИК датчика (спереди): при полной зарядке как ИК бамперы, а при истощении источника питания отключается ИК светодиод, а ИК датчики определяют направление движения робота на ИК маяк к зарядной станции, на этом пути работают контактные бамперы, которые до этого за ненадобностью бездействовали. Вот теперь захотелось добавить ему (роботу) функцию ухода от неожиданного появления движущегося предмета сбоку от робота или сзади(человек, кошка и т.д.), спереди то ИК локаторы они сработают, а вот сбоку или сзади - нет.
Я так понимаю что датчики движения здесь не подходят - робот и так в движении, зачит все предметы относительно него ужЕ двигаются.
Может дополнительных ИК локаторов наставить? Или, где-то встречал, круговой ИК локатор? А может ещё есть варианты?
___________
С уважением
Vovan
Терминатор » 21 янв 2006, 19:28
А про ультразвуковые датчики не думали???
-= Александр =- » 21 янв 2006, 19:37
Тепловые заставят его шарахаться от батарей отопления, а емкостные - от любых массивных предметов... Тут универсального решения нет. По крайней мере проще и дешевле в любом случае будут ИК-барьеры. Чуть дороже - дальномеры. Сложнее- крутящийся радар, но он уже позволит определить откуда и с какой скоростью на него идут.
Kanoka » 21 янв 2006, 20:33
Скорее всего ИК-датчики, или вращающиеся, или несколько расположенных по кругу. С ультразвуковыми датчиками сложнее, двигатели сильно фонят.
Vovan » 21 янв 2006, 21:25
Спасибо за участие!
Что-то меня на вращающийся локатор потянуло
Хоть и сложно, но тем интереснее!
Однако, наверное, есть другой путь... Всё же для этих датчиков нет разницы движется предмет в направлении робота или просто робот мимо него проходит и в соответствии с "показаниями" датчиков меняет свою траекторию, например проходя мимо табуретки справа "на всякий случай" обходит её с запасом, а слева ещё одна табуретка - тупик! А ведь по габаритам он там запросто пройдёт. Сдаётся мне что тут дальномером пахнет?
А может всё же датчики движения?
Выглядит это так (грубо, образно ну вобщем пока только принципиально, не вдаваясь в детали): прошёл некоторое расстояние остановился, включил датчики движения (ДД), типа посмотрел не движется ли кто в его направлении, отключил ДД дальше пошёл, опять остановка и т.д... Может так? Тоже что-то не очень красиво... Хотя таким поведением напоминает многих представителей животного мира...
Продолжаю думать
___________
С уважением
Vovan
-= Александр =- » 22 янв 2006, 09:09
Датчик движения (от сигнализации) загружается секунд 5, так что это не годится... БЫла у меня мысль об ультразвуковом датчике с эффектом Допплера, но думаю будет это дико сложно... :roll: Проще уж ИК-дальномер раскрутить...
EdGull » 22 янв 2006, 12:05
обычные ДД собраны на ПИИР элементах, а они реагируют только на перепад температур, т.е. движение предметов не отличающихся по температуре от окружения замечено не будет.
-= Александр =- » 22 янв 2006, 12:46
Телевизор и батарея отопления тоже являются такими объектами... :wink:
Vovan » 22 янв 2006, 13:56
<Датчик движения (от сигнализации) загружается секунд 5> - мда... об этом я не подумал...
А сложность меня не пугает, наборот интереснее! Даже если и не удастся реализовать - изучение вопроса всё равно на пользу.
___________
С уважением
Vovan
Kanoka » 22 янв 2006, 14:02
Ну если сложность не пугает тогда и на ИК-датчиках можно программным путем создать систему определяющую приближается ли робот к неподвижному объекту или к стоящему/движущемуся роботу приближается другой объект.
=DeaD= » 22 янв 2006, 14:40
По ИК-датчикам - вопрос только в времени отклика - сколько нужно времени ИК-датчику, чтобы определить расстояние?
Kanoka » 22 янв 2006, 15:17
Для Шарповских аналоговых 45 миллисекунд плюс время обработки в контроллере. С этим проблем не должно возникнуть.
Vovan » 22 янв 2006, 15:33
<Ну если сложность не пугает тогда и на ИК-датчиках можно программным путем создать систему определяющую приближается ли робот к неподвижному объекту или к стоящему/движущемуся роботу приближается другой объект.> - вот я и спрашиваю (пусть в общих словах) как работает такая система? Где ента тонкая разница между тем что робот движется относительно предметов и тем что предметы двигаются относительно робота?
Я не могу никак догадаться... :( Прогу написАть никак не выходит без конкретной задачи... т.е. что-то типа такой: ИК СД посылает пачки, ИК ФД их получил (отражённые) и .... что дальше? :?:
___________
С уважением
Vovan
Kanoka » 22 янв 2006, 16:25
Тут придется делать хитрый, двухуровневый радар. Один датчик, постоянно крутится сканируя окружение, пара других наводится на ближайший объект замеченный первым датчиком. Этой же парой меряем расстояние до объекта и изменение его по времени.
Далее алгоритм при стоящем роботе и движущемся объекте:
Первый датчик сканирует пространство на 360-ти градусах и выделяет ближайший объект, второй датчик (состоящий из двух) поворачивается в сторону найденного ближайшего объекта и по разнице сигналов на своих двух сенсорах центрируется на нем и измеряет расстояние.
Первый датчик при этом продолжает крутится, и на следующем обороте опять определяет ближайший объект, при этом если объект движется не прямо на/от робота, а под каким либо углом к нему второму датчику нужно будет заново навестись на него ну и соответственно еще раз измерить расстояние.
Зная две точки на плоскости и временной интервал между ними мы уже определили вектор, направление и скорость движения объекта.
Если робот движется то добавится еще две переменных ? его скорость и направление.
В общем все довольно просто.... На словах
P.S. Кстати, забавный радар получается, почему я до такого раньше не додумался?
=DeaD= » 22 янв 2006, 16:31
Маловато будет такой скорости - это получается не более 20 измерений в секунду, даже если забыть, что нам нужно 20 раз повернуться и остановиться на 45мс, значит при 1fps всего 20 точек по кругу можно заснять - очень-очень мало. Ногу будет не заметить скорее всего. Тем более что это всего 1 тест в секунду получится, а за секунду робота и пнуть можно
Если бы не было этого ограничения - измеряем скажем с частотой 5 раз в секунду расстояния до всего вокруг, между каждыми двумя измерениями смотрим куда должны были с учетом нашей скорости сдвинуться предметы и куда реально сдвинулись. Где несовпадает - там движущийся самостоятельно, а не относительно нас, объект.