ROS2 UWB Localization Framework with Realistic Noise Modeling and Benchmarking

Hi everyone,

I’ve developed a modular ROS2 UWB localization framework designed for both simulation and real-world research.

:wrench: Key Features:

  • Plug-and-play ROS2 package (one-command launch)
  • High-fidelity UWB simulation:
    • Gaussian noise
    • NLOS exponential bias
    • AR(1) multipath correlation
    • clock drift modeling
  • Modular pipeline:
    /uwb/range → preprocessor → trilateration → EKF (robot_localization)
  • Real-time noise injection via ros2 param
  • Dataset recording (ROS bag + CSV)
  • Benchmarking metrics (RMSE, MAE, P95)
  • Error attribution diagnostics
  • RViz visualization and TF integration

:rocket: Quick Start:

git clone GitHub - anandbobba/ros2_uwb_plugin · GitHub
cd ros2_uwb_plugin
chmod +x install_dependencies.sh
./install_dependencies.sh
colcon build
source install/setup.bash
ros2 launch ros2_uwb_research_sim demo.launch.py

:movie_camera: Demo Video:

:open_file_folder: GitHub Repository:

I’d really appreciate feedback, especially from people working on indoor localization, SLAM, or UWB systems.

Thanks!

4 Likes

Update:

I’ve improved the framework with:

  • Plug-and-play dependency installation (rosdep + install script)
  • Added support for real UWB hardware via a generic driver layer
  • Improved documentation and Quick Start workflow
  • Added research diagnostics and plotting tools

The repository is now fully plug-and-play for both simulation and real hardware use.

Would appreciate any feedback!

2 Likes

Can you recommend a cheap uwb system just to experiment?

1 Like

BU01 is cheapest considerably some 10-12$

1 Like