-
-
Erfahrener Benutzer
Robotik Einstein
Hallo,
danke für die rege Beteiligung am Thread.
@ mare crisium: Die Darstellung der Lenkung über Vektoren gefällt mir sehr gut. Ich hoffe, ich kann mich da mal rein vertiefen. Zur Zeit erarbeite ich mir da noch viel primitivere und auf tieferem Niveau liegende Grundlagen.
Übrigens: So gute Darstellungen eines Themas von allgemeinem Interesse hätte doch eigentlich die Präsentation in einem eigenen Thread/Tutorial/Artikel verdient.
@ Joe am Berg: Zu deiner Frage nach Software und Bildverarbeitung kann ich gern was schreiben. Die Programmiersprache ist ja - wie schon einmal wo erwähnt - egal. Delphi ist eine graphische Entwicklungsumgebung für Object Pascal.
Graphische Entwicklungsumgebung heisst, ich kann für mein Controll Center, mit dem ich das Fahrzeug steuere und automatisiert steuern lasse, die Bedien- und Anzeigeelemente einfach auf eine Programmoberfläche ziehen. Ob es das mit ähnlichem Komfort auch für ein C Derivat gibt, weiss ich nicht, was ich bisher gesehen habe, war meilenweit davon entfernt. Im Vergleich zu C ist Object Pascal viel restriktiver. Ich muss mehr Dinge explizit angeben, damit der Compiler etwas zulässt. Das heisst bei Miniprogrammen hat man geringfügig mehr Arbeit, bei ausgewachsenen Programmen hat man viel viel weniger Arbeit. Fehler werden schon beim Compilieren zurückgewiesen, die sonst erst mühsam zur Laufzeit aufgespürt werden müssten. Das wichtigste aber ist ein Vollständiger Zugriff auf das Windows API. Das Windows API stellt Funktionen und Messages ans System zur Verfügung, die den Vollen Zugriff auf die Maschine erlauben.
So habe ich Funktionen, um auf den USB Joystick zu zu greifen, wenn ich damit Handsteuerung betreibe. Die Steuerbefehle aus der Handsteuerung oder aus den Automatikfunktionen werden über die Soundkarte aus gegeben. Also wird ein Zugriff auf die Soundkarte benötigt. Auch das stellt das Windows API zur Verfügung.
Und auch auf die Kamera kann ich mit dem Windows API zugreifen. Da gibts verschiedene Funktionen, um die Kamera zu erkennen und einzustellen. Und es gibt einen Weg, eine eigene Routine zu schreiben, die bei jedem neuen Frame der Kamera aufgerufen wird. Und dort ist dann auch dieser Frame als Bitmap verfügbar.
Dieser Frame wird abgespeichert und von anderen Programmteilen analysiert. Wie die LED gefunden werden, hab ich schon ein wenig beschrieben. Dort ist noch Optimierungsspielraum drinnen, aber es reicht einmal, um an der autonomen Steuerung zu arbeiten. Das Kamerabild ist eine Schrägansicht und die rechne ich in einen Grundriss um. Dort geschieht dann die autonome Navigation. Im Controllcenter habe ich ein Live Kamerabild. Bestimmte Berechnungen werden dort über das Kamerabild drübergezeichnet, um die Bildverarbeitung mit einem Blick kontrollieren zu können. Neben dem Kamerabild befindet sich die Kartendarstellung, die ebenfalls in Echtzeit aktualisiert wird.
Das Bedienerinterface sieht zur Zeit so aus:
http://www.jbergsmann.at/Bedienerinterface.gif
wobei der Inhalt vom Kamerafenster jetzt nur durch die Bildkompression fürs Forum verloren gegangen ist. Bei aufgedrehtem Helligkeitsregler sieht das so aus.
Bild hier
Das Bedienerinterface ist so ein ziemlicher Wildwuchs, einfach weil für jeden Test schnell irgendein zusätzliches Element eingefügt wird. Erst nach Abschluss der Entwicklung und der Tests wird aufgeräumt.
Bei mehr Informationsbedarf bitte ganz konkret fragen.
grüsse,
Hannes
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen