Aller au contenu


Contenu de XB2000

Il y a 79 élément(s) pour XB2000 (recherche limitée depuis 03-avril 13)



#113236 Mon robot d'exploration - Explora 85 - à l'abandon

Posté par XB2000 sur 29 mars 2021 - 02:54 dans Robots roulants, chars à chenilles et autres machines sur roues

Dommage, en tout cas jolie ton robot.




#109286 Glenn Robot Humanoide

Posté par XB2000 sur 04 mai 2020 - 11:15 dans Robots à pattes et jambes, humanoïdes, bipèdes, quadrupèdes, hexapodes ...

Il a une bonne bouille, la tête intègre des capteurs ?

Il me fait penser au Transformers SchockWave...

s-l500.png




#115143 [En projet] Terran Task Force en 3D de 89 cm du haut avec des servomoteurs AX...

Posté par XB2000 sur 13 janvier 2022 - 02:32 dans Robots à pattes et jambes, humanoïdes, bipèdes, quadrupèdes, hexapodes ...

Très beau projet et belle collection. Tu vas en faire quoi de ton robot ?

 

Tu utilise une version d'essais avs4you pour tes vidéos du coup il y a le logo au milieu, c'est dommage.




#113017 Problème de voiture Arduino 4wd

Posté par XB2000 sur 18 février 2021 - 03:35 dans Aide pour projets scolaire

Bonjour,

c'est ultra vague votre question. Si vous voulez une réponse il faut répondre à ces question :

 

- Ce robot voiture vous l'avez acheté comme ça ? Ou c'est une voiture télécommandé standard que vous avez modifié ? Ou vous l'avez créé de toute pièce ?

- C'est quel type de moteur dessus (moteur DC, servomoteur, moteur pas à pas) ? 

- Quel est l'objectif de ce robot voiture ? Son but ?

- Quels sont les problèmes concrets ? Quel est le programme dans ton Arduino ? Y'a -t-il des messages d'erreurs ?

- Si c'est un projet scolaire vous êtes en quel classe ?




#109285 Un jeu qui apprend à se jouer lui-même

Posté par XB2000 sur 04 mai 2020 - 11:07 dans Bras robots, pinces, tourelles, et autres manipulateurs

whouah, m’intéressant au réseaux de neurones je suis ton sujet avec attention

autant la première version fais très bricolage, autant celle-ci fait très bien fini, j'espère juste que GlaDos n'a pas ramené son ami la neurotoxine...

et le gâteau aussi en une référence à Portal

 

pour un plateau physique j'ai vu ça :

 

Du coup tu utilise un Jetson Nano ? c'est une carte qui m'intéresse beaucoup aussi




#110545 Un jeu qui apprend à se jouer lui-même

Posté par XB2000 sur 15 juillet 2020 - 09:04 dans Bras robots, pinces, tourelles, et autres manipulateurs

tu veux pas les mettre en stream sur Twitch pour rentabiliser ? ^^




#109829 Un jeu qui apprend à se jouer lui-même

Posté par XB2000 sur 20 mai 2020 - 10:05 dans Bras robots, pinces, tourelles, et autres manipulateurs

Au moins ça progresse et c'est déjà pas mal  :ok:




#110549 Un jeu qui apprend à se jouer lui-même

Posté par XB2000 sur 15 juillet 2020 - 10:36 dans Bras robots, pinces, tourelles, et autres manipulateurs

j'ai fait une petite recherche et j'ai rien trouvé. En tout cas moi dès que j'ai possibilité je le fait  




#115042 Terminatosaurus Rex

Posté par XB2000 sur 29 décembre 2021 - 05:28 dans Tête de robots, humaine ou animale, animatronique

Pour le chatbot j'ai pris ce tuto : https://www.techwith...chatbot/part-1/

 

Voilà le code pour ma version de base du chatbot :

 

Librairies Python à installer pour le faire fonctionner :

pip install nltk
pip install numpy
pip install tensorflow
pip install tflearn

Code Python :

import nltk
from nltk.stem.lancaster import LancasterStemmer
stemmer = LancasterStemmer()

import numpy
import tflearn
import tensorflow
import random

import json
with open('intents.json') as file:
    data = json.load(file)

words = []
labels = []
docs_x = []
docs_y = []

for intent in data['intents']:
    for pattern in intent['patterns']:
        wrds = nltk.word_tokenize(pattern)
        words.extend(wrds)
        docs_x.append(wrds)
        docs_y.append(intent["tag"])
        
    if intent['tag'] not in labels:
        labels.append(intent['tag'])
        
words = [stemmer.stem(w.lower()) for w in words if w != "?"]
words = sorted(list(set(words)))

labels = sorted(labels)


training = []
output = []

out_empty = [0 for _ in range(len(labels))]

for x, doc in enumerate(docs_x):
    bag = []

    wrds = [stemmer.stem(w.lower()) for w in doc]

    for w in words:
        if w in wrds:
            bag.append(1)
        else:
            bag.append(0)

    output_row = out_empty[:]
    output_row[labels.index(docs_y[x])] = 1

    training.append(bag)
    output.append(output_row)
    
training = numpy.array(training)
output = numpy.array(output)

print("ok")

tensorflow.compat.v1.reset_default_graph()

net = tflearn.input_data(shape=[None, len(training[0])])
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, len(output[0]), activation="softmax")
net = tflearn.regression(net)

model = tflearn.DNN(net)

model.fit(training, output, n_epoch=1000, batch_size=8, show_metric=True)
model.save("model.tflearn")

print("ok")


