roboforum.ru

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

Концепция датчика для слалома

Концепция датчика для слалома

Сообщение Radist » 12 ноя 2010, 08:24

На форуме этот вид соревнований практически в нуле, не видел ни одного проекта. Посмотрел ролики таких соревнований, появились мысли, которые хотелось бы обсудить.

Коротко о том, что такое слалом. Это та же езда по линии, только на линии стоят кегли (белые из кегельринга). Их нужно объезжать, причем меняя сторону объезда. Например сперва справа, потом слева и таr до финиша. Трасса не кольцевая, соревнования на скорость. Касаться кеглей нельзя - штрафные секунды.

Естественно к датчикам линии добавляется ИК локатор (или любой другой), действующий на малом расстоянии. Что я видел на роликах: робот доезжает до кегли, затем делает "коробочку" - поворот допустим направо на 90 градусов, проезд вперед по энкодерам или таймеру, поворот налево на 90 градусов, проезд прямо, поворот налево на 45 градусов, проезд до возвращения на линию. Очевидно, что это простой, но не эффективный способ.

Теперь мое предложение.
В основе датчика лежит обычный ИК локатор. У него тсоп посередине, с широкой диаграммой направленности, и три ИК светодиода с узкой диаграммой направленности (буквально светят из трубок). Их расположение: один в центре, над/под тсопом, светит вперед, служит для первоначального определения кегли на линии, два по краям, светят под углом к трассе в разные стороны - для объезда кегли справа/слева. Как все это планируется работать.

Едем по линии, никого не трогаем, поглядываем вперед центральным излучателем. Обнаружили кеглю - надо объехать (допустим справа). Включаем тот светодиод, что светит влево по ходу, поворачиваем направо, пока не увидим кеглю (ПД регулятор езды по линии при этом отключен). Затем, работая моторами по очереди, едем так, чтобы постоянно видеть кеглю (лирическое отступление: как устроена навигация ночных бабочек. Они выбирают точечный источник света, Луну или звезду, и летят куда им надо так, чтобы угол, под которым они видят источник света, был постоянным. Если источником света будет лампочка - бабочка будет летать по кругу. Можно поставить интересный эксперимент: две лампочки, два выключателя, одна бабочка). Робот поедет по кругу, как та бабочка. Когда наедет обратно на линию - выравнивается и едет до следующей кегли.

Хотелось бы чтобы обсуждение не заглохло, а то гонщиков по линии тут много, а слаломистов мало. Я бы предпочел коментарии следующих видов:
- этот способ работать не будет, потому что ......
- этот способ будет работать плохо, потому что .....
- этот способ будет работать лишь при соблюдении следующих условий .....
- этот способ работать должен, можешь начинать реализовывать, потом расскажешь что получилось
- ну и ваш вариант.

ЗЫ. Хотелось бы обсудить еще один датчик, в той теме глухо, продублирую здесь
forum76/topic5755-15.html#p183709
Аватара пользователя
Radist
 
Сообщения: 2241
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Концепция датчика для слалома

Сообщение Michael_K » 12 ноя 2010, 08:45

А чего вы добивались дополнительными наворотами? Он быстрее что ли станет?
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Концепция датчика для слалома

Сообщение Radist » 12 ноя 2010, 09:20

На мой взгляд он станет проще. Локатор так и так нужен, дополнительно 2 светодиода погоды не портят. Зато не нужен отъезд по энкодерам/таймерам (на энкодерах экономим, по таймеру не надежно). Потом полукруг - это меньше перемещения чем полуквадрат. И в программе проще: объезд по релейному закону (видим кеглю - едем левым колесом, не видим - правым). Ну и эстетизм - объезд плавной траекторией выглядит красиво.
Аватара пользователя
Radist
 
Сообщения: 2241
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Концепция датчика для слалома

Сообщение Radist » 23 ноя 2010, 12:06

Ну, раз никто не отговорил, начал делать этот датчик. Продумал схему, чтоб он получился универсальным: и для слалома, и для кегельринга квадро. Пока на стадии разводки платы, потом еще программу надо будет написать, но она простенькая. Сделаю - покажу.
Аватара пользователя
Radist
 
Сообщения: 2241
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Концепция датчика для слалома

Сообщение Radist » 02 дек 2010, 12:49

Датчик я сделал, работает, фото будет позже. На робота я его пока не ставил - робот еще не готов. Расскажу как датчик устроен.
Изначально я планировал сделать датчик "вещью в себе", чтобы он мне выдавал уже событие: есть отражение/нет отражения. А значит на борту нужен контроллер. Кроме того, я должен знать, произошло событие или нет, а значит нужно 3 светодиода простых. Ставить мегу не хотелось - слишком жирно. А у тиньки мало ног. Поэтому я поставил тиньке помошника: 2х4>1 мультиплексор 4052. Одна его половинка раздавала несущую на три канала, вторая половина подключает питание к видимым светодиодам. Контролер двумя адресами только управляет. Он же генерит несущую и смотрит на тсоп. Если есть отражение - на вторые ноги видимых светодиодов идет ноль от контроллера. Итого уложился в 5 ног, а для работы с датчиком достаточно подать питание. Как главный контроллер будет снимать показания с датчика: он считывает 4 ноги (все, кроме генератора несущей) и по ним определяет какой глаз сейчас работает и есть ли отражение. Калибровку на нужное расстояние произвел подбором токоограничительных резисторов (от белого): для кегельринга квадро около 30 см (5,6 кОм!!!!), для слалома глаз смотрящий вперед 15 см (22 кОм!), глаза, смотрящие вбок - 15 см (5,6 кОм!). Вот доказательство, что не нужна мощная раскачка ИК диодов, нужна лишь хорошая оптическая изоляция их от тсопа.
Поскольку каналов 3, а светодиодов 5 (2 для квадро и три для слалома) - боковые светодиоды выбираются перемычками: либо смотрим вперед для квадро, либо смотрим в стороны для слалома.
Габариты датчика примерно 100х25 мм.

