this repo has no description
0
fork

Configure Feed

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

Continue rapport

+59 -3
+18
bib.yaml
··· 89 89 omgidl: 90 90 type: reference 91 91 title: Interface Definition Language Specification Version 4.2 92 + author: Object Management Group 92 93 url: 93 94 value: https://www.omg.org/spec/IDL/4.2/About-IDL 94 95 date: 2025-06-18 ··· 96 97 dds: 97 98 type: reference 98 99 title: DDS Interoperability Wire Protocol Specification Version 2.5 100 + author: Object Management Group 99 101 url: 100 102 value: https://www.omg.org/spec/DDSI-RTPS/ 101 103 date: 2025-06-24 ··· 724 726 date: '2025-10-17' 725 727 value: https://ghidralite.com/ 726 728 729 + cyclonedds: 730 + type: web 731 + title: Eclipse Cyclone DDS - Home 732 + url: 733 + date: '2025-10-17' 734 + value: https://cyclonedds.io/ 735 + 736 + lowcmd_hpp: 737 + type: repository 738 + author: Unitree 739 + publisher: Github 740 + title: unitree_sdk2/include/unitree/idl/hg/LowCmd_.hpp at main@{2025-10-17} 741 + url: 742 + date: '2025-10-17' 743 + value: https://github.com/unitreerobotics/unitree_sdk2/blob/main@%7B2024-10-17%7D/include/unitree/idl/hg/LowCmd_.hpp#L33-L63 744 +
+41 -3
rapport/sdk2-study.typ
··· 2 2 3 3 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). 4 4 5 + == Canaux DDS 6 + 7 + Pour communiquer avec le robot via le réseau, Unitree utilise CycloneDDS, une implémentation par Oracle du standard DDS#footnote[pour Data Distribution Service] @cyclonedds, une technologie de communication bidirectionnelle#footnote[dite "_pub-sub_" pour _publish_/_subscribe_ ] en temps réel, standardisée par l'Object Management Group, OMG @dds. 8 + 9 + DDS fonctionne sur la base de _topics_. Les messages sont échangés sur un topic de la manière suivante 10 + 11 + / Lecture: En s'abonnant au topic, on reçoit en temps réel les messages qui sont envoyés dessus 12 + / Écriture: En publiant des messages sur le topic, on les rend disponibles aux abonnés en 13 + 14 + Les données contenues dans chacun des messages sont spécifiées via un autre format, IDL, également standardisé par l'OMG @omgidl. 15 + 16 + Par exemple, les messages permettant de contrôler les moteurs du H1v2 sont définis ainsi 17 + 18 + #figure( 19 + caption: [`LowCmd.idl`, traduit depuis sa conversion en C++ @lowcmd_hpp], 20 + ```c 21 + struct MotorCmd 22 + { 23 + uint8 mode; 24 + float q; 25 + float dq; 26 + float tau; 27 + float kp; 28 + float kd; 29 + unsigned long reserve; 30 + }; 31 + 32 + struct Cmd 33 + { 34 + uint8 mode_pr; 35 + uint8 mode_machine; 36 + MotorCmd motor_cmd[35]; 37 + unsigned long reserve[4]; 38 + unsigned long crc; 39 + }; 40 + ``` 41 + ) 42 + 5 43 == Une base de code partiellement open-source 6 44 7 45 Le code source du SDK d'unitree est disponible sur Github @sdk2_source_today. Cependant, le dépôt git comprend des fichiers binaires déjà compilés: ··· 113 151 114 152 Ces constats ont motivé une première tentative de décompilation de ces `libunitree_sdk2.a` pour comprendre le fonctionnement du SDK2, via _Ghidra_ @ghidra. 115 153 116 - Cependant, l'existance d'une implémentation existante d'un bridge SDK $arrow.lr$ Mujoco a rendu 117 - 118 - == Canaux DDS bas niveau 154 + Cependant, l'existance d'une implémentation existante d'un bridge SDK $arrows.lr$ Mujoco a rendu cette piste non nécéssaire. 119 155 120 156 == Un autre bridge existant: `unitree_mujoco` 121 157 158 + 159 +