PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Open Source Netbook-Robot



nexusnoesis
13.01.2009, 14:39
Habe mich entschieden einen möglichst einfach zu bauenden Roboter aus einem Netbook (Asus eeePc 701), Lego Technic, und einem USB Rocket Launcher Spielzeug von ThinkGeek zu bauen und darüber einen Blog zu eröffnen inkl. gelegentlichen Sourcecode Releases.

http://nexno.blogspot.com
http://code.google.com/p/robot-at-home/

Würde mich freuen, wenn Ihr Lust habt mal reinzuschauen oder gar mitzuwirken.
Entweder per Kommentar oder in der zugehörigen Google Group.

schreihals
28.05.2009, 21:06
Netter Ansatz. Ich frage wich warum noch keiner darauf reagiert hat. Denn eigentlich hat das Konzept doch Potential: Schnelle CPU, relativ günstige Komponenten und quelloffen ist es auch noch. (Den Ansatz zur Bildverarbeitung habe ich auch gesehen)

Wie wäre es mit etwas eigener Elektronik? Dann könnte man auch mehr als 250mA pro Antriebsmotor verplanen, oder wird das USB-Limit schon irgendwie umgangen? Der eventuelle Nachbau durch Andere wird dadurch natürlich nicht einfacher.

MfG, Schreihals

nexusnoesis
28.05.2009, 21:47
freut mich das es dir gefällt :) der Bildverarbeitungsansatz den du da links ist sehr simpel, da geht schon einiges mehr (z.B. mit opencv). Wenn jemand Interesse hat an dem Projekt weiterzumachen, freue ich mich über ne Mail oder ein Posting. Gerne könnte man sich auch treffen und gemeinsam tüfteln (München).
Allein fehlt mir aktuell Zeit und Motivation an dem Projekt großartig weiterzuentwickeln.

schreihals
29.05.2009, 22:39
Huch, der Link auf die Bildverarbeitung muss automatisch erstellt worden sein.

Das mit der Motivation kommt mir doch bekannt vor.Die Resonanz auf Open-Source Projekte ist in der Regel schlecht, wenn man erst Hardware dafür bauen muss wird es nicht besser. Zumindest war das bei meinem Versuch auch der Fall, 1000 Webbesucher und 0 Feedback.

Im Moment könnt ich dein Projekt aber auch nicht testen, mir fehlt ein passendes Netbook. Es müsste dann quasi erstmal mit einem USB-Verlängerungskabel laufen, oder ein altes schweres Notebook herum fahren (Große Motoren -> Große Akkus -> große Motortreiber -> mehr Elektornik ...).

Bei der ganzen Überlegung komme ich ganz schnell zu dem Punkt an dem man um eine Abstraktion der Hardware des Roboters nicht herum kommt. Man denke alleine schon an die physikalischen Abmessungen und Sensoren verschiedener Roboter. Es gibt mehrere Open-Source Projekte die sich dem Problem angenommen haben. Player aus dem Player/Stage Projekt scheint der Defakto-Standard zu sein. Das einzige Problem mit Player ist das die unterstützten Roboter alle relativ teuer in der Anschaffung sind.

Wäre es daher vielleicht sinnvoll sich einfach einen eigenen Player-Treiber zu schreiben? Ein paar Bildverarbeitungsmodule gibt es auch schon, z.B. nen Blobfinder und ein 2D-Barcode-Detektor.

Hmm, irgendwie München ist 'ne ganze Ecke weit weg, aber eigentlich kann ich mir nicht vorstellen das es keine anderen Leute mit dem gleichen Hobby in deiner Stadt gibt.

Bei Gelegendheit werde ich mal schauen wie aufwendig die Player-Treiber wirklich sind. Eigentlich müsste das ein Problem sein dass sich in endlicher Zeit lösen lässt.

Gruß, Schreihals

pacer_one
23.06.2009, 10:09
Hallo,

Um mal meinen Senf dazuzugeben...
Also nicht dass ich mitmachen möchte, dazu ist mir das Thema einfach zu komplex und richtig programmiern kann ich auch nicht.
Aber vielleicht solltest du mal mit ein paar Details rausrücken (zB. Programmiersprache)
Desweiteren ist es hilfreich, wenn jemand den "Projektleiter " macht, das heißt es muss eine gemeinsame Linie gefunden werden. Wenn du die ersten Schritte machst, finden sich sicher Leute die auch etwas zu dem Thema beitragen möchten. Was natürlich nicht vergessen werdn darf, nicht jeder hat das Geld sich das nötige Equipment zuzulegen.

