As an initial step in my latest robotics project I decided to try to implement Borenstein's VFH* Obstacle Avoidance and Navigation algorithm without using ROS2. As a start for those that don't know
- VFH+ builds a polar histogram of obstacle density and selects safe steering gaps using thresholds and robot geometry.
- It smooths motion with a cost function balancing goal direction, turning effort, and continuity.
- VFH* takes VFH+ candidate directions and evaluates short look‑ahead trajectories using an A*-style search.
- This lets it avoid local minima and dead‑ends that purely reactive methods fall into.
- In short: VFH+ = smart local avoidance; VFH* = VFH+ with predictive look‑ahead planning.
Refs:
- The vector field histogram-fast obstacle avoidance for mobile robots - Robotics and Automation, IEEE Transactions on
- VFH+: reliable obstacle avoidance for fast mobile robots
- https://www.researchgate.net/publication/2454908_VFH_Local_Obstacle_Avoidance_with_Look-Ahead_Verification?__cf_chl_tk=NKiC8tR5cdcBct.60qlsfb6RdxllFiVd3YSAMhbMauE-1774958235-1.0.1.1-gKYJpv7WFnnkUj5vudsKFk7oEL8RagzWuhB0F5CSgi0
The VFH Real‑Time Navigation Simulator* is an interactive Streamlit‑based tool for visualizing and debugging robot navigation using:
- VFH+ (Vector Field Histogram Plus)
- VFH* (search‑based extension of VFH+)
- Real‑time lidar simulation
- Dynamic occupancy grid mapping
- Valley detection & steering selection
- Playback, recording, and MP4 export
It also demonstrates how to build a complex Streamlit application.
The simulator provides a sidebar where you can adjust several of the algorithm parameters
A sample screen shot of the output is shown below
A quick video of the whole simulation can be found on
VFH+/VFH* Obstacle Avoidance/Planner for Arduino Uno Q
Here is a copy of the app and a quick readme
vfh_star_simulator.zip (11.8 KB)
Simulator_readme.pdf (551.9 KB)



