Autonomous navigation
A Pioneer 3-AT navigation system combining A* planning, DWA obstacle avoidance and position-based recovery in Webots.
Project overview
I developed a Python navigation system for a simulated Pioneer 3-AT in Webots R2025a. The robot navigates a 60 × 60 m arena containing 37 static cylindrical obstacles, using a SICK LMS 291 lidar, GPS and compass. A separate supervisor controller records position and completion metrics.
The engineering
The challenge
Reach a fixed goal through a cluttered arena while avoiding obstacles and recovering when the reactive local planner stops making progress.
My contribution
Integrated planning, lidar mapping, wheel control and recovery; iterated the stalled-robot response and evaluated six simulation trials with a separate supervisor.
Approach & implementation
A* supplies global waypoints from a lidar-updated binary grid. DWA selects local motion commands, while displacement-based stuck detection can override it with a reverse-and-turn recovery. A separate Webots supervisor records outcomes and timing.
Results & lessons
What the project achieved
All six reported trials reached the 1 m goal acceptance radius before the 120-second timeout. The six tabulated times average 44.65 seconds, rounded to 44.7 seconds. Recovery activated seven times across trials 3 and 6; both trials ultimately reached the goal. This is a small evaluation in one fixed simulated arena, not a general reliability guarantee.
Limitations & next steps
The simulation uses ground-truth GPS/compass pose, noise-free lidar and static obstacles. Binary occupied cells can become stale, and eight-connected A* paths contain sharp corners. Recovery addresses observed stalls but does not anticipate dead ends. The report’s suggested 67% success without recovery is a hypothetical comparison, not a measured ablation. Next steps include larger randomised trials, sensor noise, probabilistic mapping, SLAM, smoother planning and dynamic-obstacle evaluation.
Explore the engineering
Simplified interactive concept demo: A* on a four-neighbour grid. The reported Webots project uses eight neighbours, including diagonals. S = start, G = goal. This explains global planning; it is not a replay of the Webots project or its DWA controller.
Media & resources
1 / 3 · Webots simulation arena — 37 cylindrical obstacles
Let’s talk about this project.
I’m happy to walk through the design decisions, challenges and what I would improve next.
Contact Peter