The BOW Planner is a motion planning algorithm that leverages constrained Bayesian optimization to expertly navigate robots through complex environments. By adeptly managing kinodynamic constraints such as velocity and acceleration limits, it ensures fast, secure, and near-optimal trajectory generation with remarkably few samples. Proven across real-world robotic systems, BOW stands out for its sample efficiency, safety-aware optimization, and scalability—making it a game-changer for robotic navigation.
The BOW Planner introduces several novel advancements in motion planning:
We implemented the BOW Planner for a non-holonomic differential wheel robot navigating through a 2D space with obstacles. Experiments were conducted across five simulated environments and replicated in CoppeliaSim. The robot’s state is a 5D vector (position, orientation, linear and angular velocities), with control inputs as linear and angular velocities. BOW demonstrated rapid navigation and obstacle avoidance, even treating other robots as dynamic obstacles in multi-robot scenarios.
To demonstrate scalability, the BOW Planner was applied to a 6DOF aerial robot in a 3D environment with obstacles. The robot’s state is a 12D vector (position, velocity, orientation, and their derivatives), with control inputs as linear velocities and yaw rate. Evaluated in both CoppeliaSim simulations and real-world tests, BOW efficiently navigated UAVs through varied obstacle densities (0.04–0.14) and dispersities (2.38–4.15), achieving planning times as low as 5.64 ms.
We implemented the BOW Planner for a non-holonomic differential wheel robot and a UAV navigating through 2D and 3D Poisson forest environments, respectively. Experiments were conducted in procedurally generated forest environments with obstacles distributed using Poisson sampling to mimic natural, non-uniform obstacle patterns. BOW demonstrated robust navigation and obstacle avoidance in complex organic obstacle arrangements, validated through three trials each for UGV and UAV platforms.
The BOW Planner was benchmarked against RRT, DWA, MPPI, HRVO, and CBF across five environments with varying obstacle densities (5.02%–8.30%) and dispersities (2.59%–6.20%). BOW consistently achieved the fastest planning times (28.2–78.6 ms) and per-step execution (0.17–0.26 ms), with competitive trajectory lengths (6.88–19.49 m), outperforming others in computational efficiency. The table below summarizes performance across all five environments.
Env | Method | Lib. + Lang | Steps | Traj. Length (m) | Total Time (ms) | Time/Step (ms) | Avg Velocity | Avg Jerk |
---|---|---|---|---|---|---|---|---|
1 | BOW | FCL + C++ | 161.2 ± 2.9 | 14.14 ± 0.09 | 23.26 ± 0.35 | 0.14 | 0.947 ± 0.020 | 0.190 ± 0.024 |
DWA | FCL + C++ | 157.0 ± 0.00 | 14.33 ± 0.00 | 103.68 ± 2.07 | 0.66 | 0.952 ± 0.00 | 0.031 ± 0.000 | |
HRVO | C++ | 539.0 ± 0.00 | 15.78 ± 0.00 | 269.22 ± 7.21 | 0.50 | 0.293 ± 0.00 | 0.223 ± 0.00 | |
RRT | FCL + C++ | 55.2 ± 8.0 | 17.39 ± 1.38 | 389.83 ± 272.41 | 7.06 | 0.796 ± 0.038 | 0.849 ± 0.062 | |
MPPI | CUDA + Py | 137.0 ± 0.00 | 13.98 ± 0.00 | 5865.90 ± 182.73 | 42.82 | 1.654 ± 0.052 | -1.150 ± 0.108 | |
CBF | Gurobi + Py | 156.0 ± 0.00 | 14.42 ± 0.00 | 9892.10 ± 97.26 | 63.41 | 0.992 ± 0.010 | -0.020 ± 0.001 | |
2 | BOW | FCL + C++ | 160.5 ± 3.2 | 14.21 ± 0.08 | 23.09 ± 0.59 | 0.14 | 0.955 ± 0.022 | 0.188 ± 0.026 |
DWA | FCL + C++ | 332.0 ± 0.00 | 30.26 ± 0.00 | 83.15 ± 1.78 | 0.25 | 1.032 ± 0.000 | 0.040 ± 0.000 | |
HRVO | C++ | 341.0 ± 0.00 | 14.87 ± 0.00 | 282.89 ± 7.65 | 0.83 | 0.436 ± 0.00 | 0.137 ± 0.00 | |
RRT | FCL + C++ | 57.0 ± 10.2 | 17.30 ± 2.56 | 464.82 ± 87.55 | 8.15 | 0.765 ± 0.036 | 0.859 ± 0.085 | |
MPPI | CUDA + Py | 156.0 ± 0.00 | 14.38 ± 0.00 | 6625.00 ± 146.45 | 42.47 | 1.467 ± 0.032 | -2.647 ± 0.172 | |
3 | BOW | FCL + C++ | 199.2 ± 3.8 | 17.48 ± 0.06 | 28.14 ± 0.58 | 0.14 | 0.939 ± 0.020 | 0.190 ± 0.016 |
DWA | FCL + C++ | 220.0 ± 0.00 | 19.14 ± 0.00 | 102.50 ± 1.83 | 0.47 | 0.889 ± 0.000 | 0.028 ± 0.00 | |
HRVO | C++ | 422.0 ± 0.00 | 20.07 ± 0.00 | 468.44 ± 10.51 | 1.11 | 0.476 ± 0.00 | 0.302 ± 0.000 | |
RRT | FCL + C++ | 69.2 ± 12.7 | 20.69 ± 2.63 | 808.09 ± 533.78 | 11.68 | 0.783 ± 0.022 | 0.886 ± 0.050 | |
MPPI | CUDA + Py | 150.0 ± 0.00 | 17.27 ± 0.00 | 6496.80 ± 346.90 | 43.31 | 1.774 ± 0.089 | 2.062 ± 0.291 | |
CBF | Gurobi + Py | 151.0 ± 0.00 | 17.44 ± 0.00 | 12146.60 ± 185.49 | 80.44 | 0.930 ± 0.014 | -0.018 ± 0.001 | |
4 | BOW | FCL + C++ | 210.8 ± 6.5 | 18.67 ± 0.12 | 30.90 ± 0.68 | 0.15 | 0.945 ± 0.036 | 0.172 ± 0.028 |
DWA | FCL + C++ | 373.0 ± 0.00 | 34.33 ± 0.00 | 169.20 ± 3.58 | 0.45 | 0.970 ± 0.00 | 0.030 ± 0.00 | |
HRVO | C++ | 465.0 ± 0.00 | 21.06 ± 0.00 | 676.32 ± 12.82 | 1.45 | 0.453 ± 0.00 | 0.341 ± 0.000 | |
RRT | FCL + C++ | 77.9 ± 10.0 | 23.68 ± 2.67 | 745.79 ± 406.64 | 9.57 | 0.769 ± 0.021 | 0.898 ± 0.072 | |
MPPI | CUDA + Py | 198.0 ± 0.00 | 18.86 ± 0.00 | 8674.80 ± 156.41 | 43.81 vyp | 1.467 ± 0.026 | 0.194 ± 0.010 | |
CBF | Gurobi + Py | 171.0 ± 0.00 | 18.09 ± 0.00 | 15135.40 ± 335.45 | 88.51 | 0.805 ± 0.018 | -0.002 ± 0.000 | |
5 | BOW | FCL + C++ | 95.0 ± 5.4 | 7.56 ± 0.19 | 12.89 ± 0.09 | 0.14 | 1.007 ± 0.077 | 0.357 ± 0.052 |
HRVO | C++ | 204.0 ± 0.00 | 8.34 ± 0.00 | 369.20 ± 2.49 | 1.81 | 0.409 ± 0.000 | 0.260 ± 0.00 | |
RRT | FCL + C++ | 31.7 ± 3.7 | 9.53 ± 0.80 | 93.18 ± 56.97 | 2.94 | 0.785 ± 0.035 | 0.927 ± 0.100 | |
MPPI | CUDA + Py | 139.0 ± 0.00 | 8.86 ± 0.00 | 5983.00 ± 183.18 | 43.04 | 0.691 ± 0.021 | -0.930 ± 0.086 | |
6 | BOW | FCL + C++ | 101.9 ± 5.1 | 8.73 ± 0.09 | 10.00 ± 0.33 | 0.10 | 0.940 ± 0.063 | 0.158 ± 0.029 |
DWA | FCL + C++ | 556.0 ± 0.00 | 25.36 ± 0.00 | 589.78 ± 4.04 | 1.06 | 0.556 ± 0.00 | 0.043 ± 0.00 | |
RRT | FCL + C++ | 36.1 ± 8.1 | 10.54 ± 1.56 | 128.16 ± 79.40 | 3.55 | 0.757 ± 0.041 | 0.811 ± 0.060 | |
MPPI | CUDA + Py | 1048.0 ± 0.00 | 29.94 ± 0.00 | 44312.20 ± 645.95 | 42.28 | 0.056 ± 0.001 | 0.421 ± 0.018 |
Anonymous Authors
@article{anonymous2025bow, author = {Anonymous}, title = {BOW: Bayesian Optimization over Windows for Motion Planning in Complex Environments}, journal = {}, year = {2025}, }