roboforum.ru

Технический форум по робототехнике.
Текущее время: 23 ноя 2024, 07:28

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 48 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: Приведение робота к маячку
СообщениеДобавлено: 26 фев 2009, 14:22 
Не в сети
Мастер Самоделкин
Аватара пользователя

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

_________________
Ниндзя - круче всех. Они умеют ходить по воде, делить на ноль и угадывать шаффл в АйПоде.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Приведение робота к маячку
СообщениеДобавлено: 26 фев 2009, 14:32 
Не в сети
Аватара пользователя

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

1. наилучшее из чего?
2. что будет являться доказательством?
3. какова будет сумма приза победителю?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Приведение робота к маячку
СообщениеДобавлено: 26 фев 2009, 15:15 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Виталий писал(а):
практики пусть попробуют ДОКАЗАТЬ

Жжошь! :P

Какие же они после этого будут практики?

Добавлено спустя 4 минуты 8 секунд:
Виталий писал(а):
Хотите сформулировать задачу просто?
Вот: для робота двигающегося на плоскости с постоянной, но неизвестной скоростью и имеющего на борту единственный всенаправленный микрофон привести его к единственному неподвижному источнику звука. Думаю, это правильное условие.

Тогда уж для робота, который может двигаться с любым вектором скорости независимо от предыдущего вектора скорости, при том что всегда вектор скорости не превышает по модулю "Max_Speed" - так чтоли?

Или если быть ближе к реальности (считаем, что OmniWheel не пользуем) - робот может в любой момент времени менять свою скорость в пределах -max_speed ... +max_speed, и с ускорением не более -max_accel ... +max_accel и крутиться вокруг своей оси с угловой скоростью из интервала -max_angle_speed ... +max_angle_speed

Как-то так? :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Приведение робота к маячку
СообщениеДобавлено: 26 фев 2009, 16:14 
Не в сети
Аватара пользователя

Зарегистрирован: 08 окт 2004, 16:43
Сообщения: 2114
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий
Цитата:
1. наилучшее из чего?
2. что будет являться доказательством?
3. какова будет сумма приза победителю?

1. Из всех возможных вариантов.
2. Математическое обоснование.
3. Если найдутся желающие то можно и приз организовать, но их как обычно - не будет.

Цитата:
Как-то так?

Робот двигается с постоянной скоростью, может менять только направление. Пусть для начала - произвольно.

_________________
Все новости о моих проектах http://savethebest.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Приведение робота к маячку
СообщениеДобавлено: 26 фев 2009, 16:48 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
2Виталий: Ну если у нас сферический конь в вакууме и погрешностей нету, то алгоритм простой - делаем круг радиусом епсилон (сколь угодно малое), определяем бесконечно точное направление на маяк и едем по нему, пока сигнал вместо роста не начнет затухать :) как только это случилось - возвращаемся назад к пику сигнала, "вот мы и дома" :)

очевидно что алгоритм максимум даст лишний путь в длину окружности которую сначала проехали + выход на точку, где пик был на окружности. Устремим епсилон к нулю и получим сколь угодно близкий к оптимальному алгоритм

:crazy:

Добавлено спустя 2 минуты 5 секунд:
А вообще моноухо здесь в реальности сильно вредит. Бинухо вполне бы решало вопрос коррекции направления прямо на ходу, при движении к источнику сигнала. Так что даешь двуухого сферического коня в вакуум! :crazy:

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Приведение робота к маячку
СообщениеДобавлено: 26 фев 2009, 17:11 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
Двуухий конь к примеру на радиосигнале и небольших расстояниях малореален.
Задача красивая, не спорю. Именно тем, что в варианте с одним всенаправленным приемником она будет одинаково применима к радио, свету и звуку. Но боюсь, что если мы говорим о постоянном уточнении направления, то без какого-либо зигзагообразного движения не обойтись. А уточнение нужно, если имеют место хоть какие-то погрешности.

