Auf dieser Seite wird beschrieben, wie Sie den Android 13-Controller zusammenbauen, der die Bewegung eines Sensorfusions-Teststands und die Beleuchtung für ITS-in-a-Box steuert. Der Sensorfusionstest ist Teil der Camera Image Test Suite (Camera ITS) in der Compatibility Test Suite (CTS). Der Android 13-Controller ermöglicht die Automatisierung durch Steuerung der Riggbeleuchtung und des Servomotors für Testszenen, die eine Drehung und Beleuchtungssteuerung erfordern.
Controller für Android 13 – Übersicht
ITS-in-a-Box bietet eine einheitliche Testumgebung mit einem festen Abstand zwischen dem Testtablet und dem Testsmartphone sowie eine gleichmäßige Beleuchtung ohne externe Lichtquelle. Der Android 13-Controller automatisiert sowohl die Servosteuerung als auch die Beleuchtungssteuerung. Außerdem muss das Testgerät für Sensorfusions-Szenentests nicht mehr manuell gedreht und die Beleuchtung für beleuchtungsgesteuerte Tests nicht mehr manuell ein- und ausgeschaltet werden.
Servo- und Beleuchtungssteuerung in Testaufbauten
Das Sensorfusionstestgerät sorgt für eine feste Bewegung des Smartphones, um reproduzierbare Tests zu ermöglichen. Das Smartphone wird vor einem Schachbrettmuster gedreht, um Bilder an verschiedenen Positionen aufzunehmen. Bei test_sensor_fusion dreht das Servo das Smartphone in etwa 2 Sekunden um 90 Grad um die Kamera-Mittelachse und wieder zurück. Bei test_video_stabilization dreht der Servo das Smartphone um die Kamera-Mittelachse um 10 Grad und wieder zurück, um die Bewegung des Smartphones beim Aufnehmen eines Videos beim Gehen nachzuahmen. Abbildung 1 zeigt zwei Smartphones, die sich in einem Testgerät für die Sensorfusion bewegen. Abbildung 2 zeigt ein Smartphone, das sich in einem Sensorfusionstestgerät bewegt.
Abbildung 1: Smartphonebewegung im Testgestell für test_sensor_fusion
Abbildung 2: Smartphonebewegung im Testgestell für test_video_stabilization
Servomotorsteuerung
Die analogen Servomotoren im Testgestell sind Positionsservos, die über eine Pulsweitenmodulation (PWM) gesteuert werden. Ein typisches Beispiel für eine Positionssteuerung ist in Abbildung 3 dargestellt. Das Steuersignal hat eine Periode von 20 ms. Wenn die Pulsbreite auf die Mindestbreite geändert wird, bewegt sich der Motor in die Neutralposition. Wenn die Pulsbreite auf die maximale Breite geändert wird, dreht sich der Motor um 180 Grad im Uhrzeigersinn.
Abbildung 3: Beschreibung einer typischen Servosteuerung
Beleuchtungssteuerung
Damit die Bewegung des Servomotors und die Beleuchtung über einen Hostcomputer gesteuert werden können, benötigt das Sensorfusionstestgerät eine USB-Verbindung. Der Android 13-Controller verwendet ein USB-angeschlossenes Arduino UNO R3-Board mit einem benutzerdefinierten Routing-Board (oder Shield) oben. Der Android 13-Controller kann bis zu drei Rotator-Servos für Sensorfusions-Rigs und bis zu drei ITS-in-a-Box-Beleuchtungssysteme oder ein Sensorfusions-Rig von einem einzigen Hostcomputer aus steuern.
Mit der Version 3.0 des Android 13-Controllers können Nutzer den automatischen Reset deaktivieren, wenn der Arduino-Serienport über USB geöffnet wird. Die Funktion zum automatischen Zurücksetzen ist aktiviert, wenn der Controller an einen anderen Host angeschlossen oder für andere Testfälle verwendet wird. Nutzer können die automatische Neustartsfunktion über einen physischen Schalter auf dem Controller aktivieren oder deaktivieren.
Der Android 13-Controller kann mit jeder ITS-in-a-Box-Kamera verwendet werden. Der Android 13-Controller kann mit jedem ITS-in-a-Box für Kameras (RFoV, WFoV, modular) oder Sensor Fusion verbunden werden, um beleuchtungsgesteuerte Tests durchzuführen. Ab Android 15 sind alle beleuchtungsgesteuerten Tests in scene_flash enthalten und können mit dem Sensorfusions-Box ausgeführt werden, außer scene_low_light, für das ein Tablet für die Diagrammanzeige erforderlich ist und das mit dem ITS-in-a-Box für Kameras ausgeführt werden muss.
Für Tests unter scene_flash und scene_low_light ist eine dunkle Umgebung mit ausgeschalteten Lampen erforderlich, um die automatische Blitzfunktion auf den Test-Smartphones auszulösen. Abbildung 4 zeigt, wie die Lampen in ITS-in-a-Box vom Android 13-Controller ausgeschaltet und eingeschaltet werden.
Abbildung 4: Lampen werden für test_auto_flash aus- und eingeschaltet
Überarbeitungsverlauf
In der folgenden Tabelle wird der Änderungsverlauf des Android 13-Controllers beschrieben. Außerdem enthält sie Downloadlinks zu jeder Version der Produktionsdateien.
Datum | Revision | Download der Produktionsdatei | Änderungsprotokoll |
---|---|---|---|
August 2024 | 3 |
|
|
Dezember 2022 | 2,2 |
|
|
März 2022 | 1 |
|
Controller-Einrichtung unter Android 13
In diesem Abschnitt wird beschrieben, wie Sie einen Android 13-Controller einrichten.
Erforderliche Komponenten
Sie können den Android 13-Controller bei einem unserer qualifizierten Anbieter kaufen oder selbst erstellen. Die Produktionsdatei besteht aus einer Gerber-Datei für die Platine, der Stückliste für die Platine, Informationen zur Platinenplatzierung und einer STEP-Datei für das Gehäuse. Informationen zum Herunterladen der Produktionsdatei finden Sie in der Tabelle unter Überarbeitungsverlauf.
Wenn Sie Ihren eigenen Controller bauen, benötigen Sie ein Arduino UNO R3-Board. Wenn Sie den Controller bei einem qualifizierten Anbieter kaufen, ist der Arduino enthalten.
Das Gehäuse für den Android 13-Controller ist eine optionale, aber empfohlene Komponente, die den Controller schützt und nicht verwendete USB-Anschlüsse blockiert, um Einrichtungsfehler zu vermeiden. Informationen zu Preisen und Optionen für den Controller erhalten Sie von einem qualifizierten Anbieter.
Einrichtung
So richten Sie den Android 13-Controller ein:
Schließen Sie die 12‑V-Adapter (für die Beleuchtung) und die 5‑V-Adapter (für die Servos) an die entsprechenden Stromanschlüsse an (Abbildung 5).
Abbildung 5: Standort des Netzteils
Schließen Sie die ITS-in-a-Box- oder Sensor Fusion-Box-Lampen an eine der Ausgangsbuchsen des Beleuchtungskanals an (Abbildung 6). Verwenden Sie je nach Steckertyp der Beleuchtung einen Adapter (Abbildung 7).
Abbildung 6 Speicherort für die Ausgabe von Beleuchtungskanälen
Abbildung 7. Adapter, der die Stromversorgung der Beleuchtung mit dem Controller verbindet
Wenn Sie die Szenen sensor_fusion einrichten möchten, verbinden Sie das Servo mit einem der Servokanal-Verbindungsheader.
Abbildung 8. Servoanschluss
Bei Controllern der Version 3.0 muss der Schalter für den automatischen Neustart auf
Enable
gestellt sein, wenn der Controller mit einem neuen Host verbunden wird.Bei Version 3.0 ist der Controller mit einem Schalter für den automatischen Neustart ausgestattet, der aktiviert oder deaktiviert werden kann. Wir empfehlen, den Schalter für den automatischen Reset während des Tests auf
Disable
zu stellen, damit zu Beginn jedes Tests nicht alle LEDs kurzzeitig ausgeschaltet werden, daDisable
die Kommunikation mit dem Arduino-Controller herstellt.its_base_test
Dies ist wichtig, wenn parallele Tests ausgeführt werden (ITS läuft gleichzeitig mit dem Beleuchtungssystem des Teststands, das mit demselben Controller verbunden ist).Abbildung 9. Schalter für automatisches Zurücksetzen
Verbinden Sie den Controller über ein USB-A-Kabel mit dem Host.
Abbildung 10. USB-A-Anschluss zum Host
Abbildung 11 zeigt ein Beispiel für eine fertige Android 13-Controllerkonfiguration für ein Beleuchtungssystem und ein Servo.
Abbildung 11 Controller-Einrichtung für Android 13 abgeschlossen
Softwaresteuerung über den Host
Microcode kann auf den UNO heruntergeladen werden, um die PWM-Pins den Motorsignalen zuzuweisen und die Pulsbreitenbereiche für verschiedene Winkel zu definieren. Der Mikrocode für die Servodrehsteuerung der sechs HS-755MB-Motoren ist unter Weitere Ressourcen enthalten. Dieser Abschnitt enthält auch einen Link zu einem einfachen Programm namens rotator.py
, mit dem die Servos gedreht werden.
Android 13-Controller verwenden
Verwendung von Kameras für intelligente Verkehrssysteme:
python tools/run_all_tests.py device=device_id camera=0 rot_rig=arduino:1 scenes=sensor_fusion
Mit dem enthaltenen Testscript:
python rotator.py --ch 1 --dir ON --debug