PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Von a nach b



Dahris
10.01.2016, 14:20
Hallo miteinander!


Ich muss für die Schule einen Roboter bauen, der Objekte durch die Wohnung transportieren kann.
Die Objekte werden zwischen 5-10kg sein. (z.B. Bücher)

Leider hab ich kaum eine Ahnung von Robotern und weiß nicht wo ich anfangen soll. :confused:

Meine Idee war es, Mithilfe eines Raspberry Pi 2 einen Plan einzuspielen, welches der Roboter nachfahren soll. Zwischen Start und Ende sind 1-2 Haltestellen. Sensoren sollen dafür sorgen, dass der Roboter um unerwartete Hindernisse herumfahren kann, bzw. wenn eine Tür auftaucht ein klingeln ertönt.
Optimal wären 3-4 Räder. Da ich ein Pi verwenden will, der Roboter aber kabelungebunden bleiben soll, hatte ich vor es mit einem 5000mAh Akku zu verbinden.

Es ist ein Fliesenboden, also wird die Reibung nicht allzu hoch sein.

Glaubt ihr ein RasPi wäre dafür geeignet? Oder habt ihr Vorschläge wo man gute Teile kaufen kann bzw. ob ich eher zu einem Bausatz greifen soll? (Chassis, Motor oder ein Bausatz)

Vielen Dank!
Dahris :)

White_Fox
10.01.2016, 14:50
Wenn du keine Ahnug von Robotern hast-von was hast du denn Ahnung?
Hast du Vorkenntnisse in der Elektronik oder Programmierung?

Nimm mir die Frage nicht böse, aber wenn du andere Vorkenntnisse hast würde ich zusehen, die mit einfließen zu lassen. Hast du schonmal mit einem RPi gearbeitet? Wenn ja, dann würde ich den nehmen. Wenn nicht...gibt es auch andere Alternativen.

Ansonsten würde ich auch mal über Lego nachdenken. Die Mechanik läßt sich damit am Einfachsten realisieren, der Grad der Genauigkeit (Getriebespiel, usw.) sowie Stabilität sollten ausreichend sein. Und programmierbare Roboter lassen sich aus Lego ganz wunderbar bauen, vielleicht hast du sogar schon viele Teile vorrätig.


Ich muss für die Schule einen Roboter bauen, der Objekte durch die Wohnung transportieren kann.
Über eins mußt du dir aber klar sein: Ganz billig wird der Spaß nicht, und trivial würde ich das Projekt so auch nicht unbedingt nicht bezeichnen. Machst du das alleine oder mit Klassenkameraden? Wenn du/ihr noch wenig bis gar keine relevanten Kenntnisse habt auf die ihr aufbauen könnt wirds schwierig. Zwar nicht unmöglich...aber schwierig.

i_make_it
10.01.2016, 17:23
[/QUOTE]
10kg Zuladung sind ja schon mal eine Hausnummer



Leider hab ich kaum eine Ahnung von Robotern und weiß nicht wo ich anfangen soll.

Eine recht einfache Möglichkeit wäre ein Dreirad.
Da gibts ein Buch von 1992 "Fahrbarer Selbstbauroboter aus kostengünstigen und leicht zu beschaffenden Teilen" von Elektor.
Hinterradantrieb und Vorderradlenkung.
Ein Rahmen aus Baumarktaluwinkeln, Räder könnten auch aus dem Baumarkt sein.
Antriebsmotor z.B. Scheibenwischermotor.
12V Autobatterie für die Stromversorgung.



Meine Idee war es, Mithilfe eines Raspberry Pi 2 einen Plan einzuspielen,

Ein Raspi ist ein Computer mit Betriebssystem.
Eventuell macht es bei einem System das in einer Umgebung mit Menschen mobil sein soll, eine Aufteilung durchzuführen.
Motorregelung und Antikollisionssensorik über einen Microcontroller und höhere Funktionen wie Navigation dann über einen Computer (zh.B. Raspi).
So sollte es möglich sein auch bei nicht echtzeitfähigem OS auf dem Computer trotzdem zeitnah zu reagieren.



Es ist ein Fliesenboden, also wird die Reibung nicht allzu hoch sein.

Wird es immer ein Fließenboden sein, oder eventuell bei der Projektvorstellung in der Schule ein anderer Boden?
Bei der Traglast machen Räder mit 15cm oder mehr sowieso Sinn. Da gibt es in Baumärkten Hart- und Weichgummi Räder, teilweise auch mit Profil.



Glaubt ihr ein RasPi wäre dafür geeignet? Oder habt ihr Vorschläge wo man gute Teile kaufen kann bzw. ob ich eher zu einem Bausatz greifen soll? (Chassis, Motor oder ein Bausatz)

Ein Bausatz für einen Mobilroboter der 10kg Zuladung kann wird vermutlich verdammt teuer.
Ein kleiner Bausatz für 50 - 100€ macht eventuell Sinn damit Du Dich mit Mobilrobotern und den Teilaufgaben unabhängig vom Fortschritt des eigentlichen Projekts befassen kannst.

Eine kleine Auflistung deines Kenntnissstandes in den folgenden Gebieten ist auch recht hilfreich.
Mechanik/Metallbearbeitung
Elektrik/Elektronik
Programmieren
Regelungstechnik

Zu guter letzt, wie fließt denn das Projekt in deine Note ein?
Wenn es eine Aufgabe Deiner Schule ist, dann will die ja Deinen Wissensstand und nicht unseren damit feststellen.
Also kann es Dir passieren, das Du bei den Detailaufgaben zwar Tipps aber keine Teillösungen oder so bekommst.

