Sensoroptimierung

Jetzt erkennt der Sensor Hindernisse auf eine Entferung von 80 cm Zuverlässig! Das Programm kann jetzt auch die Entfernung zu dem Objekt ermitteln. Allerdings löst das Programm jetzt öffter (auf Grund von falscher Dateninterpretation) Fehlalarm aus. Die Kalibrierung funktioniert auch besser, allerdings werde ich trotzdem mal versuchen, den Sensor abzuschirmen.

Eine Ausweichroute (Rückwärts, dann Links) ist auch schon Programmiert, da ich aber noch keinen Kompass, Gyrosensor oder GPS habe, ist einfach eine Zeit programmiert, die der Bot eine Kurve fährt. So etwas soll später nicht mehr sein. Bei Kurvenfahrten lösen sich manchmal noch die Gummiringe von den Rädern, die muss ich also festkleben.

IR Sensor in Aktion

Ich habe das Programm so weit optimiert, dass es in allen Umgebungen funktioniert. Es kalibriert sich selbst, d.h. es wird erstmal gemessen, um einen Vergleichswert für die anderen Messungen zu haben. Das muss aber eigentlich kontinuierlich passieren, da es sonst zu Fehlern kommt, wenn der Bot z.B. von der Sonne in Schatten fährt. Dies macht mein Programm noch nicht. Das Programm versucht unrealistische Messungen zu erkennen und verwirft sie dann. Dies alles funktioniert bis jetzt nicht sehr schnell, da ich für alles einen recht großen Spielraum programmiert habe.

Hier sieht man sehr gut, was schon klappt. Das Programm wird über SSH gestartet. Der Roboter fährt (gerade) auf ein Hinderniss zu und bleibt stehen.

Hindernisserkennung

Mein Hindernisserkennugsprogramm soll ein Signal zum Hauptprogramm senden, wenn es glaubt ein Hinderniss zu erkennen. Ich möchte, dass dies sofort stattfindet und nicht erst, wenn der Roboter 70 cm vor dem Objekt steht (bei einer Reichweite des Sensors von 80 cm). Dazu benutzt das Programm die Daten aus dem Infrarotsensor. Funktionieren tut es, aber nicht immer zuverlässig. So sind die Daten von dem Sensor in der Sonne anders als im Schatten und drinnen anders als Draußen. Der Grund ist das wechselnde (IR)Umgebungslicht. Auch macht der Sensor ab und an Messfehler, die es vom Programm zu erkennen gillt.

Infrarotsensor Montiert

An dem provisorischen Kameramast ist jetzt auch der Infrarotsensor befestigt. Der Sensor sendet eine Infrarotstrahl, der von etwaigen Hindernissen reflektiert wird. Je nach intensität der Reflektion verändert sich die ausgegebene Stromstärke, was gemessen und umgerechnet werden kann. Mit diesem Sensor können Entfernungen zwischen 10-80 cm gemessen werden. Das ist nicht sehr viel, da ich den Sensor aber rumliegen hatte, reicht das erstmal aber aus, um nirgendwo gegen zu fahren. Später soll ein Sensor mit dem gleichen Funktionsprinzip die Daten für die Karte liefern.IMG_1897Das Auslesen funktioniert mit einem Testprogramm schon mal sehr gut.

Lichtschranken Komplett

Bis jetzt waren nur drei Lichtschranken in Betrieb, da die vierte Lichtschranke auf der Platine defekt war. Diese habe ich jetzt ausgewechselt und sie funktioniert auch wie geplant. Das Drehzahlregelungsprogramm aber nicht: trotz Anpassung funktioniert es noch nicht wie gewollt. Alle Räder reagieren zwar auf Geschwindigkeitsänderungen, aber nicht schnell und exakt genug. So sind manche Räder nach eigentlich abgeschlossener Nachregelung immernoch zu schnell oder langsam.

Raspi hatt jetzt Strom

Die Idee mit dem Autozigarettenanzünder-USB Adapter hatt funktioniert! Nach dem ich erst einen zu schwachen (mit nur 0,5A Leistung) hatte, konnte der Raspberry sich nicht mit einem WLAN verbinden. Mit einem Adpater, der die doppelte Leistung hatt, klappt alles problemlos.IMG_1891Nach diversen (erfolgreichen) Probefahrten, die der Roboter absolviert hatt, haben sich die Schrauben wieder gelöst, die das Rad auf der Motorachse befestigen. Diese hatte ich provisorisch mit Lack im Gewinde festgesetzt. Die ganze Radaufhängung ist sowieso noch nicht ganz toll, eigentlich dürften die Räder nicht direkt auf den Motorachsen sitzen. Auch ist ein Zahn von einer Odometriescheibe abgebrochen, da muss ich wieder schnippeln..

Mit dem schrifftlichen Teil geht es eher langsam voran.