roboforum.ru

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

Определение позиции робота XY

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

Re: Определение позиции робота XY

Сообщение RootAdmin » 06 апр 2012, 10:17

elmot писал(а):Уже где-то тут терли не раз. Все плохо. Просто не выходит. На инфракарасных маяках совсем все плохо. Оч сложно расстояние померять - задержки-то пикосекундные. Ультразвук как минимум.

Неее! Не по задержке... По углу на маяки.
Конструктивно сам локатор на роботе может быть выполнен как ТСОП c трубкой, для узкой диаграммы направленности, вращаемый шаговиком в горизональной плоскости, либо ТСОП направлен вертикально вверх, а ИК излучение попадает в него с помощью вращаемого зеркала, наклоненного под Пи/4.
Идея в том - чтобы получить углы 1 и 2. Зная базы а и б - можно однозначно рассчитать свое положение. Геометрию (пример расчета) привести?

Добавлено спустя 13 минут 16 секунд:
Начал думать - рисовать окружности - решил погуглить. Первая ж ссылка: http://www.raai.org/about/persons/karpo ... doopr2.htm
Вычисления местоположения робота по маякам
Пусть на плоскости (в ограниченной области) расположены N маяков с известными координатами. Там же находится робот, оборудованный вращающимся локатором. Локатор позволяет определять углы между собственным направлением робота (осью ориентации) и направлением на каждый из видимых маяков. Измерения производятся с некоторой погрешностью и могут быть не только неточны, но даже полностью неверны (например, из-за помех, перекрытий области видимости и т.п.). Требуется с максимальной точностью и в кратчайшее время определить местоположение робота – его координаты и направление (ориентацию).

Метод окружностей
Рассмотрим для начала метод «точного» решения задачи определения местоположения робота по маякам (А. Лоскутов, а также [3]). Пусть робот видит три маяка с заданными декартовыми координатами T1(x1,y1), T2(x2,y2), T3(x3,y3) соответственно. Локатор определяет направления на маяки относительно оси робота. Измеренные углы видимости маяков обозначим как a1, a2, a3. Будем считать, что робот определяет угол между маяками. Например, угол a12 между маяками T1 и T2 (a12=a1-a2), а угол между T2 и T3 - a23 (рис. 1).
(c) Карпов В.Э
Вложения
Локатор робота.jpg
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

Re: Определение позиции робота XY

Сообщение Angel71 » 06 апр 2012, 17:09

при движении доп. погрешность и возможно чуть более сложный алгоритм
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Определение позиции робота XY

Сообщение RootAdmin » 06 апр 2012, 17:36

Логично. Но двигаться можно по энкодерам.
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

Re: Определение позиции робота XY

Сообщение elmot » 06 апр 2012, 18:20

Препятствий нету? В помещении нам ничего не загораживает маяки?
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Определение позиции робота XY

Сообщение vassav » 07 апр 2012, 01:16

elmot писал(а):Препятствий нету? В помещении нам ничего не загораживает маяки?

препятствия есть и не исключено что некоторые маяки будут перекрыты.

Как вариант - добавить маяков, чтоб минимум 3 было видно всегда, и тогда, теоретически, можно будет высчитать положение
Аватара пользователя
vassav
 
Сообщения: 155
Зарегистрирован: 26 дек 2011, 11:57
Откуда: СПБ
Skype: vassav_
прог. языки: C#

Re: Определение позиции робота XY

Сообщение Виктор Казаринов » 07 апр 2012, 07:34

vassav писал(а):Есть робот, который получает команды управления от ПК, туда же отсылает видео.
Необходимо определить его местоположение в комнате.
Я раньше занимался 3D реконструкцией окружающего робота пространства. http://roboforum.ru/forum103/topic7143.html#p189676 Левое нижнее изображение - карта глубины видимого в стереокамеру участка. Т.к. вся система работает на основе продукционных правил, то можно добавить к этому программному модулю модуль восстановления всего видимого ранее и в настоящий момент времени пространства, т.е. создать 3D карту местности. Она будет не очень точная, навряд ли с точностью до 1 мм. Но я планировал добавить самообучение, которое будет корректировать знания о 3D карте на основании нового опыта робота. Все это я планировал сделать в рамках проекта RoboBrain, но не смог из-за обстоятельств.
Проект Robosonic RS http://www.aigod.com
Аватара пользователя
Виктор Казаринов
 
Сообщения: 1387
Зарегистрирован: 21 июн 2006, 11:22
Откуда: г. Омск
Skype: victorkazarinov
прог. языки: почти все понемногу
ФИО: Казаринов Виктор Геннадьевич

Re: Определение позиции робота XY

