Software & Steuerung

Computer an Board

Auf dem Roboter verwende ich einen Raspberry Pi 3 als Steuercomputer. Auf dem Raspberry Pi läuft das Betriebssystem Ubuntu MATE (Version 16.04). Der Vorteil von Ubuntu MATE gegenüber Raspbian als Standardbetriebssystem für den Raspberry Pi liegt darin, dass sich die Installation von ROS stark vereinfacht. Den Installationsanweisungen für Raspberry Pi im ROS-Wiki folgend habe ich Ubuntu MATE 16.04 mit installiertem ROS Kinetic als fertiges SD-Karten-Abbild verwendet. Dieses ist auf der Website von German-Robot zu finden. Die verwendete SD-Karte hat übrigens eine Kapazität von 64 GB um genügend Speicherplatz für viele Entwicklungen zu bieten.

ROS

ROS (Robot Operating System) ist eine Software-Bibliothek für die Robotik. Mit ROS lassen sich Systeme modular und sogar über mehrere physische Rechner verteilt aufbauen. Die Kommunikation zwischen verschiedenen Komponenten findet über TCP/IP statt.

Peripherie

Die einzelnen Steuerungskomponenten sind auswechselbar und per I²C-Bus an den Raspberry Pi angebunden. Dazu habe ich eine Platine mit Steckplätzen entworfen, in die die Komponenten eingesteckt werden, diese bildet sozusagen das Rückgrat des Roboters (entsprechend die Taufe dieser Platine auf den Namen backbone).

Da ich vorgesehen hatte die einzelnen Komponenten mit Hilfe von AVR Mikrocontrollern mit 5V Betriebsspannung aufzubauen, die Raspberry Pi Ein- und Ausgänge jedoch auf 3,3V Basis arbeiten, enthält die backbone Platine einen I²C-Pegelwandler. Diesen habe ich diskret mit MOSFETs aufgebaut. Zusätzlich zum I²C-Bus habe ich eine Interruptleitung zwischen dem Raspberry Pi und der Peripherie integriert, so dass die Peripherie-Komponenten einen Hardwareinterrupt auslösen können. Dabei dachte ich bspw. an eine Kollisionserkennung, die den Roboter sofort zum Stehen bringen können muss.

Kommentare sind geschlossen