Bitte um Hilfe bei einem Schulprojekt!

Mindstorms im Unterricht. Ideen, Vorstellungen

Moderator: Moderatoren

Billab0ng
Mindstormsfreund
Mindstormsfreund
Beiträge: 7
Registriert: 23. Jun 2009 15:48
Wohnort: Elztal bei Heilbronn
Kontaktdaten:

Bitte um Hilfe bei einem Schulprojekt!

Beitragvon Billab0ng » 24. Jun 2009 12:04

Guten Tag,
ich bin hier totaler Newbie und finde das Forum echt Klasse!
Zunächst hoffe ich, dass mein Thema hier reinpasst. Ich hab zwar schon nach ähnlichen Themen im Forum gesucht aber nur Grobes bis jetzt gefunden.
Falls es doch ein bekanntes Topic in der Richtung gibt entschuldigt mich bitte und informiert mich drüber. Auch Google hat keine befriedigenden Ergebnisse gefunden.

Also ich bin in der 12ten Klasse eines TG und wir haben in Fach Informatik ne Aufgabe bekommen:
Wir sollen herausfinden wie man mit dem NXT hinbekommt, dass er selbstständig seine Lage auf einem bestimmten Feld (sagen wir so 2m auf 1 m) erkennt. Wenns gehen würde ohne irgendwelche Striche auf dem Boden... also ich mein damit, dass die Aufgabe nicht zu schlicht gelöst wird.

Ich glaube, dass bei der Entwicklung vom Robo Soccer ähnliche Probleme auftretten, nur dass unser Roboter eben nicht Fußball spielen soll:
Ein Auszug aus unserem Pflichtenheft:

Muss-Kriterium:
1. Seine Lage auf einer beliebigen Stelle auf dem Feld erkennen
2. Die Lage von anderen Objekten (z.B. einem roten Ball) auf dem Feld erkennen und dort hinfahren

Kann-Kriterium:
1.Den Ball ins einen bestimmen Bereich bringen/schieben, also d.h. ebenfalls von einem beliebigen Standpunkt zu einem bestimmten Standpunkt fahren

Es sollte kein Walker oder ähnliches sein, der fährt ganz normal auf Rädern, auch muss er jetzt den Ball in kein Tor schießen oder ähnliches.
Vielmehr besteht unsere Aufgabe darin, dieses Problem für zukünfitge Schüler verständlich zu dokumentieren, sodass Sie in Zukunft von unserem Standpunkt aus weiterbasteln können. :!:

Was hab ich?
- Ein weißes Feld, ggf. auch mit Banden (1m X 2m)
mit einem roten Ball.
- Der NXT Baustein
- 1 Geräusch Sensor
- 1 Lichtsensor
- 2 Tastsensoren
- 1 Ultraschallsensor
- Bluetooth Kommunikation möglich
- falls nötig auch Webcam

Was kann ich?
Ich habe bis jetzt nur die Programmiersprache Java drauf...
Programmierungsumgebung ist Eclipse. Und solche Sachen wie mit leJos umgehen hab ich auch drauf.

Wie viel Zeit habe ich?
Leider nur genau einen Monat...
:? Zudem schreib ich noch in dem Monat viele Arbeiten...
Deswegen wär ich echt froh über eine möglichst detailierte Problemlösung und Hilfe! :wink:

Ich hab bereits was ähnliches gefunden, aber für einen NXT Laien wie mich bringt sowas nichts.. ich brauch da mehr Details und Hilfe, ggf. sogar Teile des Programmcodes! :cry:

Hier haben paar Leute das Problem schon mit einem Kamera-Server System versucht:
http://embedded.rwth-aachen.de/fileadmi ... i/LEGO.pdf

Also grob: über ne Kamera wird das Bild von dem Spielfeld aufgenommen, auf dem Rechner werden dann die Farbmessungen ausgeführt und dann per Bluetooth auf den NXT Soccer gesendet, der je nach Programm und Werte selbstständig agiert!

Hoffentlich hilft das euch weiter.
Wär auch irgendwie geil wenn man dieses Kamera-Server System auch über die Handy Kamera machen könnte!

Danke ich Vorraus!
Euer BillaB.

Benutzeravatar
Golfi123
Enorm-Viel-Schreiber
Enorm-Viel-Schreiber
Beiträge: 600
Registriert: 5. Mär 2009 18:48
Wohnort: Mainz
Kontaktdaten:

Beitragvon Golfi123 » 24. Jun 2009 17:45

Wilkommen im Forum!
Also das mit dem roten ball erkennnen und suchen ist eher simpel.
Das kannst du mit einem Lichtsensor anstellen. Das orten ist etwas schwerer . es gibt ein solches thema shcon mal im forum. also suche benutzen. ja also wenn man bahnen auf das feld auftragen darf kann man den robo als linefollower benutzen und die umdrehungen messen lassen die von seinem standpunkt aus zum rand des feldes zu fahren sind.
Dann hat man soz. ein koordinaten netz und kann dieses dann mit painxt erstellen und anzeigen lassen auf welchen feld bzw punkt er sich befindet.