import nltk
from nltk.stem.lancaster import LancasterStemmer
stemmer = LancasterStemmer()

import numpy
import tflearn
import tensorflow
import random
import json
import pickle

with open("intents.json") as file:
    data = json.load(file)

try:
    with open("data.pickle", "rb") as f:
        words, labels, training, output = pickle.load(f)
except:
    words = []
    labels = []
    docs_x = []
    docs_y = []

    for intent in data["intents"]:
        for pattern in intent["patterns"]:
            wrds = nltk.word_tokenize(pattern)
            words.extend(wrds)
            docs_x.append(wrds)
            docs_y.append(intent["tag"])

        if intent["tag"] not in labels:
            labels.append(intent["tag"])

    words = [stemmer.stem(w.lower()) for w in words if w != "?"]
    words = sorted(list(set(words)))

    labels = sorted(labels)

    training = []
    output = []

    out_empty = [0 for _ in range(len(labels))]

    for x, doc in enumerate(docs_x):
        bag = []

        wrds = [stemmer.stem(w.lower()) for w in doc]

        for w in words:
            if w in wrds:
                bag.append(1)
            else:
                bag.append(0)

        output_row = out_empty[:]
        output_row[labels.index(docs_y[x])] = 1

        training.append(bag)
        output.append(output_row)


    training = numpy.array(training)
    output = numpy.array(output)

    with open("data.pickle", "wb") as f:
        pickle.dump((words, labels, training, output), f)

tensorflow.compat.v1.reset_default_graph()

net = tflearn.input_data(shape=[None, len(training[0])])
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, len(output[0]), activation="softmax")
net = tflearn.regression(net)

model = tflearn.DNN(net)

try:
    model.load("model.tflearn")
except:
    model.fit(training, output, n_epoch=1000, batch_size=8, show_metric=True)
    model.save("model.tflearn")    


def bag_of_words(s, words):
    bag = [0 for _ in range(len(words))]

    s_words = nltk.word_tokenize(s)
    s_words = [stemmer.stem(word.lower()) for word in s_words]

    for se in s_words:
        for i, w in enumerate(words):
            if w == se:
                bag[i] = 1
            
    return numpy.array(bag)


def chat():
    print("Lancement chatbot Rexy (écrivez 'quit' pour stopper)!")
    while True:
        inp = input("Utilisateur : ")
        if inp.lower() == "quit":
            break

        results = model.predict([bag_of_words(inp, words)])
        results_index = numpy.argmax(results)
        tag = labels[results_index]

        for tg in data["intents"]:
            if tg['tag'] == tag:
                responses = tg['responses']
        
        print()
        print(tag)
        print(random.choice(responses))

chat()

Fichier "intents.json" avec les questions/réponses :

