Hindernisumfahrung mit Hindernissen

Nach vielen vielen Code-Updates und dem kompletten Rewrite des sogenannten obstacleCheckThreads, war es endlich an der Zeit, den Roboter drauf los zu lassen. Hello world… ;-)

Es gab zwar beim Testen ein- oder zweimal Abstürze, beim Betrieb der Software unterm Mac (Roboter war „aufgebockt“, Fahrpogramm gestartet), diese konnten aber bislang nicht reproduziert werden.

Um es gleich vorweg zu nehmen: Alles funktioniert eigentlich einwandfrei. Jedoch „erkennt“ der Roboter die Hindernisse derzeit noch zu spät. Obwohl bereits die langsamste Fahrgeschwindigkeit gewählt wurde und auch das Entfernen des sleep commands aus laserThread und obstacleCheckThread keine Beschleunigung brachte, reichte dies alles nicht aus, den Roboter dazu zu bringen, schnell genug auszuweichen.

Im Moment habe ich ehrlich gesagt keine Idee, woran es liegen könnte… Genug der Worte, hier die einzelnen Videos.

Hier sieht man, wie der Roboter – wie im späteren Fahrbetrieb – mit dem onBoard-PC läuft, jedoch noch „aufgebockt“:

Beim zweiten Video sieht man, wie der Roboter „richtig“ fährt und auch dem ersten Hindernis brav ausweicht, aber dann unmotiviert (leider aus dem Bild) bei einem Hindernis festhängt, dann aber wendet um anschließend mutig Richtung Werkbank zu fahren. Vor lauter Schreck bleibt er er jedoch vor dem Hindernis stehen und aktiviert den Zustand „alles voller Hindernisse“ (Blitzlicht an, alles stoppen):

Nun wurde kurzerhand ein Laptop auf den Bot „befestigt“ (Festplatte zuvor vom Roboter auf den Laptop geclont) um zu Testen, ob der onBoard-PC vielleicht zu langsam ist. Sieht aber nicht danach aus. Auch das klappt nicht wie gewünscht:

Da er beim vorigen Film drohte, erneut die Staffelei umzureißen (auch wegen der provisorisch befestigten, aber herausragenden Aluschiene), hier noch ein letzter „Outtake“. Ich nenne ihn mal „mutiges Hindernis-Anfahren, um dann doch zu stoppen“:

 

Verkabelung und erster Motortest des Hexakopters

Angekommen auf dem aufgeräumten Schreibtisch, ;-) ist es an der Zeit mal zu sehen, ob die Ebay No-Name ESCs gut funktionieren. Hierzu wurde für das bekannte STM32F4 Discovery-Board Code geschrieben, der die erforderlichen Signale an den ESC sendet. Die „Befehle“, also die Geschwindigkeit, wird hier über die USB/serielle Schnittstelle und ein Terminmalprogramm vom Mac zum STM32F4-Board gesendet. Dieses gibt dann per PPM (ähnlich PWM) die Signale an den ESC. Der ESC ist die mit gelbem Schrumpfschlauch überzogene Platine unten in der Mitte auf dem Bild.

 

Das Video dazu gibt es auch hier!

Die ESCs wurden zuvor noch mit Goldsteckern versehen. Um diese ordentlich löten zu können (dafür braucht man schon mal 400° an der Lötstation!), ist ein Loch in einer Holzleiste sehr hilfreich. Anfassen möchte man die Stecker beim Löten eher nicht! ;-)

  

Nun alles verkabelt…

Und „Gib ihm!“. Okay, natürlich nur soviel, dass er nicht abhebt. Die „Geschwindigkeit“ der Motoren, werden simpel im Terminal-Programm eingegeben.

 

 

Video gefällig? Bitte sehr!

Und hier noch einmal als Stillleben… (lustig, drei L)