Linefollower ist das hier 8 als programm für NXT-G
http://aplueth.ap.funpic.de/Mindstorms/Linienfolgen1LSd.png
hoffentlich klappt der link

und ein video
http://www.youtube.com/watch?v=ORJsJNCuV30

Benutzeravatar
Naruto1310
Enorm-Viel-Schreiber
Enorm-Viel-Schreiber
Beiträge: 577
Registriert: 13. Jul 2008 19:54
Kontaktdaten:

Beitragvon Naruto1310 » 24. Jun 2009 17:55

Er programmiert in Java.
Dieser Satz kein Verb.

Billab0ng
Mindstormsfreund
Mindstormsfreund
Beiträge: 7
Registriert: 23. Jun 2009 15:48
Wohnort: Elztal bei Heilbronn
Kontaktdaten:

Beitragvon Billab0ng » 24. Jun 2009 18:00

Hallo Golfi vielen Dank für deine Antwort,
ja das mit dem roten Ball erkennen und der Linie folgen hab ich schon hingekriegt und hab auch noch den Code dafür.
Das mit den Linien hab ich mir auch schon gedacht, bloß in dem Sinn, dass er erstmal rumfährt und den Abstand zu den Banden misst. Das würde gehen mit dem Koordinatenkreuz...
bloß mein Lehrer hat gemeint, sowas gibt es schon und ich sollte etwas "besseres" machen: :evil:

z.b. das er von einem beliebigen Punkt aus zu einem bestimmten Punkt hinfährt.. und zwar direkt und ohne vorher an der Bande rumzufahren oder ähnliches.
/edit: mir fällt grad ein, dass man sowas theoretisch auch mit einem starken Lichtsensor hinkriegen würde oder?.. bloß ob er jetzt auf eine Distanz von z.B. 1,5 m noch einen roten Ball erkennt ist eher fragwürdig .. was meint ihr?
Wenn es aber dennoch mit so einen(bzw. mehreren) Lichtsensoren möglich sein könnte,.. dann könnte man evtl. den Bereich wohin er den Ball bringen soll auch irgendwie markieren?

Ach ja könntest du mir vllt sagen welchen Suchbegriff ich nehmen soll... irgendwie bin ich zu dumm dafür XD

