Алгоритмы и примеры программ под ИК-локатор вращения.

Обсуждаем рождающиеся мысли и результаты экспериментов.

Сообщение SSG » 17 май 2007, 17:25

Ну вот, например, для того, чтоб оттолкнуться:
http://www.platan.ru/shem/pdf/prim.pdf

А можно хоть словесно описать алгоритм определения местоположения, плз?  :oops:
Аватара пользователя
SSG
 
Сообщения: 1058
Зарегистрирован: 15 янв 2007, 19:23
Откуда: Беларусь, Барановичи
прог. языки: С для МК, Delphi для ПК

Сообщение Vovan » 17 май 2007, 18:13

Из всего вышесказанного меня очень удивляет:
1. как можно ТСОПом определить мощность излучения маяка? ("и ловить максимум излучения. Откуда сигнал самый сильный - там и есть маяк") У ТСОПа только два состояния: есть и нету (1 и 0), среднего не дано. (Объясните, мождь я что-то не понимаю...)
2. мне не понятно зачем ваще "крутить башкой"? Покрутить, определить направление и потом всё равно повернуться и ехать на маяк... Два механизма выполняющих одну и ту же задачу - ИМХО не рационально. (Поясните - где рациональное зерно?)
3. "Алгоритм отсеивания ложных сигнал есть."  - интересно! Если "ложный" сигнал отсеен, что ж ещё пояснять? (" Все пишут о передаваемом коде ... от маяка.
Поясните пожалучта, расскажите, дайте ссылок") (Что именно пояснить? Ссылок на что? По работе ТСОПов? Инет у всех одинаковый.)
4."Алгоритм определения местоположения робота в помещении - тоже есть. " - Не верю! :wink:  (Станиславский) (Без комментариев)
А два TSOPа - это для надёжности ?
Скажем, на выходе будет единица, как подтверждение наличия маяка, тоьлко если оба TSOPа отреагирут ?

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

Сообщение Myp » 17 май 2007, 18:53

да легко ловить максимум
максимум будет ровно между двумя состояниями в которых тсоп не 100% срабатывает =)
при определённых углах обзора тсоп принимает всего лишь 1/10 всех посылок или даже меньше





кстати ещё трабл
допустим робот уехал далеко и сразу 2 маяка попали в область обзора, и чё делать?
проблема...
надо делать узконаправленный тсоп, тоесть запихивать его  в непрозрачный длинный тубус
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Сообщение SSG » 17 май 2007, 19:16

Осмелюсь возразить.  :)
Во-первых, в моем посте не сказано, что мощность ТСОПами меряется. А коль уж на то пошло, то маяки можно наделить даром генерировать сигнал разной мощности в посылках, например циклически убывающей. Это позволит отсеять отраженные сигналы. Сложно, но можно.
Во-вторых "крутить башкой" я ляпнул образно, т.е. либо вертим радаром, а тележка стоит, либо, если радара нет - то вращается сама тележка.
Ну и, в-третьих, топик-то про радар, поэтому почему бы не повертеть?  :lol:

А насчет алгоритма определения положения без дальномеров - сложно, но не невозможно. Вот, например.
Если робот может достаточно точно определить углы a1 и а2 между направлениями на маяки положения которых известны, то, если угол между k и m прямой, получим по теореме косинусов:
d1^2=n^2+l^2-2*n*l*cos(a1+a2);
m^2=n^2+d2^2-2*n*d2*cos(a1);
k^2=d2^2+l^2-2*d2*l*coa(a2).
Как видно - система из трех уравнений содержит 3 неизвестных (n,l и d2) и, наверняка, имеет решение.
Найдя n и l сможем вычислить угол с и тогда координаты робота:
х=n*cos(c+известный угол)
y=n*sin(c+известный угол).
Или я не прав?  :)
Вложения
Ориентирование.JPG
Аватара пользователя
SSG
 
Сообщения: 1058
Зарегистрирован: 15 янв 2007, 19:23
Откуда: Беларусь, Барановичи
прог. языки: С для МК, Delphi для ПК

