Auteur de cette série de didacticiels : Xiaoyu
Compte public : Yuxiang ROS
Groupe d'échange QQ : 139707339
Adresse de la vidéo d'enseignement : station B de Xiaoyu
Adresse complète du document : site officiel de Yuxiang ROS Déclaration de
droits d'auteur : la réimpression et l'utilisation commerciale sont interdites sauf autorisation.
Bonjour à tous, je m'appelle Xiaoyu. Hier, j'ai été invité par des amis du groupe dans l'article lié à DDS. J'ai dit que le code source est bon pour expérimenter DDS. Xiaoyu ne peut plus roucouler, donc je vais le partager aujourd'hui, Installation et expérience FastDDS.
1. Sur les trois façons d'ouvrir FastDDS
Comme les packages ROS ordinaires, FastDDS dispose de trois méthodes d'installation : installation binaire, compilation du code source et Docker.
Parce que l'officiel a mis le binaire et Docker sur le site officiel. .
Et vous devez remplir vos informations personnelles pour télécharger. .
Et la vitesse de téléchargement est super super lente. .
Et il n'est pas commode d'observer le code source. .
Xiaoyu vous emmène donc installer à partir du code source.
Je voulais à l'origine faire une installation en un clic, économiser tout le monde en tapant le script ! !
Aimer une personne ne doit pas être habitué à lui, tout comme la farine de poisson, afin de laisser chacun réfléchir davantage lors du copier-coller (en fait, pour rattraper le nombre de mots dans l'article), Xiaoyu prendra tout le monde pour installer et compiler le code source étape par étape.
Cependant, l'installation du code source est également très simple, n'ayez pas peur. .
Parce que DDS est lié à ROS2, nous pouvons également utiliser colcon pour compiler sans cmake (si vous avez besoin de cmake, vous pouvez le trouver sur le site officiel)
2. Compilez et installez FastDDS à partir du code source
Le téléchargement et la compilation de DDS sont divisés en trois étapes. La première étape peut être ignorée si vous avez déjà installé ROS2. .
1. Outil d'installation
sudo apt install python3-colcon-common-extensions python3-vcstool zip openjdk-8-jdk -y
2. Créez un répertoire et téléchargez l'entrepôt
mkdir -p fastdds_ws/src
cd fastdds_ws && wget https://downloads.gradle-dn.com/distributions/gradle-6.4-bin.zip && unzip gradle-6.4-bin.zip
wget http://fishros.com/tools/files/fastrtps.repos && vcs import src < fastrtps.repos
3. Compiler
colcon build
cd src/fastddsgen/ && gradle assemble
Dernière étape : configurer les variables d'environnement
xxx est le préfixe de votre répertoire
echo 'source xxx/fastdds_ws/install/setup.bash' >> ~/.bashrc
echo 'export PATH=$PATH:xxx/fastdds_ws/gradle-6.4/bin/' >> ~/.bashrc
echo 'export DDSGEN=xxx/fastdds_ws/src/fastddsgen/scripts' >> ~/.bashrc
3. Routine HelloFish
Le RTPS utilisé par DDS est le protocole Real-Time Publish Subscribe, qui est en fait le même que la publication et l'abonnement dans ROS et ROS2, nous exécutons donc une routine pour envoyer et recevoir des messages, et le contenu du message est appeléHelloFish
Le programme écrit par Xiaoyu est prêt et mis sur github. Vous pouvez le télécharger directement pour le compiler et le tester~
code de téléchargement
git clone https://github.com/fishros/dds_tutorial.git
routine de compilation
cd dds_tutorial/examples/01-hellofishros
mkdir build && cd build
cmake ..
make
exécuter la routine
ouvrir un terminal
./DDSHelloFishRosPublisher
ouvrir un autre terminal
./DDSHelloFishRosSubscribe
Voir les résultats
Le résultat correct est comme le suivant, qui a prouvé que tout est OK ~
4. Résumé
Est-ce étonnant de voir la publication et l'abonnement familiers ? La couche inférieure de FASTDDS utilise une variété de protocoles pour la transmission de données, y compris l'UDP peu fiable mais très rapide, le TCP fiable mais pas très rapide et la transmission peu fiable. Swap Memory (SHM ).
Afin de vous montrer ce qu'on appelle le faible rendement (paresseux), Xiaoyu a décidé de vous expliquer le code demain ~