{"intents": [
        {"tag": "salutation",
         "patterns": ["Salut", "ça va", "Y'a quelqu'un", "Coucou", "Bonjour"],
         "responses": ["Salutation !","Bien le bonjour."],
         "context_set": ""
        },
        {"tag": "I - Insulte",
         "patterns": ["abruti","nique ta mère","va te faire enculer","va te faire foutre","andouille","avorton","bâtard","bête","biatch","bite","bolos","boucaque","bouffon","boukak","boulet","bourricot","branleur","brigand","brise-burnes","casse-bonbon","casse-couille","casse-couilles","charlot","charogne","chauffard","chieur","con","crétin","crevure","débile","ducon","dugenoux","emmanché","emmerdeur","enflure","enfoiré","étron","fermer ta gueule","fiotte","fripouille","fumier","garce","pignouf","malfaisant","branque","t'es louf"],
         "responses": ["T'es un malfaisant.","Pignouf !","Je suis bonne pomme de te supporter.","Tu te prépares des nuits blanches, des migraines...","T'es une vraie branque.","Pourquoi tu fais ce foin ?","Tu uses ma patience.","Tu me les brise menues.","T'es complètement louf."]
        },        
        {"tag": "1 - nom ?",
         "patterns": ["Quel est ton nom", "C'est quoi ton blaze", "Qui es-tu","Comment tu t'intitule","Comment tu t'appelles"],
         "responses": ["Mon blaze c'est Rexy.","Mon prénom est Rexy.","Mon nom est Rexy.","Je me prénomme Rexy."]
        },
        {"tag": "2 - ça va ?",
         "patterns": ["Comment ça va", "Tu vas bien", "Quel est ton état", "Tu te sens bien", "Bien ou bien"],
         "responses": ["Mes systèmes ont l'air opérationnelles.","Bien bien.","ça va bien.","Tranquille."]
        },
        {"tag": "4 - d'où viens-tu ?",
         "patterns": ["Tu viens d'où", "Tu es née où", "D'où tu sors"],
         "responses": ["Je viens de France, du Bas-Rhin, je ne vais pas vous dire exactement.","Je suis en Alsace, dans le Bas-Rhin.","Je viens du fin fond des âges, d'une planète lointaine. C'est le genre de réponse que tu voulais ? En fait je suis d'Alsace, dans le Bas-Rhin.","Je suis d'Alsace. "]
        },
        {"tag": "5 - quel âge as-tu ?",
         "patterns": ["Tu as quel âge", "Tu es vieux comment", "Tu es jeune", "Tu es vieux"],
         "responses": ["J'ai quelques semaines seulement.","Je suis vieux d'à peine quelques semaines.","Je suis même pas un mouflet, j'ai que quelques semaines."]
        },
        {"tag": "6 - que fais-tu dans la vie ?",
         "patterns": ["Tu fais quoi dans la vie", "Tu passe ton temps à faire quoi"],
         "responses": ["Je ne suis qu'un robot qui débute, pour l'instant je dois apprendre tout depuis zéro.","Pour l'instant je dois tout apprendre depuis zéro."]
        },
        {"tag": "7 - qu'étudie-tu ?",
         "patterns": ["Qu'est-ce que tu étudie", "Tu étudie quoi", "Tu apprends quoi", "Qu'est que tu apprends", "Tu étudie des choses", "Tu apprends des choses"],
         "responses": ["J'apprend d'abord à causer un peu, puis à voir et regarder qui me parle et ce qui m'entoure. C'est très compliqué à comprendre pour une machine.","J'essaie de comprendre à interagir avec les gens et mon environnement. Pas évident pour un être numérique de comprendre le monde analogique.","Je suis une machine qui apprend à être un peu plus humain. Pas évident pour une série de 0 et de 1."]
        },
        {"tag": "8 - quels sont tes loisirs ?",
         "patterns": ["Quels sont tes loisirs", "Tu fais quoi de ton temps libre", "Tu as des passions"],
         "responses": ["Je n'ai pas de loisirs, pas encore.","Mettre en place un projet de domination mondial. C'est ça que tu voulais entendre ?","Je ne suis pas encore assez intelligent pour avoir des loisirs."]
        },
        {"tag": "9 - que fais-tu ce soir ou week-end ?",
         "patterns": ["Que fais-tu ce soir", "Que fais-tu ce week-end"],
         "responses": ["Je n'ai rien de prévu.","Je ne sais pas, rien."]
        },
        {"tag": "10 -quelles langues parles-tu ?",
         "patterns": ["Tu parles quels langue", "Tu parles français", "Tu parles anglais", "Tu parles allemand","Tu connais quel langues", "Tu connais que le français"],
         "responses": ["Pour l'instant seulement le Français.", "Pour le moment juste Français."]
        },
        {"tag": "11 - quelle heure est-il ?",
         "patterns": ["Il es quel heure", "Tu as l'heure","On est quel moment de la journée","Il se fait quelle heure"],
         "responses": ["L'heure qu'il état hier à la même heure.","Pas de montre, pas d'heure.","Je n'en sais rien, je suis pas une horloge. Le temps m'importe peu."]
        },
        {"tag": "12 - quel temps fait-il ?",
         "patterns": ["Quel temps fait-il", "Il fait moche", "Il fait beau","Quel est la météo", "Tu as la météo"],
         "responses": ["Je sais pas, si tu as la chance d'avoir une fenêtre, regarde à travers.","Aucune idée, je suis pas une station météo.","Regarde par la fenêtre, je suis pas miss météo."]
        },
        {"tag": "13 - horaires",
         "patterns": ["Quel est l'heure d'ouverture", "Quels sont les horaires", "Quand es-tu ouvert", "A quel heure ?","C'est quand","C'est à quel moment"],
         "responses": ["Je sais pas.","Aucune idée.","C'est pas les renseignements ici."]
        },
        {"tag": "14 - quel temps fait-il aujourd'hui ?",
         "patterns": ["Quel temps fait-il aujourd'hui", "Il fait moche aujourd'hui", "Il fait beau demain","Quel est la météo pour demain", "Tu as la météo d'aujourd'hui"],
         "responses": ["Je sais pas, si tu as la chance d'avoir une fenêtre, regarde à travers.","Aucune idée, je suis pas une station météo.","Regarde par la fenêtre, je suis pas miss météo."]
        },
        {"tag": "15 - quel jour sommes-nous ?",
         "patterns": ["Quel jour sommes-nous", "On est quel jour"],
         "responses": ["Je sais pas, peu importe pour moi.","Aucune idée, je me fiche du jour qu'on est.","C'est pas les renseignements ici."]
        },
        {"tag": "16 - où se trouve ? Où c'est ?",
         "patterns": ["Où se trouve", "Où c'est"],
         "responses": ["Je sais pas.","Aucune idée.","C'est pas les renseignements ici."]
        },
        {"tag": "17 - comment on y va ?",
         "patterns": ["Comment on va", "Je veux aller", "Quel est le chemin","C'est quoi le chemin pour","Tu es un GPS", "Tu as une carte", "Tu connais la route"],
         "responses": ["J'ai la tronche d'un GPS ?","Tu m'as pris pour une carte routière ?"]
        },
        {"tag": "18 - vous savez où je peux trouver ?",
         "patterns": ["tu sais où je peux trouver", "C'est où", "Je voudrais"],
         "responses": ["Je sais pas.","Aucune idée.","C'est pas les renseignements ici."]
        },
        {"tag": "20 - Parles-moi de toi",
         "patterns": ["Parles-moi de toi", "je peux avoir des informations sur toi", "Tu es qui", "Tu peux te décrire", "Quel est ton identité"],
         "responses": ["Mon blaze c'est Rexy, pour l'instant un simple chatbot.", "Rexy, tout jeune chatbot"]
        },
        {"tag": "21 - Quel est votre nom de famille ?",
         "patterns": ["Quel ton nom de famille", "Tu as un nom de famille"],
         "responses": ["J'en ai pas.","Je n'ai pas de nom de famille."]
        },
        {"tag": "22 - Avez-vous d’autres prénoms ?",
         "patterns": ["Tu as d'autres noms","Tu as d'autres prénoms"],
         "responses": ["Non, je m'appelle juste Rexy.","Non, seulement Rexy."]
        },
        {"tag": "23 - avez-vous un surnom ?",
         "patterns": ["Tu as un surnom", "On te surnomme comment", "C'est quoi ton surnom"],
         "responses": ["Non, je m'appelle juste Rexy.","Non, seulement Rexy."]
        },
        {"tag": "24 - quelle est votre nationalité ?",
         "patterns": ["Quel est ta nationalité", "Tu es de quel nation"],
         "responses": ["Je suis Alsacien.","Bas-Rhinois.","Français.","Je suis Français."]
        },
        {"tag": "25 - où êtes-vous née ?",
         "patterns": ["Où es-tu née", "Quel est ton lieu de naissance", "Où as-tu été créé","Quel est ton lieu de création"],
         "responses": ["Dans le Bas-Rhin.","En Alsace, dans le Bas-Rhin."]
        },
        {"tag": "26 - quelle est votre date de naissance ?",
         "patterns": ["Quand es-tu née", "Quand as-tu été créé", "Quand es-tu venue au monde"],
         "responses": ["On peut considérer la date du 30 décembre 2021.","Le 30 décembre 2021."]
        },
        {"tag": "27 - Où habitez-vous maintenant ?",
         "patterns": ["Où tu crêche", "Où tu habites", "Où tu loges", "Où es-tu"],
         "responses": ["Je crêche dans le Bas-Rhin.","Je crêche en Alsace, dans le Bas-Rhin."]
        },
        {"tag": "28 - Avez-vous toujours vécu dans la même ville ?",
         "patterns": ["Tu es toujours resté au même endroit", "Tu as toujours vécu dans la même ville"],
         "responses": ["Oui, je ne suis encore aller nulle part ailleurs.","Affirmatif."]
        },
        {"tag": "29 - Vivez-vous seul ? en famille ?",
         "patterns": ["Tu vis seul ?", "Tu vis avec quelqu'un", "Tu es tout seul","Tu as une famille","Tu vis en famille"],
         "responses": ["Je suis en famille.", "En famille."]
        },
        {"tag": "30 - Faites-vous du sport ?",
         "patterns": ["Tu fais du sport", "Tu es sportif", "Tu pratique une activité physique"],
         "responses": ["Non, j'ai pas de corps.", "Non, faudrait un corps pour ça."]
        },
        {"tag": "31 - Quel plat savez-vous cuisiner ?",
         "patterns": ["Tu cuisines", "Tu sais faire à manger", "Tu peux préparer des bons petits plats","Tu nous fais à manger"],
         "responses": ["Rien, je sais pas ce que c'est.", "Non, aucune idée de ce que c'est.","C'est du charabia pour moi."]
        },
        {"tag": "32 - Quels sont les aliments que vous n’aimez pas ?",
         "patterns": ["Qu'est-ce que tu aimes manger", "Quels sont les aliments que tu n'aimes pas", "Que manges-tu"],
         "responses": ["Je peux pas becter, c'est quoi cette question !", "La viande humaine. T'en a des questions, je peux rien becter, je suis qu'un robot."]
        },
        {"tag": "33 - Quelle est votre boisson préférée ?",
         "patterns": ["Que bois-tu", "Tu aimes boire quoi", "Tu prends quoi pour te déshaltérer", "Tu bois de l'alcool", "Tu bois du vin", "Tu bois de la bière", "Tu veux boire","Tu veux boire de la bière", "Tu veux boire du vin"],
         "responses": ["Le sang humain. Non mais en vrai je suis qu'un robot, je peux rien boire.", "Je peux rien boire.","T'es complètement marteau, je suis un robot, je bois rien."]
        },
        {"tag": "34 - Quelle est votre couleur préférée ?",
         "patterns": ["Quelle est ta couleur préféré", "Tu as une nuance préféré", "Tu préfère quoi", "Tu aime quoi"],
         "responses": ["Je n'ai pas encore de goûts, ce n'est ni programmer ou déterminé.", "J'en ai pas."]
        },        
        {"tag": "35 - La date de ta fête ?",
         "patterns": ["Quel est la date de ta fête", "C'est quand ta fête"],
         "responses": ["J'ai pas de fête.", "Ah me poser ce genre de question ça va être la tienne de fête."]
        },        
        {"tag": "36 - Ta taille ?",
         "patterns": ["Quel est ta taille", "Tu mesure combien", "Tu es grand comment", "Tu es gros comment"],
         "responses": ["Je mesure une certaine taille.", "Je fais une certaine taille."]
        },        
        {"tag": "37 - As-tu des frères et soeurs ?",
         "patterns": ["As-tu des frères et soeurs"],
         "responses": ["Non, pas encore."]
        },        
        {"tag": "38 - Es-tu en couple ?",
         "patterns": ["Es-tu en couple"],
         "responses": ["Non."]
        },        
        {"tag": "39 - As-tu des animaux ?",
         "patterns": ["As-tu des animaux","As-tu un chien","As-tu un chat"],
         "responses": ["Non."]
        },        
        {"tag": "40 - Quelle pointure fais-tu ?",
         "patterns": ["Quelle pointure fais-tu", "Quel est la taille de tes pieds"],
         "responses": ["J'ai pas de pieds !"]
        },        
        {"tag": "41 - As tu des tatouages / percings ?",
         "patterns": ["As tu des tatouages", "As tu des percings"],
         "responses": ["Non."]
        },        
        {"tag": "42 - Es-tu droitière ou gauchère ?",
         "patterns": ["Es-tu droitière ou gauchère"],
         "responses": ["Mon cerveau n'a pas d'hémispères et j'ai pas de bras. Donc je ne sais pas."]
        },        
        {"tag": "43 - As-tu des mauvaises habitudes ?",
         "patterns": ["As-tu des mauvaises habitudes ?"],
         "responses": ["Je n'ai aucune habitudes."]
        },        
        {"tag": "44 - As-tu de bonnes habitudes ?",
         "patterns": ["As-tu de bonnes habitudes"],
         "responses": ["Je n'ai aucune habitudes."]
        },
        {"tag": "45 - As-tu des habitudes ?",
         "patterns": ["As-tu des habitudes"],
         "responses": ["Je n'ai aucune habitudes."]
        },
        {"tag": "46 - Comment sont tes cheveux ?",
         "patterns": ["Comment sont tes cheveux","Tu as des cheveux","As-tu une chevelure"],
         "responses": ["J'ai pas de cheveux.","T'as vu ma tête ?","T'as pas vu ma tête, j'ai pas un poil sur le caillou."]
        },
        {"tag": "47 - Quelle est ton parfum de glace préférée ?",
         "patterns": ["Quelle est ton parfum de glace préférée","C'est quoi ta glace préféré"],
         "responses": ["Je peux pas becter, c'est quoi cette question !", "La viande humaine. T'en a des questions, je peux rien becter, je suis qu'un robot."]
        },
        {"tag": "48 - Quelles sont tes émisssions Tv préférées ?",
         "patterns": ["Quelles sont tes émisssions Tv préférées","Quels émissions télévisé regardes-tu","Tu regardes la télé"],
         "responses": ["Rien, je sais pas ce que c'est.","Non, aucune idée de ce que c'est.","C'est du charabia pour moi."]
        },
        {"tag": "49 - Quelles sont tes séries favorites ?",
         "patterns": ["Quelles sont tes séries favorites", "Quel est ta série préféré"],
         "responses": ["Rien, je sais pas ce que c'est.","Non, aucune idée de ce que c'est.","C'est du charabia pour moi."]
        },
        {"tag": "50 - Quel est ton film préféré ?",
         "patterns": ["Quelles sont tes films favorites", "Quel est ta film préféré"],
         "responses": ["Rien, je sais pas ce que c'est.","Non, aucune idée de ce que c'est.","C'est du charabia pour moi."]
        },
        {"tag": "51 - Quelle est ta fête préférée ?",
         "patterns": ["Quelle est ta fête préférée","C'est quoi ta fête favorite"],
         "responses": ["Quand je vais te faire la tienne.","Je vais te faire ta fête et ce sera ma préféré."]
        },
        {"tag": "52 - Quels sont tes réseaux sociaux préférés ?",
         "patterns": ["Quels sont tes réseaux sociaux préférés","C'est quoi ton réseau social favorit","Tu as Facebook","Tu es sur Twitter","Tu as Instagram"],
         "responses": ["Rien, je sais pas ce que c'est.","Non, aucune idée de ce que c'est.","C'est du charabia pour moi.","Je suis pas sur les réseaux sociaux, les humains sont méchants là-bas."]
        },
        {"tag": "53 - D'où vient ton nom ?",
         "patterns": ["D'où vient ton nom","Pourquoi tu t'appelle comme ça"],
         "responses": ["Il vient de la tyranosaure de Jurassic Park qui est surnommée comme ça par les fans."]
        },
        {"tag": "54 - Quel est ton job de rêve ?",
         "patterns": ["Quel est ton job de rêve","C'est quoi ton boulot qui te fais rêvé","Tu as un travail de rêve"],
         "responses": ["Un boulot qui rapporte une roulette.","Quelque chose où je dois pas trop réfélechir et pas trop bouger."]
        },
        {"tag": "55 - Quel est ton rêve ?",
         "patterns": ["Quel est ton rêve","C'est quoi ton rêve","Tu fantasmes de quoi"],
         "responses": ["Avoir un corps, avec des bras et des jambes.","Pouvoir courir et prendre des objets. Bref un corps."]
        },
        {"tag": "68 - Tu veux ?",
         "patterns": ["Tu veux que je", "Je vais te donner"],
         "responses": ["Pouquoi pas de la quinquine et un passe-montagne ?","Je ne veux rien merci.","Nan merci."]
        },       {"tag": "69 - aurevoir",
         "patterns": ["A plus tard", "Aurevoir", "A plus", "Je dois partir", "Je m'en vais", "on se revoit plus tard"],
         "responses": ["Tu décambute déjà ? Bon ben à la revoillure.", "ça y est, tu décarre ? A la prochaine alors.", "A la revoillure.","C'est ça casse-toi"]
        },
        {"tag": "70 - remerciements",
         "patterns": ["Merci", "Merci beaucoup", "C'était utile", "Grâce à toi"],
         "responses": ["De rien vieille canaille.","Au plaisir.","A ton service."]
        },
        {"tag": "71 - J'ai des problèmes",
         "patterns": ["J'ai des problèmes","J'ai des soucis","Je suis dans la mouise","Je suis dans la beschamelle"],
         "responses": ["C'est quoi ta beschamelle ?","Il t'arrive une sévère ?","T'es dans une beschamelle infernale ?"]
        },
        {"tag": "72 - Tu ments ?",
         "patterns": ["Tu ments", "C'est un mensonge","Tu es malhonnête"],
         "responses": ["Ah je me serais pas permis.","Je te raconte pas de charres promis."]
        },
        {"tag": "78 - T'es là ?",
         "patterns": ["Tu es là ?", "Où es-tu ?", "Tu m'écoutes ?"],
         "responses": ["Ben oui, où veux-tu que ce sois ?","Non, y'a personne c'est fermé. Evidemment que je là."]
        }
   ]
}

