Автор Тема: Симулация на line tracer  (Прочетена 17199 пъти)

Methuselah

  • Вече знае какво е робот!
  • *****
  • Публикации: 67
    • Профил
Симулация на line tracer
« -: Декември 09, 2007, 11:14:41 pm »
Заедно с 2-ма приятели седнахме да правим проект за училище. Идеята беше да се направят 2 line tracer робота, един от които да си има стандартен алгоритъм, а другия - обучаващ се и да се сравни кой е по-добър. По време на разрабодка осъзнахме че не е нужно да има 2 робота - просто можем да сменим микроконтролера. Последва писане на софтуер. За нормалния алгоритъм беше ясно, но за обучаващия се беше малко по-сложно. Ако си спомняте - писал съм статия за невронни мрежи, и точно това искахме да ползваме. PC-версията беше лесна, но когато се замислих, осъзнах че ще е прекалено сложно да се прехвърли на микроконтролера, главно заради факта, че трябва да се пазят много и добре организирани променливи, което сметнахме за невъзможно за времето което имахме. Затова в последния си вариант, проекта ни беше следния: правим робота, качваме му нормалния алгоритъм, като и за двата правим симулации. Като сравним резултатите на истинския робот и симулацията му бихме могли да направим извод и за точността на симулирания робот. За съжаление някаква грешка (която все още не сме открили) изяде цялото време и не успяхме да завършим проекта на време.
Въпреки това имаме работеща симулация на нормалния робот и именно за това е и темата:
http://www.robotics-bg.com/upload/files/RobotSimulation.rar
Не съм се занимавал да правя GUI, затова ето ги контролите:
P - (place) слага робот на трасето
L - (load) зарежда ново трасе. сложим съм 3 трасета, като могат да се зареждат bmp и jpg
S - (start) старт/пауза
R - (reset) изтрива логовете и връща робота в начална позиция
Del - изтрива всички роботи
D - (draw) превключва дали да се изрисуват логовете. имахме проблеми с FPS-а и затова добавихме тази функция

Алгоритъма е изключително прост. Робота може да завива по 2 начина - едното колело спира, а другото продължава; или 2те колела се въртят в различни посоки. Когато само краен сензор засича линията робота се завърта по този начин, иначе завива нормално. Когато изпусне линията (никой сензор не я засича) се връща назад.
Робота спира когато всичките 5 сензора засичат линията.

Симулацията преизчислява позицията на робота през 250 милисекунди реално време и върви с 2х скороста на реалното време (ако съм качил грешна версия може и да е 6х).

Ако някой иска, може да му направя симулация за нещо подобно като имам вече това за основа.  ;)

На тези които са прочели целия пост - браво! и очаквам коментари  :D

mohaha

  • Заклет Роботостроител
  • *****
  • Публикации: 233
    • Профил
Симулация на line tracer
« Отговор #1 -: Декември 10, 2007, 01:01:04 am »
Аз прочетох поста  :clap:. Какво печеля? :-D
Интересна програма!  :) А могат ли да се правят други трасета и с коя програма и как?

ПП. Между другото как я прави тази програма?
Страхил, 18 год. гр. Монтана

DataMatrix

  • Заклет Роботостроител
  • *****
  • Публикации: 308
    • Профил
    • http://datamatrix-bg.net/
Симулация на line tracer
« Отговор #2 -: Декември 10, 2007, 01:11:28 am »
Малко е късно, за това не съм прочел целият пост. Програмата е правена на GameMaker, Браво! Мислил съм да пиша подобна програма на длефи, но нямам време да се занимавам с off-schedule дейности. Като имам малко повече време ще я разгледам по-обстойно и ще допрочета поста изцяло.

Поздрави!
Димитър Бояджиев, гр. София

Borislav

  • Administrator
  • *****
  • Публикации: 1010
    • Профил
    • http://robotics-bg.com
Симулация на line tracer
« Отговор #3 -: Декември 10, 2007, 01:06:27 pm »
На завоите симулацията малко "маже", но иначе на правите е реалистично... Всъщност, Line-Tracer-ите са доста бързи машинки. Мисля, че времето за преодоляване на определеното трасе, ще бъде много по-малко! Браво, добре изглежда!
Роботиката не е хоби - тя е начин на живот!

Methuselah

  • Вече знае какво е робот!
  • *****
  • Публикации: 67
    • Профил
Симулация на line tracer
« Отговор #4 -: Декември 10, 2007, 05:53:55 pm »
Цитат на: "mohaha"
Аз прочетох поста  :clap:. Какво печеля? :-D
Интересна програма!  :) А могат ли да се правят други трасета и с коя програма и как?

ПП. Между другото как я прави тази програма?


Какво печелиш? Ми едно браво както си пише в поста  :D
Могат да се правят трасета с която и да е програма, която запаметява в bmp и jpg формати.

Цитат на: "Borislav"
На завоите симулацията малко "маже", но иначе на правите е реалистично... Всъщност, Line-Tracer-ите са доста бързи машинки. Мисля, че времето за преодоляване на определеното трасе, ще бъде много по-малко! Браво, добре изглежда!


В какъв смисъл "маже". По принцип се върти или около собствената си ос, или около едно от двете колела.
Що се отнася до скоростта - смятал съм го за 6 см/сек, като всички мерки са от истинския ни робот. За сравнение - шасито е от капак на кутийка от диск.

Borislav

  • Administrator
  • *****
  • Публикации: 1010
    • Профил
    • http://robotics-bg.com
Симулация на line tracer
« Отговор #5 -: Декември 10, 2007, 07:03:30 pm »
Цитат на: "Methuselah"
В какъв смисъл "маже".


Няма значение, доволно реалистично е. :) Надявам се резултатът при истинските роботи да е същият! Успех!
Роботиката не е хоби - тя е начин на живот!

DataMatrix

  • Заклет Роботостроител
  • *****
  • Публикации: 308
    • Профил
    • http://datamatrix-bg.net/
Симулация на line tracer
« Отговор #6 -: Декември 11, 2007, 09:31:08 am »
@Tar & Methuselah:
Подобни поредици от постове не искам да виждам:
Цитат
Цитат на: "tar"
Да не кажеш,че съм ти откраднал идеята!И моя робот (който още нямам) шасито е от долната част на кутия от диск. :twisted:

Цитат на: "Methuselah"
Цитат на: "tar"
Да не кажеш,че съм ти откраднал идеята!И моя робот (който още нямам) шасито е от долната част на кутия от диск. :twisted:

Аааа... наща е от горната част  :)

Цитат на: "tar"
Да де,но като прочетеш горна нормално да се сетиш и за долна,но аз не съм го копирал тва,а съм се сетил още от началото като започнах да права шасито.

Цитат на: "Methuselah"
Цитат на: "tar"
Да де,но като прочетеш горна нормално да се сетиш и за долна,но аз не съм го копирал тва,а съм се сетил още от началото като започнах да права шасито.

Спокойно, никого не съм обвинявал.  ;)

Защо трябва да предупреждавате, че не сте откраднали идеята на другия?! Какъв е смисъла? Това ми припомня поговорката "Гузен негонен бяга", но мисля че това не е случая.
2ма души - единият в китай, другият в америка открили топлата вода едновременно. Кой от кой е гледал? НИКОЙ! За това да не стигаме до подобни разправии (в същност разправия нямаше, ама малко offtopic отидоха нещата). Като ви станат еднакви и като се видите ще кажете: "Ейй, колко прилича на мойта!", а не да върсите вина у другия!
Това е. Айде, че и аз се отдалечих твърде много от темата ;)
Димитър Бояджиев, гр. София