PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anfangsplanung: autonomer Packesel



amrosik
27.04.2016, 18:33
Hallo verehrtes Forum,

ich benötige für meine Zwecke (also nicht als Selbstzweck) einen Roboter mit folgenden Eigenschaften, und benötige dabei Eure Hilfe bei der Planung.

Zuerst die Eigenschaften. Wie der Titel schon sagt, brauche ich einen Packesel. Da wir hier alle halbwegs zivilisiert sind, und keine Tiere qäulen, muss das ein Roboter sein:

Der Roboter soll ein Gepäck von etwa 10 kg (sein Eigengewicht nicht eingerechnet) über eine Strecke von mindestens 2 km rumschleppen kann, ohne schlapp zu machen
Die Strecke, auf die er sich bewegt, wird vorher "unter Aufsicht" abgefahren. Der Roboter soll in der Lage sein, diese Strecke irgendwann selbstständig fahren zu können
Der Roboter soll in der Lage sein, ungeplanten Hindernissen auszuweichen, und zu versuchen, wieder auf die Strecke zu kommen


Das waren alle Anforderungen. Also eigentlich nichts ungewöhnliches.

Da es sich nicht um einen Selbstzweck handelt, ist eine elegante Umsetzung nicht entscheidend. Geschwindigkeit und Lebensdauer sind auch relativ egal. Hauptsache die Aufgabe wird erfüllt.

Jetzt gibt es offene Punkte zum Thema Planung. Ich würde notfalls auch auf ein vorhandenes System zurückgreifen, falls es sowas gibt. Ich kenne in Moment keins.

Jetzt zur konkreteren Planung. Eine Trennung zwischen Mechanik und Elektrotechnik ist schwierig, weil diese voneinander abhängen. Trotz all dem ein Versuch:

Mechanische Aspekte


Ich denke das einfachste wäre ein vierrädriges Fahrzeug. Eine Suspension ist mir für sowas zu aufwändig. Der Weg ist größtenteils gepflastert und es geht etwas auf und ab. Nur ein kleiner Abschnitt des Weges ist Wald, aber immernoch für Spaziergänger gut begehbar. Es würde also reichen, 4 Gummireifen ohne Suspension zu verwenden.
Motorisierung: Ist es gut, einen starken DC-Motor für die beiden Hinterräder über ein Differntial anzutreiben? Oder lieber einzelne Motoren für jedes Rad? Kann man überhaupt solche Miniaturdifferentiale kaufen?
Die Lenkung: hängt natürlich von der Motorisierung ab. Angenommen man nimmt die Variante mit den Differential: Dann würde ich die beiden Vorderräder unmotorisiert lassen, allerdings beide Vorderräder über einen Schrittmotor um eine Achse drehbar lagern. Wirklich eine professionelle Lenkung wie in PKWs wäre hier wieder zu viel Aufwand.
Wie werden Räder eingebaut? Da das Gewicht des Roboter relativ groß ist, wäre es glaube ich nicht gut, die Räder direkt an die Motorachsen anzubringen.
Zum Chassis: Professionell wäre, einen CAD Entwurf zu haben. Da ich allerdings noch nicht weiß, wie das Ding am Ende aussehen soll, brauche ich eine flexible Lösung: Gibt es Holz, das man leicht modellieren kann, und dann aushärten lassen kann (z.B. im Ofen)?


Navigation und Elektronik


Der Roboter muss wissen wo er ist. Hierzu sind mindestens IMU und GPS nötig. (EDIT:Kompass nicht zu vergessen) Die Zustandsgrößen werden dann über den Kalmanfilter geschätzt. Wie lässt sich diese Methode mit Odometrie kombinieren? Ich könnte außerdem noch einpaar RFID Transponder irgendwo an definierten Positionen verstecken oder vergraben.
Wie verklickert man dem Roboter am Besten die Route? Wenn ich mich nicht irre, dann muss die "wahre" Route in Form von absoluten Positionsdaten vorliegen. Die müsste ich dann erstmal erstellen. Wie mach ich das? (Eine andere Möglichkeit wäre es, dem Roboter die Rounte "beizubringen". Gibt es da vorhandene Machine Learning Strategien? Bringt das Vorteile?)


Vielen Dank erstmal fürs durchlesen.

Mit freundlichen Grüßen,
Amrosik

