Problem mit BEHAVIOUR_CATCH_PILLAR_AVAILABLE

Allgemeine c't-Bot Themen
Antworten
anonybot
Friends of Johnny-5
Friends of Johnny-5
Beiträge: 206
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

Edit: Gemeldet unter https://github.com/tsandmann/ct-bot/issues/50.
Zuletzt geändert von anonybot am 26 Sep 2020, 01:40, insgesamt 1-mal geändert.
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: 293
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
Ciao, Viktor --- Aufruf zum Projekt "Müll-freie Meere" - https://reprap.org/forum/list.php?426

anonybot
Friends of Johnny-5
Friends of Johnny-5
Beiträge: 206
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 Johnny-5
Friends of Johnny-5
Beiträge: 206
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: 755
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
Timo -- Meine Beiträge sind unter CC-BY-SA freigegeben

eax
Friends of Robby
Friends of Robby
Beiträge: 755
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
Timo -- Meine Beiträge sind unter CC-BY-SA freigegeben

anonybot
Friends of Johnny-5
Friends of Johnny-5
Beiträge: 206
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: 755
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.
Timo -- Meine Beiträge sind unter CC-BY-SA freigegeben

anonybot
Friends of Johnny-5
Friends of Johnny-5
Beiträge: 206
Registriert: 07 Okt 2015, 00:14

Re: Problem mit BEHAVIOUR_CATCH_PILLAR_AVAILABLE

Beitrag von anonybot » 09 Nov 2018, 00:06

Hey eax, zunächst vielen Dank für die neuen Optionen in bugfixes/catch_pillar!

Bin endlich dazu gekommen, bugfixes/catch_pillar entsprechend Deiner Angaben zu testen. Auf möglichst wenige störende künstliche Lichtquellen habe ich geachtet (einzig meinen Monitor konnte ich schlecht abschalten ;) ). Der "Versuchsaufbau" war bei allen Tests ungefähr so:
catch_pillar-test0123_15cm_sim_20181108_232657.jpg
(92.98 KiB) 42-mal heruntergeladen
(hier bei ca. 15cm Anfangsabstand, die Dose immer um 90Grad links vom Bot)

Da ich anfangs (trotz Deiner Anmerkungen zum Mindestabstand der Distanzsensoren) bei einem geringen Abstand der Fotodose unerwartet gute Ergebnisse hatte, habe ich bei 5cm begonnen und zwei weitere Tests bei 10cm und 15cm Abstand unternommen, dabei mit Parameter "0" begonnen und dann immer um 1 nach oben gesetzt. Leider gab es bei keinem Versuch einen erfolgreichen "catch". Einzig bei 5cm wurde im Modus "2" 2x die Dose registriert, das Einfangen ging aber daneben:

Code: Alles auswählen

# cat_pillar-Parameter 0
[  534] DEBUG bot_catch_pillar_turn(360)
[  535] DEBUG Startpunkt: 328|26
[  437] DEBUG Starte Drehung um max. 360 Grad
[  445] DEBUG Pausiere catch_pillar() Verhalten
[  395] DEBUG (327|27): Objekt links erkannt: sensDistL=247 head
[  523] DEBUG catch_pillar() wird beendet

# cat_pillar-Parameter 1
[  534] DEBUG bot_catch_pillar_turn(360)
[  535] DEBUG Startpunkt: 331|34
[  437] DEBUG Starte Drehung um max. 360 Grad
[  445] DEBUG Pausiere catch_pillar() Verhalten
[  395] DEBUG (329|33): Objekt links erkannt: sensDistL=287 head
[  523] DEBUG catch_pillar() wird beendet

# cat_pillar-Parameter 2
[  534] DEBUG bot_catch_pillar_turn(360)
[  535] DEBUG Startpunkt: 335|43
[  437] DEBUG Starte Drehung um max. 360 Grad
[  445] DEBUG Pausiere catch_pillar() Verhalten
[  395] DEBUG (336|44): Objekt links erkannt: sensDistL=215 head
[  405] DEBUG (337|46): Objekt rechts erkannt: sensDistR=300 hea
[  450] DEBUG catch_pillar() wurde reaktiviert
[  479] DEBUG Objekt erkannt (rechter Sensor), obj_pos=(343,381)
[  498] DEBUG Oeffne Klappe...
[  503] DEBUG Fahre zu Punkt (343|381) ...
[  511] DEBUG Ziel erreicht: (342|373)
[  523] DEBUG catch_pillar() wird beendet

