网上很多资料是Linux环境下的配置步骤,这篇文章是在Windows下安装配置编译链接生成可执行程序的。
关于Fast DDS,可以参考官网

这里是参考了官网的Windows installation from sources

  • 有三个package要安装
    foonathan_memory_vendor, an STL compatible C++ memory allocator library. # 可以简单理解为申请内存的
    fastcdr, a C++ library that serializes according to the standard CDR serialization mechanism. # 可以简单理解为序列化,反序列化的
    fastrtps, the core library of eProsima Fast DDS library. # fast rtps的核心组件
  • 环境的预配
    Visual Studio
    Chocolatey
    CMake
    git
    OpenSSL(配置环境变量,如OPENSSL_ROOT_DIR=C:\Program Files\OpenSSL-Win64)
  • 依赖
    Asio
    TinyXML2
    依赖下载后,直接到文件夹里用
1
choco install -y -s <PATH_TO_DOWNLOADS> asio tinyxml2

CMake安装方法

我这里用的CMake安装,对比Colcon installation方法,我觉得更能知道install做了什么。
clone下面的每个package的代码,并用cmake编译。
在比如D盘位置,新建Fast-DDS文件夹,或者其他你自定义的文件夹,然后进入该文件夹

  • Foonathan memory
1
2
3
4
5
6
cd D:\Fast-DDS
git clone https://github.com/eProsima/foonathan_memory_vendor.git
cd foonathan_memory_vendor
mkdir build && cd build
cmake .. -DBUILD_SHARED_LIBS=ON
cmake --build . --target install

cmake build默认是debug的,如果想release,那么添加–config Release

  • Fast CDR
1
2
3
4
5
6
cd D:\Fast-DDS
git clone https://github.com/eProsima/Fast-CDR.git
cd Fast-CDR
mkdir build && cd build
cmake ..
cmake --build . --target install
  • Fast DDS
1
2
3
4
5
6
cd D:\Fast-DDS
git clone https://github.com/eProsima/Fast-DDS.git
cd Fast-DDS
mkdir build && cd build
cmake ..
cmake --build . --target install

没问题后,在如下应该有。
install

Fast DDS-Gen的安装(可选)

Fast DDS-Gen是从idl文件生成cxx文件的。

环境配置,安装后再配置环境变量

Java JDK
Gradle
1
2
3
git clone --recursive https://github.com/eProsima/Fast-DDS-Gen.git
cd Fast-DDS-Gen
gradle assemble

在Fast DDS-Gen文件夹里会有

  • share/fastddsgen, 有个.jar包
  • scripts, 有bat脚本,用来生成cxx文件。为方便使用,可以添加这个文件夹到系统环境变量或者每次都要指定这个fastddsgen.bat。

用法

  • 新建个idl文件,如HelloWorld.idl
1
2
3
4
5
// HelloWorld.idl
struct HelloWorld
{
string message;
};
  • 转换
1
D:\03-ROS\testFastRTPS> .../fastddsgen.bat -example CMake HelloWorld.idl

会生成如下文件
cxxfiles

  • 编译
    管理员权限打开’Developer Command Prompt for VS 2019’
1
2
3
mkdir build && cd build
cmake ..
cmake --build .

这样就会生成Debug文件夹里的HelloWorld.exe

  • 运行
    打开2个CMD或者Powershell
1
HelloWorld.exe publisher
1
HelloWorld.exe subscriber

会有这样的消息
pubsub