PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Lego Mindstorm: Java: Objekt finden



niccommander
05.05.2010, 14:33
Hallo,

Ich habe folgende Aufgabe: Ich soll einen Roboter programmieren, der sich im Raum orientiert und eine Kugel in einem Raum sucht sucht (per Ultraschallsensor). Ist es die Falsche Farbe (Helligkeit) macht der Greifer auf und sucht die andere Kugel.

Mein Problem ist, dass ich nicht weiß wie ich die Daten des Ultraschallsensors auswerten soll, dass er sich zurechtfindet

der Befehl zum auslesen der Distanz:

public int getDistance()

Return distance to an object. To ensure that the data returned is valid this method may have to wait a short while for the distance data to become available.

Returns:
distance or 255 if no object in range




Grüße
niccommander

Andun
05.05.2010, 16:02
Also irgendwie fehlen deinem Beitrag noch Informationen.

Nur mit einem Abstandssensor kannst du dich nicht "zurechtfinden".

Du kannst aber zum Beispiel den Sensoren, oder den ganzen Roboter solange im Kreis drehen, bis er etwas in der Nähe findet. Darauf dann zu fahren und schauen ob er die richtige Farbe hat.

Falls dir das nicht weiterhilft, musst du vielleicht das Problem erstmal genauer beschreiben, bzw. welche hilfsmittel du nutzen kannst.

niccommander
06.05.2010, 13:18
Also, wie gesagt der muss sich in einem Raum zurecht finden.
Ich kann noch als sensoren 1x drucktaster (1/0) und einen helligkeitssensor einbaun. 1 Motor ist für die Zange zuständig und jeweils einer für das linke und rechte Rad.


Du kannst aber zum Beispiel den Sensoren, oder den ganzen Roboter solange im Kreis drehen, bis er etwas in der Nähe findet. Darauf dann zu fahren und schauen ob er die richtige Farbe hat.

sowas hab ich mir auchschon gedacht, nur wie kann ich unterscheiden, ob das was er jetzt findet ne Wand oder der Ball is

shedepe
06.05.2010, 15:02
Hinfahrn und schaun was dein Helligkeitssensor zurückgibt bzw. wenns ne wand ist wird auch ein Drucktaster ausgelöst werden.

niccommander
06.05.2010, 17:06
es wäre aber besser wenn ich das nur über den Ultraschallsensor hinbekommen könnte, da unser Lehrer das in der Öffentlichkeit vorstellen will. Leider auch nicht im kleinen Rahmen, sondern so mit Presse und so, zur Einweihung des Rasterelektronenmikroskops

Jepp
07.05.2010, 10:47
Also, wie gesagt der muss sich in einem Raum zurecht finden.
Allein eine grobe Selbstlokalisierung ist mit der Mindstorms Hardware ein sehr großer Aufwand.


Du kannst aber zum Beispiel den Sensoren, oder den ganzen Roboter solange im Kreis drehen, bis er etwas in der Nähe findet. Darauf dann zu fahren und schauen ob er die richtige Farbe hat.
Die Idee halte ich für gut, mir fällt da grad noch was ein:
Lass den Bot wirr umherfahren, alle 20cm die oben genannte Drehung durchführen und beim Unterschreiten einer selbst bestimmten Ultraschalldistanz in diese Richtung fahren.


sowas hab ich mir auchschon gedacht, nur wie kann ich unterscheiden, ob das was er jetzt findet ne Wand oder der Ball is
Was die Wand angeht, würde ich ihn bei der "vermuteten Ballerkennung" zwei (oder mehr) weitere Messwerte einholen lassen. Beispielsweise um 10° linksherum und 10° rechtsherum rotieren und diese Distanzen vergleichen. Da sollte bei kleinen Bällen ja nichts gemessen werden.
Beachte dabei die Ultraschallkeule, Größe des Balls und taste dich einfach an einen guten Rotationswinkel heran.

Willst du das mit leJos oder dem NXT-g umsetzen? Den Punkt mit der Presse und Rasterelektronenmikro find ich gut. ;)

niccommander
07.05.2010, 17:22
Ich will das mit leJos umsetzen, da ich Java besser verstehe als dieses Legoprogramm.
Danke aber für den Tipp mit der Objekterkennung über die Drehung, daran dachte ich noch garnich. Ich dachte an Zeit. Aber deine Idee is besser