# cat_pillar-Parameter 2
[  534] DEBUG bot_catch_pillar_turn(360)
[  535] DEBUG Startpunkt: 342|373
[  437] DEBUG Starte Drehung um max. 360 Grad
[  445] DEBUG Pausiere catch_pillar() Verhalten
[  395] DEBUG (339|375): Objekt links erkannt: sensDistL=291 hea
[  405] DEBUG (339|377): Objekt rechts erkannt: sensDistR=296 he
[  450] DEBUG catch_pillar() wurde reaktiviert
[  479] DEBUG Objekt erkannt (rechter Sensor), obj_pos=(610,188)
[  498] DEBUG Oeffne Klappe...
[  503] DEBUG Fahre zu Punkt (610|188) ...
[  511] DEBUG Ziel erreicht: (607|193)
[  523] DEBUG catch_pillar() wird beendet

# cat_pillar-Parameter 2
[  534] DEBUG bot_catch_pillar_turn(360)
[  535] DEBUG Startpunkt: 607|193
[  437] DEBUG Starte Drehung um max. 360 Grad
[  445] DEBUG Pausiere catch_pillar() Verhalten
[  395] DEBUG (607|193): Objekt links erkannt: sensDistL=235 hea
[  523] DEBUG catch_pillar() wird beendet

# cat_pillar-Parameter 2
[  534] DEBUG bot_catch_pillar_turn(360)
[  535] DEBUG Startpunkt: 605|209
[  437] DEBUG Starte Drehung um max. 360 Grad
[  445] DEBUG Pausiere catch_pillar() Verhalten
[  395] DEBUG (605|209): Objekt links erkannt: sensDistL=270 hea
[  523] DEBUG catch_pillar() wird beendet

# cat_pillar-Parameter 3
[  534] DEBUG bot_catch_pillar_turn(360)
[  535] DEBUG Startpunkt: 603|222
[  437] DEBUG Starte Drehung um max. 360 Grad
[  445] DEBUG Pausiere catch_pillar() Verhalten
[  395] DEBUG (603|222): Objekt links erkannt: sensDistL=270 hea
[  523] DEBUG catch_pillar() wird beendet
Bei 10cm Anfangsabstand wie gesagt kein Erfolg:

Code: Alles auswählen

# catch_pillar-Parameter 0
[  523] DEBUG catch_pillar() wird beendet
[  534] DEBUG bot_catch_pillar_turn(360)
[  535] DEBUG Startpunkt: 244|-22
[  437] DEBUG Starte Drehung um max. 360 Grad
[  445] DEBUG Pausiere catch_pillar() Verhalten
[  395] DEBUG (246|-22): Objekt links erkannt: sensDistL=270 hea
[  523] DEBUG catch_pillar() wird beendet

# catch_pillar-Parameter 1
[  534] DEBUG bot_catch_pillar_turn(360)
[  535] DEBUG Startpunkt: 254|-17
[  437] DEBUG Starte Drehung um max. 360 Grad
[  445] DEBUG Pausiere catch_pillar() Verhalten
[  395] DEBUG (257|-16): Objekt links erkannt: sensDistL=279 hea
[  523] DEBUG catch_pillar() wird beendet

# catch_pillar-Parameter 2
[  534] DEBUG bot_catch_pillar_turn(360)
[  535] DEBUG Startpunkt: 265|-11
[  437] DEBUG Starte Drehung um max. 360 Grad
[  445] DEBUG Pausiere catch_pillar() Verhalten
[  395] DEBUG (269|-9): Objekt links erkannt: sensDistL=237 head
[  523] DEBUG catch_pillar() wird beendet

# catch_pillar-Parameter 3
[  534] DEBUG bot_catch_pillar_turn(360)
[  535] DEBUG Startpunkt: 278|-7
[  437] DEBUG Starte Drehung um max. 360 Grad
[  445] DEBUG Pausiere catch_pillar() Verhalten
[  395] DEBUG (283|-4): Objekt links erkannt: sensDistL=258 head
[  523] DEBUG catch_pillar() wird beendet
Auch nicht bei 15cm:

Code: Alles auswählen