radbruch
10.01.2016, 18:16
Ich muss für die Schule einen Roboter bauen...Oha, was für eine Schule ist das denn? Gibts dafür vielleicht eine genauere Beschreibung? Also die eigentliche Aufgabenstellung, nicht so eine wages Gestammel...

Holomino
10.01.2016, 18:44
Ich will auch wieder zur Schule gehen. Die bauen da immer so tolle Sachen.

Vielleicht wäre das hacken eines Upperclass- Staubsaugerroboters eine Lösung.

Ansonsten: im Laden kann man den Minirechner, der nebenbei durch die Wohnung navigiert, meines Wissens noch nicht kaufen.


31112

Aber wir arbeiten dran.

oberallgeier
10.01.2016, 18:50
Hallo Dahris,
willkommen im Forum.


.. Meine Idee war es, Mithilfe eines Raspberry Pi 2 einen Plan einzuspielen, welches der Roboter nachfahren soll ..Nun bin ich nicht wirklich ein Könner und Wisser auf dem Gebiet der Robotik. Aber allein die eben zitierte Aufgabe ist meiner Meinung nach ein Hammer für jegliche Schulaufgabe, welche Schule auch immer. Das können wir Dir gerne erklären, aber schon die Erklärung handelt von Problemen, die Du allem Anschein nach nicht mal im Ansatz kennst.

Fazit: Beschreibe mal ALLES wie Radbruch es schon wünscht, lieber mehr (und systematisch) als zu wenig. Vielleicht können hier einige einen Weg finden oder Dir wenigstens Zugänge zu einzelnen Abschnitten.

HaWe
10.01.2016, 20:10
für Navigation ist im einfachsten Falle nur Odometrie nötig.
Lego ist da eine gute Idee, was den NXT als µC und die Encodermotoren angeht, aber es ist nicht ganz so einfach. damit 5-10kg zu transportieren.
Gehen tut das ntl schon, mit vielen Rahmenbauteilen, besser aber mit Alugestell (Matrix, Tetrix) und 2 Motoren pro Antriebsache - oder einer genügend großen Untersetzung (1:4).
Für den Anfang reicht das, und der NXT ist hierzu absolut geeignet. Die Programmierung kann glücklicherweise mit einem C-ähnlichen Bytecode-Compiler erfolgen (NXC) oder mit echtem C mit einem RTOS (nxtOSEK) oder auch mit Java.
Kosten: etwa 100 EUR für NXT und 2 Lego Encoder-Motoren (Rotations-Encoder, wichtig bei Nachlauf und Dreh-Umkehr).

Will man eine größere Genauigkeit, kann man einen Gyro-Sensor dazunehmen.

www.mindstormsforum.de/viewtopic.php?f=70&t=6746&p=68087

Den Raspi halte ich für eine extrem schlechte Idee, da man großen Aufwand für pwm und Encoder betreiben muss. Sein Linux ist mit extrem hohem Lernaufwand für Einsteiger verbunden, stellt Zugriffe nicht in Echtzeit zur Verfügung sondern nur im user-space. und seine Pins kann man daher nur sehr langsam auslesen - zu langsam meist sogar für Encoder in ausreichender Genauigkeit.

https://www.roboternetz.de/community/entries/323-Raspberry-Pi-programmieren-mit-C-C-und-Geany-erste-Schritte-f%C3%BCr-Dummies

Sehr gut funktioniert aber ein Arduino Due (notfalls auch Zero, Tian, 101...) : die haben alle ARM Prozessoren (wie der NXT), damit genügend Rechenpower für Trigonometrie und genug Speicher für große Zimmer-Karten. Gerade der Due hat Pins auch bis zum Abwinken für alle möglichen Zusatz-I/Os. Und das wichtigste Plus für alle Arduinos: Eine extrem einfache IDE für echten C-Code mit libs für Alles und Jedes.

http://www.mindstormsforum.de/viewtopic.php?f=70&t=6746&p=68087#p68087

Bei Lego NXT sind die Motortreiber und die Encoder-Ports eingebaut, bei Arduinos muss man allles selber machen und dazukaufen.
Kosten: auch ca. 100 EUR für China-Due + 2 Motor-Treiber (L298 etc) + 2-4 Lego Encodermotoren.

Das Fahr-Gestell kommt in jedem Falle oben drauf, das wird die Kosten zumindest verdoppeln. Ein Lego Mindstorms NXT 2.0 Set als Einstieg wäre da schon einigermaßen lohnenswert, vor allem wegen der Flexibilität der Bauteile, der Räder, der Zahnradgetriebe usw...

Dahris
11.01.2016, 04:55
Vielen Dank für die vielen Antworten. Entschuldigung für das Gestammel, ich versuche alles zu beantworten...

Ich geh in eine Schule mit IT Schwerpunkt und jeder in der Klasse muss sein eigenes Projekt alleine machen. (also kein Gruppenprojekt)
Es ist eine Aufgabe von meinem Lehrer, da er meine vorherige Idee zu kompliziert fand.
Da ich auch bei meiner eigenen Idee mit einem Pi arbeiten wollte, kenne ich mich gut damit aus. (ich hab im Sommer einen Stimmenautomatisierten Pi als Mediacenter "gebaut" -> war ein großer Teil meines ersten Projektes) Jedoch hatte ich 2 Monate Zeit dafür zu recherchieren und es war kein mobiler Roboter geplant.

