Schunk grippery & Raspberry Pi

RPI_01V 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ť.

RPI_04

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.

RPI_05

Ď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.

RPI_08

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.

RPI_02

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?

František Ďurovský