Сообщение SSG » 17 май 2007, 19:32

PS1. Очевидно, что точность сильно зависит от точности измерения углов а1 и а2. Также очевидно, что для увеличения точности маяки должны быть разнесены подальше.
PS2. Не надо меня пинать, тыкая носом в сложность, а может и невозможность, получения аналитического решения описанной системы (сам вижу) - на то есть, например численные методы.
PS3. Не надо меня пинать, тыкая носом в то, что все это будет работать неторопливо. Я просто хотел показать, что такое возможно. Может есть варианты попроще, мой гениальный моск после работы отдыхает  :lol:
[off]Скромняга я, правда?[/off] :lol:
Аватара пользователя
SSG
 
Сообщения: 1058
Зарегистрирован: 15 янв 2007, 19:23
Откуда: Беларусь, Барановичи
прог. языки: С для МК, Delphi для ПК

Сообщение Vovan » 17 май 2007, 19:45

да легко ловить максимум
а зачем? И насколько это точно?
"максимум будет ровно между двумя состояниями в которых тсоп не 100% срабатывает =)
при определённых углах обзора тсоп принимает всего лишь 1/10 всех посылок или даже меньше " - это утверждение? Или предположение? Это откуда взято?
Продолжаю настаивать на бинокуляре - максимум точности (не я придумал, живые существа именно так и делают).
кстати ещё трабл
допустим робот уехал далеко и сразу 2 маяка попали в область обзора, и чё делать?
проблема...
надо делать узконаправленный тсоп, тоесть запихивать его  в непрозрачный длинный тубус

А зачем ему сразу два маяка видеть? Сразу за двумя гнаться??? :shock:  Очевидно: что алгоритм работы робота настроен на отыскание одного, именно в данный момент нужный, маяк, а уж затем другой, а при необходимости и n-ный...
Это позволит отсеять отраженные сигналы. Сложно, но можно.
теоретически, наверное всё можно... а стОит ли оно того? :wink:
Во-вторых "крутить башкой" я ляпнул образно,
это я не к Вам вопрос, это вопрос к автору идеи (виноват, это я коряво сформулировал :oops: )
Или я не прав?  
даже не проверяя на правильность рассуждений, отвечу: прав! И, наверное, это не единственный вариант определения положения робота по трём точкам. В своём первом посте я сразу упомянул про "говорящие маяки"... Но ведь теперь уже эта задача автором не ставится :)  
Во-первых, в моем посте не сказано, что мощность ТСОПами меряется.
а это кто писАл? :wink:
Единственно можно чемнить крутить (вращающимся радаром или целиком телегой) и ловить максимум излучения. Откуда сигнал самый сильный - там и есть маяк. Причем и здесь нужны будут ухищрения, чтоб отловить ентот максимум.
Я так и понял: "максимум излучения"=мощность, "сигнал самый сильный" =самый мощный, или тут что-то другое подразумевается? :wink:
___________
С уважением
Vovan
Последний раз редактировалось Vovan 17 май 2007, 20:11, всего редактировалось 2 раз(а).
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

Сообщение Vovan » 17 май 2007, 19:52

ЗЫ: ни в коем случае за логичные рассуждения никого пинать не собираюсь, а только выясняю насколько рационально то или иное решение. :wink:
ЗЫЫ: пока ни одно рассуждение не показало рациональности во вращении головой, а также рациональности применения одного ТСОПа.
___________
С уважением
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

Сообщение Myp » 17 май 2007, 21:32

а зачем? И насколько это точно?
"максимум будет ровно между двумя состояниями в которых тсоп не 100% срабатывает =)
при определённых углах обзора тсоп принимает всего лишь 1/10 всех посылок или даже меньше " - это утверждение? Или предположение? Это откуда взято?