Mein Lehrer hat gemeint, dass ich einen fertigen Roboter (der eine Traglast von 5kg aushält) kaufe, der mit einer Fernbedienung kontrollierbar ist und mir dann etwas einfallen lassen soll wie ich diesen Roboter automatisieren kann.
Mir ist auch bewusst wie teuer dieses Projekt werden wird.

Das Projekt fliesst nicht in die Note ein, ist aber für das Schuljahr ein Muss-Kriterium.
Der Boden besteht bei meiner Testfläche sowohl wie in der Schule aus Fliesen.


Es muss nicht ein Pi sein, war nur ein Vorschlag meines Lehrers da ich mehr Erfahrung damit hatte als zB mit Arduino.
Lego NXT hört sich aufjedenfall schon vielversprechend an und das mit dem Staubsaugerroboter habe ich schon einmal vor einer Weile in Betracht gezogen.

Ich versuche es nochmal und hoffentlich etwas verständlicher aufzulisten, wie mein Lehrer mir diese Aufgabe zugeteilt hat:

+ Ich brauche einen Roboter der 5kg tragen kann (ich habe nochmal nachgefragt und 5kg genügen)
+ Mit einem Programm soll dieser Roboter von einem Startpunkt zu einem Ziel fahren. Der Weg wird aber nicht gerade sein, da er durch mehrere Räume fahren soll
+ Damit der Bot nicht in Schüler reinfährt, soll er ausweichen können

Bei meiner Aufgabe ist der Roboter selber nicht das wichtige, sondern, dass der Roboter automatisch beim Starten einen bestimmten Weg befahren kann ohne von der Traglast zusammenzufallen.

Entschuldigung für dieses Mischmasch, aber ich weiß nicht wie ich es genauer beschreiben kann...

LG
D

i_make_it
11.01.2016, 08:19
Traglast 5 kg oder Zuladung 5kg?

Wenn die Traglast 5kg ist und z.B. das Eigengewicht inklusive Antriebe, Sensoren, Steuerung und Stromversorgung 3kg ist, bleibt für die Zuladung nur noch 2kg.



Damit der Bot nicht in Schüler reinfährt, soll er ausweichen können

Das kann knackig werden.
Im ersten Versuch kann man das ganz normale Ausweichverhalten nehmen das man auch für Möbel und Wände nimmt, aber Menschen sind in der Regel nicht ortsfest sondern laufen rum.
weshalb oft einfach stehen geblieben wird bis der Mensch den Weg frei macht.



von einem Startpunkt zu einem Ziel fahren. Der Weg wird aber nicht gerade sein, da er durch mehrere Räume fahren soll



Zwischen Start und Ende sind 1-2 Haltestellen.


Eine Möglichkeit wäre eine Leitmarkierung (Stichwort Linienfolger) für die Strecke und Barken an den "Haltestellen"
Da muß man halt klären ob man eine Klebebandlinie auf den Boden machen darf.

Ohne ein solches Leitsystem, muß der Roboter über eine Karte verfügen und die Möglichkeit sich selbst in der Karte zu verorten.
Damit bist Du dann auf Nivau eines Unistudiums.

Hier mal ein paar Links zum Thema Roboternavigation/Kartierung:
https://users.informatik.haw-hamburg.de/~ubicomp/projekte/master2008/blanck/folien.pdf
http://www.statistik.lmu.de/institut/ag/agmg/research/materials/Rink-140428-slides.pdf
http://ocw.mit.edu/courses/aeronautics-and-astronautics/16-412j-cognitive-robotics-spring-2005/projects/1aslam_blas_repo.pdf
http://www.diva-portal.org/smash/get/diva2:644201/FULLTEXT01.pdf
http://www.cs.cmu.edu/~16899/notes/slam_ieee.pdf

Frag mal deine Lehrer ob Sie sich des Umfangs der Aufgabenstellung bewusst sind.
Sowohl von den Kosten, dem notwendigen Wissen und dem Zeitaufwand für eine Person.

HaWe
11.01.2016, 11:47
das mit dem "Niveau eines Unistudiums" halte ich für hanebüchen, ich habe es als reiner Hobbybastler mit Lego gemacht. Odometrie braucht nur etwas Trigonometrie. Nacheichen mit Gyro oder externen Baken ist aber schon besser, klar, aber man kann ja erstmal klein anfangen.

Fürs Ausweichen gibt es von Lego Ultraschallsensoren (im Startset enthalten), die sind absolut simpel zu programmieren.
Wichtig dabei: den alten NXT verwenden (gebraucht, Ebay etc.), nicht den neuen EV3, denn da ist die Programmierung viel komplizierter.

Dann war von einer Zuladung von 5kg die Rede, nicht von einer Tragfähigkeit des Fahrgestells von bis zu 5kg. Gesamttragfähigkeit des Gestells ist also Eigengewicht plus 5kg Zuladung.

Auch mit Linuxkenntnissen halte ich den Pi aber wegen seiner miserablen Echtzeitfähigkeit (u.a. für Encoder-Pins) für absolut ungeeignet (außer mit Extension-Board, wie z.B. Propeller-HAT, kostet aber wieder extra).

Für die Plastikachsen von Lego ist das Gewicht aber dennoch eine Heraussforderung (auch wenn Lego-Plastik insgesamt leicht ist).
Metallachsen (Metabo, Märklin, Trix, Metallus) mit Adapter auf die 5mm Kreuzachsen funktioniert aber sehr gut (wie in meinen oben verlinkten Modellen). Dann kann man sogar ein Sperrholzbrett als Basis-Chassis verwenden.

