roboforum.ru

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

Система навигации для домашнего робота

Re: Система навигации для домашнего робота

citizen » 17 янв 2015, 01:28

Я хоть и не автор конструкции, укажу недостатки камеры.
Распознавание QR-кодов - достаточно ресурсоемкая операция, так что ее проблематично реализовать на автономном роботе.
Камера не работает в темноте.
Если освещенности не хватает, то FPS камеры падает, и становится проблематично получать QR-коды с вращающейся камеры - они будут смазаны.
Как передавать данные с вращающейся камеры на компьютер? Я не уверен, что USB сигналы хорошо пройдут через щетки.
Камера должна иметь большое разрешение и большое угловое поле (более 80 градусов), чтобы обнаруживать метки на расстоянии хотя бы 3 метров.
Большое разрешение - опять же нагрузка на процессор.

Re: Система навигации для домашнего робота

Vladimat » 17 янв 2015, 01:51

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

Re: Система навигации для домашнего робота

Scorpio » 17 янв 2015, 02:48

Можно и туда-сюда вращать. Но, главный враг камеры - это не равномерное, меняющееся освещение. Да и врядли метки будут эстетично выглядеть на потолке.

Re: Система навигации для домашнего робота

stiger » 19 янв 2015, 20:51

Интересный вариант (в принципе). Когда то глобально думал так же сделать, но не хватило духу монтировать светодиоды по квартире )).
Но идея стоящая.

Re: Система навигации для домашнего робота

Vladimat » 19 янв 2015, 23:58

Итак, как обещал, проведено небольшое упражнение по выведению формул навигации по маячкам. Задачу поручил сыну :-), и вот что он вывел.
Итак,
Дано:
1) три точки (A,B,C) с известными координатами ((XA;YA), (XB;YB), (XC;YC));
2) два угла (AB, BC), под которыми каждая пара точек видна из искомой

Найти:
Координаты искомой точки D (XD, YD).

Для решения нам понадобится теорема о вписанном угле и её следствия (https://ru.wikipedia.org/wiki/%D0%92%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D1%83%D0%B3%D0%BE%D0%BB).
"Вписанные углы, опирающиеся на одну дугу, равны." - это очень важно и означает, что все точки, из которых точки А и B видны под одним углом AB находятся на дуге окружности, проходящей через A и B. То есть, как только мы измерили угол AB мы сразу же поняли, что мы находимся где-то на этой окружности. И чтобы найти конкретную точку на этой окружности остаётся замерить ещё один угол и построить пересечение окружностей. В этом, собственно и вся задача - по каждому из углов построить окружность и найти точку их пересечения, всё!

Дальше идёт несколько страниц выкладок (в популярной книжке предлагается в таких случаях в этом месте писать "очевидно что" :-) ) и вот итоговые формулы:
Код: Выделить всёРазвернуть
XD = XA + 2T*(YR1-YR2)
YD = YA + 2T*(XR2-XR1)

где

T = ((YA-YR1)*(XR1-XR2)+(XA-XR1)*(YR2-YR1)) / ((YR1-YR2)^2 +(XR2-XR1)^2);

XR1 = (XA + XB + ctg(AB)*(YB-YA))/2;
YR1 = (YA + YB + ctg(AB)*(XA-XB))/2;
XR2 = (XA + XC + ctg(AC)*(YC-YA))/2;
YR2 = (YA + YC + ctg(AC)*(XA-XC))/2;


Надеюсь, нигде не опечатался. :-)

Важные выводы, которые надо учесть.
1) Углы надо мерить с учётом знака. Т.е По часовой стрелке если А левее B, то AB - положительный, а BA - отрицательный. А то окажетесь по другую сторону точек A и B.

2) Информации по трём точкам не достаточно. Как только робот окажется на окружности, проходящей через все три точки A, B, C, так он не сможет определить свою координату. Сможет только сказать что он где-то на этой окружности. С этой окружности все точки видны под одинаковыми углами. Технически это можно решить разными способами, важно знать об этом.

3) Следствие из 2). Если у вас прямоугольная комната и вы разместите 3 или 4 маячка по углам - в углах робот не сможет понять (без дополнительной информации) где он находится. Только сможет понять что он где-то на окружности.

4) Следствие из 2). Если размещать 4 маячка, то надо их размещать так, чтобы они не лежали на одной окружности.

Как видим, формулы получились громоздкими, но не ресурсоёмкими. Кроме вычисления котангенса там ничего не нагрузит процессор.

Re: Система навигации для домашнего робота

RootAdmin » 20 янв 2015, 00:19

Я ж привел формулы в таблице офисной. :) прямо там и считает. И атмега справлялась...

Re: Система навигации для домашнего робота

Vladimat » 20 янв 2015, 00:31

RootAdmin писал(а):Я ж привел формулы в таблице офисной. :) прямо там и считает. И атмега справлялась...

Ха! Ты знаешь, я сейчас снова глянул в твою таблицу и только сейчас стал понимать о чём она :-) Пока сам задачу не промозговал - открыл, ничего не понял и закрыл :-)

Re: Система навигации для домашнего робота