утверждение основанное на практике
вот у меня тсоп стоит подключенный
вешаем на ногу тсопа светодиод и наблюдаем, если его засвечивать в лоб то светодиод на ноге тсопа горит непрерывно
если тсоп засвечивать сбоку то светодиод на ноге тсопа моргает =)
тоесть находим 2 положения в которых частота импульсов от тсопа одинаковая(тсоп принимает 10% от посылок маяка)
и середина между этими положениями будет направление на маяк
или вобще ещё тупее
крутим робота по часовой стрелке пока не потеряет маяк, пото крутимпротив часовой чтоб нашёл и опять потерял
потом обратно доворачиваем на половину и едем вперёд
можно обойтись 1 тсопом

А зачем ему сразу два маяка видеть? Сразу за двумя гнаться??? Shocked  Очевидно: что алгоритм работы робота настроен на отыскание одного, именно в данный момент нужный, маяк, а уж затем другой, а при необходимости и n-ный...

я к тому что если отъехать далеко то 2 маяка могут случайно попасть в поле зрения тсопа(у голого тсопа там чуть ли не  180 градусов обзор)
именно для этого угол обзора тсопа должен быть ограничен
Я так и понял: "максимум излучения"=мощность, "сигнал самый сильный" =самый мощный, или тут что-то другое подразумевается? Wink

может подразумевается  именно надёжность срабатывания тсопа=)
типа максимум сигнала это 100% пачек от маяка пойманых тсопом


а можно и 2 тсопа поставить с перегородкой между ними и под углом чтобы всегда только 1 тсоп мог видеть маяк
тоже алгорит крутимся на месте определяем напрна маяк
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Сообщение abba29 » 17 май 2007, 22:46

Итак !
1. Мне нужно не ехать на маяк (и) и они не могут оказаться на одной линии.
ПОЯСНЯЮ:
маяков будет три, разнесены по углам ПМЕЩЕНИЯ (закрытого помещения) (предположительно, образуют равносторонний треугольник);
маяки нужны только для определения местоположение (координат) в этом помещении (среда детерминированная)
2. Почему вращающийся ИК-локатор ?
Потому как мне не надо, повторяюсь, определять, где находятся маяки, их координаты Я знаю !
Моя задача - определить по этим маякам, где находится робот в помещении ! Поэтому мне надо надо обозревать пространство вокруг ...

По поводу алгоритмов.
Есть алгоритм отсеивания ложных сигналов, приходящих с ТСОПа. Реализовывается в программной части МК.
Есть алгоритм по определению координат робота относительно трёх маяков. На выходе, Х и У . . .

Теперь вопросы )))
С ТСОПами я знаком поверхностно.
Можно ли через ТСОП различить эту "азбуку Морзе", говоря образно ... Или он определяет только наиболее мощный источник излучения, или есть возможность "прочитать" этот источник ?

Но, как вижу по постам, ответ - ДА . . .
abba29
 
Сообщения: 34
Зарегистрирован: 12 май 2007, 00:54
Откуда: Архара

Сообщение Vovan » 17 май 2007, 23:13

