Für die DWM1000 habe ich diese Arduino-Bibliothek verwendet: https://github.com/thotro/arduino-dw1000
Für die DWM1000 habe ich diese Arduino-Bibliothek verwendet: https://github.com/thotro/arduino-dw1000
Update: Habe einen 4 DoF OpenManipulator mit RealSense D435 Tiefenkamera auf den Wild Thumper gesetzt. Als Software wird natürlich MoveIt eingesetzt, damit wird die inverse Kinematik und der Pfad automatisch berechnet. In der folgenden Animation ist das sichtbar:
1. Es wird der Zielpunkt durch Ziehen mit der Maus vorgegeben
2. Mit "Plan und Execute" wird die Bewegung zum Zielpunkt ausgeführt.
Bild hier
Die Objekterkennung per Tiefenkamera habe ich allerdings noch nicht gemacht.
Geändert von Defiant (27.08.2020 um 13:57 Uhr)
schon beeindruckend geschmeidig!
Nochmal zum Verständnis: das alles läuft nicht autonom auf dem Auto, oder etwa doch?
Ehrlich gesagt wirkt das nur in der Animation so geschmeidig, die Aktualisierungen erfolgen "nur" mit 10Hz, schneller bekommt der AVR, der die Befehle- und Statuswerte vom I2C zum Half Duplex UART übersetzt, das nicht hin.
In diesem Fall wird die Kinematik und der Pfad auf einem PC berechnet. Bei ROS ist das ja relativ egal auf welchem Rechner eine Node läuft. Ich hab die Berechnung auf dem Roboter noch nicht ausprobiert, dürfte aber einige Sekunden länger dauern.
Es gibt eine Basisstation über die der Roboter mit 12V versorgt wird (Dock.jpg) mit Gegenstück am Rover (wt_aft.jpg).
Die Umschaltung auf den Strom der Basisstation erfolgt über eine ORing-Schaltung. Das setzt voraus, dass die Basisstation eine höhere Spannung als die beiden Akkus liefert. Da die LSD-NiMH Batterie auf dem Roboter im angedockten Zustand abgekoppelt ist, wird sie geladen. Der Roboter stellt die aktuelle Systemspannung und den Strom über eine Message zur Verfügung.
Die Abfolge des andockens ist wie folgt:
1. Benutze die Standard Navigation um den Roboter in Richtung der Basisstation zu fahren, die Genauigkeit der Position liegt aber nur bei 15cm und 6°, die erlaubte Toleranz der Dock-Kontakte liegt aber bei 4cm. Auch könnte die Position der Basisstation geringfügig geändert worden sein.
2. Bewege die Kamera nach hinten (wt_dock_position.jpg).
3. Ermittle die Abweichung der Position des Roboters zu Basistation mittels aruco_detect, welches mir die 6-DOF Position des Fiducial-Markers (Quasi QR-Tag) liefert (wt_fiducial_dock.jpg).
4. Wenn die Y-Achse (Grüne Linie) des Fiducial eine Abweichung von der Mitte hat korrigiere die Translation durch schräges fahren
5. Wenn die Rotation um die Y-Achse nicht 0° beträgt korrigiere die Abweichung durch Drehen
6. Falls notwendig wiederhole ab Schritt 4.
7. Wenn Position des Roboters exakt vor der Basistation fahre Rückwärts bis Systemspannung über der maximalen Akkuspannung liegt.
8. Angedockt
Nachteile:
- Die Erkennung des Fiducial-Marker funktioniert nur bei Licht
- Der Widerstand der Dock-Kontakte ist sehr hoch, ich habe einen Spannungsabfall von bis zu 2V.
- Es wird derzeit nur der LSD-NiMH-Akku geladen, für den LiFePO4-Akku habe ich derzeit keine Ladeschaltung.
- Ich zähle nicht den Strom der in die Batterie fließt, sondern nur den Entladestrom. Beim Abdocken gehe ich davon aus, der Akku ist voll. Dies kann bei einem zu kurzem Dockvorgang dazu führen, dass der errechnete deutlich über dem tatsächlichem Ladeezustand liegt.
- Der Staubsaugerroboter kann die Fläche um/unter der Basisstation nicht putzen solange der Roboter angedockt ist
Hallo
Der Kontaktübergangswiderstand könnte ein Problem sein, ich weiß nicht, ob Holomino das vollständig beseitigen konnte. Da mir das so aber nicht behagt, habe ich mich für eine andere Lösung entschieden. Ich denke, damit habe ich auch einen geringeren Übergangswiderstand. Die Positionierung muss allerdings sehr viel genau genauer sein. Nachzulesen in diesem Thread (weiß nicht, ob Du den schon kennst). Ist sicher nicht jedem sein Ding. Ich sehe es als Herausforderung, weil ich auf diese Weise ein Ladegerät verwenden kann, das ich nicht selbst bauen muss.
Die Erkennung des Markers: wenn Du eine Lampe dabei hast, funktioniert es ja sicher auch. Ansonsten kann man den Code auch auf einem Display anzeigen, wird von Kameras auch erkannt. Das habe ich zumindest mit dem Computerbildschirm ausprobiert. Ist vielleicht sogar besser für die Erkennung geeignet. Der Marker erinnert mich an April-Tags.
MfG
Geändert von Moppi (15.11.2020 um 20:33 Uhr)
Lesezeichen