Fast DDS环境搭建

2024-04-16 06:44
文章标签 搭建 环境 dds fast

本文主要是介绍Fast DDS环境搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • Docker环境
  • Fast DDS构建运行
    • 运行原有demo
    • 编译运行

本文主要记录Fast DDS docker环境搭建和examples代码运行

Docker环境

Fast DDS的docker环境可以直接在官网下载,如果自己要重新做一个,首先需要从Docker Hub上下载系统的docker镜像,由于众所周知的原因,普通方式是拿不到这个镜像的,所以推荐使用Fast DDS官方网站提供的docker镜像。
这是一个比较完整的Fast DDS Docker镜像,也可以在这里选择其他的。
下面以推荐的镜像搭建开发调试环境。

  1. 下载ubuntu-fastdds-suite_v2.14.0.tar镜像
  2. 加载镜像:docker load < ubuntu-fastdds-suite_v2.14.0.tar,通过这一步,镜像已经加载到系统中,如下所示
hello@gf:~/data/ilearning/docker/fastdds-suite$ docker images
REPOSITORY                              TAG                    IMAGE ID       CREATED        SIZE
fastdds_ilearning                       latest                 114c7bc7e4e4   2 days ago     1.94GB
ubuntu-fastdds-suite                    v2.14.0                79ac6f93292f   13 days ago    1.83GB
  1. 运行容器。一个镜像可以有多个容器,可以通过以下命令启动一个新的容器:
docker run -it -d --name sss ubuntu-fastdds-suite:v2.14.0 /bin/bash

其中,-d为后台运行,–name指定了容器的名称。后续可以通过这个名称操作该容器。完成后通过docker ps -a可以看到如下内容:

hello@gf:~/data/ilearning/docker/fastdds-suite$ docker ps -a
CONTAINER ID   IMAGE                                                        COMMAND                   CREATED         STATUS                    PORTS     NAMES
19c4527b0e3d   ubuntu-fastdds-suite:v2.14.0                                 "/bin/bash /root/ent…"   3 seconds ago   Up 3 seconds                        sss
  1. 进入docker容器,通过命令 docker exec -it sss /bin/bash。完成这一步操作后,可以进入容器中。此时可以发现,该镜像的容器中Fast DDS相关的so,头文件等都已经安装好:
root@19c4527b0e3d:/usr/local/eprosima# ls
COLCON_IGNORE             cpp_utils                 ddsrecorder_yaml  fastdds_python                    fastddsspy_tool          local_setup.zsh  setup.zsh
ShapesDemo                dds-suite.repos           ddsreplayer_tool  fastdds_python_examples           fastddsspy_yaml          plotjuggler
_local_setup_util_ps1.py  ddspipe_core              ddsrouter_core    fastdds_qos_profiles_manager_cli  fastrtps                 py_utils
_local_setup_util_sh.py   ddspipe_participants      ddsrouter_tool    fastdds_qos_profiles_manager_lib  foonathan_memory_vendor  resources
cmake_utils               ddspipe_yaml              ddsrouter_yaml    fastdds_statistics_backend        local_setup.bash         setup.bash
colcon.meta               ddsrecorder_participants  fastcdr           fastdds_visualizer_plugin         local_setup.ps1          setup.ps1
controller_tool           ddsrecorder_tool          fastdds_monitor   fastddsspy_participants           local_setup.sh           setup.sh

所以这里省了很多需要自己要搞的事情(如编译Fast CDR,asio,tinyXML等第三方库)
5. 修改镜像并导出为新的镜像:有时候镜像中的内容不满足我们的需要,比如缺少开发相关的软件如新建文件夹,安装开发工具等

  • 首先在docker容器中执行自己需要的操作如创建一个文件夹作为工作目录,如/FastDDS,还需要安装一些常用工具,如cmake,git,vim等,这些可以通过apt-get install xx来安装。
  • exit命令退出环境
  • 将这个容器提交为新容器:docker commit container_name/container_id new_image_name:tag,此时新的镜像也生成了
zee001-w@gf:~/data/ilearning/docker/fastdds-suite$ docker images
REPOSITORY                              TAG                    IMAGE ID       CREATED         SIZE
my_new_dds_docker                       0.0.0.1                19d885b3aaa3   3 minutes ago   1.83GB
ubuntu-fastdds-suite                    v2.14.0                79ac6f93292f   13 days ago     1.83GB
  • 保存这个新的镜像:docker save new-image-name:tag > new-image.tar。如 docker save my_new_dds_docker:0.0.0.1>my_new_dds.tar
  1. 虽然做了很多事,但要修改和调试Fast DDS代码,还需要和本地做同步,这时候需要将docker的容器和本地挂载。这在执行第三步时通过-v命令指定目录挂载:
    docker run -it -v /home/user/data/ilearning/fastdds:/FastDDS /bin/bash

通过以上步骤,就可以创建好一个完整的Fast DDS docker镜像环境。

Fast DDS构建运行

运行原有demo

