Автор Тема: Хай-тек Line Tracer  (Прочетена 50730 пъти)

Vexorian

  • Заклет Роботостроител
  • *****
  • Публикации: 305
    • Профил
Хай-тек Line Tracer
« Отговор #15 -: Септември 18, 2009, 07:39:32 pm »
Идея е ама не си заслужава, тъй като ще отнеме доста време за настройка и ресурси. Най-лесно за Linetracer е да се фиксира ръчно... робота няма да катери планини все пак.

Извън темата: Георги акселометър не се пише с 'ц' ... управлявам не се пише с 'о' 13 грешки в един пост...
Викторио Семир Ел Хаким, София 20г.
Аналогова/Цифрова електроника, програмиране
I\'m watching your ass! :D

yasko

  • Administrator
  • *****
  • Публикации: 484
    • Профил
Хай-тек Line Tracer
« Отговор #16 -: Септември 23, 2009, 11:16:29 pm »
Пробвха да закрепя основната  платка върху платформата. Ето резултата:

Ясен Паунски,  гр.София, 39 г.

Vexorian

  • Заклет Роботостроител
  • *****
  • Публикации: 305
    • Профил
Хай-тек Line Tracer
« Отговор #17 -: Септември 24, 2009, 01:18:20 am »
Ехаааа.. Много добре изглежда  :)  Ама малко под-ъгъл камерата май? Най-много ми харесва обаче, как е монтиран модула на платформата, която "уж" е за малки неща, ама всъщност става за всичко! :)
Викторио Семир Ел Хаким, София 20г.
Аналогова/Цифрова електроника, програмиране
I\'m watching your ass! :D

yasko

  • Administrator
  • *****
  • Публикации: 484
    • Профил
Хай-тек Line Tracer
« Отговор #18 -: Септември 25, 2009, 09:40:29 am »
Да, платката пасна доста добре. Модула с оптичния сензор в момента е под прав ъгъл спрямо нея, ще трябва да се наколони малко надолу за да гледа пистата, но тове ще се установи при тестовете. Измерих консумацията около 200mA при 5V, което е доста прилично. Това в ненатоварен режим след като линукса е заредил. За управление на двигателите ще използвам този Н-мост. Чудя се дали да го вържа директно към големия процесор или да ползвам по-малък микроконтролер за посредник. В първия случай ще ми трябва драйвер за линукса за да мога да управлявам директно двигателите с PWM. Във втория вариант мисля да направя връзка по I2C между двата процесора и системата ще стане по-гъвкава, но ще ми трябва допълнителна платка.
Ясен Паунски,  гр.София, 39 г.

Vexorian

  • Заклет Роботостроител
  • *****
  • Публикации: 305
    • Профил
Хай-тек Line Tracer
« Отговор #19 -: Септември 25, 2009, 02:18:57 pm »
Втория е по-удачен според мен, защото можеш да добавиш още неща към управлението, например изчисляване на скоростта, ъгъла.. и т.н. Така се концентрираш върху главната програма в процесора и не се занимаваш с други неща :) А и едва ли ще е много голяма платката за един Атмега СМД...
Викторио Семир Ел Хаким, София 20г.
Аналогова/Цифрова електроника, програмиране
I\'m watching your ass! :D

Alternative

  • Вече знае какво е робот!
  • *****
  • Публикации: 48
    • Профил
Хай-тек Line Tracer
« Отговор #20 -: Септември 25, 2009, 04:46:21 pm »
И аз гласувам да го направиш чрез посредник. Няма да го усложни, а пък така ще се образува отделно, специализирано модулче. Мислех относно алгоритъма и за следене на линия- според мен по-важно ще бъде намирането на центъра на линията (т.е. средата м/у двата ръба ). Така ще се образуват "точки", които роботът трябва да посети. Също така ще може да се свържат например n-тата точка с n+10, да се изследва, дали няколко от съседните точки се намират в толерансна далечина от тази линия. Ако всичко е напред- получава се реално траектрията на робота, ако ли пък има центри на линията, намиращи се отдалечено (в случай че пистата е по-трудна и с променлива дебелина/ някакво странно отражение ) то се прави същото по-горно изследване за например вектора [n,n+5] или където е намерен проблема.



