···310310 url:
311311 date: 2025-10-08
312312 value: https://nickbostrom.com/ethics/ai
313313+314314+featherstone:
315315+ type: article
316316+ title: Robot Dynamics Algorithms
317317+ author: Roy Featherstone
318318+ publisher: Springer New York, NY
319319+ book-number:
320320+ isbn: 978-1-4757-6437
321321+
+25-17
rapport/context.typ
···36363737/ Agent: Robot pour lequel on développe le programme de contrôle (appelée une _politique_)
3838/ 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]
3939-/ 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 @simulators
3939+/ 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
4040/ Coût: un ensemble de contraintes ("ne pas endommager le robot"), dont la plupart dépendent de l'objectif de la politique
41414242=== L'entraînement
···109109110110Un exemple populaire est l'expérience de pensée du Maximiseur de trombones @trombones: un agent avec pour environnement le monde réel, pour actions "prendre des décisions"; "envoyer des emails"; etc. et pour fonction récompense (une fonction à maximiser au lieu de minimiser) "le nombre de trombones existant sur Terre", finirait possiblement par réduire en escalavage tout être vivant capable de produire des trombones: la fonction coût est sous-spécifiée
111111112112-==== Bug dans un moteur de physique
112112+==== Bug dans l'implémentation de l'environnement
113113114114-Dans le contexte de la robotique, le calcul de l'état post-action de l'environnement est le travail du _moteur de physique_.
115114116116-Bien évidemment, ce sont des programmes complexes avec souvent des résolutions numériques d'équation physiques, il est presque inévitable que des bugs se glissent dans ces programmes.
115115+Bien évidemment, pour l'agent, tant qu'un bug n'est pas explicitement découragé par sa prise en compte dans la fonction coût. Si une action est favorable à l'amélioration du score, l'agent la prendra.
117116118118-Ces phénomènes, appelés _"glitches"_ dans le jargon du jeu vidéo, peuvent se manifester de diverses manières:
119117120120-#comment[ Compliqué sans vidéo... ptet à remplacer par une phrase seulement, ou alors c'est peut-être déjà assez clair sans exemples? ]
118118+==== La validation comme méthode de mitigation <why_multiple_simulators>
119119+#comment[ça se dit mitigation en français?]
121120122122-- Le passage à travers un objet solide à cause de cas limites dans les calculs de collision joueur-objet (appelé _No clip_)
123123-- La téléportation du joueur sur des grandes distances sans cause raisonnable, souvent causé par des erreurs dans le calcul des coordonnées de sa position
124124-- La projection d'un objet a une vitesse extrême, souvent causé par des cas limites dans le calcul de la vélocité lors d'une collision
121121+Comme ces bugs sont des comportements non voulus, il est très probables qu'ils ne soient pas exactement les mêmes d'implémentation à implémentation du même environnement.
125122126126-Bien évidemment, pour l'agent, tant qu'un bug n'est pas explicitement découragé par sa prise en compte dans la fonction coût, si l'état résultant améliore le score, l'agent apprendra à faire cette action quand c'est utile.
123123+Il convient donc de se servir de _plusieurs_ implémentations: un sert à la phase d'entraînement, pendant laquelle l'agent développe des "tendances à la tricherie", puis une phase de _validation_.
127124128128-#comment[ Rien à voir mais je me dis, c'est enfait un moyen de trouver des bugs dans un physics engine ! ça me fait penser au Fuzzing un peu, mais avec un NN plutôt que du hasard contrôlé ]
125125+Cette phase consiste en le lancement de l'agent dans une autre implémentation, avec les mêmes actions mais qui, crucialement, ne comporte pas les mêmes bugs que l'environnement ayant servi à la phase d'apprentissage.
129126130130-==== La validation comme méthode de mitigation
131131-#comment[ça se dit mitigation en français?]
127127+Les "techniques de triche" ainsi apprises deviennent inefficace, et si le score (le coût ou la récompense) devient bien pire que pendant l'apprentissage, on peut détecter les cas de triche.
132128129129+On peut même aller plus loin, et multiplier les phases de validation avec des implémentations supplémentaires, ce qui réduit encore la probabilité qu'une technique de triche se glisse dans l'agent final
133130131131+#comment[ Rien à voir mais je me dis, c'est enfait un moyen de trouver des bugs dans un physics engine ! ça me fait penser au Fuzzing un peu, mais avec un NN plutôt que du hasard contrôlé ]
134132135133136134== Application en robotique
137135138138-== Le H1v2 d'_Unitree_
139136140140-== Environnements et moteurs de simulation physique <simulators>
137137+Dans le contexte de la robotique, le calcul de l'état post-action de l'environnement est le travail du _moteur de physique_.
141138142142-=== MuJoCo
139139+Bien évidemment, ce sont des programmes complexes avec souvent des numériques souvent numériques d'équation physiques; il est presque inévitable que des bugs se glissent dans ces programmes.
140140+141141+Il existe plusieurs moteurs de physique
143142144144-=== Gazebo
143143+=== Simulateurs
144144+145145+==== MuJoCo
146146+147147+==== Gazebo
148148+149149+=== Moteurs de simulation physique
150150+151151+152152+== Le H1v2 d'_Unitree_
145153146154== Reproductibilité logicielle