Die Programmierung ist nicht schwierig, wenn man preemptives Multitasking (NXT) oder wenigstens cpu-Timer-IRQs (Arduino Due) und mindestens 30kB RAM für die Karte und die Wege hat.

Das ganze nicht rein odometrisch - sondern z.B. als Linienfolger - würde die Sache natürlich noch weiter vereinfachen, auch Hindernis-Ausweichen per Ultraschall-Sensor-Führung ist damit möglich (Linie verlassen, Hindernis im (Halbkreis-) Bogen umfahren, bis man wieder auf die Linie trifft). Auch ein Lichtsensor ist für Linienfolger im NXT Basis-Set enthalten.

i_make_it
11.01.2016, 11:51
das mit dem "Niveau eines Unistudiums" halte ich für hahnbüchen, ich habe es als reiner Hobbybastler mit Lego gemacht. Odometrie braucht nur etwas Trigonometrie.


@ HaWe: Wenn Du meinen Text aufmerksam liest und Dir die Links ansiehst, stellst Du fest das ich nicht von Odometrie schreibe sondern von Kartierung und wie sich ein Roboter selbst darin verortet.
Also Occupancy Grid/Vektorkarten und SLAM.
Sowie Korrektur der Karten beim mehrfachen durchfahren des selben Raums um Messungenauigkeiten zu elliminieren.
Also Koppelnavigation, Kalmanfilter, Monte-Carlo-Lokalisierung etc.
Bei Kartierung mit Eigenbewegung, ortsfesten Hindernissen UND beweglichen Hindernissen (Menschen) erstellt man Zeitdiskrete Karten und integriert diese dann wieder um die ortsfesten Hindernisse zu filtern. Diese sind ja entscheident für die Routenplanung bei Ausweichmanövern.
Es bringt ja nichts dem Menschen auszuweichen und dann vor der Wand zu stehen. Also beim Ausweichmanöver die Ortsfesten Hindernisse mit berücksichtigen wenn z.B. der Mensch vorne links ist aber rechts dann nicht mehr genug Platz ist um hinter dem Menschen weiter zu kommen.
Dan greift nicht das einfache Ausweichen sondern die Routenplanung muß die Ausweichroute möglichst in Echtzeit berechnen. (Oder man bleibt stehen und wartet bis der Mensch weg ist)

Die Aufgabenstellung ist eigentlich genauso anspruchsvoll wie ein fahrerloses Auto das am Straßenverkehr teilnehmen soll.
Wenn das mit etwas Trigonometrie machbar ist, dann geh damit mal zum Patentamt bevor Mercedes, BMW und Co. das selbst anmelden. (Sorry der musste sein)

HaWe
11.01.2016, 12:14
na, aber jetzt...

die Odometrie ist doch die Basis der eigenen Positionsbestimmung per Koppelnavigation, um sie dann anschließend in die eingespeicherte Karte einzuprojizieren.

D.h., man braucht eine Karte der Räume und den Startpunkt des Roboters, den Rest der Wegefindung macht der Roboter per Odometrie-Messungen (das ist ja die besagte Koppel-Navigation).
Nach dem Motto:
2m geradeaus,
dann 30° nach rechts,
dann 4 meter geradeaus,
dann 90° links,
dann 1m geradeaus
- dann...: Sie haben das Ziel erreicht!

So funktioniert das, wo ist das Problem?

Selbst dafür wären jetzt Karten noch nicht mal zwingend notwendig,
a-Bär: Odometrie ist ungenau, und so kann man die (bekannten) Wände in der eingepeicherten Karte bereits als Navigationshilfe mitverwenden, um die Odometrieposition zu berichtigen (wenn man sich in der Mitte des Gangs wähnt, aber plötzlich doch an der Wand anstösst). IMUs (Gyros) machen es NOCH etwas einfacher, aber es muss ja für das Projekt nicht gleich 100% perfekt sein.

Fürs Umfahren von Hindernissen gibt es übrigens auch den Bug- oder Bug2-Algorithmus, und ganz ohne feste Steuer-regeln noch den Astern (A*), aber das ist dann schon ein ganz klein wenig schwieriger (aber auch mit Lego bereits gelöst).

i_make_it
11.01.2016, 12:46
@HaWe: Dein Ansatz funktioniert bei vollständig bekannten Karten.
Nicht ortsfeste Hindernisse (Menschen) bedeuten automatisch die Karten sind nicht vollständig bekannt.
Nimm deinen Ansatz mal beim Autofahren und stelle dann Fest das eine Tagesbaustelle deine 4 Meter gradeaus blockieren.
Schon fällt dein System in sich zusammen. (ein Tag warten bis das Hinderniss wieder weg ist)
Sobald bewegliche Hindernisse ins Spiel kommen wird das alles viel spannender (komplizierter)
Und das ausweichen vor Menschen ist halt Teil der Aufgabenstellung.
Eine einfache Pfadplanung in einer Umgebung nur mit ortsfesten Hindernissen ist ein Anfang, so habe ich in den 90ern auch mal angefangen und werde es mit meinem Großneffen auch wieder so machen. Aber es geht hier ja um eine konkrete Aufgabenstellung bei der die Randbedingungen festgelegt sind.

Wobei ich mir die Frage stelle ob die Lehrer die diese Aufgabe formuliert haben sich der Komplexität derselben bewust sind.

