ich bin Anfänger in Python habe aber vorher schon mit Java, C++, Matlab "gespielt".
Im Zuge einer Vorlesung schreibe ich Codeabschnitte für einen selbstfahrenden Roboter. Das if-Konstrukt soll die Position von Zylinder in Scandaten finden. Dazu habe ich vorher die Ableitung aus den Scandaten ermittelt. Das Problem ist folgendes: Verwende ich den Code wie im Bild gezeigt dann wird der mittlere elif nie Aufgerufen, es werden zwar Zylinder gespeichert aber nicht an der richtigen Position. Wenn ich beim mittleren elif die Bedingung weglasse das die Ableitung zwischen -100 und 100 sein soll wird dieser aufgerufen aber der letzte elif wird nicht aufgerufen (die Zylinder werden nicht gespeichert). Ich hoffe ich konnte das Problem verständlich erklären. Irgendjemand eine Idee ?
Code: Alles auswählen
for i in xrange(len(scan_derivative)):
# --->>> Insert your cylinder code here.
# Whenever you find a cylinder, add a tuple
# (average_ray, average_depth) to the cylinder_list.
if scan_derivative[i] < -100.0 and scan[i]>min_dist:
on_cylinder = True
sum_ray=0.0+i
sum_depth=0.0+scan[i]
rays=0+1
print "hallo"
elif on_cylinder == True and scan[i]>min_dist and scan_derivative < 100.0 and scan_derivative >-100.0:
sum_ray=sum_ray+i
sum_depth=sum_depth+scan[i]
rays=rays+1
print " guten Tag"
elif on_cylinder == True and scan_derivative[i] > 100.0:
average_ray = sum_ray/rays
average_depth = sum_depth/rays
print "tschüss"
cylinder_list.append([average_ray, average_depth])
on_cylinder = False