Fast-DDS库的安装教程

news2024/10/5 19:12:13

Fast-DDS库的安装教程

  • 0 序言
  • 1 安装依赖
  • 2 安装Fast-DDS
    • 2.1 编译foonathan_memory_vendor
    • 2.2 编译Fast-CDR
    • 2.3 编译Fast-DDS
    • 2.4 编译Fast-DDS-Gen
    • 2.5 添加环境变量
    • 2.6 验证
  • 3 参考资料
  • 4 写在最后

工欲善其事,必先利其器。首先要知道 Fast-DDS是什么?要知道 Fast-DDS是什么,又要先知道 DDS是什么?听起来似乎像是无限套娃。由于篇幅原因,本文仅给出 Fast-DDS的泛概念及用途,至于 DDS,感兴趣的读者请自行查阅了解。

简单来说,Fast-DDS是eProsima实现的一个开源的DDS库,目前主要用于机器人的ROS2以及一些工业领域设备间通信,由于本文是一篇Fast-DDS库的安装教程,不再对其作过多赘述,感兴趣的读者请自行查阅了解。

0 序言

以下是我的环境配置:
Operating System:Debian 9(Stretch)
cmake version:3.24.3

1 安装依赖

sudo apt install cmake g++ python3-pip wget git
sudo apt install libasio-dev libtinyxml2-dev
sudo apt install libssl-dev

2 安装Fast-DDS

2.1 编译foonathan_memory_vendor

如图所示,通过执行命令pwd,输出当前目录的全路径名称。

在这里插入图片描述
一般情况下,我们会在/home/用户名这个目录下进行操作。
逐条执行下述命令:

git config --global url."https://gitclone.com/github.com/".insteadOf "https://github.com/"
mkdir ~/Fast-DDS
cd ~/Fast-DDS
git clone https://github.com/eProsima/foonathan_memory_vendor.git
mkdir foonathan_memory_vendor/build
cd foonathan_memory_vendor/build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/ -DBUILD_SHARED_LIBS=ON
sudo cmake --build . --target install

2.2 编译Fast-CDR

cd ~/Fast-DDS
git clone https://github.com/eProsima/Fast-CDR.git
mkdir Fast-CDR/build
cd Fast-CDR/build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/
sudo cmake --build . --target install

2.3 编译Fast-DDS

cd ~/Fast-DDS
git clone https://github.com/eProsima/Fast-DDS.git
mkdir Fast-DDS/build
cd Fast-DDS/build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/
sudo cmake --build . --target install

2.4 编译Fast-DDS-Gen

cd ~/Fast-DDS
git clone --recursive https://github.com/eProsima/Fast-DDS-Gen.git
cd Fast-DDS-Gen
sudo apt install openjdk-8-jdk
./gradlew assemble

2.5 添加环境变量

不要直接复制,搞清楚你的scripts的路径是什么?

export PATH=/home/你的用户名/Fast-DDS/Fast-DDS-Gen/scripts:$PATH

如图所示,是我的scripts所在的目录。

在这里插入图片描述
执行下述命令,查看环境变量:

vim ~/.bashrc

在这里插入图片描述
在这里插入图片描述
可以看到,环境变量已经成功添加。
此时,在命令行中输入fast,然后按两下Tab键,能够在可补全列表中显示出fastddsgen,如下图所示,可以进一步证明,环境变量添加成功。

在这里插入图片描述

2.6 验证

测试Fast-DDSHelloWorldExample

cd ~/Fast-DDS/Fast-DDS/examples/C++/HelloWorldExample
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/
make

新建一个终端,执行下述命令:

cd ~/Fast-DDS/Fast-DDS/examples/C++/HelloWorldExample/build
./HelloWorldExample publisher

新建另一个终端,执行下述命令:

cd ~/Fast-DDS/Fast-DDS/examples/C++/HelloWorldExample/build
./HelloWorldExample subscriber

输出结果如下:

在这里插入图片描述
在这里插入图片描述
至此,Fast-DDS库编译安装完成。

3 参考资料