HaWe
11.01.2016, 13:55
mein Ansatz funktioniert auch bei nicht störungsfrei befahrbaren Routen.
Denn wenn ein Hindernis auftaucht, gibt es 2 Möglichkeiten:
1. kurz stoppen und warten, ob es sich von alleine wieder wegbewegt
2. wenn es nach einer bestimmten Wartezeit nicht weg ist, dann im Bogen mit Abstand umfahren, bis man wieder ein Stück weiter vorn auf der geplanten Kurslinie gelandet ist.

Kein Lehrer wird erwarten, dass ein solches Schüler-Modell in allen erdenklichen Situationen 100% funktioniert, aber in ausgesuchten Standardsituationen gibt es einfache Lösungsstrategien.

Wären da nicht die 5 kg Zuladung, wäre es ein ideales Modell für Lego:
wegen Speicher, Encoder für Odometrie, ein oder mehrere Ultraschallsensoren, nötigenfalls Sensormultiplexer, parallel-läufigen Firmware-Sensor-Tasks (die automatisch Sensorzustände im Hintergrund auswerten, z.B. automatisch Encoderwerte weiterzählen, ähnlich wie Linux-Demons) sowie Multitaskingfähigkeit und damit der Möglichkeit für eine Subsumption-Programmarchitektur (Behaviour-events), um strukturiert auf Situationen reagieren zu können. Als Lego-NXT-Projekt für 500g Zuladung könnte ich da aus dem Stegreif jede Menge praktische Tipps geben, die extrem schnell umzusetzen sind (wenn die erlaubt sind).

Alles schon gemacht.

Mit einfacher AVR-Programmierung ist das aber eher nicht - oder nur mit ungeheurem Aufwand - zu machen.

Rabenauge
11.01.2016, 13:56
Im Grunde kann das jedes Spielzeugauto, was ausreichend gross ist (bissel was muss rein und ne Ladeplattform brauchen wir auch), und wo man den passenden Motor (wie sie der Wild Thumper z.B. hat) einbauen kann. Ungefedert ist besser, die kann man auch "mal" gnadenlos überladen, dauerhaft muss es das ja nicht aushalten.

Kartierung würd ich lassen (das verlangt mit Sicherheit _kein_ Lehrer an irgendeiner Schule), und dann reicht nen Arduino völlig aus- oder eben der Pi, der aus undurchsichtigen Gründen scheinbar verwendet werden soll.
Beim Pi gehts natürlich mit Karte- mit nem Arduino ansatzweise noch (soo präzise muss die auch wieder nich sein, man kann alles übertreiben). Im Grunde genügt ne einfache, zweidimensionale Matrix, dynamisch muss die hier nicht sein.
Wenn ich da die Umgebung in halbmetergrosse Quadrate aufteile (genau genug um auch noch ne Tür zu finden), und die als "befahrbar oder nicht" markiere, geht das, denke ich.

Wir haben hier nen riesigen Vorteil: das Einsatzgebiet ist bekannt.
Somit kann man die Karte bereits im Vorfeld erzeugen, und einfach ablegen.
Gegebenenfalls auch mehrere mögliche, auf SD-Karte z.B. (auch das geht mitm Arduino locker ab).
Die Feinheiten erledigen wir dann mit Odometrie (die sich, z.B. an bekannten Punkten, wie Türen, wieder mal kalibrieren lässt) und entsprechenden Sensoren- nen paar US-Sensoren vorne und seitlich erledigen das.
Hier gibts echt keinen Grund für schwere Waffen...

Möglicher Aufbau: drei US-Sensoren in der Front (zweie genügen wohl auch, aber einer mehr schadet nicht), an jeder Seite noch einer. Hinten- nur wenn aktives Ausweichen wirklich gefordert wird, und somit Rangiermanöver anfallen können. Ansonsten brauchen wir den nicht, wenn Hindernisse erkannt werden, halten wir einfach an, oder versuchen, sie vorwärts zu umfahren.
Odometrie mittels Encoder am Motor (einfache Sache, da fertig zu kaufen), auch ne Mauskamera wäre denkbar- und präziser.
Kriegt man auch noch mit nem Arduino hin. Einzig der Bodenabstand muss mittels anderer Linse angepasst werden, aber dann funktioniert das hervorragend.
Die zu fahrende Strecke messen wir grob aus und übertragen sie als "Karte" in ne zweidimensionale Matrix. Soll das unbedingt im Vorfeld bereits passiert sein, dann eben auf ne SD-Karte, nen zusätzlichen EEPROM oder sonst irgend was.
Dort ist sogar ein ganzer Plan des Gebäudes möglich- wir brauchen es nur rudimentär!
Auflösung: Quadrate von 50x50cm, wenn genug Speicher da ist, kann man sie kleiner wählen, dann wirds präziser.

Bei unbekannten Hindernissen wird gestoppt, den (vorher bekannten) Weg können wir direkt in der Karte ablegen.
Falls man mehr will: einfach eine komplette Karte des Einsatzgebietes ablegen, die bekannte Hindernisse bereits enthält. Dann müssen, wenn ne unbekannte Strecke gefahren werden soll, nur Start-und Zielpunkt noch in die Karte eingefügt werden.
Das würde immer noch mit nem Arduino gehen: die "Karte" auf nen kleines Touchdisplay zeichnen, und dann wird nur Start-und Zielpunkt live eingegeben. Würde mit nem normalen Arduino wohl etwas eng, aber nen Mega2560 packt auch das noch.
Und: diese Variante wär für Zuschauer natürlich beeindruckend, das macht einfach was her....
Geht mitm Pi auch, für den gibts ja auch so handliche Touchscreens.
Die Wegberechnung kann man durchaus so machen, wie HAWE das bereits beschrieben hatte, da gibts einige, nicht allzu schwierige, Vorgehensweisen.
Auch erweiterbar ist es: "Fahre von A nach B, OHNE über C zu fahren" oder anderes...

