Forum: PC-Programmierung Matrize oder Array für das sortieren von Objekten


von Udo (Gast)


Lesenswert?

Hallo Zusammen,

ich experimentiere an einem Robotersystem, dass über eine Kamera 
Objekte, die rot, grün oder blau sind, erfasst und mit einem Roboter arm 
greifen kann. Nun möchte ich in einem Array X Y bzw. einer Matrize 
verschiedene Ablagepositionen speichern.

Nehmen wir an Ich habe 1 blaues und zwei rote Objekte. Ich kann nun 
momentan wählen, welche Farbe ich als erstes greifen möchte und bekomme 
auch die Anzahl der Objekte dann geliefert. Meine Frage ist jetzt, wie 
ich meine for Schleife oder was auch immer aufbaue, wenn ich blau wähle, 
und er dann alle blauen Steine an den Positionen 1,1, 1,2 etc ablegen 
soll und dann rot wähle und er alle Steine an den Position der Matrix 
3,1, 3,2 3,3 etc. Ablegen soll? Zwei verschattelte schleifen kann ich 
noch. Aber ich möchte nicht nacheinander die Objekte ablegen sondern ne 
nach farbwahl in unterschiedlichen Spalten oder Zeilen Positionen. Ich 
koennte je nach Farbe mit if else nur entsprechende Spalten oder Zeilen 
aufrufen bzw deren Position dort

von Carsten P. (r2pi)


Lesenswert?

Ich verstehe ehrlich gesagt deine Fragestellung nicht.

Du sortierst die Farbcodes wie du magst, und der Code ist entsprechend. 
Oder du lässt die Software sortieren. Die Farbe bildest du einfach mit 
entsprechenden Bibs in RGB- oder La/b- oder andere Farbräume ab. Und 
danach bildest du die Logiken dahinter aus, RNNs oder was immer passend 
sein mag.

von Udo (Gast)


Lesenswert?

Die Farbe habe ich. Aber ich benötige zum anfahren der vordefinierten 
Ablagepositionen eine. Iterator für ein Array. Ich arbeite mit Matlab.

Beispiel:

x x x
x x x
x x x

Jedes Feld hat eine Position bzw. Koordinaten.

Ist rot gewählt, starte Ablage:
 Rote Objekte = 1

R x x
x x x
x x x

Wähle blau = 2 Objekte

R x B
x x B
x x x

Wie sieht dann meine ifelse oder for Schleifen Struktur aus?

von Klaus (Gast)


Lesenswert?

Udo schrieb:
> Hallo Zusammen,
> ...

So. Das schreibst Du jetzt nochmal in vernünftigem Deutsch. Grammatische 
Sätze. Groß- und Kleinschreibung. Interpunktion. Kurze Sätze. 
Überflüssige Worte lässt Du weg. Z.B. das "ne" in "... die Objekte 
ablegen sondern ne nach farbwahl ...". Dann sehen wir weiter. Das ist ja 
nicht zum Aushalten.

von Mikro 7. (mikro77)


Lesenswert?

Hallo Udo,

Ich probiere es mal...

- Du kannst Objekte an bestimmten Positionen in der Ebene ablegen.

- Du hast einen "Container" in der sich solche (gleichartigen) Objekte 
befinden. Sie unterscheiden sich lediglich in der Farbe (rot,grün,blau).

- Dein Aufgabe ist es nun, die Objekte aus dem Container zu entnehmen 
und in der Ebene abzulegen. Als Eingabe gibt es eine Liste mit Tupeln 
der Form: (Farbe,Zielkordinaten).

Ist das so?

: Bearbeitet durch User
von Udo (Gast)


Lesenswert?

@Klaus
Du musst es nicht lesen, wenn das deine einzige vernünftige Antwort ist. 
Manche Menschen verbringen mehr Zeit damit andere zu kritisieren, statt 
einfach mal auf die eigentliche Problemstellung einzugehen.

Nur mal Rande - Ich habe vom Smartphone aus geschrieben und mein Browser 
stellt dieses Editorfeld nicht richtig dar. Daher sehe ich ab der Hälfte 
nichts mehr. Hinzu kommt die Auto Korrektur.

@ S.J
Genau. Ich kann jede beliebige Ablageposition mit x, y und z als 
Parameter übergeben. Nur möchte ich nicht jedes Objekt an der selben 
stelle ablegen. Ich möchte Objekte einer bestimmten Farbe nebeneinander 
legen. Die Positionen dafür kann ich beispielsweise in einem Array 
festlegen.

