Comment modéliser un robot?

8

Les réponses que j'ai reçues à la question sur la formation d'une ligne suivant un robot en utilisant des techniques d'apprentissage par renforcement m'ont amené à réfléchir à la façon de former un robot. Je crois qu'il y a essentiellement deux façons -

  1. Entraînez le robot physique.
  2. Modélisez le robot et simulez la formation.
  3. Ai-je oublié quelque chose?

L'approche 2 est certainement la meilleure approche. Cependant, une connaissance a priori du mouvement (réponse), un certain signal PWM (stimulus) provoquerait lorsque le robot est dans un état donné est requis. Le mouvement provoqué par un signal PWM peut dépendre de ( 1 ) la tension actuelle de la batterie, ( 2 ) de la masse du robot et de ( 3 ) la vitesse du courant (ai-je raté quelque chose?).

Comment modéliser un tel robot? Et comment puis-je le modéliser rapidement? Si je change la batterie ou ajoute quelques cartes et autres périphériques et change la masse du robot, je devrai remodeler et recycler le robot. Puis-je le faire en fournissant des PWM de stimulus aléatoires et en mesurant la réponse?

ajouté: Ma question connexe dans dsp.SE

Mise à jour: Une modification suggérée du titre par Ian mérite d'être mentionnée - " Comment puis-je modéliser un robot pour que si sa dynamique change, il n'a pas besoin d'un recyclage complet? " Je pense que c'est une bonne question aussi, mais différente de la celui que je demande ici. Je suis d'accord pour me recycler pour l'instant.

Lord Loh.
la source
Il y a beaucoup de bonnes questions ici. En fait, il pourrait être préférable de diviser cela en plusieurs questions.
DaemonMaker
Comment proposez-vous que je fasse cela sans perdre l'arrière-plan? J'ai déjà divisé une partie de ma question en dsp.SE
Lord Loh.
Vous avez essentiellement deux questions à poser ici. La première étant, comment modéliser un robot? La seconde étant, comment puis-je former un robot avec un modèle et un algorithme d'apprentissage? Il me semble qu'il pourrait s'agir de deux questions distinctes.
DaemonMaker
Tu as raison. La question qui se pose de savoir comment former un robot était censée être rhétorique. Je pense que je vais essayer de le modifier.
Lord Loh.
Dans ce cas, j'attendrai de voir vos modifications avant d'essayer de répondre à votre question.
DaemonMaker

Réponses:

4

Selon moi, il y a deux questions principales ici. La première est, comment modéliser un robot? Cela se fait fréquemment avec une formulation espace-état des équations du mouvement . Les équations exactes dépendent de la construction physique de votre robot. Oui, afin de les modéliser avec une entrée PWM, vous devez déterminer la fonction de transfert des valeurs PWM que vous fournissez à la sortie de vos actionneurs. Ensuite, vous branchez cette fonction pour le signal de contrôle de votre modèle. Encore une fois, la dérivation de cette fonction est spécifique au robot. La tension actuelle de la batterie et la masse du robot seraient probablement utiles, mais je ne connais pas la vitesse.

La deuxième question est, étant donné un modèle mathématique de mon robot, quelle est la meilleure façon de former un algorithme d'apprentissage par renforcement (RL) pour le contrôler? Bref, il n'y a pas de meilleur moyen. La formation directe sur le robot a tendance à prendre du temps, car il faut plus de temps au robot pour exécuter les essais. Cependant, les simulations peuvent entraîner des politiques moins précises car la physique de la simulation est nécessairement simplifiée. Une autre approche consiste à former l'apprenant à la simulation pour obtenir une approximation raisonnable, puis à transférer la politique résultante au robot pour un raffinement supplémentaire. Cela échoue bien sûr si le modèle n'est pas suffisamment précis. Cela nécessite également un développement supplémentaire.

Enfin, vous demandez "Puis-je [remodeler et recycler le robot] en fournissant des PWM de stimulus aléatoires et en mesurant la réponse?" Dans le cas de RL, il n'y a aucune raison de penser que la nouvelle politique optimale ressemble à la politique optimale précédente et, en tant que tel, il n'y a pas beaucoup de raisons de penser que quelques contrôles aléatoires fourniront suffisamment d'informations pour modifier la politique de manière appropriée. Bien entendu, le recyclage ne doit se produire que si les modifications que vous apportez à votre robot affectent la formulation du modèle d'espace d'état et / ou du modèle d'action que vous utilisez. Par exemple, si votre modèle d'action est en termes d'actions de haut niveau ("aller à gauche", "aller à droite", "aller de l'avant"), alors changer la dynamique nécessite de changer la façon dont vous mettez en œuvre ces motions, mais la politique doit toujours tenir .

DaemonMaker
la source
0

Pour la modélisation, la cinématique Denavit–Hartenberg parametersest couramment utilisée. le cours d'introduction à la robotique proposé par l'université de Stanford est disponible sur YouTube

Johan Larsson
la source