Сообщение RootAdmin » 09 апр 2012, 10:40

elmot писал(а):Препятствий нету? В помещении нам ничего не загораживает маяки?

А маяки можно и на потолок. Единственно - увеличится возможность поймать отражение за счет того что "приемник " будет иметь широкую диаграмму направленности в вертикальной плоскости.
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

Re: Определение позиции робота XY

Сообщение RootAdmin » 09 апр 2012, 15:42

А на ардуине-то алгоритм будет работать.
Получается процедурка в которую передаются координаты трех маяков(x[2], y[2]) и два угла.
Внутри рассчитываются синус - два раза, косинус - тоже два. И возведений в квадрат и извлечение корня присутствует немного.
На выходе - рассчетные координаты.
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

Re: Определение позиции робота XY

Сообщение vassav » 09 апр 2012, 16:39

RootAdmin писал(а):А на ардуине-то алгоритм будет работать.
Получается процедурка в которую передаются координаты трех маяков(x[2], y[2]) и два угла.
Внутри рассчитываются синус - два раза, косинус - тоже два. И возведений в квадрат и извлечение корня присутствует немного.
На выходе - рассчетные координаты.

Ардуину использовать экономически не целесообразно, можно просто аврку поставить, но суть не в этом, координаты можно будет и на центральном сервере обсчитывать, главное эти данные получить
Аватара пользователя
vassav
 
Сообщения: 155
Зарегистрирован: 26 дек 2011, 11:57
Откуда: СПБ
Skype: vassav_
прог. языки: C#

Re: Определение позиции робота XY

Сообщение RootAdmin » 09 апр 2012, 17:39

Эх, времени нету... Тема-то вкусная-интересная. Поищу дома ТСОП. Должны быть где-то..
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

Re: Определение позиции робота XY

Сообщение elmot » 09 апр 2012, 17:59

vassav писал(а):
RootAdmin писал(а):А на ардуине-то алгоритм будет работать.
Получается процедурка в которую передаются координаты трех маяков(x[2], y[2]) и два угла.
Внутри рассчитываются синус - два раза, косинус - тоже два. И возведений в квадрат и извлечение корня присутствует немного.
На выходе - рассчетные координаты.

Ардуину использовать экономически не целесообразно, можно просто аврку поставить, но суть не в этом, координаты можно будет и на центральном сервере обсчитывать, главное эти данные получить

арм надо брать. Цена как у дуины, а мозгов на порядок больше. Вплоть до апаратного fpu.
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Определение позиции робота XY

Сообщение RootAdmin » 10 апр 2012, 10:23

На чем аппаратно делать - вообще не вопрос... То есть дело десятое.
Хочу для начала сделать "взрослый тест" на работоспособность аппаратной части локатора.
То есть - возьму редукторный шаговик типа 28byj-48 Изображение
Водружу ему на ось ТСОП с трубкой.
На тини со светодиодом сделаю маяк - будет просто генерить непрерывно.
На маяке предусмотрю место под ТСОП еще...
Напишу программу для поиска и отслеживания маяка. То есть - вращаем двигатель на оборот вперед - на оборот назад (чтоб провода не накрутить) в цикле, пока не найдем сигнал. Если нашли - продолжаем вращать пока не пропадет. Пропал - вращаем назад, пока опять не пропадет. Оцениваем (выводим) количество шагов для которых виден маяк.
Цель этапа - проверить работоспособность идеи, оценить точность угла.

Затем (второй этап) - добавлю к двигателю датчик "0". Поставлю рядом еще один ТСОП и светодиод инфракрасный для общения с маяками. Добавлю к маяку ТСОП. Буду думать над протоколом...
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

Re: Определение позиции робота XY

Сообщение vassav » 10 апр 2012, 11:27

Есть вопрос технического плана, как можно непрерывно вращать трубку, под которой находиться ИК датчик? Делать скользящий контакт не резон, т.к. помех будет больше чем полезного сигнала
Аватара пользователя
vassav
 
Сообщения: 155
Зарегистрирован: 26 дек 2011, 11:57
Откуда: СПБ
Skype: vassav_
прог. языки: C#

Re: Определение позиции робота XY

Сообщение elmot » 10 апр 2012, 11:33

вращай туда-сюда, а не на полный оборот. Ну и гибкий провод.
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Определение позиции робота XY

Сообщение RootAdmin » 10 апр 2012, 11:37

Не нужно вращать сам ТСОП. В конечной конструкции вижу ТСОП направленным вертикально вверх, под зеркалом. А сама трубка с зеркалом вращается с помощью ШД по принципу автомобильной мигалки.
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

Пред.След.

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

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

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