oberallgeier
27.04.2016, 19:23
.. Ich würde notfalls auch auf ein vorhandenes System zurückgreifen, falls es sowas gibt. Ich kenne in Moment keins ..Gut, der big dog (http://www.bostondynamics.com/robot_bigdog.html) von Boston Dynamics kann mehr als zehn Kilo schleppen (https://www.youtube.com/watch?v=W1czBcnX1Ww), das brauchst Du ja garnicht. Problem ist die Lieferung. Die erfolgt wohl kaum ins Ausland . . . Andererseits ist das Ding bald zehn Jahre alt . . .

amrosik
27.04.2016, 19:40
den könnt ich mir sowieso nicht leisten. sollte schon berädert sein, sonst wirds teuer.

i_make_it
27.04.2016, 20:17
Such doch mal zur Ideenfindung in der Google Bildersuche nach "4wd off road robot 20kg".
Es gibt Kunststoffe die man im heißen Wasser weich bekommt und so modelieren kann.
Holz ist mir jetzt in dem Zusammenhang nicht bekannt.
Man kann Balsaholz nehmen und dann GFK laminieren.

Rabenauge
27.04.2016, 20:26
Bei sowas guck ich immer zuerst, was es schon gibt, und man evtl. nutzen könnte.

10 Kilo transportieren...da fallen mir sofort diese elektrischen Kinder-Autos fürn Spielplatz ein. Tragen zwei Kids, also schon mal mehr als nötig.
Haben Antrieb und Lenkung schon eingebaut (deine Idee mit der mittig zu drehenden Vorderachse ist Humbug, auf nem Waldweg klappt das nie und nimmer ordentlich), anstelle des Lenkrades könnte man ja nen Wischermotor oder ähnliches nehmen. Dazu Encoder..
Was ich jetzt nicht weiss. kommen die Karren 2km weit? Falls nicht, kann man immer noch nen zusätzlichen Akku einbauen, es sind immerhin rund 10 Kilo Reserve vorhanden (wenn ich von nem Gewicht pro Kind von 10 Kilo mal ausgehe)- da kann man mit LiPo _richtig_ was machen.

Alternative: nen geeignetes Modellauto mit Anhänger. 10 Kilo ziehen ist soo schwer gar nicht. Irgendwas Crawlerähnliches oder Monstertruck mit drehmomentstarken Motoren, evtl. geändertes Getriebe.
Anhänger aus Aluprofilen und _irgendeiner_ Achse...

Grad eben gefunden, das da: http://www.baby-walz.de/index.php?a833&ltnr=1462569508&L=0&orderNumber=5853680&mb3_partner=hurra&mb3_partner_param=adw&adword=Babywalz%20DE%20PLA/DE_SAD_PTL1_Spiel_u_Spa%C3%9F&utm_medium=sea&utm_source=google.de&utm_campaign=DE_SAD_PTL1_Spiel_u_Spa%C3%9F&utm_content=pla&gclid=CPO25Myyr8wCFeIp0woduK0AZw&product=2913413741610
Trägt nur ein Kind, aber mit den geforderten 10 Kilo ja ausreichend. Sicher kann man nen bissel grösseren Akku (was auch immer da drin ist) rein frickeln.
Vorteil: die Lenkung. Ich weiss nicht, ob bei den Kinderautos mehrere Umdrehungen am Lenkrad nötig sind, um voll ein zu lenken, bei dem Teil da ganz sicher nicht. Kann man also sicher mit nem starken Servo lösen- das spart _einige_ Bastelei.
Obendrein: deutlich billiger als nen halbwegs brauchbares Modellauto in ausreichender Grösse.

Alle drei Varianten definitiv besser als ein Eigenbau von jemandem, der von der Materie keine Ahnung hat, und irgendwelchen Nosens zusammenschräubselt (nicht übel nehmen bitte, aber als ich deinen Vorschlag mit der Lenkung las.....). Das wird auch nicht billiger.

Wichtig: Holz wächst. Das wird nich gebacken, im Ofen oder so.....:)

Wenn es unbedingt Eigenbau sein soll- vier Räder, ok, zwei Motoren, ok, an der Hinterachse, auch ok- kein Differential bei nem ungefederten Fahrzeug! Da reicht ein Kiesel, und eins der Hinterräder dreht leer-in der Luft.
Lenkung aber als Achsschenkellenkung, nur die ist brauchbar, alles andere wird nix. Drinnen vielleicht, aber draussen-vergiss es.

Planen per Cad ist immer gut- da kann man schön so lange ändern, bis alles passt. Können muss mans aber....unbedingt nötig ist das, wenn meine bisherigen Vorschläge grob befolgt werden, eher nich...

Elektronik: GPS macht Sinn. Odometrie auch. Nen gutes GPS-Modul kann beides selbst zusammensetzen, die billigen nich so gerne....hier macht man es eben selber.
Kompass: wie sollte es, deiner Meinung nach, ohne überhaupt funktionieren?
Wie kann ein GPS im Stand ermitteln, in welcher Himmelsrichtung "vorne" ist?
Was machst du, wenn das GPS mal ne Weile keinen Empfang hat?
Immer braucht man irgendeine Referenz-du wirst keine Odometrie bauen können, die 100m auf nem Waldweg ausreichend präzise funktioniert. Toleranz weniger als 2m. Eher nur einer...

RFID-Tags verbuddeln? Viel Vergnügen. Check mal bitte, wie weit die Transponder reichen, und dann sag mir, wie du die wieder finden willst.
Nicht aussichtslos, aber ne nette Schnitzeljagd. Dann eher irgendwelche anderen Baken, Marker (Reflexfolie o.ä).
Hilfreich wär das allerdings.


Wie bringt man ihm die Route bei- nun, indem man sie einfach auf dem Roboter speichert. So wie du es beschreibst, gibt es eine einzige, die primtivstenfalls aus zwei Punkten besteht: Start und Ziel.
Dazu kommen dann natürlich genauere Wegverläufe, also schon mehr Punkte. Im Grunde wird einfach von Punkt zu Punkt weiter gehangelt.
Besser wäre es evtl (so weit bin ich mit meinem Monster noch nicht, im Moment komm ich nich dazu) den Weg beidseitig mit GPS-Punkten "einzugrenzen".
Speichern kann man sowas z.B. auf ner SD-Karte, dann lassen sich Routen leicht am PC mit irgendeinem Routenplaner erstellen.

Richtig interessant wird die Hinderniserkennung: wie willst du das angehen?
Fakt: im Freien wird das nicht so einfach, wie es klingt...

amrosik
28.04.2016, 20:47
Danke für die Tipps.

Die Idee mit dem Bobby Car find ich klasse.


Alle drei Varianten definitiv besser als ein Eigenbau von jemandem, der von der Materie keine Ahnung hat, und irgendwelchen Nosens zusammenschräubselt (nicht übel nehmen bitte, aber als ich deinen Vorschlag mit der Lenkung las.....).

Kein Problem.

Allerdings habe ich hier einpaar Beispiele gefunden, die auf eine mechanische Lenkung verzichten.
Die beiden folgenden Links zeigen "robotische Plattformen" (so nennt man das anscheinend), die beide auf der Panzerlenkung beruhen:


