This repository contains a prebuilt ROS2 Jazzy workspace for the soda-sim-ros2 plugin.
It also includes extra ROS packages:
Usually you will not have to rebuild this package, but if this is necessary, then below are the steps on how to build this.
Note
It is very important that the chosen path is short, due to the short default Windows path limits (260 characters). Even enabling the "Long Path" policy does not help to solve all the problems. Therefore, In any case, the compilation should be done along the shortest path, for example C:\ros2
Note
You should remove the FastDDS libraries if you have them installed.
- Perfom all step from Original Manuale till to Install additional DDS implementations (optional). OpenCV, RQt dependencies, and QT5 installation steps can be skipped.
- Remove rosidl_python, rclpy, and rosidl_runtime_py:
RMDIR /S /Q src\ros2\rosidl_python src\ros2\rclpy src\ros2\rosidl_runtime_py - Clone additional repos to src/soda folder:
git clone -b ros2 https://github.com/ros-drivers/ackermann_msgs.git git clone https://github.com/soda-auto/ros-ue-wrapper.git git clone https://github.com/soda-auto/ros-soda-msgs.git - Open x64 Native Tools Command Prompt for VS 2022 and build ROS2:
colcon build ^ --install-base <PATH_TO_THIS_REPO>/Source/ROSJazzy/Win64 ^ --merge-install ^ --event-handlers console_direct+ ^ --packages-up-to rclcpp rclcpp_action geometry_msgs sensor_msgs tf2_msgs rosgraph_msgs statistics_msgs nav_msgs ackermann_msgs soda_msgs ros2_ue_wrapper ros2_ue_wrapper_common_msgs ^ --cmake-args "-DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DCOMPILE_TOOLS=OFF -DBENCHMARK_ENABLE_TESTING=OFF" - Copy all .dll from C:/Program Files/OpenSSL-Win64/bin/ to <PATH_TO_THIS_REPO>/Source/ROSJazzy/Win64/bin/
- Copy C:/ProgramData/chocolatey/lib/tinyxml2/lib/tinyxml2.dll to <PATH_TO_THIS_REPO>/Source/ROSJazzy/Win64/bin/
Note
Rebuild only SODA packages:
colcon build ^
--install-base <PATH_TO_THIS_REPO>/Source/ROSJazzy/Win64 ^
--merge-install ^
--event-handlers console_direct+ ^
--packages-select soda_msgs ros2_ue_wrapper ^
--cmake-args "-DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DCOMPILE_TOOLS=OFF -DBENCHMARK_ENABLE_TESTING=OFF"
Tested on Ubuntu 24.04, UE5.7 and v26_clang-20.1.8-rockylinux8.
$ export UE_ENGINE=<PATH_TO_UE>/Engine$ cd <REPO_ROOT>/ros2-build-scripts/- Perfom all step from Original Manuale till to Install additional DDS implementations (optional).
Clone all ros repos to
ros2-build-scripts/srcfolder. - Clone additional repos to ros2-build-scripts/src/soda folder:
git clone -b ros2 https://github.com/ros-drivers/ackermann_msgs.git git clone https://github.com/soda-auto/ros-ue-wrapper.git git clone https://github.com/soda-auto/ros-soda-msgs.git - Build ROS2:
$ ./vcpkg-linux.sh $ ./BuildForLinux.sh
Note
After the first run of the BuildForLinux.sh script, it will crash with the error std::atomic.
To fix this, you need to remove the line include(cmake/atomic.cmake) in the file build\foonathan_memory_vendor\foo_mem-ext-prefix\src\foo_mem-ext\CMakeLists.txt and run BuildForLinux.sh again.
TODO: make a patch file.
Note
For rebuild only soda packages use RebuildSodaPackages.sh script
Note
TODO: try to build ROS2 for Linux from Windows