утверждение основанное на практике
вот у меня тсоп стоит подключенный
вешаем на ногу тсопа светодиод и наблюдаем, если его засвечивать в лоб то светодиод на ноге тсопа горит непрерывно
если тсоп засвечивать сбоку то светодиод на ноге тсопа моргает =)
тоесть находим 2 положения в которых частота импульсов от тсопа одинаковая(тсоп принимает 10% от посылок маяка)
и середина между этими положениями будет направление на маяк
это называется использовать ТСОП как аналоговый приёмник света. При таком использовании (ИМХО) теряет всякий смысл подключение ТСОПа как ТСОПа... С тем же успехом можно подключить обычный ИК ФД и наблюдать примерно тоже самое (правда без мигания, но со сменой яркости светодиода)... При таком использовании (ИМХО) нет смысла подключать ТСОП к порту ввода\вывода МК.
я к тому что если отъехать далеко то 2 маяка могут случайно попасть в поле зрения тсопа(у голого тсопа там чуть ли не  180 градусов обзор)
ну здесь же не тот случай... Мы же оговорили что робот ищет маяки поочереди (или осознано, как угодно), иными словами маяки - говорящие, иными словами робот знает какой именно маяк ему нужен и если по программе "ищем маяк №2", то остальные он просто не видит. Если найден маяк№2 идём дальше (куда именно и зачем, определяет конструктор робота).
Можно конечно и остронаправленную оптику и типа в тубус ТСОП заключать - как угодно, но моя практика показывает: два робота (один шестиног, второй гусеничное шасси) с большой точностью выходят к зарядной станции и одно-два мимокассовых тыканья нисколько не мешает им добраться до цели и получать столь вкусную и питательную пищу как - иликтричество. А так же игра "в кошки мышки" между роботами так же очень поучительна, ибо здесь и маяк подвижный... Набил шишки я и с оптикой и с тубусами и с одним и даже тремя ТСОПами (один по центру стоял :oops:) , но задача по наведению на маяк с большой точностью при использовании ТСОПов (а о них именно речь идёт) - решилась просто и качественно - перегородка! :) Простая констукция, дёшево, легко строимый и читаемый код, крохотный hex, удобно и точно! Можно и дальше городить огород и дойти до высшей математики, ну если интересно то в путь...
Удачи=)) :D
___________
С уважением
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

Сообщение Myp » 17 май 2007, 23:46

а можно и 2 тсопа поставить с перегородкой между ними и под углом чтобы всегда только 1 тсоп мог видеть маяк
тоже алгорит крутимся на месте определяем напрна маяк


да это наиболее реальные метод пожалуй
только вот поажлуй надо наоборот чтобы робот видел в определённый момент 2мя тсопами маяк
если угол между направлением на маяк и направлением движ робота очень мал
тогда получится точно


ну типа как бим роботы которые ползут на свет =)
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Сообщение SSG » 18 май 2007, 11:27

4 Vovan
Приятно пообщались. :D
Согласен, что строить радар с 1-м ТСОПом не рационально, сложно его воплощать "в железе" и заставить его работать так, как хочется. Но вопрос-то здесь не в том! Ведь если очень хочется и интересно, то всю нерациональность можно простить. Главное - результат получить, а не разочароваться на полпути из-за сложностей.
Согласен также, что  бинокуляр удобен для того чтобы после блужданий робот возвращался в свой угол, но положение-то его не определить. А если ему нужно маршрут проложить в другую комнату, к определенному месту? Да, можно наставить маяков и последовательно их отыскивать, но как-то с координатами интересней. Вот тут, то и поможет именно вращающийся радар (конечно лучше, елсли у него будет 2 ТСОПа) на основе какого-нибудь шаговичка с понижающим редуктором, снабженным енкодером, чтобы повысить точность определения угла.
Ой, что-то я опять...  :D
Хотя лично мне более интересен вариант с дальномером. Меряем расстояния до объектов по всем направлениям, а потом анализируя имеющуюся карту местности пытаемся определить где мы есть. Плюсы: 1) не нужны маяки; 2) интересно поэкспериментировать с препятствиями, которых нет на карте. Попытаться научить робота прокладывать маршрут при наличии оных. Хотя и проблемы тут свои тоже есть.
Аватара пользователя
SSG
 
Сообщения: 1058
Зарегистрирован: 15 янв 2007, 19:23
Откуда: Беларусь, Барановичи
прог. языки: С для МК, Delphi для ПК

Сообщение Vovan » 18 май 2007, 17:51

4 Vovan
Приятно пообщались.  
взаимно  :D
Главное - результат получить, а не разочароваться на полпути из-за сложностей.
ИМХО если важен результат, то сложности стараться обходить, их хватит и в другом месте... а в робототехнике, пока, всегда есть конструктивная альтернатива :wink:
Хотя лично мне более интересен вариант с дальномером.
мне тоже, но дальномер УЗ, но +ТСОПы и маяки. Вот здесь и понадобится "вращающаяся голова", здесь она, похоже, будет к месту...
___________
С уважением
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

Пред.

Вернуться в Идеи

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

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

cron