V priebehu leta 2015 sme v rámci príprav na experimentovanie s bin-picking aplikáciami doplnili výbavu Motomana SDA10F o dvoj a trojprstové elektrické grippery Schunk PG70 a EZN64. Prvotná integrácia, čiže montáž, kabeláž a vývoj driverov prebehla úspešne a už koncom augusta bolo možné popri ovládaní pohybu robota riadiť z ROS aj obidva efektory. Po prvotnom nadšení tohto integrátorského úspechu sme ale časom narazili na jeden praktický problém, ktorý náš „ROS variant“ so sebou prinášal. Doplnením gripperov sme sa síce výrazne posunuli k realizácii prvej bin-picking aplikácie ale na druhej strane sme výrazne obmedzili využitie Motomana v rámci bežnej výuky. Problémom bolo totiž chýbajúce rozhranie, ktoré by umožňovalo ovládať grippery priamo z pendantu. Študenti počas hodín síce dokázali ovládať a programovať pohyby robota ale keďže z pendantu nemali dosah na riadenie gripperov, nedokázali programovať akékoľvek zmysluplné manipulačné apliikácie. Ak sme teda chceli zabrániť demontáži gripperov, museli sme nájsť riešenie ako tieto dva z hľadiska riadenia nezávislé systémy prepojiť.
Obidva grippery sú ovládané prostredníctvom sérivých rozhraní, v prípade dvojprstového PG70 je to RS232 a trojprstové EZN64 je pripojené priamo cez USB. Keďže na strane pendantu boli jediným použiteľným interfacom klasické 24V digitálne výstupy, bolo potrebné nájsť spôsob ako previesť 24V logiku na príkazy gripperov posielané po sériovej linke. A spraviť to čo najrýchleišie, najlacnejšie a z hľadiska užívateľa čo najjednoduchšie na obsluhu…..Priam ideálna jednoúčelová aplikácia pre platformy typu Raspberry PI.
V našom prípade sme použili klasické Pi model B ku ktorej sme stiahli Raspbian distribúciu s predinštalovaným ROS Indigom. Download spolu s flashovaním SD karty síce trval dve hodiny ale výsledkom bol plnohodnotný embedded počítač s ROS, štyrmi USB konektormi, pripojený na internet a navyše umožnujúci jednoduchým spôsobom spracovávať signály z digitálnych vstupov. Nalsedoval download našich schunk driverov z Githubu, po ktorom už Raspberry PI dokázalo cez ssh ovládať obidva efektory.
Ďalšou otázkou, ktorú bolo nutné vyriešiť bol prevod 24V digitálnych výstupov robotického controllera na 3,3V úroveň kompatibilnú s Raspberry Pi. Úloha ako stvorená pre overený optočlen LTV847, ktorý nielenže „zrazí“ napätie na potrebné hodnoty ale zároveň galvanicky oddelí obidva systémy.
Aby sme celej nadstavbe dali konkrétnu podobu dokúpili sme ku Raspberry tzv. breadboard, ku optočlenu doplnili dve signalizačné LEDky a dve tlačidlá, dopájkovali zopár odporov, pripojili výsledok ku samotnému Pi a celý modul namontovali na DIN lištu do rozvádzača gripperov. Po pripojení digtálnych vstupov z controllera a doprogramovaní jednoduchého ROS nodu sme už mali požadovanú funkcionalitu hotovú a od žiadaného výsledku nás delil posledný nevyriešený problém – otázka ako po boote Raspbianu spustiť veštky ROS procesy plne automaticky, aby jednoducho celý systém nabehol sám a nebolo nutné do neho akokoľvek zasahovať. Nakoniec sa ako funkčné riešenie ukázala kombinácia Crontabu a troch skriptov, ktoré sa postarali o inicializáciu roscoru a roslaunch všetkých potrebných nodov.
Výsledkom nášho snaženia je teda jednoduchý prevodný modul s Linuxom a ROS, ktorý podľa stavu dvoch digitálnych výstupov pendantu riadi pohyb gripperov. Výstup nastavený na ON gripper otvára, OFF signál naopak spôsobí zatváranie. Rozsahy otvorenia/zatvorenia sú natvrdo naprogramované podľa skutočných rozmerov valčekov určených pre bin-picking. Jednoduché, rýchle a efektívne riešenie, ktoré značným spôsobom rozšíruje existujúcu funkcionalitu Motomana.
Otázka, ktorá nám ale po realizácii tohto projektu nedá spávať znie: „Ak Raspberry PI bez problémov zvládne riadenie schunk gripperov cez ROS, zvládllo by prepočítavať a riadiť aj pohyb celého Motomana?