this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Continue rapport

+56 -2
+1 -1
pages_count
··· 1 - 30 1 + 31
+55 -1
rapport/sdk2-study.typ
··· 1 + #import "@preview/fletcher:0.5.8": diagram, node, edge 2 + 1 3 #show figure: set block(spacing: 3em) 2 4 3 5 Unitree met à disposition du public un _SDK_#footnote[Kit de développement logiciel (Software Development Kit)] permettant de contrôler ses robots (dont le H1v2). ··· 164 166 165 167 == Un autre bridge existant: `unitree_mujoco` 166 168 167 - Unitree propose un "bridge" officiel pour utiliser son SDK avec Mujoco, et ainsi faire du reinforcement learning avec H1v2 en utilisant Mujoco. 169 + Unitree propose un bridge officiel pour utiliser son SDK avec Mujoco. 170 + 171 + Le fonctionnement d'un bridge est au final assez similaire, quelque soit le simulateur pour lequel on l'écrit: il s'agit d'envoyer l'état du robot au simulateur, et de réagir quand le simulateur envoie des ordres de commandes. 172 + 173 + #figure(caption: "Fonctionnement usuel du SDK", diagram({ 174 + node((0, 0), "Politique") 175 + node((1, 0), "SDK") 176 + node((2, 0), "Robot") 177 + 178 + for i in range(0, 2) { 179 + edge((i, 0), (i+1, 0), "->", bend: 30deg)[ordres]; 180 + edge((i, 0), (i+1, 0), "<-", bend: -30deg)[état]; 181 + } 182 + })) 183 + 184 + 185 + #figure(caption: [Fonctionnement via _unitree\_mujoco_ du SDK], diagram({ 186 + node((0, 0), "Politique") 187 + node((1, 0), "SDK") 188 + node((2, 0))[`unitree_mujoco`] 189 + node((3, 0), "Mujoco") 190 + 191 + for i in range(0, 3) { 192 + edge((i, 0), (i+1, 0), "->", bend: 30deg)[ordres] 193 + edge((i, 0), (i+1, 0), "<-", bend: -30deg)[état] 194 + } 195 + 196 + edge((0, 1), (2, 1), "|-|", label-side: right)[API du SDK] 197 + edge((2, 1), (3, 1), "|-|", label-side: right)[API de Mujoco] 198 + })) 199 + 200 + Le but est de faire la même chose avec notre propre bridge. Le code du bridge Mujoco existant est utile car un bridge, se situant par définition à la frontière entre deux APIs, fait usage des deux APIs. 201 + 202 + Écrire un bridge Gazebo pour le même SDK implique donc de changer "API de Mujoco" par "API de Gazebo", mais le code faisant usage du SDK d'Unitree reste le même. 203 + 204 + 205 + #figure(caption: [Fonctionnement via _gz-unitree_ du SDK], diagram({ 206 + node((0, 0), "Politique") 207 + node((1, 0), "SDK") 208 + node((2, 0))[*`gz-unitree`*] 209 + node((3, 0))[*Gazebo*] 210 + 211 + for i in range(0, 2) { 212 + edge((i, 0), (i+1, 0), "->", bend: 30deg)[ordres] 213 + edge((i, 0), (i+1, 0), "<-", bend: -30deg)[état] 214 + } 215 + 216 + edge((2, 0), (2+1, 0), "->", bend: 30deg, extrude: (-1, 0, 1))[*ordres*] 217 + edge((2, 0), (2+1, 0), "<-", bend: -30deg, extrude: (-1, 0, 1))[*état*] 218 + 219 + edge((0, 1), (2, 1), "|-|", label-side: right)[API du SDK] 220 + edge((2, 1), (3, 1), "|-|", label-side: right)[*API de Gazebo*] 221 + }))