Вот пример алгоритма оценки. Двигаться зигзагом с поворотами в 90 градусов (ступеньками такими) - с одинаковыми отрезками. И сравнивать изменение мощности на соседних отрезках. По ним можно вычислить и точное направление (по синусам), и просто грубую оценку: если приращения положительны и равны - мы едем точно на источник. Если одно из них равно 0, а второе положительно - у нас отклонение 45 градусов. Если они равны по модулю, но одно отрицательно - 90 градусов. Если одно 0, а второе отрицательно - 135 градусов. Ну и если оба равны и отрицательны - 180 градусов. Как-то так.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Приведение робота к маячку
СообщениеДобавлено: 26 фев 2009, 17:41 
Не в сети
Аватара пользователя

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

список всех возможных вариантов в студию!
Виталий писал(а):
3. Если найдутся желающие то можно и приз организовать, но их как обычно - не будет.

сколько ты лично готов в это дело вложить?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Приведение робота к маячку
СообщениеДобавлено: 26 фев 2009, 21:36 
Не в сети
Аватара пользователя

Зарегистрирован: 05 окт 2005, 12:03
Сообщения: 3340
Откуда: Литва
прог. языки: asm
Цитата:
А вообще моноухо здесь в реальности сильно вредит. Бинухо вполне бы решало вопрос коррекции направления прямо на ходу, при движении к источнику сигнала. Так что даешь двуухого сферического коня в вакуум! :crazy:

+1
Цитата:
Двуухий конь к примеру на радиосигнале и небольших расстояниях малореален.
а не поспешили ли Вы с таким конкретным заявлением? но с уточнением "на небольших расстояниях", пожалуй, тоже +1.
Цитата:
Задача красивая
-1, ибо корявая задача, бесконечные уточнения и передача авторства (например Виталию, ибо уже ОН ставит задачу, без ведома автора)
"Всенаправленный приёмник" - что это??? Бред какой-то! Дайте реальное определение и пример реализации. Теоретическая точка-"приёмник" (эх! вынужден на ентом языке разговаривать, хоть это и не верно) в пространстве - не принимается.
Касательно "алгоритма оценки" от boez: распространение звука (гы! в вакууме :lol: , ну конечно же в воздушной среде :) ), по-Вашему, имеет линейную зависимость? Если да - читать акустику, если нет - изложите почему, а иначе - голословие (asm)
ИМХО топику место в "задачах не из инета".

_________________
_________
Sincerely,
Vovan


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Приведение робота к маячку
СообщениеДобавлено: 26 фев 2009, 22:53 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
Vovan писал(а):
-1, ибо корявая задача, бесконечные уточнения и передача авторства (например Виталию, ибо уже ОН ставит задачу, без ведома автора)
"Всенаправленный приёмник" - что это??? Бред какой-то! Дайте реальное определение и пример реализации. Теоретическая точка-"приёмник" (эх! вынужден на ентом языке разговаривать, хоть это и не верно) в пространстве - не принимается.
Касательно "алгоритма оценки" от boez: распространение звука (гы! в вакууме :lol: , ну конечно же в воздушной среде :) ), по-Вашему, имеет линейную зависимость? Если да - читать акустику, если нет - изложите почему, а иначе - голословие (asm)
ИМХО топику место в "задачах не из инета".


Ну автору небольшое замечание конечно сделать стоит - за расплывчатую постановку. Попробую на правах человека с высшим математическим образованием поставить четкое абстрактное условие. Автора прошу поправить, если я его не так понял.

Кстати, я не понял, чем вас не устроил всенаправленный приемник? Пример 1: радиоприемник с вертикальной штыревой, да или с любой другой всенаправленной антенной. Пример 2: Фотодиод, направленный вверх, а над ним зеркальный конус. Пример 3: микрофон, направленный вверх, а над ним твердый конус/иное круглое тело.

Так вот, имеем на плоскости фиксированную точку ("маяк") и подвижную точку ("робота"). Также имеем непрерывно дифференцируемую монотонно убывающую функцию одного переменного (зависимость уровня сигнала на приемнике, то что автор назвал "мощностью", от расстояния до маяка). В любой момент мы можем получить значение этой функции для заданного положения робота, а также имеем возможность перемещать робота с постоянной скоротью в некотором направлении и поворачивать это направление на заданный угол. Задача - описать алгоритм, приводящий робота на маяк.