Като сините точки са средите на линията (което реално ще са в пъти повече), а червената линия траекторията на робота. Също трябва да се има в предвид това, че след завиване, ъгълът под който се гледат далечните точки ще бъде изменен и чрез настройване на толеранса, могат дори да се преминат заблуждаващите перпендикулярни линии, без да се отклонява от правилния път.
Така ще се избегне и деформирането на изображението от перспективата (не че за такова малко раз-е ще се проличи).

П.П. Каква е височината на центъра на камерата(предполагам 70-80mm), за да се помисли под какъв ъгъл е хубаво да бъде сложена (ако е под 90' спрямо хорисонталата както е сега ще се вижда прекалено много ненужна информация т.е. полезрението ще бъде ограничено). При ъгъл от 45' и 70 мм височина горния ъгъл на камерата ще вижда 192мм напред, а долния 24 мм пред робота (ако разбира се полезрението на камерата е 52'). При 90' blind зоната ще е на до 144 мм пред робота. Т.е. трябва да кара по памет.

edit : Отностно алгоритъма се замислих, че няма смисъл на се цепи кадъра на части ( от н до н+и ). По-добре да се пусне 1 рекурсивна ф-я (с по-горните условия) от най-горния до най-долния ред в търсенето само на първия вектор. Така или иначе докато го измине, ще е "дошъл" следващият кадър и отново ще се промени траекторията .
Даниел Ангелов, гр. София

yasko

  • Administrator
  • *****
  • Публикации: 484
    • Профил
Хай-тек Line Tracer
« Отговор #21 -: Септември 28, 2009, 12:37:37 pm »
Идеята за алгоритъм е добра и ще се върна на нея, като се започне по-сериозна работа по самия софтуер. Разбира се който има идеи може да ги споделя. Сега съм се заел с по-прозаичните технически задачи, като управлението на моторите и комуникацията с робота. Убедихте ме че моторите трябва да се управляват с посредник, така че ще сложа един ATMEGA88, който да си приказва по I2C с по-големия му събрат. От страна на uClinux -a има софтуерна подръжка за I2C, така че не очаквам проблеми.
Трябва ми също канал за комуникация, по който да могат да се пращат команди и програми от PC, т.е комуникация в реално време.  Платката с Blackfin процесора има изведена серийна конзола, по която човек може да си приказва с линукса и мисля да я прехвърля безжично чрез два ZigBee модула до PC. С други думи ще заменя кабела с безжична връзка, която като цяло няма да е много бърза, но за начало стига.  Подобна система използвахме при мобилния робот и работеше добре. Всъщност за да си спестя запояване и правене на платки, ще използвам като донор на части мобилния робот, там има точно платка с ATMEGA88 и ZigBee модулче. Мился че ще мога да я сместя отзад на робота. Има вариант за по високоскоростна комуникация чрез Wireless адаптор, закачен към LAN интерфейса на основната платка, но при този вариант консумацията ще скочи доста, а има и други проблеми.

П.С Височината на камерата в момента е 75мм. Въпроса с положението на камерата предстои за анализ, но ще трябват и малко опитни дани - реални снимки.
Ясен Паунски,  гр.София, 39 г.

sv_shady

  • Administrator
  • *****
  • Публикации: 636
    • Профил
Хай-тек Line Tracer
« Отговор #22 -: Септември 28, 2009, 04:25:30 pm »
Ами идеята с центъра на линията е интересна, обаче когато има залъгващи места по пистата траекторията се изменя ненужно и се губи време. Моята идея е следната:
1. картинката се ротира спрямо ъгъла на камерата
2. обхожда се от горе надолу и се намира най-далечната линия
3. намира се най-краткия път по линията до долната централна част на картинката
Малко графове и работа с масиви, така че Яска, чакам само реални картинки, защото така и така сега имам една седмица мотаене :)
Imagination is the only limit.......

Светлин Пенков
София / Рединг, Великобритания

Vexorian

  • Заклет Роботостроител
  • *****
  • Публикации: 305
    • Профил
Хай-тек Line Tracer
« Отговор #23 -: Септември 28, 2009, 05:42:04 pm »
Защо не SPI, по-бърз е от I2C? И LIN би трябвало да стане.
Викторио Семир Ел Хаким, София 20г.
Аналогова/Цифрова електроника, програмиране
I\'m watching your ass! :D

sv_shady

  • Administrator
  • *****
  • Публикации: 636
    • Профил
Хай-тек Line Tracer
« Отговор #24 -: Септември 28, 2009, 07:16:29 pm »
Мисля, че няма драйвер за SPI, а и едва ли ще има толкова голямо значение, защото трансфера на информация няма да е голям.
Imagination is the only limit.......

Светлин Пенков
София / Рединг, Великобритания

yasko

  • Administrator
  • *****
  • Публикации: 484
    • Профил
Хай-тек Line Tracer
« Отговор #25 -: Септември 28, 2009, 09:56:35 pm »
Всъщност има драйвер и за SPI, но I2C иска само 2 жици, a и в случая трансфера между двата процесора няма да е голям. Освен това настройките на CMOS сензора се правят чрез I2C така, че ще е по удобно всичко да е на един тип шина.
Нека направим една оценка на трансфера. Aко приемем че за управлението на всеки мотор ни трябват по 2 байта и да кежем още 4 байта за допълнителни праметри стават общо 8 байта в един пакет. Да приемем че информацията се обновява 50 пъти в секунда, което ще е достатъчно бързо, тогава цели трансфер излиза 400 bytes/sec - стойност, която не е никакъв проблем за I2C.

П.С.  Светльо, реални снимки се надявам да може да изкраме в сряда на сбирката, ако няма проблеми.
Ясен Паунски,  гр.София, 39 г.

zoro1

  • Global Moderator
  • *****
  • Публикации: 610
    • Профил
    • http://www.zoro1.com
дамм и снимкии
« Отговор #26 -: Октомври 02, 2009, 11:11:07 pm »
За съжаление поради / заради немаливост
{моя} снимките са само две,шот другото са видоклипове.


и тук зареждането на Линукс ядрото ,предавано по Зиг Бии


http://www.youtube.com/watch?v=zTMEZFAMmNs&feature=player_embedded


...Великите нации  се държат като гангстери,а малките като проститутки...
И.Несторов
Skype:Zorro1430

sv_shady

  • Administrator
  • *****
  • Публикации: 636
    • Профил
Хай-тек Line Tracer
« Отговор #27 -: Октомври 03, 2009, 12:42:12 am »
Яска, докъде докарахте, има ли реални снимки, на които да се нахвърлям :)
Imagination is the only limit.......

