Ovládání AVbot-a, snímání obrazu

AVbot je umístěný v laboratoři K132 (budova E, první patro) v ochranném krytu u jednoho z větších robotů, ovládá se z vedlejšího PC. Čas na něm si zarezervujte přes systém odevzdávání úloh (odkaz "Rezervace" vpravo nahoře). Pro jeho spuštění postupujte následovně:

  1. stáhněte si parametry robota robotAVbot.m, opravený bbwaitforready.m a funkci pro snímání vcapg2.dll, oboje umístěte do pracovního adresáře nebo do cesty; snímání můžete otestovat skriptem testcap.m
  2. zapněte zdroj (spodní krabice vedle monitoru, vypínač vpředu)
  3. zapněte řídící jednotku MARS (horní krabice vedle monitoru, vypínač vzdadu)
  4. přidejte cestu k rozhraní robota:
    addpath('\\k333\appl\robots\bluebot\matlab\bin');
  5. robota inicializujte příkazy:
    r = bbopen('AVbot'); r = bbinit(r);
    cardnum = vcapg2([],0);
  6. ... práce s robotem
  7. ukončete spojení:
    bbclose(r);
  8. vypněte řídící jednotku MARS
  9. vypněte zdroj

AVbot

zdroj

MARS

Upozornění: nezapomínejte vypnout zdroj. Robot není imunní vůči zamotání kabelů vedoucích k otočnému stolku a ke kameře – řiďte robota tak, aby se kabely nezamotaly, nevytrhly z konektorů nebo nadměrným tahem nepohnuly kamerou (to by vám vneslo chybu do měření).

Potřebné funkce v Matlabu

r = bbopen('AVbot') Otevření spojení s robotem, vrací handle r používané ve všech dalších příkazech.
r = bbinit(r) Uvede robota do počáteční pozice (hardhome, softhome), vrátí v r parametry robota.
bbclose(r) Uzavře spojení s robotem.
xirc = bbdegtoirc(r, x) Převod pozice x = [ mm stupně ] do jednotek robota r.
x(1) udává pozici posuvného stolku v intervalu <-100mm,90mm>
x(2) udává natočení v intervalu <-180°,180°>.
bbmoveirc(r, xirc) Příkaz k pohybu do pozice xirc získane funkcí bbdegtoirc(r,x).
stat = bbisready(r) Dotaz na připravenost robota: 1 ... připraven, 0 ... ještě nedokončil předchozí příkazy.
cardnum = vcapg2([],0); První spuštění nebo po clear all: Inicializace kamery.
im = vcapg2([],0) Každé následující spuštení: vratí obraz z bufferu jako im.
Obraz v bufferu nemusí být aktuální, jistější je zavolat funkci 2-3× a použít poslední obraz.

Ovládání přímo z jednotky MARS

Pro naši úlohu by mělo stačit ovládání robota z Matlabu. Nicméně pohyb robota lze ovládat i přímo z jednotky MARS. Posuv řídí motor A, otáčení motor B. Zadáním příslušného písmene a hodnoty posunutí/natočení se provede požadovaný pohyb. Pro nouzové zastavení robota můžete použít tlačítko MOTION STOP.