Фотку наверное сделаю в выходные.
Аватара пользователя
Radist
 
Сообщения: 2241
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Концепция датчика для слалома

Сообщение -= Александр =- » 02 дек 2010, 15:02

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

Re: Концепция датчика для слалома

Сообщение Radist » 02 дек 2010, 15:27

Я по другому алгоритму хочу. Крутимся в центре, видим только белых. Нацелились обоими глазами - и вперед, пока нас линия не остановит. Потом пятимся задом в центр (по энкодерам или таймеру) и ищем вторую кеглю. Поступаем с ней аналогично.
Аватара пользователя
Radist
 
Сообщения: 2241
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Концепция датчика для слалома

Сообщение СаняМ » 03 дек 2010, 11:00

В новом регламенте Кегельринг-Макро увеличен диаметр поля до 1,5м. Попытка видеть кегли на расстоянии 53см была неуспешной, очень много ложных срабатываний. Сделал так: еду вперед на 20см, смотрю кеглю, если есть - значит она белая и сразу ее за борт. Если ее нет- едем 20см назад в центр, затем поворот на 45гр и повторяем.
ТСОП один, светодиод один, чувствительность подстроил на 30см. Конечно мой алгоритм жестко привязан к начальному взаимному расположению кегель и бота, плюс инерциальная система отсчета. Но опыты показали: моторы Гекко, включенные по типу "вперед-тормоз" достаточно точно позиционируются.

Радисту: Большое спасибо за идею "светодиодного конденсатора". Очень долго боролся с боковой (и даже задней) засветкой. Решил попробовать Вашу идею. Полчаса работы напильником и результат ПРЕВОСХОДНЫЙ. Немного доработал - чтобы светик не вываливался из кондера, на задний край его надел колечко термоусадки шириной около 5мм так что половина кольца выступает за срез кондера. После усадки кольцо надежно закрепило светик с резинкой.
СаняМ
 
Сообщения: 21
Зарегистрирован: 20 сен 2010, 12:53
Откуда: Ярославль
прог. языки: Pascal, Asm, Bascom
ФИО: Александр

Re: Концепция датчика для слалома

Сообщение Radist » 03 дек 2010, 13:41

Рад, что идея понравилась :oops: Когда я ее впервые представил форумчанам - некоторые покритиковали за варварское отношение к конденсаторам :) . А насчет соревнований - я не планирую с кем-то соревноваться, мне интересно делать роботов просто. Как только робот получился, работает как надо - я теряю к нему интерес. В данном случае хочу убить сразу кучу зайцев: и в простой кегельринг поиграть, и в квадро, отладить на роботе автонастройку ПД регулятора для лайнтрейса, поиграть в слалом, поиграть с алгоритмами выхода из лабиринта. По лайнтрейсу есть оффлайн соревнования, есть результаты, с которыми я могу сравнить свои результаты. Буду знать свои результаты, а что их кроме меня мало кто будет знать - так мне это и не нужно. У меня есть ринг для сумо - я играю на нем. Он всего 77 см вроде, для кегельринга вроде раньше был метр, теперь говорите что полтора. Мне негде будет его хранить, поэтому и планирую играть вне зачета на ринге от сумо :)
Аватара пользователя
Radist
 
Сообщения: 2241
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Концепция датчика для слалома

Сообщение Radist » 18 дек 2010, 15:37

Наконец-то сфотографировал датчик.
Вложения
PICT2193.JPG
PICT2194.JPG
PICT2194.JPG (49.39 КиБ) Просмотров: 2684
Аватара пользователя
Radist
 
Сообщения: 2241
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Концепция датчика для слалома

Сообщение Radist » 09 янв 2011, 01:23

Ну вот, робот готов, лайнтрейсу научен, пришло время проверить датчик. Я ошибся в своем предположении :( . Если делать по алгоритму, описанному выше, то последовательность итерраций не приводит к объезду кегли - она приводит к столкновению с кеглей. Итого глаза, смотрящие вбок, бесполезны. Сейчас я доезжаю до кегли, смотря вперед одним глазом, а потом реализую объезд по дуге разностью шимов. Так что дуга у меня получилась, хоть и не тем способом, что я хотел. Есть пара моментов, про которые стоит рассказать. Изредка бывают ложные срабатывания, будто перед роботом кегля. Лечится программной фильтрацией. Второй момент - когда робот объезжает по дуге - должен быть критерий окончания объезда и возврат на линию. Сразу проверять линию нельзя - мы ведь пока на линии. Вводим паузу. Если эта пауза небольшая, а робот в процессе объезда пересекает "не свою линию" (ну вот достаточно близко они проходят) - он зацепится за нее. Если пауза большая, а кегля стоит на повороте, то он пересечет свою линию, и лишь потом станет ее искать. В регламенте слалома я не нашел, должны ли кегли обязательно быть на прямых участках, или могут быть на поворотах, а также какое минимальное расстояние между линиями. По идее, робот не обязан идентифицировать трассы своя/чужая. Он должен сойти со своей трассы, а затем на нее вернуться. И там где она должна быть - ничего другого быть не должно. Может я не тот регламент смотрел и это где-то описано?
Аватара пользователя
Radist
 
Сообщения: 2241
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR


Вернуться в Сенсорика

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

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