Neuer Unterbau aus E-Scootern

Angeregt durch einen Roboter von Thorsten auf dem letzten Robotiktreff und bedingt durch die Probleme, dass bei den  derzeitigen Rädern das Gummiprofil aufgrund des hohen Gewichts des Bots "runterläuft", musste ein komplett neuer – vielleicht endlich mal endgültiger – Antrieb her!

 

Gesagt, getan: Bei eBay zwei sogenannte E-Scooter (Miniroller mit Elektroantrieb) ersteigert und diese bis auf das nötigste ausgeschlachtet. Die schlechte Elektronik (Fahrtenregler) gleich mit entsorgt. Hier sieht man die Roller ein letztes Mal im Original-Lieferzustand:

 

Die Motoren laufen ab Werk mit 24 V, darum sind je Roller zwei 12 V-Akkus enthalten (je 4,8 Ah):

Hier sind sie schon etwas leerer – die alte Elektronik (unter dem roten Taster) istzu diesem Zeitpunkt noch verbaut:

 

Zum weiteren Aufbau wurden mehrere Blechwinkel und Alu-Vierkante aus dem Baumarkt montiert. Auf ihnen soll später die neue Grundplatte (Plattform) lagern:

Dann kam die neue Grundplatte aus gelochtem Aluminiumblech oben drauf:

 

/>

[228 Aufrufe]

Montage CCTV-Kamera mit Rundumspiegel

In der Zwischenzeit waren die German Open 2007 des Robocup zusammen mit der Hannover Messe . Nach angeregterm Austausch mit sehr freundlichen Mitarbeitern des Fraunhofer Institus rund um das Thema Robotik, Sensoren und Kameras, kam der Entschluss: Es muss eine ordentliche Kamera her! Nach langem Suchen be eBay und mit viel Glück wurde eine CCTV-Kamera und ein passendes Objektiv erworben. Für die neue Rundumsicht (Omnivision) wurde kurzerhand eine verspiegelte Glühlampe verwendet, da entsprechende Spiegel aus dem Profibereich im günstigsten Fall für 200 – 300 EUR zu haben sind…

 

Nach einigen freihändigen Experimenten stellte sich eine Höhe von ca. 93 cm über dem Boden als günstig heraus, um einen guten Überblick über einen Raum zu bekommen. Hier ist nun die Montage des "Spiegels" (Glühlampe) zu sehen. Als erstes eine normale Glühlampenfassung plus Aluwinkel:

 

Damit man den Spiegel etwas besser ausrichten kann, sind es Langlöcher geworden:

Hier nun das ganze auf den Roboter montiert – inklusive Kamera:

 

Und so sieht das erste Livebild der Kamera aus (testweiseals "Webcam" im Messenger "Kopete"):

 

Aufgrund eines Bugs in Video4Linux hier nur in schwarz-weiß. Die Kamera ist nämlich eine Farbkamera, die nur bei schlechten Lichtverhältnissen oder Dunkelheit in einen extrem empfindlichen schwarz-weiß-Modus schaltet!

Hier noch einmal der Roboter in der derzeitigen Gesamtansicht: 

Bei der Größe,wird der Transport im Auto fast schon schwierig (hier auf dem Weg zum Robotik-Treff Niedersachsen ):

[516 Aufrufe]

Montage 1. Rad-Encoder

Ein nicht einfaches Thema in der Robotik ist die Selbstlokalisierung. Soll heißen: Der Roboter muss selbst wissen, wo er ist. Einen Anfang dazu bilden Sensoren, die z.B. an den Rändern montiert werden, damit festgestellt werden kann, wieweit der Bot in welche Richtung gefahren ist. Möglich machen das Rad-Encoder. Diese bestehen i.d.R. aus einer Lichtschranke und einer sogenannten Schlitzscheibe. Dreht sich nun das Rad und unterbricht mit den Markierungen auf der Scheibe die Lichtschranke. Diese Unterbrechungen lassen sich an der Lichtschranke abfragen und zählen. Weiß man dann, wieviele Impulse einer Radumdrehung entsprechen, muss man nur noch den Umfang des Rades messen und hat so die zurückgelegte Entfernung. Eine Geschwindigkeitmessung ist damit dann natürlich auch leicht möglich (m/s).

