Ich kann es fast kaum glauben, aber nach nun endlich 1,5 Jahren, hat sich der Kreis geschlossen und ich kann meinen Rasenmähroboter welchen ich nun Edison getauft habe in Betrieb nehmen. Gestern habe ich ca. 230m Kabel verlegt.
Das Projekt begann mit zwei Due und einem selbstgebauten Chassis. Bin dann aber auf das Ardumower Chassis umgestiegen. Als der DUE auf der Arduino Webseite als retired gemarkt wurde, bin ich dann auf STM Nucleo umgestiegen - retired wurde zurückgenommen nachdem die beiden Arduino Fraktionen sich geeinigt habe.
Der Mower hat folgende Eigenschaften:
Chassis und Motoren vom Ardumower
STM32 NUCLEO-F446RE als Perimeter Empfänger
STM32 NUCLEO-F411RE als Steuerplatine
Zwei Sabertooth 2X25 V2 regenerative dual motor driver
Zwei Perimeterempfänger vorne
Ein Perimeterempfänger hinten
Ein Rundumbumper mit Druckwellenschlauch
Ein Ultraschallmodul SRF08
Steuerung über Bluetooth
Encodersignale gefiltert und über SchmittTrigger an die MCU angeschlossen
Perimeter Sender vom Ardumower. Allerdings hat das von mir verwendete Signal 60 Zeichen (Ardumower hat 19)
Ladestation durchfahrend
Software:
NUCLEO-F446RE mit System Workbench for STM32 und STM32Cube HAL umgesetzt. 8-faches Oversampling. Jede Spule hat eigenen AD Wandler und DMA Channel
NUCLEO-F411RE mit mbed programmiert.
Zwei Mähverhalten: Gardena Mode, Workx Mode
AI mit Behaviour Tree umgesetzt
5 Verhaltensmodi: Charging, GoToArea, Perimeter Tracking, FindPerimeter, Mowing
Fahrgeschwindigkeit 1,3km/h.
Fahrgeschwindigkeit wird gesenkt, wenn Leistung des Mähmotors eine Schwelle überschreitet
Fahrgeschwindigkeit wird gesenkt, wenn kurz vor Perimeterüberfahren oder nahe Hinderniss
Erkennung von Dreiecken im Perimeterkabel für die schnelle Rückkehr
One Bounce Algorithmus für Perimetertracking.
Besondere Herausforderung im Garten:
Geoboarder trennt Rasen von Beet. Ziel ist, dass diese Kante gemäht wird, daher benötige ich große Räder vorne.
Eine enge Durchfahrt ca. 1m zwischen Kabel
Eine enge Passage ca. 1,5m zwischen Kabel, die auch gemäht werden soll
Diverse Hindernisse nicht ausgegrenzt
Abstand Hindernis - Perimeter < 1m
Perimeterschleife:
Länge ca. 230m. Keine Inseln.
Der Sender wurde auf 10V eingestellt. Die Perimeterschleife hat einen Widerstand von 4,57 Ohm. Ich musste noch einen 24 Ohm Widerstand in Reihe dazuschalten, ansonsten haben die Verstärker am Kabel übersteuert. Somit habe ich aktuell ca. 0,35A Perimeterstrom.
Das Outdoortesten kann nun endlich beginnen. Leider habe ich die nächsten 3 Wochen kaum Zeit.
Anbei ein paar Bilder und den BHT als PDF.
Wenn ich wieder Zeit finde, werde ich dann noch paar Videos reinstellen. Bis dahin frohes Robbi bauen :woohoo:
Das Projekt begann mit zwei Due und einem selbstgebauten Chassis. Bin dann aber auf das Ardumower Chassis umgestiegen. Als der DUE auf der Arduino Webseite als retired gemarkt wurde, bin ich dann auf STM Nucleo umgestiegen - retired wurde zurückgenommen nachdem die beiden Arduino Fraktionen sich geeinigt habe.
Der Mower hat folgende Eigenschaften:
Chassis und Motoren vom Ardumower
STM32 NUCLEO-F446RE als Perimeter Empfänger
STM32 NUCLEO-F411RE als Steuerplatine
Zwei Sabertooth 2X25 V2 regenerative dual motor driver
Zwei Perimeterempfänger vorne
Ein Perimeterempfänger hinten
Ein Rundumbumper mit Druckwellenschlauch
Ein Ultraschallmodul SRF08
Steuerung über Bluetooth
Encodersignale gefiltert und über SchmittTrigger an die MCU angeschlossen
Perimeter Sender vom Ardumower. Allerdings hat das von mir verwendete Signal 60 Zeichen (Ardumower hat 19)
Ladestation durchfahrend
Software:
NUCLEO-F446RE mit System Workbench for STM32 und STM32Cube HAL umgesetzt. 8-faches Oversampling. Jede Spule hat eigenen AD Wandler und DMA Channel
NUCLEO-F411RE mit mbed programmiert.
Zwei Mähverhalten: Gardena Mode, Workx Mode
AI mit Behaviour Tree umgesetzt
5 Verhaltensmodi: Charging, GoToArea, Perimeter Tracking, FindPerimeter, Mowing
Fahrgeschwindigkeit 1,3km/h.
Fahrgeschwindigkeit wird gesenkt, wenn Leistung des Mähmotors eine Schwelle überschreitet
Fahrgeschwindigkeit wird gesenkt, wenn kurz vor Perimeterüberfahren oder nahe Hinderniss
Erkennung von Dreiecken im Perimeterkabel für die schnelle Rückkehr
One Bounce Algorithmus für Perimetertracking.
Besondere Herausforderung im Garten:
Geoboarder trennt Rasen von Beet. Ziel ist, dass diese Kante gemäht wird, daher benötige ich große Räder vorne.
Eine enge Durchfahrt ca. 1m zwischen Kabel
Eine enge Passage ca. 1,5m zwischen Kabel, die auch gemäht werden soll
Diverse Hindernisse nicht ausgegrenzt
Abstand Hindernis - Perimeter < 1m
Perimeterschleife:
Länge ca. 230m. Keine Inseln.
Der Sender wurde auf 10V eingestellt. Die Perimeterschleife hat einen Widerstand von 4,57 Ohm. Ich musste noch einen 24 Ohm Widerstand in Reihe dazuschalten, ansonsten haben die Verstärker am Kabel übersteuert. Somit habe ich aktuell ca. 0,35A Perimeterstrom.
Das Outdoortesten kann nun endlich beginnen. Leider habe ich die nächsten 3 Wochen kaum Zeit.
Anbei ein paar Bilder und den BHT als PDF.
Wenn ich wieder Zeit finde, werde ich dann noch paar Videos reinstellen. Bis dahin frohes Robbi bauen :woohoo: