eProsima Fast DDS

        eprosima Fast DDS (之前为Fast RTPS) 是一个OMG(Object Management Group)组织下的DDS (Data Distribution Service)标准的C++实现。eProsima Fast DDS 实现了RTPS (Real Time Publish Subscribe) 协议,该协议提供了基于不可靠传输(例如UDP)通信方式下的发布-订阅功能。由于是由OMG组织定义和维护的,因此,RTPS也是为数据分发服务(DDS)定义的线性互操作协议 。eProsePima Fast DDS公布了一个API接口用于直接访问TPS协议以及充分连接协议内部。

        这个库的主要特征如下:

  • 为实时应用提供可配置的以及可靠的发布-订阅通信协议。
  • 即插即用的连接机制保证任何新的应用可以自动被其他网络中的成员发现。
  • 模块化以及可伸缩性支撑了网络中复杂和简单设备的增加。
  • 可配置的网络行为以及可更换的传输层:选择最好的协议和系统IO通道的组合进行部署。
  • 两个AIP层:一个高层级的发布-订阅API用于DDS的使用,同时一个低层级的读者-作者API用于让使用者更好的接触RTPS协议的内部工作模式。

        eProsima Fast DDS 已经被许多机构采用在很多的领域中,主要包括如下重要的使用场景:

  • 机器人学科: ROS (Robotic Operating System) 作为ROS2系统的默认中间件。
  • EU R&D: FIWARE开源平台

        这个项目本身也是 FIWARE项目的一部分,如果想要了解这部分信息,可以从Robotics的FIWARE目录进入。

支持的平台

  1.         linux
  2.         linux-64
  3.         window
  4.         macos

安装向导

        你可以选择获取eprosima Fast DDS的二进制发布release,也可以选自己从源码进行编译。

使用二进制release进行安装

        最新的二进制eprosima Fast DDS release可以从company website处获取到。

使用源代码安装码

        安装依赖

Asio 和 TinyXML2 库

        在Linux系统中,你可以使用包管理工具安装这些库,在ubuntu上你妹可以输入如下的命令使用pkm安装依赖库:.

sudo apt install libasio-dev libtinyxml2-dev

        在windows系统中,你可以使用 Chocolatey安装这些依赖库。首先,你需要从ROS2 Github 仓库下载如下 Chocolatey依赖库

  • asio.1.12.1.nupkg
  • tinyxml2.6.0.0.nupkg

一旦这些依赖库被下载,打开一个有管理员权限的shell并且执行下面的命令:

choco install -y -s <PATH\TO\DOWNLOADS\> asio tinyxml2

请使用你下载这些依赖库的路径个替换命令中的 <PATH\TO\DOWNLOADS> 

Colcon 安装

colcon是一个命令行工具,用于构建软件包。这一章节解释了如何使用该工具简单地编译Fast-RTPS和他的依赖库。首先安装ROS2开发工具(colon和vcstool):

pip install -U colcon-common-extensions vcstool

下载的这些文件被用于下载FastRTPS以及其依赖文件:

$ mkdir fastdds_ws
$ cd fastdds_ws
$ wget https://raw.githubusercontent.com/eProsima/Fast-DDS/master/fastrtps.repos
$ mkdir src
$ vcs import src < fastrtps.repos

最后,使用colon编译这些软件:

$ colcon build

手工安装


        在手工编译Fast DDS之前你需要克隆下列依赖库的仓库并且使用CMake进行编译:.

  • Fast CDR

    $ git clone https://github.com/eProsima/Fast-CDR.git
    $ mkdir Fast-CDR/build && cd Fast-CDR/build
    $ cmake ..
    $ cmake --build . --target install
  • Foonathan memory

    $ git clone https://github.com/eProsima/foonathan_memory_vendor.git
    $ cd foonathan_memory_vendor
    $ mkdir build && cd build
    $ cmake ..
    $ cmake --build . --target install

        一旦所有的依赖库都编译安装完成,就可以编译和安装Fast DDS了。

$ git clone https://github.com/eProsima/Fast-DDS.git
$ mkdir Fast-DDS/build && cd Fast-DDS/build
$ cmake ..
$ cmake --build . --target install

文档

        你可以从 Read the Docs.获取下列在线文档。

质量申明

        基于ROS 2提供的准则说明,eprosima Fast DDS 据称可以达到Level 1质量分类可以从See Quality Declaration 获取更多细节。

快速入门Demo

        对于想要尽快看到在Ubuntu系统上对Fast DDS库的演示的情况,有一个可以启动的实例应用程序可以展示。

       首先,下载并且安装docker应用,打开终端并且输入下面的命令:

$ sudo apt-get install docker.io

        然后,从 eProsima downloads website站点下载docker镜像文件

        接着,加载镜像

$ docker load -i ubuntu-fast-dds:<FastDDS-Version>.tar
$ docker load -i ubuntu-fast-dds-helloworld:<FastDDS-Version>.tar
$ docker load -i ubuntu-fast-dds-shapesdemo:<ShapesDemo-Version>.tar

运行Docker容器中的eProsima Shapes Demo 应用,可以参考 Shapes Demo documentation 获取该应用的更多详细用法。

$ xhost local:root
$ docker run -it --privileged -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix \
    ubuntu-fast-dds-shapesdemo:<ShapesDemo-Version>

也可以运行在命令行中输入下面的命令运行 Fast DDS HelloWorld 范例程序:

$ docker run -it ubuntu-fast-dds-helloworld:<FastDDS-Version>
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值