Habe ich jetzt die ersten Objekte nebeneinander oder untereinander 
abgelegt, werden alle roten Objekte oder blauen Objekte Markiert, die 
aber an einer anderen Stelle abgelegt werden.

Die Aufgabe an sich ist nicht wirklich schwer. Ich konnte mit if-else 
die aktuelle Farbe prüfen und je nach Anzahl der Objekte dann eine 
for-Schleife aufrufen, die alle Objekte in der ersten Spalte dieser 
Matrix bzw an den jeweiligen Positionen untereinander ablegt. Aber jedes 
mal für jede of Bedingung eine neue Schleife zu erzeugen erscheint mich 
unvorteilhaft.

von Mikro 7. (mikro77)


Lesenswert?

Hallo Udo,

ich hatte dein Posting recht früh gelesen. Konnte dazu aber nichts 
schreiben, weil ich nicht verstanden habe worum es geht. Später habe ich 
dann gesehen, dass es anderen offensichtlich genauso geht.

Ich vermute mal, dass du eine Datenstruktur suchst, die besser als ein 
Array für deine Zwecke geeignet ist. Allerdings habe ich auch nach 
deinem letzten Posting immer noch nicht vertsanden, worum es geht, 
geschweige denn, was das Problem ist. Sorry. ;-)

> Ich möchte Objekte einer bestimmten Farbe nebeneinander
> legen. Die Positionen dafür kann ich beispielsweise in einem Array
> festlegen.

Ok. Du hast dann bspw. 3 Arrays mit Koordinaten. Ein Array pro Farbe.

> Habe ich jetzt die ersten Objekte nebeneinander oder untereinander
> abgelegt, werden alle roten Objekte oder blauen Objekte Markiert, die
> aber an einer anderen Stelle abgelegt werden.

Ko. Mich irritiert erstmal das "nebeneinander oder untereinander". Wie 
die Objekte abgelegt wurden, ist ja in deinem Arrays gespeichert, also 
beliebig, oder nicht?

Warum werden Objekte markiert? Was ist "markieren"? Wieso müssen sie 
markiert werden. Du weißt doch was du abgelegt hast. Und die abgelegten 
Objekte müssen jetzt wieder aufgenommen und woanders abegelegt werden? 
Woher kommt diese (neue) Info?

> Die Aufgabe an sich ist nicht wirklich schwer. Ich konnte mit if-else
> die aktuelle Farbe prüfen und je nach Anzahl der Objekte dann eine
> for-Schleife aufrufen, die alle Objekte in der ersten Spalte dieser
> Matrix bzw an den jeweiligen Positionen untereinander ablegt. Aber jedes
> mal für jede of Bedingung eine neue Schleife zu erzeugen erscheint mich
> unvorteilhaft.

Du hast offenbar eine Idee, wie du vorgehst und wie du es 
implementierst. Das ist gut.

Ich habe allerdings keinen Schimmer was du meinst. Und ich kann auch 
keinen Bezug zu dem oben gesagten herstellen. Sorry.

Vielleicht ist es ja ganz einfach und bei mir ist der Groschen nicht 
gefallen. Dann wird dir bestimmt hier weitergeholfen. Ansonsten, probier 
es nochmal mit der Problembeschreibung... am besten vollständig, aber 
ohne Details die nicht zum Problem gehören und evtl. nur verwirren.

Schönes Wochende...

von Udo (Gast)


Lesenswert?

Der Klaus. Ein ganz toller Kerl. Vielleicht solltest du deine ersten 
Absatz lesen und korrigieren. Übrigens werden Polizisten wie auch Tester 
von Rezensionexemplaren bezahlt. Danke für die Hilfestellung. Ich fand 
die Unterhaltung sehr amüsant. Ich lege mich mal zu meiner Frau ins 
Bett, während du weiterhin davon träumst ein Polizist zu sein oder 
Produkte rezensieren zu dürfen. Ebenfalls ein schönes Leben und nicht 
vergessen alles zu dokumentieren Herr Schlau.

Ich werde versuchen das Problem in Angriff zu nehmen und eine sinnvolle 
Lösung zu erarbeiten. Die Objekte kann ich über eine GUI wählen. Diese 
werden über eine Kamera aufgenommen und als Farbbild dargestellt. Über 
ein dropdown Menü kann ich anschließend die Farben selektieren. Je nach 
Anzahl der Objekte sollen diese über die Farben sortiert werden. Das 
sortieren soll vorher definiert sein. Nämlich in einer Matrix

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.