Hrvatsko društvo za robotiku - Uvod u robotiku - vježbe

Natjecanje - prekid

Ravno

void RobotLine::loop() {
	static uint32_t target = heading();
	int error = heading() - target;
	go(50 - error, 50 + error);
}

Kako natjerati robota da ide baš ravno? Davanjem naredbe motorima da se kreću istim brzinama ćemo postići da ide ravno, ali baš potpuno ravno ne. Potrebna nam je povratna sprega za korekciju greške. Kretanje robota mora biti takvo da pokušava smanjiti grešku.

U nedostatku boljeg izvora povratne sprege, koristit ćemo kompas. Na početku spremimo željeni smjer, u varijablu "target".

U svakom sljedećem prolazu računamo grešku (varijabla "error") i koristimo ju za korekciju brzina motora. Varijabla je tipa "int", cijeli broj (pozitivan i negativan) jer greška može biti negativna.

Zamislite da je "target" jednak nuli na početku. Ako robot ide previše desno, trenutni "heading()" će rasti, znači i "error" će rasti. Ako ga dodamo desnim motorima, oni će se okretati brže i vraćat će robota natrag u traženi smjer.

Želite li uspjeti u natjecanju koje slijedi, morat ćete koristiti ovu spregu.

Uočite manjkavost gornjeg primjera: sprema početni smjer samo jednom.

Arena

U ovom ćemo se zadatku morati nositi s prekidima linije. Proučite prethodne vježbe i pronađite rješenje kako natjerati robota da ide potpuno ravno.

Izgradit ćemo malo veću arenu nego prošli put.

Rasporedite spojnice prema slici.
Postavite ploče.

Voze se 2 vožnje. Jedna suprotno od kazaljke na satu, jedna u smjeru kazaljke.
Odredite sami startnu točku.

Najbolje ukupno vrijeme pobjeđuje.

Ukoliko je zadatak pretežak, zamijenite jednu ili 2 prazna ploče pločama s ravnom crtom.

3D

Na ovom linku možete pogledati 3D vizualizaciju modela i cijeloga ga otvoriti u Autodesk Fusion 360 programu.

Primjedbe



Projekt "Uvod u robotiku" sufinanciran je iz Europskog socijalnog fonda, poziv "Jačanje kapaciteta organizacija civilnoga društva za popularizaciju STEM-a". Relevantne stranice: Sadržaj vježbe za virtualne radionice isključiva je odgovornost Hrvatskog društva za robotiku.