WayWiseR is a ROS2-based rapid prototyping platform designed for Connected and Automated Vehicle (CAV) validation research. Extending the low-level functionalities provided by the WayWise library with standardized ROS2 interfaces, WayWiseR enables systematic scenario-based validation across both simulated and physical environments.
WayWiseR is divided into modular ROS2 packages:
| Package | Description |
|---|---|
waywiser |
FastDDS discovery configuration and global utils. |
waywiser_core |
ROS2 wrappers for the core WayWise functionalities. |
waywiser_description |
Vehicle and sensor descriptions (URDF/Xacro). |
waywiser_hwbringup |
Configuration and launch files for physical hardware. |
waywiser_perception |
Image processing and computer vision. |
waywiser_nav2 |
Dynamic path planning via Nav2. |
waywiser_rviz2 |
RViz2 configuration and launch files. |
waywiser_slam |
SLAM Toolbox configuration and launch files. |
waywiser_teleop |
Multi-source teleoperation and arbitration. |
waywiser_test_runner |
Test orchestration for both simulators and hardware. |
waywiser_twist_safety |
Onboard safety features such as command arbitration, E-Stop, etc. |
waywiser_gazebo / _carla / _agrarsense |
Simulation-specific integration and environments. |
-
Prerequisites:
-
Install uv for Python package management:
curl -LsSf https://astral.sh/uv/install.sh | sh -
Install ROS2 Humble following the official guide.
-
Install the latest MAVSDK 2.x version (3.x is not yet supported) by downloading the latest deb package from prebuilt releases and running:
sudo dpkg -i libmavsdk-dev*.debAlternatively, MAVSDK can be built from source by using the scripts here.
-
Install system dependencies:
sudo apt update && sudo apt install -y \ libunwind-dev \ libqt5serialport5-dev \ git \ build-essential \ cmake \ python3-colcon-common-extensions \ python3-pyqt5
-
-
Initialize the workspace:
export WAYWISER_WS=~/waywiser_ws # Update with your desired path mkdir -p $WAYWISER_WS/src git clone git@github.com:das-rise/WayWiseR.git $WAYWISER_WS/src/WayWiseR cd $WAYWISER_WS/src/WayWiseR git submodule update --init waywiser_core/WayWise
-
Setup Python virtual environment:
cd $WAYWISER_WS uv venv --python 3.10 --clear source .venv/bin/activate export PYTHONPATH=$WAYWISER_WS/.venv/lib/python3.10/site-packages:$PYTHONPATH uv pip install -e src/WayWiseR
-
Build the workspace:
cd $WAYWISER_WS source /opt/ros/humble/setup.bash # Skip simulator packages for now: export WAYWISER_SKIPPED_PACKAGES="waywiser_agrarsense waywiser_carla waywiser_gazebo" rosdep install --from-paths $(colcon list --paths-only | grep -Evw "$(echo "$WAYWISER_SKIPPED_PACKAGES" | tr ' ' '|')") --ignore-src --rosdistro $ROS_DISTRO -r -y colcon build --symlink-install --packages-skip $WAYWISER_SKIPPED_PACKAGES
💡 Tip: To persist environment variables, append the setup block to your
.venv/bin/activateby running the following command in your terminal:cat <<EOT >> $WAYWISER_WS/.venv/bin/activate # WayWiseR Environment Setup source /opt/ros/humble/setup.bash export WAYWISER_WS=$WAYWISER_WS export WAYWISER_SKIPPED_PACKAGES="$WAYWISER_SKIPPED_PACKAGES" export PYTHONPATH=$WAYWISER_WS/.venv/lib/python3.10/site-packages:\$PYTHONPATH if [ -f "$WAYWISER_WS/install/setup.bash" ]; then source "$WAYWISER_WS/install/setup.bash" fi EOT
To build simulator-related packages such as waywiser_agrarsense, waywiser_carla, and waywiser_gazebo, follow the instructions in the respective packages.
-
Environment Configuration (.env):
WayWiseR uses a
.envfile to manage settings such as ROS2 Domain ID and FastDDS Discovery Server configurations.cp src/WayWiseR/.env.example src/WayWiseR/.env
Update the configurations in the
.envfile as needed. The.envfile is automatically sourced whenever the virtual environment is activated viasource $WAYWISER_WS/.venv/bin/activate.
For detailed developer setup configuration, refer to the Developer Guide.
Semi-truck.docking.demo.mp4
Forestry.simulation.demo.mp4
Current maintainers are: (firstname.middlename.lastname@ri.se):
- Ramana Reddy Avula
- Aria Mirzai
- Karl Lundgren
- Ashfaq Farooqui
Previous maintainers:
- Marvin Damschen
- Rickard Häll
If you use WayWiseR in your research, please cite:
@INPROCEEDINGS{11369551,
author={Avula, Ramana Reddy and Damschen, Marvin and Mirzai, Aria and Lundgren, Karl and Farooqui, Ashfaq and Thors\'{e}n, Anders},
booktitle={2025 13th International Conference on Control, Mechatronics and Automation (ICCMA)},
title={WayWiseR: A Rapid Prototyping Platform for Validating Connected and Automated Vehicles},
year={2025},
pages={306-311},
doi={10.1109/ICCMA67641.2025.11369551}
}