《安装Fast-DDS库 官方文档》
https://fast-dds.docs.eprosima.com/en/latest/installation/sources/sources_linux.html
《Ubuntu 18.04 安装fast-dds笔记》
https://blog.csdn.net/mkt123338702/article/details/125880446
《DDS开源库FastDDS分析 - 安装》
https://blog.csdn.net/w5678912345/article/details/125882684
《Fast RTPS(DDS) 安装指南》
https://blog.csdn.net/shao5166233/article/details/126599414
《Fast-RTPS调坑记录(linux源码安装)》
https://blog.csdn.net/tao_292/article/details/125317670
《【FastDDS学习笔记】HelloWorld示例程序编译和运行》
https://blog.csdn.net/u012739527/article/details/124705821

4 写在最后

由于本文写作仓促,难免有一些不当之处,请各位读者多多包涵,如有错误之处,还望各位批评指正,本人感激不尽。
————————————————————————————————
文章修改于2022年11月21日

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/25813.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

wy的leetcode刷题记录_Day48

wy的leetcode刷题记录_Day48 声明 本文章的所有题目信息都来源于leetcode 如有侵权请联系我删掉! 时间:2022-11-21 前言 补前几天的blog 目录wy的leetcode刷题记录_Day48声明前言808. 分汤题目介绍思路代码收获654. 最大二叉树题目介绍思路代码收获808. 分汤 今…

Boc-QAR-AMC,CAS号:201849-55-0/113866-20-9

胰蛋白酶的高反应性底物,前列腺素和matriptase的荧关底物 编号: 199467中文名称: 标记肽Boc-QAR-7-氨基-4-甲基香豆素.HCl英文名: Boc-Gln-Ala-Arg-AMCCAS号: 201849-55-0/113866-20-9单字母: Boc-QAR-AMC三字母: Boc-Gln-Ala-Arg-AMC氨基酸个数: 3分子式: C29H42O8…

低代码维格云常用组件入门教程

1. 维格云常用组件功能简介 工作区的成员可以根据自己的业务习惯,将工作区内的应用、门户添加到常用组件。添加后成员可以直接从门户的常用组件中操作相应的应用、门户 2. 维格云常用组件配置方式 2.1 添加常用组件 在门户中拖拽或点击添加常用组件2.2 设置组件标题 在右侧编…

中学化学教学参考杂志社中学化学教学参考编辑部2022年第15期目录

刊庆专稿 试论“文化化学”教学思想的实践意义与样态 刘英琦; 1-4 课改在线《中学化学教学参考》投稿:cn7kantougao163.com 凝练观念 重构实践 引领评价——谈《义务教育化学课程标准(2022年版)》的修订 周青; 4-6 领悟化学课程的育人标准——基于《义务…

阿里、字节等神创,必须是全网最全的Netty核心原理手册

时间飞逝,转眼间毕业七年多,从事 Java 开发也六年了。我在想,也是时候将自己的 Java 整理成一套体系。 这一次的知识体系面试题涉及到 Java 知识部分、性能优化、微服务、并发编程、开源框架、分布式等多个方面的知识点。 写这一套 Java 面试…

【SpringBoot笔记28】SpringBoot集成ES数据库之操作doc文档(创建、更新、删除、查询)

这篇文章,主要介绍SpringBoot集成ES数据库之操作doc文档(创建、更新、删除、查询)。 目录 一、SpringBoot操作ES文档数据 1.1、创建文档 1.2、更新文档 1.3、删除文档 1.4、查询文档 1.5、判断文档是否存在 1.6、批量创建文档 一、Spr…

高手系列!数据科学家私藏pandas高阶用法大全 ⛵

💡 作者:韩信子ShowMeAI 📘 数据分析实战系列:https://www.showmeai.tech/tutorials/40 📘 本文地址:https://www.showmeai.tech/article-detail/394 📢 声明:版权所有,转…

CubeMX+VSCode+Ozone的STM32开发工作流(二)VSCode环境配置

neozng1hnu.edu.cn 本教程的示例代码是笔者参加RoboMaster机甲大师赛为机器人编写的控制器框架,你可以直接克隆仓库,阅读仓库下的Markdown文档获得更好的体验,记得点一个小⭐: basic_framework: basic_framework (gitee.com)所有安装包也可以…