In diesem Bild sieht man die von mir verwendeten Rad-Enconder :

Praktischerweise passten diese nach leichtem Aufbohren direkt auf meine Motoren:

DAnn war echte Präzisionsarbeit oder „Fummelkram“ angesagt. Es galt, die Gabellichtschranken zu montieren. Als erstes wurde mit sanfter Gewalt die Schutzkappe vom Getriebe der Motoren entfernt:

Danach wurde die Lichtschranke an der roten Schutzkappe montiert:


( Wohlgemerkt: Die Schrauben, die hier die Lichtschranke halten, sind nur 3 mm im Durchmesser!)

Glock gehabt: Es passte wirklich „auf den Millimeter“:

Das diese Arbeit an beiden Rändern erforderlich war, dürfte wohl klar sein…  Aber, wer hätte es gedacht, alle Kabel blieben heil, der teure Encoder und die Lichtschranken haben alles überlebt, wie die erste Testmessung zeigte:

[45 Aufrufe]

Montage Infrarotsensoren auf Servos

Durch die sogenannte "Stuhlbeinproblematik" kam die Idee, die Servos vorne, wie eine Art Radar, auf Servos zu montieren, damit diese nicht nur genau geradeaus "schauen", sondern eine "Sicht" um mindestens 18° "zeigen".

Ach dieses zog wieder ein wenig Verkabelung nach sich, wobei der Hauptaufwand meist darin liegt, die Kabel mit den vorhandenen zusammen immer wieder "rauszureißen" und wieder zu verstauen:

 

Da die Infrarotsensoren bei häufigen Messgungen und auch störenden anderen Impulsen etwas empfindlich sind, habe ich diese mittels eines parallel zur Stromversorgung gelöteten 100 nF Kondensator etwas entstört. Praktischerweise passten diese noch ganz gut in das eigene Gehäuse:

Hier sieht man die fertig montierten "Infrarot-Servos" noch einmal insgesamt:

 

Im Video-Bereich gibt es ein kurzes Video , in dem die Sensoren zum Testen mal manuell per Seftware gedreht werden.

[443 Aufrufe]

Montage Modellbauräder und 2 weitere Infrarotsensoren

Wie schon geschriebe, waren weitere Infrarot-Sensoren bestellt, welche die Bereiche schräg hinten links und rechts überwachen sollten.

Die Abfolge der Montage der Sensoren ist auf den folgenden Bildern gut zu erkennen;

 

Ein bißchen Verkabelung ist natürlich auch notwendig:

Hier mal ein paar schöne Fotos, wie der Bot von oben bestück aussieht. Diese Fotos habe zur späteren Verwendung in der GUI verwendet:

 

 Da  die vorige Radkonstruktion leider auch Probleme machte, wurden kurzerhand Gewinde in die Motorachsen geschnitten (nicht gerade leicht):

 

 und Standard-Modellbauräder montiert:

 

 

 

[305 Aufrufe]

Montage Atmel-Board, Webcam und Warnleuchte

Wie es sich herausgestellt hat, ist die bis dato verwendete USB-Schaltung zusammen mit dem Laptop, der Programmiersprache C in Verbindung mit dem Ultraschallsensor leider zu langsam. Konkret: Die Timings, die bei zur Abfrage des Ultraschallsensors notwendig sind, müssen genauer sein (im µs Bereich). Was also tun?

