this repo has no description
0
fork

Configure Feed

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

Continue rapport

+31 -8
+1 -1
autopush.fish
··· 3 3 git pull --rebase --autostash 4 4 while true 5 5 pdfinfo rapport/main.pdf | rg ^Pages: | awk '{print $2}' > pages_count 6 - git add rapport/*.typ bib.yaml *.fish rapport/*.dot pages_count 6 + git add rapport/*.typ bib.yaml *.fish rapport/*.dot pages_count rapport/*.png 7 7 git commit --quiet -m "Continue rapport" 8 8 git push --quiet --force 9 9 echo Pushed at (date)
+30 -7
rapport/gz-unitree.typ
··· 11 11 12 12 Une première tentative a été de suivre la documentation de CycloneDDS pour écouter sur le canal @cyclonedds-helloworld `rt/lowcmd`, en récupérant les définitions IDL des messages, disponibles sur le dépot `unitree_ros2`#footnote[`unitree_mujoco` n'avait pas encore été découvert] @unitree_ros2 13 13 14 - Malheureusement, cette solution s'est avérée infructueuse, à cause de (ce qui sera compris bien plus tard) un problème de numéro de domaine DDS. 14 + Malheureusement, cette solution s'est avérée infructueuse, à cause d'une inadéquation sur les domaines DDS (ce qui sera compris plus tard). 15 15 16 16 On change d'approche en préférant plutôt utiliser les abstractions fournies par le SDK de Unitree (cf @receive-lowcmd et @send-lowstate) 17 17 ··· 22 22 sudo ufw allow in proto udp to 224.0.0.0/4 23 23 ``` 24 24 25 - Pour arriver à ces solutions, du débuggage du traffic RTPS (le protocole sur lequel est construit DDS @dds) s'est avéré utile. 25 + #dontbreak(grid( 26 + columns: (1.5fr, 1fr), 27 + gutter: 2em, 28 + [ 29 + 30 + Pour arriver à ces solutions, du débuggage du traffic RTPS (le protocole sur lequel est construit DDS @dds), _Wireshark_ @wireshark s'est avéré utile. 31 + 32 + 33 + C'est notamment grâce à ce traçage des paquets que le problème d'ID de domaine a été découvert: notre _subscriber_ DDS était réglé sur le domaine anonyme (ID 0) alors que le SDK d'Unitree communique sur le domaine d'ID 1. 34 + 35 + C'est aussi Wireshark qui nous a permis de voir quels étaient les types IDL utilisés pour les messages. 36 + ], 37 + figure(caption: [_Wireshark_ permet de visualiser des méta-données sur les paquets RTPS], 38 + stack( 39 + spacing: 1em, 40 + image("./wireshark-wrong-domain.png"), 41 + image("./wireshark-message-type.png"), 42 + )) 43 + )) 26 44 27 - _Wireshark_ @wireshark supporte le décodage de paquets RTPS 45 + Voici une trace wireshark d'un échange usuel entre commandes (`rt/lowcmd`) et états (`rt/lowstate`) 28 46 29 47 #let img = image("./wireshark-trace.png") 30 48 // https://forum.typst.app/t/how-to-blend-a-color-with-an-image-and-make-the-image-transparent/1677/5 ··· 37 55 #figure( 38 56 caption: [Trace de paquets RTPS sur _Wireshark_], 39 57 overlayed-img[ 40 - #diagram({ 41 - set math.equation(numbering: none) 42 - import "@preview/fletcher:0.5.8": shapes 43 - node(enclose: ((5, 2), (5, 5)), shape: shapes.bracket.with(dir: right))[Initialisation] 58 + #diagram(spacing: (4.54pt, 2.58pt), { 59 + node((0, 0))[] 60 + let annotations-x = 80 61 + let annotate = (y-start, y-end, label) => edge((annotations-x, y-start), "|-|", (annotations-x, y-end), label-fill: white, label-side: left, label) 62 + 63 + annotate(3, 20)[Attente] 64 + annotate(20, 60)[Initialisation] 65 + annotate(60, 100)[Échange `rt/` \ `lowstate` $arrows.lr$ `lowcmd`] 44 66 }) 45 67 ] 46 68 ) 69 + 47 70 48 71 49 72 == Installation du plugin dans Gazebo
rapport/wireshark-message-type.png

This is a binary file and will not be displayed.

rapport/wireshark-trace.png

This is a binary file and will not be displayed.

rapport/wireshark-wrong-domain.png

This is a binary file and will not be displayed.