喏,你要的DDS教程|FastDDS初体验-源码编译&安装&测试

大家好,我是小鱼,昨天被群友在群里催了 DDS 相关的文章里,说好的来源码体验一下 DDS 来着,小鱼不能再咕咕咕了,所以今天就分享一下,FastDDS 的安装和体验。

1.论 FastDDS 的三种打开方式

FastDDS 和普通 ROS 包一样,有二进制安装、源码编译、Docker 三种安装方式。

因为官方把二进制和 Docker 放到了官网。。而且要填写个人信息才能下载。。而且下载速度超级超级慢。。而且不方便观摩源码。。所以小鱼带你一起从源码进行安装。

本来想做成一键安装的,省的大家敲脚本了!!

爱一个人绝对不能惯着他,鱼粉也是,为了让大家多复制粘贴时多思考一下(其实是为了凑文章字数),小鱼就带大家一起一步步安装编译源码

不过源码安装也很简单,大家不要害怕。。

因为 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.编译

扫描二维码关注公众号,回复: 13729816 查看本文章
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 例程

DDS 使用的 RTPS,就是 Real-Time Publish Subscribe 协议,其实和 ROS 与 ROS2 中的发布订阅的感觉是一样的,所以我们就跑一个例程来收发消息,消息内容就叫HelloFish

小鱼写的程序已经准备好了,放到了 github 上,大家可以直接下载下来编译测试哦~

下载代码

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

编译例程​​​​​​​

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

执行例程

开一个终端

./DDSHelloFishRosPublisher

再开一个终端

./DDSHelloFishRosSubscribe

查看结果

正确结果像下面这样子,已经证明一切 OK 了~

DDS 发布订阅测试

4.总结

看到熟悉的发布订阅是不是很神奇,FASTDDS 底层采用了多种协议进行数据的传输,包括不靠谱但真的很快的 UDP,靠谱但是不怎么快的 TCP,还有感觉不传输的内存交换(SHM)。

为了给大家展示一下什么叫做低产(懒),小鱼决定明天再给大家讲解代码~

以上内容为小鱼熬夜踩坑才写出的,大家仔细看了就相当于免费熬夜了~

猜你喜欢

转载自blog.csdn.net/qq_27865227/article/details/122922272