Sef Roboter & Tango based collision avoidance

 
Pri všetkých pokročilejších robotických aplikáciách s priemyselnými ramenami je CAD model tak robota ako aj jeho bezprostredného okolia nevyhnutným základom úspešnej integrácie. Klasický postup programovania takýchto buniek väčšinou začína offline prípravou modelu, ktorá neraz zaberie viac času ako programovanie samotné. Najnovší vývoj v oblasti 3D sensingu ale umožňuje zjednodusiť už aj tento krok a využiť pri automatickom plánovaní trajektórií model prostredia, ktorý nevznikol CAD modelovaním ale oskenovaním už existujúcej robotickej bunky. V prípade SEF Robotera sme si tento postup vyskúšali s prvým komerčne dostupným smartfónom s integrovanou Tango technológiou – s LenovoPHAB2 Pro.

V laboratóriu FEI TUKE v Košiciach sme nasimulovali jednoduchý use case so zásobníkom súčiastok umiestneným priamo v pracovnom priestore robota. 

Nasledovalo skenovanie pracovného priestoru robota pomocou aplikácie Scenes od Matterportu. Je síce možné ťahať aj raw pointcloudy z Tango do PC a skladať ich pod ROSom ale keďže Scennes appka to robí za nás a výsledné modely ešte optimalizuje, ukázala sa táto cesta ako priamočiarejšia. Výsledný sken vo formáte .ply v Meshlabe je vidieť na obrázku nižšie.

Po zosúladení počiatkov súradnicových systémov robota a pointcloudu bolo možné natiahnuť sken labu priamo do ROS ku existujúcemu moveit configu SEF Robotera.

Samotný pointcloud však pre collision avoidance nestačí, je nutné ho pretransformovať do formy octomapy, čiže matematickej reprezentácie obsadenosti okolia robota. Predtým je ešte potrebné vymazať z pointcloudu klastre samotného robota, aby nám po preklopení do octomapy zabudnuté body nevytrvárali zbytočné kolízie. Osvedčený octomap package už potom spraví zvyšok práce za nás:

Od tejto chvíle je už možné začať využívať collision avoidance path planning, kedy sa bude MoveIt pri plánovaní trajektórií snažit vyhýbať obsadeným voxelom. Po spätnom premietnutí pointcloudu do RVizu to vyzerá nasledovne:

A vo finále už zostáva iba naplánovať trajektóriu z jednej strany zásobníka na stranu druhú. Ako vidieť na obrázku nižšie, MoveIt si s tým poradil bez väčších problémov.

František Ďurovský