Problem mit BEHAVIOUR_CATCH_PILLAR_AVAILABLE

Allgemeine c't-Bot Themen

Moderator: Moderatoren Team

Antworten
anonybot
Friends of Sonny
Friends of Sonny
Beiträge: 153
Registriert: 07 Okt 2015, 00:14

Problem mit BEHAVIOUR_CATCH_PILLAR_AVAILABLE

Beitrag von anonybot » 11 Apr 2017, 21:26

Hi,

da ich mittlerweile hoffe, dass mein Bot soweit funktioniert, wollte ich anfangen, mit den Verhalten zu experimentieren. BEHAVIOUR_CATCH_PILLAR_AVAILABLE fand ich recht interessant und wollte damit beginnen.

Leider dreht sich der Bot nur endlos im Kreis. ich habe das hier mal per Video festgehalten: https://vimeo.com/212800630

1. eax hat mir schon den Hinweis gegeben, die Fotodose etwas zu erhöhen, daher die Papierrolle um die Dose, hat leider nicht geholfen.
2. Wenn ich den Bot manuell drehe registrieren die Distanzsensoren durchaus die Dose, wenn auch die jeweilige LED meinem Gefühl nach etwas verzögert reagiert.
3. Warum die linke LED etwas im Bereich ~40cm registriert, erschließt sich mir nicht. Beide Sensoren sind mit allen 3 Mod-Empfehlungen versehen, wurden unter reinem Tageslicht kalibriert, störende Lichtquellen waren im Video nicht angeschaltet, kippe ich den Bot etwas nach oben schaltet auch der linke Sensor auf "9999". Dies nur für den Fall, dass es etwas damit zu tun hat. Unabhängig davon, dass der linke Sensor etwas in ~4ßcm registriert sollte er ja bei der Fotodose umschalten.

Danke im Voraus für alle Hinweise!
anonybot
Von mir selbst verfasste (daher nicht zitierte) Inhalte dieses Beitrags sind zur Weiternutzung unter CC-BY-SA freigegeben +++ ct-Bot -> Libre-Bot? - Diskussion zur Zukunft des ct-Bots +++ anonybot sagt hello!

VDX
Friends of Johnny-5
Friends of Johnny-5
Beiträge: 258
Registriert: 26 Jan 2006, 22:43
Wohnort: Großkrotzenburg (Main-Kinzig-Kreis)

Re: Problem mit BEHAVIOUR_CATCH_PILLAR_AVAILABLE

Beitrag von VDX » 11 Apr 2017, 22:13

... evtl. dreht er sich zu schnell und "verpaßt" den Distanz-peak?

Viktor

anonybot
Friends of Sonny
Friends of Sonny
Beiträge: 153
Registriert: 07 Okt 2015, 00:14

Re: Problem mit BEHAVIOUR_CATCH_PILLAR_AVAILABLE

Beitrag von anonybot » 14 Apr 2017, 19:42

V2 hat geschrieben:... evtl. dreht er sich zu schnell und "verpaßt" den Distanz-peak?

Viktor
Hi Viktor,

danke für die Vermutung. Allerdings kann ich die Geschwindigkeit ja vorher nicht definieren. eax vermutete, es könnte an der Interaktion mit dem Maussensor liegen. Aber auch wenn ich diesen deaktviere funtkioniert das Verhalten nicht.

Ich hatte gehofft, hier hat noch jemand seinen Bot in Reichweite und könnte das Verhalten mal aktivieren. So könnte ich zumindest erstmal prüfen, ob es and er Hardware liegt.
Von mir selbst verfasste (daher nicht zitierte) Inhalte dieses Beitrags sind zur Weiternutzung unter CC-BY-SA freigegeben +++ ct-Bot -> Libre-Bot? - Diskussion zur Zukunft des ct-Bots +++ anonybot sagt hello!