Somit nen durchaus überschaubarer Aufwand, wobei ein Pi die Sache komplizierter macht, als es nötig wär...es ist ganz sicher mit nem Arduino Mega 2560 lösbar, und das dann schon recht komfortabel.
Passende Motortreiber gibts zu Hauf, ebenso US-Sensoren, Displays usw.

Ich persönlich würd versuchen, die Nutzlast runter zu handeln, einfach, weil die vieles an der Geschichte unnötig aufwendig macht: nur deshalb braucht man nen stärkeren Antrieb, nur deshalb dann auch ein grösseres Chassis (ohne den Quatsch könnt nen RP6 das nämlich locker erledigen!)...
Aber da fällt mir ne Alternative ein: an das Fahrzeug (kann dann nen recht einfaches Roboterchassis sein) einfach nen Anhänger dran.
Dann _geht_ das mit nem RP5 (ggf. bissel Ballast rein, damit er das zieht, weiss nicht, wieviel Grip die haben), und für die Nutzlast reicht irgendein Bruder-Spielzeuganhänger.
Zum rangieren besser was einachsiges.....;)

HaWe
11.01.2016, 15:21
ps,
andere, flexiblere Umfahr-Methoden bieten Bug oder Bug2.

pps,
ja, ntl hat Rabenauge Recht, das habe ich vorrausgesetzt: die Karte ist ja bekannt und muss selbstverständlich vorher in einem groben Raster eingespeichert werden.


ppps
und ich weiß ntl, dass Rabenauge den Mega liebt, so wie ich den NXT - wegen seiner integrierten, nahezu idiotensicher-einfachen Programmierung (z.B. NXC) und (gerade noch ausreichenden) Anschlussmöglichkeiten für Encodermotoren und verschiedenste Sensoren, und ein Display und Sound und BT und ein Batteriefach und Steuer-Buttons sind auch schon eingebaut.

i_make_it
11.01.2016, 15:47
Bei einer Raster Karte (occupancy Grid) und Türen mit 80cm Breite, würde ich ein Raster von maximal 40cm nehmen. bei einem 50cm Raster kann es passieren, das die Rastergrenze genau in die Türmitte fällt. dann enthalten beide Rasterflächen sowohl 40cm freien Raum und 10cm Wand. im ungünstigsten Fall kann es durch Kollissionen mit dem Türramen dazu kommen das dann die Tür aus der Karte eliminiert wird.
ich selbt habe mit dem Durchmesser meines damaligen Roboters (MIT Rugwarrior) angefangen und bin dann zu einem Raster mit dem Radius das Roboters als Zellengröße übergegangen.

Bei den US Sensoren kann man etwas sparen, wenn man 2 Stück schwenkbar macht. Beim RP5 habe ich zwei Stück die seitlich auf Servos sitzen, damit bekomme ich 360° hin bei 36 Messwerten. Bei Gradeausfahrt schwenken die immer nur um 60°, damit decke ich 120° ab.

Und ich habe ja schon ein paar mal geschrieben. Man kann anhalten und warten bis das bewegliche Hinderniss weg ist. Ist aber die Umfahrung des Hindernisses gefordert wird es knackig. Die Bug Algorithmen sind wunderbar für ortsfeste Hindernisse, Bei beweglichen Hindernissen bekommt man da schnell seinen Spaß (Wenn Mensch steht und sich dann ungünstig bewegt).

Deshalb habe ich ja auch gefragt, ob sich die Lehrer da bewusst sind was für eine Aufgabenstellung sie da formuliert haben.
Oder ob die Aufgabenstellung falsch verstanden wurde.
Sollte es z.B. nicht um bewegliche sondern um "nicht statische" Hindernisse gehen, wirds so einfach das man mit Bug arbeiten kann.
"nicht statische" Hindernisse sind unbewegliche Körper die bei jedem Durchlauf zufällig verteilt werden, sich aber wärend des Durchlaufs nicht bewegen.
Es kommt also auf die genaue Aufgabenstellung an welchen Aufwand man betreiben muß.
Wobei ich mir aber nicht vorstellen kann das eine Schule eine Aufgabe stellt die nicht benotet wird aber dem Schüler nicht abschätzbare Kosten aufbürdet.
Ich habe auf der Fachschule auch verschiedene Projekte bekommen die als mündliche Note bewertet wurden, aber da wurde entweder das Material gestellt oder die Aufgabe musste nicht in Hardware ausgeführt werden sondern nur berechnet, Materiallisten erstellt, Kosten und Zeiten berechnet werden und dann präsentiert werden.
Wer die Möglichkeit hatte, konnte wenn er wollte die Lösung auch in Hardware abgeben, aber dafür gab es dann keinen einzigen Punkt mehr.
Mich würde also auch brennend die Schule interessieren die sowas als Aufgabe stellt.

HaWe
11.01.2016, 16:43
als Karten-Rasterbreite hat sich bewährt:
gut die Diagonale des Roboters, denn dann ist ein Feld gerade so groß, dass er darauf fahren und wenden kann.
Das ist aber nur für automatische Wege-Suche wichtig, denn auf Flächen kann er sich ja sowieso frei bewegen, zur aktuellen Positionsberchnung sogar im mm-Maßstab (float-Werte), die kriegt man ja eh über die Odometrie.

