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:
Environmet: eps32-upesy_wroom
Environment: eps32-upesy_wroom
platform = espressif32
board = esp32-s3-devkitc-1
Environment: eps32-upesy_wroom
platform = espressif32
board = esp32-s3-devkitc-1
Deze ESP32-WROOM-Mini heeft dezelfde specificatie als de ESP32-WROOM, echter de pinout is afwijkend:
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:
Kies daarna de juiste environmet:
Software Compileren
Je kunt het programma voor het device compileren met onderstaande functie:
Uploaden naar ESP32 device
Nadat je het device hebt aangesloten via USB kun je de software naar het device uploaden:
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.
Voorbeelden
Er zijn in het kader van deze modules al twee microROS implementaties gerealiseerd voor de volgende workshops:
ROS2 Basics: range-sensor
Manipulation: joystick
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