(http://www.innok-robotics.de/produkte/tx)http://www.innok-robotics.de/produkte/segway/plattformen/440se

http://www.innok-robotics.de/produkte/tx

Der 440se ist ein echtes Monster, der kann 180 kg Beladung schleppen und wiegt selbst über 100 kg. Seine Reifen sind 21zoll im Durchmesser.
Der zweite Link ist ein 6wheeled mit Suspension, und ebenfalls mit Panzerlenkung.

Ich benötige genau den 440se im kleinen Stil:

10cm Bodenfreiheit reichen völlig aus. Ich habe hier wie gesagt kein wirkliches Gelände. Das Schlimmste was passieren kann, ist wenn da ein Ast vom Baum fällt, der 5 cm dick ist. Sonst rührt sich da eigentlich nichts.
Die Länge der Gepäckplattform sollte 80 cm betragen. Die Gepäckplattform ließe sich aber auch, getrennt, auf das Hauptchassis aufsetzen (z.B. mit Säulen als Abstandshalter). In diesem Fall würde eine Chassislänge von 60 cm ausreichen. Dann steht die Gepäckplattform nachher nicht so weit ab.
Für die Breite der Gepäckplattform reichen 30 cm. Was die Breite des Chassis angeht... keine Ahnung. Weniger breit als die Gepäckplattform sollte sie nicht sein, allerdings muss die Brite so gewählt werden, dass sie im Hinblick auf die Panzerlenkung optimal ist. Wenn ich jetzt mal naiv die L x B Werte vom 440se nehme (110.5 × 84.2cm) und runterskaliere, dann kommt man etwa auf 60x50cm, wobei in den 50cm auch die Breite der Reifen mit drin steckt. Also irgendwo zwischen 40 und 45cm.


Panzerlenkung erscheint auf den ersten Blick einfacher als die Achsschenkellenkung, da es bei 4 unabhängigen Motoren nur eine softwarelastige Aufgabe gibt: Und zwar die koordinierte Drehzahlregelung der Motoren (Drehzahlencoder wären also in diesem Fall sogar Pflicht). Die Frage ist: Wie erfolgt die Regelung? Unter dem zweiten Link stand was von "Fuzzy-Logic Drehmoment-Management". Hört sich interessant an. Was ist das? Bringt's was?

Zum Thema Odometrie:
Bei Panzerlenkung ist die Radierung der Reifen größer. Dementsprechend kommen da über eine längere Strecke einige Umdrehungen zusammen, die nichts zum Fortbewegen beigetragen haben. Ist Odometrie mit Panzerlenkung noch vereinbar? Oder hält sich der Schlupf in Grenzen?

Zum Thema Hindernisse:

Richtig interessant wird die Hinderniserkennung: wie willst du das angehen?
Fakt: im Freien wird das nicht so einfach, wie es klingt...
Wieso reicht nicht einfach ein Ultraschallsensor in Fahrtrichtung aus?
Unter der Voraussetzung, dass die Route gut erfasst wurde, und die Wegfindungssoftware funktioniert:
Neue Bäume sollten in der Zeit nicht so schnell wachsen.
Fußgänger sind eigentlich nett und weichen selbst aus, wenn das Ding einem zu nahe kommt.

Zum Thema Route:


Wie bringt man ihm die Route bei- nun, indem man sie einfach auf dem Roboter speichert. So wie du es beschreibst, gibt es eine einzige, die primtivstenfalls aus zwei Punkten besteht: Start und Ziel.

Aber wie kann ich die Positionen denn genau messen? Die GPS-Auflösung ist ja leider für kommerzielle Zwecke begrenzt. Auf welche Weise weichen GPS Koordinaten eigentlich ab? Schwanken die zeitlich? Weichen sie systematisch ab?

Bringt es irgendwas, von einem sebstdefinierten Startpunkt aus los zu laufen, und ein Bewegungsprofil zu erstellen? Sich z.B. genau vor die Haustür stellen, mit dem IMU+GPS+Kompass+Kalmanfilter im Gepäck. Und dann die Strecke bis zum Zielpunkt zu Fuß ablaufen, und wieder zurück. Und das ganze mehrmals wiederholen.
Das Ergebnis müsste dann eine Punktwolke aus kartesischen Koordinaten oder Polarkoordinaten sein, die den Pfad darstellt (oder?)
Und jetzt müsste man diese Punktwolke irgendwie "tiefpassfiltern", also räumlich tiefpassfiltern, dann kriegt man ne halbwegs durchgängige Strecke. Das wären dann halt keine überschaubare Menge von Punkten, wie @Rabenauge beschrieben hat, sondern Hundertausende von Wegpunkten.

Mit freundlichen Grüßen,
Amrosik

Rabenauge
29.04.2016, 00:22
Hm, mal sehen...die beiden "Monster" da von deinen Links _sind_ zweifellos cool-auf den ersten Blick.
Auf den zweiten, nun ja. Der vierrädrige scheint ungefedert- viel Spass bei höherem Tempo. Schon auf Pflaster wird das abartig, von "Gelände" und höheren Geschwindigkeiten fang ich da gar nich erst an.
Zudem würde mich interessieren, was die Panzerlenkung auf weicherem Boden so an Strom braucht-auch das wird abartig sein, grade bei so nem Gewicht.
Kann man machen, ist aber eher Unfug.

Der andere ist sowas wie der grössere Bruder vom Arexx Wild Thumper-aber entschieden besser konstruiert. Der Thumper ist für draussen nämlich viel zu undicht.
Bei dem Innok stört mich aber die Radaufhängung bissel- der muss nen recht hohen Schwerpunkt haben. 10m/s, und dann ne Bordsteinkante. Das gibt nen Looping, wetten?
Für dein Einsatzgebiet _könnte_ das gehen, zumal man den dazu bringen kann, etwas leichter zu drehen, indem man die mittlere Achse stärker belastet.
Kannst dich ja mal erkundigen, was das Ding kosten würde-aber setz dich hin dazu. :)

Generell ist ne Panzerlenkung und Outdoor eher keine saubere Lösung (funktionieren kann vieles, nur wie...), denn grade im Freien braucht man Grip-und der kämpft bei jeder Lenkbewegung dann gegen...
Auch Kettenfahrwerke haben das Problem, je nach Auslegung mehr oder weniger.
Bei Rädern isses aber schlimmer, da die nur punktuell aufliegen.