Между прочим, заданным условиям все три названных выше варианта приемника удовлетворяют, с соответствующими передатчиками и при условии отсутствия препятствий и отражений.

А теперь почему мой алгоритм будет работать. А потому что нам нафиг не нужна линейность, вполне достаточно непрерывной дифференцируемости, если шаги "ступеньки" будут достаточно малы и перемещении на этот шаг производная функции расстояния не будет сильно меняться. Для функции 1/r (радио) или 1/r^2 (свет, звук), с которой убывает у нас сигнал, это означает что размер ступеньки должен быть просто существенно меньше расстояния до маяка. Тогда, несмотря на то что функция уровня сигнала в целом линейной не является, на каждом отрезке ступеньки ее можно считать линейной, причем даже не от расстояния, а от координаты Х в системе с началом координат на маяке и осью Ох, проходящей через робота. А уж в таком случает очевидно, что приращение сигнала равно производной функции сигнала в точке, равной текущему расстоянию до робота, умноженной на косинус угла между направлением движения робота и направлением на маяк. А поворот на 90 градусов нужен, чтобы найти синус того же угла, после чего сам угол находится однозначно. Ну конечно в пределах погрешностей, к которым добавились всякие члены второго порядка от наших линеаризаций - но на то они и второго порядка, чтоб уменьшаться быстрее уменьшения длины отрезка.

В общем, основная идея - непрерывно дифференцируемую функцию всегда можно заменить линейной на малом отрезке.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Приведение робота к маячку
СообщениеДобавлено: 26 фев 2009, 23:04 
Не в сети
Аватара пользователя

Зарегистрирован: 08 окт 2004, 16:43
Сообщения: 2114
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий
Цитата:
список всех возможных вариантов в студию!

Это смешно. Нужно доказать, что лучшего варианта не существует, для этого списка остальных вариантов не надо.

Цитата:
сколько ты лично готов в это дело вложить?

Нисколько, я уже решил.


Цитата:
Ну если у нас сферический конь в вакууме и погрешностей нету...

Согласен. Но устремлять к нулю нельзя, можно сказать только для любого сколь малого e>0.

Такая задача будет еще интересна для маяка двигающегося с постоянной скоростью в неизвестном направлении.

_________________
Все новости о моих проектах http://savethebest.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Приведение робота к маячку
СообщениеДобавлено: 26 фев 2009, 23:19 
Не в сети
Аватара пользователя

Зарегистрирован: 05 окт 2005, 12:03
Сообщения: 3340
Откуда: Литва
прог. языки: asm
Цитата:
Кстати, я не понял, чем вас не устроил всенаправленный приемник? Пример 1: радиоприемник с вертикальной штыревой, да или с любой другой всенаправленной антенной. Пример 2: Фотодиод, направленный вверх, а над ним зеркальный конус. Пример 3: микрофон, направленный вверх, а над ним твердый конус/иное круглое тело.
а Вы сами не догадываетесь ЧЕМ не устроил? да нет там Вашей хвалёной "всенаправленности" хотя бы в 3D секторе со стороны конуса. А про "всенаправленную" антенну лучше мне и не рассказывайте как челу с высшим ассенизаторноколхозносантехническоканализационным образованием, ну поймите Вы, это слишком долгие и никому не нужные лекции и понятия полученные, например мною, в КФМФТУиБ... Что касается Ваших дальнейших рассуждений (как чела с высшим математиматическим) я ничего против не имею, только одно: его алгоритм Ваш (хотя он вроде как от boez? или я ошибаюсь?) реально, по-Вашему, реализовать на современной элементной базе? Если да - реализуйте, а там уж и посмотрим есть ли ошибки... и если будут - поправим :D
ЗЫ: без обид, Ваши рассуждения об алгоритме реально заслуживают уважения и вполне понятны, даже мне "сантехнику", а рассуждения о датчиках - извините, но наивны... :)