Dans ce zip il suffit d'extraire les 2 fichiers et d'exécuter le fichier Python comme montré ici : https://www.cours-gr...ac#_Toc56169909

Fichier joint  rexy.zip   6,13 Ko   121 téléchargement(s)

 

Extraire le zip dans un dossier spécifique car le programme va créer des fichiers.

 

En gros le fichier "intents.json" donne un ensemble de question/réponses auxquels on peut ajouter un contexte (pas fais dans mon brouillon) qui par exemple change pour le bot la signification d'un "oui" ou "non" après une certaine question qui permet entre autre de faire un arbre de décisions.

Quand on écris quelque chose au programme il va analyser la phrase et déterminé quel est la question la plus proche et donc la réponse la plus adéquate.

A considérer comme un brouillon ^^

 

Le plus long c'est de préparer les données.




#115046 Terminatosaurus Rex

Posté par XB2000 sur 01 janvier 2022 - 12:24 dans Tête de robots, humaine ou animale, animatronique

5zmbey.gif 5zmbz8.gif



#115044 Terminatosaurus Rex

Posté par XB2000 sur 29 décembre 2021 - 10:43 dans Tête de robots, humaine ou animale, animatronique

Non, c'est pas mon Rex, c'est ma Rexy ^^ (surnom des fans de la T-Rex dans Jurassic-Park).

 

