···44444545Cette technique est particulièrement adaptée au problèmes qui se prêtent à une modélisation type "jeu vidéo", dans le sens où l'agent représente le personnage-joueur, et le coût un certain score, qui est condition de victoire ou défaite.
46464747+En robotique, une approche similaire explore l'espace d'action (en général un courant à envoyer aux moteurs) de façon à optimiser le coût.
4848+4749En robotique, on a des correspondances claires pour ces quatres notions:
48504951/ Agent: Robot pour lequel on développe le programme de contrôle (appelée une _politique_)
5050-/ Actions: Envoi d'ordres aux moteurs // #footnote[il y a techniquement deux principales manières de contrôler un robot: l'envoi de commandes de courant, ou contrôle par puissance, et l'envoi de vitesses cibles, qui laisse la détermination du courant nécéssaire au microcontrolleurs sur le robot même]
5252+/ Actions: Envoi d'ordres aux moteurs, souvent le courant électrique à appliquer // #footnote[il y a techniquement deux principales manières de contrôler un robot: l'envoi de commandes de courant, ou contrôle par puissance, et l'envoi de vitesses cibles, qui laisse la détermination du courant nécéssaire au microcontrolleurs sur le robot même]
5153/ Environnement: Le monde réel. C'est de loin la partie la plus difficile à simuler informatiquement. On utilise des moteurs de simulation physique, dont la multiplicité des implémentations est importante, voir @why_multiple_simulators
5252-/ Coût: un ensemble de contraintes ("ne pas endommager le robot"), dont la plupart dépendent de l'objectif de la politique
5454+/ Coût: un ensemble de contraintes ("ne pas endommager le robot") et d'évaluations spécifiques à la tâche à effectuer ("s'est déplacé de 5m en avant selon l'axe $x$).
53555456=== L'entraînement
5557···293295#let policyexp = policy => $exp_((c_t)_(t in NN) op(~) #policy op(in) cal(S))$
294296295297$
296296- eta(p, r)
298298+ eta(p, r) :=
297299 underbracket(
298300 sum_((c_t)_(t in NN) in cal(S))
299301 underbracket(
···392394393395==== Lien entre $eta$ et $A$
394396395395-Pour une fonction de récompense $r$ donnée, $A$ permet de calculer $eta$ pour une politique $p'$ en fonction de la valeur de $eta$ pour une autre politique $p'$ @trpo-advantage-eta-link
397397+Pour une fonction de récompense $r$ donnée, $A$ permet de calculer $eta$ pour une politique $p$ en fonction de la valeur de $eta$ pour une autre politique $p'$ @trpo-advantage-eta-link
396398397399398400···488490489491==== Pourquoi faire le maximum sur chaque $s in S$ ?
490492491491-Ce maximum revient à limiter non pas la simple distance entre les deux politiques, mais _limiter la modification de la politique sur chaqune de ses actions_.
493493+Ce maximum revient à limiter non pas la simple distance entre les deux politiques, mais _limiter la modification de la politique sur chacune de ses actions_.
492494493495#comment[C'est ma théorie ça, faudrait etre sure que le papier ne donne pas d'explications]
494496···730732731733L'algorithme de Featherstone @featherstone, servant d'implémentation alternative à Bullet @bullet-featherstone
732734733733-== Le _H1v2_ d'Unitree
735735+== Le robot _H1v2_ d'Unitree
734736735735-Le _H1v2_ est un modèle de robot humanoïde créé par la société Unitree.
737737+_H1v2_ est un modèle de robot humanoïde créé par la société Unitree.
736738737739Il possède plus de 26 degrés de liberté, dont
738740
rapport/main.pdf
This is a binary file and will not be displayed.
+1-1
rapport/main.typ
···9595}
96969797#show: arkheion.with(
9898- title: [_gz-unitree_: Reinforcement learning en robotique avec validation par moteurs de physique multiples pour le H1v2 d'Unitree],
9898+ title: [_gz-unitree_: Reinforcement learning en robotique avec validation par moteurs de physique multiples pour le robot H1v2 d'Unitree],
9999 headertitle: "gz-unitree",
100100 authors: (
101101 (