Indoor Navigation with Iiwari UWB, 5G & AI
Problem
Global interest in autonomous indoor robots is growing, but many navigation stacks still depend heavily on LiDAR-based SLAM and static maps. These systems can be powerful, yet they are often sensitive to glass walls, chair legs, reflective surfaces and environment changes.
At Savonia DigiCenter North Savo, our goal in the Automaatio- ja Tekoäly Tiedoksi (AuToTIE) project was different: can we build a UWB-centric navigation system for the Clearpath Dingo-D that is accurate, explainable, and easy to move between different indoor spaces?
Why UWB Instead of a Full LiDAR-Only ROS Stack?
Iiwari’s ultra-wideband (UWB) system is designed exactly for indoor positioning: it provides decimetre-level accuracy, works in cluttered spaces and can track multiple moving devices at once. Instead of treating UWB as “just another sensor”, this project made UWB the primary source of truth for position.
Advantages of UWB for this use case
- Two UWB tags on the robot (front & back) provide both position and heading info.
- Accuracy in the range of 10–20 cm in indoor test environments.
- Less sensitive to visual clutter than LiDAR-based mapping.
- Same anchor network can serve other robots and devices.
Why not only LiDAR + full ROS navigation?
- Traditional SLAM/AMCL requires dedicated mapping and tuning per environment.
- Reflective surfaces and narrow legs create noisy point clouds.
- Remapping and re-tuning are time-consuming when moving to new floors.
- The project focus was to demonstrate Iiwari UWB in automation, not to build yet another LiDAR SLAM stack.
My Approach
1) Pose Estimation with Dual UWB Tags
- Mounted two Iiwari UWB tags on the Clearpath Dingo-D (front and back of the chassis).
- Polled Iiwari’s backend API to receive filtered
(x, y)positions for both tags. - Computed the robot’s centre point and orientation from the two tag positions.
- Normalised heading using
atan2(sin(yaw), cos(yaw))to avoid wrap-around issues. - Exposed the fused pose to ROS Noetic as a simple Python node.
2) Grid Map & A* Path Planning on a Floorplan
- Converted the campus floorplan into a grid where bright pixels represent free space.
- Used 8-connected A* (cardinal + diagonal moves) to plan paths between points of interest (POIs).
- Automatically skipped legs where no safe path was found due to walls or furniture.
- Applied a pruning step to remove unnecessary zig-zags while keeping the path safe.
- Generated a smooth trajectory using spline-like interpolation on top of A* waypoints.
3) Custom Pure-Pursuit Controller with Docking Logic
- Implemented a Python-based Pure-Pursuit controller to follow the smoothed path.
- Adaptive look-ahead distance: larger in open space, smaller near the goal.
- Three-stage docking behaviour (~2 m, 1 m, 0.5 m from goal) to slow down smoothly.
- Initial “rotate-first” step to align with the path before driving forward.
- Replanned the path if the robot’s deviation from the current path exceeded a safe threshold.
4) 5G-Connected AI Obstacle Detection
- Integrated a separate AI model (developed by Premton Canamusa) running over Nokia 5G to detect dynamic obstacles such as people and another dog-like robot.
- Exposed a lightweight TCP interface so the AI node could send
pause/resumecommands. - When an obstacle was detected crossing the path, the AI paused Dingo’s motion until the route was clear.
- All pauses and resumes were logged together with the robot’s pose for later analysis.
Demo Video
Indoor Navigation Demo
Iiwari UWB + Dingo-D + Nokia 5G
This video shows the full indoor navigation demo powered by UWB positioning and 5G connectivity.
Impact
- UWB-first navigation: showed that Iiwari UWB can be the main positioning layer for indoor robots, not just a side sensor.
- Reusable teaching platform: single Python navigation node with clear stages, used for demonstrations and student learning.
- 5G + AI showcase: combined Nokia 5G connectivity and edge AI to actively control robot motion in shared spaces.
- Flexible deployment: moving the system to a new hall only requires UWB calibration and a new floorplan, not full SLAM re-tuning.
- Future-ready: architecture can be extended with EKF fusion, multi-robot coordination or more advanced controllers.
Tech Stack
Clearpath Dingo-D · ROS Noetic · Python · Iiwari UWB (dual tags) · Nokia 5G · AI obstacle detection model · A* path planner · Custom Pure-Pursuit controller · Floorplan-based grid map · Logging and simple Flask visualisation
Architecture
Positioning
Two UWB tags + Iiwari backend →
fused pose (x, y, yaw) published to ROS at ~10 Hz.
Navigation
Floorplan grid → A* path → waypoint pruning → smoothing →
Pure-Pursuit controller → cmd_vel for Dingo-D.
Safety & Control
5G AI obstacle detector → pause/resume API → navigation node logs pose, path and control decisions.
Iiwari UWB tags ──► Fused Pose (x, y, yaw) ──► A* + Smoothing ──► Pure-Pursuit ──► Dingo-D
▲ │
│ ▼
ROS odometry 5G AI obstacle detector (pause/resume)
Project Context
This work was carried out at Savonia University of Applied Sciences – DigiCenter North Savo as part of the Automaatio- ja Tekoäly Tiedoksi (AuToTIE) project, co-funded by the European Union.
Role: Primary developer – navigation stack and UWB integration (Md Al-Naim)
Collaboration: Savonia UAS and Iiwari Tracking Solutions (anchor setup, system support)