Wieso ein simpler US-Sensor nicht ausreicht, wird dir klar, wenn du es versuchst. Zum einen entdecken die nicht alles, andererseits kann man damit nicht unterscheiden, ob das Hindernis nur nen Grasbüschel ist oder der Rollator einer Oma. Und dann: schau dir mal das Datenblatt von so nem Ding an. Vor allem in welchen Bereichen der Hindernisse erkennt, dann wird dir ganz schnell einleuchten, dass _einer_ alleine nahezu nutzlos ist. Wo es ist, kann man mit einem überhaupt nicht feststellen, sondern nur "ungefähr vorne"-ahja.
Und nein, natürlich wachsen neue Bäume so fix nicht- aber Radfahrer können schneller da sein, als so ein Sensor überhaupt messen kann (US ist nun mal vergleichsweise langsam), ein Fussgänger auch, wenn er aus dem richtigen Winkel kommt.


Zum GPS: nun, nen gutes schafft durchaus ne Genauigkeit von nem Meter. Mein billiges (kann leider die PPP-Technik nicht) zwei. Damit kann man schon einiges anfangen, oder?
Zusammen mit nen paar weiteren Sensoren geht da was.
Aber mal ganz offen was: wenn _du_ nicht selbst drauf kommst, wie man sich von nem Wegstück die GPS-Koordinaten besorgt, ist ein Kalman-Filter wohl eher dein kleinstes Problem....
Das mit dem Weg ab laufen, kannst du ja mal versuchen, nen Handy mit GPS haste bestimmt. Und ne App, die auch wirklich die Koordinaten und nicht irgendwelchen anderen Sermon anzeigt, gibt es bestimmt auch.
Meins schafft übrigens die ca. 2m, die mein Neo6 kann, nicht wirklich. Leider weiss ich aber auch nicht, wie das im Handy intern arbeitet, ob z.B. SBAS (_das_ wiederum kann das Neo) überhaupt genutzt wird usw. Gibt etliche Möglichkeiten, die Präzision deutlich zu steigern.

Bei Wegpunkten bin ich immer der Meinung, weniger ist mehr. Klar kann man den Weg Zentimeter für Zentimeter beschreiben- aber bekommst du es hin, dass da irgendein Rechner die wirklich wichtigen Punkte erkennt und nicht stur jeden einzelnen zu erreichen versucht?
Ich hatte meinem Monster mal den Auftrag gegeben, nen vorher aufgenommenen Punkt wieder anzufahren.
Also: Fahrzeug hinstellen, Knopf drücken, warten bis das GPS gemessen hat, dann die Stelle markiert, mit dem Auto 50m weg gegangen, hingestellt und "fahr wieder heim"- und dann hab ich amüsiert ne knappe Stunde zugesehen, wie es immer wieder zwei Meter am Ziel vorbeigefahren ist. 1Hz ist hat bei nem Fahrzeug, was Schrittempo fährt, doch schon _bissel_ ungenauer als man glaubt, weil ja noch die Ungenauigkeit des GPS dazu kommt...
Glaub mir, da braucht man Tricks, deren sinn man vorher gar nicht erahnt.

Allzu viel Unschärfe geht auch wieder nicht, wenn ich nämlich mal 2m Genauigkeit nehme, ist nen Waldweg eigentlich schon zu eng.
Leider gibts da selten so tolle Sachen wie Fahrbahnmarkierungen oder Bordsteinkanten, an denen man lang hangeln könnte wie ein Linienfolger...

Zur Ungenauigkeit von GPS: hm, was es nun genau ist, kann ich dir nicht sagen, aber wenn ich mein Neo hier liegen habe, dann "driftet" es regelrecht weg. Schnapp dir so ein Modul und ne passende Visualisierungssoftware, und guck es dir einfach mal an.
In meinem Fall: Ublox Neo6-m an _irgendeinbem_ Arduino +U-Center. Gibt die aktuelle Position direkt in nem Goggel-Maps-Plugin aus....
Aber: das Ding ist kein reiner Empfänger. Das verwurstelt die eigentlichen Daten auf alle denkbaren Arten, um die Genauigkeit zu verbessern, und hat dutzende Einstellmöglichkeiten. Dieses "wegdriften" hab ich _nur_ im Stand, in der Bewegung hab ich das nie feststellen können.

Ich empfehl dir das, woran ich jetzt schon seit...hm, anderthalbem Jahr oder so sitze (allerdings in loser Folge, ich lass mich da nich stressen), einfach erst mal _irgendein_ Fahrzeug draussen alleine vorgegebene Wege abfahren.
Meins ist nen 1:10er Tamiya Monstertruck. Trägt deine gewünschten 10 Kilo zwar nicht (ziehen könnt er die allerdings vermutlich), aber die Technik, die zum fahren und navigieren nötig ist, schon.
Wenn das mal läuft, braucht man es im Grunde nur wo anders einbauen...

Peter(TOO)
29.04.2016, 02:07
Hallo Amrosik,

Panzerlenkung erscheint auf den ersten Blick einfacher als die Achsschenkellenkung, da es bei 4 unabhängigen Motoren nur eine softwarelastige Aufgabe gibt: Und zwar die koordinierte Drehzahlregelung der Motoren (Drehzahlencoder wären also in diesem Fall sogar Pflicht). Die Frage ist: Wie erfolgt die Regelung? Unter dem zweiten Link stand was von "Fuzzy-Logic Drehmoment-Management". Hört sich interessant an. Was ist das? Bringt's was?

Fuzzy-Logic war mal ein Hype vor so 25 Jahren.

Digitale Logik kann Fragen nur mit Ja und Nein beantworten:
Ist das Schwarz: Nein
Ist das Weiss: Nein

Tja was denn nu ????

Fuzzylogik meint da z.B.
Ist das Schwarz: 60%
Ist das Weiss: 40%

Daraus kann man schliessen, dass es ein leicht dunkleres Grau sein muss.


Mit Fuzzy-Logik lassen sich viele Aufgaben lösen, welche eben nicht auf genauen Werten basieren.

