/
/
/
Ethercat voor ROS2

Ethercat voor ROS2

Ethercat is een communicatieprotocol waarmee hardware (I/O) kan worden aangestuurd en uitgelezen. Om ethercat hardware met ROS2 te laten communiceren is een vertaling nodig van DDS topics (DDS is het onderliggend communicatie-protocol van ROS2) naar ethercat-berichten en andersom. Hiertoe heb ik verschillende uitvoeringen gemaakt.

Ik heb een Raspberry Pi ethercat master (SOEM) voorzien van DDS, zodat de Raspberry Pi als ROS2-node kan worden herkend vanuit de rest van het ROS2-netwerk. De uitwisseling van topic naar hardware geschiedt via DMA (Direct Memory Access), zodat hoge refreshrates te halen zijn (1000 Hz).

Tevens heb ik een ROS2-wrapper gemaakt voor een SOEM-ethercat master, zodat de master direct beschikbaar kan worden gemaakt als ROS2-node. De wrapper is open source gemaakt heet “SOEM for ROS2” (https://bitbucket.org/edhage/soem_ros2/src/master/)

Naast deze wrapper heb ik ROS2 packages gemaakt zodat deze wrapper ook met DMA te gebruiken is, en heb ik DDS-messages gegenereerd voor een aantal Beckhoff-modules die ook bruikbaar zijn in ROS2. Voor elke module is een composable node (ROS2-constructie) gemaakt die eenvoudig te configureren is, zodat er geen code meer hoeft te worden geschreven om ethercat-hardware werkend te krijgen, de gebruiker hoeft slechts de configuratie te definiëren).