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
introduce how to install DDS in debug mode
- install dependencies
sudo apt install cmake g++ python3-pip wget git
-
Download eProsima_Fast-DDS-2.3.0-Linux.tvz from the official website or Tsinghua netdisk
-
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 << ")");
- 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 ../..
- install by run install.sh
sudo ./install.sh
- install Fast-DDS-Gen tool
- Download Fast-DDS-Gen-master using git or from Tsinghua netdisk
git clone --recursive https://github.com/eProsima/Fast-DDS-Gen.git
- Download and install java jdk 16.01 from the official website or Tsinghua netdisk
- Use gradle to install the tool
sudo ./gradlew assemble