Светлин Пенков
София / Рединг, Великобритания

yasko

  • Administrator
  • *****
  • Публикации: 484
    • Профил
Хай-тек Line Tracer
« Отговор #28 -: Октомври 03, 2009, 09:10:22 am »
Реални снимки още няма. За съжаление. Налегна ме малко работа, но се работи по въпроса.
Ясен Паунски,  гр.София, 39 г.

yasko

  • Administrator
  • *****
  • Публикации: 484
    • Профил
Хай-тек Line Tracer
« Отговор #29 -: Октомври 06, 2009, 04:17:12 pm »
Благодаря на zoro1, за качените снимки, ще кача и някоя друга като остана малко врмеме. Както се вижда, отзад закрепихме платката със ZigBee модула и един ATMEGA88.  ZigBee модула е на фирмата Dig  (MaxStream), продават ги в Комет. Този дори e PRO версия и му дават една  миля обхват  на открито.  В момента модула е вързан директно към серийната конзола на BlackFin процесора.  От страната на компютъра има същия модул вързан през USB конвертор. Реално в момента имаме директна връзка с главната палтка, без никакви кабели и след като се пусне захранването на конзолата се наблюдава процеса на зареждане на линукса. Интересното е че тези ZigBee модули закачат много бързо помежду си, следа като се пусне захранването.
Сега остава да се изгради връзка по I2C между големия и малкия процесор и да се монтира платката с двата H-моста.
Ясен Паунски,  гр.София, 39 г.