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

Наше хобби — конструировать и программировать.
Демонстрация готовых роботов и устройств построенных своими руками.

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

Сообщение citizen » 17 янв 2015, 01:28

Я хоть и не автор конструкции, укажу недостатки камеры.
Распознавание QR-кодов - достаточно ресурсоемкая операция, так что ее проблематично реализовать на автономном роботе.
Камера не работает в темноте.
Если освещенности не хватает, то FPS камеры падает, и становится проблематично получать QR-коды с вращающейся камеры - они будут смазаны.
Как передавать данные с вращающейся камеры на компьютер? Я не уверен, что USB сигналы хорошо пройдут через щетки.
Камера должна иметь большое разрешение и большое угловое поле (более 80 градусов), чтобы обнаруживать метки на расстоянии хотя бы 3 метров.
Большое разрешение - опять же нагрузка на процессор.
OpenSimpleLidar - проект простого самодельного лидара.
Аватара пользователя
citizen
 
Сообщения: 369
Зарегистрирован: 12 окт 2008, 12:40
Откуда: Красногорск, Подмосковье

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

Сообщение Vladimat » 17 янв 2015, 01:51

Всё верно про нагрузку на процессор. Передавать сигнал с вращающейся камеры можно синим зубом или WIFI. Либо вращать зеркало, а камеру держать неподвижно в зенит.
Vladimat
 
Сообщения: 434
Зарегистрирован: 04 ноя 2014, 01:57

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

Сообщение Scorpio » 17 янв 2015, 02:48

Можно и туда-сюда вращать. Но, главный враг камеры - это не равномерное, меняющееся освещение. Да и врядли метки будут эстетично выглядеть на потолке.
Аватара пользователя
Scorpio
 
Сообщения: 2681
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

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

Сообщение stiger » 19 янв 2015, 20:51

Интересный вариант (в принципе). Когда то глобально думал так же сделать, но не хватило духу монтировать светодиоды по квартире )).
Но идея стоящая.
stiger
 
Сообщения: 14
Зарегистрирован: 13 янв 2015, 17:51
Откуда: г. Сланцы. Ленинградская обл.
прог. языки: Sinclair basic ), VB, C#, FBD, LD.
ФИО: Александр.

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 маячка, то надо их размещать так, чтобы они не лежали на одной окружности.

Как видим, формулы получились громоздкими, но не ресурсоёмкими. Кроме вычисления котангенса там ничего не нагрузит процессор.
Vladimat
 
Сообщения: 434
Зарегистрирован: 04 ноя 2014, 01:57

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

Сообщение RootAdmin » 20 янв 2015, 00:19

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

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

Сообщение Vladimat » 20 янв 2015, 00:31

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

Ха! Ты знаешь, я сейчас снова глянул в твою таблицу и только сейчас стал понимать о чём она :-) Пока сам задачу не промозговал - открыл, ничего не понял и закрыл :-)
Vladimat
 
Сообщения: 434
Зарегистрирован: 04 ноя 2014, 01:57

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

Сообщение sned » 20 янв 2015, 12:42

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

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

Сообщение TedBeer » 20 янв 2015, 12:53

Еще мысль про катафоты:
Если светить двумя лазерами, скажем красным и зеленым, то катафоты разного цвета будут по разному отражать. Например "съедать" красный, но отражать зеленый. Таким образом можно набирать катафоты из полосок или квадратиков и получать этакий бар/QR код, который можно прочитать сканированием лазером. Плюс к тому отфильтруются всякие отражающие поверхности.
Аватара пользователя
TedBeer
 
Сообщения: 1129
Зарегистрирован: 08 авг 2012, 00:38
Откуда: Нидерланды, Алмере
Skype: edwbes
ФИО: Эдуард

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 код, который можно прочитать сканированием лазером. Плюс к тому отфильтруются всякие отражающие поверхности.

Если лазером, то в катафот ещё надо попасть сначала лазером. И отдельно попасть красным лазером в красный, а зелёным - в зелёный.
Vladimat
 
Сообщения: 434
Зарегистрирован: 04 ноя 2014, 01:57

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

Сообщение RootAdmin » 20 янв 2015, 13:50

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

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

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

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

Сообщение Vladimat » 20 янв 2015, 14:28

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

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

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

Скажу тебе честно, там сложно понять. Часть формул в ячейках, что-то осталось у тебя в уме. Если бы ты вывел формулы отдельно, было бы всем проще и мы бы сравнили наши формулы.
Vladimat
 
Сообщения: 434
Зарегистрирован: 04 ноя 2014, 01:57

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

Сообщение RootAdmin » 20 янв 2015, 16:44

Ээх. Искал код - но видно либо удалил, либо куда-то сунул. Это ж минимум год назад было.
Вот что-то похожее. http://www.raai.org/about/persons/karpo ... doopr2.htm Я как раз и шел по пути определения пересечения окружностей.
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

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

Сообщение Vladimat » 20 янв 2015, 17:49

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

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

Сообщение Scorpio » 20 янв 2015, 18:33

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

Пред.След.

Вернуться в Наши проекты

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

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