···737737 type: repository
738738 author: Unitree
739739 publisher: Github
740740- title: unitree_sdk2/include/unitree/idl/hg/LowCmd_.hpp at main@{2025-10-17}
740740+ title: unitree_sdk2/include/unitree/idl/hg/LowCmd_.hpp at main@{2025-10-17}, lines 33 to 63
741741+ url:
742742+ date: '2025-10-17'
743743+ value: https://github.com/unitreerobotics/unitree_sdk2/blob/main@%7B2025-10-17%7D/include/unitree/idl/hg/LowCmd_.hpp#L33-L63
744744+745745+dds-benchmark:
746746+ type: article
747747+ title: A Performance Study on the Throughput and Latency of Zenoh, MQTT, Kafka,
748748+ and DDS
749749+ author:
750750+ - Liang, Wen-Yew
751751+ - Yuan, Yuyuan
752752+ - Lin, Hsiang-Jui
753753+ date: 2023-03
754754+ page-rage: 10
755755+ url:
756756+ value: http://arxiv.org/abs/2303.09419v1
757757+ date: '2025-10-17'
758758+ serial-number:
759759+ arxiv: 2303.09419v1
760760+ abstract: In this study, we compare the performance of the new-generation communication
761761+ protocol Zenoh with the widely-used MQTT, Kafka, and DDS. Two performance indexes
762762+ were evaluated, including throughput and latency. A brief description of each
763763+ protocol is introduced in this article. The experiment configuration and the testing
764764+ scenarios are described in detail. The results show that Zenoh outperforms the
765765+ others with impressive performance numbers.
766766+ parent:
767767+ type: periodical
768768+769769+770770+771771+772772+unitree_mujoco:
773773+ type: web
774774+ title: unitree_mujoco
775775+ publisher: GitHub
776776+ author: Unitree Robotics
741777 url:
742778 date: '2025-10-17'
743743- value: https://github.com/unitreerobotics/unitree_sdk2/blob/main@%7B2024-10-17%7D/include/unitree/idl/hg/LowCmd_.hpp#L33-L63
779779+ value: https://github.com/unitreerobotics/unitree_mujoco
780780+ date: '2021-11-01'
744781
···4455== Canaux DDS
6677-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.
77+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. Les messages sont envoyées sur le réseau via UDP et IP.
8899-DDS fonctionne sur la base de _topics_. Les messages sont échangés sur un topic de la manière suivante
99+Les données contenues dans chacun des messages sont spécifiées via un autre format, IDL, également standardisé par l'OMG @omgidl.
10101111-/ Lecture: En s'abonnant au topic, on reçoit en temps réel les messages qui sont envoyés dessus
1212-/ Écriture: En publiant des messages sur le topic, on les rend disponibles aux abonnés en
1313-1414-Les données contenues dans chacun des messages sont spécifiées via un autre format, IDL, également standardisé par l'OMG @omgidl.
1111+L'intérêt d'un format indépendant du langage de programmation est que l'on peut générer du code décrivant ces données pour plusieurs langages, ce que fait Unitree en distribuant du code C++ et Python.
15121613Par exemple, les messages permettant de contrôler les moteurs du H1v2 sont définis ainsi
1714···3936};
4037```
4138)
3939+4040+DDS groupe les mesages dans des _topics_. Les messages sont échangés sur un topic de la manière suivante
4141+4242+/ Lecture: En s'abonnant au topic, on reçoit en temps réel les messages qui sont envoyés dessus
4343+/ Écriture: En publiant des messages sur le topic, on les rend disponibles aux abonnés
4444+4545+#import "@preview/unify:0.7.1": qty
4646+4747+CycloneDDS est capable d'un débit d'environ #qty("1", "GB/s"), pour des messages d'environ #qty("1", "kB") chacun @dds-benchmark. On remarque, en pratique, des messages entre #qty("0.9", "kB") et #qty("1.3", "kB") dans le cas des échanges commandes/état avec le robot
4848+4949+Et enfin, les _topics_ peuvent être isolés d'autres topics via des _domain_#[s].
5050+42514352== Une base de code partiellement open-source
4453···151160152161Ces constats ont motivé une première tentative de décompilation de ces `libunitree_sdk2.a` pour comprendre le fonctionnement du SDK2, via _Ghidra_ @ghidra.
153162154154-Cependant, l'existance d'une implémentation existante d'un bridge SDK $arrows.lr$ Mujoco a rendu cette piste non nécéssaire.
163163+Cependant, la découverte de l'existance d'un bridge officiel SDK $arrows.lr$ Mujoco @unitree_mujoco a rendu cette piste non nécéssaire.
155164156165== Un autre bridge existant: `unitree_mujoco`
157166158158-159159-167167+Unitree propose