_________________
_________
Sincerely,
Vovan


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Приведение робота к маячку
СообщениеДобавлено: 26 фев 2009, 23:33 
Не в сети
Аватара пользователя

Зарегистрирован: 08 окт 2004, 16:43
Сообщения: 2114
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий
Цитата:
хотя бы в 3D секторе со стороны конуса.

У нас погоня на плоскости. А кроме того задача теоретическая.

Цитата:
реально, по-Вашему, реализовать на современной элементной базе?

Это неважно, но да.

_________________
Все новости о моих проектах http://savethebest.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Приведение робота к маячку
СообщениеДобавлено: 26 фев 2009, 23:52 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
Упс. Вроде boez - это я и есть. Хотя и засомневался поначалу ;)

Я ж тоже спорить не буду - я не спец по радиосвязи, математик я. Поэтому из чисто геометрических соображений мне кажется, что при вращении штыревой антенны вокруг ее оси уровень сигнала не меняется. При движении робота по окружности вокруг маяка со штырем - тоже. Так что все честно. Нам ведь не нужна 3D всенаправленность - а только в плоскости. А антенны с круговой диаграммой направленности в плоскости - вроде как реально существуют, в отличие от знаменитого идеального изотропного излучателя :)

Даже если там при приближении будет вовсе не 1/r, и не 1/r^2 - не важно. Главное, чтобы была однозначная убывающая зависимость от расстояния.

А что касается алгоритма - да реализуем он, более того - в простейшем варианте (не считаем никаких арксинусов, а просто сравниваем 2 числа и поворачиваем в сторону большей дельты) это будет аналог BEAM-робота с двумя фотодатчиками, который даже прямо ехать не умеет , а только поворачивает направо или налево в зависимости от того, в какой его "глаз" попадет больше света. Но только этот робот будет с одним датчиком, а ошибку направления будет определять по дельтам сигнала. Алгоритм на полстранички сишного кода будет. И то, что он приедет достаточно близко к маяку - у меня сомнений не вызывает.

А вобще давайте автора подождем, а то мы тут теории развели на 3 страницы, а он пропал :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Приведение робота к маячку
СообщениеДобавлено: 26 фев 2009, 23:59 
Не в сети
Аватара пользователя

Зарегистрирован: 05 окт 2005, 12:03
Сообщения: 3340
Откуда: Литва
прог. языки: asm
М... уклончиво...
Цитата:
задача теоретическая
не оправдание :)
Цитата:
Это неважно, но да.
так не важно или да? Если "да" то как? :wink:
ЗЫ: честно говоря, мне нет интереса ужЕ здесь участвовать, ибо здесь нет ИМХО ничего интересного. Хоть я и не Нострадамус, но предсказать смерть ентой ветки не составляет никакого труда. Лично я, давно пережевал и выплюнул "монокуляр в объёмном виденьи"... слишком хлопотно это, даже теоретически и слишком много (повтроюсь) подводных камней. Бинокуляр - снимает все проблемы тчк=)))
ЗЫЫ: пока писал boez отписался... Да всё верно. И алгоритм и величины, я ж не против. Тока почему на плоскости? :shock: вроде там "ракеты" самонаводящиеся фигурировали... или я ошибся? А ракеты как известно в 3D движутся, а ракеты это и есть моя родненькая специальность (иБ = имени Баумана)... Млин! Я и шпарю про 3D! :oops:

_________________
_________
Sincerely,
Vovan


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Приведение робота к маячку
СообщениеДобавлено: 27 фев 2009, 00:45 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
О - опять задумался, а может это мы не правы с плоскостью? А не, нифига - вот про плоскость автор задачи написал.

На самом деле в пространстве это решается совершенно аналогично (только вместо двух перпендикулярных направлений надо три, такой угловатой спиралькой двигаться), но к реальности уже имеет намного меньше отношения - потому как требует 3D изотропных излучателей и приемников, а с ними в реальности все хуже - полностью согласен.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 48 ]  На страницу Пред.  1, 2, 3, 4  След.

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO