/DDS-benchmark

Benchmarking for the Performance of Multi-Robot Networking Techniques and Data Distribution Service in Dynamic Topology

Primary LanguageC++

DDS-benchmark

Benchmarking for the Performance of Multi-Robot Networking Techniques and Data Distribution Service in Dynamic Topology

This work performs tests on:

  • discovery time of four DDS (fast-DDS, openDDS, RTI connext and openSplice) in different ways of networking
  • discovety time of ROS2 with three DDS (fast-DDS, RTI connext and openSplice) in different ways of networking
  • communication performance of DDS and ROS2

DDS installaion

introduce how to install DDS in debug mode

fast-DDS

  1. install dependencies
sudo apt install cmake g++ python3-pip wget git
  1. Download eProsima_Fast-DDS-2.3.0-Linux.tvz from the official website or Tsinghua netdisk

  2. modify source code to get broadcast time

  • edit file $(FAST_DDS_DIR)/src/fastrtps/src/cpp/rtps/builtin/discovery/participant/PDP.cpp. Find function announceParticipantState, uncomment the logInfo line (line 411)
logInfo(RTPS_PDP, "Announcing RTPSParticipant State (new change: " << new_change << ")");
  1. Uncompress the file, enter the directory and edit the install.sh file to support debug mode.
  • find the following lines to build fastrtps, add flags "-DCMAKE_BUILD_TYPE=Debug", "-DLOG_NO_INFO=OFF", "-DINTERNAL_DEBUG=ON" when doing cmake.
mkdir -p build/fastrtps
cd build/fastrtps
cmake ../../src/fastrtps -DCMAKE_BUILD_TYPE=Debug -DLOG_NO_INFO=OFF -DINTERNAL_DEBUG=ON
make -j8 install
cd ../..
  1. install by run install.sh
sudo ./install.sh
  1. install Fast-DDS-Gen tool
git clone --recursive https://github.com/eProsima/Fast-DDS-Gen.git
sudo ./gradlew assemble

reference

OpenSplice

OpenDDS

RTI connext