For information on the latest version, please have a look at GL013301.
1.3.4 Linux (Ubuntu) Environment (64-bit)
Note
Supported Ubuntu Versions: 18.04, 20.04, 22.04, 24.04
Supported Architectures: x86_64, ARM64
Simulator: RViz (ROS2 visualization tool)
Ensure ROS2 (Humble or compatible) and RViz2 are properly installed.
A. Create a workspace
mkdir -p ~/api_ws/src
cd ~/api_ws/src
B. Clone the DRFL repository
Clone the official DRFL repository and move into the example directory.
git clone https://github.com/doosan-robotics/API-DRFL.git
cd API-DRFL/example/Linux_64
C. Install required dependencies
Before building, install the required Poco development libraries.
sudo apt update
sudo apt-get install libpoco-dev
D. Launch Simulator (Virtual Mode)
Before building and running the example, you must start the RViz simulator using Docker and ROS2.
Open a new terminal and launch the Doosan RViz simulator in virtual mode. Keep this terminal running, it will act as your robot simulator.
cd ~/ros2_ws
ros2 launch dsr_bringup2 dsr_bringup2_rviz.launch.py mode:=virtual host:=127.0.0.1 port:=12345 model:=m0609
Explanation:
mode:=virtual: Runs in virtual (simulation) modehost:=127.0.0.1: Localhost connectionport:=12345: Default controller/emulator portmodel:=m0609: Selects robot model (e.g., M0609)
Note
If you are connecting to a real robot, replace the parameters accordingly:
ros2 launch dsr_bringup2 dsr_bringup2_rviz.launch.py mode:=real host:=192.168.137.100 port:=12345 model:=m0609
Make sure your robot controller and PC are in the same network subnet.
The robot must be in Auto (Remote) mode to accept API commands.
Tip
Before running the build script, confirm that Docker and the virtual port (12345) are active:
sudo docker ps
nc -vz 127.0.0.1 12345
If the above commands show an active container and successful connection, the simulator is running correctly and ready for API communication.
The build script should be executed after launching the RViz simulator, as it depends on the active socket port (12345).
E. Build the project
Now return to your API workspace terminal and build the DRFL example.
./API_DRFL_BUILD.sh
This script automatically:
Detects your Ubuntu version and architecture
Scans all
.cppfiles in the directoryAllows you to select which file to build (1, 2, 3…)
Handles library linking automatically
Creates executables in the
out/directoryOptionally runs the built executable
Tip
If you encounter a connection failure after building, double-check:
1. Your IP address in the source file (must match the robot or emulator).
2. That the controller or DART emulator is running on port 12345/TCP.
3. Network access is not blocked by firewall or Docker isolation.
Clean Script
To remove build artifacts and executables:
./API_DRFL_CLEAN.sh
This script:
Removes all
.oobject filesRemoves the
out/directory and all executablesAsks for confirmation before cleaning
Tip
The automated build scripts are the fastest and safest way to compile DRFL examples, especially if you are switching between Ubuntu versions or CPU architectures.
F. Manual build (alternative)
If you prefer to compile manually, use g++ according to your Ubuntu version and architecture.
Ubuntu supports versions: 18.04, 20.04, 22.04 and 24.04.
x86 (Ubuntu 18.04)
g++ -c main.cpp
g++ -o drfl_test main.o ../../library/Linux/64bits/amd64/18.04/libDRFL.a \
/usr/lib/libPocoFoundation.so /usr/lib/libPocoNet.so
x86 (Ubuntu 20.04 / 22.04 / 24.04)
g++ -c main.cpp
g++ -o drfl_test main.o ../../library/Linux/64bits/amd64/{your_ubuntu_version}/libDRFL.a \
/usr/lib/x86_64-linux-gnu/libPocoFoundation.so \
/usr/lib/x86_64-linux-gnu/libPocoNet.so
ARM64 (Ubuntu 18.04)
g++ -c main.cpp
g++ -o drfl_test main.o ../../library/Linux/64bits/arm64/18.04/libDRFL.a \
/usr/lib/libPocoFoundation.so /usr/lib/libPocoNet.so
ARM64 (Ubuntu 20.04 / 22.04 / 24.04)
g++ -c main.cpp
g++ -o drfl_test main.o ../../library/Linux/64bits/arm64/{your_ubuntu_version}/libDRFL.a \
/usr/lib/aarch64-linux-gnu/libPocoFoundation.so \
/usr/lib/aarch64-linux-gnu/libPocoNet.so
Note
Although library versions traditionally differed across Ubuntu releases, Ubuntu 24.04 now uses the same .80 version as Ubuntu 22.04 for compatibility.