ps
wenn sich Personen oder Hindernisse bewegen, kann man warten, bis sie weg sind.
Wenn sie feststehen, kann man sie im Bogen oder per Bug(2) umfahren. Das ist kein Hexenwerk.

Sollte man beim Umfahren auf ein neues Hindernis stoßen, kann man es ebenfalls umfahren - gerade das macht der Bug2 automatisch, und man muss ja nicht gegen Gegner antreten, die einem bewusst durch hin- und her-dribbeln den Weg verstellen - es ist ja nur auf Schüler-Niveau.

Rabenauge
11.01.2016, 17:55
Stimmt natürlich: man kann US-Sensoren auch schwenken. Sparen wird man dabei aber höchstens Anschlüsse (viel auch nich), selbst ein Billigservo ist nicht billiger zu haben als ein HC-SR 04 (da krieg ich fünfe von für nen Zehner). Und: schwenken braucht Zeit. Ich stelle mir gerade nen Schulkorridor voller neugieriger, gehässiger Kids vor, die es dem Fahrzeug so schwer wie möglich machen wollen. Da ist keine Zeit für sowas. Schon gar nicht, wenn die sich auch noch bewegen...
Allerdings: unter solchen Umständen ist die Aufgabe wohl so oder so _nicht_ zu bewältigen.
Einzelnen, "zufällig" daherkommenden Personen ausweichen dagegen schon: entweder stoppen bis die Bahn wieder frei ist oder eben irgendwie umfahren. Ich wäre hier für stoppen-Menschen sind nämlich unberechenbar. Es gibt kaum ne Möglichkeit, zu ermitteln, ob die entgegen kommende (oder vorausgehende, wie auch immer..)Person weiter laufen wird (hier kann man sie recht simpel umfahren) oder aber selbst ausweichen wird- dann wird es chaotisch.
Zumal wir hier von nem Roboter reden, der sicherlich seine Nutzlast nicht in Sekundenbruchteilen beschleunigen oder abbremsen können wird- damit könnte man Menschen wiederum austricksen. Das aber können wir wohl vergessen. Auch weil das im Fehlerfalle böse ausgehen kann.
Obendrein erfordert das auch recht hohe Geschwindigkeiten, wo wir wieder mit US-Sensoren nicht mehr auskämen, so viel sind 4m nicht...die Billigdinger schaffen die oft nicht mal.
Und über alles, was da helfen könnte (Wärmebild wäre ne recht gute Möglichkeit, sollte nen PI auch schaffen) reden wir nicht in Zusammenhang mit nem Schüler-Projekt.
Also fahren wir recht langsam, bleiben bei erkannten, ungeplanten Hindernissen erst mal stehen und warten ab, was passiert (sonst nämlich kann man den Roboter austricksen, indem man einfach vor ihm campiert): wenn sich das Hindernis ne Weile nicht bewegt (kann man ja schon noch detektieren mit US), umfahren wir es.
Muss ja auch nicht zwingend ein Schüler sein, sondern die Putzfrau kann ja mal ihren Eimer vergessen haben oder so, also können wir nicht ewig warten.
Man schafft es übrigens nicht, nen sich-bewegenden Menschen mittels Servo und US-Sensor im Auge zu behalten, auf kürzere Distanz (und allzu lang können wir nich, wenn wir noch durchkommen wollen) ist das zu langsam.

Das würde ich, wenn denn das Chassis einsatzbereit ist, mal austesten: wie schnell kann ich fahren, ausweichen, bremsen, und auf welche Entfernungen muss ich dann die Umgebung wirklich sondieren. Das dann mal mit normaler Schrittgeschwindigkeit kombinieren und dann die Sensoren so nutzen, dass der maximal nötige Bereich grade noch abgedeckt wird. Sonst bekommt man ganz schnell ein Zeitproblem.
Gegen rennende Kids oder nen hingeworfenen Ball gibts _so_ ohnehin kein Mittel, das sind Probleme, an denen sich Profis die Zähne aus beissen.
Allenfalls ne gute "Panzerung", mehr ist nicht. Ich denke aber, der Lehrer wird sich überreden lassen, das Ganze unter "Laborbedingungen" (einzelne, normal laufende Leute, keine Fussbälle usw.) anzuerkennen.
Sonst nämlich gerät das sehr schnell ins uferlose...

i_make_it
11.01.2016, 20:04
Ja Kinder können so grausam sein. Stichwort: "Robot abuse by children"
https://www.youtube.com/watch?v=pnSLGcoiFqg

HaWe
11.01.2016, 20:19
Ich denke aber, der Lehrer wird sich überreden lassen, das Ganze unter "Laborbedingungen" (einzelne, normal laufende Leute, keine Fussbälle usw.) anzuerkennen.... ... und nur leichtere Handfeuerwaffen...

i_make_it
11.01.2016, 20:39
... und nur leichtere Handfeuerwaffen...


Deffinier mal leicht.
31114
Aber im Ernst ist das dann noch verhältnissmäßig gegenüber den Schülern?

HaWe
11.01.2016, 21:20
die mittlere, ja :)

i_make_it
11.01.2016, 22:09
Autsch. Die mittlere ist ein Barrett M82, 12,7x99mm zur Bekämpfung gepanzerter Ziele bis 2000m.
Um ein Paar Bücher zu verteidigen ist das doch etwas oversized.
Aber ich hätte da noch eine Alternative
31115

