Что ж, учебник по DDS, который вы хотите | Первый опыт FastDDS - компиляция исходного кода, установка и тестирование

Привет всем, я Сяоюй. Вчера друзья в группе призвали меня в статье, связанной с DDS. Я сказал, что исходный код хорош для знакомства с DDS. Сяою больше не может ворковать, поэтому я поделюсь им сегодня, FastDDS установка и опыт.

1. О трех способах открытия FastDDS

Как и обычные пакеты ROS, FastDDS имеет три метода установки: бинарная установка, компиляция исходного кода и Docker.

Потому что официальный выложил бинарник и Докер на официальный сайт. . И вам нужно заполнить свою личную информацию для загрузки. . И скорость загрузки супер-супер-медленная. . Да и исходники смотреть не удобно. . Итак, Xiaoyu предлагает вам установить из исходного кода.

Изначально хотел сделать установку в один клик, спасать всех при вводе скрипта! !

Любить человека надо не привыкать к нему, так и рыбная мука, для того, чтобы все больше думали при копировании и вставке (собственно, чтобы восполнить количество слов в статье), Xiaoyu возьмет всех желающих установить и скомпилировать исходный код шаг за шагом.

Однако установка исходного кода также очень проста, не бойтесь. .

Поскольку DDS связан с ROS2, мы также можем использовать colcon для компиляции без cmake (если вам нужен cmake, вы можете найти его на официальном сайте)

2. Скомпилируйте и установите FastDDS из исходного кода

Загрузка и компиляция DDS разделена на три этапа.Первый шаг можно пропустить, если вы уже установили ROS2. .

1. Инструмент для установки

sudo apt install python3-colcon-common-extensions python3-vcstool zip openjdk-8-jdk  -y

2. Создайте каталог и загрузите хранилище

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. Скомпилируйте

colcon buildcd src/fastddsgen/ &&  gradle assemble

Последний шаг: настройка переменных среды

xxx префикс вашего каталога

echo 'source xxx/fastdds_ws/install/setup.bash' >> ~/.bashrcecho 'export PATH=$PATH:xxx/fastdds_ws/gradle-6.4/bin/' >> ~/.bashrcecho 'export DDSGEN=xxx/fastdds_ws/src/fastddsgen/scripts' >> ~/.bashrc

3. Процедура HelloFish

RTPS, используемый DDS, представляет собой протокол публикации в режиме реального времени.На самом деле, он выглядит так же, как публикация и подписка в ROS и ROS2, поэтому мы запускаем процедуру для отправки и получения сообщений, а содержимое сообщения называетсяHelloFish

Программа, написанная Xiaoyu, готова и выложена на github, вы можете скачать ее напрямую, чтобы скомпилировать и протестировать~

скачать код

git clone https://github.com/fishros/dds_tutorial.git

Компиляция подпрограмм​​​​​​​

cd dds_tutorial/examples/01-hellofishrosmkdir build && cd buildcmake .. make

выполнить процедуру

открыть терминал

./DDSHelloFishRosPublisher

открыть другой терминал

./DDSHelloFishRosSubscribe

Посмотреть Результаты

Правильный результат выглядит следующим образом, что доказывает, что все в порядке~

Pub-sub тест DDS

4. Резюме

Разве не удивительно видеть знакомую публикацию и подписку?Нижний слой FASTDDS использует множество протоколов для передачи данных, включая ненадежный, но очень быстрый UDP, надежный, но не очень быстрый TCP, и ощущение, что он не передать память подкачки (SHM).

Чтобы показать вам, что называется низкой доходностью (ленивой), Сяоюй решил завтра объяснить вам код ~

Вышеупомянутый контент был написан Сяоюй после того, как он засиделся допоздна и наступил на яму.Если вы внимательно прочитаете его, это эквивалентно тому, чтобы не ложиться спать допоздна бесплатно ~

рекомендация

отblog.csdn.net/qq_27865227/article/details/122922272