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

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

Angel71 » 06 апр 2012, 17:09

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

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

RootAdmin » 06 апр 2012, 17:36

Логично. Но двигаться можно по энкодерам.

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

elmot » 06 апр 2012, 18:20

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

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

vassav » 07 апр 2012, 01:16

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

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

Как вариант - добавить маяков, чтоб минимум 3 было видно всегда, и тогда, теоретически, можно будет высчитать положение

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

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

vassav писал(а):Есть робот, который получает команды управления от ПК, туда же отсылает видео.
Необходимо определить его местоположение в комнате.
Я раньше занимался 3D реконструкцией окружающего робота пространства. http://roboforum.ru/forum103/topic7143.html#p189676 Левое нижнее изображение - карта глубины видимого в стереокамеру участка. Т.к. вся система работает на основе продукционных правил, то можно добавить к этому программному модулю модуль восстановления всего видимого ранее и в настоящий момент времени пространства, т.е. создать 3D карту местности. Она будет не очень точная, навряд ли с точностью до 1 мм. Но я планировал добавить самообучение, которое будет корректировать знания о 3D карте на основании нового опыта робота. Все это я планировал сделать в рамках проекта RoboBrain, но не смог из-за обстоятельств.

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

RootAdmin » 09 апр 2012, 10:40

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

А маяки можно и на потолок. Единственно - увеличится возможность поймать отражение за счет того что "приемник " будет иметь широкую диаграмму направленности в вертикальной плоскости.

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

RootAdmin » 09 апр 2012, 15:42

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

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

vassav » 09 апр 2012, 16:39

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

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

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

RootAdmin » 09 апр 2012, 17:39

Эх, времени нету... Тема-то вкусная-интересная. Поищу дома ТСОП. Должны быть где-то..

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

elmot » 09 апр 2012, 17:59

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

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

арм надо брать. Цена как у дуины, а мозгов на порядок больше. Вплоть до апаратного fpu.

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

RootAdmin » 10 апр 2012, 10:23

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

Затем (второй этап) - добавлю к двигателю датчик "0". Поставлю рядом еще один ТСОП и светодиод инфракрасный для общения с маяками. Добавлю к маяку ТСОП. Буду думать над протоколом...

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

vassav » 10 апр 2012, 11:27

Есть вопрос технического плана, как можно непрерывно вращать трубку, под которой находиться ИК датчик? Делать скользящий контакт не резон, т.к. помех будет больше чем полезного сигнала

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

elmot » 10 апр 2012, 11:33

вращай туда-сюда, а не на полный оборот. Ну и гибкий провод.

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

RootAdmin » 10 апр 2012, 11:37

Не нужно вращать сам ТСОП. В конечной конструкции вижу ТСОП направленным вертикально вверх, под зеркалом. А сама трубка с зеркалом вращается с помощью ШД по принципу автомобильной мигалки.


cron
Rambler\'s Top100 Mail.ru counter