Echolot
Soweit es meine Zeit zuließ, habe ich an meinem vehikel[eins] Projekt weitergearbeitet. Die Hardware ist ja mittlerweile fertiggestellt, sodass ich beginnen konnte, auf dem PC, der mit meiner Basisstation verbunden ist, erste simple Steueralgorithmen zu basteln. Ich verwende dafür nach wie vor Matlab, einfach weil ich es ziemlich stumpf runter schreiben kann – zum Experimentieren also genau das richtige. Ich habe mir zunächst die Routinen gebaut, die die Kommunikation mit dem Vehikel bewerkstelligen. Nachdem das akzeptabel funktionierte, habe ich begonnen, kleine Navigationsalgorithmen zu schreiben, die die über das Echolot gewonnenen Entfernungsinformationen verwenden. Einige Kleinigkeiten funktionieren schon, zufrieden bin ich damit allerdings längst nicht. Leider ist die Signalqualität des Ultraschallsensors nicht ganz so doll – aber zugegeben, mehr war auch realistisch gesehen wohl nicht zu erwarten. Um mal ein Gefühl für den Sensor zu bekommen, habe ich ein einfaches Experiment gemacht, dessen Ergebnis ich hier kurz vorstellen möchte. Ich habe mein Vehikel mittig (also auf dem Punkt x=y=40 cm) in einer 80 * 80 cm großen Box eine 360°-Wende machen lassen. Dabei habe ich die zum PC gefunkten gemessenen Entfernungen zur Wand während der Drehung mit den theoretischen (also aus dem Drehwinkel errechneten) Entfernungen verglichen. Das Ergebnis zeigt das unten stehende Bild. Da der Sensor einige Zentimeter vor dem Drehpunkt des Vehikels liegt, sind gemessene und berechnete Entfernung kleiner als 40 cm. Dass die gemessenen Peaks deutlich schärfer als die berechneten sind, zeigt, dass die Entfernung teilweise unterschätzt wird. Ich bin mir nicht im Klaren warum – die Box war zumindest wirklich quadratisch. Auch die „Asymmetrie“ der Antwort ist für meinen Geschmack größer, als es eine Ungenauigkeit in der anfänglichen Positionierung des Vehikels erklären kann. Was außerdem unangenehm auffällt, ist die teilweise Zerklüftung der gemessenen Peaks (siehe z. B. bei 135°, also der zweiten Ecke der Box). Die insgesamt etwas grobe Quantisierung in der Entfernungsdimension rührt daher, dass ich nur ein Byte für die Kodierung der Entfernung verwende und ein LSB dabei 1 cm entspricht – ggf. werde ich hier noch anders Skalieren. Auf jeden Fall wird deutlich, dass mögliche Orientierungsalgorithmen Mittelungen über einen gewissen Drehwinkel verwenden müssen, sonst gibt’s Gezappel. Daran bastel ich gerade… Quellcodes, BASCOM und Matlab, poste ich dann in kürze auch endlich mal, ich will sie vorher noch aufräumen.
Keine Kommentare:
Kommentar veröffentlichen