schreihals
24.06.2009, 14:06
Hallo!
Wenn ich das soweit richtig erkannt habe liegen im Versionsverwaltungssystem Quellcode für Java und C. Der Bildverarbeitungsteil scheint auf Linux ausgelegt zu sein, zumindest legt das die Verwendung von V4L2 nahe.

Wenn ich mir das Umfeld der Amateur Roboterei da draußen mal so ansehe, scheint es mir fast ein wenig so als wenn es 100 Projektgründer, aber keinen einzigen Projektunterstützer, gibt.
Frameworks oder kleine nützliche Fragmente gibt es im Netz schon in recht großer Menge. Leider scheint(!) es so als wenn ganz wenig in die ursprünglichen Projekte zurückfließen würde, bzw. kommt es nicht zu einer gemeinsamen (Weiter-)Entwicklung. Man könnte meinen das Ziel Vieler sei es das Rad immer wieder neu zu erfinden, was sicher auch interessant, lehrreich und reizvoll ist.

Wenn man denn hier drin eine Frage oder ein Problem erkennt das man lösen oder beantworten möchte, denke ich: Unter Umständen ist eine weitere Projektgründung, mit einer weiteren hochspezialisierten Ausrichtung, nicht unbedingt die Antwort.

Zum Equipment kann ich nur sagen: Sicher gibt es einen sinnvollen Kostenrahmen mit einer Obergrenze, aber auch mit einer Untergrenze.

MfG, Schreihals

HannoHupmann
05.07.2009, 11:25
Ich versteh ja nicht ganz warum da ein Netbook drauf muss? Die haben doch schon wieder viel zu viel Zeug mit an Board das keiner Braucht. Nimm lieber ein Handelsübliches Embedded Board. Sowas kostet um die 90€ (NGW100) z.B. hat ein kleines Linux drauf und man kann direkt 48 IO Pins ansteuern. Außerdem verbraucht das Board nur so 2Watt und läuft daher problemlos mit den Boardakkus des Roboters.

Soviel zu den Vorteilen, einzige Nachteile: man muss recht fit in Linux sein bzw. sich dort einarbeiten bis man erste Erbenisse hat. Es gibt für Roboter Hardware noch keine Treiber, sprich entweder selber Treiber schreiben oder über mmap ein passendes Programm.

Ich arbeite so nebenbei an einer Umsetzung des NGW100 für Roboter, aber das wird noch eine Weile dauern bis da erste Ergebnisse raus kommen die für Anfänger auch geeignet sind.

Richard
05.07.2009, 15:15
Ich versteh ja nicht ganz warum da ein Netbook drauf muss?

