Panzerroboter: Unterschied zwischen den Versionen

Aus Chaostreff Chemnitz
Tesla (Diskussion | Beiträge)
Tesla (Diskussion | Beiträge)
Zeile 33: Zeile 33:


Fehler der Multifunction Unit: Zum Stoppen immer 0b01111 (velocity bzw. direction) verwenden! Ein Sprung von voller Rückwärtsfahrt (0b11110) auf 0b10000 (leicht rückkwärts/Stillstand) lässt das Fahrzeug weiter mit voller Geschwindigkeit rückwärts fahren! Das Gleiche gilt für das Lenken.
Fehler der Multifunction Unit: Zum Stoppen immer 0b01111 (velocity bzw. direction) verwenden! Ein Sprung von voller Rückwärtsfahrt (0b11110) auf 0b10000 (leicht rückkwärts/Stillstand) lässt das Fahrzeug weiter mit voller Geschwindigkeit rückwärts fahren! Das Gleiche gilt für das Lenken.
Ein Joystick am Gameport soll als Alternative zur Tastatur zum Steuern des Roboters benutzt werden. Um den Gameport unter Linux nutzen zu können, muss neben den Treibern ''ns558'' und ''joydev'' auch ''analog'' geladen werden. Zum Zeitpunkt des Ladens von ''analog'' muss bereits ein Joystick angesteckt sein. Erst dann werden ''/dev/input/js0'' und ''/dev/input/js1'' erzeugt. Es wird die Knüppelbewegung zweimal mit dem Abstand von 4 ms gemessen und verglichen, weicht sie zu stark ab, wird dies als nicht angesteckter Joystick gewertet. Dieser Vorgang findet nur einmal beim Laden von ''analog'' statt. Der Gameport unterstützt Hotpluging nicht offiziell. Ein nachträgliches Anstecken des Joysticks wird nicht registriert. Das Modul ''analog'' ist dazu zu entladen und erneut zu laden.

Version vom 11. Januar 2014, 03:34 Uhr

Wir haben einen tollen Panzerroboter zur Verfügung gestellt bekommen. Dieser soll nun reversengineered und umgebaut werden.

Es hat sich bereits jemand die Mühe gemacht und das umgesetzt, was wir wollen: [1]

Fernbedienung

Die Fernbedienung arbeitet im 27-MHz-Band. Die Übertragung erfolgt digital mit einer Art LIN-Protokoll, wobei eine Manchestercodierung angewendet wird.

Konzept

Hier werden grundsätzliche Anforderungen geklärt.

Steuerung

Der Roboter wird über ein oder mehrere PCs ferngesteuert. Genau ein Bedien-PC ist der Master. Er kann den Roboter an- oder ausschalten und auswählen welcher PC die Kontrolle über den Roboter hat. Der Master kann selbstverständlich auch sich die Kontroller zuweisen.

Fällt der Master aus, wird der Roboter deaktiviert. Fällt der Slave aus, der die Kontrolle hat, deaktiviert sich der Roboter ebenfalls. Der Master kann dann auf sich oder einen anderen funktionierenden Slave umschalten. Geht der ausgewählte Slave wieder online, hat er unmittelbar wieder die Kontrolle.

Master und Slaves senden ihre Daten direkt zum Roboter um eine schnelle zuverlässige Verbindung zu ermöglichen.

Bildübertragung

Das Bild wird von der Kamera auf dem Roboter ebenfalls über Netzwerk zum Master und Slave zurückgesendet. Master als auch Slave sollen das Bild sehen. Der Master kann das Bild für den Slave kappen.

Es ist noch zu klären ob per Multicast gestreamt wird, der Stream mehrmals gesendet wird oder der Kontrolle habende Slave an den Master weiterstreamt.

Umsetzung

Hier werden die Details der verwendeten Technik beschrieben.

Steuerung

Die Steuerinformationen werden über Netzwerk/WLAN übertragen. Dazu wird UDP/IP verwendet.

Fehler der Multifunction Unit: Zum Stoppen immer 0b01111 (velocity bzw. direction) verwenden! Ein Sprung von voller Rückwärtsfahrt (0b11110) auf 0b10000 (leicht rückkwärts/Stillstand) lässt das Fahrzeug weiter mit voller Geschwindigkeit rückwärts fahren! Das Gleiche gilt für das Lenken.

Ein Joystick am Gameport soll als Alternative zur Tastatur zum Steuern des Roboters benutzt werden. Um den Gameport unter Linux nutzen zu können, muss neben den Treibern ns558 und joydev auch analog geladen werden. Zum Zeitpunkt des Ladens von analog muss bereits ein Joystick angesteckt sein. Erst dann werden /dev/input/js0 und /dev/input/js1 erzeugt. Es wird die Knüppelbewegung zweimal mit dem Abstand von 4 ms gemessen und verglichen, weicht sie zu stark ab, wird dies als nicht angesteckter Joystick gewertet. Dieser Vorgang findet nur einmal beim Laden von analog statt. Der Gameport unterstützt Hotpluging nicht offiziell. Ein nachträgliches Anstecken des Joysticks wird nicht registriert. Das Modul analog ist dazu zu entladen und erneut zu laden.