sned » 20 янв 2015, 12:42

Спасибо за приведенные формулы, но пока у меня есть вопросы.Завел формулы в компьютер и считает неверные результаты.Где то ошибка.
В комментариях разговор был о углах АВ и ВС.В формуле же фигурирует угол АС.
И 2T это 2*T?
Пока не могу сказать какой метод расчёта быстрее мой(путем перебора) или напрямую по формуле.
И извиняюсь в "офисной таблице" с первого раза совсем ничего не понятно.

Re: Система навигации для домашнего робота

TedBeer » 20 янв 2015, 12:53

Еще мысль про катафоты:
Если светить двумя лазерами, скажем красным и зеленым, то катафоты разного цвета будут по разному отражать. Например "съедать" красный, но отражать зеленый. Таким образом можно набирать катафоты из полосок или квадратиков и получать этакий бар/QR код, который можно прочитать сканированием лазером. Плюс к тому отфильтруются всякие отражающие поверхности.

Re: Система навигации для домашнего робота

Vladimat » 20 янв 2015, 13:42

sned писал(а):Спасибо за приведенные формулы, но пока у меня есть вопросы.Завел формулы в компьютер и считает неверные результаты.Где то ошибка.
В комментариях разговор был о углах АВ и ВС.В формуле же фигурирует угол АС.
И 2T это 2*T?
Пока не могу сказать какой метод расчёта быстрее мой(путем перебора) или напрямую по формуле.
И извиняюсь в "офисной таблице" с первого раза совсем ничего не понятно.

Давай вечером перепроверю, либо я ошибся при перепечатывании, либо тот, кто выводил. 2T это 2*T. Формулы действительно про угол AC, в принципе, это без разницы какие 2 пары точек брать A-B и B-C или A-B и A-C или B-C и A-С.

Добавлено спустя 3 минуты 40 секунд:
TedBeer писал(а):Еще мысль про катафоты:
Если светить двумя лазерами, скажем красным и зеленым, то катафоты разного цвета будут по разному отражать. Например "съедать" красный, но отражать зеленый. Таким образом можно набирать катафоты из полосок или квадратиков и получать этакий бар/QR код, который можно прочитать сканированием лазером. Плюс к тому отфильтруются всякие отражающие поверхности.

Если лазером, то в катафот ещё надо попасть сначала лазером. И отдельно попасть красным лазером в красный, а зелёным - в зелёный.

Re: Система навигации для домашнего робота

RootAdmin » 20 янв 2015, 13:50

Vladimat писал(а):
RootAdmin писал(а):Я ж привел формулы в таблице офисной. :) прямо там и считает. И атмега справлялась...

Ха! Ты знаешь, я сейчас снова глянул в твою таблицу и только сейчас стал понимать о чём она :-) Пока сам задачу не промозговал - открыл, ничего не понял и закрыл :-)

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

Re: Система навигации для домашнего робота

Vladimat » 20 янв 2015, 14:28

RootAdmin писал(а):
Vladimat писал(а):
RootAdmin писал(а):Я ж привел формулы в таблице офисной. :) прямо там и считает. И атмега справлялась...

Ха! Ты знаешь, я сейчас снова глянул в твою таблицу и только сейчас стал понимать о чём она :-) Пока сам задачу не промозговал - открыл, ничего не понял и закрыл :-)

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

Скажу тебе честно, там сложно понять. Часть формул в ячейках, что-то осталось у тебя в уме. Если бы ты вывел формулы отдельно, было бы всем проще и мы бы сравнили наши формулы.

Re: Система навигации для домашнего робота

RootAdmin » 20 янв 2015, 16:44

Ээх. Искал код - но видно либо удалил, либо куда-то сунул. Это ж минимум год назад было.
Вот что-то похожее. http://www.raai.org/about/persons/karpo ... doopr2.htm Я как раз и шел по пути определения пересечения окружностей.

Re: Система навигации для домашнего робота

Vladimat » 20 янв 2015, 17:49

Хорошая ссылка, но что-то этот доц., к.т.н. не довёл задачу до конца - систему уравнений (1) ниасилил. К тому же я не понял почему при двух неизвестных ( XD и YD в моём именовании, Xm и Ym в его) у него система из трёх уравнений. А ещё он не учитывает знак угла, из-за этого у него лишние окружности.

Re: Система навигации для домашнего робота

Scorpio » 20 янв 2015, 18:33

Давным давно придумал и опробовал систему навигации в комнате, которая успешно прошла испытания. Принцип состоял в следующем: ПК, в котором была карта комнаты, управлял лазерной указкой, установленной примерно по центру комнаты. На мобильном роботе была установлена беспроводная камера, направленная вертикально на потолок. ПК вычислял следующий шаг маршрута, выставлял лазерную точку на потолке и гнал робота, управляя им по ВТ, так, чтобы точка оказалась в середине кадра, передаваемого камерой. Этакая погоня за зайчиком.
Последний раз редактировалось Scorpio 20 янв 2015, 18:49, всего редактировалось 1 раз.


Rambler\'s Top100 Mail.ru counter