Building the SVEA Stack Natively¶
Requirements¶
The native target is Ubuntu 24.04 with ROS 2 Jazzy. Install ROS and development tools using the Jazzy installation guide. The Docker workflow supplies these dependencies without modifying the host Python installation.
Workspace and external dependencies¶
Clone the workspace before running commands that use requirements.txt:
The base Dockerfile also builds external source dependencies. Native users
must provide compatible installations of Better Launch (v1.6.0), PX4 message
definitions (v1.16.1), and the DISCOWER Qualisys driver for mocap. To mirror
those source dependencies in this workspace:
git clone --branch v1.6.0 https://github.com/dfki-ric/better_launch.git src/better_launch
git clone --branch v1.16.1 --depth 1 https://github.com/PX4/px4_msgs.git src/px4_msgs
git clone https://github.com/DISCOWER/motion_capture_system.git src/motion_capture_system
Do not clone duplicate packages if you already have a sourced dependency
workspace. See docker/Dockerfile.base for the current dependency versions,
MAVROS installation and GeographicLib dataset setup.
Install the workspace dependencies using an initialized rosdep installation:
rosdep update --rosdistro jazzy
rosdep install --rosdistro jazzy --from-paths src --ignore-src -r -y
python3 -m pip install --break-system-packages -r requirements.txt
The pip command mirrors the image's system-Python installation on Ubuntu;
understand its effect on the native machine before using it. The NumPy
constraint in requirements.txt is needed for compatibility with ROS binary
packages. Do not remove it to work around an installation conflict.
Build and source the workspace:
Source install/setup.bash in every terminal that runs SVEA. An optional
persistent Bash setup is:
Replace the absolute path before running that command. Rebuild after adding
scripts, launch files, package metadata or installed data, then source the
updated overlay. Test with ros2 launch svea_examples floor2.launch.py before
moving to hardware. A native install does not configure USB permissions,
sensor networking, QTM calibration, or vehicle firmware automatically.