以上步骤已经完成了Fast DDS编译环境的搭建,可以直接通过已存在的命令goToExamples进入demo运行:

root@1d4740174553:/# goToExamples
root@1d4740174553:/usr/local/eprosima/fastrtps/examples/cpp# tree
.
|-- dds
|   |-- AdvancedConfigurationExample
|   |   `-- bin
|   |       `-- AdvancedConfigurationExample
|   |-- BasicConfigurationExample
|   |   `-- bin
|   |       `-- BasicConfigurationExample
|   |-- Configurability
|   |   `-- bin
|   |       |-- DDSConfigurabilityPublisher
|   |       `-- DDSConfigurabilitySubscriber
|   |-- ContentFilteredTopicExample
|   |   `-- bin
|   |       `-- DDSContentFilteredTopicExample
|   |-- CustomListenerExample
...

编译运行

进入fastrtpscmake命令:

cmake -H. -Bbuild  # 创建build目录
cmkae --build ./build

编译后的二进制文件存放于build目录下,此时运行example会链接到已经安装好的dds的so,需要重新设置到自己编译的so:
export LD_LIBRARY_PATH=/FastDDS/fastrtps/build/src/cpp:$LD_LIBRARY_PATH

这篇关于Fast DDS环境搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/908057

相关文章

ESP32 esp-idf esp-adf环境安装及.a库创建与编译

简介 ESP32 功能丰富的 Wi-Fi & 蓝牙 MCU, 适用于多样的物联网应用。使用freertos操作系统。 ESP-IDF 官方物联网开发框架。 ESP-ADF 官方音频开发框架。 文档参照 https://espressif-docs.readthedocs-hosted.com/projects/esp-adf/zh-cn/latest/get-started/index

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

UnrealScriptIDE调试环境部署

先安装vs2010   再安装VSIsoShell.exe, 下载地址 https://pan.baidu.com/s/10kPNUuDGTbWXbz7Nos-1WA       fd3t   最后安装unside,下载地址 https://archive.codeplex.com/?p=uside  安装中间有一步选择Binary文件夹要选对路径。   安装好以后,启动 UDKDe

API-环境对象

学习目标: 掌握环境对象 学习内容: 环境对象作用 环境对象: 指的是函数内部特殊的变量this,它代表着当前函数运行时所处的环境。 作用: 弄清楚this的指向,可以让我们代码更简洁。 函数的调用方式不同,this指代的对象也不同。【谁调用,this就是谁】是判断this指向的粗略规则。直接调用函数,其实相当于是window.函数,所以this指代window。

DDS信号的发生器(验证篇)——FPGA学习笔记8

前言:第一部分详细讲解DDS核心框图,还请读者深入阅读第一部分,以便理解DDS核心思想 三刷小梅哥视频总结! 小梅哥https://www.corecourse.com/lander 一、DDS简介         DDS(Direct Digital Synthesizer)即数字合成器,是一种新型的频率合成技术,具有低成本、低功耗、高分辨率、频率转换时间短、相位连续性好等优点,对数字信

【网络安全的神秘世界】搭建dvwa靶场

🌝博客主页:泥菩萨 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 下载DVWA https://github.com/digininja/DVWA/blob/master/README.zh.md 安装DVWA 安装phpstudy https://editor.csdn.net/md/?articleId=1399043

[vivado][IP核]DDS

刘东华的IP核详解: 1、 这里的是指IP核配置中的相位数据的宽度。 2、 实际使用此IP核时并没有“频率分辨率”可以配,是靠改变来变的。 3、 4、 5、 数据输出的ready在数据正式输出时才会有。 自己仿真: 使用SIN/COS LUT only的模式,使用一个累加器作为相位输入,不知怎么,输出为X。

Pycharm配置conda环境(解决新版本无法识别可执行文件问题)

引言: 很多小伙伴在下载最新版本的pycharm或者更新到最新版本后为项目配置conda环境的时候,发现文件夹目录中无法显示可执行文件(一般为python.exe),以下就是本人遇到该问题后试验和解决该问题的一些方法和思路。 一般遇到该问题的人群有两种,一种是刚入门对pycharm进行conda环境配置的小白(例如我),不熟悉相关环境配置的操作和过程,还有一种是入坑pycharm有段时间的老手

Redis-在springboot环境下执行lua脚本

文章目录 1、什么lua2、创建SpringBoot工程3、引入相关依赖4、创建LUA脚本5、创建配置类6、创建启动类7、创建测试类 1、什么lua “Lua”的英文全称是“Lightweight Userdata Abstraction Layer”,意思是“轻量级用户数据抽象层”。 2、创建SpringBoot工程 3、引入相关依赖 <?xml version

cocospod 搭建环境和使用

iOS 最新版 CocoaPods 的安装流程 1.移除现有Ruby默认源 $gem sources --remove https://rubygems.org/ 2.使用新的源 $gem sources -a https://ruby.taobao.org/ 3.验证新源是否替换成功 $gem sources -l 4.安装CocoaPods (1)  $sudo gem