PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Besondere Lernleistung - Bau und Programmierung eines autonomen Erkundungsroboters!



KR-500
10.06.2012, 13:49
Hallo zusammen,

mein Bruder und ich besuchen zur Zeit die gymnasiale Oberstufe, und da es nun aufs Abitur zu geht haben wir die Möglichkeit eine "Besondere Lernleistung" abzugeben. Dabei handelt es sich um ein außerschulisches Projekt, für das man ein Jahr Zeit hat und dann mit in die Abitursnote eingeht.

Wie der Titel schon sagt, wollen wir einen autonem Erkundungsroboter bauen, der mit GPS und allerlei Sensoren ausgesattet ist. Bei dem Projekt werde ich ein Board mit einem ARM (LPC1769) entwickeln, dass die Sensoren auswertet und die Motoren regelt. Die Sensordaten werden dann über eine Ethernet-Schnittstelle an ein Mini-ITX Board weiter geschickt. Die Programmierung des Mini-ITX Board übernimmt dann mein Bruder, geplant ist, dass die Sensordaten ausgewertet werden und dann dementsprechend die Motoren angesteuert werden. Ziel ist es dem Roboter eine Zielkoordinate zu geben, so dass dieser Autonom dort hinfinden kann.

Als allererstes benötigen wir ein geeignetes Chassis, das ein Mini-ITX board trägt und die zugehörigen Batterien. Im Moment tendiere ich zu dem "ATR Base Kit" von superdroids mit 42mm Motoren: http://www.superdroidrobots.com/shop/item.aspx?itemid=740 oder zu dem mit 32mm Motoren:
http://www.superdroidrobots.com/shop/item.aspx?itemid=739

Wir haben bereits Sponsoren gefunden, dennoch sind die Chassis ein wenig teuer. Deswegen wollte ich fragen ob nicht jemand eine Idee für ein anderes (billigeres) Chassis hat, ich wollte das Chassis eigentlich nicht sleber bauen.

Als Mini-ITX Board ist ein Board aus der IONITX T Series (http://www.zotac.com/index.php?page=shop.product_details&flypage=flypage_images-SRW.tpl&product_id=349&category_id=97&option=com_virtuemart&Itemid=100179&lang=de) geplant. Dieses hat einen Atom Prozessor und ist dank des NVIDIA ION auch CUDA fähig. Zusammen mit einer SSD sollte das Board auch ziemlich resitent gegen Erschütterungen oder sonstiges sein.

Wir haben hier: mjspringer.wordpress.com (http://mjspringer.wordpress.com) einen Blog für unser Projekt eingerichtet. Dort werden wir immer den aktuellen Status unseres Projektes kommentieren, ich werde natürlich auch hier immer ein kurzes Update geben.
Falls jemand eine Idee zu dem Chassis hat würde ich mich freuen :)

Viele Grüße

HannoHupmann
13.06.2012, 16:04
Also das Chassis ist definitiv zu teuer und es gibt reichlich Alternativen:
1) Irgend ein RC-Monstertruck Fahrwerk nehmen
2) RC-Modelpanzer nehmen
3) Es gab beim Conrad auch ein ähnliches Modell wie euer vorgeschlagenes nur mit 6 Rädern, ich finde den Link nur leider nimmer

Viel Spass beim Aussuchen.

chrisd
13.06.2012, 20:06
das 6 wheel chassis ist von arexx und gibts auch beim Reichelt für 300€
http://www.reichelt.de/Elektronik-Lernen/6WHEEL-CHASSIS/3//index.html?ACTION=3&GROUPID=3644&ARTICLE=102235&SHOW=1&START=0&OFFSET=16&

KR-500
13.06.2012, 22:22
Hallo,

