IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

epuck suivi de balle


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Octobre 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable sécurité

    Informations forums :
    Inscription : Octobre 2020
    Messages : 1
    Par défaut epuck suivi de balle
    bonjour, bonsoir
    j'aimerais aider une amie pour un code Python pour webots,
    ps je n'y connais rien en Python
    la partie du code suivante me sort des erreurs et j'aimerais savoir comment et où les réparer merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    # --------------------------------------------------------
     
        ## Début traitement du but (trouver la balle)
            #if balleDetecte:
            #    if indice_max>29:
             #       #tourner à droite
              #      leftSpeed += 0.25 * MAX_SPEED
               #     rightSpeed -= 0.25 * MAX_SPEED
                #elif indice_max<29:
                 #   #tourner à gauche
                  #  leftSpeed -= 0.25 * MAX_SPEED
                   # rightSpeed += 0.25 * MAX_SPEED
                #else:
                 #   leftSpeed -= 0.5* MAX_SPEED
                  #  rightSpeed += 0.5 * MAX_SPEED
     
     
     
        # write actuators inputs
     
     
        leftMotor.setVelocity(leftSpeed)
        rightMotor.setVelocity(rightSpeed)
     
        image=camera.getImageArray()
     
        largeurImage = int(camera.getWidth())
        hauteurImage = int(camera.getHeight())
     
        #width = camera.getWidth()
        #height=camera.getHeight()
     
        #hist=[0]*width
     
     
     
        red = np.zeros((largeurImage,hauteurImage))
        green = np.zeros((largeurImage,hauteurImage))
        blue = np.zeros((largeurImage,hauteurImage))
     
        for x in range(largeurImage):
            for y in range(hauteurImage):
                red[x][y] = image[x][y][0]
                green[x][y] = image[x][y][1]
                blue[x][y] = image[x][y][2]
                #if (red[x][y])<60 and (green[x][y])>60 and (blue[x][y])<60:
                #    hist[x]=hist[x]+1 ##### ajout
                if x==25 and y==15:
                    print("red = ", red[x][y])
                    print("green = ", green[x][y])
                    print("blue = ", blue[x][y])
                    print("----------------------------------")
     
     
    #plt.hist[x]                   
    #pixelVerts = 0
        histogrammePixelVert = np.zeros(largeurImage)
     
     
        for k in range (largeurImage):
            pixelVerts=0
            for y in range(hauteurImage):
                l=np.sqrt(red[k][y]*red[k][y]+green[k][y]*green[k][y]+blue[k][y]*blue[k][y])
                teta = np.arccos(blue[k][y]/l)
                phi = np.arctan(green[k][y]/red[k][y])
                if k==25 and y==15:
                    print("l = ", l)
                    print("teta = ", teta)
                    print("phie = ", phi)
                    #if red<60 and green>60 and blue<60:
                    #    hist[x]=hist[x]+1
                    if ((phi>1.0) and (teta>1.0)):
                        pixelVerts +=1
                        print("balle verte droit devant")
     
        #print("histooooooooooooooo", hist[x].max)                
        histogrammePixelVert[k] = pixelVerts
        leftMotor.setVelocity(leftSpeed)
        rightMotor.setVelocity(rightSpeed)    
     
        if max(hist)>0:
            balleDetecte=True
            indice_max = 0
            maxi = 0
     
            for i in range(len(hist)):
                if hist[i] >= maxi:
                    maxi = hist[i]
                    indice_max = i
                    print(indice_max)
                else:
                    balleDetecte=False
     
            for j in range (largeurImage):
                if hist[j]>7 and hist[j]<28:
                    leftSpeed = 0.2 * MAX_SPEED
                    rightSpeed = 0.2 * MAX_SPEED
                elif hist[45]>7 or hist[50]>7:#rotation droite
                    leftSpeed = 0.5 * MAX_SPEED
                    rightSpeed = -0.2 * MAX_SPEED
                elif hist[10]>7 or hist[5]>7:#rotation gauche
                    leftSpeed = -0.2 * MAX_SPEED
                    rightSpeed = 0.5 * MAX_SPEED
     
                if hist[25]>=20:
                    leftSpeed = 0 #arret de la roue gauche
                    rightSpeed = 0 #arret de la roue droite
                    leds[0].set(1) #allume les 10 LEDS
                    leds[1].set(1)
                    leds[2].set(1)
                    leds[3].set(1)
                    leds[4].set(1)
                    leds[5].set(1)
                    leds[6].set(1)
                    leds[7].set(1)
                    leds[8].set(1)
                    leds[9].set(1)
     
     
     
     
     
     
        pass
     
     
    #Enter here exit cleanup code.

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par pythe Voir le message
    j'aimerais aider une amie pour un code Python pour webots, ps je n'y connais rien en Python
    Si un aveugle guide un aveugle, ils tomberont tous deux dans la fosse.

    Citation Envoyé par pythe Voir le message
    la partie du code suivante me sort des erreurs et j'aimerais savoir comment et où les réparer
    Le "où" c'est la ligne qui est indiquée en dernier. Si cette ligne est correcte, alors c'est la ligne juste au dessus (celle située avant dans la pile des appels). Par exemple dans une fonction qui reçoit x et y et où x divise y, si l'appelant appelle la fonction avec y=0, ce n'est pas la ligne de la division qui est erronée mais la ligne qui appelle la fonction. Donc Python te remonte l'historique total de tous les appels qui ont amené l'erreur, à toi de les examiner une à une pour identifier celle qui est en faute.
    Et le "comment" c'est en lisant le message d'erreur qui t'explique ce qui ne va pas puis en corrigeant la ligne réellement incriminée. Par exemple, pour ton code, l'erreur que ça me sort c'est que la ligne 22 est indentée alors qu'elle ne devrait pas l'être (les indentations sont ultra-importantes en Python car elles servent à identifier les blocs). Ainsi une ligne qui est censée appartenir à un bloc alors qu'il n'y a pas de bloc ça donne une erreur. Donc si tu supprimes l'indentation de la ligne 22, il n'y aura plus d'erreur sur cette ligne.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Tutoriel pour apprendre à déboguer du code Python
    Par Community Management dans le forum Général Python
    Réponses: 0
    Dernier message: 13/10/2016, 22h35
  2. Réponses: 7
    Dernier message: 20/01/2015, 17h32
  3. Générer ngrams pour analyse de texte (Code Python, transformé en VBA)
    Par mystouille24 dans le forum Autres langages
    Réponses: 0
    Dernier message: 03/11/2014, 14h05
  4. Interface Web de paramètrage pour code Python
    Par silvio7 dans le forum Réseau/Web
    Réponses: 3
    Dernier message: 21/01/2012, 10h21
  5. Réponses: 1
    Dernier message: 24/05/2008, 17h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo