PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bessere ACS Version



Deceiver
28.12.2003, 16:15
Hallo!

Ich hab hier ein Programm geschrieben mit dem Ziel Robby's ACS besser zu machen.

ACS läuft auf MAX und wenn die Sensoren ein Hindernis melden dann das Programm versucht zu erkennen wie Weit das Object sich befindet. Dazu schalte ich ACS stufenweise auf LO->HI->MAX und entsprechend wird der Robby links/rechts fahren. Das heisst wenn das Object weit entfernt liegt dann der Robby fährt eine grössere Kurve als wenn das Object näher wäre.

Erste Version: Nicht Optimiert-Mein erstes Programm in C-Basic. Für die Grundversion.

JanPeter
28.12.2003, 20:32
Hallo Deceiver!
Ist ja Super Dein erstes Programm.
Ich habe es gleich Robby gegönnt es auszuprobieren, auf meiner Teststrecke (2*2 Meter Styroprzaun).
Es läuft ja sehr gut, wenn man Robby in der Mitte hinstellt.
Er ist 15 Minuten , danach habe ich abgebrochen , gelaufen.
Wirklich gute arbeit , fürs erste Programm.
Ein Problem hatte ich zum Anfang, stellt man Robby zu dicht an die Abgrenzung , so fährt er einfach drüber.
Grübel , Grübel?
Aber an sonsten was das Super von Dir!

Deceiver
29.12.2003, 10:59
Ich habe mein Program per Terminal getestet und leider der Robby hat ein paar Probleme mit dem ACS. Im ACS_LO Modus der Sensor meldet meistens gar keine Hindernisse so mein Programm denkt, dass das Hinderniss weiter entfernt liegt als es tatsächlich ist. (und die Kurve ist grösser so der Robby fährt einfach durch)

Claus
29.12.2003, 17:34
Hi,

hat schon mal wer mit USschall experimentiert?
Das wuerde mich mal interessieren, ob man damit den Weg abscannen koennte.

Claus
29.12.2003, 20:14
Hi,

ich habe gerade mal mit dem Einfuehrungsprogramm ACS.bas experimentiert.

Eine weisse Schachtel ca. 6x6 qcm gross, Abstand zum Robby 70cm in direkter Linie. Ich habe die Einstellungen ACS_LO, _HI und _MAX probiert, aber ich sehe KEINEN signifikanten Unterschied, d.h. die Anzeige bei Robby kommt unveraendert oft bzw. in den ueblichen unregelmaessigen Abstaenden. Nicht wie bei einer Entfernung von 40cm , wo die LED dauer-an ist, egal welche Einstellung ich waehle !

Was also soll die Umstellung von _LO, _HI, _MAX?

p.s die LEDs stehen geradeaus.

Claus
29.12.2003, 20:38
Hi,

gleich einen Nachtrag :

Da es spaet ist habe ich natuerlich kuenstliches Licht an, und Robby reagiert auf die IR-Abstrahlung der Deckenlampen sehr stark. Ich habe mal alles (fast) direktes Licht abgeschaltet und siehe da, Robby sieht gut 100cm weit. Aber immer noch egal, ob _Lo oder _MAX eingestellt ist. Ich werde Robby mal vorne ueber/um den Photozellen einen Lichtschutz spendieren.

Claus
29.12.2003, 21:39
Hi,

2ter Nachtrag :

Bei Vergleichsmessungen der IR-Sensoren ist bei meinem Robby wieder mal eine starke Asymmetrie zu sehen. Im Abstand von 20 cm , ca. 7 cm off-axis, sieht bei Position links der Achse nur der linke Sensor, bei rechtseitiger Position der rechte und der linke ist auch fast auf dauer-an :roll: . Selbst eine schwarzer Pappstreifen in der Mitte bringt kaum Abhilfe. Entweder ist der linke Sensor viel empfindlicher oder (k.a.).
Habe den Test bei ziemlicher Raumdunkelheit gemacht, nur indirektem Licht, grad genug zum sehen der Markierungen auf dem Papier. Messobjekt war eine weisse Papierrolle, hochkant stehend, ca. 6 Durchmesser.
Mit der momentanen Einstellung ist kein "Blumentopf" oder ne vernuenftige Raumerkundung zu gewinnen/machen, :(

Deceiver
29.12.2003, 22:42
das habe ich auch bemerkt. Wenn die Sensoren 100% richtig waren dann wäre mein Programm auch perfekt (fast). Aber etwas stimmt da nicht so richtig

Claus
30.12.2003, 11:15
hi,

"frueh am morgen und schon am spielen"

Ich habe weiter mit der ACS von Robby gespielt. Im Moment lese ich die ad[6] = Sensor_L und ad[7] = Sensor_R aus. Der Unterschied zwischen ACS on und off ist der Sprung von 7 nach 8 beim AD-Wandler. Mit dem Sichtschutz und dem Biegen der LEDS nach aussen bekomme ich eine bessere Objektdetektion bzgl links- / rechtsseitig. Ich werde mal die ACS dahin erweitern, dass ich z.B. 10 mal ACs abfrage und einen Mittelwert bilde bzw. etwas in dem Sinne.

Claus
30.12.2003, 13:10
Hi,

SO, ich habe nun eine vernuenftige ACS-Kontrolle fuer links-/rechtseitig.
Auch die Einstellungen fuer ACS_LO, _HI und _MAX tun's nun. Leider bei meinem Aufbau mit reduzierter Empfindlichkeit.
a) Schutzblende aus schwarzer Pappe um das Sensorboard (ca. 2cm breit)
b) Schleife mit 8 Abfragen der ACS und Wert>4 gibt eine Objektdetektion
c) in ACS_LO seh ich keine Objekte die frontal zu Robby stehen , wegen der nach Aussenbiegung der LEDs

#loop
x=0:y=0
for i=1 to 8
pause 2:SYS COMNAV_STATUS
x=x+ACSL_F:y=y+ACSR_F
next
'--------- LEDs ansteuern --------------------
if x>4 then gosub LED4ON else gosub LED4OFF
if y>4 then gosub LED1ON else gosub LED1OFF
LEDPORT=((Sensor_L SHL 4) or Sensor_R):gosub LEDPORT_WRITE 'Anzeige auf Erw.platine
goto loop

bei ACS_MAX seh ich Frontal-Objekte in 60 cm Abstand zu 50% (LED an , LED aus), bei naeherem Abstand zu 100%. Wenn aussermittig, dann spricht auch oft der Sensors der anderen Seite an, d.h. umschalten auf niedrigere Empfindlichkeit.

djfoxi
01.01.2004, 21:18
Bei mir ist es so das wenn Robby auf Hindernisse in einem bestimmten WInkel drauf zu fährt er oft trotzdem dagegenplant, weil er es nicht schafft dir Kurve noch zu kriegen.
Ich habe die besten Erfahrungen gemacht generell bei HIndernissen den Rotate-Befehl zu verwenden.

johannesschmidt03
15.02.2004, 14:23
Wo kann ich denn den Quellcode runterladen suche schon über all im Forum!

Danke

15.02.2004, 15:19
tja leider das Program würde gelöscht... keine Ahnung wer es war... Ich suche mal und ich poste es hier

schlummerle
29.04.2004, 13:53
Hi Ihrs !
Gerne würde ich Eure neuen ACS Versionen an meinem neuerworbenen Robby testen, ist zwischenzeitlich ein neueres Prog veröffentlicht worden?
Wurde die gelöschte Version zwischenzeitlich wiederentdeckt? :-k