anonybot
Friends of Sonny
Friends of Sonny
Beiträge: 153
Registriert: 07 Okt 2015, 00:14

Re: Problem mit BEHAVIOUR_CATCH_PILLAR_AVAILABLE

Beitrag von anonybot » 29 Dez 2017, 14:53

Mittlerweile habe ich Folgendes festgestellt:

1. Starte ich das "catch pillar"-Verhalten über die Fernbedienung, ergibt sich das Problem nach wie vor, dass sich der Bot lediglich dreht:

https://vimeo.com/249076618

2. Starte ich das "catch pillar"-Verhalten über den ct-Sim via "Remote Call", dreht er sich nur einmal (so wie vom Code vorgesehen):

https://vimeo.com/249076746

Die Dose erkennt er jedoch in beiden Fällen nicht.

Ich habe beide Videos unmittelbar hintereinander aufgenommen, nachdem ich die Distanz-Sensoren nach dem letzten Software-Update neu kalibieren musste (dass sie soweit funktionieren, zeigt der etwas unbeholfene Test mit der Fotodosen-Schieberei am Ende des zweiten Videos).

Einzige externe Lichtquelle ist Winter-Tageslicht bei bewölktem Himmel (abgesehen vom Notebook-Display, das aber weit weg stand und auch so weit wie möglich zugeklappt wurde).

Wie kann es sein, dass der Code sich verschieden verhält, je nachdem, ob er über den Bot oder über den Sim aufgerufen wird? :shock:
Von mir selbst verfasste (daher nicht zitierte) Inhalte dieses Beitrags sind zur Weiternutzung unter CC-BY-SA freigegeben +++ ct-Bot -> Libre-Bot? - Diskussion zur Zukunft des ct-Bots +++ anonybot sagt hello!

eax
Friends of Robby
Friends of Robby
Beiträge: 762
Registriert: 18 Jan 2006, 16:16
Wohnort: Karlsruhe

Re: Problem mit BEHAVIOUR_CATCH_PILLAR_AVAILABLE

Beitrag von eax » 29 Dez 2017, 18:44

Hi,

eines vorweg, diese Filmdosen haben bei mir nie funktioniert, weil sie zu flach sind, um von den Distanzsensoren sauber erkannt zu werden. Vielleicht wird im Video eher der Stift (mit-) erkannt im Test? Zum Überprüfen würde ich einfach mal einen Papierstreifen um die Dose wickeln/festkleben, der oben 2cm übersteht. Das hatte bei mir immer deutlich zuverlässiger funktioniert.

