Hallo Georgio,
ich versuche die Begriffe mal zu sortieren. Vor einiger Zeit hat mir das auch alles nichts gesagt, aber man lernt ja dazu.
IMU steht für Interial measurement unit und ist in der Regel ein 3-Achs Lagesensor (Gyroskop) kombiniert mit einem 3-achs Beschleunigungssensor. Manchmal noch mit einem Kompass. Eine IMU wird genutzt zur Kurskorrektur, etwa wenn der Roboter gerade aus fahren soll, durch Schlupf oder Unebenheiten sich aber dreht. Ebenfalls wird es zum Erkennen von Kollisionen genutzt sowie zum Erkennen von Anheben oder Auffahren/Umfallen.
Eine IMU ist eigentlich heutzutage in jedem Roboter verbaut. Auch die selbstgebauten ala Ardumower, Liam oder Teensy nutzen dies.
Lidar ist ein Laser Distanzmesser, es gibt diese in diversen Ausführungen, etwa fix positioniert oder unterschiedliche Winkel. In Robotik sind das meist 360 Grad Lidar Systeme. Durch einen rotierenden (360Grad) Laser wird eine 2D Abbildung der Umgebung des Roboters erstellt. Die Einheit misst kontinuierlich die Distanz zum nächsten Hindernis. Durch Kombination mit der aktuellen Winkelposition des Lasers kann man so eine Karte erstellen. Dies dient meist zur Erkennung von Hindernissen, mit der Karte kann man der Roboter aber auch seine eigene Position auf der Karte ermitteln (Lokalisierung).
Bei Lidar unterscheidet man zusätzlich zwischen solchen, die per Triangulation die Distanz messen. Einfallswinkel = Ausfallswinkel, Abstand zwischen Laser Diode und dem auftreffen der Erkennungsfläche und etwas Mathe, schon hat man den Abstand. Zudem gibt es TOF (time-of-flight) Sensoren, welche die Signallaufzeit zwischen senden und erkennen des Lasers messen. Das war immer ein Problem, Lichtgeschwindigkeit ist nunmal schwer zu beherrschen. Man hat dies aber (wie auch immer) technisch gelöst. TOF Einheiten sind erheblich kleiner als die anderen und angeblich günstiger/einfacher herzustellen.
Lidar Systeme kommen bei Rasenmähern nie vor (zu teuer), in fahrenden Robotern in Lagerhallen oder ähnliches sind die aber seit Jahren Standard. Hochpreisige Autos nutzen dies auch gern zur Kollisionserkennung / Bremsassistent, autonomes Fahren ist ohne gar nicht denkbar.
ROS steht für Robot Operating System. Dabei läuft auf dem Roboter ein Linux System (Ubuntu), welches alle möglichen Sensordaten empfängt, bewertet und darauf Entscheidungen trifft. ROS findet man eher im akademischen Bereich, selten in konkreten Produkten. Es ist aber Standard bei Robotern, die wirklich Autonom agieren müssen (Marssonden, Drohnen, Roboter die sich auf Beinen bewegen).
Bisher habe ich alle Roboter ähnlich wie den Ardumower gebaut. Es gab also einen Arduino oder ähnliches, für den eine entsprechende Firmware programmiert wurde. Das funktioniert tadellos, ist weit verbreitet und erprobt. Da ich aber gern neue Dinge ausprobiere, wird meine Version des HoverMower definitiv mit ROS laufen. Ziel ist es, den Roboter intelligent durch den Garten zu bewegen, kontrollierte Bahnen fahren, Hindernisse erkennen, klassifizieren und entsprechend umfahren. Personen und Tiere im Gefahrenbereich erkennen und entsprechend handeln usw.
Wer Interesse an den Hoverboard Motoren für Mähroboter hat, ist mit dem Chassis bestimmt gut bedient. Bisher passt alles perfekt zusammen. Ich rate aber gegenwärtig davon ab, meinen Weg der Software und Elektronik zu folgen, wenn keine Kenntnisse in Linux und Robotik vorhanden sind. Es wird teuer (Lidar, Stereo Tiefenkamera, NVidia Jetson als PC) und definitiv frustrierend. Es braucht viele Versuche, bis man es halbwegs verstanden hat und es läuft. Danach kommt schon direkt das nächste Problem. Ob der Roboter jemals seiner Bestimmung zugeführt werden kann, steht in den Sternen.
Wenn du aber klassisch mit Arduino, STM32 und Co. programmierst, kann das durchaus interessant werden. Die Hoverboard Motoren werden mit einfachen Kommandos über serielle Konsole gesteuert. Sogar per PWM oder analoge Signale kann man die ansteuern. Wenn das mit ROS bei mir nichts wird, werde ich die Software und Elektronik ebenfalls wieder auf altbekanntes zurückführen.