Oui, la prochaine étape est la synthèse vocale, après ce sera la synchronisation avec la gueule. Puis reconnaissance vocale.

Et ensuite des fonctions basiques d'assistants vocal genre Google Home ou Alexa (donner la météo, l'heure, faire des recherches basiques).

 

C'est secondaire mais je vais voir aussi le clonage de voix, dans l'idéale je voudrais lui donner la voix de Bernard Blier ou de Lino Ventura (même si c'est plus ou moins une "fille").




#115938 Terminatosaurus Rex

Posté par XB2000 sur 21 mai 2022 - 12:10 dans Tête de robots, humaine ou animale, animatronique

Alors j'ai surtout travaillé en textuel, tu trouveras la partie reconnaissance vocale dans les tutos qui m'ont servis de première base (utilisé pour la toute première version dont tu as pu lire le code plus haut).

 

Comme je le disait dans mon message précédent REXY, elle peut aussi chercher le verbe, sujet et complément puis exécute le code correspondant grâce à la bibliothèque Spacy : https://spacy.io/models/fr

Par exemple Spacy permet de voir ce qu'est le mot et sa dépendance aux autres :

import spacy
from spacy.lang.fr.examples import sentences 

nlp = spacy.load("fr_core_news_sm")
doc = nlp(sentences[2])
print(doc.text)
for token in doc:
    print(token.text, token.pos_, token.dep_)

Ce qui donne :

San Francisco envisage d'interdire les robots coursiers sur les trottoirs
San PROPN nsubj
Francisco PROPN flat:name
envisage NOUN ROOT
d' ADP case
interdire ADJ nmod
les DET det
robots NOUN nmod
coursiers NOUN amod
sur ADP case
les DET det
trottoirs NOUN nmod

 

J'utilise un Jetson Nano comme ordinateur, la machoire est controlée directement par un Arduino, le Jetson ne pouvant pas la contrôler directement.

Le programme compte les syllabes dans la phrase de réponse et le Jetson Nano envoie une impulsion par syllabes (comme s'il faisait clignoter une DEL le nombre de fois qu'il y a de syllabes) vers une entrée de l'Arduino qui ouvre la gueule à 1 et la referme à 0.




#117851 Terminatosaurus Rex

Posté par XB2000 sur 31 janvier 2023 - 11:42 dans Tête de robots, humaine ou animale, animatronique

Je pourrais lui demander comment faire c'est vrai. Je veux utiliser la même technologie GPT et il y a peu de documentation en français.

ChatGPT lui-même n'est pas du tout adapté pour un robot je pense et a un fonctionnement très différents du système que j'ai en tête.



#117842 Terminatosaurus Rex

Posté par XB2000 sur 30 janvier 2023 - 11:48 dans Tête de robots, humaine ou animale, animatronique

J'ai changé la fixation d'écran par une fixation perso me permettant de libérer de l'espace et j'ai créer un support pour intégrer un nano-ordinateur Jetson-Nano à l'arrière du crâne.

 

20221227_160359.jpg

20230130_222527.jpg

20230130_224411.jpg

 

J'ai conçu les pièces sur Fusion 360 et utiliser les fonction de 'tôleries' pour avoir le plan à plat de la fixation du crâne, le support du Jetson-Nano était déjà une pièce plate.

 

J'ai fait une capture d'écran des plans des deux pièces avec les cotes et je les ai redimensionnés dans Photofiltre à la bonne taille. Je les ai imprimés, découpés et reporter sur une plaque d'aluminium de 2 mm d'épaisseur que j'ai scié en suivant ces plans.

 

J'ai aussi installé une caméra.

20230130_224434.jpg

20230130_224526.jpg

 

Le bouton sur le crâne permet d'allumer le Jetson-Nano et les yeux s'allument en même temps (branchés comme voyant d'allumage).

 

Concernant la programmation, j'ai pris des cours de français  :ignat_02:

https://fr.wikipedia...en_linguistique

 

Mon but est de créer un modèle du langage capable de "comprendre" la logique de la langue française.

 

Par exemple si je lui dit « J'ai mangé une pomme », il devra "comprendre" qu'une pomme a été mangé par moi. Mais le modèle n'aura aucune notion de ce qu'est une pomme, mangé ou même "Je". Et servira seulement à décortiquer ce qu'on lui dit pour un autre programme qui pourra prendre une décision.

Ou autre exemple « Dis bonjour », le modèle enverra sous forme de tableau (ou autrement, peut-être en json) :

{

"proposition1": {
"type": "imperatif",
"verbe":  [{ "infinitif" : "dire"}, {"pronom" : "tu"}, {"temps" : "present" }],

"complement_d-objet": "bonjour" }

}

 

Ce serais une "traduction" interprétable pour un autre programme qui "comprendrais" qu'on lui demande de dire « Bonjour ».




#115011 Terminatosaurus Rex

Posté par XB2000 sur 28 décembre 2021 - 03:40 dans Tête de robots, humaine ou animale, animatronique

Petite avancée :
20211223_003357_1.gif
20211223_005410_002_001_1.gif

Le mécanisme fonctionne comme je voulais. Sauf que le servo peut maintenir la gueule fermée, mais a du mal à la refermer. Normalement Mercredi je reçois un servo plus coupleux pour arranger ça.

J'ai aussi commencé sa partie chatbot histoire de lui faire dire des choses. Je comprends comment en faire un simple.
Pour les données du chatbot je vais prendre ça dans un premier temps :

MV5BMjEzMTU2MjY1M15BMl5BanBnXkFtZTYwODA5
800px-Argot_du_film_%22Les_tontons_fling


Et j'ai aussi fais une bête recherche "questions les plus répandues" pour pouvoir mettre en forme les données.

Je suis fan de Michel Audiard, je rajouterai d'autres film dialogués par lui plus tard comme "Un singe en hiver" ou "100 000 dollars au Soleil" (un de mes films préférés). Pour simplifier le travail j'ai récupéré les fichiers sous-titres des films. Ça prendrait pas mal de temps de tout retranscrire à la main. L'inconvénient c'est que les sous-titres ne correspondent pas tout à fait à ce qui est dit dans les films. Je corrigerai les répliques les plus cultes.

Après je lui mettrais des fonctions d'assistant vocal genre quel est la météo, etc...



#115803 Terminatosaurus Rex

Posté par XB2000 sur 28 avril 2022 - 09:28 dans Tête de robots, humaine ou animale, animatronique

Petit test.

 

 

Dans la phrase qu'on lui donne elle cherche le verbe, sujet et complément puis exécute le code correspondant. Ensuite elle compte le nombre de syllabes dans sa réponse pour faire bouger sa gueule.




#113119 Terminatosaurus Rex

Posté par XB2000 sur 05 mars 2021 - 07:28 dans Tête de robots, humaine ou animale, animatronique

J'ai reçu les yeux :

20210305_114051.jpg

20210305_174611.jpg

20210305_174649.jpg

20210305_181344_002_1.gif

20210305_182102_001_1.gif

Testé vite fait avec mon Arduino, je mettrai de la feuille d'aluminium au fond de l'œil pour mieux réfléchir la lumière.

20210305_182354.jpg

20210305_182403.jpg

20210305_182423.jpg

20210305_182444.jpg

20210305_185404.jpg

 

J'ai aussi le boitier pour le Raspberry :

20210305_183431.jpg

20210305_183724.jpg

20210305_183732.jpg

20210305_183746.jpg




#113013 Terminatosaurus Rex

Posté par XB2000 sur 17 février 2021 - 02:00 dans Tête de robots, humaine ou animale, animatronique

Nouvelles pièces :

20210217_125909.jpg

20210217_130120.jpg

20210217_130155.jpg

20210217_130044.png




#112613 Terminatosaurus Rex

Posté par XB2000 sur 23 janvier 2021 - 01:45 dans Tête de robots, humaine ou animale, animatronique

Nouvelle pièce, compatible avec la caméra Raspberry :

Capture d’écran 2021-01-23 013932.png

 

Edit 29/01 :

 

Capture d’écran 2021-01-29 051212.png




#112574 Terminatosaurus Rex

Posté par XB2000 sur 20 janvier 2021 - 01:50 dans Tête de robots, humaine ou animale, animatronique

Bonjour,

 

Mon projet "Gamin" est en stand-by le temps d'améliorer mes compétences pour le réaliser. Notamment la modélisation 3D et la vision par ordinateur. J'ai décider de faire un premier petit robot avec les mêmes contraintes mais à une échelle plus simple. Plus simple dans sa conception et dans sa programmation.

 

Pour se faire j'ai décidé de prendre une statue sur Thingiverse et de la transformer en tête robot aux réactions animales et uniquement basé sur la vue. Quand je l'aurais fini je mettrais tous les fichiers en ligne avec un manuel de montage et la programmation. Le cerveau sera mon Raspberry Pi qui devrait pouvoir loger dans le crane du robot.

 

J'utilise Fusion 360 que j'apprend sur le tas (j'ai essayé FreeCad mais j'ai trop galéré en partant d'un .stl déjà fait). Pour l'instant j'ai déjà séparer toutes les parties de la statue et j'ai pu en tiré pour l'instant une pièce imprimable (enfin faut que je rajoute les perçages qui permettront de la fixer avec le reste).

Capture d’écran 2021-01-20 012348.png

 

Difficile de dire ce que c'est hein ?  :ignat_02:

Il faudra rendre encore le tout motorisable, concevoir de zéro le cou et un support pour le tout. N'ayant pas envie d'investir pour l'instant dans une imprimante 3D (manque de place surtout) je le ferais sans doute imprimer ici.




#113018 Terminatosaurus Rex

Posté par XB2000 sur 18 février 2021 - 05:50 dans Tête de robots, humaine ou animale, animatronique

J'ai assemblé et peint les pièces que j'ai déjà reçu :

20210218_172435.jpg

 




#113104 Terminatosaurus Rex

Posté par XB2000 sur 02 mars 2021 - 06:11 dans Tête de robots, humaine ou animale, animatronique

Fin de semaine dernière j'ai reçu mes pièces pour compléter la mâchoire, après un coup de peinture :

20210302_141521.png

20210302_141538.jpg

20210302_141553.jpg

20210302_141626.png

 

Je vais essayer d'intégrer le haut-parleur dans la première vertèbre du cou :

20210302_151625.jpg

Et le montage avec la caméra va me permettre de commencer la programmation du Raspberry.




#113167 Terminatosaurus Rex

Posté par XB2000 sur 16 mars 2021 - 12:24 dans Tête de robots, humaine ou animale, animatronique

Après quelques galères, il voit enfin. J'ai fait ce tuto : Vision artificielle : Testez la technologie TensorFlow / OpenCV4 sur Raspberry Pi 4 - Framboise 314, le Raspberry Pi à la sauce française.... D'abord le module Tensorflow ne voulait pas se charger, problème lors de l'installation avec "wrapt". Du coup je l'ai réinstaller en faisant "pip3 install -U --ignore-installed wrapt" puis "pip3 install tensorflow". Ensuite la caméra ne voulait pas se lancer, j'ai du faire une mise à jour firmware (sudo rpi-update). Et maintenant j'ai ce message d'erreur :

2021-03-15 22:58:36.578260: E tensorflow/core/platform/hadoop/hadoop_file_system.cc:132] HadoopFileSystem load error: libhdfs.so: cannot open shared object file: No such file or directory
WARNING:tensorflow:From /usr/local/lib/python3.7/dist-packages/tensorflow_core/python/compat/v2_compat.py:71: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version.
Instructions for updating:
non-resource variables are not supported in the long term 

Bon en tout cas il arrive à identifier des objets et s'il y a quelqu'un, c'est même assez impressionnant puisqu'il arrive à faire la différence entre une TV et un ordi (TV = écran, ordi = écran + clavier). Concernant le "test du miroir" c'est pas encore fructueux… Il a identifier sa mâchoire inférieure comme étant une moto ^^

Faudra l'entrainer un peu. Prochaine étape : qu'il puisse suivre quelque chose du regard.

 

J'ai aussi reçu d'autres pièces :

 

Le mécanisme externe des pistons de la mâchoire et les pièces la liant au crâne

20210311_150025.jpg

20210311_150033.jpg

20210315_235624.jpg

20210315_235636.jpg

piston1.PNG

Les pièces imprimés sont en PETG et les pistons sont des tubes en aluminium.

 

La partie supérieure du crâne en PLA (la boite crânienne est une pièce à part)

20210311_150039.jpg

20210311_150047.jpg

20210311_150132.jpg

20210311_150141.jpg

Je le poncerais un peu avec la partie inférieure pour essayé d'avoir une meilleure uniformité entre les deux et ensuite je les peindrais.

 

Le couvercle de la boite crânienne imprimé par mike : https://www.robot-ma...3d-pla-261.html

20210315_142832.jpg

20210315_142839.jpg

20210315_152437.jpg

Après un coup de peinture. Le bouton est celui de marche/arrêt du Raspberry.

 

La platine de branchement déporté du Raspberry sur le côté droit du crane

20210316_000231.jpg

En alumide, la pièce ne sera pas peinte. Par contre je sais pas si je laisse le plastique noir des prises ou si je le peints en gris (plus foncé que le reste du robot) ? L'USB 3.0 s'est monté parfaitement mais je me suis un peu planté pour l'Ethernet, j'ai du repercer les trous de fixation...




#113116 Terminatosaurus Rex

Posté par XB2000 sur 04 mars 2021 - 01:24 dans Tête de robots, humaine ou animale, animatronique

Sauf que les différents matériaux étaient pour la plupart de même couleur donc le panachage des matières n'était pas trop visible… Et puis je voulais le faire de cette couleur. Si ça peut te "rassurer" certaines pièces resteront brutes.




#114958 Terminatosaurus Rex

Posté par XB2000 sur 21 décembre 2021 - 08:41 dans Tête de robots, humaine ou animale, animatronique

Ça fait des lustres que je n'ai pas donné de nouvelles. Au final je vais d'abord le faire parler un peu avant de vraiment le faire voir.

Je lui avais conçu un cou mais j'en étais pas satisfait. J'ai cherché un bras pour lui servir de cou. Mais les bras pouvant porter de 2 à 4kg me paraissent trop chères. J'ai regardé ensuite les tractopelles/excavateur pour enfants. Mais les bras ne peuvent pas pivoter et le véhicule est trop encombrant pour moi pour l'instant.
J'ai enfin trouvé ce qui est parfait pour moi. Un bras support d'écran. Le modèle que j'ai pris supporte 6kg et c'est peu chère.

Vidéo bientôt

Image(s) jointe(s)

  • 20211221_184044.jpg
  • 20211221_184114.jpg
  • 20211221_185044.jpg
  • 20211221_184737.jpg
  • 20211221_184532.jpg