Etwas vereinfacht muss man mit Fuzzy-Logik nur die Punkte für 100% Zustimmung und 0% Zustimmung im Parameterfeld festlegen. Alles dazwischen berechnet die Fuzzy-Logik dann selbständig.

Man kann dann auch noch die Übertragungsfunktion zwischen 0% und 100% festlegen, diese kann linear, progressiv oder degressiv sein.

MfG Peter(TOO)

amrosik
29.04.2016, 23:23
Generell ist ne Panzerlenkung und Outdoor eher keine saubere Lösung (funktionieren kann vieles, nur wie...), denn grade im Freien braucht man Grip-und der kämpft bei jeder Lenkbewegung dann gegen...

Ja. Allerdings ist die Strecke nicht allzu kurvig. Es ist wirklich überschaubar. Panzerlenkung ist sicher nicht das beste. Aber es ist wiegesagt nur ein Mittel zum Zweck. Die Frage nach dem "Wie" ist nicht entscheidend.


Dieses "wegdriften" hab ich _nur_ im Stand, in der Bewegung hab ich das nie feststellen können.
Dann wäre es also gut, die Datenerfassung stumm zu schalten und die letzte Position zu speichern, solange keine weiteren Bewegungsbefehle erteilt werden?


Bei Wegpunkten bin ich immer der Meinung, weniger ist mehr. Klar kann man den Weg Zentimeter für Zentimeter beschreiben- aber bekommst du es hin, dass da irgendein Rechner die wirklich wichtigen Punkte erkennt und nicht stur jeden einzelnen zu erreichen versucht?
Ich hatte meinem Monster mal den Auftrag gegeben, nen vorher aufgenommenen Punkt wieder anzufahren.
Also: Fahrzeug hinstellen, Knopf drücken, warten bis das GPS gemessen hat, dann die Stelle markiert, mit dem Auto 50m weg gegangen, hingestellt und "fahr wieder heim"- und dann hab ich amüsiert ne knappe Stunde zugesehen, wie es immer wieder zwei Meter am Ziel vorbeigefahren ist.

Also wenn ich die Koordinaten nicht selbst messe, sondern aus einer Datenbank hole, dann ist dieses Ablaufen auch nicht nötig.
Was das ständige Vorbeifahren angeht: Schritttempo ist schon heftig. Die Rück-Strecke (nur die ist wichtig) ist 650 meter lang (Quelle:Google Maps). Die soll der Roboter im 15 Minuten beenden. Das macht 2.6 kmh im Schnitt. Aber was ich nicht verstehe: Wieso genau ist er/es ständig dran vorbeigefahren? Hast Du kein IMU verwendet?



Ich empfehl dir das, woran ich jetzt schon seit...hm, anderthalbem Jahr oder so sitze (allerdings in loser Folge, ich lass mich da nich stressen), einfach erst mal _irgendein_ Fahrzeug draussen alleine vorgegebene Wege abfahren.
Meins ist nen 1:10er Tamiya Monstertruck. Trägt deine gewünschten 10 Kilo zwar nicht (ziehen könnt er die allerdings vermutlich), aber die Technik, die zum fahren und navigieren nötig ist, schon.
Wenn das mal läuft, braucht man es im Grunde nur wo anders einbauen...

Hmm... ich hab mir jetzt schon einpaar Teile aus China bestellt (billiges Zeug, aber gut zum Rumprobieren, Lieferung dauert etwas...).
Ein Raspberry Pi, Gyro, 3Achsen-Beschleunigungssensor. GPS muss ich noch bestellen (Raspberry Shield?), und Kompass auch. Bevor ich etwas fahren lasse, muss ich erstmal den Kalmanfilter implementieren (hab das noch nie gemacht).


