Johnny 5


  Mars-Rover-Projekt von Jörg Roth
  

     
   

  Einleitung 

  Fahrwerk 

  Sensoren 

  Resultat 


Alle Mindstorms-Projekte

Jörg Roths Homepage

Email email 

Impressum 


English This page
in English

















   

Einleitung

Dieses Projekt wurde von den Mars-Rovern Spirit und Opportunity inspiriert. Der Robot sollte folgende Eigenschaften erfüllen:
  • Er sollte 6 Räder haben. Davon sollten 4 gelenkt sein.
  • Von den 6 Rädern sollten möglichst viele angetrieben werden.
  • Es sollten möglichst viele Sensoren angeschlossen werden können, um die Umwelt zu erfassen.
  • Es sollte einen ausfahrbarer Sensorarm geben.
  • Der Robot sollte über Bluetooth von einem PC-Arbeitsplatz aus gesteuert werden können.
Während am Anfang die Befehle vom PC-Arbeitsplatz noch sehr einfach waren (z.B. "fahre Rechtskurve 50cm, Kurvenradius 30cm"), sollten später komfortablere Befehle möglich sein, die vom Robot autonom ausgeführt werden. Vorbild war hier das Mars-Szenario, da man durch die lange Funklaufzeit nicht das Resultat jedes kleinsten Steuerbefehls abwarten kann. Hier erwartet man, dass der Robot komplexere Befehle selbständig ausführt und nur das Resultat meldet.

Das Fahrwerk

Zu Anfangs waren Ziele bezüglich des Fahrwerks sehr hoch gesteckt. So sollte das Überfahren von zumindest kleinen Hindernissen möglich sein. Idealerweise wäre das mit einer Rocker-Bogie-Suspension möglich gewesen, so wie es der Original Mars-Rover besitzt. Leider stellte sich sehr schnell heraus, dass das nicht so einfach möglich ist:
  • Lego-Technic-Bauteile haben beim Zusammenbau einfach zu viel Spiel, so dass eine komplizierte Mechanik schnell instabil wird.
  • Wichtiger: für die originale Rocker-Bogie-Konstruktion braucht man für jedes Rad einen Antriebsmotor und zusätzlich für die gelenken Antriebsräder je einen. So viele Motoren bekommt man aber in einer Konstruktion nicht unter.
Auch ohne Rocker-Bogie-Konstruktion machen 6 Räder einige Probleme. Genau genommen müssten beim Lenken die Winkel der rechten und linken Räder unterschiedlich sein – bei unterschiedlichen Radabständen zu den mittleren Rädern müssten sogar die Winkel aller 4 gelenkten Räder verschieden sein. Das lässt sich mit einem Motor kaum realisieren. Deshalb stellen bei dieser Konstruktion alle gelenkten Räder immer denselben Winkel ein. Für das Laufwerk hat sich das nicht als Problem herausgestellt.
Auch das Ziel, alle 6 Räder anzutreiben, musste aufgegeben werden. Bei einem Motor pro Seite, bräuchte man 4 Kardanwellen, da 4 der 6 Räder gelenkt sind. So viele standen aber nicht zur Verfügung. So wurden aber immerhin 4 Räder angetrieben, was lediglich 2 Kardanwellen benötigte. Das war auch das Minimum: Experimente haben gezeigt, dass die gesamte Konstruktion sich mit nur 2 angetriebenen Rädern nicht stabil nach vorne bewegen lässt.
Werden 2 gelenkte und 2 ungelenkte Räder angetrieben, so müssten diese 4 Räder genaugenommen bei Kurvenfahrten jeweils mit einer eigenen Drehzahl angetrieben werden. Hierzu hätte man benötigt:
  • 4 Motoren,
  • 2 Motoren und 2 Differenziale oder
  • 1 Motor und 3 Differenziale
Alle Varianten wurde aus Platzgründen verworfen und nur jeweils ein Motor für jede Seite (ohne Differenzial) verwendet. Bei Kurvenfahrten läuft somit die äußere Seite schneller, beide äußeren angetriebenen Räder aber gleichschnell. Die resultierende Reibung war minimal und führte nicht zu mechanischen Problemen.

Die Sensorplattform

Die Sensoren sollen die Umwelt kartographieren. Ein schwenkbarer Sensorkopf soll mit zwei Freiheitsgraden bewegt werden:
  • Drehung rechts und links;
  • Nicken auf und ab, so dass auch Entfernungspunkte ober- und unterhalb des Horizonts erfasst werden können.
Darüber hinaus soll ein Sensorarm ähnlich dem Vorbild auf dem Mars ausgefahren werden können. Er soll Objekte direkt vor dem Robot vermessen können.

Das Resultat

Als Resultat wurden verbaut:
  • Zwei Motoren für die Vor- und Rückwärtsfahrt (einen auf jeder Seite), 2 Kardanwellen, keine Differenziale.
  • Ein Motor zum Lenken der 4 gelenkten Räder.
  • Ein Motor für die Rundumsicht des Entfernungssensors.
  • Ein Motor für das Nicken des Entfernungssensors.
  • Ein Motor für das Ausfahren des Sensorarms.
  • Zwei Touch-Sensoren zur Hinderniserkennung (vorne und rückwärtig).
  • Ein Entfernungssensor zur Erkennung von niedrigen Hindernissen in Fahrtrichtung.
  • Ein Entfernungssensor zum Aufbau einer Entfernungskarte (Rundumsicht).
  • Zwei Sensoren für den Sensorarm (z.B. Touch und Helligkeitssensor).
Wir rechnen zusammen:
  • wir brauchen 6 Motoren
  • wir brauchen 6 Sensoren
  • da jeder Brick (leider) nur 3 Motoren und 4 Sensoren betreiben kann, brauchen wir 2 Bricks
Für die Kommunikation zwischen den Bricks war zuerst Bluetooth vorgesehen. Leider stellte sich im Laufe des Projekts heraus, dass die Bluetooth-Implementierung auf den Bricks zu instabil ist, insbesondere, wenn einer der Bricks sowohl eine Verbindung mit dem anderen Brick hat, aber auch eine Verbindung zu einem PC-Arbeitsplatz. Als Folge wurde die Bluetooth-Verbindung zwischen den Bricks häufig zurückgesetzt oder funktionierte nur sporadisch. Glücklicherweise erfuhr ich von einer Besonderheit: die Sensorports 4 (und nur diese) enthalten eine RS485-Schnittstelle. Zwei Bricks können so über eines der mitgelieferten Sensorkabel verbunden werden. Die Kommunikation zwischen den Bricks funktioniert so stabil und hinreichend flott.

Einige interessante Werte:
Gewicht1,7 kg
Maße37 cm x 24 cm x 22 cm (Läge x Breite x Höhe)
Anzahl der Bauteile581
Minimaler Kurvenradius25 cm
Maximale Geschwindigkeit50 cm/s