microROS

Algemene informatie

Met microROS is het mogelijk om een communicatie kanaal tussen een embedded systeem en ROS2 op te bouwen. Dit communicatie kanaal maakt het mogelijk om dan op de embedded systeem de volgende ROS2 methodes te gebruiken:

  • Topics

  • Services

  • Actions

Gedetaileerde informatie over microROS zie website: microROS

Installatie van microROS-agent

microROS maakt gebruik van een agent welke als brug(bridge) tussen het embedded systeem en ROS2 fungeert.

Je kunt kunt de microROS-agent als volgt installeren:

cd ~/ros2_industrial_ws/src/ROS2_industrial/microros/scripts
./install_microros_agent.sh
source ~/microros_ws/install/setup.bash

Ontwikkelomgeving

Om een microROS applicatie te ontwikkelen dient in Visual Studie Code de PlatformIO plugin geinstalleerd. Voor WSL is dat beschreven in de Windows Subsystem for Lunix

ESP32 devices

In deze workshop wordt gewerkt met de volgende ESP32 devices:

image Environmet: eps32-upesy_wroom Environment: eps32-upesy_wroom

platform = espressif32
board = esp32-s3-devkitc-1

Info

image Environment: eps32-upesy_wroom

platform = espressif32
board = esp32-s3-devkitc-1

Info

Deze ESP32-WROOM-Mini heeft dezelfde specificatie als de ESP32-WROOM, echter de pinout is afwijkend:

Pinots

image Environment: esp32-C3

platform = espressif32
board = lolin_c3_mini

Info

image Environment: esp32-S3

platform = espressif32
board = esp32-s3-devkitc-1

Info

In het platformio.ini bestand van het project kun je details m.b.t. compileropties voor ieder environment inzien.

Uploaden programma naar ESP32 devices

Environment selecteren

Alvorens je een microROS programma kan compileren dien je de juiste environment te selecteren die bij het het gekozen ESP32 board past. Activeer de environment slectector:

image

Kies daarna de juiste environmet:

image

Software Compileren

Je kunt het programma voor het device compileren met onderstaande functie:

image

Uploaden naar ESP32 device

Nadat je het device hebt aangesloten via USB kun je de software naar het device uploaden:

image

Nadat de software succesvol is geüpload zal het programma automatisch in het device starten.

Tip: Tijdens het uploaden zal getoond worden welke USB-device hiervoor gebruikt wordt. Maak hiervan een aantekening deze heb je nodig bij het starten van de microROS-agent.

Bij gebruik van WSL moet je het embedded systeem wel eerst met WSL verbinden, zie Koppelen USB-devices aan WSL-Distributie

Zorg er voor dat bij het uploaden de bijbehorende microROS-agent is afgesloten.

Start in geen geval de Serial Monitor. Deze zal de communicatie over USB naar de microROS-agent blokkeren.

image

Voorbeelden

Er zijn in het kader van deze modules al twee microROS implementaties gerealiseerd voor de volgende workshops:

De microROS-agent kan worden gestart met het volgende commando:

ros2 run micro_ros_agent micro_ros_agent serial --dev <usb-device>

Afhankelijk op welke USB poort je het embedded systeem hebt aangesloten dien je usb-device in te vullen. Bijvoorbeeld:

  • /dev/ttyUSB0

  • /dev/ttyACM0

Bij gebruik van WSL moet je het embedded systeem wel eerst met WSL verbinden, zie Koppelen USB-devices aan WSL-Distributie

Het device wordt getoond bij het uploaden/programmeren van het embedded systeem in Visual Code met de Platform IO plugin

Dit werkt alleen als in platformio.ini bestand de parameter board_microros_transport = wifi is gezet.

ros2 run micro_ros_agent micro_ros_agent udp4 --port 8888