Dieses Painxt Programm scheint nützlich zu sein, aber heißt es auch wirklich so? Weil google findet unster dem Suchbegriff leider nix :(

Benutzeravatar
Golfi123
Enorm-Viel-Schreiber
Enorm-Viel-Schreiber
Beiträge: 600
Registriert: 5. Mär 2009 18:48
Wohnort: Mainz
Kontaktdaten:

Beitragvon Golfi123 » 24. Jun 2009 18:25

bitte bitte
also
1. das ist der link für das painxt:
http://www.dreipage.de/userdaten2/93104149/download/painxt.exe

Also die ortungsmethode die ich dir erklären wollte ist diese ( ausführlich):
Feld, das in z.b. 10 x 10 cm felder eingeteilt ist.

Roboter wird i- wo hingestellt ( egal od auf linie oder mitten in feld)

erster programmschritt: roboter soll so lange gerade aus fahren, bis er schwarze linie von den kästen findet.

dann drehen und nach der richtung der am nächsten gelegen bande suchen

schwarzen linie in diese richtung folgen( dabei ditanz messen)

wieder auf augangspunkt zurück fahren aber 5 cm davor stehen bleiben

dann um 45 grad nach links oder rechts drehen egal. solange gerade ausfahren bis er schwarze linie findet. dieser folgen bis zur bande.

Distanz messen

zurück zu ausgangspunkt fahren.

Daten zusammen targen und mit painxt oder anderen programmen auf nxt bildschirm anzeigen lassen.

So das ist die ortung.

hoffentlich hilft dir das weiter

Weavel
Schreibt viel
Schreibt viel
Beiträge: 262
Registriert: 1. Jan 2009 17:00
Wohnort: Erfurt

Beitragvon Weavel » 24. Jun 2009 18:49

painxt bringt dir nichts wenn du in java programmierst
If anything can go wrong, it will.
Hilf mit beim Wikibook über NXC.
Infos

Billab0ng
Mindstormsfreund
Mindstormsfreund
Beiträge: 7
Registriert: 23. Jun 2009 15:48
Wohnort: Elztal bei Heilbronn
Kontaktdaten:

Beitragvon Billab0ng » 24. Jun 2009 19:19

OK ich hab deine Taktik verstanden.

aber wie soll ich jetzt Koordinatenkreuz, samt Ausgangspunkt (vllt. sogar mit Koordinaten (x/y) ) anzeigen lassen wenn es mit painxt nicht geht, sofern ich mit java programmieren muss?


Aufjedenfall hätte ich somit das Ortungsproblem gelöst, den das Ziel ist ja erfüllt: der Nutzer sieht die Lage von dem Robo.

Aber nochmal zu dem Ball finden, und Ball transportieren. Ich hab ka wie lang und qualitativ die Lichtsensoren von dem Mindstorm-Set sind, ist wahrscheinlich besser wenn ich den Lehrer frag.
Aber was meint ihr würd das so gehen? Glaub ihr der Lichtsensor würd auf einem Feld von 1x2 m einen Ball finden, ohne vorher irgendwie rumzufahren?

Benutzeravatar
Golfi123
Enorm-Viel-Schreiber
Enorm-Viel-Schreiber
Beiträge: 600
Registriert: 5. Mär 2009 18:48
Wohnort: Mainz
Kontaktdaten:

Beitragvon Golfi123 » 24. Jun 2009 19:28

oh naja
also eher nicht ,denn wenn der ball mehr als 50cm weg liegt wird das ein problem.
er müste halt 3 punkte abfahren und an denen sich immer um die eigene achse drehen bis er ihn findet.

Billab0ng
Mindstormsfreund
Mindstormsfreund
Beiträge: 7
Registriert: 23. Jun 2009 15:48
Wohnort: Elztal bei Heilbronn
Kontaktdaten:

Beitragvon Billab0ng » 24. Jun 2009 19:31

Kennt ihr einen Lichtsensor für den NXT der stark genug wäre?


ich bin mir sicher mein Lehrer würd einen bestellen auf Kosten der Schule :P
(hat er zumindest mal erwähnt XD... aber naja ist ja nicht sein Geld)

Benutzeravatar
Golfi123
Enorm-Viel-Schreiber
Enorm-Viel-Schreiber
Beiträge: 600
Registriert: 5. Mär 2009 18:48
Wohnort: Mainz
Kontaktdaten:

Beitragvon Golfi123 » 24. Jun 2009 20:14

ne es gibt zwar noch einen farbsensor aber der wird dir nichts bringen.

Benutzeravatar
Sebi
Administrator
Administrator
Beiträge: 1946
Registriert: 11. Jan 2008 14:28
Wohnort: Aub
Kontaktdaten:

Beitragvon Sebi » 24. Jun 2009 20:23

vlt. würde ein Lasersensor funktionieren.
Für die Koordinaten bestimmung würde ich dir empfehlen mit einem Program (auf dem Comuter) die Bilder von der Webcam auszuwerten, un das Befehle zum NXT schicken.
Allerdings ist das (glaub ich) kompliziert.

Billab0ng
Mindstormsfreund
Mindstormsfreund
Beiträge: 7
Registriert: 23. Jun 2009 15:48
Wohnort: Elztal bei Heilbronn
Kontaktdaten:

Beitragvon Billab0ng » 25. Jun 2009 09:47

@Sebi: Ja genau an sowas hab ich auch gedacht wegen der Koordinatenbestimmung!
Also es wär nett wenn du vllt deine weiteren Gedankengänge mir mitteilst:

Also ich hab mir das so überlegt:
Die Webcam nimmt das Bild auf und wertet es nach Farbe aus
(So ein Prog gibt es bestimmt irgendwo :P)

Es gibt für Java spezielle Klassen für die Bluetooth-Kommunikation mit dem NXT , also ich mein, dass das auch kein Probleme wäre, dass der Rechner mit dem Robo kommuniziert.

Ich mein also, dass z.B. bei der Situation wenn ein roter Ball und der NXT auf dem Feld sind, die Webcam das Bild auswertet nach Distanz und Winkel, die Werte dem Robo zusenden und der dann zum roten Ball fährt.
Je nachdem müsst man halt den Java-code selber schreiben, weil ich glaube nicht, dass es sowas im Netz gibt, auf jedenfall nicht leicht zu finden.

Sagt mir bitte bescheid wenn ich fantasiere, aber sowas wär ne möglichkeit auch ohne Sensoren und irgendwelchen schwarzen Strichen, den Robo NXT einen Ball finden zu lassen und den auch dann in einen Bereich zu führen.

Siehe den Link in meinem ersten Beitrag, da haben mir paar Leute die Idee gegeben.

Benutzeravatar
Sebi
Administrator
Administrator
Beiträge: 1946
Registriert: 11. Jan 2008 14:28
Wohnort: Aub
Kontaktdaten:

Beitragvon Sebi » 25. Jun 2009 18:34

Mit tbeta + Tuimouse und Infrarotball, +Infrarot filter (Diskette) auf der Webcam
und noch einem Programm was dann die "Maus signale" (von tbeta) aus wertet und an den NXT schickt könnte es funktionieren.


Zurück zu „Unterricht & AG“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

Lego Mindstorms EV3, NXT und RCX Forum : Haftungsauschluss