roboforum.ru

Технический форум по робототехнике.

 

Робот не путайся под ногами

Наше хобби — конструировать и программировать.
Демонстрация готовых роботов и устройств построенных своими руками.

Робот не путайся под ногами

Сообщение Vovan » 21 янв 2006, 14:33

Уважаемый форум, посоветуйте как принципиально осуществить уход робота от движущихся предметов.
Робот - самодвижущаяся платформа с такими составляющими - задний и передний контактные бамперы; ФД реагирующий на свет: света нет - спим, свет есть "гуляем" или ищем источник света при помощи ещё двух ФД; два ИК датчика (спереди): при полной зарядке как ИК бамперы, а при истощении источника питания отключается ИК светодиод, а ИК датчики определяют направление движения робота на ИК маяк к зарядной станции, на этом пути работают контактные бамперы, которые до этого за ненадобностью бездействовали. Вот теперь захотелось добавить ему (роботу) функцию ухода от неожиданного появления движущегося предмета сбоку от робота или сзади(человек, кошка и т.д.), спереди то ИК локаторы они сработают, а вот сбоку или сзади - нет.
Я так понимаю что датчики движения здесь не подходят - робот и так в движении, зачит все предметы относительно него ужЕ двигаются.
Может дополнительных ИК локаторов наставить? Или, где-то встречал, круговой ИК локатор? А может ещё есть варианты?
___________
С уважением
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

Сообщение Терминатор » 21 янв 2006, 19:28

А про ультразвуковые датчики не думали???
Терминатор
 
Сообщения: 34
Зарегистрирован: 23 окт 2005, 15:22
Откуда: Москва

Сообщение -= Александр =- » 21 янв 2006, 19:37

Тепловые заставят его шарахаться от батарей отопления, а емкостные - от любых массивных предметов... Тут универсального решения нет. По крайней мере проще и дешевле в любом случае будут ИК-барьеры. Чуть дороже - дальномеры. Сложнее- крутящийся радар, но он уже позволит определить откуда и с какой скоростью на него идут.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3664
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C++, VB, asm
ФИО: Курмис Александр Андреевич

Сообщение Kanoka » 21 янв 2006, 20:33

Скорее всего ИК-датчики, или вращающиеся, или несколько расположенных по кругу. С ультразвуковыми датчиками сложнее, двигатели сильно фонят.
Kanoka
Модератор
 
Сообщения: 1271
Зарегистрирован: 11 ноя 2004, 03:18
Откуда: Москва

Сообщение Vovan » 21 янв 2006, 21:25

Спасибо за участие!
Что-то меня на вращающийся локатор потянуло :D  Хоть и сложно, но тем интереснее!
Однако, наверное, есть другой путь... Всё же для этих датчиков нет разницы движется предмет в направлении робота или просто робот мимо него проходит и в соответствии с "показаниями" датчиков меняет свою траекторию, например проходя мимо табуретки справа "на всякий случай" обходит её с запасом, а слева ещё одна табуретка - тупик! А ведь по габаритам он там запросто пройдёт. Сдаётся мне что тут дальномером пахнет?
А может всё же датчики движения? :idea:  Выглядит это так (грубо, образно ну вобщем пока только принципиально, не вдаваясь в детали): прошёл некоторое расстояние остановился, включил датчики движения (ДД), типа посмотрел не движется ли кто в его направлении, отключил ДД  дальше пошёл, опять остановка и т.д... Может так? Тоже что-то не очень красиво... Хотя таким поведением напоминает многих представителей животного мира...
Продолжаю думать :?:
___________
С уважением
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

Сообщение -= Александр =- » 22 янв 2006, 09:09

Датчик движения (от сигнализации) загружается секунд 5, так что это не годится... БЫла у меня мысль об ультразвуковом датчике с эффектом Допплера, но думаю будет это дико сложно...  :roll:  Проще уж ИК-дальномер раскрутить...
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3664
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C++, VB, asm
ФИО: Курмис Александр Андреевич

Сообщение EdGull » 22 янв 2006, 12:05

обычные ДД собраны на ПИИР элементах, а они реагируют только на перепад температур, т.е. движение предметов не отличающихся по температуре от окружения замечено не будет.
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Сообщение -= Александр =- » 22 янв 2006, 12:46