Manf
11.01.2016, 22:41
Ich versuche es nochmal und hoffentlich etwas verständlicher aufzulisten, wie mein Lehrer mir diese Aufgabe zugeteilt hat:

+ Ich brauche einen Roboter der 5kg tragen kann (ich habe nochmal nachgefragt und 5kg genügen)
+ Mit einem Programm soll dieser Roboter von einem Startpunkt zu einem Ziel fahren. Der Weg wird aber nicht gerade sein, da er durch mehrere Räume fahren soll
+ Damit der Bot nicht in Schüler reinfährt, soll er ausweichen können

Bei meiner Aufgabe ist der Roboter selber nicht das wichtige, sondern, dass der Roboter automatisch beim Starten einen bestimmten Weg befahren kann ohne von der Traglast zusammenzufallen.

Es gibt bei der Aufgabe sicher noch ein paar Punkte zu klären, um sie besser einschätzen zu können.
Minimal ist ja beschrieben, dass das Fahrzeug einmal eine bekannte Strecke fahren soll.
Alternativ könnte das Fahrzeug als Grundlage für viele weitere Arbeiten geplant sein oder sogar einem praktischen Zweck dienen. Das heißt dann es wäre länger im Einsatz, für unterschiedliche Strecken und er soll ggf. auch wartbar oder erweiterbar sein.


Es muss nicht ein Pi sein, war nur ein Vorschlag meines Lehrers da ich mehr Erfahrung damit hatte als zB mit Arduino.

Das Vorschlag, für die Steuerung ein dem Erbauer bekanntes Sytem einzusetzen könnte bedeuten, dass das Gerät nicht von jemand anderem programmiert werden soll, oder dass die Steuerung nebensächlich ist weil sie ohnehin noch ersetzt wird, das Fahrzeug also doch später noch eingesetzt werden soll.

Das wäre für die Entwicklung des Fahrzeugs schon interessant.

Dahris
15.01.2016, 15:36
Hallo!
Entschuldigung für die späte Antwort!

Die Idee die Last zu ziehen, statt zu tragen finde ich sehr gut!
Würde eine Arexx RP6 V2 das schaffen, oder soll ich das Gewicht weiter runterhandeln?

Arduino Mega 2560 und NTC sind beide sehr ansprechend. Würde ich sie noch brauchen, wenn ich einen RP6 nehmen würde, oder hab ich da etwas missverstanden?
Ich hab mich jetzt auch gegen einen Pi entschieden.

Ich kann versichern, dass mein Roboter (Gott sei Dank) nicht in die Nähe von den Kleinen kommt. Die spielen immer Fussball und Abschießen, aber ein Lehrer von mir kümmert sich immer lautstark um sie. Obwohl ich ihre Destruktionsfähigkeit mit einer Handwaffe vergleichen würde. Sie können ziemlich schrecklich sein.

Das Problem mit den bewegenden Schülern habe ich mit meinem Lehrer besprochen und jetzt soll ich mich nur noch um stillstehende Hindernisse kümmern. Also z.B. ein Schüler lässt eine Tasche im Weg liegen, Zuhause liegt die Katze oder der Hund da und ist zu faul um sich zu rühren etc.

Anfangs dachte ich auch daran, einfach einen einprogrammierten Weg anzuwenden, aber wenn die Tasche da liegt, kann mein Roboter nicht ewig dastehen, sondern sollte schon in der Lage sein herumzufahren.

Wie würde ich die Zwischenhaltestellen behandeln? Mein Roboter soll ja kurz stehenbleiben, damit man Sachen reinlegen kann und dann weiterfahren.

Das Gerät sollte auch von anderen anwendbar sein, auch wenn das nie der Fall sein wird. Die Steuerung ist mein Projekt, auch wenn ich den restlichen Roboter in meiner Freizeit baue.

LG
Dahris

i_make_it
15.01.2016, 19:15
Wenn die Last gezogen werden soll, muß die Zugmaschine so schwer sein, das die Traktion nicht verloren geht.
Sonst drehen einfach die Räder durch und es bewegt sich nichts.
Wegen den Haltestellen, Wenn der Roboter da ist, starte einen Timer z.B. 5 Minuten und schalte eine grüne Lampe an.
Nach 3 Minuten gibts gelb und nach 4:30 rot blinkend.
Dann noch ein roter und ein grüner Pilzkopftaster drauf.
Grün drücken heist, Robi kann sofort weiterfahren.
Rot drücken heist Timer um eine Minute oder mehr verlängern.

Rabenauge
16.01.2016, 07:11
Hindernisse wie ich schon sagte: erst mal warten (besser ist besser, da kann ja doch jemand sein), und wenn sich nach zwei, drei Sekunden nix rührt, umfahren.
Dürfte das einfachste sein- nen bewegliches von nem festen Hindernis zu unterscheiden ist weit schwerer.

Ob der RP6 die 5 Kilo zieht, weiss ich nicht- das müsste jemand probieren, der einen hat, aber ein Anhänger ist entschieden einfacher zu bauen als ein ganzer Roboter für so ne Last.
Und um 5 Klio zu ziehen, braucht man nich viel Leistung, wenn der Anhänger wenigstens Räder hat (bei Kufen säh das etwas anders aus), Wie gesagt: notfalls kann man nen Bruder-Anhänger oder sowas nehmen.
Das wird erst schwieriger, wenn auch rückwärts rangiert werden muss.