RobotLib Console

Uit RobotMC.be
Ga naar: navigatie, zoeken

Zie deze pagina voor een overzicht van alle RobotLib documentatie op deze wiki.

Inleiding

De console routines van RobotLib zijn tools die op je PC draaien en via de seriële poort in verbinding staan met je robot. Met deze tools kun je commando's geven, status opvragen en volgen wat de robot doet. Deze tools zijn onmisbaar om je robot werkend te maken, te kalibreren en vervolgens het verloop van missies te volgen.

Voor de uitvoering van missies heeft de robot het console niet nodig: de robot kan bediend worden met (bijvoorbeeld) de afstandsbediening en voert taken zelfstandig uit.

Structuur

Veel IoT toepassingen maken gebruik van een MQTT berichtenmakelaar 'in de cloud' om berichten door te geven voor bediening of om data te loggen. Het robotlib console gebruikt UDP op je lokale machine zodat meerdere scripts tegelijk - via een enkele seriële poort - met de robot kunnen communiceren.

RobotLib mqtt.jpg

Bovenstaande plaatje geeft een overzicht van de communicatie.

  • Het plaatje toont een MQTT broker, die de aangeboden berichten doorgeeft aan scripts die zich hierop geabonneerd hebben. Vanwege performance en complexiteit is de default voor RobotLib is hiervoor geen MQTT meer, maar UDP.
  • Een 'client' (bijvoorbeeld Bridge.py) koppelt de seriële poort aan de broker.
  • Verschillende scripts kunnen data naar de robot sturen, data van de robot ontvangen of beide.

De kracht van deze opzet is dat meerdere scripts tegelijk met de robot verbonden zijn. Zo kun je via het terminal script aan de robot de opdracht geven om een stukje te rijden. Als dat is ingeschakeld, zie je ziet positie informatie op de terminal en kunt dit met dit script loggen voor latere analyse. Tegelijk kun je het script Track.py gebruiken om de positie van de robot grafisch weer te geven. En als je robotlib bijvoorbeeld periodiek de snelheid laat printen, kun je deze real-time in een grafiek weergeven.

Terminal programma

De basis van het de console routines - en de beste manier om te beginnen - is een terminal programma.

Op het internet is een groot aanbod van terminal programma's. Voor ons doel is putty een goede keuze. Het is een betrouwbaar programma met een nette, eenvoudige interface. We gebruiken het alleen in combinatie met de seriële poort, dus de geavanceerde netwerk functies kunnen we negeren.

Het 'ecosysteem' van RobotLib heeft het console programma Terminal.py. Deze sluit aan op de 'bridge' en maakt het mogelijk om dat ook andere programma's - tegelijk met de terminal - kunnen communiceren met robot.

Setup

Configuratiefile

De configuratie voor de scripts wordt opgeslagen in een json file. De locatie van de json file wordt ingesteld in het environment:

 RlConsoleCfg=C:\MyRobot\arm\ConsoleShortcuts\RlConsoleCfg.json

Python

  • Installeer Python 3
  • Installeer Python modules
# http://pyserial.readthedocs.io/en/latest/pyserial.html
py -m pip install pyserial
# mqtt
py -m pip install paho-mqtt
# install matlib:  
py -m pip install matplotlib

Run

Opstarten:

  • Start Bridge.py om de serial port 'beschikbaar' te maken. De port en baudrate worden ingesteld in de sectie "Bridge' van de json configuratie file.

Nu kun je de console scripts starten die je nodig hebt. Alle scripts kunnen tegelijk draaien, zolang ze niet tegelijk commando's naar de robot sturen.

Console scripts

Terminal

terminal to interact with the robot, log data, (re)play files.

WinCommands

A notepad-like command sheet, that allows to send multiple lines (selected text or whole sheet).

Track

Show the robot on the Roborama track.

Graph2

Real time plot van gegevens.

Loader

  • Basic Symbols.txt download.
  • Basic code upload.
  • Commando's vanuit commandline.