Телевизор и батарея отопления тоже являются такими объектами...  :wink:
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3664
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C++, VB, asm
ФИО: Курмис Александр Андреевич

Сообщение Vovan » 22 янв 2006, 13:56

<Датчик движения (от сигнализации) загружается секунд 5> - мда... об этом я не подумал...
А сложность меня не пугает, наборот интереснее! Даже если и не удастся реализовать - изучение вопроса всё равно на пользу.
___________
С уважением
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

Сообщение Kanoka » 22 янв 2006, 14:02

Ну если сложность не пугает тогда и на ИК-датчиках можно программным путем создать систему определяющую приближается ли робот к неподвижному объекту или к стоящему/движущемуся роботу приближается другой объект.
Kanoka
Модератор
 
Сообщения: 1271
Зарегистрирован: 11 ноя 2004, 03:18
Откуда: Москва

Сообщение =DeaD= » 22 янв 2006, 14:40

По ИК-датчикам - вопрос только в времени отклика - сколько нужно времени ИК-датчику, чтобы определить расстояние?
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение Kanoka » 22 янв 2006, 15:17

Для Шарповских аналоговых 45 миллисекунд плюс время обработки в контроллере. С этим проблем не должно возникнуть.
Kanoka
Модератор
 
Сообщения: 1271
Зарегистрирован: 11 ноя 2004, 03:18
Откуда: Москва

Сообщение Vovan » 22 янв 2006, 15:33

<Ну если сложность не пугает тогда и на ИК-датчиках можно программным путем создать систему определяющую приближается ли робот к неподвижному объекту или к стоящему/движущемуся роботу приближается другой объект.> - вот я и спрашиваю (пусть в общих словах) как работает такая система? Где ента тонкая разница между тем что робот движется относительно предметов и тем что предметы двигаются относительно робота? :)  Я не могу никак догадаться...  :( Прогу написАть никак не выходит без конкретной задачи... т.е. что-то типа такой: ИК СД посылает пачки, ИК ФД их получил (отражённые) и .... что дальше?  :?:  
___________
С уважением
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

Сообщение Kanoka » 22 янв 2006, 16:25

Тут придется делать хитрый, двухуровневый радар. Один датчик, постоянно крутится сканируя окружение, пара других наводится на ближайший объект замеченный первым датчиком. Этой же парой меряем расстояние до объекта и изменение его по времени.

Далее алгоритм при стоящем роботе и движущемся объекте:
Первый датчик сканирует пространство на 360-ти градусах и выделяет ближайший объект, второй датчик (состоящий из двух) поворачивается в сторону найденного ближайшего объекта и по разнице сигналов на своих двух сенсорах центрируется на нем и измеряет расстояние.
Первый датчик при этом продолжает крутится, и на следующем обороте опять определяет ближайший объект, при этом если объект движется не прямо на/от робота, а под каким либо углом к нему второму датчику нужно будет заново навестись на него ну и соответственно еще раз измерить расстояние.
Зная две точки на плоскости и временной интервал между ними мы уже определили вектор, направление и скорость движения объекта.

Если робот движется то добавится еще две переменных ? его скорость и направление.

В общем все довольно просто.... На словах :)

P.S. Кстати, забавный радар получается, почему я до такого раньше не додумался?
Kanoka
Модератор
 
Сообщения: 1271
Зарегистрирован: 11 ноя 2004, 03:18
Откуда: Москва

Сообщение =DeaD= » 22 янв 2006, 16:31

Маловато будет такой скорости - это получается не более 20 измерений в секунду, даже если забыть, что нам нужно 20 раз повернуться и остановиться на 45мс, значит при 1fps всего 20 точек по кругу можно заснять - очень-очень мало. Ногу будет не заметить скорее всего. Тем более что это всего 1 тест в секунду получится, а за секунду робота и пнуть можно :)

Если бы не было этого ограничения - измеряем скажем с частотой 5 раз в секунду расстояния до всего вокруг, между каждыми двумя измерениями смотрим куда должны были с учетом нашей скорости сдвинуться предметы и куда реально сдвинулись. Где несовпадает - там движущийся самостоятельно, а не относительно нас, объект.
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

След.

Вернуться в Наши проекты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

Mail.ru counter