Zum unterschiedlichen Verhalten: Ich habe es gerade mal im Simulator getestet, da ist das Verhalten auch unterschiedlich: Über Fernbedienung hängt sich der Bot auf, sobald der Distanzsensor etwas sieht, da scheint wohl irgendwo ein Bug zu sein. Beim Starten über Remote Call funktioniert das Verhalten dort ohne Aufhängen, allerdings fährt der Bot dann immer die Dose um :shock: bzw. gegen die Dose, weil die im Simulator nicht verschiebbar sind, wenn sie nicht im Bot-Transportfach sind. Das Verhalten scheint also so oder so etwas verbuggt zu sein :(

Ich werde mal versuchen mit ein paar Debug-Ausgaben dem Problem auf die Schliche zu kommen.

Gruß,
Timo

eax
Friends of Robby
Friends of Robby
Beiträge: 762
Registriert: 18 Jan 2006, 16:16
Wohnort: Karlsruhe

Re: Problem mit BEHAVIOUR_CATCH_PILLAR_AVAILABLE

Beitrag von eax » 29 Dez 2017, 19:52

Also das Problem mit dem unterschiedlichen Verhalten ob von Fernbedienung oder Remote Call gestartet, sollte im Branch develop jetzt behoben sein, das war ein Bug im Code vom Verhaltenssystem.

Um das Problem, dass die Dose nicht erkannt wird bzw. im Simulator umgefahren wird, zu untersuchen, habe ich im Branch bugfixes/catch_pillar in das Verhalten mal einige Debug-Ausgaben eingebaut, vielleicht kannst du das bei dir mal testen?
Dazu in ct-Bot.h die Option LOG_CTSIM_AVAILABLE aktivieren (und LOG_STDOUT_AVAILABLE deaktivieren), dann findest du im verbundenen ct-Sim im Log-Fenster die Debug-Ausgaben.

Auf jeder Fall wird bei erkannter Dose deren Position wohl falsch berechnet, darum wird sie dann umgefahren... Das schaue ich mir noch mal an.

Gruß,
Timo

anonybot
Friends of Sonny
Friends of Sonny
Beiträge: 153
Registriert: 07 Okt 2015, 00:14

Re: Problem mit BEHAVIOUR_CATCH_PILLAR_AVAILABLE

Beitrag von anonybot » 21 Okt 2018, 00:07

Zunächst: Tut mir leid für die wirklich späte Rückmeldung. Aber bin nun endlich mal wieder dazu gekommen, den kürzlich aktualisiert Bot-Code auf das Problem hin anzuwenden. In Matrix/Slack bereits gesagt, aber hier vielleicht besser aufgehoben_

Also die gute Nachricht ist, dass es jetzt mit ein wenig Schummelei funktioniert: Der Bot "findet" die Fotodose ungefähr, fängt sie aber nicht ganz mittig ein und fährt dann stur weiter, sodass sie nicht im Transportfach landet, sondern vorbeidriftet. Helfe ich ein wenig nach, schließt das Transportfach aber korrekt. Das ist ein riesiger Unterschie zu vorher, wo der Bot sich einfach nur im Kreis gedreht hat.
eax hat geschrieben:
29 Dez 2017, 18:44
eines vorweg, diese Filmdosen haben bei mir nie funktioniert, weil sie zu flach sind, um von den Distanzsensoren sauber erkannt zu werden. Vielleicht wird im Video eher der Stift (mit-) erkannt im Test? Zum Überprüfen würde ich einfach mal einen Papierstreifen um die Dose wickeln/festkleben, der oben 2cm übersteht. Das hatte bei mir immer deutlich zuverlässiger funktioniert.
Das habe ich berücksichtigt und eine Papprolle zugeschnitten, die gerade so noch in das Transportfach passt (1mm Luft zur Unterkante des Klappen-Arms). Das ändert wenig an der Erkennung. Auch mit dem "dickeren" Objekt dreht der Bot etwas zu weit, sodass er sie, nicht genügend "mittig" ausgerichtet, leicht verfehlt.
eax hat geschrieben:
29 Dez 2017, 18:44
Zum unterschiedlichen Verhalten: Ich habe es gerade mal im Simulator getestet, da ist das Verhalten auch unterschiedlich: Über Fernbedienung hängt sich der Bot auf, sobald der Distanzsensor etwas sieht, da scheint wohl irgendwo ein Bug zu sein. Beim Starten über Remote Call funktioniert das Verhalten dort ohne Aufhängen, allerdings fährt der Bot dann immer die Dose um :shock: bzw. gegen die Dose, weil die im Simulator nicht verschiebbar sind, wenn sie nicht im Bot-Transportfach sind. Das Verhalten scheint also so oder so etwas verbuggt zu sein :(

Ich werde mal versuchen mit ein paar Debug-Ausgaben dem Problem auf die Schliche zu kommen.
Dieses Problem ist nun definitiv behoben, vielen vielen Dank!
eax hat geschrieben:
29 Dez 2017, 19:52
Also das Problem mit dem unterschiedlichen Verhalten ob von Fernbedienung oder Remote Call gestartet, sollte im Branch develop jetzt behoben sein, das war ein Bug im Code vom Verhaltenssystem.

Um das Problem, dass die Dose nicht erkannt wird bzw. im Simulator umgefahren wird, zu untersuchen, habe ich im Branch bugfixes/catch_pillar in das Verhalten mal einige Debug-Ausgaben eingebaut, vielleicht kannst du das bei dir mal testen?
Dazu in ct-Bot.h die Option LOG_CTSIM_AVAILABLE aktivieren (und LOG_STDOUT_AVAILABLE deaktivieren), dann findest du im verbundenen ct-Sim im Log-Fenster die Debug-Ausgaben.
Ich nehme an, dass Du diese Änderungen bereits in den stable-Branch aufgenommen hast, weil ich mich ja, Schande über mich, ewig nicht gemeldet habe?
eax hat geschrieben:
29 Dez 2017, 19:52
Auf jeder Fall wird bei erkannter Dose deren Position wohl falsch berechnet, darum wird sie dann umgefahren... Das schaue ich mir noch mal an.
...und hattest Du bez. der Positionsberechnung einen Fehler gefunden? Gäbe es da noch die Möglichkeit, etwas zu optimieren, oder liegt die beschriebene Ungenauigkeit eher auf meiner Seite? Falls hilfreich kann ich ggf. mal ein Video von meinem "Dosen-Fangversuch" drehen.
Von mir selbst verfasste (daher nicht zitierte) Inhalte dieses Beitrags sind zur Weiternutzung unter CC-BY-SA freigegeben +++ ct-Bot -> Libre-Bot? - Diskussion zur Zukunft des ct-Bots +++ anonybot sagt hello!

eax
Friends of Robby
Friends of Robby
Beiträge: 762
Registriert: 18 Jan 2006, 16:16
Wohnort: Karlsruhe

Re: Problem mit BEHAVIOUR_CATCH_PILLAR_AVAILABLE

Beitrag von eax » 21 Okt 2018, 00:56

anonybot hat geschrieben:
21 Okt 2018, 00:07
eax hat geschrieben:
29 Dez 2017, 19:52
[...]Um das Problem, dass die Dose nicht erkannt wird bzw. im Simulator umgefahren wird, zu untersuchen, habe ich im Branch bugfixes/catch_pillar in das Verhalten mal einige Debug-Ausgaben eingebaut, vielleicht kannst du das bei dir mal testen?
Dazu in ct-Bot.h die Option LOG_CTSIM_AVAILABLE aktivieren (und LOG_STDOUT_AVAILABLE deaktivieren), dann findest du im verbundenen ct-Sim im Log-Fenster die Debug-Ausgaben.
Ich nehme an, dass Du diese Änderungen bereits in den stable-Branch aufgenommen hast, weil ich mich ja, Schande über mich, ewig nicht gemeldet habe?
Nein, habe ich nicht.
anonybot hat geschrieben:
21 Okt 2018, 00:07
eax hat geschrieben:
29 Dez 2017, 19:52
Auf jeder Fall wird bei erkannter Dose deren Position wohl falsch berechnet, darum wird sie dann umgefahren... Das schaue ich mir noch mal an.
...und hattest Du bez. der Positionsberechnung einen Fehler gefunden? Gäbe es da noch die Möglichkeit, etwas zu optimieren, oder liegt die beschriebene Ungenauigkeit eher auf meiner Seite? Falls hilfreich kann ich ggf. mal ein Video von meinem "Dosen-Fangversuch" drehen.
Nein, da habe ich nichts weiter gemacht.
Soweit ich mich erinnere, ist das Problem nicht unbedingt eine Ungenauigkeit, sondern liegt (erstmal) daran, dass die Position der Dose falsch berechnet wird. Jedenfalls besteht das Problem auch im Simulator, wo es kaum Ungenauigkeiten gibt.
Die o.g. Code-Variante aus dem Branch bugfixes/catch_pillar schreibt entsprechende Debug-Ausgaben ins Log, das könnte hilfreich sein.

Antworten