Zum GPS: nun, nen gutes schafft durchaus ne Genauigkeit von nem Meter. Mein billiges (kann leider die PPP-Technik nicht) zwei. Damit kann man schon einiges anfangen, oder?
Zusammen mit nen paar weiteren Sensoren (http://www.rn-wissen.de/index.php/Sensorarten) geht da was.
Wenn ich das Prinzip richtig verstanden habe, sorgen die Sensoren nur dafür, dass über kurze Zeitabschnitte die Position genauer getrackt wird.
Letztendlich sei aber die Genauigkeit durch die des GPS begrenzt. Selbst wenn die Sensoren sehr präzise arbeiten, liefern sie nur relative Korrekturen. Selbst wenn ich es schaffe, die Koordinaten des Startpunkts centimetergenau zu bestimmen (oder aus irgendeiner Datenbank zu beziehen), wird sich diese Centimetergenauigkeit nicht über die gesamte Strecke aufrechterhalten, sondern frühzeitig abbauen, und gegen die Ungenauigkeit des GPS-Sensors (im Meterbereich) konvergieren. Am Ende hängt alles am GPS, Kalman hin oder her. Sehe ich das richtig?


Hier hätte ich eine Idee, wie man die absolute Ortung verbessern könnte. Neben platzierten Tags könnte man vielleicht die Streckeneigenschaften mit einbeziehen. Hat die Strecke z.B. die Abfolge {5%-Steigung, Flach, 5%-Steigung, 10%-Gefälle, Flach}, und wenn der Roboter jetzt z.B. jetzt den Übergang Flach-->10%Gefälle wahrnimmt, dann gibts in dem Beispiel nur einen Ort, wo das sein kann. Wenn ich die absolute Position dieser Orte vorher aufgezeichnet habe, dann habe ich jetzt eine absolute Position. Vielleicht könnte man auch andere Streckencharakteristiken einbeziehen. Z.B. Wegübergange (Pflasterstein-->Waldweg), die zu charakteristischen Signalen des IMU führen.



Etwas vereinfacht muss man mit Fuzzy-Logik nur die Punkte für 100% Zustimmung und 0% Zustimmung im Parameterfeld festlegen. Alles dazwischen berechnet die Fuzzy-Logik dann selbständig.

Und wie ist es hinblicklich Drehzahlen? Was soll man da überhaupt groß regeln? Wenn die Konstruktion und Gewichtverteilung halbwegs symmetrisch sind, dann reicht es doch aus, die Drehzahlen der Motoren auf jeweils einer Seite aneinander anzugleichen, und die Drehzahlen links vs. rechts so zu regeln, dass die gewünschte Bewegung (z.B. Drehnung mit 30°/s um sich selbst) ausgeführt wird. Ich würd sagen PID-Regler

Peter(TOO)
30.04.2016, 00:20
Aber was ich nicht verstehe: Wieso genau ist er/es ständig dran vorbeigefahren? Hast Du kein IMU verwendet?
Das Problem beim GPS ist, dass es ein militärisches System ist, welches von den USA extra gestört wird. Die US-Militärgeräte kennen die Störung und arbeiten im m-Bereich genau.
Die Zivilen Geräte waren anfänglich auf etwa 100m genau. Wobei die keine feste Abweichung haben. Wenn du den Empfänger fest aufstellst bist du laut Koordinaten dauernd in einem Umkreis von 100m in Bewegung! Im Jahr 2000 hat das US-Militär die künstlichen Störungen abgeschaltet. Schaltet sie aber lokal über Krisengebieten ein.

Das war auch das Problem des armen Robis. Der hat gemessen wo er ist, aus der Abweichung den Weg berechnet und diesen gefahren. Kaum war er an seinem Ziel, sagte das GPS: Ätsch Bätsch du bist 2m neben dem Ziel! Also alles nochmal von Vorne ...

Das brachte dann ein paar Leute auf die Idee des Differential-GPS. Man stellt ein GPS an einer bekannten Koordinate auf und berechnet die Differenz zur GPS-Messung. Die Abweichung sendet man dann an bewegliche GPS-Empfänger, welche dann ihre Messung entsprechend korrigieren können. Mit entsprechendem Aufwand kommt dann in den Bereich von mm als absoluter Fehler.


Hier hätte ich eine Idee, wie man die absolute Ortung verbessern könnte. Neben platzierten Tags könnte man vielleicht die Streckeneigenschaften mit einbeziehen. Hat die Strecke z.B. die Abfolge {5%-Steigung, Flach, 5%-Steigung, 10%-Gefälle, Flach}, und wenn der Roboter jetzt z.B. jetzt den Übergang Flach-->10%Gefälle wahrnimmt, dann gibts in dem Beispiel nur einen Ort, wo das sein kann. Wenn ich die absolute Position dieser Orte vorher aufgezeichnet habe, dann habe ich jetzt eine absolute Position. Vielleicht könnte man auch andere Streckencharakteristiken einbeziehen. Z.B. Wegübergange (Pflasterstein-->Waldweg), die zu charakteristischen Signalen des IMU führen.
So in der Art haben die BVB (Basler Verkehr Betriebe) bestimmt wo sich die Trams und Busse befinden. Man hat dazu nur die Fahrstrecke zwischen zwei Stationen gemessen. Im schlechtesten Fall, wusste dann der Computer nach 3 Haltestellen wo das Fahrzeug jetzt sein muss.



Und wie ist es hinblicklich Drehzahlen? Was soll man da überhaupt groß regeln? Wenn die Konstruktion und Gewichtverteilung halbwegs symmetrisch sind, dann reicht es doch aus, die Drehzahlen der Motoren auf jeweils einer Seite aneinander anzugleichen, und die Drehzahlen links vs. rechts so zu regeln, dass die gewünschte Bewegung (z.B. Drehnung mit 30°/s um sich selbst) ausgeführt wird. Ich würd sagen PID-Regler
Die unbekannte dabei ist der Schlupf. Je nach Untergrund dreht ein angetriebenes Rad mehr oder weniger durch. Die berechnete Strecke aus Radumfang * Umdrehungen ist immer grösser als die tatsächlich zurückgelegte. Im Extremfall steht das Rad auf Glatteis und dreht durch. Berechnet bist du unheimlich schnell unterwegs, obwohl du dich real keinen cm bewegst.

MfG Peter(TOO)

amrosik
30.04.2016, 11:04
Das war auch das Problem des armen Robis. Der hat gemessen wo er ist, aus der Abweichung den Weg berechnet und diesen gefahren. Kaum war er an seinem Ziel, sagte das GPS: Ätsch Bätsch du bist 2m neben dem Ziel! Also alles nochmal von Vorne ...

Wurde das im Jahr 2000 ganz abgeschaltet, oder nur von 100m auf 2m gedrosselt (Ich geh mal davon aus, dass @Rabenauge das Experiment noch in diesem Jahrhundert gemacht hat)?



Die unbekannte dabei ist der Schlupf. Je nach Untergrund dreht ein angetriebenes Rad mehr oder weniger durch. Die berechnete Strecke aus Radumfang * Umdrehungen ist immer grösser als die tatsächlich zurückgelegte. Im Extremfall steht das Rad auf Glatteis und dreht durch. Berechnet bist du unheimlich schnell unterwegs, obwohl du dich real keinen cm bewegst.

Bei der Panzerlenkung sollte man doch sowieso auf Odometrie verzichten, oder? Also so wie ich @Rabenauge verstanden habe.

Da ich die reale Bewegung nur durch das IMU messe, kann das Rad ruhig durchdrehen wenn es will. Wenn der Roboter die Drehnung mit 30°/s um sich selbst gerade nicht hinkriegt, weil die linken Räder durchdrehen, während die rechten Grip haben, dann wird das IMU diese Diskrepanz feststellen. Das PID wird dann die rechten Drehzahlen reduzieren, und die linken erhöhen.

Peter(TOO)
30.04.2016, 12:11
Wurde das im Jahr 2000 ganz abgeschaltet, oder nur von 100m auf 2m gedrosselt (Ich geh mal davon aus, dass @Rabenauge das Experiment noch in diesem Jahrhundert gemacht hat)?
Naja, das ist eine komplizierte Geschichte.
Grundsätzlich darf man nicht vergessen, dass GPS ein militärisches System ist! Deshalb gibt es auch das Galileo-Projekt der Europäer, welches ein ziviles System ist.

Bei GPS gibt es die zivile Nutzung, welche absichtlich gestört werden kann. Dieser Teil ist, ausser über Krisengebieten, abgeschaltet worden. Das US-Militär behält sich aber vor, dies jederzeit wieder zuzuschalten. z.B. im Einflussgebiet des IS dürfte GPS aktuell keine verlässlichen Daten empfangen.
Teil des GPS-Prinzips ist es, dass der Satellit seine genaue Position kennt und diese, zusammen mit der Zeit, aussendet. Somit kann man auch auf bestimmten Bahnabschnitten ein verfälschtes Signal senden.

Zudem gibt es noch ein paar Geheimnisse, welche das Militär nicht preis gibt. Ein Teil der gesendeten Daten ist deshalb verschlüsselt.

Hinzu kommt, dass es mittlerweile um die 6 Generationen von GPS-Satelliten gibt, wobei von der ersten Generation keine mehr in Betrieb sind. Jede Generation ist natürlich etwas besser als ihre Vorgänger.

MfG Peter(TOO)

Rabenauge
30.04.2016, 21:42
Meine 2m haben weniger mit der Genauigkeit von GPS allgemein zu tun, sondern damit, dass mein Empfänger (neo 6-m von Ublox) beispielsweise die PPP-Technologie _nicht_ unterstützt.
Dafür nutzt er aber auch so längst nicht nur reine GPS-Daten, sondern beispielsweise (wenn ers empfangen kann) auch die SBAS-Korrekturdaten.
Nen GPS ist lange nicht mehr ein reiner GPS-Empfänger, die dinger stellen intern mit den empfangenen Daten noch ne ganze Menge an, um die Genauigkeit zu verbessern.
Allerdings wird da jeder Hersteller sein eigenes Süppchen kochen, und auch vom selben Hersteller gibts oft Teile mit verschiedenen Features, das neo 6-p beispielsweise nutzt PPP-und kommt damit unter nem Meter in der Genauigkeit!
Leider hab ich das Ding noch nicht als Modul gesehen.

amrosik
03.05.2016, 00:31
Kann man das neo 6-p so ohne Weiteres an einem Raspberry Pi betreiben? Bei dem Modul was ich gefunden habe, werden Treiber für Linux angeboten, deshalb gehe ich davon aus, dass man das Modul einfach an die USB-Buchse des Raspberry anschließen kann. Damit wäre es aber noch nicht getan:

Wie kann man an die Rohdaten in Echtzeit ran, um sie in eigenen Python- oder C++-Programmen zu verwenden?

Rabenauge
03.05.2016, 00:57
Das 6p hab ich noch nie als Modul gesehen.
Kenn ich nur eingebaut, nen bissel teuter: https://www.reichelt.de/?ARTICLE=135486&PROVID=2788&wt_mc=amc141526782519998&gclid=CKC50sm9vMwCFUEaGwodDggNKQ
Das Ding ist natürlich USB-fähig.

Das Neo 6m gibts als Modul unter nem Zwanziger (ich glaub, 12 hatte ich bezahlt für), das ist für 3.3V ausgelegt, aber 5V-tolerant.
Und _das_ Modul hat keine USB-sondern ne ganz simple, serielle Schnittstelle, die man sicher am Pi auch nutzen könnte.
Dann einfach das NMEA parsen, wird schon gehen.
Rohdaten kann es ausgeben, nur sind die recht nutzlos, da der Chip bereits intern die Qualität gewaltig verbessert-wozu sollte man darauf verzichten wollen?

amdrosik
04.05.2016, 00:29
Da habe ich mich wirklich schlampig ausgedrückt. Mit "modul" meinte ich nicht das Modul, sondern das fertige.

Und mit "Rohdaten" meinte ich nicht die Rohdaten, sondern die fertigen Daten.

Letztendlich ist die Frage, ob ich extra einen Treiber für Linux schreiben muss (was ich nicht vermag), um mit dem Teil überhaupt erstmal kommunizieren zu können.

i_make_it
04.05.2016, 08:03
Letztendlich ist die Frage, ob ich extra einen Treiber für Linux schreiben muss (was ich nicht vermag), um mit dem Teil überhaupt erstmal kommunizieren zu können.

Treiber wirst Du keinen schreiben müssen, ist ja USB.
Und wenn man ein Blick ins Handbich wirft, ist es eine serielle Schnittstelle die über USB läuft.
http://www.navilock.de/files/19836.download&usg=AFQjCNFDeVL2eYRWNhpdOtNH74kIQBlhTQ&bvm=bv.121099550,d.d24

Wenn Du ein Programm schreibst, das die Daten die deine serielle Komunikation liefert auch nutzen soll, muß das Programm halt NMEA können.
http://www.tronico.fi/OH6NT/docs/NMEA0183.pdf
Sprich ein Parser der NMEA in die internen Formate deines Programms übersetzt.

Du kannst zwar u-center nehmen, aber damit kann kein anderes Programm was anfangen.
Ist ja ein grafisches Frontend für Menschen.
https://www.u-blox.com/de/search?keywords=u-center&f[0]=field_item_type%3Aarchive

amrosik
07.05.2016, 20:21
Das könnte euch interessieren:

Hier hat es jemand geschafft, so einen Navilock-Empfänger am Raspberry zu betreiben. Das Linuxsystem hat das Gerät ohne Probleme erkannt:
http://www.cardboard-car.com/top-story/raspberry-pi-gps-empfaenger-u-blox-6/7358
Über die Präzision werd ich euch informieren.


Und zum Thema Distanzmessung:
http://hackaday.com/2016/01/22/how-to-use-lidar-with-the-raspberry-pi/

Das Teil ist auf Ebay für etwa 110€ zu haben. Ein günstiges seriell hergestelltes LIDAR für Staubsauberroboter. Jetzt dient es Hobbyisten als absolute Alternative zum Ultraschall oder Infrarotsensor. Um das LIDAR gleichzeitig zur Verbesserung der Ortung verwenden zu können, sind min. 2 Sachen notwendig:


Eine anständige Kartographierung der Strecke. Hierzu sind auch die genauen Positionsdaten notwendig.
Irgendeine Art von Korrelationsanalyse, um den Streckenabschnitt, in dem sich der Robi gerade befindet "wiederzuerkennen".


Zum ersten Punkt:
Die erste Idee wäre,

einfach die Strecke und dutzende Male mit dem Robi abzulaufen und zu scannen. Das würde ich "schnappschussweise" erledigen, also den Robi irgendwo hinstellen, ein Paar Sekunden scannen lassen ("Belichtungszeit"), und dies in vermessenen Abständen wiederholen. Wie man nachher die Fotos zusammenklebt, keine Ahnung.
Als nächstes müsste die Karte irgendwie aufbereitet werden: Z.B. die statischen Objekte (Wände, Bäume etc.) beizubehalten, und dynamische Objekte rauszuhauen. Und dann schauen, ob da eventuell was fehlt (irgendwelche Lücken in den Daten, wo normalerweise Etwas ist).
Und dann muss die Karte mit echten Positionsdaten verknüpft werden. Dazu würde ich einfach mit dem Auge einpaar Referenzpunkte in den LIDAR-Daten suchen, z.B ein 200 Jahre alter Baum, der auch auf Satellitenbilder zu erkennen ist, und die zugehörigen GPS-Koordiaten eintragen. Es reichen dann im Prinzip 2 Referenzpunkte, um der gesamten LIDAR-Karte Positionen zuzuweisen (außer Höhendaten). Viel hilft viel.


Wie würdet Ihr das machen?

Zur eigentlichen Ortung:

Das GPS liefert bereits eine ungefähre Ortung. Dann kann man schonmal den Bereich der LIDAR-Karte eingrenzen, über den man die Korrelationsanalyse drüberjagt.
Wie man hier weiter vorgeht, weiß ich bisher nicht.





mit freundlichen Grüßen,

Amrosik


EDIT:

Ich weiß gerade nicht, inwiefern es sinnvoll ist, die LIDAR-Daten "aufzubereiten". Schließlich sollen sie nacher korreliert werden.

Rabenauge
07.05.2016, 22:30
Du redest andauernd von ner IMU- sonst keiner, glaub ich.
Ich persönlich meine, es geht generell auch ohne-wenn man anderweitig an die nötigen Daten kommt.
Hierzu muss man sich allerdings erst im Klaren sein, welche Daten man _wirklich_ benötigt. Die Position genauer als nen Meter _immer_ zu haben, kannst du vergessen. Oder das Fahrzeug kommt vor lauter rechnen nich mehr zum fahren.
Dass ich auf meinem Monster eine drauf hab, hat eigentlich erstmal nur einen Zweck: umkippen zu verhindern. Bisher hab ich die aber noch nicht mal angeschlossen, für die Wegfindung werd ich die kaum benötigen, da reichen Kompass und GPS.

Und: ich würde ein Lidar überhaupt nicht benutzen.
Ich bin davon überzeugt, dass man es nicht braucht, ansonsten gibt das ausser nem riesigen Rechenaufwand eher keine Vorteile.
Schliesslich spuckt das Ding nicht nur Nullen und Einsen aus, im Sinne von: 1=Hindernis, 0=Bahn frei.

Dein Problem ist: du hast wenig praktische Erfahrung (keine, vermute ich sogar). Daher kannst du die Fallstricke, die auf dich lauern bei dem Projekt, lange nicht alle erahnen.
Und: theoretisch ist alles ganz einfach. Die Praxis wiederlegt das aber andauernd.
Andererseits: beispielsweise Insekten haben relativ wenig "Umgebungssensorik"- und kommen damit erstaunlich gut zurecht.
Warum also Dinge unnötig verkomplizieren?

Schnapp dir ein GPS, stecks in die Tasche, lauf deinen Weg ab und gucke, was bei raus kommt. Das dauert nicht so lange wie das schreiben hier- aber du weisst danach mehr als jetzt.
Dann nimmste ein Modellauto (kann auch nen biliges Spielzeug sein, wenn es den Weg bewältigen kann) und rüste das mit Sensoren aus- es soll nur Hindernissen alleine ausweichen. Damit biste bis Jahresende voll beschäftigt-wetten?
Beides _musst_ du lösen, das kannst du nur praktisch!
Du kannst _nicht_ alles jetzt sonst wie toll planen, dann bauen, und es wird funktionieren, das versprech ich dir.

RP6conrad
17.12.2018, 20:56
Meine "gps-rover" basiert sich auf eine billiges IMU MPU9250, ein GPS Ublox M8N und eine STM32 µcontroller. Das alles auf eine Hobbyking "Rattler" chassis. Das alles functioniert relatif gut. Folgende problemen :
GPS Genauigkeit ist ca +/- 1 meter bei gute Bedingungen ! Im Wald wahrscheinlich schlechter. IMU ist absolut notwendig, um die Himmelsrichtung von Rover zu kennen. Eine Bahn abfahren schmaller dan 4 meter, ist sehr schwierig. Hindernis Erkennung ist schwierig, US-sensoren sind sie ungenau, sie wissen nur "da ist etwas in ein Kegel for mich", kann einfach ein unebenheit auf die Strassen sein.
differential GPS ist eine moglichkeit, aber immer noch relatif teuer (>200€). Meine Rat : fange an mit so etwas, und wenn das klappt konnen sie weiter gehen mit eine 10 kilo rover.
Videos : Ein einfaches Track (Rechteck)

https://www.youtube.com/watch?v=L_Jshh8BfnU
Etwas schwieriger in Winter :

https://www.youtube.com/watch?v=PtJ49IMEenc
GPS Racen :

https://www.youtube.com/watch?v=yMbmp7c2mrw