Nach langem Prüfen der Möglichkeiten musste nun also doch ein Microcontroller her. Da die AVR Controller von Atmel in der (Hobby)Robtik sich bewährt haben und es hierzu auch viel Unterstützung im Netz gibt, fiel die Wahl auf den Atmega2560 . Sicher etwas überdimensioniert – aber dafür eben auch zukunftssicher. Egal, wie viele Sensoren oder Aktuatoren noch dazu kommen könnten. Also wurde hinten rechts auf dem Roboter eine neue Platine mit dem Microcontroller-Fertigmodul montiert:

 

 

 

 

 

 Um Versandkosten zu sparen, kam gleich ein (derzeit noch nicht verwendetes) Kompassmodul dazu (rechte Platine):

 

 

 

 

 

 Um Fehler beim Verkabeln zu vermeiden, wurden die Stecker für die Stromversorgung beschriftet

:

 

 

 

 

 

Da jeder Bot, der was auf sich hält (oder eben autonom in der Weltgeschichte herum fahren soll) eine Warnleuchte hat, hat das mrs (mobile robot system) nun auch einen:

Ein schon lange wartenden Not-Aus-Schalter wurde gleich mit verbaut. Nachdem das Programm für den Microcontroller (MC) fertig war, mussten die Infratot-Sensoren (IR) neu "vermessen" werden bzw. die Umsetzungstabelle "Sensorwert / Abstand in cm" neu gebaut werden:

 

Nachdem alle Sensoren nun komplett über den Atmega2560 und dessen integrierte A/D-Wandler laufen, wurde die alte USB-Schaltung

 

 

 

 

 

ganz überflüssig, da das die Software auf dem Laptop mit dem MC seriell über die USB-Schnittstelle

kommunizieren. Die Software dazu ist mittlerweile auf dem MC und dem Laptop komplett dafür angepasst worden. Die A/D-Wandler, und die alte USB-Schaltung weichten bei der Gelegenheit einer ganz neuen Stromversorgungsplatine:

Die Warnleuchte wird über ein Relais mit 12 V geschaltet. Für allgemeine Testzwecke kamen noch ein paar Messpunkte auch noch dazu.

So sieht der Bot dann zu diesem Zeitpunkt aus:

Nachdem die Ansteuerung des Ultraschallsensors (US) über den Microcontroller gestern gelang, kam dieser an seine endgültige Position:

Hier sieht man alle Stecker der Sensoren und des Flashlights auf der MC-Platine;

 

Und hier den Sensor, unterhalb der CMUCAM:

 

Als letztes kam dann gestern noch eine ehemalige Webcam (Rückseite) hinzu,

die unterhalb des Ultraschallsensors Platz fand. So sieht sie von vorne aus:

 

Und so montiert:

 

In der GUI sieht das ganze mit fünf Sensoren dann so aus:

Damit das ganze nicht langweilig wird, ist nun erstmal wieder progammieren angesagt – obwohl – vier weitere Infrarot-Sensoren sind auch schon wieder bestellt. Möge er niemals gegen ein Hindernis fahren…. ;-)

[0 Aufrufe]

Entstörung Motoren

Nach langer langer Analyse des Quellcodes hat sich der Fehler, der dazu führte, dass der Roboter chaotisch in alle Richtungen fuhr, weil die IR-Sensoren immer auslösten, als Hardwareproblem herausgestellt!

Die neuen Getriebemotoren verursachten zusammen mit der neuen Ansteuerplatine so starke Störungen, dass alle IR-Sensoren bzw. die Platine wo alles zusammenläuft, "Fehlarlarme" also Hindernisse vor den Sensoren signalisierte. Aber das Roboter-Netz-Wiki schaffte einfache Abhilfe. Auf diesen zwei Fotos gut erkennbar, die 3 Kondensatoren und die Ferritkerne zum Entstören der Motoren:

Perfekt! Alle Störungen verschwunden! Und der Lötkolben gerade mal heiß war kam nuch eine Blinkdiode hinzu, die den Betrieb des Roboters signalisiert (aktiv):

 

Damit die Sensoren-Kabel und die bei der Kamera nicht mehr so sehr im Weg sind, kam noch etwas Spiralschlauch zum Einsatz – sehr praktisch:

 

Zum einfacheren Testen, der Abstandssensoren wurde dann noch das Arbeitszimmer kurzerhand in eine Teststrecke umfunktioniert:

 