# catch_pillar-Parameter 0
[  534] DEBUG bot_catch_pillar_turn(360)
[  535] DEBUG Startpunkt: 292|-1
[  437] DEBUG Starte Drehung um max. 360 Grad
[  445] DEBUG Pausiere catch_pillar() Verhalten
[  395] DEBUG (298|3): Objekt links erkannt: sensDistL=279 headi
[  523] DEBUG catch_pillar() wird beendet

# catch_pillar-Parameter 1
[  534] DEBUG bot_catch_pillar_turn(360)
[  535] DEBUG Startpunkt: 307|4
[  437] DEBUG Starte Drehung um max. 360 Grad
[  445] DEBUG Pausiere catch_pillar() Verhalten
[  395] DEBUG (311|8): Objekt links erkannt: sensDistL=270 headi
[  523] DEBUG catch_pillar() wird beendet

# catch_pillar-Parameter 2
[  534] DEBUG bot_catch_pillar_turn(360)
[  535] DEBUG Startpunkt: 313|12
[  437] DEBUG Starte Drehung um max. 360 Grad
[  445] DEBUG Pausiere catch_pillar() Verhalten
[  395] DEBUG (315|15): Objekt links erkannt: sensDistL=287 head
[  523] DEBUG catch_pillar() wird beendet

# catch_pillar-Parameter 3
[  534] DEBUG bot_catch_pillar_turn(360)
[  535] DEBUG Startpunkt: 319|20
[  437] DEBUG Starte Drehung um max. 360 Grad
[  445] DEBUG Pausiere catch_pillar() Verhalten
[  395] DEBUG (322|23): Objekt links erkannt: sensDistL=287 head
[  523] DEBUG catch_pillar() wird beendet
Gedanken dazu:
1. Insgesamt hatte ich das Gefühl, dass die Disitanzsensoren "träge" reagieren. Würde hier eventuell helfen, dem Verhalten mit einem zweiten Parameter zu sagen, dass der Bot sich langsamer drehen soll?
2. Kann man der DEBUG-Ausgabe mitgeben, welcher Parameter verwendet wurde?
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: 755
Registriert: 18 Jan 2006, 16:16
Wohnort: Karlsruhe

Re: Problem mit BEHAVIOUR_CATCH_PILLAR_AVAILABLE

Beitrag von eax » 09 Nov 2018, 23:07

Also sehr auffällig ist: bei allen Versuchen messen die Distanzsensoren eine ganz andere als die wirkliche Entfernung zur Dose, meist so um die 28 cm:

Code: Alles auswählen

[  395] DEBUG (298|3): Objekt links erkannt: sensDistL=279
Ich bin immer noch der Meinung, dass diese Dose zu niedrig ist, um korrekt mit den Sensoren erkannt zu werden... :roll:

Stell doch im gleichen Versuch anstatt der Dose mal ein Buch (das mindestens so hoch ist wie der Bot) auf, um das Problem etwas eingrenzen zu können. Natürlich fährt der Bot das Buch dann um, aber der Theorie nach müsste die Mitte der Transportfachöffnung ja ungefähr die rechte Buchkante treffen.

anonybot hat geschrieben:
09 Nov 2018, 00:06
Gedanken dazu:
1. Insgesamt hatte ich das Gefühl, dass die Disitanzsensoren "träge" reagieren. Würde hier eventuell helfen, dem Verhalten mit einem zweiten Parameter zu sagen, dass der Bot sich langsamer drehen soll?
Der Bot sollte sich dabei so langsam drehen wie es ihm möglich ist (jedenfalls mit der alten Hardware).
Träge ist aber durchaus ein guter Punkt. Du kannst testweise mal in mcu/sensor-low.c Zeile 66 den Parameter FILTER_SHIFT auf 0 setzen. Dann sollten die Distanzsensorwerte zwar stärker schwanken, dafür aber weniger träge sein.

anonybot hat geschrieben:
09 Nov 2018, 00:06
2. Kann man der DEBUG-Ausgabe mitgeben, welcher Parameter verwendet wurde?
Da hast du Recht, die Debug-Ausgabe hat da noch deutliches Verbesserungspotential, vor allem weil teilweise auch das Ende abgeschnitten ist und gar nicht mehr angezeigt wird. Das korrigiere ich gleich mal.
Timo -- Meine Beiträge sind unter CC-BY-SA freigegeben

Antworten