=) viel glück... irgendwo im forum geistert eine möglichkeit, den asuro multitasking-fähig zu machen. vielleicht hilft dir das dabei.
Hallo zusammen
ich habe jetzt die ersten Fingerübungen mit dem Asuro erfolgreich hinter mich gebracht und mir vorgenommen, die Programmierung im Stil der Subsumption Architektur von Rodney Brooks zu machen.
sieh z.B http://de.wikipedia.org/wiki/Rodney_A._Brooks
Hat da schon jemand Erfahrungen mit dem Asuro gesammelt?
Bin sehr gespannt
Manfred
=) viel glück... irgendwo im forum geistert eine möglichkeit, den asuro multitasking-fähig zu machen. vielleicht hilft dir das dabei.
Hi matoge,
dachte immer dass es Addsumption heisst.
Man lernt nie aus...
Bin gerade mit einem Multitasking Projekt beschäftigt für den ATmega8L um mehrere Tasks laufen zu lassen und mit Treibern die Peripherie auszulesen und zur Verfügung zu stellen.
Darauf aufbauend kann recht einfach die Subsumption von Brooks aufgebaut werden. Wobei dass eigentlich nicht unbedingt nötig ist, da eine Statemachine auch durchaus gute Dienste leisten kann. Per MT ist es aber wesentlich leichter um durchzublicken, gerade mit grösseren Projekten.
Wenn ich damit soweit bin, dass es einigermassen läuft, werd ich das Projekt im forum posten, dann kannst Du es ja mal damit probieren.
O.
Hi,
der Programm Code des c't-Bots ist z.B. so aufgebaut. Das wäre auch für den Asuro machbar. Allerdings ist das Programierung von solchen Verhalten nicht ganz trivial. Den c't-Bot Code gibt es auf dem Heise Server zum Download.
http://www.heise.de/ct/ftp/projekte/...download.shtml
Hi Osser,Zitat von Osser
im Moment habe ich auch die Hoffnung, ohne Multitasking auszukommen (Overhead). Die Idee, die Peripherie über Treiber auszulesen klingt interessant, bin auf Deine Ergebnisse sehr gespannt.
Wenn ich was lauffähiges vorzuweisen habe, werde ich es auch gerne hier zur Verfügung stellen.
Manfred
Hi matoge,
mal schau'n wann ich das soweit fertig habe. Multitasking läuft bereits, aber das Treibermodell ist noch nicht fertig.
Werde nur ein oder zwei Treiber schreiben (habe leider nie Zeit!), dann kann hier im Forum ja der ein oder andere vielleicht die Fehlenden Peripherietreiber ergänzen.
Stay tuned.
O.
Hey m.a.r.v.i.n,
aber das Reitzt den wahren Freak ja gerade -- stimts....
O.
Hi,
@Osser stimmt natürlich
hier noch was zum Thema Peripherie Treiber. RN-User Rakke hatte schon vor gut 2 Jahren eine Funktion geposted in der alle A/D Wandler per Interrupt abgefragt wurden. Der Trick dabei war, die Odo Sensoren öfters abzufragen als die anderen Sensoren. Damit hätte man die ganze Problematik mit Multitasking Programmen schon mal entschärft, da nur noch auf globale Variablen zugegriffen wird und nicht mehr auf die Peripherie.
Hier der Link zum Download:
https://www.roboternetz.de/phpBB2/download.php?id=5106
Siehe auch folgende Threads:
https://www.roboternetz.de/phpBB2/ze...rag.php?t=7571
https://www.roboternetz.de/phpBB2/ze...ag.php?t=15709
Hi m.a.r.v.i.n,
Erstmal Danke für die Links.
Mit den Treibern will ich auf jedenfall auch auf global deklarierte Bezeichner zurückgreifen, da das meines Erachtens nach den geringstmöglichen Overhead produziert. Semaphoren und Mutexe sind auch nur minimalistisch angedacht, schliesslich muss das Ganze ja mit Treibern in maximal 1-2 KB passen (momentan ca. 1,4KB).
Um die Intervalle der Treiber zu steuern, will ich lediglich auf die Priorisierung der Tasks zurückgreifen, d.h.
hohe Priorität => hohe Abtastfrequenz;
mittlere Priorität => mittlere Abtastfrequenz;
usw.
Natürlich garantiert dass keine RT Abfragen da ich preemtives MT einsetze, sollte aber nicht weiter schlimm sein denke ich.
Mit den modularen Treibern haben wir dann nämlich den entscheidenden Vorteil, dass abhängig von dem was gebraucht wird der entsprechende Treiber gelinkt wird oder eben nicht und dass spart wiederum Platz.
Gruss,
O.
matoge, m.a.r.v.i.n,
hab das angekündigte Multitasking in einer Alpha Release im Thread https://www.roboternetz.de/phpBB2/viewtopic.php?t=27463 gepostet.
Hat momentan eine Overhead von ca. 2KB (weniger als die asuro lib) da der Peripherieteil anders aufgebaut ist und momentan noch nicht alle Treiber implementiert sind. Aber bei den Treibern vertraue ich hier auf die Community, da wird hoffentlich schon bald mehr zur Verfügung stehen.
Naja, schaut's euch mal an.
Tschö.
O.
Lesezeichen