das Chassis sieht gut aus ist aber leider nicht breit genug für das Mini-ITX Board. Wir haben uns dazu entschieden das Chassis jetzt selber zu bauen aus U-Profilen und diesen Motoren (http://www.nodna.de/Produkte/Servos-Motoren-Encoder/Motor-Encoder/Metall-Getriebemotor-12V-mit-64-CPR-Encoder-350rpm--1843.html?sid=3f1d0d8678e45e8e475f10d3abc826fc). Das Chassis ist recht einfach gehalten, am Besten sieht mand das in diesem Schema(siehe Anhang). Hier sieht man das U-Profil von der Seite, der Motor wird an der einen Seite befestig, mit einer Potikupplung wird dann eine Achse an dem Motor befestigt. Die Achse wird gleichzeitig dann auf der anderen Seite in einem Kugellager gelagert. Die Räder werden dann mit Hilfe eines Spannkonus (http://www.conrad.de/ce/de/product/268790/Spannkonus) an der Achse befestigt. Zu guter Letzt werden dann die U-Profile an einer Grundplatte montiert. Die meisten Bauteile gibt es alle bei Conrad, ich brauch lediglich U-Profile und eine 6mm Achse, die sollte es im Baumarkt geben^^

Viele Grüße

Wsk8
13.06.2012, 23:08
Sorry, aber dafür, dass du im Gym bist, hast du von Wirtschaftlichkeit wohl nicht viel Ahnung. Du willst hier im Grunde ein kleines Spielzeugauto bauen in das du dann einen 2000 PS Panzermotor einsetzen willst. Allein für die Stromversorgung bräuchtest du schon ne Autobatterie.
Dieses ITX Board ist ja mal sowas von oversized für diesen Zweck und der ARM auch.
Schnapp dir nen ATmega128 (oder wenn der wirklich nicht ausreicht nen ATxmega), häng 2 Motoren dran, einen GPS Sensor, ein Bluetooth/Wifi-Modul und was du sonst noch brauchst und fertig. Damit sparst du dir viel Geld, viel Zeit und die Chancen, dass es funktioniert, sind auch gleich mal viel höher.

mfg

HannoHupmann
14.06.2012, 07:38
Da muss ich Wsk8 schon recht geben, vor allen hab ich selber auch mal mit ITX Boards herum experimentiert. Am Ende braucht man doch wieder einen µController um die Hardware vernünftig ansteuern zu können. Die Computerboards taugen einfach nicht dazu irgendwelche I/O Ausgänge einzulesen oder anzusteuern. Die Meisten behelfen sich dann doch mit einer RS232 Schnittstelle an dem besagter µC hängt.
Wenn es schon mehr als ein einfacher Controller sein soll, dann könnte ich mir sehr gut ein Embedded Linux vorstellen. Die haben wenigstens die Chance halbwegs Echtzeit-Fähig zu werden und die Hardwareansteuerung ist auch noch möglich. Einzig, dass man sich mit Linux sehr gut auskennen muss dafür.

Da es ja eine besondere Lernleistung werden soll, würde ich euch dringend anraten das Projekt sauber von vorn bis hinten durch zu planen und nicht schon mit der ersten Idee los zu legen. Das macht am Ende einen viel besseren Eindruck, vor allen schützt es euch davor nach einem halben Jahr von vorn anfangen zu müssen, weil irgendwas nicht so klappt wie gedacht.

KR-500
14.06.2012, 12:32
Hallo,

ich gebe zu, dass das Board für diese Aufgabe ziemlich mit Kanonen auf Spatzen geschossen ist, jedoch wollen wir auch nach der Besonderen Lernleistung an dem Roboter weiter Arbeiten und dann Kameras dazu nehmen. Für eine umfassende Bildverarbeitung wird der ARM dann denke ich nicht mehr reichen. Ich habe auch schon lange mit AVRs gearbeitet und einige Erfahrung damit und wollte mich jetzt halt in etwas neues einarbeiten. Außerdem ist es so das bei der Besonderen Lernleistung klare Eigenleistungen erkennbar sein müssen, deswegen haben wir uns dazu entschlossen ein Mini-ITX Board zu verwenden, so dass ich die Hardware über nehmen kann und er die Informatik. Das Projekt ist nicht wirtschaftlich aber das muss es auch nicht sein!

Viele Grüße

KR-500
22.09.2012, 11:33
Hallo zusammen,

es hat sich bereits einiges getan seid den ersten Skizzen. Ich habe bereits Platinen fertigen lassen (Gestern angekommen :)) und der Roboter ist nun so weit aufgebaut. Weiter haben wir nun einen Laserscanner zur Verfügung, dabei handelt es sich um einen TiM310 von Sick. Dieser ermöglicht es uns in einem 270° Winkel bis zu 4 Meter in die Ferne zu schauen. Einziger Nachteil, für den Laserscanner gibt es so wie es aussieht nur Windows support, wir werden uns also unseren eigenen kleinen Treiber für Linux schreiben müssen. Wir hoffen auf gute Ergebnisse mit der libusb.