OceanBase TableAPI实践案例(Rust)

引子 这是OceanBase TableAPI实践案例(Java)的姊妹篇,上一篇比较全面的比较全面的介绍了TableAPI的相关概念,以及基本的环境搭建,因此这篇不再赘述。本文将主要介绍TableAPI的Rust客户端obkv-table-client-rs &#x…

Visio画图更改连接线的弧形和调整跨线

目录前言准备参考问题解决问题一解决问题二前言 最近在使用Visio画图时,出现了一些问题,于是上网查了一下,将方法记录下来。 准备 Visio2021 参考 Visio中,如何修改连接线的跨线样式? 问题 (1) 使用连接线的时候…

【微信小程序】使用 Cryptojs 解密微信绑定手机号码

很抱歉断更了一段时间,因为最近在做一个项目比较忙,正好项目中小程序板块需要解密手机号码来提交给接口,小程序中虽然提供了获取手机号按钮点击事件:bindgetphonenumber,但是该事件的处理函数中只能获取到加密过的手机…

新力量,新希望|明道云伙伴大会2022秋圆满落幕

2022年10月28日至29日,明道云伙伴大会(2022年秋)在上海顺利举办。来自北京大兴国际机场、广汽本田、京东方、天津钢管、深圳龙华区卫健局、可口可乐、山东移动、浙江移动、上海电气数科、金科信息、艾默生电气等超过五百位参会者同台交流。行…

工业物联网的数据集成

随着网关技术的不断发展,创新、高效的软件解决方案及IT架构在工业物联网系统架构中将发挥着更为重要的作用。其中,工业物联网集成工业数据的一个关键问题在于如何利用软件、IT和创新算法来部署网络解决方案,从而使得生产效率更高。 &#xff…

Java中 this 和 super 的用法与区别

在Java的学习与开发者我们经常遇到this和super关键字,那么它们的用法和区别是什么呢? 一、this关键字 1.this是什么? this 是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。 2.this…

javaScript之数组中reduce的详细介绍及使用

一、reduce功能接受及定义(自我理解) reduce方法为数组中的一个高阶函数,接受两个参数,第一个参数为回调函数,第二个为初始值。如果不给入初始值则会以数组第一项为初始值!reduce会循环数组每一项&#xf…

数据库-深度剖析mysql索引原理(上)(三)

目录 一、什么是索引 二、索引由来 三、索引本质 四、索引数据结构 1、hsah 2、Btree 五、myISAM 和Innodb这两个数据库的索引是如何实现的呢? 1、首先看 MYSAM 1、以主键Id字段建立索引 2、以name字段来建立索引 2、在看Innodb数据库引擎的数据库 1、以…

Linux安装Jenkins详细步骤

安装jdk yum安装不需要配置环境变量 安装maven 下载maven 压缩包上传至服务器 解压缩 修改maven配置文件镜像地址 配置环境变量 安装Git 安装Jenkins war包下载 安装运行Jenkins 安装jdk 【Linux】Linux8 安装 JDK(适用于各个版本)_写bug的程…

JavaScript 数值 Number

目录1 数值 number1.1 数值储存1.2 数值表示1.2.1 数值分隔符1.3 特殊数值1.3.1 正零和负零1.3.2 NaN1.3.3 Infinity1.4 数值相关的全局方法1.5 Number 对象1.5.1 Number()1.5.2 Number 静态属性1.5.3 Number 静态方法1.5.4 Number 实例方法1.5.5 自定义方法1.6 Math 对象1.6.1…

ev-MOGA多目标进化算法(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

如何在 Windows 10 中安装 Azure Data Studio 1.39.1

安装 Azure Data Studio 1.39.1 官网下载 Azure Data Studio 1.39.1安装 Azure Data Studio 1.39.1Azure Data Studio 是一个跨平台数据库工具,适用于在 Windows、macOS 和 Linux 上使用本地和云数据平台的数据专业人员。 Azure Data Studio 提供了 IntelliSense、代码片段、源…