Neue Motortreiber

Ich habe mich dazu entschieden meine selbstgelöteten Motortreiber durch gekaufte Platinen zu ersetzen welche sich über I2C ansteuern lassen. Das erleichtert mir das Handling und ich kann Fehler in der Elektronik ausschließen falls etwas nicht funktioniert.

Die neuen Platinen sind auch schon montiert. Die Verkabelung für den Strom zu den Boards und Motoren liegt auch schon, was noch fehlt sind die I2C Kabel beider Boards zu einem Hub und dann zu der TX2.

Mein SICK LiDAR musste ich für die Montage des vorderen Treibers abschrauben.

NVIDIA Jetson TX2

Von appliedAI habe ich eine Nvidia Jetson TX2 bekommen. Dies wird meinen Raspberry Pi  und den Atmega32 ersetzen.

Die Jetson CPU hat zwei Denver Kerne und vier Cortex-A57 Kerne. Die Denver Kerne bieten eine wesentlich höhere Singlethread performance, die Kortex Kerne sind sparsamer.  In dem Modul ist auch eine 256 Core Pascal GPU integriert welche sich super für das inferencing von tiefen neuronalen Netzen eignet.

Der Raspi und der Atmel Atmega32 sind jetzt mit der Nvidia Jetson ersetzt. Die Antennen rechts im Bild an dem Board sind für WLAN.

Tim551 Montiert

Ich habe den Laserscanner nun auf dem Roboter anstelle meines LiDARS montiert. Der Scanner ist auf Gummi gelagert, so das möglichst keine Vibrationen vom Roboter auf den Sensor übertragen werden. tim551montiertIch werde den Sensor nun voraussichtlich doch über Ethernet ansteuern, da ich von Sick den Hinweis bekommen habe, dass die Funktion des Senors über USB möglicherweise eingeschränkt ist. Zu diesem Zweck werde ich einen Netzwerkswitch, welchen ich von Sick bekommen habe, auf dem Roboter anbauen.

Sick TiM551

Ich habe von der Firma Sick einen Laserscanner vom Typ TiM551 zur Verfügung gestellt bekommen. Dieser hat eine Winkelauflösung von 1°, einen Messbereich von 270°, eine Reichweite von 10m und scant mit 15hz. Dieser Laserscanner wird mein selbstgebautes LiDAR Modul ersetzen.IMG_7780Ich arbeite an einem Treiber für den Raspberry Pi, um die Daten über Usb auslesen zu können. Alternativ kann man mit dem Sensor auch über Ethernet kommunizieren. Da der Raspi aber nur einen Netzwerkanschluss hat, ist dies für mich keine Möglichkeit.

LiDAR montiert

Mein selbstgebautes LiDAR Modul (Light detection and ranging) ist nun fertig und auf dem Roboter montiert. Dazu wurde der Schrittmotor von unten an eine Alludibondplatte geschraubt, welche ich dann mit Alurohren an dem Chassis des Roboters befestigte. IMG_5352Auch die Elektronik (Schrittmotortreiber, Spannungswandler für den Sensor) sind auf der Platte untergebracht. Der Kabelwust ist super in einer Fotodose versteckt.IMG_5351

Scaner fertig gebaut

Das LiDAR ist nun fertig. Der Infrarotsensor ist auf einer Aludibondplatte befestigt.  Diese Platte ist an der Achse des Schrittmotors festgemacht. Die Ansteuernung des Motors erfolgt nun mit einem neuen Treiber, dies funktioniert problemlos. Sobald der Scaner auf dem Roboter montiert ist, werde ich mein Sensordatenvisualisierungsprogramm (cooles Wort) so umschreiben, dass es die Daten eines 180° Scans anzeigt.image1

Viele neue Kabel. Gut, das der Bot jetzt Kabelkanäle hat..

Räder drehen sich! (wieder)

Der Raspberry Pi ist jetzt auf der Platte montiert. Er ist auch schon mit dem µController über den Pegelwandler verbunden.

Auch alle Kabel sind nun angeschlossen. Bei dem „Umzug“ der Lichtschranken entstand ein Wackelkontakt an einem der Kabel, diesen habe ich repariert.

Die vier gelben LEDs sind hier wieder als Lichtschrankentester Programmiert. Sie leuchten nur, wenn sie nicht blockiert sind. Wegen der hohen Drehzahl der Motoren flackern sie sehr hochfrequent.

Wieder da

Nun bin ich seit einiger zeit wieder in Deutschland. Ich habe die Zeit in den USA sehr genossen.

Teile für den Schrittmotortreiber kamen mit der Post, nun habe ich ihn fertig zusammen gebaut. Jetzt arbeite ich an meinem Programm, um den Motor ansteuern zu können. Auch muss mein Visualisierungsprogramm angepasst werden, um alle Messergebnisse aus einem Scan als ein Bild darzustellen.

Roboter ist wieder Fahrtauglich

Schon vor einer längerer Zeit habe ich den Roboter wieder zu laufen gebracht. Als Netzteil verwende ich hier ein Ladegerät für Autobatterien. Das funktioniert sehr gut. Die Transportbox hatt ihren Zweck wunderbar erfüllt. Obwohl der US Zoll mein Kofferschloss geknackt hatt, um die Inhalt zu inspizieren, blieb der Roboter komplett unbeschädigt. Nicht einmal ein Kabel hatt sich gelöst.

Jetzt arbeite ich dort weiter, wo ich in Deutschland aufgehört habe. Der Schrittmotor deht sich noch nicht ordentlich. Dafür werde ich einen speziellen Schrittmotortreiber löten oder kaufen.

Was aber im Moment wichtiger ist: der internationale Roboter-Wettkampf. Der Lehrer meiner Schule sprach mich darauf an und lud mich in die Robotik Gruppe ein. Wir bauen einen Roboter der in drei Minuten vier Kerzen löschen muss. Die Kerzen stehen hinter Hindernissen und sind zufällig in einem mit einem schwarzen Strich auf dem Boden makierten Gebiet verteilt. Mein Team besteht aus vier Leuten. Der Termin für den Wettkampf ist Anfang Mai.

Auch habe ich mich für einen andere Kategorie des Wettkampfs angemeldet. Mini Roboter. Ich versuche bis zum Wettkapftermin einen Roobter zu bauen, der 100g nicht überschreitet. Die Funktion ist eher zweitrangig, auf Gewicht und Größe kommt es an.

 

Spannende Aufgaben also! Da es hier aber auch so viel Anderes zu erleben gibt, werde ich wohl erstmal nicht an meinem „Hauptroboter“ arbeiten.

Schrittmotor

Der schon zu Weihnachten bestellte Schrittmotor ist da. Er soll den Scanner (IR Sensor) meines PML (poor man LIDAR) schwenken. Um den Schrittmotor anzusteueren, muss der µC eine Sequenz von vier Bit ausgeben. Diese Sequenz muss in vier verscheidenen Variationen in der richtigen Reinfolge gesendet werden. Jede Sequentz lösst einen Schritt aus. Schnell wiederholt dreht sich der Motor.

Leider stimmt meine Sequenz noch nicht ganz, wesewegen der Motor bei manchen Schritten vibriert, da im inneren die Spulen gegeneinander arbeiten.