Hi everyone,
I’ve developed a modular ROS2 UWB localization framework designed for both simulation and real-world research.
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
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
Demo Video:
GitHub Repository:
I’d really appreciate feedback, especially from people working on indoor localization, SLAM, or UWB systems.
Thanks!
5 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
Update: The ROS2 UWB Localization Framework now supports dual-UWB-tag yaw estimation for full pose estimation using pure UWB geometry.
New additions include:
-
dual-tag localization pipeline
-
yaw estimation using atan2(dy, dx)
-
EMA-based angular filtering
-
baseline validation for stability
-
RViz heading visualization
-
EKF fusion improvements
-
Humble/Jazzy + Gazebo compatibility updates
-
improved CI/CD and dependency handling
The system now supports:
front tag + rear tag → trilateration → yaw estimation → full pose fusion
Launch:
ros2 launch ros2_uwb_research_sim demo.launch.py dual_tag:=true
GitHub:
https://github.com/anandbobba/ros2_uwb_plugin
Thanks to everyone who provided feedback and suggestions — they significantly improved the architecture and portability of the framework.