Auf den Platinen sitzt unteranderem ein LPC1769, dieser ist über Ethernet mit dem Mainboard verbunden. Das ermöglicht ein einfaches ansprechen der Hardware, ein geeignetes Protokoll ist bereits in Arbeit, es wird auf TCP oder UDP aufsetzen. In der Motoerebene kontrolliert ein Atmega8 die Spannung des LiPo Akkus um eine eventuelle Tiefentladung zu verhindern. Ein Stromsensor sitzt sowohl in der Motorebene als auch in der ARM-Ebene, so kann der Motorstrom und der Strom von ARM und Mainboard überwacht werden. Im Anhang noch ein Bild und für die, die es interessiert, hier (http://mjspringer.wordpress.com/) haben wir einen kleinen Fortschrittsblog eingerichtet.

Viele Grüße
KR-500

021aet04
22.09.2012, 11:45
Der sieht sehr gut aus, freue mich auf weitere Fortschritte. Was hat euch der Sick Sensor gekostet?

MfG Hannes

malthy
22.09.2012, 12:47
Sehr schön! Könntest du etwas zur Stromversorgung insb. des Mini-ITX Board sagen? Was für einen Akku verwendet ihr? Wie werden die diversen Spannungen für das MB erzeugt? Gibt es Abschätzungen zur Akkulaufzeit?

Tolles Projekt, weiter so!

KR-500
23.09.2012, 09:40
Hallo,


Was hat euch der Sick Sensor gekostet?

Wir, besser gesagt unsere Schule hat den Sensor gesponsort bekommen von Sick. Der Preis von dem TiM310 beläuft sich so weit ich weiß auf 1000 Euro ;) man kann ihn zum Beispiel hier (http://de.manu-systems.com/Hauptseite.shtml) kaufen.


Könntest du etwas zur Stromversorgung insb. des Mini-ITX Board sagen? Was für einen Akku verwendet ihr? Wie werden die diversen Spannungen für das MB erzeugt? Gibt es Abschätzungen zur Akkulaufzeit?

Das Mini-ITX Board hat praktischerweise ein Netzteil mit drauf, man muss es lediglich mit 19Volt versorgen. Die 19Volt werden von einem externen Notebook Akku (http://www.amazon.de/akku-net-AKKU-NOTEBOOK-EXTERN-153WH/dp/B002NRC70Y/ref=sr_1_11?s=computers&ie=UTF8&qid=1348389249&sr=1-11) bereitgestellt, der hat 153Wh. Laut Zotac soll das Board um die 30 Watt verbrauchen, dann noch ein bisschen Strom für Sensoren und ARM, ich schätze der Akku wird so 3 Stunden halten. Der Akku für die Motoren (5000mAh LiPo) wird wesentlich schneller alle sein. Falls du ein ein kleines Netzteil für ein Mini-ITX Board suchst, dann schau dir doch mal das PicoPSU (http://www.amazon.de/picoPSU-150-XT-DC-DC-Netzteil-power-supply/dp/B0045IXKTQ/ref=sr_1_1?ie=UTF8&qid=1348388998&sr=8-1) an.

Viele Grüße
KR-500

KR-500
16.10.2012, 20:19
Hallo zusammen,

da wir zurzeit Ferien haben, konnten wir ein ganzes Stück weiter arbeiten :)

Auf dem ARM läuft jetzt ein PID-Regler, den ich mit Hilfe der Sprungantwort eingestellt habe. Was der ARM im Moment macht, ist die Motordaten über Ethernet vom Mainboard entgegen zunehemen und dann entsprechend die Motoren anzusteuern. Außerdem ist Vorgestern das GPS-Modul angekommen, dieses wird ebenfalls schon ausgelesen. Im Moment sitze ich an dem I2C Bus, mit dem ich die Ultraschallsensoren, den Kompasssensor und den Beschleunigungssensor auslese.

Das Mainboard liest zu Zeit mit einem selbst geschriebenen Treiber die Daten des Laserscanners ein und wertet diese aus, wenn die Auswertung weiter von Interesse ist, wird mein Bruder gerne noch mehr dazu schreiben :D

Zum Schluss noch ein kleines Video von unserer ersten Testfahrt (http://www.youtube.com/watch?v=0ZOjZB0FD9s (http://www.youtube.com/watch?v=0ZOjZB0FD9s)):



http://www.youtube.com/watch?v=0ZOjZB0FD9s

KR-500

KR-500
21.10.2012, 14:13
Hallo zusammen,

nachdem wir den Roboter Heute im freien fahren lassen wollten, sind wir auf ein großes Problem gestoßen. Es ist nämlich so, dass sich das Mainboard und das GPS-Modul stören, sobald das Mainboard eingeschaltet ist, springen die GPS Werte um bis zu 100 Meter :( An dem WLAN kann es eigentlich nicht liegen, da es die selben Störungen gibt, selbst wenn wir das WLAN komplett ausschalten (auf dem Board deaktiviern und Router ausschalten)

Hatte vielleicht jemand schon mal ein ähnliches Problem?
Liegt es vielleich daran, dass sich Mainboard und GPS-Modul die selbe Stromquelle teilen?
Hilft es vielleicht das Mainboard in ein Gehäuse zu setzen und es so abzuschirmen?

Ich hoffe einer von euch hat eine Idee :) Im Anhang noch ein Bild von dem aktuellen Aufbau. (Auf dem Stab montiert ist links das GPS-Modul und rechts das Kompassmodul, das Kompassmodul wird seltsamerweise nicht gestört von dem Mainboard)

Viele Grüße
KR-500

KR-500
06.11.2012, 21:04
Hallo zusammen,

leider geht es zur Zeit nur noch langsam voran, da wir viel für die Schule tun müssen...

Trotzdem gibt es einige Neuigkeiten, so ist die Hardware des Roboters nun fertig. Dem Mainboard ein Gehäuse zu spendieren brachte tatsächlich den Erfolg. Leider ist der Roboter nun um ein Kilo schwerer geworden, und bringt stolze 8 Kg auf die Waage.
Mittlerweile sind auch noch 3 Ultraschallsensoren und 3 Sharpsensoren angebracht. Die ermöglichen es auch noch Bereiche abzudecken, die der SICK nicht abdeckt. Außerdem sind alle Kabel nun ordentlich verlegt!
Wir arbeiten gerade an einer GUI und dem Algorithmus zum verarbeiten der GPS-Daten. Ich hoffe, dass wir bald noch ein Video zeigen können, Bilder gibt es aber jetzt schon, im Anhang ist eins von dem Roboter und auf unserem Blog (http://mjspringer.wordpress.com/) gibt es auch noch weitere Bilder.


23654

Viele Grüße

KR-500
11.11.2012, 20:49
Hallo zusammen,

die GUI ist nun bald fertig, es gibt hier ein erstes Video (http://www.youtube.com/watch?v=qjU_VlUlLek) von der GUI. Der Roboter steht in dem selben Raum, wie in dem Video zuvor, in dem Video kann man schön die Daten des Laserscanners sehen. Außerdem werden noch jede Menge andere Sensordaten in der GUI angezeigt. Bis jetzt nur noch die Kompassdaten (blaue Linie), die rote Linie ist die Richtung, die von der Freiraumnavigation berechnet wird. Die GUI ist in C mit Hilfe von OpenGL und GLUT geschrieben.



http://www.youtube.com/watch?v=qjU_VlUlLek


Viele Grüße!

Geistesblitz
11.11.2012, 22:48
Also das mit deinem GUI sieht doch schon ganz vielversprechend aus :)
Wieso flackert die Nord-Linie eigentlich so stark, wenn er sich zu ihr hin dreht?

KR-500
12.11.2012, 14:36
Hi,

im Video dreht sich der Roboter nicht autonom, sondern wird von mir gedreht, dabei hab ich leider zwei mal ein bisschen zu weit gedreht :D In der grünen Fläche unten werden übrigens später die aktuellen Motorströme und der Stromverbauch des Mainboards angezeigt.

Viele Grüße!

KR-500
28.01.2013, 17:59
Hallo zusammen,

das Projekt neigt sich mittlerweile dem Ende zu und wir sind fleißig dabei unsere abschließenden Dokumentationen anzufertigen. Gegen Ende Februar bzw. Anfang März wird das Projekt von unserem Lehrer abgenommen. Die eigentliche Arbeit an dem Roboter ist nun beendet und ich bin mit der Dokumentation so weit Fertig. Wir müssen den Roboter lediglich noch einmal im freien testen, was aufgrund der Wetterverhältnisse hier nicht möglich ist...

Die Dokumentationen sind mit Latex erstellt worden und müssen zum Teil noch korrigiert werden, hier ist jedoch schon mal eine erste Version der Doku. Vielleicht endeckt ja jemand einen Fehler, in dem Fall würde ich mich freuen wenn er mir diesen mitteilt :) Die zweite Dokumentation über den Software Teil folgt bald. Die Dokumentation gibts hier (http://mjspringer.files.wordpress.com/2013/01/dokumentation-elektronik.pdf) (http://mjspringer.files.wordpress.com/2013/01/dokumentation-elektronik.pdf) zum Download, da die Datei zu groß ist um sie direkt hochzuladen.

Viele Grüße
(weitere Infos gibts wie immer auf mjspringer.wordpress.com (http://mjspringer.wordpress.com))

KR-500
24.03.2013, 16:14
Hallo zusammen,

die Dokumentationen haben wir nun Abgegeben, es steht nun nur noch die Präsentation und die mündliche Prüfung aus :) Wer Interesse an den Dokumentationen hat, kann sie hier finden: http://mjspringer.wordpress.com/. Beziehungsweise direkt:



http://mjspringer.files.wordpress.com/2013/03/dokumentation_jannik.pdf - Elektronik, Microkontroller, Hardware
http://mjspringer.files.wordpress.com/2013/03/dokumentation_mark.pdf - Programmierung, Laserscanner, Algorithmen


Ich hoffe wir können in nächster Zeit auch ein Video von dem Roboter in Aktion zeigen.

Viele Grüße!

KR-500
14.04.2013, 20:25
Hallo zusammen,

zunächst ein Video, in dem der Roboter immer wieder von verschiedenen Startpositionen eine bestimmte Zielkoordinate anfährt, im Rahmen der GPS-Ungenauigkeit (Kameraführung leider recht wackelig und VIdeo im Zeitraffer!):



http://www.youtube.com/watch?v=HlFbaXtkfpE


Der GPS-Empfänger hat leider nur eine bedingte Genauigkeit und gleichzeitig mussten wir auch eine gewisse Toleranz in den Roboter einprogrammieren, damit er weiß ob er sein Ziel erreicht hat.


http://mjspringer.files.wordpress.com/2013/04/platz.png


Hier sieht man das Ganze noch einmal von oben, die anzufahrende Koordinate wurde bei Google Maps ausgelesen. Wie man sieht gibt es einen systematischen Fehler (Offset) und gleichzeitig sind die Werte nicht so genau, was an der "Dilution of Precision (http://de.wikipedia.org/wiki/Dilution_of_Precision)" liegt (Auf Wikipedia sehr gut erklärt). Weiter Informationen gibt es wie immer auf unserem Blog: mjspringer.wordpress.com (http://mjspringer.wordpress.com).
Fragen, Anregungen und Kritik sind jederzeit wilkommen.

Viele Grüße!