Nun kann endlich an der Software wieder "geschraubt" werden!

[441 Aufrufe]

Montage Ultraschallsensor

In den letzten Tag wurde ein weiterer Sensor montiert. Dieses mal, der erste Ultraschallsensor.

 

 

Da der Roboter jetzt mit den neuen Motoren so schnell wurde, ist hier Handlungsbedarf, um Hindernisse früher zu erkennen. Also musste ein Sensor her, der weiter "in die Ferne" schaut. Hier wurde ein Ultraschall-Sensor gewählt (SRF05 von Devantech Ltd.). Für die Ansteuerung muss jetzt "nur noch" ein weiterer Thread programmiert werden, da es hier auf sehr kurze und vor allem exakte Timings ankommt.

[330 Aufrufe]

Neue Kamerahalterung, neue Getriebemotoren und Motoransteuerung

Neun Monate ist es her, dass sich hier was tat. Na ja, schwanger ist der Roboter zwar noch nicht, aber „neu geboren“ doch wohl. Aber der Reihe nach. Da sich die Gelegenheit ergab, wurde heute erst mal das Webdesign etwas aufgefrischt. Eine neue Rubrik ist dabei auch dazu gekommen: Screenshots. Hier ist sehr schön, der Werdegang des Programmes mit all seinen Irrungen und Wirrungen zu erkennen. Die augenfälligste Neuerung ist sicher leicht zu erkennen – die Entwicklung läuft mittlerweile vollständig unter Linux (mit KDevelop (und natürlich weiterhin mit dem Qt-Framework (Open Source Version)).

Für die Interessierten: Einem weiteren Einsatz unter Windows steht aber – dank Qt – weiterhin nichts im Weg. Mein besonderer Dank geht hier an Oliver Bock, ohne den dieser Schritt nicht möglich gewesen wäre. Er hat den Cypress CY7C63-Linux-Treiber vom 2.4er auf den aktuellen 2.6er Linux-Kernel portiert. Ohnehin hat er mich bei diversen Programmier- und Linux-Fragen in diesem Projekt hier großartig unterstützt.

Was geschah mit der Hardware? Nun, die Kamera hat eine etwas stabilere Halterung bekommen

und einen eigenen Anschluss an den Akku:

Auch der Video-Ausgang (s/w) ist schon mal zum Anschluss an das Laptop vorbereitet worden:

Bei einem Vergleich der zwar sehr kräftigen Schrittmotoren mit Getriebenmotoren aus dem Modellbaubereich sollte sich herausstellen, dass letzere bei ausreichend Kraft haben (bei 5000 U/Min bei 12V, 148:1 Untersetzung) und dabei der Roboter nun ungefähr 1,2 km/h schafft!

Siehe dazu auch ein aktuelles Video . Dieses war der erste Versuch mit den schnellen, neuen Motoren, darum kommt die „Kameraführung“ nicht wirklich hinterher. ;-) Und ein paar Sensoren mehr, braucht er wohl auch noch…

Somit sind also nun neue Getriebemotoren montiert,

die natürlich einer komplett neuen und anderen Ansteuerung bedurften. Also wurde die alte Platine demontiert,

und da es sich anbot, die neue Platine an eine sicherere Stelle als bisher zu montieren, wurde gleich alles an Kabeln entfernt und neu gemacht:

Und so sieht das ganze jetzt aus:

Die Platine zur Motoransteuerung ist übrigens ein Fertigmodul von robotikhardware.de , gemäß Roboternetz-Definition . Die USB-Platine ist von ak-modulbus . Hier sind die Sensoren mit den A/D-Wandlern jetzt modular steckbar gemacht worden. Die alte Platine entfiel damit komplett:

Wie an den Screenshots zu sehen ist, funktioniert das Ansteuern und Auslesen der CMUCAM nun auch einwandfrei. Die Auswertung der Bilder/Daten steht allerdings noch auf einem anderen Blatt…

[241 Aufrufe]