Ich verstehe nicht warum es überhaupt etwas in Richtung PC gehen
soll? Klar, da ist genug Leistung für z.B. Bildauswertung vorhanden.
Dafür fehlt die Hardware Unterstützung quasi ganz, jedenfalls ohne
passende Treiber. :-( Unter dem "guten alten DOS" konnte/durfte
Mensch ja noch wie beim µC in die Hardware Register schreiben und
zur NOT mittels Debug eigene kleine Assemler "Treiber" schreiben.

Heute ist man auf Herstellertreiber und oder API`s der Hersteller
angewiesen und hat absolut keine Gewär was dort alles abläuft
und wie lange das dann letztendlich dauert. :-(

Dieses neue AVR Linux Board würde mich schon reizen, aber um
ne LED aus dem Userspace mit recht niedriger Frequenz "Blinken"
lassen sind mir 100 Euronen dann doch etwas zu Teuer, damit nen
schnellen PID Regler realisieren dürfte weitaus schwieriger als beim
Mega8 zu sein. :-)

Gruß Richard

schreihals
05.07.2009, 18:04
Hallo HannoHupmann,
das NGW100 ist sicher eine interessante Option. Ich würde nie sagen das "ein Netbook drauf muss", zumal dies technisch einfach nicht richtig wäre und sicher nicht in allen Situationen sinnvoll oder möglich ist. Wenn man auf die die "klassiche" Aufgabenteilung zwischen Mikrocontroller und Host (sprich Netbook/Ngw100/PC/etc.) zurückgreift, und eine verbreitete Kommunikations-Schnittstelle wählt, kann man sich das verwendete System ehh mehr oder weniger frei aussuchen.

Der Mikrocontroller erledigt dann die IO-Aufgaben und evntl. die eine oder andere zeitkritische Regelung (z.B. Odometrie & PI-Regler des Antriebs).
Auf dem Host kann man sich dann um andere Aufgaben kümmern, Bildverarbeitung oder Navigation/Mapping wären sicher Kandidaten die von der höheren Rechenleistung und dem vergleichsweise großen und schnellen Speicher profitieren könnten (oder erst möglich werden).

Ob man die low-level IO-Aufgaben wirklich direkt mit dem NGW100 lösen will mag ich im Moment nicht beurteilen. Die Antwort hängt sicher auch von der Art und dem Umfang der Aufgaben ab. Interessant wäre bei dieser Frage auch ob die preempt patches für den AVR32 Linux Kernel mittlerweile stabil laufen und welchen Grad an Echtzeitanforderungen man damit erfüllen kann (welche natürlich auch wieder vom zu kontrollierenden Roboter abhängen).
Die nahezu exklusive Bindung eines Opensource-Projekts an eine einzelne Hardwareplattform ist vielleicht auch ein Problem. Auf der anderen Seite sind die genannten 90€ wahrscheinlich ein eher kleiner Teil der Gesamtkosten des Roboters. (Mich persönlich stört die Abwesendheit eines USB-Hosts auf dem NGW100 am meißten; Wlan, Bluetooth und Kameras werden so recht teuer.)

Die, zugegebenerweise eher strategische, Frage die sich an dies anschließt ist: Sollte es ein Opensource Netbook Roboter Projekt geben, oder eher ein Linux-Kiste-auf-Rädern Projekt? Oder sollte es doch lieber "NGW100 Roboter Projekt" heißen?
.. Und: Schließen Sie sich überhaupt gegenseitig aus? Ist das Eine oder das Andere falsch? Bzw. was hindert eine Kooperation?


LG, Schreihals

HannoHupmann
05.07.2009, 18:26
Vielleicht ein paar Worte zu Echtzeitverhalten bei Linux. Natürlich ist es richtig, dass ein Linuxsystem nicht echtzeitfähig bzw. nur begrenzt echtzeitfähig ist. Nur braucht ein Roboter keine harte Echtzeit sondern höchstens eine schnelle Signalverarbeitung. Gerade wenn es darauf ankommt Interrupts zu verarbeiten ist der NGW100 nach meinen Messungen mit dem Oszi nicht viel langsamer als ein µC (bei 50ns haben wir schwirigkeiten bekommen). Sollange man also im unteren µs Bereich mit den Interrupts liegt, seh ich kein Problem für Roboter.

Natürlich schliesst sich das eine nicht aus, nur finde ich persönlich, dass bei einem Netbook zuviel Hardware drum herum ist die nicht für einen Roboter ausgelegt und der Stromverbrauch deutlich größer ist.

Es gibt ähnliche Boards mit AVR32 die bereits einen USB-Host integriert haben, an der FH-sind wir außerdem gerade an der Entwicklung eines einsteigerboards mit entsprechenden Schnittestellen und ähnlichem. Dieses soll dann auch Robotertauglich sein, sprich über PWM-, Display- und Servo-Treiber verfügen, auch wir vielleicht gleich ein AD Wandler auf dem Board verbaut.

Grundsätzlich sehe ich in Embedded Linux (unabhängig vom Board) die nächste Stufe nach µC, deren Leistungsumfang durchaus stark begrenzt ist.

nexusnoesis
05.07.2009, 21:03
ich weiß ja nicht ob ihr meine motivationsgründe gelesen habt, aber hier nochmal in kurzform:

- nicht jeder hat lust/zeit/ahnung/geld/interesse sich mit lowlevel hardware zu beschäftigen

- es haben ne menge leute ein netbook schon daheim rumliegen

- es geht weniger um effiziens, mehr um einen großen möglichkeitsraum und highlevelsprachen (webcam, java, tcp/ip stack, soundkarte, wifi, ...)


ps: die motoren werden bei mir direkt von der usb schnittstelle des netbooks gespeist, was dazu führt das außer dem netbook akku selbst überhaupt kein weiterer akku gebraucht wird. und die laufzeit (bei eingeschaltetem wifi+webcam und dauerhaftem rumfahren) ist immernoch >1std.

Zachso
24.10.2009, 20:37
also netbook ist ne super idee, ich hab auch schon oefters drueber nachgedacht, es ist einfach am billigsten wenn man sich folgendes vor augen fuehrt: man hat nen usb-host, ueber diesen kann man die lowlvl Hw anschliessen, ausserdem z.B. 2 kameras, wifi ist ebenfalls mit drinne, nen gps-empfaenger gibts auch billig, ausserdem ist damit eine komplette debugging-einheit mit an bord. klar ist das absolut nichts fuer kleine bots, aber fuer grosse ist das eine absolute Bereicherung der Moeglichkeiten. da die meisten netbooks sogar N-wifi haben duerfte es nichtmal ein Problem sein die Bilder der Kamera sowie saemtliche andere Daten life zu streamen, z.B. auf nen andern Rechner, oder ein notebook oder sonstwas. die moeglichkeiten werden dadurch auf eine art und weise bereichert wie es ein NGW nicht in der lage waere, denn das NGW hat keinen x86 (fuer die es nunmal saumaessig viel software gibt) und keine usb-host und auch keine 1,6 GHz, ausserdem auch keine FPU (zumindest soweit ich das mitbekommen habe). wlan fehlt auch, display hats auch nicht, keine tastatur... klar wird damit die software auf ne komplett neue Stufe gehoben, man muss sich auch gedanken machen ob man evtl. nen paar funktionen auslagert (z.B. hinderniserkennung per IR oder so), aber ich denke das ist durchaus gut machbar.

ciao, zachso

schmiereck
02.01.2010, 13:03
Hallo,

ich finde das Thema auch nicht völlig "sinnlos", wie haben bei uns in der Firma mal angefangen was ähnliches umzusetzen.

Allerdings wollen wir die Motorsteuerung über ein RedLab ( http://www.meilhaus.de/vergleichstabellen/redlab-familie-im-ueberblick/ ) ansteuern, an dem ein LN293D Motortreiber hängt.

Als Experimentier- und Lernsystem finde ich das ganze durchaus sinnvoll.

Grüße,
smk

27Loco
28.02.2010, 22:50
Finde dein Projekt sehr interessant. Als ich gesehen habe das du ein Netbook nutzt kam mir irgendwie gleich der http://en.wikipedia.org/wiki/Fit-PC in den Sinn. Würde wahrscheinlich die Laufzeit deines Robots erhöhen und zudem hättest du Platzersparnis + weniger Gewicht :)

Damit könnte man wahrscheinlich auch ganz gut OpenCV mit fahren.

Bin gespannt auf weitere Updates des Projektes.

nexusnoesis
01.03.2010, 09:30
Finde dein Projekt sehr interessant. Als ich gesehen habe das du ein Netbook nutzt kam mir irgendwie gleich der http://en.wikipedia.org/wiki/Fit-PC in den Sinn. Würde wahrscheinlich die Laufzeit deines Robots erhöhen und zudem hättest du Platzersparnis + weniger Gewicht :)

Damit könnte man wahrscheinlich auch ganz gut OpenCV mit fahren.

Bin gespannt auf weitere Updates des Projektes.

Ja keine schlechte Idee. Allerdings muss man sich dann auf jeden Fall noch um die Stromversorgung selber kümmern.

Updates zu meinem Projekt gibt es übrigens auch. http://nexno.blogspot.com/2010/02/update-on-that-eee-robot.html. Ein paar der anderen Blogeinträge könnten euch aber vielleicht auch interessieren http://nexno.blogspot.com.

@schmiereck: Ich werde im nächsten Schritt wahrscheinlich auch den LN293D Motortreiber oder einen ähnlichen verwenden, den ich von einem Arduino aus ansteuern werde. Durch den Arduino hat man dann gleich die Möglichkeit noch ein paar Sensoren und andere Aktoren zu benutzen, und die ganze Arduino-Plattform ist wiederum ja schon fast zum Standard geworden und leicht zu benutzen ;)